From 7f4cc7543a3f58e474289046161e61e55504d8db Mon Sep 17 00:00:00 2001 From: awstools Date: Tue, 25 Jul 2023 20:10:56 +0000 Subject: [PATCH] feat(client-datasync): AWS DataSync now supports Microsoft Azure Blob Storage locations. --- clients/client-datasync/README.md | 24 ++ clients/client-datasync/src/DataSync.ts | 69 +++ clients/client-datasync/src/DataSyncClient.ts | 18 + .../CreateLocationAzureBlobCommand.ts | 171 ++++++++ .../src/commands/CreateLocationNfsCommand.ts | 4 +- .../src/commands/CreateLocationSmbCommand.ts | 4 +- .../DescribeLocationAzureBlobCommand.ts | 160 +++++++ .../src/commands/DescribeTaskCommand.ts | 2 +- .../commands/DescribeTaskExecutionCommand.ts | 3 +- .../UpdateLocationAzureBlobCommand.ts | 161 +++++++ clients/client-datasync/src/commands/index.ts | 3 + .../client-datasync/src/models/models_0.ts | 329 ++++++++++++-- .../src/protocols/Aws_json1_1.ts | 233 ++++++++++ codegen/sdk-codegen/aws-models/datasync.json | 404 ++++++++++++++++-- 14 files changed, 1511 insertions(+), 74 deletions(-) create mode 100644 clients/client-datasync/src/commands/CreateLocationAzureBlobCommand.ts create mode 100644 clients/client-datasync/src/commands/DescribeLocationAzureBlobCommand.ts create mode 100644 clients/client-datasync/src/commands/UpdateLocationAzureBlobCommand.ts diff --git a/clients/client-datasync/README.md b/clients/client-datasync/README.md index fc9df5e2a67a..7610d72e544e 100644 --- a/clients/client-datasync/README.md +++ b/clients/client-datasync/README.md @@ -235,6 +235,14 @@ CreateAgent [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/classes/createagentcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/interfaces/createagentcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/interfaces/createagentcommandoutput.html) + +
+ +CreateLocationAzureBlob + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/classes/createlocationazureblobcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/interfaces/createlocationazureblobcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/interfaces/createlocationazureblobcommandoutput.html) +
@@ -363,6 +371,14 @@ DescribeDiscoveryJob [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/classes/describediscoveryjobcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/interfaces/describediscoveryjobcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/interfaces/describediscoveryjobcommandoutput.html) +
+
+ +DescribeLocationAzureBlob + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/classes/describelocationazureblobcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/interfaces/describelocationazureblobcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/interfaces/describelocationazureblobcommandoutput.html) +
@@ -611,6 +627,14 @@ UpdateDiscoveryJob [Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/classes/updatediscoveryjobcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/interfaces/updatediscoveryjobcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/interfaces/updatediscoveryjobcommandoutput.html) +
+
+ +UpdateLocationAzureBlob + + +[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/classes/updatelocationazureblobcommand.html) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/interfaces/updatelocationazureblobcommandinput.html) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/clients/client-datasync/interfaces/updatelocationazureblobcommandoutput.html) +
diff --git a/clients/client-datasync/src/DataSync.ts b/clients/client-datasync/src/DataSync.ts index 0c42400de352..c76312b462ce 100644 --- a/clients/client-datasync/src/DataSync.ts +++ b/clients/client-datasync/src/DataSync.ts @@ -13,6 +13,11 @@ import { CancelTaskExecutionCommandOutput, } from "./commands/CancelTaskExecutionCommand"; import { CreateAgentCommand, CreateAgentCommandInput, CreateAgentCommandOutput } from "./commands/CreateAgentCommand"; +import { + CreateLocationAzureBlobCommand, + CreateLocationAzureBlobCommandInput, + CreateLocationAzureBlobCommandOutput, +} from "./commands/CreateLocationAzureBlobCommand"; import { CreateLocationEfsCommand, CreateLocationEfsCommandInput, @@ -81,6 +86,11 @@ import { DescribeDiscoveryJobCommandInput, DescribeDiscoveryJobCommandOutput, } from "./commands/DescribeDiscoveryJobCommand"; +import { + DescribeLocationAzureBlobCommand, + DescribeLocationAzureBlobCommandInput, + DescribeLocationAzureBlobCommandOutput, +} from "./commands/DescribeLocationAzureBlobCommand"; import { DescribeLocationEfsCommand, DescribeLocationEfsCommandInput, @@ -220,6 +230,11 @@ import { UpdateDiscoveryJobCommandInput, UpdateDiscoveryJobCommandOutput, } from "./commands/UpdateDiscoveryJobCommand"; +import { + UpdateLocationAzureBlobCommand, + UpdateLocationAzureBlobCommandInput, + UpdateLocationAzureBlobCommandOutput, +} from "./commands/UpdateLocationAzureBlobCommand"; import { UpdateLocationHdfsCommand, UpdateLocationHdfsCommandInput, @@ -257,6 +272,7 @@ const commands = { AddStorageSystemCommand, CancelTaskExecutionCommand, CreateAgentCommand, + CreateLocationAzureBlobCommand, CreateLocationEfsCommand, CreateLocationFsxLustreCommand, CreateLocationFsxOntapCommand, @@ -273,6 +289,7 @@ const commands = { DeleteTaskCommand, DescribeAgentCommand, DescribeDiscoveryJobCommand, + DescribeLocationAzureBlobCommand, DescribeLocationEfsCommand, DescribeLocationFsxLustreCommand, DescribeLocationFsxOntapCommand, @@ -304,6 +321,7 @@ const commands = { UntagResourceCommand, UpdateAgentCommand, UpdateDiscoveryJobCommand, + UpdateLocationAzureBlobCommand, UpdateLocationHdfsCommand, UpdateLocationNfsCommand, UpdateLocationObjectStorageCommand, @@ -359,6 +377,23 @@ export interface DataSync { cb: (err: any, data?: CreateAgentCommandOutput) => void ): void; + /** + * @see {@link CreateLocationAzureBlobCommand} + */ + createLocationAzureBlob( + args: CreateLocationAzureBlobCommandInput, + options?: __HttpHandlerOptions + ): Promise; + createLocationAzureBlob( + args: CreateLocationAzureBlobCommandInput, + cb: (err: any, data?: CreateLocationAzureBlobCommandOutput) => void + ): void; + createLocationAzureBlob( + args: CreateLocationAzureBlobCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateLocationAzureBlobCommandOutput) => void + ): void; + /** * @see {@link CreateLocationEfsCommand} */ @@ -604,6 +639,23 @@ export interface DataSync { cb: (err: any, data?: DescribeDiscoveryJobCommandOutput) => void ): void; + /** + * @see {@link DescribeLocationAzureBlobCommand} + */ + describeLocationAzureBlob( + args: DescribeLocationAzureBlobCommandInput, + options?: __HttpHandlerOptions + ): Promise; + describeLocationAzureBlob( + args: DescribeLocationAzureBlobCommandInput, + cb: (err: any, data?: DescribeLocationAzureBlobCommandOutput) => void + ): void; + describeLocationAzureBlob( + args: DescribeLocationAzureBlobCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeLocationAzureBlobCommandOutput) => void + ): void; + /** * @see {@link DescribeLocationEfsCommand} */ @@ -1089,6 +1141,23 @@ export interface DataSync { cb: (err: any, data?: UpdateDiscoveryJobCommandOutput) => void ): void; + /** + * @see {@link UpdateLocationAzureBlobCommand} + */ + updateLocationAzureBlob( + args: UpdateLocationAzureBlobCommandInput, + options?: __HttpHandlerOptions + ): Promise; + updateLocationAzureBlob( + args: UpdateLocationAzureBlobCommandInput, + cb: (err: any, data?: UpdateLocationAzureBlobCommandOutput) => void + ): void; + updateLocationAzureBlob( + args: UpdateLocationAzureBlobCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateLocationAzureBlobCommandOutput) => void + ): void; + /** * @see {@link UpdateLocationHdfsCommand} */ diff --git a/clients/client-datasync/src/DataSyncClient.ts b/clients/client-datasync/src/DataSyncClient.ts index bc88f459b3f6..77e2e02ad08a 100644 --- a/clients/client-datasync/src/DataSyncClient.ts +++ b/clients/client-datasync/src/DataSyncClient.ts @@ -55,6 +55,10 @@ import { CancelTaskExecutionCommandOutput, } from "./commands/CancelTaskExecutionCommand"; import { CreateAgentCommandInput, CreateAgentCommandOutput } from "./commands/CreateAgentCommand"; +import { + CreateLocationAzureBlobCommandInput, + CreateLocationAzureBlobCommandOutput, +} from "./commands/CreateLocationAzureBlobCommand"; import { CreateLocationEfsCommandInput, CreateLocationEfsCommandOutput } from "./commands/CreateLocationEfsCommand"; import { CreateLocationFsxLustreCommandInput, @@ -89,6 +93,10 @@ import { DescribeDiscoveryJobCommandInput, DescribeDiscoveryJobCommandOutput, } from "./commands/DescribeDiscoveryJobCommand"; +import { + DescribeLocationAzureBlobCommandInput, + DescribeLocationAzureBlobCommandOutput, +} from "./commands/DescribeLocationAzureBlobCommand"; import { DescribeLocationEfsCommandInput, DescribeLocationEfsCommandOutput, @@ -168,6 +176,10 @@ import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/Ta import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; import { UpdateAgentCommandInput, UpdateAgentCommandOutput } from "./commands/UpdateAgentCommand"; import { UpdateDiscoveryJobCommandInput, UpdateDiscoveryJobCommandOutput } from "./commands/UpdateDiscoveryJobCommand"; +import { + UpdateLocationAzureBlobCommandInput, + UpdateLocationAzureBlobCommandOutput, +} from "./commands/UpdateLocationAzureBlobCommand"; import { UpdateLocationHdfsCommandInput, UpdateLocationHdfsCommandOutput } from "./commands/UpdateLocationHdfsCommand"; import { UpdateLocationNfsCommandInput, UpdateLocationNfsCommandOutput } from "./commands/UpdateLocationNfsCommand"; import { @@ -201,6 +213,7 @@ export type ServiceInputTypes = | AddStorageSystemCommandInput | CancelTaskExecutionCommandInput | CreateAgentCommandInput + | CreateLocationAzureBlobCommandInput | CreateLocationEfsCommandInput | CreateLocationFsxLustreCommandInput | CreateLocationFsxOntapCommandInput @@ -217,6 +230,7 @@ export type ServiceInputTypes = | DeleteTaskCommandInput | DescribeAgentCommandInput | DescribeDiscoveryJobCommandInput + | DescribeLocationAzureBlobCommandInput | DescribeLocationEfsCommandInput | DescribeLocationFsxLustreCommandInput | DescribeLocationFsxOntapCommandInput @@ -248,6 +262,7 @@ export type ServiceInputTypes = | UntagResourceCommandInput | UpdateAgentCommandInput | UpdateDiscoveryJobCommandInput + | UpdateLocationAzureBlobCommandInput | UpdateLocationHdfsCommandInput | UpdateLocationNfsCommandInput | UpdateLocationObjectStorageCommandInput @@ -263,6 +278,7 @@ export type ServiceOutputTypes = | AddStorageSystemCommandOutput | CancelTaskExecutionCommandOutput | CreateAgentCommandOutput + | CreateLocationAzureBlobCommandOutput | CreateLocationEfsCommandOutput | CreateLocationFsxLustreCommandOutput | CreateLocationFsxOntapCommandOutput @@ -279,6 +295,7 @@ export type ServiceOutputTypes = | DeleteTaskCommandOutput | DescribeAgentCommandOutput | DescribeDiscoveryJobCommandOutput + | DescribeLocationAzureBlobCommandOutput | DescribeLocationEfsCommandOutput | DescribeLocationFsxLustreCommandOutput | DescribeLocationFsxOntapCommandOutput @@ -310,6 +327,7 @@ export type ServiceOutputTypes = | UntagResourceCommandOutput | UpdateAgentCommandOutput | UpdateDiscoveryJobCommandOutput + | UpdateLocationAzureBlobCommandOutput | UpdateLocationHdfsCommandOutput | UpdateLocationNfsCommandOutput | UpdateLocationObjectStorageCommandOutput diff --git a/clients/client-datasync/src/commands/CreateLocationAzureBlobCommand.ts b/clients/client-datasync/src/commands/CreateLocationAzureBlobCommand.ts new file mode 100644 index 000000000000..48d0e4d218ec --- /dev/null +++ b/clients/client-datasync/src/commands/CreateLocationAzureBlobCommand.ts @@ -0,0 +1,171 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@smithy/types"; + +import { DataSyncClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DataSyncClient"; +import { + CreateLocationAzureBlobRequest, + CreateLocationAzureBlobRequestFilterSensitiveLog, + CreateLocationAzureBlobResponse, +} from "../models/models_0"; +import { de_CreateLocationAzureBlobCommand, se_CreateLocationAzureBlobCommand } from "../protocols/Aws_json1_1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link CreateLocationAzureBlobCommand}. + */ +export interface CreateLocationAzureBlobCommandInput extends CreateLocationAzureBlobRequest {} +/** + * @public + * + * The output of {@link CreateLocationAzureBlobCommand}. + */ +export interface CreateLocationAzureBlobCommandOutput extends CreateLocationAzureBlobResponse, __MetadataBearer {} + +/** + * @public + *

Creates an endpoint for a Microsoft Azure Blob Storage container that DataSync can use as a transfer source or destination.

+ *

Before you begin, make sure you know how DataSync accesses Azure Blob Storage and works with access tiers and blob types. You also need a DataSync agent that can connect to your + * container.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { DataSyncClient, CreateLocationAzureBlobCommand } from "@aws-sdk/client-datasync"; // ES Modules import + * // const { DataSyncClient, CreateLocationAzureBlobCommand } = require("@aws-sdk/client-datasync"); // CommonJS import + * const client = new DataSyncClient(config); + * const input = { // CreateLocationAzureBlobRequest + * ContainerUrl: "STRING_VALUE", // required + * AuthenticationType: "SAS", // required + * SasConfiguration: { // AzureBlobSasConfiguration + * Token: "STRING_VALUE", // required + * }, + * BlobType: "BLOCK", + * AccessTier: "HOT" || "COOL" || "ARCHIVE", + * Subdirectory: "STRING_VALUE", + * AgentArns: [ // AgentArnList // required + * "STRING_VALUE", + * ], + * Tags: [ // InputTagList + * { // TagListEntry + * Key: "STRING_VALUE", // required + * Value: "STRING_VALUE", + * }, + * ], + * }; + * const command = new CreateLocationAzureBlobCommand(input); + * const response = await client.send(command); + * // { // CreateLocationAzureBlobResponse + * // LocationArn: "STRING_VALUE", + * // }; + * + * ``` + * + * @param CreateLocationAzureBlobCommandInput - {@link CreateLocationAzureBlobCommandInput} + * @returns {@link CreateLocationAzureBlobCommandOutput} + * @see {@link CreateLocationAzureBlobCommandInput} for command's `input` shape. + * @see {@link CreateLocationAzureBlobCommandOutput} for command's `response` shape. + * @see {@link DataSyncClientResolvedConfig | config} for DataSyncClient's `config` shape. + * + * @throws {@link InternalException} (server fault) + *

This exception is thrown when an error occurs in the DataSync + * service.

+ * + * @throws {@link InvalidRequestException} (client fault) + *

This exception is thrown when the client submits a malformed request.

+ * + * @throws {@link DataSyncServiceException} + *

Base exception class for all service exceptions from DataSync service.

+ * + */ +export class CreateLocationAzureBlobCommand extends $Command< + CreateLocationAzureBlobCommandInput, + CreateLocationAzureBlobCommandOutput, + DataSyncClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: CreateLocationAzureBlobCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: DataSyncClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, CreateLocationAzureBlobCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "DataSyncClient"; + const commandName = "CreateLocationAzureBlobCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateLocationAzureBlobRequestFilterSensitiveLog, + outputFilterSensitiveLog: (_: any) => _, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: CreateLocationAzureBlobCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_CreateLocationAzureBlobCommand(input, context); + } + + /** + * @internal + */ + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_CreateLocationAzureBlobCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-datasync/src/commands/CreateLocationNfsCommand.ts b/clients/client-datasync/src/commands/CreateLocationNfsCommand.ts index bd8930878a5a..cedb00213216 100644 --- a/clients/client-datasync/src/commands/CreateLocationNfsCommand.ts +++ b/clients/client-datasync/src/commands/CreateLocationNfsCommand.ts @@ -36,8 +36,8 @@ export interface CreateLocationNfsCommandOutput extends CreateLocationNfsRespons /** * @public - *

Defines a file system on a Network File System (NFS) server that can be read from or - * written to.

+ *

Creates an endpoint for an Network File System (NFS) file server that DataSync can use for a + * data transfer.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-datasync/src/commands/CreateLocationSmbCommand.ts b/clients/client-datasync/src/commands/CreateLocationSmbCommand.ts index ee892ec21560..e73f7e1fd6f8 100644 --- a/clients/client-datasync/src/commands/CreateLocationSmbCommand.ts +++ b/clients/client-datasync/src/commands/CreateLocationSmbCommand.ts @@ -40,7 +40,9 @@ export interface CreateLocationSmbCommandOutput extends CreateLocationSmbRespons /** * @public - *

Creates an endpoint for a Server Message Block (SMB) file server that DataSync can access for a transfer. For more information, see Creating an SMB location.

+ *

Creates an endpoint for a Server Message Block (SMB) file server that DataSync can use for a data transfer.

+ *

Before you begin, make sure that you understand how DataSync + * accesses an SMB file server.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-datasync/src/commands/DescribeLocationAzureBlobCommand.ts b/clients/client-datasync/src/commands/DescribeLocationAzureBlobCommand.ts new file mode 100644 index 000000000000..1652a4a03560 --- /dev/null +++ b/clients/client-datasync/src/commands/DescribeLocationAzureBlobCommand.ts @@ -0,0 +1,160 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@smithy/types"; + +import { DataSyncClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DataSyncClient"; +import { DescribeLocationAzureBlobRequest, DescribeLocationAzureBlobResponse } from "../models/models_0"; +import { de_DescribeLocationAzureBlobCommand, se_DescribeLocationAzureBlobCommand } from "../protocols/Aws_json1_1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link DescribeLocationAzureBlobCommand}. + */ +export interface DescribeLocationAzureBlobCommandInput extends DescribeLocationAzureBlobRequest {} +/** + * @public + * + * The output of {@link DescribeLocationAzureBlobCommand}. + */ +export interface DescribeLocationAzureBlobCommandOutput extends DescribeLocationAzureBlobResponse, __MetadataBearer {} + +/** + * @public + *

Provides details about how an DataSync transfer location for Microsoft Azure Blob Storage is configured.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { DataSyncClient, DescribeLocationAzureBlobCommand } from "@aws-sdk/client-datasync"; // ES Modules import + * // const { DataSyncClient, DescribeLocationAzureBlobCommand } = require("@aws-sdk/client-datasync"); // CommonJS import + * const client = new DataSyncClient(config); + * const input = { // DescribeLocationAzureBlobRequest + * LocationArn: "STRING_VALUE", // required + * }; + * const command = new DescribeLocationAzureBlobCommand(input); + * const response = await client.send(command); + * // { // DescribeLocationAzureBlobResponse + * // LocationArn: "STRING_VALUE", + * // LocationUri: "STRING_VALUE", + * // AuthenticationType: "SAS", + * // BlobType: "BLOCK", + * // AccessTier: "HOT" || "COOL" || "ARCHIVE", + * // AgentArns: [ // AgentArnList + * // "STRING_VALUE", + * // ], + * // CreationTime: new Date("TIMESTAMP"), + * // }; + * + * ``` + * + * @param DescribeLocationAzureBlobCommandInput - {@link DescribeLocationAzureBlobCommandInput} + * @returns {@link DescribeLocationAzureBlobCommandOutput} + * @see {@link DescribeLocationAzureBlobCommandInput} for command's `input` shape. + * @see {@link DescribeLocationAzureBlobCommandOutput} for command's `response` shape. + * @see {@link DataSyncClientResolvedConfig | config} for DataSyncClient's `config` shape. + * + * @throws {@link InternalException} (server fault) + *

This exception is thrown when an error occurs in the DataSync + * service.

+ * + * @throws {@link InvalidRequestException} (client fault) + *

This exception is thrown when the client submits a malformed request.

+ * + * @throws {@link DataSyncServiceException} + *

Base exception class for all service exceptions from DataSync service.

+ * + */ +export class DescribeLocationAzureBlobCommand extends $Command< + DescribeLocationAzureBlobCommandInput, + DescribeLocationAzureBlobCommandOutput, + DataSyncClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: DescribeLocationAzureBlobCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: DataSyncClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, DescribeLocationAzureBlobCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "DataSyncClient"; + const commandName = "DescribeLocationAzureBlobCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: (_: any) => _, + outputFilterSensitiveLog: (_: any) => _, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: DescribeLocationAzureBlobCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_DescribeLocationAzureBlobCommand(input, context); + } + + /** + * @internal + */ + private deserialize( + output: __HttpResponse, + context: __SerdeContext + ): Promise { + return de_DescribeLocationAzureBlobCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-datasync/src/commands/DescribeTaskCommand.ts b/clients/client-datasync/src/commands/DescribeTaskCommand.ts index 670aadbe0d0c..97ffbdf70388 100644 --- a/clients/client-datasync/src/commands/DescribeTaskCommand.ts +++ b/clients/client-datasync/src/commands/DescribeTaskCommand.ts @@ -36,7 +36,7 @@ export interface DescribeTaskCommandOutput extends DescribeTaskResponse, __Metad /** * @public - *

Returns metadata about a task.

+ *

Provides information about an DataSync transfer task.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-datasync/src/commands/DescribeTaskExecutionCommand.ts b/clients/client-datasync/src/commands/DescribeTaskExecutionCommand.ts index 91ef6923213c..9e5cb95e6b25 100644 --- a/clients/client-datasync/src/commands/DescribeTaskExecutionCommand.ts +++ b/clients/client-datasync/src/commands/DescribeTaskExecutionCommand.ts @@ -36,7 +36,8 @@ export interface DescribeTaskExecutionCommandOutput extends DescribeTaskExecutio /** * @public - *

Returns detailed metadata about a task that is being executed.

+ *

Provides information about an DataSync transfer task that's + * running.

* @example * Use a bare-bones client and the command you need to make an API call. * ```javascript diff --git a/clients/client-datasync/src/commands/UpdateLocationAzureBlobCommand.ts b/clients/client-datasync/src/commands/UpdateLocationAzureBlobCommand.ts new file mode 100644 index 000000000000..c2eb129c0fae --- /dev/null +++ b/clients/client-datasync/src/commands/UpdateLocationAzureBlobCommand.ts @@ -0,0 +1,161 @@ +// smithy-typescript generated code +import { EndpointParameterInstructions, getEndpointPlugin } from "@smithy/middleware-endpoint"; +import { getSerdePlugin } from "@smithy/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@smithy/protocol-http"; +import { Command as $Command } from "@smithy/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@smithy/types"; + +import { DataSyncClientResolvedConfig, ServiceInputTypes, ServiceOutputTypes } from "../DataSyncClient"; +import { + UpdateLocationAzureBlobRequest, + UpdateLocationAzureBlobRequestFilterSensitiveLog, + UpdateLocationAzureBlobResponse, +} from "../models/models_0"; +import { de_UpdateLocationAzureBlobCommand, se_UpdateLocationAzureBlobCommand } from "../protocols/Aws_json1_1"; + +/** + * @public + */ +export { __MetadataBearer, $Command }; +/** + * @public + * + * The input for {@link UpdateLocationAzureBlobCommand}. + */ +export interface UpdateLocationAzureBlobCommandInput extends UpdateLocationAzureBlobRequest {} +/** + * @public + * + * The output of {@link UpdateLocationAzureBlobCommand}. + */ +export interface UpdateLocationAzureBlobCommandOutput extends UpdateLocationAzureBlobResponse, __MetadataBearer {} + +/** + * @public + *

Modifies some configurations of the Microsoft Azure Blob Storage transfer location that you're using with DataSync.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { DataSyncClient, UpdateLocationAzureBlobCommand } from "@aws-sdk/client-datasync"; // ES Modules import + * // const { DataSyncClient, UpdateLocationAzureBlobCommand } = require("@aws-sdk/client-datasync"); // CommonJS import + * const client = new DataSyncClient(config); + * const input = { // UpdateLocationAzureBlobRequest + * LocationArn: "STRING_VALUE", // required + * Subdirectory: "STRING_VALUE", + * AuthenticationType: "SAS", + * SasConfiguration: { // AzureBlobSasConfiguration + * Token: "STRING_VALUE", // required + * }, + * BlobType: "BLOCK", + * AccessTier: "HOT" || "COOL" || "ARCHIVE", + * AgentArns: [ // AgentArnList + * "STRING_VALUE", + * ], + * }; + * const command = new UpdateLocationAzureBlobCommand(input); + * const response = await client.send(command); + * // {}; + * + * ``` + * + * @param UpdateLocationAzureBlobCommandInput - {@link UpdateLocationAzureBlobCommandInput} + * @returns {@link UpdateLocationAzureBlobCommandOutput} + * @see {@link UpdateLocationAzureBlobCommandInput} for command's `input` shape. + * @see {@link UpdateLocationAzureBlobCommandOutput} for command's `response` shape. + * @see {@link DataSyncClientResolvedConfig | config} for DataSyncClient's `config` shape. + * + * @throws {@link InternalException} (server fault) + *

This exception is thrown when an error occurs in the DataSync + * service.

+ * + * @throws {@link InvalidRequestException} (client fault) + *

This exception is thrown when the client submits a malformed request.

+ * + * @throws {@link DataSyncServiceException} + *

Base exception class for all service exceptions from DataSync service.

+ * + */ +export class UpdateLocationAzureBlobCommand extends $Command< + UpdateLocationAzureBlobCommandInput, + UpdateLocationAzureBlobCommandOutput, + DataSyncClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + public static getEndpointParameterInstructions(): EndpointParameterInstructions { + return { + UseFIPS: { type: "builtInParams", name: "useFipsEndpoint" }, + Endpoint: { type: "builtInParams", name: "endpoint" }, + Region: { type: "builtInParams", name: "region" }, + UseDualStack: { type: "builtInParams", name: "useDualstackEndpoint" }, + }; + } + + /** + * @public + */ + constructor(readonly input: UpdateLocationAzureBlobCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: DataSyncClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + this.middlewareStack.use( + getEndpointPlugin(configuration, UpdateLocationAzureBlobCommand.getEndpointParameterInstructions()) + ); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "DataSyncClient"; + const commandName = "UpdateLocationAzureBlobCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateLocationAzureBlobRequestFilterSensitiveLog, + outputFilterSensitiveLog: (_: any) => _, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + /** + * @internal + */ + private serialize(input: UpdateLocationAzureBlobCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return se_UpdateLocationAzureBlobCommand(input, context); + } + + /** + * @internal + */ + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return de_UpdateLocationAzureBlobCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-datasync/src/commands/index.ts b/clients/client-datasync/src/commands/index.ts index d58c22305222..689ca0da5d68 100644 --- a/clients/client-datasync/src/commands/index.ts +++ b/clients/client-datasync/src/commands/index.ts @@ -2,6 +2,7 @@ export * from "./AddStorageSystemCommand"; export * from "./CancelTaskExecutionCommand"; export * from "./CreateAgentCommand"; +export * from "./CreateLocationAzureBlobCommand"; export * from "./CreateLocationEfsCommand"; export * from "./CreateLocationFsxLustreCommand"; export * from "./CreateLocationFsxOntapCommand"; @@ -18,6 +19,7 @@ export * from "./DeleteLocationCommand"; export * from "./DeleteTaskCommand"; export * from "./DescribeAgentCommand"; export * from "./DescribeDiscoveryJobCommand"; +export * from "./DescribeLocationAzureBlobCommand"; export * from "./DescribeLocationEfsCommand"; export * from "./DescribeLocationFsxLustreCommand"; export * from "./DescribeLocationFsxOntapCommand"; @@ -49,6 +51,7 @@ export * from "./TagResourceCommand"; export * from "./UntagResourceCommand"; export * from "./UpdateAgentCommand"; export * from "./UpdateDiscoveryJobCommand"; +export * from "./UpdateLocationAzureBlobCommand"; export * from "./UpdateLocationHdfsCommand"; export * from "./UpdateLocationNfsCommand"; export * from "./UpdateLocationObjectStorageCommand"; diff --git a/clients/client-datasync/src/models/models_0.ts b/clients/client-datasync/src/models/models_0.ts index 42b31e83a2f0..4a17dffe9838 100644 --- a/clients/client-datasync/src/models/models_0.ts +++ b/clients/client-datasync/src/models/models_0.ts @@ -94,7 +94,8 @@ export interface AddStorageSystemRequest { /** *

Specifies the Amazon Resource Name (ARN) of the DataSync agent that connects to - * and reads from your on-premises storage system's management interface.

+ * and reads from your on-premises storage system's management interface. You can only specify + * one ARN.

*/ AgentArns: string[] | undefined; @@ -238,6 +239,66 @@ export const Atime = { */ export type Atime = (typeof Atime)[keyof typeof Atime]; +/** + * @public + * @enum + */ +export const AzureAccessTier = { + ARCHIVE: "ARCHIVE", + COOL: "COOL", + HOT: "HOT", +} as const; + +/** + * @public + */ +export type AzureAccessTier = (typeof AzureAccessTier)[keyof typeof AzureAccessTier]; + +/** + * @public + * @enum + */ +export const AzureBlobAuthenticationType = { + SAS: "SAS", +} as const; + +/** + * @public + */ +export type AzureBlobAuthenticationType = + (typeof AzureBlobAuthenticationType)[keyof typeof AzureBlobAuthenticationType]; + +/** + * @public + *

The shared access signature (SAS) configuration that allows DataSync to access your Microsoft Azure Blob Storage.

+ *

For more information, see SAS + * tokens for accessing your Azure Blob Storage.

+ */ +export interface AzureBlobSasConfiguration { + /** + *

Specifies a SAS token that provides permissions at the Azure storage account, container, + * or folder level.

+ *

The token is part of the SAS URI string that comes after the storage resource URI and a question mark. A token looks something like this:

+ *

+ * sp=r&st=2023-12-20T14:54:52Z&se=2023-12-20T22:54:52Z&spr=https&sv=2021-06-08&sr=c&sig=aBBKDWQvyuVcTPH9EBp%2FXTI9E%2F%2Fmq171%2BZU178wcwqU%3D + *

+ */ + Token: string | undefined; +} + +/** + * @public + * @enum + */ +export const AzureBlobType = { + BLOCK: "BLOCK", +} as const; + +/** + * @public + */ +export type AzureBlobType = (typeof AzureBlobType)[keyof typeof AzureBlobType]; + /** * @public *

CancelTaskExecutionRequest

@@ -314,15 +375,14 @@ export interface CreateAgentRequest { *

Specifies the ARN of the subnet where you want to run your DataSync task when * using a VPC endpoint. This is the subnet where DataSync creates and manages the * network - * interfaces for your transfer.

+ * interfaces for your transfer. You can only specify one ARN.

*/ SubnetArns?: string[]; /** *

Specifies the Amazon Resource Name (ARN) of the security group that protects your task's * network - * interfaces when using a virtual private cloud (VPC) - * endpoint.

+ * interfaces when using a virtual private cloud (VPC) endpoint. You can only specify one ARN.

*/ SecurityGroupArns?: string[]; } @@ -339,6 +399,66 @@ export interface CreateAgentResponse { AgentArn?: string; } +/** + * @public + */ +export interface CreateLocationAzureBlobRequest { + /** + *

Specifies the URL of the Azure Blob Storage container involved in your transfer.

+ */ + ContainerUrl: string | undefined; + + /** + *

Specifies the authentication method DataSync uses to access your Azure Blob Storage. DataSync can access blob storage using a shared access signature (SAS).

+ */ + AuthenticationType: AzureBlobAuthenticationType | string | undefined; + + /** + *

Specifies the SAS configuration that allows DataSync to access your Azure Blob Storage.

+ */ + SasConfiguration?: AzureBlobSasConfiguration; + + /** + *

Specifies the type of blob that you want your objects or files to be when transferring + * them into Azure Blob Storage. Currently, DataSync only supports moving data into + * Azure Blob Storage as block blobs. For more information on blob types, see the Azure Blob Storage documentation.

+ */ + BlobType?: AzureBlobType | string; + + /** + *

Specifies the access tier that you want your objects or files transferred into. This only applies when using the location as a transfer destination. For more information, see Access tiers.

+ */ + AccessTier?: AzureAccessTier | string; + + /** + *

Specifies path segments if you want to limit your transfer to a virtual directory in your + * container (for example, /my/images).

+ */ + Subdirectory?: string; + + /** + *

Specifies the Amazon Resource Name (ARN) of the DataSync agent that can connect with your Azure Blob Storage container.

+ *

You can specify more than one agent. For more information, see Using multiple + * agents for your transfer.

+ */ + AgentArns: string[] | undefined; + + /** + *

Specifies labels that help you categorize, filter, and search for your Amazon Web Services resources. We recommend creating at least a name tag for your transfer location.

+ */ + Tags?: TagListEntry[]; +} + +/** + * @public + */ +export interface CreateLocationAzureBlobResponse { + /** + *

The ARN of the Azure Blob Storage transfer location that you created.

+ */ + LocationArn?: string; +} + /** * @public *

The subnet and security groups that DataSync uses to access your Amazon EFS file system.

@@ -1100,10 +1220,10 @@ export interface OnPremConfig { */ export interface CreateLocationNfsRequest { /** - *

The subdirectory in the NFS file system that is used to read data from the NFS source - * location or write data to the NFS destination. The NFS path should be a path that's - * exported by the NFS server, or a subdirectory of that path. The path should be such that it - * can be mounted by other NFS clients in your network.

+ *

Specifies the subdirectory in the NFS file server that DataSync transfers to + * or from. The NFS path should be a path that's exported by the NFS server, or a + * subdirectory of that path. The path should be such that it can be mounted by other NFS clients + * in your network.

*

To see all the paths exported by your NFS server, run "showmount -e * nfs-server-name" from an NFS client that has access to your server. You can specify * any directory that appears in the results, and any subdirectory of that directory. Ensure that @@ -1116,40 +1236,38 @@ export interface CreateLocationNfsRequest { * access.

*

If you are copying data to or from your Snowcone device, see NFS Server on * Snowcone for more information.

- *

For information about NFS export configuration, see 18.7. The /etc/exports - * Configuration File in the Red Hat Enterprise Linux documentation.

*/ Subdirectory: string | undefined; /** - *

The name of the NFS server. This value is the IP address or Domain Name Service (DNS) - * name of the NFS server. An agent that is installed on-premises uses this hostname to mount the - * NFS server in a network.

+ *

Specifies the IP address or domain name of your NFS file server. An agent that is + * installed on-premises uses this hostname to mount the NFS server in a network.

*

If you are copying data to or from your Snowcone device, see NFS Server on * Snowcone for more information.

* - *

This name must either be DNS-compliant or must be an IP version 4 (IPv4) - * address.

+ *

You must specify be an IP version 4 address or Domain Name System (DNS)-compliant + * name.

*
*/ ServerHostname: string | undefined; /** - *

Contains a list of Amazon Resource Names (ARNs) of agents that are used to connect to - * an NFS server.

+ *

Specifies the Amazon Resource Names (ARNs) of agents that DataSync uses to + * connect to your NFS file server.

*

If you are copying data to or from your Snowcone device, see NFS Server on * Snowcone for more information.

*/ OnPremConfig: OnPremConfig | undefined; /** - *

The NFS mount options that DataSync can use to mount your NFS share.

+ *

Specifies the mount options that DataSync can use to mount your NFS + * share.

*/ MountOptions?: NfsMountOptions; /** - *

The key-value pair that represents the tag that you want to add to the location. The - * value can be an empty string. We recommend using tags to name your resources.

+ *

Specifies labels that help you categorize, filter, and search for your Amazon Web Services resources. + * We recommend creating at least a name tag for your location.

*/ Tags?: TagListEntry[]; } @@ -1160,8 +1278,7 @@ export interface CreateLocationNfsRequest { */ export interface CreateLocationNfsResponse { /** - *

The Amazon Resource Name (ARN) of the source NFS file system location that is - * created.

+ *

The ARN of the transfer location that you created for your NFS file server.

*/ LocationArn?: string; } @@ -2104,33 +2221,30 @@ export type EndpointType = (typeof EndpointType)[keyof typeof EndpointType]; /** * @public - *

The VPC endpoint, subnet, and security group that an agent uses to access IP addresses in - * a VPC (Virtual Private Cloud).

+ *

Specifies how your DataSync agent connects to Amazon Web Services using a + * virtual private cloud (VPC) service endpoint. An agent that uses a VPC endpoint isn't + * accessible over the public internet.

*/ export interface PrivateLinkConfig { /** - *

The ID of the VPC endpoint that is configured for an agent. An agent that is configured - * with a VPC endpoint will not be accessible over the public internet.

+ *

Specifies the ID of the VPC endpoint that your agent connects to.

*/ VpcEndpointId?: string; /** - *

The private endpoint that is configured for an agent that has access to IP addresses in a - * PrivateLink. An agent that is configured with this endpoint will not be accessible - * over the public internet.

+ *

Specifies the VPC endpoint provided by Amazon Web Services PrivateLink that + * your agent connects to.

*/ PrivateLinkEndpoint?: string; /** - *

The Amazon Resource Names (ARNs) of the subnets that are configured for an agent activated - * in a VPC or an agent that has access to a VPC endpoint.

+ *

Specifies the ARN of the subnet where your VPC endpoint is located. You can only specify + * one ARN.

*/ SubnetArns?: string[]; /** - *

The Amazon Resource Names (ARNs) of the security groups that are configured for the EC2 - * resource that hosts an agent activated in a VPC or an agent that has access to a VPC - * endpoint.

+ *

Specifies the Amazon Resource Names (ARN) of the security group that provides DataSync access to your VPC endpoint. You can only specify one ARN.

*/ SecurityGroupArns?: string[]; } @@ -2246,6 +2360,58 @@ export interface DescribeDiscoveryJobResponse { JobEndTime?: Date; } +/** + * @public + */ +export interface DescribeLocationAzureBlobRequest { + /** + *

Specifies the Amazon Resource Name (ARN) of your Azure Blob Storage transfer location.

+ */ + LocationArn: string | undefined; +} + +/** + * @public + */ +export interface DescribeLocationAzureBlobResponse { + /** + *

The ARN of your Azure Blob Storage transfer location.

+ */ + LocationArn?: string; + + /** + *

The URL of the Azure Blob Storage container involved in your transfer.

+ */ + LocationUri?: string; + + /** + *

The authentication method DataSync uses to access your Azure Blob Storage. DataSync can access blob storage using a shared access signature (SAS).

+ */ + AuthenticationType?: AzureBlobAuthenticationType | string; + + /** + *

The type of blob that you want your objects or files to be when transferring them into + * Azure Blob Storage. Currently, DataSync only supports moving data into Azure Blob + * Storage as block blobs. For more information on blob types, see the Azure Blob Storage documentation.

+ */ + BlobType?: AzureBlobType | string; + + /** + *

The access tier that you want your objects or files transferred into. This only applies when using the location as a transfer destination. For more information, see Access tiers.

+ */ + AccessTier?: AzureAccessTier | string; + + /** + *

The ARNs of the DataSync agents that can connect with your Azure Blob Storage container.

+ */ + AgentArns?: string[]; + + /** + *

The time that your Azure Blob Storage transfer location was created.

+ */ + CreationTime?: Date; +} + /** * @public *

DescribeLocationEfsRequest

@@ -2601,7 +2767,7 @@ export interface DescribeLocationNfsResponse { OnPremConfig?: OnPremConfig; /** - *

The NFS mount options that DataSync used to mount your NFS share.

+ *

The mount options that DataSync uses to mount your NFS share.

*/ MountOptions?: NfsMountOptions; @@ -3536,7 +3702,7 @@ export interface DescribeStorageSystemResourcesResponse { */ export interface DescribeTaskRequest { /** - *

The Amazon Resource Name (ARN) of the task to describe.

+ *

Specifies the Amazon Resource Name (ARN) of the transfer task.

*/ TaskArn: string | undefined; } @@ -3670,7 +3836,7 @@ export interface DescribeTaskResponse { */ export interface DescribeTaskExecutionRequest { /** - *

The Amazon Resource Name (ARN) of the task that is being executed.

+ *

Specifies the Amazon Resource Name (ARN) of the transfer task that's running.

*/ TaskExecutionArn: string | undefined; } @@ -4606,6 +4772,56 @@ export interface UpdateDiscoveryJobRequest { */ export interface UpdateDiscoveryJobResponse {} +/** + * @public + */ +export interface UpdateLocationAzureBlobRequest { + /** + *

Specifies the ARN of the Azure Blob Storage transfer location that you're updating.

+ */ + LocationArn: string | undefined; + + /** + *

Specifies path segments if you want to limit your transfer to a virtual directory in your + * container (for example, /my/images).

+ */ + Subdirectory?: string; + + /** + *

Specifies the authentication method DataSync uses to access your Azure Blob Storage. DataSync can access blob storage using a shared access signature (SAS).

+ */ + AuthenticationType?: AzureBlobAuthenticationType | string; + + /** + *

Specifies the SAS configuration that allows DataSync to access your Azure Blob Storage.

+ */ + SasConfiguration?: AzureBlobSasConfiguration; + + /** + *

Specifies the type of blob that you want your objects or files to be when transferring + * them into Azure Blob Storage. Currently, DataSync only supports moving data into + * Azure Blob Storage as block blobs. For more information on blob types, see the Azure Blob Storage documentation.

+ */ + BlobType?: AzureBlobType | string; + + /** + *

Specifies the access tier that you want your objects or files transferred into. This only applies when using the location as a transfer destination. For more information, see Access tiers.

+ */ + AccessTier?: AzureAccessTier | string; + + /** + *

Specifies the Amazon Resource Name (ARN) of the DataSync agent that can connect with your Azure Blob Storage container.

+ *

You can specify more than one agent. For more information, see Using multiple + * agents for your transfer.

+ */ + AgentArns?: string[]; +} + +/** + * @public + */ +export interface UpdateLocationAzureBlobResponse {} + /** * @public */ @@ -4697,15 +4913,16 @@ export interface UpdateLocationHdfsResponse {} */ export interface UpdateLocationNfsRequest { /** - *

The Amazon Resource Name (ARN) of the NFS location to update.

+ *

Specifies the Amazon Resource Name (ARN) of the NFS location that you want to + * update.

*/ LocationArn: string | undefined; /** - *

The subdirectory in the NFS file system that is used to read data from the NFS source - * location or write data to the NFS destination. The NFS path should be a path that's - * exported by the NFS server, or a subdirectory of that path. The path should be such that it - * can be mounted by other NFS clients in your network.

+ *

Specifies the subdirectory in your NFS file system that DataSync uses to read + * from or write to during a transfer. The NFS path should be exported by the NFS server, or a + * subdirectory of that path. The path should be such that it can be mounted by other NFS clients + * in your network.

*

To see all the paths exported by your NFS server, run "showmount -e * nfs-server-name" from an NFS client that has access to your server. You can specify * any directory that appears in the results, and any subdirectory of that directory. Ensure that @@ -4718,8 +4935,6 @@ export interface UpdateLocationNfsRequest { * execute access.

*

If you are copying data to or from your Snowcone device, see NFS Server on * Snowcone for more information.

- *

For information about NFS export configuration, see 18.7. The /etc/exports - * Configuration File in the Red Hat Enterprise Linux documentation.

*/ Subdirectory?: string; @@ -4889,7 +5104,7 @@ export interface UpdateStorageSystemRequest { /** *

Specifies the Amazon Resource Name (ARN) of the DataSync agent that connects to and reads - * your on-premises storage system.

+ * your on-premises storage system. You can only specify one ARN.

*/ AgentArns?: string[]; @@ -5014,6 +5229,22 @@ export const AddStorageSystemRequestFilterSensitiveLog = (obj: AddStorageSystemR ...(obj.Credentials && { Credentials: CredentialsFilterSensitiveLog(obj.Credentials) }), }); +/** + * @internal + */ +export const AzureBlobSasConfigurationFilterSensitiveLog = (obj: AzureBlobSasConfiguration): any => ({ + ...obj, + ...(obj.Token && { Token: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const CreateLocationAzureBlobRequestFilterSensitiveLog = (obj: CreateLocationAzureBlobRequest): any => ({ + ...obj, + ...(obj.SasConfiguration && { SasConfiguration: AzureBlobSasConfigurationFilterSensitiveLog(obj.SasConfiguration) }), +}); + /** * @internal */ @@ -5086,6 +5317,14 @@ export const DescribeLocationFsxOpenZfsResponseFilterSensitiveLog = (obj: Descri ...(obj.Protocol && { Protocol: FsxProtocolFilterSensitiveLog(obj.Protocol) }), }); +/** + * @internal + */ +export const UpdateLocationAzureBlobRequestFilterSensitiveLog = (obj: UpdateLocationAzureBlobRequest): any => ({ + ...obj, + ...(obj.SasConfiguration && { SasConfiguration: AzureBlobSasConfigurationFilterSensitiveLog(obj.SasConfiguration) }), +}); + /** * @internal */ diff --git a/clients/client-datasync/src/protocols/Aws_json1_1.ts b/clients/client-datasync/src/protocols/Aws_json1_1.ts index 6fc224495033..d845911d482b 100644 --- a/clients/client-datasync/src/protocols/Aws_json1_1.ts +++ b/clients/client-datasync/src/protocols/Aws_json1_1.ts @@ -33,6 +33,10 @@ import { CancelTaskExecutionCommandOutput, } from "../commands/CancelTaskExecutionCommand"; import { CreateAgentCommandInput, CreateAgentCommandOutput } from "../commands/CreateAgentCommand"; +import { + CreateLocationAzureBlobCommandInput, + CreateLocationAzureBlobCommandOutput, +} from "../commands/CreateLocationAzureBlobCommand"; import { CreateLocationEfsCommandInput, CreateLocationEfsCommandOutput } from "../commands/CreateLocationEfsCommand"; import { CreateLocationFsxLustreCommandInput, @@ -67,6 +71,10 @@ import { DescribeDiscoveryJobCommandInput, DescribeDiscoveryJobCommandOutput, } from "../commands/DescribeDiscoveryJobCommand"; +import { + DescribeLocationAzureBlobCommandInput, + DescribeLocationAzureBlobCommandOutput, +} from "../commands/DescribeLocationAzureBlobCommand"; import { DescribeLocationEfsCommandInput, DescribeLocationEfsCommandOutput, @@ -146,6 +154,10 @@ import { TagResourceCommandInput, TagResourceCommandOutput } from "../commands/T import { UntagResourceCommandInput, UntagResourceCommandOutput } from "../commands/UntagResourceCommand"; import { UpdateAgentCommandInput, UpdateAgentCommandOutput } from "../commands/UpdateAgentCommand"; import { UpdateDiscoveryJobCommandInput, UpdateDiscoveryJobCommandOutput } from "../commands/UpdateDiscoveryJobCommand"; +import { + UpdateLocationAzureBlobCommandInput, + UpdateLocationAzureBlobCommandOutput, +} from "../commands/UpdateLocationAzureBlobCommand"; import { UpdateLocationHdfsCommandInput, UpdateLocationHdfsCommandOutput } from "../commands/UpdateLocationHdfsCommand"; import { UpdateLocationNfsCommandInput, UpdateLocationNfsCommandOutput } from "../commands/UpdateLocationNfsCommand"; import { @@ -165,8 +177,10 @@ import { import { DataSyncServiceException as __BaseException } from "../models/DataSyncServiceException"; import { AddStorageSystemRequest, + AzureBlobSasConfiguration, CancelTaskExecutionRequest, CreateAgentRequest, + CreateLocationAzureBlobRequest, CreateLocationEfsRequest, CreateLocationFsxLustreRequest, CreateLocationFsxOntapRequest, @@ -186,6 +200,8 @@ import { DescribeAgentResponse, DescribeDiscoveryJobRequest, DescribeDiscoveryJobResponse, + DescribeLocationAzureBlobRequest, + DescribeLocationAzureBlobResponse, DescribeLocationEfsRequest, DescribeLocationEfsResponse, DescribeLocationFsxLustreRequest, @@ -261,6 +277,7 @@ import { UntagResourceRequest, UpdateAgentRequest, UpdateDiscoveryJobRequest, + UpdateLocationAzureBlobRequest, UpdateLocationHdfsRequest, UpdateLocationNfsRequest, UpdateLocationObjectStorageRequest, @@ -316,6 +333,19 @@ export const se_CreateAgentCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +/** + * serializeAws_json1_1CreateLocationAzureBlobCommand + */ +export const se_CreateLocationAzureBlobCommand = async ( + input: CreateLocationAzureBlobCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("CreateLocationAzureBlob"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_json1_1CreateLocationEfsCommand */ @@ -531,6 +561,19 @@ export const se_DescribeDiscoveryJobCommand = async ( return buildHttpRpcRequest(context, headers, "/", resolvedHostname, body); }; +/** + * serializeAws_json1_1DescribeLocationAzureBlobCommand + */ +export const se_DescribeLocationAzureBlobCommand = async ( + input: DescribeLocationAzureBlobCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("DescribeLocationAzureBlob"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_json1_1DescribeLocationEfsCommand */ @@ -1004,6 +1047,19 @@ export const se_UpdateDiscoveryJobCommand = async ( return buildHttpRpcRequest(context, headers, "/", resolvedHostname, body); }; +/** + * serializeAws_json1_1UpdateLocationAzureBlobCommand + */ +export const se_UpdateLocationAzureBlobCommand = async ( + input: UpdateLocationAzureBlobCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = sharedHeaders("UpdateLocationAzureBlob"); + let body: any; + body = JSON.stringify(_json(input)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + /** * serializeAws_json1_1UpdateLocationHdfsCommand */ @@ -1249,6 +1305,55 @@ const de_CreateAgentCommandError = async ( } }; +/** + * deserializeAws_json1_1CreateLocationAzureBlobCommand + */ +export const de_CreateLocationAzureBlobCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_CreateLocationAzureBlobCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: CreateLocationAzureBlobCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_1CreateLocationAzureBlobCommandError + */ +const de_CreateLocationAzureBlobCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalException": + case "com.amazonaws.datasync#InternalException": + throw await de_InternalExceptionRes(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.datasync#InvalidRequestException": + throw await de_InvalidRequestExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_json1_1CreateLocationEfsCommand */ @@ -2033,6 +2138,55 @@ const de_DescribeDiscoveryJobCommandError = async ( } }; +/** + * deserializeAws_json1_1DescribeLocationAzureBlobCommand + */ +export const de_DescribeLocationAzureBlobCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_DescribeLocationAzureBlobCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = de_DescribeLocationAzureBlobResponse(data, context); + const response: DescribeLocationAzureBlobCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_1DescribeLocationAzureBlobCommandError + */ +const de_DescribeLocationAzureBlobCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalException": + case "com.amazonaws.datasync#InternalException": + throw await de_InternalExceptionRes(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.datasync#InvalidRequestException": + throw await de_InvalidRequestExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_json1_1DescribeLocationEfsCommand */ @@ -3552,6 +3706,55 @@ const de_UpdateDiscoveryJobCommandError = async ( } }; +/** + * deserializeAws_json1_1UpdateLocationAzureBlobCommand + */ +export const de_UpdateLocationAzureBlobCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return de_UpdateLocationAzureBlobCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = _json(data); + const response: UpdateLocationAzureBlobCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return response; +}; + +/** + * deserializeAws_json1_1UpdateLocationAzureBlobCommandError + */ +const de_UpdateLocationAzureBlobCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseErrorBody(output.body, context), + }; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalException": + case "com.amazonaws.datasync#InternalException": + throw await de_InternalExceptionRes(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.datasync#InvalidRequestException": + throw await de_InvalidRequestExceptionRes(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + return throwDefaultError({ + output, + parsedBody, + errorCode, + }); + } +}; + /** * deserializeAws_json1_1UpdateLocationHdfsCommand */ @@ -3942,10 +4145,14 @@ const se_AddStorageSystemRequest = (input: AddStorageSystemRequest, context: __S // se_AgentArnList omitted. +// se_AzureBlobSasConfiguration omitted. + // se_CancelTaskExecutionRequest omitted. // se_CreateAgentRequest omitted. +// se_CreateLocationAzureBlobRequest omitted. + // se_CreateLocationEfsRequest omitted. // se_CreateLocationFsxLustreRequest omitted. @@ -4018,6 +4225,8 @@ const se_CreateLocationObjectStorageRequest = ( // se_DescribeDiscoveryJobRequest omitted. +// se_DescribeLocationAzureBlobRequest omitted. + // se_DescribeLocationEfsRequest omitted. // se_DescribeLocationFsxLustreRequest omitted. @@ -4168,6 +4377,8 @@ const se_StartDiscoveryJobRequest = (input: StartDiscoveryJobRequest, context: _ // se_UpdateDiscoveryJobRequest omitted. +// se_UpdateLocationAzureBlobRequest omitted. + /** * serializeAws_json1_1UpdateLocationHdfsRequest */ @@ -4232,6 +4443,8 @@ const se_UpdateLocationObjectStorageRequest = ( // de_CreateAgentResponse omitted. +// de_CreateLocationAzureBlobResponse omitted. + // de_CreateLocationEfsResponse omitted. // de_CreateLocationFsxLustreResponse omitted. @@ -4289,6 +4502,24 @@ const de_DescribeDiscoveryJobResponse = (output: any, context: __SerdeContext): }) as any; }; +/** + * deserializeAws_json1_1DescribeLocationAzureBlobResponse + */ +const de_DescribeLocationAzureBlobResponse = ( + output: any, + context: __SerdeContext +): DescribeLocationAzureBlobResponse => { + return take(output, { + AccessTier: __expectString, + AgentArns: _json, + AuthenticationType: __expectString, + BlobType: __expectString, + CreationTime: (_: any) => __expectNonNull(__parseEpochTimestamp(__expectNumber(_))), + LocationArn: __expectString, + LocationUri: __expectString, + }) as any; +}; + /** * deserializeAws_json1_1DescribeLocationEfsResponse */ @@ -4857,6 +5088,8 @@ const de_Throughput = (output: any, context: __SerdeContext): Throughput => { // de_UpdateDiscoveryJobResponse omitted. +// de_UpdateLocationAzureBlobResponse omitted. + // de_UpdateLocationHdfsResponse omitted. // de_UpdateLocationNfsResponse omitted. diff --git a/codegen/sdk-codegen/aws-models/datasync.json b/codegen/sdk-codegen/aws-models/datasync.json index 1a6fd70df02e..e7bc6334737f 100644 --- a/codegen/sdk-codegen/aws-models/datasync.json +++ b/codegen/sdk-codegen/aws-models/datasync.json @@ -82,7 +82,7 @@ "AgentArns": { "target": "com.amazonaws.datasync#DiscoveryAgentArnList", "traits": { - "smithy.api#documentation": "

Specifies the Amazon Resource Name (ARN) of the DataSync agent that connects to\n and reads from your on-premises storage system's management interface.

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

Specifies the Amazon Resource Name (ARN) of the DataSync agent that connects to\n and reads from your on-premises storage system's management interface. You can only specify\n one ARN.

", "smithy.api#required": {} } }, @@ -227,6 +227,97 @@ } } }, + "com.amazonaws.datasync#AzureAccessTier": { + "type": "enum", + "members": { + "HOT": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "HOT" + } + }, + "COOL": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "COOL" + } + }, + "ARCHIVE": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "ARCHIVE" + } + } + } + }, + "com.amazonaws.datasync#AzureBlobAuthenticationType": { + "type": "enum", + "members": { + "SAS": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "SAS" + } + } + } + }, + "com.amazonaws.datasync#AzureBlobContainerUrl": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 325 + }, + "smithy.api#pattern": "^https:\\/\\/[A-Za-z0-9]((\\.|-+)?[A-Za-z0-9]){0,252}\\/[a-z0-9](-?[a-z0-9]){2,62}$" + } + }, + "com.amazonaws.datasync#AzureBlobSasConfiguration": { + "type": "structure", + "members": { + "Token": { + "target": "com.amazonaws.datasync#AzureBlobSasToken", + "traits": { + "smithy.api#documentation": "

Specifies a SAS token that provides permissions at the Azure storage account, container,\n or folder level.

\n

The token is part of the SAS URI string that comes after the storage resource URI and a question mark. A token looks something like this:

\n

\n sp=r&st=2023-12-20T14:54:52Z&se=2023-12-20T22:54:52Z&spr=https&sv=2021-06-08&sr=c&sig=aBBKDWQvyuVcTPH9EBp%2FXTI9E%2F%2Fmq171%2BZU178wcwqU%3D\n

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

The shared access signature (SAS) configuration that allows DataSync to access your Microsoft Azure Blob Storage.

\n

For more information, see SAS\n tokens for accessing your Azure Blob Storage.

" + } + }, + "com.amazonaws.datasync#AzureBlobSasToken": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 255 + }, + "smithy.api#pattern": "^.+$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.datasync#AzureBlobSubdirectory": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 1024 + }, + "smithy.api#pattern": "^[\\p{L}\\p{M}\\p{Z}\\p{S}\\p{N}\\p{P}\\p{C}]*$" + } + }, + "com.amazonaws.datasync#AzureBlobType": { + "type": "enum", + "members": { + "BLOCK": { + "target": "smithy.api#Unit", + "traits": { + "smithy.api#enumValue": "BLOCK" + } + } + } + }, "com.amazonaws.datasync#BytesPerSecond": { "type": "long", "traits": { @@ -364,13 +455,13 @@ "SubnetArns": { "target": "com.amazonaws.datasync#PLSubnetArnList", "traits": { - "smithy.api#documentation": "

Specifies the ARN of the subnet where you want to run your DataSync task when\n using a VPC endpoint. This is the subnet where DataSync creates and manages the\n network\n interfaces for your transfer.

" + "smithy.api#documentation": "

Specifies the ARN of the subnet where you want to run your DataSync task when\n using a VPC endpoint. This is the subnet where DataSync creates and manages the\n network\n interfaces for your transfer. You can only specify one ARN.

" } }, "SecurityGroupArns": { "target": "com.amazonaws.datasync#PLSecurityGroupArnList", "traits": { - "smithy.api#documentation": "

Specifies the Amazon Resource Name (ARN) of the security group that protects your task's\n network\n interfaces when using a virtual private cloud (VPC)\n endpoint.

" + "smithy.api#documentation": "

Specifies the Amazon Resource Name (ARN) of the security group that protects your task's\n network\n interfaces when using a virtual private cloud (VPC) endpoint. You can only specify one ARN.

" } } }, @@ -394,6 +485,99 @@ "smithy.api#output": {} } }, + "com.amazonaws.datasync#CreateLocationAzureBlob": { + "type": "operation", + "input": { + "target": "com.amazonaws.datasync#CreateLocationAzureBlobRequest" + }, + "output": { + "target": "com.amazonaws.datasync#CreateLocationAzureBlobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.datasync#InternalException" + }, + { + "target": "com.amazonaws.datasync#InvalidRequestException" + } + ], + "traits": { + "smithy.api#documentation": "

Creates an endpoint for a Microsoft Azure Blob Storage container that DataSync can use as a transfer source or destination.

\n

Before you begin, make sure you know how DataSync accesses Azure Blob Storage and works with access tiers and blob types. You also need a DataSync agent that can connect to your\n container.

" + } + }, + "com.amazonaws.datasync#CreateLocationAzureBlobRequest": { + "type": "structure", + "members": { + "ContainerUrl": { + "target": "com.amazonaws.datasync#AzureBlobContainerUrl", + "traits": { + "smithy.api#documentation": "

Specifies the URL of the Azure Blob Storage container involved in your transfer.

", + "smithy.api#required": {} + } + }, + "AuthenticationType": { + "target": "com.amazonaws.datasync#AzureBlobAuthenticationType", + "traits": { + "smithy.api#documentation": "

Specifies the authentication method DataSync uses to access your Azure Blob Storage. DataSync can access blob storage using a shared access signature (SAS).

", + "smithy.api#required": {} + } + }, + "SasConfiguration": { + "target": "com.amazonaws.datasync#AzureBlobSasConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies the SAS configuration that allows DataSync to access your Azure Blob Storage.

" + } + }, + "BlobType": { + "target": "com.amazonaws.datasync#AzureBlobType", + "traits": { + "smithy.api#documentation": "

Specifies the type of blob that you want your objects or files to be when transferring\n them into Azure Blob Storage. Currently, DataSync only supports moving data into\n Azure Blob Storage as block blobs. For more information on blob types, see the Azure Blob Storage documentation.

" + } + }, + "AccessTier": { + "target": "com.amazonaws.datasync#AzureAccessTier", + "traits": { + "smithy.api#documentation": "

Specifies the access tier that you want your objects or files transferred into. This only applies when using the location as a transfer destination. For more information, see Access tiers.

" + } + }, + "Subdirectory": { + "target": "com.amazonaws.datasync#AzureBlobSubdirectory", + "traits": { + "smithy.api#documentation": "

Specifies path segments if you want to limit your transfer to a virtual directory in your\n container (for example, /my/images).

" + } + }, + "AgentArns": { + "target": "com.amazonaws.datasync#AgentArnList", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon Resource Name (ARN) of the DataSync agent that can connect with your Azure Blob Storage container.

\n

You can specify more than one agent. For more information, see Using multiple\n agents for your transfer.

", + "smithy.api#required": {} + } + }, + "Tags": { + "target": "com.amazonaws.datasync#InputTagList", + "traits": { + "smithy.api#documentation": "

Specifies labels that help you categorize, filter, and search for your Amazon Web Services resources. We recommend creating at least a name tag for your transfer location.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.datasync#CreateLocationAzureBlobResponse": { + "type": "structure", + "members": { + "LocationArn": { + "target": "com.amazonaws.datasync#LocationArn", + "traits": { + "smithy.api#documentation": "

The ARN of the Azure Blob Storage transfer location that you created.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.datasync#CreateLocationEfs": { "type": "operation", "input": { @@ -927,7 +1111,7 @@ } ], "traits": { - "smithy.api#documentation": "

Defines a file system on a Network File System (NFS) server that can be read from or\n written to.

" + "smithy.api#documentation": "

Creates an endpoint for an Network File System (NFS) file server that DataSync can use for a\n data transfer.

" } }, "com.amazonaws.datasync#CreateLocationNfsRequest": { @@ -936,34 +1120,34 @@ "Subdirectory": { "target": "com.amazonaws.datasync#NfsSubdirectory", "traits": { - "smithy.api#documentation": "

The subdirectory in the NFS file system that is used to read data from the NFS source\n location or write data to the NFS destination. The NFS path should be a path that's\n exported by the NFS server, or a subdirectory of that path. The path should be such that it\n can be mounted by other NFS clients in your network.

\n

To see all the paths exported by your NFS server, run \"showmount -e\n nfs-server-name\" from an NFS client that has access to your server. You can specify\n any directory that appears in the results, and any subdirectory of that directory. Ensure that\n the NFS export is accessible without Kerberos authentication.

\n

To transfer all the data in the folder you specified, DataSync needs to have\n permissions to read all the data. To ensure this, either configure the NFS export with\n no_root_squash, or ensure that the permissions for all of the files that you\n want DataSync allow read access for all users. Doing either enables the agent to\n read the files. For the agent to access directories, you must additionally enable all execute\n access.

\n

If you are copying data to or from your Snowcone device, see NFS Server on\n Snowcone for more information.

\n

For information about NFS export configuration, see 18.7. The /etc/exports\n Configuration File in the Red Hat Enterprise Linux documentation.

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

Specifies the subdirectory in the NFS file server that DataSync transfers to\n or from. The NFS path should be a path that's exported by the NFS server, or a\n subdirectory of that path. The path should be such that it can be mounted by other NFS clients\n in your network.

\n

To see all the paths exported by your NFS server, run \"showmount -e\n nfs-server-name\" from an NFS client that has access to your server. You can specify\n any directory that appears in the results, and any subdirectory of that directory. Ensure that\n the NFS export is accessible without Kerberos authentication.

\n

To transfer all the data in the folder you specified, DataSync needs to have\n permissions to read all the data. To ensure this, either configure the NFS export with\n no_root_squash, or ensure that the permissions for all of the files that you\n want DataSync allow read access for all users. Doing either enables the agent to\n read the files. For the agent to access directories, you must additionally enable all execute\n access.

\n

If you are copying data to or from your Snowcone device, see NFS Server on\n Snowcone for more information.

", "smithy.api#required": {} } }, "ServerHostname": { "target": "com.amazonaws.datasync#ServerHostname", "traits": { - "smithy.api#documentation": "

The name of the NFS server. This value is the IP address or Domain Name Service (DNS)\n name of the NFS server. An agent that is installed on-premises uses this hostname to mount the\n NFS server in a network.

\n

If you are copying data to or from your Snowcone device, see NFS Server on\n Snowcone for more information.

\n \n

This name must either be DNS-compliant or must be an IP version 4 (IPv4)\n address.

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

Specifies the IP address or domain name of your NFS file server. An agent that is\n installed on-premises uses this hostname to mount the NFS server in a network.

\n

If you are copying data to or from your Snowcone device, see NFS Server on\n Snowcone for more information.

\n \n

You must specify be an IP version 4 address or Domain Name System (DNS)-compliant\n name.

\n
", "smithy.api#required": {} } }, "OnPremConfig": { "target": "com.amazonaws.datasync#OnPremConfig", "traits": { - "smithy.api#documentation": "

Contains a list of Amazon Resource Names (ARNs) of agents that are used to connect to\n an NFS server.

\n

If you are copying data to or from your Snowcone device, see NFS Server on\n Snowcone for more information.

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

Specifies the Amazon Resource Names (ARNs) of agents that DataSync uses to\n connect to your NFS file server.

\n

If you are copying data to or from your Snowcone device, see NFS Server on\n Snowcone for more information.

", "smithy.api#required": {} } }, "MountOptions": { "target": "com.amazonaws.datasync#NfsMountOptions", "traits": { - "smithy.api#documentation": "

The NFS mount options that DataSync can use to mount your NFS share.

" + "smithy.api#documentation": "

Specifies the mount options that DataSync can use to mount your NFS\n share.

" } }, "Tags": { "target": "com.amazonaws.datasync#InputTagList", "traits": { - "smithy.api#documentation": "

The key-value pair that represents the tag that you want to add to the location. The\n value can be an empty string. We recommend using tags to name your resources.

" + "smithy.api#documentation": "

Specifies labels that help you categorize, filter, and search for your Amazon Web Services resources.\n We recommend creating at least a name tag for your location.

" } } }, @@ -978,7 +1162,7 @@ "LocationArn": { "target": "com.amazonaws.datasync#LocationArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the source NFS file system location that is\n created.

" + "smithy.api#documentation": "

The ARN of the transfer location that you created for your NFS file server.

" } } }, @@ -1192,7 +1376,7 @@ } ], "traits": { - "smithy.api#documentation": "

Creates an endpoint for a Server Message Block (SMB) file server that DataSync can access for a transfer. For more information, see Creating an SMB location.

" + "smithy.api#documentation": "

Creates an endpoint for a Server Message Block (SMB) file server that DataSync can use for a data transfer.

\n

Before you begin, make sure that you understand how DataSync\n accesses an SMB file server.

" } }, "com.amazonaws.datasync#CreateLocationSmbRequest": { @@ -1692,6 +1876,91 @@ "smithy.api#output": {} } }, + "com.amazonaws.datasync#DescribeLocationAzureBlob": { + "type": "operation", + "input": { + "target": "com.amazonaws.datasync#DescribeLocationAzureBlobRequest" + }, + "output": { + "target": "com.amazonaws.datasync#DescribeLocationAzureBlobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.datasync#InternalException" + }, + { + "target": "com.amazonaws.datasync#InvalidRequestException" + } + ], + "traits": { + "smithy.api#documentation": "

Provides details about how an DataSync transfer location for Microsoft Azure Blob Storage is configured.

" + } + }, + "com.amazonaws.datasync#DescribeLocationAzureBlobRequest": { + "type": "structure", + "members": { + "LocationArn": { + "target": "com.amazonaws.datasync#LocationArn", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon Resource Name (ARN) of your Azure Blob Storage transfer location.

", + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.datasync#DescribeLocationAzureBlobResponse": { + "type": "structure", + "members": { + "LocationArn": { + "target": "com.amazonaws.datasync#LocationArn", + "traits": { + "smithy.api#documentation": "

The ARN of your Azure Blob Storage transfer location.

" + } + }, + "LocationUri": { + "target": "com.amazonaws.datasync#LocationUri", + "traits": { + "smithy.api#documentation": "

The URL of the Azure Blob Storage container involved in your transfer.

" + } + }, + "AuthenticationType": { + "target": "com.amazonaws.datasync#AzureBlobAuthenticationType", + "traits": { + "smithy.api#documentation": "

The authentication method DataSync uses to access your Azure Blob Storage. DataSync can access blob storage using a shared access signature (SAS).

" + } + }, + "BlobType": { + "target": "com.amazonaws.datasync#AzureBlobType", + "traits": { + "smithy.api#documentation": "

The type of blob that you want your objects or files to be when transferring them into\n Azure Blob Storage. Currently, DataSync only supports moving data into Azure Blob\n Storage as block blobs. For more information on blob types, see the Azure Blob Storage documentation.

" + } + }, + "AccessTier": { + "target": "com.amazonaws.datasync#AzureAccessTier", + "traits": { + "smithy.api#documentation": "

The access tier that you want your objects or files transferred into. This only applies when using the location as a transfer destination. For more information, see Access tiers.

" + } + }, + "AgentArns": { + "target": "com.amazonaws.datasync#AgentArnList", + "traits": { + "smithy.api#documentation": "

The ARNs of the DataSync agents that can connect with your Azure Blob Storage container.

" + } + }, + "CreationTime": { + "target": "com.amazonaws.datasync#Time", + "traits": { + "smithy.api#documentation": "

The time that your Azure Blob Storage transfer location was created.

" + } + } + }, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.datasync#DescribeLocationEfs": { "type": "operation", "input": { @@ -2249,7 +2518,7 @@ "MountOptions": { "target": "com.amazonaws.datasync#NfsMountOptions", "traits": { - "smithy.api#documentation": "

The NFS mount options that DataSync used to mount your NFS share.

" + "smithy.api#documentation": "

The mount options that DataSync uses to mount your NFS share.

" } }, "CreationTime": { @@ -2841,7 +3110,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns metadata about a task.

" + "smithy.api#documentation": "

Provides information about an DataSync transfer task.

" } }, "com.amazonaws.datasync#DescribeTaskExecution": { @@ -2861,7 +3130,7 @@ } ], "traits": { - "smithy.api#documentation": "

Returns detailed metadata about a task that is being executed.

" + "smithy.api#documentation": "

Provides information about an DataSync transfer task that's\n running.

" } }, "com.amazonaws.datasync#DescribeTaskExecutionRequest": { @@ -2870,7 +3139,7 @@ "TaskExecutionArn": { "target": "com.amazonaws.datasync#TaskExecutionArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task that is being executed.

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

Specifies the Amazon Resource Name (ARN) of the transfer task that's running.

", "smithy.api#required": {} } } @@ -2976,7 +3245,7 @@ "TaskArn": { "target": "com.amazonaws.datasync#TaskArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the task to describe.

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

Specifies the Amazon Resource Name (ARN) of the transfer task.

", "smithy.api#required": {} } } @@ -3552,6 +3821,9 @@ { "target": "com.amazonaws.datasync#CreateAgent" }, + { + "target": "com.amazonaws.datasync#CreateLocationAzureBlob" + }, { "target": "com.amazonaws.datasync#CreateLocationEfs" }, @@ -3600,6 +3872,9 @@ { "target": "com.amazonaws.datasync#DescribeDiscoveryJob" }, + { + "target": "com.amazonaws.datasync#DescribeLocationAzureBlob" + }, { "target": "com.amazonaws.datasync#DescribeLocationEfs" }, @@ -3693,6 +3968,9 @@ { "target": "com.amazonaws.datasync#UpdateDiscoveryJob" }, + { + "target": "com.amazonaws.datasync#UpdateLocationAzureBlob" + }, { "target": "com.amazonaws.datasync#UpdateLocationHdfs" }, @@ -6816,30 +7094,30 @@ "VpcEndpointId": { "target": "com.amazonaws.datasync#VpcEndpointId", "traits": { - "smithy.api#documentation": "

The ID of the VPC endpoint that is configured for an agent. An agent that is configured\n with a VPC endpoint will not be accessible over the public internet.

" + "smithy.api#documentation": "

Specifies the ID of the VPC endpoint that your agent connects to.

" } }, "PrivateLinkEndpoint": { "target": "com.amazonaws.datasync#Endpoint", "traits": { - "smithy.api#documentation": "

The private endpoint that is configured for an agent that has access to IP addresses in a\n PrivateLink. An agent that is configured with this endpoint will not be accessible\n over the public internet.

" + "smithy.api#documentation": "

Specifies the VPC endpoint provided by Amazon Web Services PrivateLink that\n your agent connects to.

" } }, "SubnetArns": { "target": "com.amazonaws.datasync#PLSubnetArnList", "traits": { - "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the subnets that are configured for an agent activated\n in a VPC or an agent that has access to a VPC endpoint.

" + "smithy.api#documentation": "

Specifies the ARN of the subnet where your VPC endpoint is located. You can only specify\n one ARN.

" } }, "SecurityGroupArns": { "target": "com.amazonaws.datasync#PLSecurityGroupArnList", "traits": { - "smithy.api#documentation": "

The Amazon Resource Names (ARNs) of the security groups that are configured for the EC2\n resource that hosts an agent activated in a VPC or an agent that has access to a VPC\n endpoint.

" + "smithy.api#documentation": "

Specifies the Amazon Resource Names (ARN) of the security group that provides DataSync access to your VPC endpoint. You can only specify one ARN.

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

The VPC endpoint, subnet, and security group that an agent uses to access IP addresses in\n a VPC (Virtual Private Cloud).

" + "smithy.api#documentation": "

Specifies how your DataSync agent connects to Amazon Web Services using a\n virtual private cloud (VPC) service endpoint. An agent that uses a VPC endpoint isn't\n accessible over the public internet.

" } }, "com.amazonaws.datasync#PtolemyBoolean": { @@ -8262,6 +8540,84 @@ "smithy.api#output": {} } }, + "com.amazonaws.datasync#UpdateLocationAzureBlob": { + "type": "operation", + "input": { + "target": "com.amazonaws.datasync#UpdateLocationAzureBlobRequest" + }, + "output": { + "target": "com.amazonaws.datasync#UpdateLocationAzureBlobResponse" + }, + "errors": [ + { + "target": "com.amazonaws.datasync#InternalException" + }, + { + "target": "com.amazonaws.datasync#InvalidRequestException" + } + ], + "traits": { + "smithy.api#documentation": "

Modifies some configurations of the Microsoft Azure Blob Storage transfer location that you're using with DataSync.

" + } + }, + "com.amazonaws.datasync#UpdateLocationAzureBlobRequest": { + "type": "structure", + "members": { + "LocationArn": { + "target": "com.amazonaws.datasync#LocationArn", + "traits": { + "smithy.api#documentation": "

Specifies the ARN of the Azure Blob Storage transfer location that you're updating.

", + "smithy.api#required": {} + } + }, + "Subdirectory": { + "target": "com.amazonaws.datasync#AzureBlobSubdirectory", + "traits": { + "smithy.api#documentation": "

Specifies path segments if you want to limit your transfer to a virtual directory in your\n container (for example, /my/images).

" + } + }, + "AuthenticationType": { + "target": "com.amazonaws.datasync#AzureBlobAuthenticationType", + "traits": { + "smithy.api#documentation": "

Specifies the authentication method DataSync uses to access your Azure Blob Storage. DataSync can access blob storage using a shared access signature (SAS).

" + } + }, + "SasConfiguration": { + "target": "com.amazonaws.datasync#AzureBlobSasConfiguration", + "traits": { + "smithy.api#documentation": "

Specifies the SAS configuration that allows DataSync to access your Azure Blob Storage.

" + } + }, + "BlobType": { + "target": "com.amazonaws.datasync#AzureBlobType", + "traits": { + "smithy.api#documentation": "

Specifies the type of blob that you want your objects or files to be when transferring\n them into Azure Blob Storage. Currently, DataSync only supports moving data into\n Azure Blob Storage as block blobs. For more information on blob types, see the Azure Blob Storage documentation.

" + } + }, + "AccessTier": { + "target": "com.amazonaws.datasync#AzureAccessTier", + "traits": { + "smithy.api#documentation": "

Specifies the access tier that you want your objects or files transferred into. This only applies when using the location as a transfer destination. For more information, see Access tiers.

" + } + }, + "AgentArns": { + "target": "com.amazonaws.datasync#AgentArnList", + "traits": { + "smithy.api#documentation": "

Specifies the Amazon Resource Name (ARN) of the DataSync agent that can connect with your Azure Blob Storage container.

\n

You can specify more than one agent. For more information, see Using multiple\n agents for your transfer.

" + } + } + }, + "traits": { + "smithy.api#input": {} + } + }, + "com.amazonaws.datasync#UpdateLocationAzureBlobResponse": { + "type": "structure", + "members": {}, + "traits": { + "smithy.api#output": {} + } + }, "com.amazonaws.datasync#UpdateLocationHdfs": { "type": "operation", "input": { @@ -8402,14 +8758,14 @@ "LocationArn": { "target": "com.amazonaws.datasync#LocationArn", "traits": { - "smithy.api#documentation": "

The Amazon Resource Name (ARN) of the NFS location to update.

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

Specifies the Amazon Resource Name (ARN) of the NFS location that you want to\n update.

", "smithy.api#required": {} } }, "Subdirectory": { "target": "com.amazonaws.datasync#NfsSubdirectory", "traits": { - "smithy.api#documentation": "

The subdirectory in the NFS file system that is used to read data from the NFS source\n location or write data to the NFS destination. The NFS path should be a path that's\n exported by the NFS server, or a subdirectory of that path. The path should be such that it\n can be mounted by other NFS clients in your network.

\n

To see all the paths exported by your NFS server, run \"showmount -e\n nfs-server-name\" from an NFS client that has access to your server. You can specify\n any directory that appears in the results, and any subdirectory of that directory. Ensure that\n the NFS export is accessible without Kerberos authentication.

\n

To transfer all the data in the folder that you specified, DataSync must have\n permissions to read all the data. To ensure this, either configure the NFS export with\n no_root_squash, or ensure that the files you want DataSync to access\n have permissions that allow read access for all users. Doing either option enables the agent\n to read the files. For the agent to access directories, you must additionally enable all\n execute access.

\n

If you are copying data to or from your Snowcone device, see NFS Server on\n Snowcone for more information.

\n

For information about NFS export configuration, see 18.7. The /etc/exports\n Configuration File in the Red Hat Enterprise Linux documentation.

" + "smithy.api#documentation": "

Specifies the subdirectory in your NFS file system that DataSync uses to read\n from or write to during a transfer. The NFS path should be exported by the NFS server, or a\n subdirectory of that path. The path should be such that it can be mounted by other NFS clients\n in your network.

\n

To see all the paths exported by your NFS server, run \"showmount -e\n nfs-server-name\" from an NFS client that has access to your server. You can specify\n any directory that appears in the results, and any subdirectory of that directory. Ensure that\n the NFS export is accessible without Kerberos authentication.

\n

To transfer all the data in the folder that you specified, DataSync must have\n permissions to read all the data. To ensure this, either configure the NFS export with\n no_root_squash, or ensure that the files you want DataSync to access\n have permissions that allow read access for all users. Doing either option enables the agent\n to read the files. For the agent to access directories, you must additionally enable all\n execute access.

\n

If you are copying data to or from your Snowcone device, see NFS Server on\n Snowcone for more information.

" } }, "OnPremConfig": { @@ -8631,7 +8987,7 @@ "AgentArns": { "target": "com.amazonaws.datasync#DiscoveryAgentArnList", "traits": { - "smithy.api#documentation": "

Specifies the Amazon Resource Name (ARN) of the DataSync agent that connects to and reads\n your on-premises storage system.

" + "smithy.api#documentation": "

Specifies the Amazon Resource Name (ARN) of the DataSync agent that connects to and reads\n your on-premises storage system. You can only specify one ARN.

" } }, "Name": {