diff --git a/clients/client-transfer/README.md b/clients/client-transfer/README.md index f36d6959347b..a1c0acebef87 100644 --- a/clients/client-transfer/README.md +++ b/clients/client-transfer/README.md @@ -9,15 +9,15 @@ AWS SDK for JavaScript Transfer Client for Node.js, Browser and React Native. -

Amazon Web Services Transfer Family is a fully managed service that enables the transfer of files over the -File Transfer Protocol (FTP), File Transfer Protocol over SSL (FTPS), or Secure Shell (SSH) -File Transfer Protocol (SFTP) directly into and out of Amazon Simple Storage Service (Amazon -S3). Amazon Web Services helps you seamlessly migrate your file transfer workflows to Amazon Web Services Transfer Family by -integrating with existing authentication systems, and providing DNS routing with Amazon Route -53 so nothing changes for your customers and partners, or their applications. With your data -in Amazon S3, you can use it with Amazon Web Services services for processing, analytics, machine learning, -and archiving. Getting started with Amazon Web Services Transfer Family is easy since there is no -infrastructure to buy and set up.

+

Transfer Family is a fully managed service that enables the transfer of files over the File +Transfer Protocol (FTP), File Transfer Protocol over SSL (FTPS), or Secure Shell (SSH) File +Transfer Protocol (SFTP) directly into and out of Amazon Simple Storage Service (Amazon S3). +Amazon Web Services helps you seamlessly migrate your file transfer workflows to Transfer Family by integrating +with existing authentication systems, and providing DNS routing with Amazon Route 53 so +nothing changes for your customers and partners, or their applications. With your data in +Amazon S3, you can use it with Amazon Web Services for processing, analytics, machine learning, and +archiving. Getting started with Transfer Family is easy since there is no infrastructure to buy and +set up.

## Installing diff --git a/clients/client-transfer/src/Transfer.ts b/clients/client-transfer/src/Transfer.ts index af6e73dcd25c..7a63465af2b4 100644 --- a/clients/client-transfer/src/Transfer.ts +++ b/clients/client-transfer/src/Transfer.ts @@ -6,6 +6,21 @@ import { CreateAccessCommandInput, CreateAccessCommandOutput, } from "./commands/CreateAccessCommand"; +import { + CreateAgreementCommand, + CreateAgreementCommandInput, + CreateAgreementCommandOutput, +} from "./commands/CreateAgreementCommand"; +import { + CreateConnectorCommand, + CreateConnectorCommandInput, + CreateConnectorCommandOutput, +} from "./commands/CreateConnectorCommand"; +import { + CreateProfileCommand, + CreateProfileCommandInput, + CreateProfileCommandOutput, +} from "./commands/CreateProfileCommand"; import { CreateServerCommand, CreateServerCommandInput, @@ -22,6 +37,26 @@ import { DeleteAccessCommandInput, DeleteAccessCommandOutput, } from "./commands/DeleteAccessCommand"; +import { + DeleteAgreementCommand, + DeleteAgreementCommandInput, + DeleteAgreementCommandOutput, +} from "./commands/DeleteAgreementCommand"; +import { + DeleteCertificateCommand, + DeleteCertificateCommandInput, + DeleteCertificateCommandOutput, +} from "./commands/DeleteCertificateCommand"; +import { + DeleteConnectorCommand, + DeleteConnectorCommandInput, + DeleteConnectorCommandOutput, +} from "./commands/DeleteConnectorCommand"; +import { + DeleteProfileCommand, + DeleteProfileCommandInput, + DeleteProfileCommandOutput, +} from "./commands/DeleteProfileCommand"; import { DeleteServerCommand, DeleteServerCommandInput, @@ -43,11 +78,31 @@ import { DescribeAccessCommandInput, DescribeAccessCommandOutput, } from "./commands/DescribeAccessCommand"; +import { + DescribeAgreementCommand, + DescribeAgreementCommandInput, + DescribeAgreementCommandOutput, +} from "./commands/DescribeAgreementCommand"; +import { + DescribeCertificateCommand, + DescribeCertificateCommandInput, + DescribeCertificateCommandOutput, +} from "./commands/DescribeCertificateCommand"; +import { + DescribeConnectorCommand, + DescribeConnectorCommandInput, + DescribeConnectorCommandOutput, +} from "./commands/DescribeConnectorCommand"; import { DescribeExecutionCommand, DescribeExecutionCommandInput, DescribeExecutionCommandOutput, } from "./commands/DescribeExecutionCommand"; +import { + DescribeProfileCommand, + DescribeProfileCommandInput, + DescribeProfileCommandOutput, +} from "./commands/DescribeProfileCommand"; import { DescribeSecurityPolicyCommand, DescribeSecurityPolicyCommandInput, @@ -68,6 +123,11 @@ import { DescribeWorkflowCommandInput, DescribeWorkflowCommandOutput, } from "./commands/DescribeWorkflowCommand"; +import { + ImportCertificateCommand, + ImportCertificateCommandInput, + ImportCertificateCommandOutput, +} from "./commands/ImportCertificateCommand"; import { ImportSshPublicKeyCommand, ImportSshPublicKeyCommandInput, @@ -78,11 +138,31 @@ import { ListAccessesCommandInput, ListAccessesCommandOutput, } from "./commands/ListAccessesCommand"; +import { + ListAgreementsCommand, + ListAgreementsCommandInput, + ListAgreementsCommandOutput, +} from "./commands/ListAgreementsCommand"; +import { + ListCertificatesCommand, + ListCertificatesCommandInput, + ListCertificatesCommandOutput, +} from "./commands/ListCertificatesCommand"; +import { + ListConnectorsCommand, + ListConnectorsCommandInput, + ListConnectorsCommandOutput, +} from "./commands/ListConnectorsCommand"; import { ListExecutionsCommand, ListExecutionsCommandInput, ListExecutionsCommandOutput, } from "./commands/ListExecutionsCommand"; +import { + ListProfilesCommand, + ListProfilesCommandInput, + ListProfilesCommandOutput, +} from "./commands/ListProfilesCommand"; import { ListSecurityPoliciesCommand, ListSecurityPoliciesCommandInput, @@ -105,6 +185,11 @@ import { SendWorkflowStepStateCommandInput, SendWorkflowStepStateCommandOutput, } from "./commands/SendWorkflowStepStateCommand"; +import { + StartFileTransferCommand, + StartFileTransferCommandInput, + StartFileTransferCommandOutput, +} from "./commands/StartFileTransferCommand"; import { StartServerCommand, StartServerCommandInput, StartServerCommandOutput } from "./commands/StartServerCommand"; import { StopServerCommand, StopServerCommandInput, StopServerCommandOutput } from "./commands/StopServerCommand"; import { TagResourceCommand, TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; @@ -123,6 +208,26 @@ import { UpdateAccessCommandInput, UpdateAccessCommandOutput, } from "./commands/UpdateAccessCommand"; +import { + UpdateAgreementCommand, + UpdateAgreementCommandInput, + UpdateAgreementCommandOutput, +} from "./commands/UpdateAgreementCommand"; +import { + UpdateCertificateCommand, + UpdateCertificateCommandInput, + UpdateCertificateCommandOutput, +} from "./commands/UpdateCertificateCommand"; +import { + UpdateConnectorCommand, + UpdateConnectorCommandInput, + UpdateConnectorCommandOutput, +} from "./commands/UpdateConnectorCommand"; +import { + UpdateProfileCommand, + UpdateProfileCommandInput, + UpdateProfileCommandOutput, +} from "./commands/UpdateProfileCommand"; import { UpdateServerCommand, UpdateServerCommandInput, @@ -132,20 +237,20 @@ import { UpdateUserCommand, UpdateUserCommandInput, UpdateUserCommandOutput } fr import { TransferClient } from "./TransferClient"; /** - *

Amazon Web Services Transfer Family is a fully managed service that enables the transfer of files over the - * File Transfer Protocol (FTP), File Transfer Protocol over SSL (FTPS), or Secure Shell (SSH) - * File Transfer Protocol (SFTP) directly into and out of Amazon Simple Storage Service (Amazon - * S3). Amazon Web Services helps you seamlessly migrate your file transfer workflows to Amazon Web Services Transfer Family by - * integrating with existing authentication systems, and providing DNS routing with Amazon Route - * 53 so nothing changes for your customers and partners, or their applications. With your data - * in Amazon S3, you can use it with Amazon Web Services services for processing, analytics, machine learning, - * and archiving. Getting started with Amazon Web Services Transfer Family is easy since there is no - * infrastructure to buy and set up.

+ *

Transfer Family is a fully managed service that enables the transfer of files over the File + * Transfer Protocol (FTP), File Transfer Protocol over SSL (FTPS), or Secure Shell (SSH) File + * Transfer Protocol (SFTP) directly into and out of Amazon Simple Storage Service (Amazon S3). + * Amazon Web Services helps you seamlessly migrate your file transfer workflows to Transfer Family by integrating + * with existing authentication systems, and providing DNS routing with Amazon Route 53 so + * nothing changes for your customers and partners, or their applications. With your data in + * Amazon S3, you can use it with Amazon Web Services for processing, analytics, machine learning, and + * archiving. Getting started with Transfer Family is easy since there is no infrastructure to buy and + * set up.

*/ export class Transfer extends TransferClient { /** *

Used by administrators to choose which groups in the directory should have access to - * upload and download files over the enabled protocols using Amazon Web Services Transfer Family. For example, a + * upload and download files over the enabled protocols using Transfer Family. For example, a * Microsoft Active Directory might contain 50,000 users, but only a small fraction might need * the ability to transfer files to the server. An administrator can use * CreateAccess to limit the access to the correct set of users who need this @@ -177,6 +282,110 @@ export class Transfer extends TransferClient { } } + /** + *

Creates an agreement. An agreement is a bilateral trading partner agreement, or partnership, + * between an Transfer Family server and an AS2 process. The agreement defines the file and message + * transfer relationship between the server and the AS2 process. To define an agreement, Transfer Family + * combines a server, local profile, partner profile, certificate, and other + * attributes.

+ *

The partner is identified with the PartnerProfileId, and the AS2 process is identified with the LocalProfileId.

+ */ + public createAgreement( + args: CreateAgreementCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createAgreement( + args: CreateAgreementCommandInput, + cb: (err: any, data?: CreateAgreementCommandOutput) => void + ): void; + public createAgreement( + args: CreateAgreementCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateAgreementCommandOutput) => void + ): void; + public createAgreement( + args: CreateAgreementCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateAgreementCommandOutput) => void), + cb?: (err: any, data?: CreateAgreementCommandOutput) => void + ): Promise | void { + const command = new CreateAgreementCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Creates the connector, which captures the parameters for an outbound connection for the + * AS2 protocol. The connector is required for sending files from a + * customer's non Amazon Web Services server.

+ */ + public createConnector( + args: CreateConnectorCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createConnector( + args: CreateConnectorCommandInput, + cb: (err: any, data?: CreateConnectorCommandOutput) => void + ): void; + public createConnector( + args: CreateConnectorCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateConnectorCommandOutput) => void + ): void; + public createConnector( + args: CreateConnectorCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateConnectorCommandOutput) => void), + cb?: (err: any, data?: CreateConnectorCommandOutput) => void + ): Promise | void { + const command = new CreateConnectorCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Creates the profile for the AS2 process. The agreement is between the partner and the AS2 + * process.

+ */ + public createProfile( + args: CreateProfileCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public createProfile( + args: CreateProfileCommandInput, + cb: (err: any, data?: CreateProfileCommandOutput) => void + ): void; + public createProfile( + args: CreateProfileCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: CreateProfileCommandOutput) => void + ): void; + public createProfile( + args: CreateProfileCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: CreateProfileCommandOutput) => void), + cb?: (err: any, data?: CreateProfileCommandOutput) => void + ): Promise | void { + const command = new CreateProfileCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

Instantiates an auto-scaling virtual server based on the selected file transfer protocol * in Amazon Web Services. When you make updates to your file transfer protocol-enabled server or when you work @@ -214,7 +423,7 @@ export class Transfer extends TransferClient { * You can only create and associate users with servers that have the * IdentityProviderType set to SERVICE_MANAGED. Using parameters for * CreateUser, you can specify the user name, set the home directory, store the - * user's public key, and assign the user's Amazon Web Services Identity and Access Management (IAM) + * user's public key, and assign the user's Identity and Access Management (IAM) * role. You can also optionally add a session policy, and assign metadata with tags that can * be used to group and search for users.

*/ @@ -306,6 +515,135 @@ export class Transfer extends TransferClient { } } + /** + *

Delete the agreement that's specified in the provided AgreementId.

+ */ + public deleteAgreement( + args: DeleteAgreementCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteAgreement( + args: DeleteAgreementCommandInput, + cb: (err: any, data?: DeleteAgreementCommandOutput) => void + ): void; + public deleteAgreement( + args: DeleteAgreementCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteAgreementCommandOutput) => void + ): void; + public deleteAgreement( + args: DeleteAgreementCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteAgreementCommandOutput) => void), + cb?: (err: any, data?: DeleteAgreementCommandOutput) => void + ): Promise | void { + const command = new DeleteAgreementCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Deletes the certificate that's specified in the CertificateId + * parameter.

+ */ + public deleteCertificate( + args: DeleteCertificateCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteCertificate( + args: DeleteCertificateCommandInput, + cb: (err: any, data?: DeleteCertificateCommandOutput) => void + ): void; + public deleteCertificate( + args: DeleteCertificateCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteCertificateCommandOutput) => void + ): void; + public deleteCertificate( + args: DeleteCertificateCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteCertificateCommandOutput) => void), + cb?: (err: any, data?: DeleteCertificateCommandOutput) => void + ): Promise | void { + const command = new DeleteCertificateCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Deletes the agreement that's specified in the provided ConnectorId.

+ */ + public deleteConnector( + args: DeleteConnectorCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteConnector( + args: DeleteConnectorCommandInput, + cb: (err: any, data?: DeleteConnectorCommandOutput) => void + ): void; + public deleteConnector( + args: DeleteConnectorCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteConnectorCommandOutput) => void + ): void; + public deleteConnector( + args: DeleteConnectorCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteConnectorCommandOutput) => void), + cb?: (err: any, data?: DeleteConnectorCommandOutput) => void + ): Promise | void { + const command = new DeleteConnectorCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Deletes the profile that's specified in the ProfileId parameter.

+ */ + public deleteProfile( + args: DeleteProfileCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public deleteProfile( + args: DeleteProfileCommandInput, + cb: (err: any, data?: DeleteProfileCommandOutput) => void + ): void; + public deleteProfile( + args: DeleteProfileCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DeleteProfileCommandOutput) => void + ): void; + public deleteProfile( + args: DeleteProfileCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DeleteProfileCommandOutput) => void), + cb?: (err: any, data?: DeleteProfileCommandOutput) => void + ): Promise | void { + const command = new DeleteProfileCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

Deletes the file transfer protocol-enabled server that you specify.

* @@ -436,7 +774,7 @@ export class Transfer extends TransferClient { /** *

Describes the access that is assigned to the specific file transfer protocol-enabled * server, as identified by its ServerId property and its - * ExternalID.

+ * ExternalId.

* *

The response from this call returns the properties of the access that is associated with * the ServerId value that was specified.

@@ -470,6 +808,103 @@ export class Transfer extends TransferClient { } } + /** + *

Describes the agreement that's identified by the AgreementId.

+ */ + public describeAgreement( + args: DescribeAgreementCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeAgreement( + args: DescribeAgreementCommandInput, + cb: (err: any, data?: DescribeAgreementCommandOutput) => void + ): void; + public describeAgreement( + args: DescribeAgreementCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeAgreementCommandOutput) => void + ): void; + public describeAgreement( + args: DescribeAgreementCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeAgreementCommandOutput) => void), + cb?: (err: any, data?: DescribeAgreementCommandOutput) => void + ): Promise | void { + const command = new DescribeAgreementCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Describes the certificate that's identified by the CertificateId.

+ */ + public describeCertificate( + args: DescribeCertificateCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeCertificate( + args: DescribeCertificateCommandInput, + cb: (err: any, data?: DescribeCertificateCommandOutput) => void + ): void; + public describeCertificate( + args: DescribeCertificateCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeCertificateCommandOutput) => void + ): void; + public describeCertificate( + args: DescribeCertificateCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeCertificateCommandOutput) => void), + cb?: (err: any, data?: DescribeCertificateCommandOutput) => void + ): Promise | void { + const command = new DescribeCertificateCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Describes the connector that's identified by the ConnectorId. + *

+ */ + public describeConnector( + args: DescribeConnectorCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeConnector( + args: DescribeConnectorCommandInput, + cb: (err: any, data?: DescribeConnectorCommandOutput) => void + ): void; + public describeConnector( + args: DescribeConnectorCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeConnectorCommandOutput) => void + ): void; + public describeConnector( + args: DescribeConnectorCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeConnectorCommandOutput) => void), + cb?: (err: any, data?: DescribeConnectorCommandOutput) => void + ): Promise | void { + const command = new DescribeConnectorCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

You can use DescribeExecution to check the details of the execution of the specified workflow.

*/ @@ -502,6 +937,38 @@ export class Transfer extends TransferClient { } } + /** + *

Returns the details of the profile that's specified by the ProfileId.

+ */ + public describeProfile( + args: DescribeProfileCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public describeProfile( + args: DescribeProfileCommandInput, + cb: (err: any, data?: DescribeProfileCommandOutput) => void + ): void; + public describeProfile( + args: DescribeProfileCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: DescribeProfileCommandOutput) => void + ): void; + public describeProfile( + args: DescribeProfileCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: DescribeProfileCommandOutput) => void), + cb?: (err: any, data?: DescribeProfileCommandOutput) => void + ): Promise | void { + const command = new DescribeProfileCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

Describes the security policy that is attached to your file transfer protocol-enabled * server. The response contains a description of the security policy's properties. For more @@ -639,6 +1106,40 @@ export class Transfer extends TransferClient { } } + /** + *

Imports the signing and encryption certificates that you need to create local (AS2) + * profiles and partner + * profiles.

+ */ + public importCertificate( + args: ImportCertificateCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public importCertificate( + args: ImportCertificateCommandInput, + cb: (err: any, data?: ImportCertificateCommandOutput) => void + ): void; + public importCertificate( + args: ImportCertificateCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ImportCertificateCommandOutput) => void + ): void; + public importCertificate( + args: ImportCertificateCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ImportCertificateCommandOutput) => void), + cb?: (err: any, data?: ImportCertificateCommandOutput) => void + ): Promise | void { + const command = new ImportCertificateCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

Adds a Secure Shell (SSH) public key to a user account identified by a * UserName value assigned to the specific file transfer protocol-enabled server, @@ -705,6 +1206,110 @@ export class Transfer extends TransferClient { } } + /** + *

Returns a list of the agreements for the server that's identified by the + * ServerId that you supply. If you want to limit the results to a certain number, + * supply a value for the MaxResults parameter. If you ran the command previously + * and received a value for NextToken, you can supply that value to continue listing + * agreements from where you left off.

+ */ + public listAgreements( + args: ListAgreementsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listAgreements( + args: ListAgreementsCommandInput, + cb: (err: any, data?: ListAgreementsCommandOutput) => void + ): void; + public listAgreements( + args: ListAgreementsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListAgreementsCommandOutput) => void + ): void; + public listAgreements( + args: ListAgreementsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListAgreementsCommandOutput) => void), + cb?: (err: any, data?: ListAgreementsCommandOutput) => void + ): Promise | void { + const command = new ListAgreementsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Returns a list of the current certificates that have been imported into Transfer Family. If you want to + * limit the results to a certain number, supply a value for the MaxResults + * parameter. If you ran the command previously and received a value for the + * NextToken parameter, you can supply that value to continue listing certificates + * from where you left off.

+ */ + public listCertificates( + args: ListCertificatesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listCertificates( + args: ListCertificatesCommandInput, + cb: (err: any, data?: ListCertificatesCommandOutput) => void + ): void; + public listCertificates( + args: ListCertificatesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListCertificatesCommandOutput) => void + ): void; + public listCertificates( + args: ListCertificatesCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListCertificatesCommandOutput) => void), + cb?: (err: any, data?: ListCertificatesCommandOutput) => void + ): Promise | void { + const command = new ListCertificatesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Lists the connectors for the specified Region.

+ */ + public listConnectors( + args: ListConnectorsCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listConnectors( + args: ListConnectorsCommandInput, + cb: (err: any, data?: ListConnectorsCommandOutput) => void + ): void; + public listConnectors( + args: ListConnectorsCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListConnectorsCommandOutput) => void + ): void; + public listConnectors( + args: ListConnectorsCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListConnectorsCommandOutput) => void), + cb?: (err: any, data?: ListConnectorsCommandOutput) => void + ): Promise | void { + const command = new ListConnectorsCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

Lists all executions for the specified workflow.

*/ @@ -737,6 +1342,38 @@ export class Transfer extends TransferClient { } } + /** + *

Returns a list of the profiles for your system. If you want to limit the results to a + * certain number, supply a value for the MaxResults parameter. If you ran the + * command previously and received a value for NextToken, you can supply that value + * to continue listing profiles from where you left off.

+ */ + public listProfiles( + args: ListProfilesCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public listProfiles(args: ListProfilesCommandInput, cb: (err: any, data?: ListProfilesCommandOutput) => void): void; + public listProfiles( + args: ListProfilesCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: ListProfilesCommandOutput) => void + ): void; + public listProfiles( + args: ListProfilesCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: ListProfilesCommandOutput) => void), + cb?: (err: any, data?: ListProfilesCommandOutput) => void + ): Promise | void { + const command = new ListProfilesCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

Lists the security policies that are attached to your file transfer protocol-enabled * servers.

@@ -925,6 +1562,39 @@ export class Transfer extends TransferClient { } } + /** + *

Begins an outbound file transfer. You specify the ConnectorId and the file + * paths for where to send the files.

+ */ + public startFileTransfer( + args: StartFileTransferCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public startFileTransfer( + args: StartFileTransferCommandInput, + cb: (err: any, data?: StartFileTransferCommandOutput) => void + ): void; + public startFileTransfer( + args: StartFileTransferCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: StartFileTransferCommandOutput) => void + ): void; + public startFileTransfer( + args: StartFileTransferCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: StartFileTransferCommandOutput) => void), + cb?: (err: any, data?: StartFileTransferCommandOutput) => void + ): Promise | void { + const command = new StartFileTransferCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

Changes the state of a file transfer protocol-enabled server from OFFLINE to * ONLINE. It has no impact on a server that is already ONLINE. An @@ -966,7 +1636,7 @@ export class Transfer extends TransferClient { * stopping your server.

* * - *

Stopping the server will not reduce or impact your file transfer protocol endpoint + *

Stopping the server does not reduce or impact your file transfer protocol endpoint * billing; you must delete the server to stop being billed.

*
* @@ -1163,6 +1833,140 @@ export class Transfer extends TransferClient { } } + /** + *

Updates some of the parameters for an existing agreement. Provide the + * AgreementId and the ServerId for the agreement that you want to + * update, along with the new values for the parameters to update.

+ */ + public updateAgreement( + args: UpdateAgreementCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateAgreement( + args: UpdateAgreementCommandInput, + cb: (err: any, data?: UpdateAgreementCommandOutput) => void + ): void; + public updateAgreement( + args: UpdateAgreementCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateAgreementCommandOutput) => void + ): void; + public updateAgreement( + args: UpdateAgreementCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateAgreementCommandOutput) => void), + cb?: (err: any, data?: UpdateAgreementCommandOutput) => void + ): Promise | void { + const command = new UpdateAgreementCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Updates the active and inactive dates for a certificate.

+ */ + public updateCertificate( + args: UpdateCertificateCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateCertificate( + args: UpdateCertificateCommandInput, + cb: (err: any, data?: UpdateCertificateCommandOutput) => void + ): void; + public updateCertificate( + args: UpdateCertificateCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateCertificateCommandOutput) => void + ): void; + public updateCertificate( + args: UpdateCertificateCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateCertificateCommandOutput) => void), + cb?: (err: any, data?: UpdateCertificateCommandOutput) => void + ): Promise | void { + const command = new UpdateCertificateCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Updates some of the parameters for an existing connector. Provide the + * ConnectorId for the connector that you want to update, along with the new + * values for the parameters to update.

+ */ + public updateConnector( + args: UpdateConnectorCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateConnector( + args: UpdateConnectorCommandInput, + cb: (err: any, data?: UpdateConnectorCommandOutput) => void + ): void; + public updateConnector( + args: UpdateConnectorCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateConnectorCommandOutput) => void + ): void; + public updateConnector( + args: UpdateConnectorCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateConnectorCommandOutput) => void), + cb?: (err: any, data?: UpdateConnectorCommandOutput) => void + ): Promise | void { + const command = new UpdateConnectorCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + + /** + *

Updates some of the parameters for an existing profile. Provide the ProfileId + * for the profile that you want to update, along with the new values for the parameters to + * update.

+ */ + public updateProfile( + args: UpdateProfileCommandInput, + options?: __HttpHandlerOptions + ): Promise; + public updateProfile( + args: UpdateProfileCommandInput, + cb: (err: any, data?: UpdateProfileCommandOutput) => void + ): void; + public updateProfile( + args: UpdateProfileCommandInput, + options: __HttpHandlerOptions, + cb: (err: any, data?: UpdateProfileCommandOutput) => void + ): void; + public updateProfile( + args: UpdateProfileCommandInput, + optionsOrCb?: __HttpHandlerOptions | ((err: any, data?: UpdateProfileCommandOutput) => void), + cb?: (err: any, data?: UpdateProfileCommandOutput) => void + ): Promise | void { + const command = new UpdateProfileCommand(args); + if (typeof optionsOrCb === "function") { + this.send(command, optionsOrCb); + } else if (typeof cb === "function") { + if (typeof optionsOrCb !== "object") throw new Error(`Expect http options but get ${typeof optionsOrCb}`); + this.send(command, optionsOrCb || {}, cb); + } else { + return this.send(command, optionsOrCb); + } + } + /** *

Updates the file transfer protocol-enabled server's properties after that server has * been created.

diff --git a/clients/client-transfer/src/TransferClient.ts b/clients/client-transfer/src/TransferClient.ts index 80bab50c6ad5..3b71666b0df7 100644 --- a/clients/client-transfer/src/TransferClient.ts +++ b/clients/client-transfer/src/TransferClient.ts @@ -54,16 +54,30 @@ import { } from "@aws-sdk/types"; import { CreateAccessCommandInput, CreateAccessCommandOutput } from "./commands/CreateAccessCommand"; +import { CreateAgreementCommandInput, CreateAgreementCommandOutput } from "./commands/CreateAgreementCommand"; +import { CreateConnectorCommandInput, CreateConnectorCommandOutput } from "./commands/CreateConnectorCommand"; +import { CreateProfileCommandInput, CreateProfileCommandOutput } from "./commands/CreateProfileCommand"; import { CreateServerCommandInput, CreateServerCommandOutput } from "./commands/CreateServerCommand"; import { CreateUserCommandInput, CreateUserCommandOutput } from "./commands/CreateUserCommand"; import { CreateWorkflowCommandInput, CreateWorkflowCommandOutput } from "./commands/CreateWorkflowCommand"; import { DeleteAccessCommandInput, DeleteAccessCommandOutput } from "./commands/DeleteAccessCommand"; +import { DeleteAgreementCommandInput, DeleteAgreementCommandOutput } from "./commands/DeleteAgreementCommand"; +import { DeleteCertificateCommandInput, DeleteCertificateCommandOutput } from "./commands/DeleteCertificateCommand"; +import { DeleteConnectorCommandInput, DeleteConnectorCommandOutput } from "./commands/DeleteConnectorCommand"; +import { DeleteProfileCommandInput, DeleteProfileCommandOutput } from "./commands/DeleteProfileCommand"; import { DeleteServerCommandInput, DeleteServerCommandOutput } from "./commands/DeleteServerCommand"; import { DeleteSshPublicKeyCommandInput, DeleteSshPublicKeyCommandOutput } from "./commands/DeleteSshPublicKeyCommand"; import { DeleteUserCommandInput, DeleteUserCommandOutput } from "./commands/DeleteUserCommand"; import { DeleteWorkflowCommandInput, DeleteWorkflowCommandOutput } from "./commands/DeleteWorkflowCommand"; import { DescribeAccessCommandInput, DescribeAccessCommandOutput } from "./commands/DescribeAccessCommand"; +import { DescribeAgreementCommandInput, DescribeAgreementCommandOutput } from "./commands/DescribeAgreementCommand"; +import { + DescribeCertificateCommandInput, + DescribeCertificateCommandOutput, +} from "./commands/DescribeCertificateCommand"; +import { DescribeConnectorCommandInput, DescribeConnectorCommandOutput } from "./commands/DescribeConnectorCommand"; import { DescribeExecutionCommandInput, DescribeExecutionCommandOutput } from "./commands/DescribeExecutionCommand"; +import { DescribeProfileCommandInput, DescribeProfileCommandOutput } from "./commands/DescribeProfileCommand"; import { DescribeSecurityPolicyCommandInput, DescribeSecurityPolicyCommandOutput, @@ -71,9 +85,14 @@ import { import { DescribeServerCommandInput, DescribeServerCommandOutput } from "./commands/DescribeServerCommand"; import { DescribeUserCommandInput, DescribeUserCommandOutput } from "./commands/DescribeUserCommand"; import { DescribeWorkflowCommandInput, DescribeWorkflowCommandOutput } from "./commands/DescribeWorkflowCommand"; +import { ImportCertificateCommandInput, ImportCertificateCommandOutput } from "./commands/ImportCertificateCommand"; import { ImportSshPublicKeyCommandInput, ImportSshPublicKeyCommandOutput } from "./commands/ImportSshPublicKeyCommand"; import { ListAccessesCommandInput, ListAccessesCommandOutput } from "./commands/ListAccessesCommand"; +import { ListAgreementsCommandInput, ListAgreementsCommandOutput } from "./commands/ListAgreementsCommand"; +import { ListCertificatesCommandInput, ListCertificatesCommandOutput } from "./commands/ListCertificatesCommand"; +import { ListConnectorsCommandInput, ListConnectorsCommandOutput } from "./commands/ListConnectorsCommand"; import { ListExecutionsCommandInput, ListExecutionsCommandOutput } from "./commands/ListExecutionsCommand"; +import { ListProfilesCommandInput, ListProfilesCommandOutput } from "./commands/ListProfilesCommand"; import { ListSecurityPoliciesCommandInput, ListSecurityPoliciesCommandOutput, @@ -89,6 +108,7 @@ import { SendWorkflowStepStateCommandInput, SendWorkflowStepStateCommandOutput, } from "./commands/SendWorkflowStepStateCommand"; +import { StartFileTransferCommandInput, StartFileTransferCommandOutput } from "./commands/StartFileTransferCommand"; import { StartServerCommandInput, StartServerCommandOutput } from "./commands/StartServerCommand"; import { StopServerCommandInput, StopServerCommandOutput } from "./commands/StopServerCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand"; @@ -98,75 +118,121 @@ import { } from "./commands/TestIdentityProviderCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand"; import { UpdateAccessCommandInput, UpdateAccessCommandOutput } from "./commands/UpdateAccessCommand"; +import { UpdateAgreementCommandInput, UpdateAgreementCommandOutput } from "./commands/UpdateAgreementCommand"; +import { UpdateCertificateCommandInput, UpdateCertificateCommandOutput } from "./commands/UpdateCertificateCommand"; +import { UpdateConnectorCommandInput, UpdateConnectorCommandOutput } from "./commands/UpdateConnectorCommand"; +import { UpdateProfileCommandInput, UpdateProfileCommandOutput } from "./commands/UpdateProfileCommand"; import { UpdateServerCommandInput, UpdateServerCommandOutput } from "./commands/UpdateServerCommand"; import { UpdateUserCommandInput, UpdateUserCommandOutput } from "./commands/UpdateUserCommand"; import { getRuntimeConfig as __getRuntimeConfig } from "./runtimeConfig"; export type ServiceInputTypes = | CreateAccessCommandInput + | CreateAgreementCommandInput + | CreateConnectorCommandInput + | CreateProfileCommandInput | CreateServerCommandInput | CreateUserCommandInput | CreateWorkflowCommandInput | DeleteAccessCommandInput + | DeleteAgreementCommandInput + | DeleteCertificateCommandInput + | DeleteConnectorCommandInput + | DeleteProfileCommandInput | DeleteServerCommandInput | DeleteSshPublicKeyCommandInput | DeleteUserCommandInput | DeleteWorkflowCommandInput | DescribeAccessCommandInput + | DescribeAgreementCommandInput + | DescribeCertificateCommandInput + | DescribeConnectorCommandInput | DescribeExecutionCommandInput + | DescribeProfileCommandInput | DescribeSecurityPolicyCommandInput | DescribeServerCommandInput | DescribeUserCommandInput | DescribeWorkflowCommandInput + | ImportCertificateCommandInput | ImportSshPublicKeyCommandInput | ListAccessesCommandInput + | ListAgreementsCommandInput + | ListCertificatesCommandInput + | ListConnectorsCommandInput | ListExecutionsCommandInput + | ListProfilesCommandInput | ListSecurityPoliciesCommandInput | ListServersCommandInput | ListTagsForResourceCommandInput | ListUsersCommandInput | ListWorkflowsCommandInput | SendWorkflowStepStateCommandInput + | StartFileTransferCommandInput | StartServerCommandInput | StopServerCommandInput | TagResourceCommandInput | TestIdentityProviderCommandInput | UntagResourceCommandInput | UpdateAccessCommandInput + | UpdateAgreementCommandInput + | UpdateCertificateCommandInput + | UpdateConnectorCommandInput + | UpdateProfileCommandInput | UpdateServerCommandInput | UpdateUserCommandInput; export type ServiceOutputTypes = | CreateAccessCommandOutput + | CreateAgreementCommandOutput + | CreateConnectorCommandOutput + | CreateProfileCommandOutput | CreateServerCommandOutput | CreateUserCommandOutput | CreateWorkflowCommandOutput | DeleteAccessCommandOutput + | DeleteAgreementCommandOutput + | DeleteCertificateCommandOutput + | DeleteConnectorCommandOutput + | DeleteProfileCommandOutput | DeleteServerCommandOutput | DeleteSshPublicKeyCommandOutput | DeleteUserCommandOutput | DeleteWorkflowCommandOutput | DescribeAccessCommandOutput + | DescribeAgreementCommandOutput + | DescribeCertificateCommandOutput + | DescribeConnectorCommandOutput | DescribeExecutionCommandOutput + | DescribeProfileCommandOutput | DescribeSecurityPolicyCommandOutput | DescribeServerCommandOutput | DescribeUserCommandOutput | DescribeWorkflowCommandOutput + | ImportCertificateCommandOutput | ImportSshPublicKeyCommandOutput | ListAccessesCommandOutput + | ListAgreementsCommandOutput + | ListCertificatesCommandOutput + | ListConnectorsCommandOutput | ListExecutionsCommandOutput + | ListProfilesCommandOutput | ListSecurityPoliciesCommandOutput | ListServersCommandOutput | ListTagsForResourceCommandOutput | ListUsersCommandOutput | ListWorkflowsCommandOutput | SendWorkflowStepStateCommandOutput + | StartFileTransferCommandOutput | StartServerCommandOutput | StopServerCommandOutput | TagResourceCommandOutput | TestIdentityProviderCommandOutput | UntagResourceCommandOutput | UpdateAccessCommandOutput + | UpdateAgreementCommandOutput + | UpdateCertificateCommandOutput + | UpdateConnectorCommandOutput + | UpdateProfileCommandOutput | UpdateServerCommandOutput | UpdateUserCommandOutput; @@ -324,15 +390,15 @@ type TransferClientResolvedConfigType = __SmithyResolvedConfiguration<__HttpHand export interface TransferClientResolvedConfig extends TransferClientResolvedConfigType {} /** - *

Amazon Web Services Transfer Family is a fully managed service that enables the transfer of files over the - * File Transfer Protocol (FTP), File Transfer Protocol over SSL (FTPS), or Secure Shell (SSH) - * File Transfer Protocol (SFTP) directly into and out of Amazon Simple Storage Service (Amazon - * S3). Amazon Web Services helps you seamlessly migrate your file transfer workflows to Amazon Web Services Transfer Family by - * integrating with existing authentication systems, and providing DNS routing with Amazon Route - * 53 so nothing changes for your customers and partners, or their applications. With your data - * in Amazon S3, you can use it with Amazon Web Services services for processing, analytics, machine learning, - * and archiving. Getting started with Amazon Web Services Transfer Family is easy since there is no - * infrastructure to buy and set up.

+ *

Transfer Family is a fully managed service that enables the transfer of files over the File + * Transfer Protocol (FTP), File Transfer Protocol over SSL (FTPS), or Secure Shell (SSH) File + * Transfer Protocol (SFTP) directly into and out of Amazon Simple Storage Service (Amazon S3). + * Amazon Web Services helps you seamlessly migrate your file transfer workflows to Transfer Family by integrating + * with existing authentication systems, and providing DNS routing with Amazon Route 53 so + * nothing changes for your customers and partners, or their applications. With your data in + * Amazon S3, you can use it with Amazon Web Services for processing, analytics, machine learning, and + * archiving. Getting started with Transfer Family is easy since there is no infrastructure to buy and + * set up.

*/ export class TransferClient extends __Client< __HttpHandlerOptions, diff --git a/clients/client-transfer/src/commands/CreateAccessCommand.ts b/clients/client-transfer/src/commands/CreateAccessCommand.ts index 03a4a2675e49..4ca4293c6f23 100644 --- a/clients/client-transfer/src/commands/CreateAccessCommand.ts +++ b/clients/client-transfer/src/commands/CreateAccessCommand.ts @@ -29,7 +29,7 @@ export interface CreateAccessCommandOutput extends CreateAccessResponse, __Metad /** *

Used by administrators to choose which groups in the directory should have access to - * upload and download files over the enabled protocols using Amazon Web Services Transfer Family. For example, a + * upload and download files over the enabled protocols using Transfer Family. For example, a * Microsoft Active Directory might contain 50,000 users, but only a small fraction might need * the ability to transfer files to the server. An administrator can use * CreateAccess to limit the access to the correct set of users who need this diff --git a/clients/client-transfer/src/commands/CreateAgreementCommand.ts b/clients/client-transfer/src/commands/CreateAgreementCommand.ts new file mode 100644 index 000000000000..b7c8b1ab3216 --- /dev/null +++ b/clients/client-transfer/src/commands/CreateAgreementCommand.ts @@ -0,0 +1,106 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + CreateAgreementRequest, + CreateAgreementRequestFilterSensitiveLog, + CreateAgreementResponse, + CreateAgreementResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1CreateAgreementCommand, + serializeAws_json1_1CreateAgreementCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface CreateAgreementCommandInput extends CreateAgreementRequest {} +export interface CreateAgreementCommandOutput extends CreateAgreementResponse, __MetadataBearer {} + +/** + *

Creates an agreement. An agreement is a bilateral trading partner agreement, or partnership, + * between an Transfer Family server and an AS2 process. The agreement defines the file and message + * transfer relationship between the server and the AS2 process. To define an agreement, Transfer Family + * combines a server, local profile, partner profile, certificate, and other + * attributes.

+ *

The partner is identified with the PartnerProfileId, and the AS2 process is identified with the LocalProfileId.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, CreateAgreementCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, CreateAgreementCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new CreateAgreementCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link CreateAgreementCommandInput} for command's `input` shape. + * @see {@link CreateAgreementCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class CreateAgreementCommand extends $Command< + CreateAgreementCommandInput, + CreateAgreementCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateAgreementCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "CreateAgreementCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateAgreementRequestFilterSensitiveLog, + outputFilterSensitiveLog: CreateAgreementResponseFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateAgreementCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CreateAgreementCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1CreateAgreementCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/CreateConnectorCommand.ts b/clients/client-transfer/src/commands/CreateConnectorCommand.ts new file mode 100644 index 000000000000..2e197e70163c --- /dev/null +++ b/clients/client-transfer/src/commands/CreateConnectorCommand.ts @@ -0,0 +1,103 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + CreateConnectorRequest, + CreateConnectorRequestFilterSensitiveLog, + CreateConnectorResponse, + CreateConnectorResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1CreateConnectorCommand, + serializeAws_json1_1CreateConnectorCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface CreateConnectorCommandInput extends CreateConnectorRequest {} +export interface CreateConnectorCommandOutput extends CreateConnectorResponse, __MetadataBearer {} + +/** + *

Creates the connector, which captures the parameters for an outbound connection for the + * AS2 protocol. The connector is required for sending files from a + * customer's non Amazon Web Services server.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, CreateConnectorCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, CreateConnectorCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new CreateConnectorCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link CreateConnectorCommandInput} for command's `input` shape. + * @see {@link CreateConnectorCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class CreateConnectorCommand extends $Command< + CreateConnectorCommandInput, + CreateConnectorCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateConnectorCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "CreateConnectorCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateConnectorRequestFilterSensitiveLog, + outputFilterSensitiveLog: CreateConnectorResponseFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateConnectorCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CreateConnectorCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1CreateConnectorCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/CreateProfileCommand.ts b/clients/client-transfer/src/commands/CreateProfileCommand.ts new file mode 100644 index 000000000000..209adf3cb08b --- /dev/null +++ b/clients/client-transfer/src/commands/CreateProfileCommand.ts @@ -0,0 +1,102 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + CreateProfileRequest, + CreateProfileRequestFilterSensitiveLog, + CreateProfileResponse, + CreateProfileResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1CreateProfileCommand, + serializeAws_json1_1CreateProfileCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface CreateProfileCommandInput extends CreateProfileRequest {} +export interface CreateProfileCommandOutput extends CreateProfileResponse, __MetadataBearer {} + +/** + *

Creates the profile for the AS2 process. The agreement is between the partner and the AS2 + * process.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, CreateProfileCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, CreateProfileCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new CreateProfileCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link CreateProfileCommandInput} for command's `input` shape. + * @see {@link CreateProfileCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class CreateProfileCommand extends $Command< + CreateProfileCommandInput, + CreateProfileCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: CreateProfileCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "CreateProfileCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: CreateProfileRequestFilterSensitiveLog, + outputFilterSensitiveLog: CreateProfileResponseFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: CreateProfileCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1CreateProfileCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1CreateProfileCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/CreateUserCommand.ts b/clients/client-transfer/src/commands/CreateUserCommand.ts index 75c8a2059297..2486ac8e1d54 100644 --- a/clients/client-transfer/src/commands/CreateUserCommand.ts +++ b/clients/client-transfer/src/commands/CreateUserCommand.ts @@ -32,7 +32,7 @@ export interface CreateUserCommandOutput extends CreateUserResponse, __MetadataB * You can only create and associate users with servers that have the * IdentityProviderType set to SERVICE_MANAGED. Using parameters for * CreateUser, you can specify the user name, set the home directory, store the - * user's public key, and assign the user's Amazon Web Services Identity and Access Management (IAM) + * user's public key, and assign the user's Identity and Access Management (IAM) * role. You can also optionally add a session policy, and assign metadata with tags that can * be used to group and search for users.

* @example diff --git a/clients/client-transfer/src/commands/DeleteAgreementCommand.ts b/clients/client-transfer/src/commands/DeleteAgreementCommand.ts new file mode 100644 index 000000000000..149c951eed2c --- /dev/null +++ b/clients/client-transfer/src/commands/DeleteAgreementCommand.ts @@ -0,0 +1,96 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { DeleteAgreementRequest, DeleteAgreementRequestFilterSensitiveLog } from "../models/models_0"; +import { + deserializeAws_json1_1DeleteAgreementCommand, + serializeAws_json1_1DeleteAgreementCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface DeleteAgreementCommandInput extends DeleteAgreementRequest {} +export interface DeleteAgreementCommandOutput extends __MetadataBearer {} + +/** + *

Delete the agreement that's specified in the provided AgreementId.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, DeleteAgreementCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, DeleteAgreementCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new DeleteAgreementCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DeleteAgreementCommandInput} for command's `input` shape. + * @see {@link DeleteAgreementCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class DeleteAgreementCommand extends $Command< + DeleteAgreementCommandInput, + DeleteAgreementCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteAgreementCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "DeleteAgreementCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteAgreementRequestFilterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteAgreementCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteAgreementCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DeleteAgreementCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/DeleteCertificateCommand.ts b/clients/client-transfer/src/commands/DeleteCertificateCommand.ts new file mode 100644 index 000000000000..a323bbc8f647 --- /dev/null +++ b/clients/client-transfer/src/commands/DeleteCertificateCommand.ts @@ -0,0 +1,97 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { DeleteCertificateRequest, DeleteCertificateRequestFilterSensitiveLog } from "../models/models_0"; +import { + deserializeAws_json1_1DeleteCertificateCommand, + serializeAws_json1_1DeleteCertificateCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface DeleteCertificateCommandInput extends DeleteCertificateRequest {} +export interface DeleteCertificateCommandOutput extends __MetadataBearer {} + +/** + *

Deletes the certificate that's specified in the CertificateId + * parameter.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, DeleteCertificateCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, DeleteCertificateCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new DeleteCertificateCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DeleteCertificateCommandInput} for command's `input` shape. + * @see {@link DeleteCertificateCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class DeleteCertificateCommand extends $Command< + DeleteCertificateCommandInput, + DeleteCertificateCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteCertificateCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "DeleteCertificateCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteCertificateRequestFilterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteCertificateCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteCertificateCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DeleteCertificateCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/DeleteConnectorCommand.ts b/clients/client-transfer/src/commands/DeleteConnectorCommand.ts new file mode 100644 index 000000000000..a1004ec08066 --- /dev/null +++ b/clients/client-transfer/src/commands/DeleteConnectorCommand.ts @@ -0,0 +1,96 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { DeleteConnectorRequest, DeleteConnectorRequestFilterSensitiveLog } from "../models/models_0"; +import { + deserializeAws_json1_1DeleteConnectorCommand, + serializeAws_json1_1DeleteConnectorCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface DeleteConnectorCommandInput extends DeleteConnectorRequest {} +export interface DeleteConnectorCommandOutput extends __MetadataBearer {} + +/** + *

Deletes the agreement that's specified in the provided ConnectorId.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, DeleteConnectorCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, DeleteConnectorCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new DeleteConnectorCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DeleteConnectorCommandInput} for command's `input` shape. + * @see {@link DeleteConnectorCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class DeleteConnectorCommand extends $Command< + DeleteConnectorCommandInput, + DeleteConnectorCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteConnectorCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "DeleteConnectorCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteConnectorRequestFilterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteConnectorCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteConnectorCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DeleteConnectorCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/DeleteProfileCommand.ts b/clients/client-transfer/src/commands/DeleteProfileCommand.ts new file mode 100644 index 000000000000..6a2545314be4 --- /dev/null +++ b/clients/client-transfer/src/commands/DeleteProfileCommand.ts @@ -0,0 +1,96 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { DeleteProfileRequest, DeleteProfileRequestFilterSensitiveLog } from "../models/models_0"; +import { + deserializeAws_json1_1DeleteProfileCommand, + serializeAws_json1_1DeleteProfileCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface DeleteProfileCommandInput extends DeleteProfileRequest {} +export interface DeleteProfileCommandOutput extends __MetadataBearer {} + +/** + *

Deletes the profile that's specified in the ProfileId parameter.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, DeleteProfileCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, DeleteProfileCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new DeleteProfileCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DeleteProfileCommandInput} for command's `input` shape. + * @see {@link DeleteProfileCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class DeleteProfileCommand extends $Command< + DeleteProfileCommandInput, + DeleteProfileCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DeleteProfileCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "DeleteProfileCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DeleteProfileRequestFilterSensitiveLog, + outputFilterSensitiveLog: (output: any) => output, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DeleteProfileCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DeleteProfileCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DeleteProfileCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/DescribeAccessCommand.ts b/clients/client-transfer/src/commands/DescribeAccessCommand.ts index e219ba3dac3f..a6427df14722 100644 --- a/clients/client-transfer/src/commands/DescribeAccessCommand.ts +++ b/clients/client-transfer/src/commands/DescribeAccessCommand.ts @@ -30,7 +30,7 @@ export interface DescribeAccessCommandOutput extends DescribeAccessResponse, __M /** *

Describes the access that is assigned to the specific file transfer protocol-enabled * server, as identified by its ServerId property and its - * ExternalID.

+ * ExternalId.

* *

The response from this call returns the properties of the access that is associated with * the ServerId value that was specified.

diff --git a/clients/client-transfer/src/commands/DescribeAgreementCommand.ts b/clients/client-transfer/src/commands/DescribeAgreementCommand.ts new file mode 100644 index 000000000000..1c28ad4c3f8d --- /dev/null +++ b/clients/client-transfer/src/commands/DescribeAgreementCommand.ts @@ -0,0 +1,101 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + DescribeAgreementRequest, + DescribeAgreementRequestFilterSensitiveLog, + DescribeAgreementResponse, + DescribeAgreementResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1DescribeAgreementCommand, + serializeAws_json1_1DescribeAgreementCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface DescribeAgreementCommandInput extends DescribeAgreementRequest {} +export interface DescribeAgreementCommandOutput extends DescribeAgreementResponse, __MetadataBearer {} + +/** + *

Describes the agreement that's identified by the AgreementId.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, DescribeAgreementCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, DescribeAgreementCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new DescribeAgreementCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DescribeAgreementCommandInput} for command's `input` shape. + * @see {@link DescribeAgreementCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class DescribeAgreementCommand extends $Command< + DescribeAgreementCommandInput, + DescribeAgreementCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeAgreementCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "DescribeAgreementCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeAgreementRequestFilterSensitiveLog, + outputFilterSensitiveLog: DescribeAgreementResponseFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeAgreementCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeAgreementCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DescribeAgreementCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/DescribeCertificateCommand.ts b/clients/client-transfer/src/commands/DescribeCertificateCommand.ts new file mode 100644 index 000000000000..e5d1023727d2 --- /dev/null +++ b/clients/client-transfer/src/commands/DescribeCertificateCommand.ts @@ -0,0 +1,101 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + DescribeCertificateRequest, + DescribeCertificateRequestFilterSensitiveLog, + DescribeCertificateResponse, + DescribeCertificateResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1DescribeCertificateCommand, + serializeAws_json1_1DescribeCertificateCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface DescribeCertificateCommandInput extends DescribeCertificateRequest {} +export interface DescribeCertificateCommandOutput extends DescribeCertificateResponse, __MetadataBearer {} + +/** + *

Describes the certificate that's identified by the CertificateId.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, DescribeCertificateCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, DescribeCertificateCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new DescribeCertificateCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DescribeCertificateCommandInput} for command's `input` shape. + * @see {@link DescribeCertificateCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class DescribeCertificateCommand extends $Command< + DescribeCertificateCommandInput, + DescribeCertificateCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeCertificateCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "DescribeCertificateCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeCertificateRequestFilterSensitiveLog, + outputFilterSensitiveLog: DescribeCertificateResponseFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeCertificateCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeCertificateCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DescribeCertificateCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/DescribeConnectorCommand.ts b/clients/client-transfer/src/commands/DescribeConnectorCommand.ts new file mode 100644 index 000000000000..7e03ac18ed6a --- /dev/null +++ b/clients/client-transfer/src/commands/DescribeConnectorCommand.ts @@ -0,0 +1,102 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + DescribeConnectorRequest, + DescribeConnectorRequestFilterSensitiveLog, + DescribeConnectorResponse, + DescribeConnectorResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1DescribeConnectorCommand, + serializeAws_json1_1DescribeConnectorCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface DescribeConnectorCommandInput extends DescribeConnectorRequest {} +export interface DescribeConnectorCommandOutput extends DescribeConnectorResponse, __MetadataBearer {} + +/** + *

Describes the connector that's identified by the ConnectorId. + *

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, DescribeConnectorCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, DescribeConnectorCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new DescribeConnectorCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DescribeConnectorCommandInput} for command's `input` shape. + * @see {@link DescribeConnectorCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class DescribeConnectorCommand extends $Command< + DescribeConnectorCommandInput, + DescribeConnectorCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeConnectorCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "DescribeConnectorCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeConnectorRequestFilterSensitiveLog, + outputFilterSensitiveLog: DescribeConnectorResponseFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeConnectorCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeConnectorCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DescribeConnectorCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/DescribeProfileCommand.ts b/clients/client-transfer/src/commands/DescribeProfileCommand.ts new file mode 100644 index 000000000000..9e7b1bf4c56a --- /dev/null +++ b/clients/client-transfer/src/commands/DescribeProfileCommand.ts @@ -0,0 +1,101 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + DescribeProfileRequest, + DescribeProfileRequestFilterSensitiveLog, + DescribeProfileResponse, + DescribeProfileResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1DescribeProfileCommand, + serializeAws_json1_1DescribeProfileCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface DescribeProfileCommandInput extends DescribeProfileRequest {} +export interface DescribeProfileCommandOutput extends DescribeProfileResponse, __MetadataBearer {} + +/** + *

Returns the details of the profile that's specified by the ProfileId.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, DescribeProfileCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, DescribeProfileCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new DescribeProfileCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link DescribeProfileCommandInput} for command's `input` shape. + * @see {@link DescribeProfileCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class DescribeProfileCommand extends $Command< + DescribeProfileCommandInput, + DescribeProfileCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: DescribeProfileCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "DescribeProfileCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: DescribeProfileRequestFilterSensitiveLog, + outputFilterSensitiveLog: DescribeProfileResponseFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: DescribeProfileCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1DescribeProfileCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1DescribeProfileCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/ImportCertificateCommand.ts b/clients/client-transfer/src/commands/ImportCertificateCommand.ts new file mode 100644 index 000000000000..cce6cc0a38d2 --- /dev/null +++ b/clients/client-transfer/src/commands/ImportCertificateCommand.ts @@ -0,0 +1,103 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + ImportCertificateRequest, + ImportCertificateRequestFilterSensitiveLog, + ImportCertificateResponse, + ImportCertificateResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1ImportCertificateCommand, + serializeAws_json1_1ImportCertificateCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface ImportCertificateCommandInput extends ImportCertificateRequest {} +export interface ImportCertificateCommandOutput extends ImportCertificateResponse, __MetadataBearer {} + +/** + *

Imports the signing and encryption certificates that you need to create local (AS2) + * profiles and partner + * profiles.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, ImportCertificateCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, ImportCertificateCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new ImportCertificateCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ImportCertificateCommandInput} for command's `input` shape. + * @see {@link ImportCertificateCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class ImportCertificateCommand extends $Command< + ImportCertificateCommandInput, + ImportCertificateCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ImportCertificateCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "ImportCertificateCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ImportCertificateRequestFilterSensitiveLog, + outputFilterSensitiveLog: ImportCertificateResponseFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ImportCertificateCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ImportCertificateCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1ImportCertificateCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/ListAgreementsCommand.ts b/clients/client-transfer/src/commands/ListAgreementsCommand.ts new file mode 100644 index 000000000000..67a9ddb9414d --- /dev/null +++ b/clients/client-transfer/src/commands/ListAgreementsCommand.ts @@ -0,0 +1,105 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + ListAgreementsRequest, + ListAgreementsRequestFilterSensitiveLog, + ListAgreementsResponse, + ListAgreementsResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1ListAgreementsCommand, + serializeAws_json1_1ListAgreementsCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface ListAgreementsCommandInput extends ListAgreementsRequest {} +export interface ListAgreementsCommandOutput extends ListAgreementsResponse, __MetadataBearer {} + +/** + *

Returns a list of the agreements for the server that's identified by the + * ServerId that you supply. If you want to limit the results to a certain number, + * supply a value for the MaxResults parameter. If you ran the command previously + * and received a value for NextToken, you can supply that value to continue listing + * agreements from where you left off.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, ListAgreementsCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, ListAgreementsCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new ListAgreementsCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ListAgreementsCommandInput} for command's `input` shape. + * @see {@link ListAgreementsCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class ListAgreementsCommand extends $Command< + ListAgreementsCommandInput, + ListAgreementsCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListAgreementsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "ListAgreementsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListAgreementsRequestFilterSensitiveLog, + outputFilterSensitiveLog: ListAgreementsResponseFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListAgreementsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListAgreementsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1ListAgreementsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/ListCertificatesCommand.ts b/clients/client-transfer/src/commands/ListCertificatesCommand.ts new file mode 100644 index 000000000000..80a800055f65 --- /dev/null +++ b/clients/client-transfer/src/commands/ListCertificatesCommand.ts @@ -0,0 +1,105 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + ListCertificatesRequest, + ListCertificatesRequestFilterSensitiveLog, + ListCertificatesResponse, + ListCertificatesResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1ListCertificatesCommand, + serializeAws_json1_1ListCertificatesCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface ListCertificatesCommandInput extends ListCertificatesRequest {} +export interface ListCertificatesCommandOutput extends ListCertificatesResponse, __MetadataBearer {} + +/** + *

Returns a list of the current certificates that have been imported into Transfer Family. If you want to + * limit the results to a certain number, supply a value for the MaxResults + * parameter. If you ran the command previously and received a value for the + * NextToken parameter, you can supply that value to continue listing certificates + * from where you left off.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, ListCertificatesCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, ListCertificatesCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new ListCertificatesCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ListCertificatesCommandInput} for command's `input` shape. + * @see {@link ListCertificatesCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class ListCertificatesCommand extends $Command< + ListCertificatesCommandInput, + ListCertificatesCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListCertificatesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "ListCertificatesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListCertificatesRequestFilterSensitiveLog, + outputFilterSensitiveLog: ListCertificatesResponseFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListCertificatesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListCertificatesCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1ListCertificatesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/ListConnectorsCommand.ts b/clients/client-transfer/src/commands/ListConnectorsCommand.ts new file mode 100644 index 000000000000..8e3767d1bcd1 --- /dev/null +++ b/clients/client-transfer/src/commands/ListConnectorsCommand.ts @@ -0,0 +1,101 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + ListConnectorsRequest, + ListConnectorsRequestFilterSensitiveLog, + ListConnectorsResponse, + ListConnectorsResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1ListConnectorsCommand, + serializeAws_json1_1ListConnectorsCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface ListConnectorsCommandInput extends ListConnectorsRequest {} +export interface ListConnectorsCommandOutput extends ListConnectorsResponse, __MetadataBearer {} + +/** + *

Lists the connectors for the specified Region.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, ListConnectorsCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, ListConnectorsCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new ListConnectorsCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ListConnectorsCommandInput} for command's `input` shape. + * @see {@link ListConnectorsCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class ListConnectorsCommand extends $Command< + ListConnectorsCommandInput, + ListConnectorsCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListConnectorsCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "ListConnectorsCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListConnectorsRequestFilterSensitiveLog, + outputFilterSensitiveLog: ListConnectorsResponseFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListConnectorsCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListConnectorsCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1ListConnectorsCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/ListProfilesCommand.ts b/clients/client-transfer/src/commands/ListProfilesCommand.ts new file mode 100644 index 000000000000..a5e618894d01 --- /dev/null +++ b/clients/client-transfer/src/commands/ListProfilesCommand.ts @@ -0,0 +1,104 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + ListProfilesRequest, + ListProfilesRequestFilterSensitiveLog, + ListProfilesResponse, + ListProfilesResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1ListProfilesCommand, + serializeAws_json1_1ListProfilesCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface ListProfilesCommandInput extends ListProfilesRequest {} +export interface ListProfilesCommandOutput extends ListProfilesResponse, __MetadataBearer {} + +/** + *

Returns a list of the profiles for your system. If you want to limit the results to a + * certain number, supply a value for the MaxResults parameter. If you ran the + * command previously and received a value for NextToken, you can supply that value + * to continue listing profiles from where you left off.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, ListProfilesCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, ListProfilesCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new ListProfilesCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link ListProfilesCommandInput} for command's `input` shape. + * @see {@link ListProfilesCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class ListProfilesCommand extends $Command< + ListProfilesCommandInput, + ListProfilesCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: ListProfilesCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "ListProfilesCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: ListProfilesRequestFilterSensitiveLog, + outputFilterSensitiveLog: ListProfilesResponseFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: ListProfilesCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1ListProfilesCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1ListProfilesCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/StartFileTransferCommand.ts b/clients/client-transfer/src/commands/StartFileTransferCommand.ts new file mode 100644 index 000000000000..7d659c8fa44a --- /dev/null +++ b/clients/client-transfer/src/commands/StartFileTransferCommand.ts @@ -0,0 +1,102 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + StartFileTransferRequest, + StartFileTransferRequestFilterSensitiveLog, + StartFileTransferResponse, + StartFileTransferResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1StartFileTransferCommand, + serializeAws_json1_1StartFileTransferCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface StartFileTransferCommandInput extends StartFileTransferRequest {} +export interface StartFileTransferCommandOutput extends StartFileTransferResponse, __MetadataBearer {} + +/** + *

Begins an outbound file transfer. You specify the ConnectorId and the file + * paths for where to send the files.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, StartFileTransferCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, StartFileTransferCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new StartFileTransferCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link StartFileTransferCommandInput} for command's `input` shape. + * @see {@link StartFileTransferCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class StartFileTransferCommand extends $Command< + StartFileTransferCommandInput, + StartFileTransferCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: StartFileTransferCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "StartFileTransferCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: StartFileTransferRequestFilterSensitiveLog, + outputFilterSensitiveLog: StartFileTransferResponseFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: StartFileTransferCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1StartFileTransferCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1StartFileTransferCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/StopServerCommand.ts b/clients/client-transfer/src/commands/StopServerCommand.ts index f9a40c1fca5a..da736b3302e6 100644 --- a/clients/client-transfer/src/commands/StopServerCommand.ts +++ b/clients/client-transfer/src/commands/StopServerCommand.ts @@ -29,7 +29,7 @@ export interface StopServerCommandOutput extends __MetadataBearer {} * stopping your server.

* * - *

Stopping the server will not reduce or impact your file transfer protocol endpoint + *

Stopping the server does not reduce or impact your file transfer protocol endpoint * billing; you must delete the server to stop being billed.

*
* diff --git a/clients/client-transfer/src/commands/UpdateAgreementCommand.ts b/clients/client-transfer/src/commands/UpdateAgreementCommand.ts new file mode 100644 index 000000000000..0715c09071aa --- /dev/null +++ b/clients/client-transfer/src/commands/UpdateAgreementCommand.ts @@ -0,0 +1,103 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + UpdateAgreementRequest, + UpdateAgreementRequestFilterSensitiveLog, + UpdateAgreementResponse, + UpdateAgreementResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1UpdateAgreementCommand, + serializeAws_json1_1UpdateAgreementCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface UpdateAgreementCommandInput extends UpdateAgreementRequest {} +export interface UpdateAgreementCommandOutput extends UpdateAgreementResponse, __MetadataBearer {} + +/** + *

Updates some of the parameters for an existing agreement. Provide the + * AgreementId and the ServerId for the agreement that you want to + * update, along with the new values for the parameters to update.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, UpdateAgreementCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, UpdateAgreementCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new UpdateAgreementCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link UpdateAgreementCommandInput} for command's `input` shape. + * @see {@link UpdateAgreementCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class UpdateAgreementCommand extends $Command< + UpdateAgreementCommandInput, + UpdateAgreementCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateAgreementCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "UpdateAgreementCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateAgreementRequestFilterSensitiveLog, + outputFilterSensitiveLog: UpdateAgreementResponseFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateAgreementCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1UpdateAgreementCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1UpdateAgreementCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/UpdateCertificateCommand.ts b/clients/client-transfer/src/commands/UpdateCertificateCommand.ts new file mode 100644 index 000000000000..25cc7e5e3031 --- /dev/null +++ b/clients/client-transfer/src/commands/UpdateCertificateCommand.ts @@ -0,0 +1,101 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + UpdateCertificateRequest, + UpdateCertificateRequestFilterSensitiveLog, + UpdateCertificateResponse, + UpdateCertificateResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1UpdateCertificateCommand, + serializeAws_json1_1UpdateCertificateCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface UpdateCertificateCommandInput extends UpdateCertificateRequest {} +export interface UpdateCertificateCommandOutput extends UpdateCertificateResponse, __MetadataBearer {} + +/** + *

Updates the active and inactive dates for a certificate.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, UpdateCertificateCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, UpdateCertificateCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new UpdateCertificateCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link UpdateCertificateCommandInput} for command's `input` shape. + * @see {@link UpdateCertificateCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class UpdateCertificateCommand extends $Command< + UpdateCertificateCommandInput, + UpdateCertificateCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateCertificateCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "UpdateCertificateCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateCertificateRequestFilterSensitiveLog, + outputFilterSensitiveLog: UpdateCertificateResponseFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateCertificateCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1UpdateCertificateCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1UpdateCertificateCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/UpdateConnectorCommand.ts b/clients/client-transfer/src/commands/UpdateConnectorCommand.ts new file mode 100644 index 000000000000..667f5d28a0c2 --- /dev/null +++ b/clients/client-transfer/src/commands/UpdateConnectorCommand.ts @@ -0,0 +1,103 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + UpdateConnectorRequest, + UpdateConnectorRequestFilterSensitiveLog, + UpdateConnectorResponse, + UpdateConnectorResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1UpdateConnectorCommand, + serializeAws_json1_1UpdateConnectorCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface UpdateConnectorCommandInput extends UpdateConnectorRequest {} +export interface UpdateConnectorCommandOutput extends UpdateConnectorResponse, __MetadataBearer {} + +/** + *

Updates some of the parameters for an existing connector. Provide the + * ConnectorId for the connector that you want to update, along with the new + * values for the parameters to update.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, UpdateConnectorCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, UpdateConnectorCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new UpdateConnectorCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link UpdateConnectorCommandInput} for command's `input` shape. + * @see {@link UpdateConnectorCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class UpdateConnectorCommand extends $Command< + UpdateConnectorCommandInput, + UpdateConnectorCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateConnectorCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "UpdateConnectorCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateConnectorRequestFilterSensitiveLog, + outputFilterSensitiveLog: UpdateConnectorResponseFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateConnectorCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1UpdateConnectorCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1UpdateConnectorCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/UpdateProfileCommand.ts b/clients/client-transfer/src/commands/UpdateProfileCommand.ts new file mode 100644 index 000000000000..3cf2aac5c015 --- /dev/null +++ b/clients/client-transfer/src/commands/UpdateProfileCommand.ts @@ -0,0 +1,103 @@ +// smithy-typescript generated code +import { getSerdePlugin } from "@aws-sdk/middleware-serde"; +import { HttpRequest as __HttpRequest, HttpResponse as __HttpResponse } from "@aws-sdk/protocol-http"; +import { Command as $Command } from "@aws-sdk/smithy-client"; +import { + FinalizeHandlerArguments, + Handler, + HandlerExecutionContext, + HttpHandlerOptions as __HttpHandlerOptions, + MetadataBearer as __MetadataBearer, + MiddlewareStack, + SerdeContext as __SerdeContext, +} from "@aws-sdk/types"; + +import { + UpdateProfileRequest, + UpdateProfileRequestFilterSensitiveLog, + UpdateProfileResponse, + UpdateProfileResponseFilterSensitiveLog, +} from "../models/models_0"; +import { + deserializeAws_json1_1UpdateProfileCommand, + serializeAws_json1_1UpdateProfileCommand, +} from "../protocols/Aws_json1_1"; +import { ServiceInputTypes, ServiceOutputTypes, TransferClientResolvedConfig } from "../TransferClient"; + +export interface UpdateProfileCommandInput extends UpdateProfileRequest {} +export interface UpdateProfileCommandOutput extends UpdateProfileResponse, __MetadataBearer {} + +/** + *

Updates some of the parameters for an existing profile. Provide the ProfileId + * for the profile that you want to update, along with the new values for the parameters to + * update.

+ * @example + * Use a bare-bones client and the command you need to make an API call. + * ```javascript + * import { TransferClient, UpdateProfileCommand } from "@aws-sdk/client-transfer"; // ES Modules import + * // const { TransferClient, UpdateProfileCommand } = require("@aws-sdk/client-transfer"); // CommonJS import + * const client = new TransferClient(config); + * const command = new UpdateProfileCommand(input); + * const response = await client.send(command); + * ``` + * + * @see {@link UpdateProfileCommandInput} for command's `input` shape. + * @see {@link UpdateProfileCommandOutput} for command's `response` shape. + * @see {@link TransferClientResolvedConfig | config} for TransferClient's `config` shape. + * + */ +export class UpdateProfileCommand extends $Command< + UpdateProfileCommandInput, + UpdateProfileCommandOutput, + TransferClientResolvedConfig +> { + // Start section: command_properties + // End section: command_properties + + constructor(readonly input: UpdateProfileCommandInput) { + // Start section: command_constructor + super(); + // End section: command_constructor + } + + /** + * @internal + */ + resolveMiddleware( + clientStack: MiddlewareStack, + configuration: TransferClientResolvedConfig, + options?: __HttpHandlerOptions + ): Handler { + this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize)); + + const stack = clientStack.concat(this.middlewareStack); + + const { logger } = configuration; + const clientName = "TransferClient"; + const commandName = "UpdateProfileCommand"; + const handlerExecutionContext: HandlerExecutionContext = { + logger, + clientName, + commandName, + inputFilterSensitiveLog: UpdateProfileRequestFilterSensitiveLog, + outputFilterSensitiveLog: UpdateProfileResponseFilterSensitiveLog, + }; + const { requestHandler } = configuration; + return stack.resolve( + (request: FinalizeHandlerArguments) => + requestHandler.handle(request.request as __HttpRequest, options || {}), + handlerExecutionContext + ); + } + + private serialize(input: UpdateProfileCommandInput, context: __SerdeContext): Promise<__HttpRequest> { + return serializeAws_json1_1UpdateProfileCommand(input, context); + } + + private deserialize(output: __HttpResponse, context: __SerdeContext): Promise { + return deserializeAws_json1_1UpdateProfileCommand(output, context); + } + + // Start section: command_body_extra + // End section: command_body_extra +} diff --git a/clients/client-transfer/src/commands/index.ts b/clients/client-transfer/src/commands/index.ts index 53c6186a3c15..44e5911f9298 100644 --- a/clients/client-transfer/src/commands/index.ts +++ b/clients/client-transfer/src/commands/index.ts @@ -1,33 +1,54 @@ // smithy-typescript generated code export * from "./CreateAccessCommand"; +export * from "./CreateAgreementCommand"; +export * from "./CreateConnectorCommand"; +export * from "./CreateProfileCommand"; export * from "./CreateServerCommand"; export * from "./CreateUserCommand"; export * from "./CreateWorkflowCommand"; export * from "./DeleteAccessCommand"; +export * from "./DeleteAgreementCommand"; +export * from "./DeleteCertificateCommand"; +export * from "./DeleteConnectorCommand"; +export * from "./DeleteProfileCommand"; export * from "./DeleteServerCommand"; export * from "./DeleteSshPublicKeyCommand"; export * from "./DeleteUserCommand"; export * from "./DeleteWorkflowCommand"; export * from "./DescribeAccessCommand"; +export * from "./DescribeAgreementCommand"; +export * from "./DescribeCertificateCommand"; +export * from "./DescribeConnectorCommand"; export * from "./DescribeExecutionCommand"; +export * from "./DescribeProfileCommand"; export * from "./DescribeSecurityPolicyCommand"; export * from "./DescribeServerCommand"; export * from "./DescribeUserCommand"; export * from "./DescribeWorkflowCommand"; +export * from "./ImportCertificateCommand"; export * from "./ImportSshPublicKeyCommand"; export * from "./ListAccessesCommand"; +export * from "./ListAgreementsCommand"; +export * from "./ListCertificatesCommand"; +export * from "./ListConnectorsCommand"; export * from "./ListExecutionsCommand"; +export * from "./ListProfilesCommand"; export * from "./ListSecurityPoliciesCommand"; export * from "./ListServersCommand"; export * from "./ListTagsForResourceCommand"; export * from "./ListUsersCommand"; export * from "./ListWorkflowsCommand"; export * from "./SendWorkflowStepStateCommand"; +export * from "./StartFileTransferCommand"; export * from "./StartServerCommand"; export * from "./StopServerCommand"; export * from "./TagResourceCommand"; export * from "./TestIdentityProviderCommand"; export * from "./UntagResourceCommand"; export * from "./UpdateAccessCommand"; +export * from "./UpdateAgreementCommand"; +export * from "./UpdateCertificateCommand"; +export * from "./UpdateConnectorCommand"; +export * from "./UpdateProfileCommand"; export * from "./UpdateServerCommand"; export * from "./UpdateUserCommand"; diff --git a/clients/client-transfer/src/models/models_0.ts b/clients/client-transfer/src/models/models_0.ts index 509222ac6df1..0d80c6a993c0 100644 --- a/clients/client-transfer/src/models/models_0.ts +++ b/clients/client-transfer/src/models/models_0.ts @@ -24,6 +24,121 @@ export class AccessDeniedException extends __BaseException { } } +export enum AgreementStatusType { + ACTIVE = "ACTIVE", + INACTIVE = "INACTIVE", +} + +export enum CompressionEnum { + DISABLED = "DISABLED", + ZLIB = "ZLIB", +} + +export enum EncryptionAlg { + AES128_CBC = "AES128_CBC", + AES192_CBC = "AES192_CBC", + AES256_CBC = "AES256_CBC", +} + +export enum MdnResponse { + NONE = "NONE", + SYNC = "SYNC", +} + +export enum MdnSigningAlg { + DEFAULT = "DEFAULT", + NONE = "NONE", + SHA1 = "SHA1", + SHA256 = "SHA256", + SHA384 = "SHA384", + SHA512 = "SHA512", +} + +export enum SigningAlg { + NONE = "NONE", + SHA1 = "SHA1", + SHA256 = "SHA256", + SHA384 = "SHA384", + SHA512 = "SHA512", +} + +/** + *

Contains the details for a connector object. The connector object is used for AS2 outbound + * processes, to connect the Transfer Family customer with the trading partner.

+ */ +export interface As2ConnectorConfig { + /** + *

A unique identifier for the AS2 process.

+ */ + LocalProfileId?: string; + + /** + *

A unique identifier for the partner for the connector.

+ */ + PartnerProfileId?: string; + + /** + *

A short description to help identify the connector.

+ */ + MessageSubject?: string; + + /** + *

Specifies whether the AS2 file is compressed.

+ */ + Compression?: CompressionEnum | string; + + /** + *

The algorithm that is used to encrypt the file.

+ */ + EncryptionAlgorithm?: EncryptionAlg | string; + + /** + *

The algorithm that is used to sign the AS2 transfers for this partner profile.

+ */ + SigningAlgorithm?: SigningAlg | string; + + /** + *

The signing algorithm for the MDN response.

+ */ + MdnSigningAlgorithm?: MdnSigningAlg | string; + + /** + *

Used for outbound requests (from an Transfer Family server to a partner AS2 server) to determine whether + * the partner response for transfers is synchronous or asynchronous. Specify either of the following values:

+ *
    + *
  • + *

    + * SYNC: The system expects a synchronous MDN response, confirming that the file was transferred successfully (or not).

    + *
  • + *
  • + *

    + * NONE: Specifies that no MDN response is required.

    + *
  • + *
+ */ + MdnResponse?: MdnResponse | string; +} + +export enum As2Transport { + HTTP = "HTTP", +} + +export enum CertificateStatusType { + ACTIVE = "ACTIVE", + INACTIVE = "INACTIVE", + PENDING_ROTATION = "PENDING_ROTATION", +} + +export enum CertificateType { + CERTIFICATE = "CERTIFICATE", + CERTIFICATE_WITH_PRIVATE_KEY = "CERTIFICATE_WITH_PRIVATE_KEY", +} + +export enum CertificateUsageType { + ENCRYPTION = "ENCRYPTION", + SIGNING = "SIGNING", +} + /** *

This exception is thrown when the UpdateServer is called for a file transfer * protocol-enabled server that has VPC as the endpoint type and the server's @@ -85,7 +200,7 @@ export interface S3InputFileLocation { Bucket?: string; /** - *

The name assigned to the file when it was created in S3. You use the object key to retrieve the object.

+ *

The name assigned to the file when it was created in Amazon S3. You use the object key to retrieve the object.

*/ Key?: string; } @@ -206,10 +321,10 @@ export interface CreateAccessRequest { HomeDirectory?: string; /** - *

The type of landing directory (folder) you want your users' home directory to be when they log into the server. - * If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. - * If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon - * S3 or EFS paths visible to your users.

+ *

The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. + * If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer + * protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for + * how you want to make Amazon S3 or Amazon EFS paths visible to your users.

*/ HomeDirectoryType?: HomeDirectoryType | string; @@ -218,9 +333,9 @@ export interface CreateAccessRequest { * be visible to your user and how you want to make them visible. You must specify the * Entry and Target pair, where Entry shows how the path * is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you - * only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity - * and Access Management (IAM) role provides access to paths in Target. This value - * can only be set when HomeDirectoryType is set to + * only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) + * role provides access to paths in Target. This value + * can be set only when HomeDirectoryType is set to * LOGICAL.

*

The following is an Entry and Target pair example.

*

@@ -238,18 +353,18 @@ export interface CreateAccessRequest { HomeDirectoryMappings?: HomeDirectoryMapEntry[]; /** - *

A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user + *

A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's * access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, * ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

* * - *

This only applies when the domain of ServerId is S3. EFS does not use session policies.

- *

For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead + *

This policy applies only when the domain of ServerId is Amazon S3. Amazon EFS does not use session policies.

+ *

For session policies, Transfer Family stores the policy as a JSON blob, instead * of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass * it in the Policy argument.

*

For an example of a session policy, see Example * session policy.

- *

For more information, see AssumeRole in the Amazon Web Services Security Token Service API + *

For more information, see AssumeRole in the Security Token Service API * Reference.

*
*/ @@ -265,10 +380,10 @@ export interface CreateAccessRequest { PosixProfile?: PosixProfile; /** - *

Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS - * file system. The policies attached to this role determine the level of access that you want to provide your users when transferring - * files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the - * server to access your resources when servicing your users' transfer requests.

+ *

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 + * bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users + * when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust + * relationship that allows the server to access your resources when servicing your users' transfer requests.

*/ Role: string | undefined; @@ -280,7 +395,7 @@ export interface CreateAccessRequest { /** *

A unique identifier that is required to identify specific groups within your directory. * The users of the group that you associate have access to your Amazon S3 or Amazon EFS - * resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name, + * resources over the enabled protocols using Transfer Family. If you know the group name, * you can view the SID values by running the following command using Windows PowerShell.

* *

@@ -289,7 +404,7 @@ export interface CreateAccessRequest { * *

In that command, replace YourGroupName with the name of your Active Directory group.

* - *

The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. + *

The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. * You can also include underscores or any of the following characters: =,.@:/-

*/ ExternalId: string | undefined; @@ -303,7 +418,7 @@ export interface CreateAccessResponse { /** *

The external ID of the group whose users have access to your Amazon S3 or Amazon EFS - * resources over the enabled protocols using Amazon Web Services Transfer Family.

+ * resources over the enabled protocols using Transfer Family.

*/ ExternalId: string | undefined; } @@ -422,6 +537,165 @@ export class ServiceUnavailableException extends __BaseException { } } +/** + *

Creates a key-value pair for a specific resource. Tags are metadata that you can use to + * search for and group a resource for various purposes. You can apply tags to servers, users, + * and roles. A tag key can take more than one value. For example, to group servers for + * accounting purposes, you might create a tag called Group and assign the values + * Research and Accounting to that group.

+ */ +export interface Tag { + /** + *

The name assigned to the tag that you create.

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

Contains one or more values that you assigned to the key name you create.

+ */ + Value: string | undefined; +} + +export interface CreateAgreementRequest { + /** + *

A name or short description to identify the agreement.

+ */ + Description?: string; + + /** + *

A system-assigned unique identifier for a server instance. This is the specific server + * that the agreement uses.

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

A unique identifier for the AS2 local profile.

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

A unique identifier for the partner profile used in the agreement.

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

The landing directory (folder) for files transferred by using the AS2 protocol.

+ *

A BaseDirectory example is + * /DOC-EXAMPLE-BUCKET/home/mydirectory + * .

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

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that grants access to at least the + * HomeDirectory of your users' Amazon S3 buckets.

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

The status of the agreement. The agreement can be either ACTIVE or + * INACTIVE.

+ */ + Status?: AgreementStatusType | string; + + /** + *

Key-value pairs that can be used to group and search for agreements.

+ */ + Tags?: Tag[]; +} + +export interface CreateAgreementResponse { + /** + *

The unique identifier for the agreement. Use this ID for deleting, or updating an + * agreement, as well as in any other API calls that require that you specify the agreement + * ID.

+ */ + AgreementId: string | undefined; +} + +export interface CreateConnectorRequest { + /** + *

The URL of the partner's AS2 endpoint.

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

A structure that contains the parameters for a connector object.

+ */ + As2Config: As2ConnectorConfig | undefined; + + /** + *

With AS2, you can send files by calling StartFileTransfer and specifying the + * file paths in the request parameter, SendFilePaths. We use the file’s parent + * directory (for example, for --send-file-paths /bucket/dir/file.txt, parent + * directory is /bucket/dir/) to temporarily store a processed AS2 message file, + * store the MDN when we receive them from the partner, and write a final JSON file containing + * relevant metadata of the transmission. So, the AccessRole needs to provide read + * and write access to the parent directory of the file location used in the + * StartFileTransfer request. Additionally, you need to provide read and write + * access to the parent directory of the files that you intend to send with + * StartFileTransfer.

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

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a connector to turn + * on CloudWatch logging for Amazon S3 events. When set, you can view connector + * activity in your CloudWatch logs.

+ */ + LoggingRole?: string; + + /** + *

Key-value pairs that can be used to group and search for connectors. Tags are metadata attached to connectors for any purpose.

+ */ + Tags?: Tag[]; +} + +export interface CreateConnectorResponse { + /** + *

The unique identifier for the connector, returned after the API call succeeds.

+ */ + ConnectorId: string | undefined; +} + +export enum ProfileType { + LOCAL = "LOCAL", + PARTNER = "PARTNER", +} + +export interface CreateProfileRequest { + /** + *

The As2Id is the AS2-name, as defined in the defined in + * the RFC 4130. For inbound transfers, this is the AS2-From header for the AS2 messages + * sent from the partner. For outbound connectors, this is the AS2-To header for the + * AS2 messages sent to the partner using the StartFileTransfer API operation. This ID cannot include spaces.

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

Indicates whether to list only LOCAL type profiles or only PARTNER type profiles. + * If not supplied in the request, the command lists all types of profiles.

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

An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

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

Key-value pairs that can be used to group and search for AS2 profiles.

+ */ + Tags?: Tag[]; +} + +export interface CreateProfileResponse { + /** + *

The unique identifier for the AS2 profile, returned after the API call succeeds.

+ */ + ProfileId: string | undefined; +} + export enum Domain { EFS = "EFS", S3 = "S3", @@ -532,7 +806,7 @@ export interface IdentityProviderDetails { InvocationRole?: string; /** - *

The identifier of the Amazon Web Services Directory Service directory that you want to stop sharing.

+ *

The identifier of the Directory Service directory that you want to stop sharing.

*/ DirectoryId?: string; @@ -632,35 +906,22 @@ export interface ProtocolDetails { * */ SetStatOption?: SetStatOption | string; + + /** + *

Indicates the transport method for the AS2 messages. Currently, only HTTP is supported.

+ */ + As2Transports?: (As2Transport | string)[]; } export enum Protocol { + AS2 = "AS2", FTP = "FTP", FTPS = "FTPS", SFTP = "SFTP", } /** - *

Creates a key-value pair for a specific resource. Tags are metadata that you can use to - * search for and group a resource for various purposes. You can apply tags to servers, users, - * and roles. A tag key can take more than one value. For example, to group servers for - * accounting purposes, you might create a tag called Group and assign the values - * Research and Accounting to that group.

- */ -export interface Tag { - /** - *

The name assigned to the tag that you create.

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

Contains one or more values that you assigned to the key name you create.

- */ - Value: string | undefined; -} - -/** - *

Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.

+ *

Specifies the workflow ID for the workflow to assign and the execution role that's used for executing the workflow.

*/ export interface WorkflowDetail { /** @@ -692,17 +953,17 @@ export interface WorkflowDetails { export interface CreateServerRequest { /** - *

The Amazon Resource Name (ARN) of the Amazon Web Services Certificate Manager (ACM) certificate. Required + *

The Amazon Resource Name (ARN) of the Certificate Manager (ACM) certificate. Required * when Protocols is set to FTPS.

* *

To request a new public certificate, see Request a public certificate - * in the Amazon Web Services Certificate Manager User Guide.

+ * in the Certificate Manager User Guide.

* *

To import an existing certificate into ACM, see Importing certificates into ACM - * in the Amazon Web Services Certificate Manager User Guide.

+ * in the Certificate Manager User Guide.

* *

To request a private certificate to use FTPS through private IP addresses, see Request a - * private certificate in the Amazon Web Services Certificate Manager User + * private certificate in the Certificate Manager User * Guide.

* *

Certificates with the following cryptographic algorithms and key sizes are @@ -746,8 +1007,8 @@ export interface CreateServerRequest { /** *

The virtual private cloud (VPC) endpoint settings that are configured for your server. - * When you host your endpoint within your VPC, you can make it accessible only to resources - * within your VPC, or you can attach Elastic IP addresses and make it accessible to clients over + * When you host your endpoint within your VPC, you can make your endpoint accessible only to resources + * within your VPC, or you can attach Elastic IP addresses and make your endpoint accessible to clients over * the internet. Your VPC's default security groups are automatically assigned to your * endpoint.

*/ @@ -782,7 +1043,7 @@ export interface CreateServerRequest { *

Use the following command to generate an RSA 2048 bit key with no passphrase:

*

* ssh-keygen -t rsa -b 2048 -N "" -m PEM -f my-new-server-key.

- *

Use a minimum value of 2048 for the -b option: you can create a stronger key using 3072 or 4096.

+ *

Use a minimum value of 2048 for the -b option. You can create a stronger key by using 3072 or 4096.

* *

Use the following command to generate an ECDSA 256 bit key with no passphrase:

*

@@ -803,8 +1064,7 @@ export interface CreateServerRequest { * * * - *

For more information, see Change the host key for your SFTP-enabled server in the Amazon Web Services Transfer - * Family User Guide.

+ *

For more information, see Change the host key for your SFTP-enabled server in the Transfer Family User Guide.

*/ HostKey?: string; @@ -818,30 +1078,31 @@ export interface CreateServerRequest { IdentityProviderDetails?: IdentityProviderDetails; /** - *

Specifies the mode of authentication for a server. The default value is + *

The mode of authentication for a server. The default value is * SERVICE_MANAGED, which allows you to store and access user credentials within - * the Amazon Web Services Transfer Family service.

+ * the Transfer Family service.

*

Use AWS_DIRECTORY_SERVICE to provide access to - * Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your - * on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to - * provide a Directory ID using the IdentityProviderDetails parameter.

+ * Active Directory groups in Directory Service for Microsoft Active Directory or Microsoft Active Directory in your + * on-premises environment or in Amazon Web Services using AD Connector. This option also requires you to + * provide a Directory ID by using the IdentityProviderDetails parameter.

*

Use the API_GATEWAY value to integrate with an identity provider of your choosing. The - * API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call - * for authentication using the IdentityProviderDetails parameter.

- *

Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value, - * you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

+ * API_GATEWAY setting requires you to provide an Amazon API Gateway endpoint URL to call + * for authentication by using the IdentityProviderDetails parameter.

+ *

Use the AWS_LAMBDA value to directly use an Lambda function as your identity provider. + * If you choose this value, you must specify the ARN for the Lambda function in the Function parameter + * or the IdentityProviderDetails data type.

*/ IdentityProviderType?: IdentityProviderType | string; /** - *

Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn - * on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in + *

The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a server to turn + * on Amazon CloudWatch logging for Amazon S3 or Amazon EFSevents. When set, you can view user activity in * your CloudWatch logs.

*/ LoggingRole?: string; /** - *

Specify a string to display when users connect to a server. This string is displayed after the user authenticates.

+ *

Specifies a string to display when users connect to a server. This string is displayed after the user authenticates.

* *

The SFTP protocol does not support post-authentication display banners.

*
@@ -849,8 +1110,9 @@ export interface CreateServerRequest { PostAuthenticationLoginBanner?: string; /** - *

Specify a string to display when users connect to a server. This string is displayed before the user authenticates. - * For example, the following banner displays details about using the system.

+ *

Specifies a string to display when users connect to a server. This string is displayed before the user authenticates. + * For example, the following banner displays details about using the system:

+ * *

* This system is for the use of authorized users only. Individuals using this computer system without authority, * or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by @@ -878,23 +1140,38 @@ export interface CreateServerRequest { *

* FTP (File Transfer Protocol): Unencrypted file transfer

* + *
  • + *

    + * AS2 (Applicability Statement 2): used for transporting structured business-to-business data

    + *
  • * * * - *

    If you select FTPS, you must choose a certificate stored in Amazon Web Services Certificate - * Manager (ACM) which is used to identify your server when clients connect to it over - * FTPS.

    - * - *

    If Protocol includes either FTP or FTPS, then the - * EndpointType must be VPC and the - * IdentityProviderType must be AWS_DIRECTORY_SERVICE or API_GATEWAY.

    - * - *

    If Protocol includes FTP, then + *

      + *
    • + *

      If you select FTPS, you must choose a certificate stored in Certificate Manager (ACM) + * which is used to identify your server when clients connect to it over + * FTPS.

      + *
    • + *
    • + *

      If Protocol includes either FTP or FTPS, then the + * EndpointType must be VPC and the + * IdentityProviderType must be AWS_DIRECTORY_SERVICE or API_GATEWAY.

      + *
    • + *
    • + *

      If Protocol includes FTP, then * AddressAllocationIds cannot be associated.

      - * - *

      If Protocol is set only to SFTP, the EndpointType - * can be set to PUBLIC and the IdentityProviderType can be set to - * SERVICE_MANAGED.

      + *
    • + *
    • + *

      If Protocol is set only to SFTP, the EndpointType + * can be set to PUBLIC and the IdentityProviderType can be set to + * SERVICE_MANAGED.

      + *
    • + *
    • + *

      If Protocol includes AS2, then the + * EndpointType must be VPC, and domain must be Amazon S3.

      + *
    • + *
    *
    */ Protocols?: (Protocol | string)[]; @@ -904,19 +1181,25 @@ export interface CreateServerRequest { *
      *
    • *

      - * Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols). + * To indicate passive mode (for FTP and FTPS protocols), use the PassiveIp parameter. * Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer. *

      *
    • *
    • - *

      Use the SetStatOption to ignore the error that is generated when the client attempts to use SETSTAT on a file you are uploading to an S3 bucket. - * Set the value to ENABLE_NO_OP to have the Transfer Family server ignore the SETSTAT command, and upload files without needing to make any changes to your SFTP client. - * Note that with SetStatOption set to ENABLE_NO_OP, Transfer generates a log entry to CloudWatch Logs, so you can determine when the client - * is making a SETSTAT call.

      + *

      To ignore the error that is generated when the client attempts to use the SETSTAT command on a file that you are + * uploading to an Amazon S3 bucket, use the SetStatOption parameter. To have the Transfer Family server ignore the + * SETSTAT command and upload files without needing to make any changes to your SFTP client, set the value to + * ENABLE_NO_OP. If you set the SetStatOption parameter to ENABLE_NO_OP, Transfer Family + * generates a log entry to Amazon CloudWatch Logs, so that you can determine when the client is making a SETSTAT + * call.

      + *
    • + *
    • + *

      To determine whether your Transfer Family server resumes recent, negotiated sessions through a unique session ID, use the + * TlsSessionResumptionMode parameter.

      *
    • *
    • - *

      Use the TlsSessionResumptionMode parameter to determine whether or not your Transfer server - * resumes recent, negotiated sessions through a unique session ID.

      + *

      + * As2Transports indicates the transport method for the AS2 messages. Currently, only HTTP is supported.

      *
    • *
    */ @@ -933,7 +1216,7 @@ export interface CreateServerRequest { Tags?: Tag[]; /** - *

    Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.

    + *

    Specifies the workflow ID for the workflow to assign and the execution role that's used for executing the workflow.

    */ WorkflowDetails?: WorkflowDetails; } @@ -974,10 +1257,10 @@ export interface CreateUserRequest { HomeDirectory?: string; /** - *

    The type of landing directory (folder) you want your users' home directory to be when they log into the server. - * If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. - * If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon - * S3 or EFS paths visible to your users.

    + *

    The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. + * If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer + * protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for + * how you want to make Amazon S3 or Amazon EFS paths visible to your users.

    */ HomeDirectoryType?: HomeDirectoryType | string; @@ -986,9 +1269,9 @@ export interface CreateUserRequest { * be visible to your user and how you want to make them visible. You must specify the * Entry and Target pair, where Entry shows how the path * is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you - * only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity - * and Access Management (IAM) role provides access to paths in Target. This value - * can only be set when HomeDirectoryType is set to + * only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) + * role provides access to paths in Target. This value + * can be set only when HomeDirectoryType is set to * LOGICAL.

    * *

    The following is an Entry and Target pair example.

    @@ -1010,13 +1293,13 @@ export interface CreateUserRequest { HomeDirectoryMappings?: HomeDirectoryMapEntry[]; /** - *

    A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user + *

    A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's * access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, * ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

    * * - *

    This only applies when the domain of ServerId is S3. EFS does not use session policies.

    - *

    For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead + *

    This policy applies only when the domain of ServerId is Amazon S3. Amazon EFS does not use session policies.

    + *

    For session policies, Transfer Family stores the policy as a JSON blob, instead * of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass * it in the Policy argument.

    * @@ -1043,10 +1326,10 @@ export interface CreateUserRequest { PosixProfile?: PosixProfile; /** - *

    Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS - * file system. The policies attached to this role determine the level of access that you want to provide your users when transferring - * files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the - * server to access your resources when servicing your users' transfer requests.

    + *

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 + * bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users + * when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust + * relationship that allows the server to access your resources when servicing your users' transfer requests.

    */ Role: string | undefined; @@ -1217,19 +1500,19 @@ export interface WorkflowStep { *
      *
    • *

      - * COPY: copy the file to another location

      + * COPY: Copy the file to another location.

      *
    • *
    • *

      - * CUSTOM: custom step with a lambda target

      + * CUSTOM: Perform a custom step with an Lambda function target.

      *
    • *
    • *

      - * DELETE: delete the file

      + * DELETE: Delete the file.

      *
    • *
    • *

      - * TAG: add a tag to the file

      + * TAG: Add a tag to the file.

      *
    • *
    */ @@ -1289,19 +1572,19 @@ export interface CreateWorkflowRequest { *
      *
    • *

      - * COPY: copy the file to another location

      + * COPY: Copy the file to another location.

      *
    • *
    • *

      - * CUSTOM: custom step with a lambda target

      + * CUSTOM: Perform a custom step with an Lambda function target.

      *
    • *
    • *

      - * DELETE: delete the file

      + * DELETE: Delete the file.

      *
    • *
    • *

      - * TAG: add a tag to the file

      + * TAG: Add a tag to the file.

      *
    • *
    * @@ -1309,9 +1592,8 @@ export interface CreateWorkflowRequest { * Currently, copying and tagging are supported only on S3. *

    *
    - *

    - * For file location, you specify either the S3 bucket and key, or the EFS filesystem ID and path. - *

    + *

    For file location, you specify either the S3 bucket and key, or the EFS file system ID + * and path.

    */ Steps: WorkflowStep[] | undefined; @@ -1353,7 +1635,7 @@ export interface DeleteAccessRequest { /** *

    A unique identifier that is required to identify specific groups within your directory. * The users of the group that you associate have access to your Amazon S3 or Amazon EFS - * resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name, + * resources over the enabled protocols using Transfer Family. If you know the group name, * you can view the SID values by running the following command using Windows PowerShell.

    * *

    @@ -1362,12 +1644,45 @@ export interface DeleteAccessRequest { * *

    In that command, replace YourGroupName with the name of your Active Directory group.

    * - *

    The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. + *

    The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. * You can also include underscores or any of the following characters: =,.@:/-

    */ ExternalId: string | undefined; } +export interface DeleteAgreementRequest { + /** + *

    A unique identifier for the agreement. This identifier is returned when you create an agreement.

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

    The server ID associated with the agreement that you are deleting.

    + */ + ServerId: string | undefined; +} + +export interface DeleteCertificateRequest { + /** + *

    The ID of the certificate object that you are deleting.

    + */ + CertificateId: string | undefined; +} + +export interface DeleteConnectorRequest { + /** + *

    The unique identifier for the connector.

    + */ + ConnectorId: string | undefined; +} + +export interface DeleteProfileRequest { + /** + *

    The ID of the profile that you are deleting.

    + */ + ProfileId: string | undefined; +} + export interface DeleteServerRequest { /** *

    A unique system-assigned identifier for a server instance.

    @@ -1422,7 +1737,7 @@ export interface DescribeAccessRequest { /** *

    A unique identifier that is required to identify specific groups within your directory. * The users of the group that you associate have access to your Amazon S3 or Amazon EFS - * resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name, + * resources over the enabled protocols using Transfer Family. If you know the group name, * you can view the SID values by running the following command using Windows PowerShell.

    * *

    @@ -1431,7 +1746,7 @@ export interface DescribeAccessRequest { * *

    In that command, replace YourGroupName with the name of your Active Directory group.

    * - *

    The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. + *

    The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. * You can also include underscores or any of the following characters: =,.@:/-

    */ ExternalId: string | undefined; @@ -1452,9 +1767,9 @@ export interface DescribedAccess { * be visible to your user and how you want to make them visible. You must specify the * Entry and Target pair, where Entry shows how the path * is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you - * only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity - * and Access Management (IAM) role provides access to paths in Target. This value - * can only be set when HomeDirectoryType is set to + * only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) + * role provides access to paths in Target. This value + * can be set only when HomeDirectoryType is set to * LOGICAL.

    * *

    In most cases, you can use this value instead of the session policy to lock down the @@ -1465,15 +1780,15 @@ export interface DescribedAccess { HomeDirectoryMappings?: HomeDirectoryMapEntry[]; /** - *

    The type of landing directory (folder) you want your users' home directory to be when they log into the server. - * If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. - * If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon - * S3 or EFS paths visible to your users.

    + *

    The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. + * If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer + * protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for + * how you want to make Amazon S3 or Amazon EFS paths visible to your users.

    */ HomeDirectoryType?: HomeDirectoryType | string; /** - *

    A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user + *

    A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's * access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, * ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

    */ @@ -1489,17 +1804,17 @@ export interface DescribedAccess { PosixProfile?: PosixProfile; /** - *

    Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS - * file system. The policies attached to this role determine the level of access that you want to provide your users when transferring - * files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the - * server to access your resources when servicing your users' transfer requests.

    + *

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 + * bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users + * when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust + * relationship that allows the server to access your resources when servicing your users' transfer requests.

    */ Role?: string; /** *

    A unique identifier that is required to identify specific groups within your directory. * The users of the group that you associate have access to your Amazon S3 or Amazon EFS - * resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name, + * resources over the enabled protocols using Transfer Family. If you know the group name, * you can view the SID values by running the following command using Windows PowerShell.

    * *

    @@ -1508,7 +1823,7 @@ export interface DescribedAccess { * *

    In that command, replace YourGroupName with the name of your Active Directory group.

    * - *

    The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. + *

    The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. * You can also include underscores or any of the following characters: =,.@:/-

    */ ExternalId?: string; @@ -1526,65 +1841,303 @@ export interface DescribeAccessResponse { Access: DescribedAccess | undefined; } +export interface DescribeAgreementRequest { + /** + *

    A unique identifier for the agreement. This identifier is returned when you create an agreement.

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

    The server ID that's associated with the agreement.

    + */ + ServerId: string | undefined; +} + /** - *

    Specifies the details for the file location for the file being used in the workflow. Only applicable if you are using S3 storage.

    + *

    Describes the properties of an agreement.

    */ -export interface S3FileLocation { +export interface DescribedAgreement { /** - *

    Specifies the S3 bucket that contains the file being used.

    + *

    The unique Amazon Resource Name (ARN) for the agreement.

    */ - Bucket?: string; + Arn: string | undefined; /** - *

    The name assigned to the file when it was created in S3. You use the object key to retrieve the object.

    + *

    A unique identifier for the agreement. This identifier is returned when you create an agreement.

    */ - Key?: string; + AgreementId?: string; /** - *

    Specifies the file version.

    + *

    The name or short description that's used to identify the agreement.

    */ - VersionId?: string; + Description?: string; /** - *

    The entity tag is a hash of the object. The ETag reflects changes only to the contents of an object, not its metadata.

    + *

    The current status of the agreement, either ACTIVE or + * INACTIVE.

    */ - Etag?: string; -} + Status?: AgreementStatusType | string; -/** - *

    Specifies the Amazon S3 or EFS file details to be used in the step.

    - */ -export interface FileLocation { /** - *

    Specifies the S3 details for the file being used, such as bucket, Etag, and so forth.

    + *

    A system-assigned unique identifier for a server instance. This identifier indicates the + * specific server that the agreement uses.

    */ - S3FileLocation?: S3FileLocation; + ServerId?: string; /** - *

    Specifies the Amazon EFS ID and the path for the file being used.

    + *

    A unique identifier for the AS2 process.

    */ - EfsFileLocation?: EfsFileLocation; -} + LocalProfileId?: string; -/** - *

    Consists of the logging role and the log group name.

    - */ -export interface LoggingConfiguration { /** - *

    Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn - * on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in - * your CloudWatch logs.

    + *

    A unique identifier for the partner in the agreement.

    */ - LoggingRole?: string; + PartnerProfileId?: string; /** - *

    The name of the CloudWatch logging group for the Amazon Web Services Transfer server to which this workflow belongs.

    + *

    The landing directory (folder) for files that are transferred by using the AS2 + * protocol.

    */ - LogGroupName?: string; + BaseDirectory?: string; + + /** + *

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that grants access to at least the + * HomeDirectory of your users' Amazon S3 buckets.

    + */ + AccessRole?: string; + + /** + *

    Key-value pairs that can be used to group and search for agreements.

    + */ + Tags?: Tag[]; } -export enum ExecutionErrorType { - ALREADY_EXISTS = "ALREADY_EXISTS", +export interface DescribeAgreementResponse { + /** + *

    The details for the specified agreement, returned as a DescribedAgreement + * object.

    + */ + Agreement: DescribedAgreement | undefined; +} + +export interface DescribeCertificateRequest { + /** + *

    An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

    + */ + CertificateId: string | undefined; +} + +/** + *

    Describes the properties of a certificate.

    + */ +export interface DescribedCertificate { + /** + *

    The unique Amazon Resource Name (ARN) for the certificate.

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

    An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

    + */ + CertificateId?: string; + + /** + *

    Specifies whether this certificate is used for signing or encryption.

    + */ + Usage?: CertificateUsageType | string; + + /** + *

    The certificate can be either ACTIVE, PENDING_ROTATION, or + * INACTIVE. PENDING_ROTATION means that this certificate will + * replace the current certificate when it expires.

    + */ + Status?: CertificateStatusType | string; + + /** + *

    The file name for the certificate.

    + */ + Certificate?: string; + + /** + *

    The list of certificates that make up the chain for the certificate.

    + */ + CertificateChain?: string; + + /** + *

    An optional date that specifies when the certificate becomes active.

    + */ + ActiveDate?: Date; + + /** + *

    An optional date that specifies when the certificate becomes inactive.

    + */ + InactiveDate?: Date; + + /** + *

    The serial number for the certificate.

    + */ + Serial?: string; + + /** + *

    The earliest date that the certificate is valid.

    + */ + NotBeforeDate?: Date; + + /** + *

    The final date that the certificate is + * valid.

    + */ + NotAfterDate?: Date; + + /** + *

    If a private key has been specified for the certificate, its type is CERTIFICATE_WITH_PRIVATE_KEY. If there is no private key, the type is CERTIFICATE.

    + */ + Type?: CertificateType | string; + + /** + *

    The name or description that's used to identity the certificate.

    + */ + Description?: string; + + /** + *

    Key-value pairs that can be used to group and search for certificates.

    + */ + Tags?: Tag[]; +} + +export interface DescribeCertificateResponse { + /** + *

    The details for the specified certificate, returned as an object.

    + */ + Certificate: DescribedCertificate | undefined; +} + +export interface DescribeConnectorRequest { + /** + *

    The unique identifier for the connector.

    + */ + ConnectorId: string | undefined; +} + +/** + *

    Describes the parameters for the connector, as identified by the + * ConnectorId.

    + */ +export interface DescribedConnector { + /** + *

    The unique Amazon Resource Name (ARN) for the connector.

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

    The unique identifier for the connector.

    + */ + ConnectorId?: string; + + /** + *

    The URL of the partner's AS2 endpoint.

    + */ + Url?: string; + + /** + *

    A structure that contains the parameters for a connector object.

    + */ + As2Config?: As2ConnectorConfig; + + /** + *

    With AS2, you can send files by calling StartFileTransfer and specifying the + * file paths in the request parameter, SendFilePaths. We use the file’s parent + * directory (for example, for --send-file-paths /bucket/dir/file.txt, parent + * directory is /bucket/dir/) to temporarily store a processed AS2 message file, + * store the MDN when we receive them from the partner, and write a final JSON file containing + * relevant metadata of the transmission. So, the AccessRole needs to provide read + * and write access to the parent directory of the file location used in the + * StartFileTransfer request. Additionally, you need to provide read and write + * access to the parent directory of the files that you intend to send with + * StartFileTransfer.

    + */ + AccessRole?: string; + + /** + *

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a connector to turn + * on CloudWatch logging for Amazon S3 events. When set, you can view connector + * activity in your CloudWatch logs.

    + */ + LoggingRole?: string; + + /** + *

    Key-value pairs that can be used to group and search for connectors.

    + */ + Tags?: Tag[]; +} + +export interface DescribeConnectorResponse { + /** + *

    The structure that contains the details of the connector.

    + */ + Connector: DescribedConnector | undefined; +} + +/** + *

    Specifies the details for the file location for the file that's being used in the workflow. Only applicable if you are using S3 storage.

    + */ +export interface S3FileLocation { + /** + *

    Specifies the S3 bucket that contains the file being used.

    + */ + Bucket?: string; + + /** + *

    The name assigned to the file when it was created in Amazon S3. You use the object key to retrieve the object.

    + */ + Key?: string; + + /** + *

    Specifies the file version.

    + */ + VersionId?: string; + + /** + *

    The entity tag is a hash of the object. The ETag reflects changes only to the contents of an object, not its metadata.

    + */ + Etag?: string; +} + +/** + *

    Specifies the Amazon S3 or EFS file details to be used in the step.

    + */ +export interface FileLocation { + /** + *

    Specifies the S3 details for the file being used, such as bucket, ETag, and so + * forth.

    + */ + S3FileLocation?: S3FileLocation; + + /** + *

    Specifies the Amazon EFS ID and the path for the file being used.

    + */ + EfsFileLocation?: EfsFileLocation; +} + +/** + *

    Consists of the logging role and the log group name.

    + */ +export interface LoggingConfiguration { + /** + *

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a server to turn + * on Amazon CloudWatch logging for Amazon S3 or Amazon EFSevents. When set, you can view user activity in + * your CloudWatch logs.

    + */ + LoggingRole?: string; + + /** + *

    The name of the CloudWatch logging group for the Transfer Family server to which this workflow belongs.

    + */ + LogGroupName?: string; +} + +export enum ExecutionErrorType { + ALREADY_EXISTS = "ALREADY_EXISTS", BAD_REQUEST = "BAD_REQUEST", CUSTOM_STEP_FAILED = "CUSTOM_STEP_FAILED", INTERNAL_SERVER_ERROR = "INTERNAL_SERVER_ERROR", @@ -1660,19 +2213,19 @@ export interface ExecutionStepResult { *
      *
    • *

      - * COPY: copy the file to another location

      + * COPY: Copy the file to another location.

      *
    • *
    • *

      - * CUSTOM: custom step with a lambda target

      + * CUSTOM: Perform a custom step with an Lambda function target.

      *
    • *
    • *

      - * DELETE: delete the file

      + * DELETE: Delete the file.

      *
    • *
    • *

      - * TAG: add a tag to the file

      + * TAG: Add a tag to the file.

      *
    • *
    */ @@ -1684,7 +2237,8 @@ export interface ExecutionStepResult { Outputs?: string; /** - *

    Specifies the details for an error, if it occurred during execution of the specified workfow step.

    + *

    Specifies the details for an error, if it occurred during execution of the specified + * workflow step.

    */ Error?: ExecutionError; } @@ -1725,7 +2279,7 @@ export interface UserDetails { } /** - *

    A container object for the session details associated with a workflow.

    + *

    A container object for the session details that are associated with a workflow.

    */ export interface ServiceMetadata { /** @@ -1758,7 +2312,7 @@ export interface DescribedExecution { InitialFileLocation?: FileLocation; /** - *

    A container object for the session details associated with a workflow.

    + *

    A container object for the session details that are associated with a workflow.

    */ ServiceMetadata?: ServiceMetadata; @@ -1794,6 +2348,43 @@ export interface DescribedExecution { Results?: ExecutionResults; } +/** + *

    The details for a local or partner AS2 profile. + * profile.

    + */ +export interface DescribedProfile { + /** + *

    The unique Amazon Resource Name (ARN) for the profile.

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

    A unique identifier for the local or partner AS2 profile.

    + */ + ProfileId?: string; + + /** + *

    Indicates whether to list only LOCAL type profiles or only PARTNER type profiles. + * If not supplied in the request, the command lists all types of profiles.

    + */ + ProfileType?: ProfileType | string; + + /** + *

    The unique identifier for the AS2 process.

    + */ + As2Id?: string; + + /** + *

    An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

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

    Key-value pairs that can be used to group and search for profiles.

    + */ + Tags?: Tag[]; +} + /** *

    Describes the properties of a security policy that was specified. For more information * about security policies, see Working with security @@ -1879,8 +2470,8 @@ export interface DescribedServer { /** *

    The virtual private cloud (VPC) endpoint settings that are configured for your server. - * When you host your endpoint within your VPC, you can make it accessible only to resources - * within your VPC, or you can attach Elastic IP addresses and make it accessible to clients over + * When you host your endpoint within your VPC, you can make your endpoint accessible only to resources + * within your VPC, or you can attach Elastic IP addresses and make your endpoint accessible to clients over * the internet. Your VPC's default security groups are automatically assigned to your * endpoint.

    */ @@ -1907,30 +2498,31 @@ export interface DescribedServer { IdentityProviderDetails?: IdentityProviderDetails; /** - *

    Specifies the mode of authentication for a server. The default value is + *

    The mode of authentication for a server. The default value is * SERVICE_MANAGED, which allows you to store and access user credentials within - * the Amazon Web Services Transfer Family service.

    + * the Transfer Family service.

    *

    Use AWS_DIRECTORY_SERVICE to provide access to - * Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your - * on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to - * provide a Directory ID using the IdentityProviderDetails parameter.

    + * Active Directory groups in Directory Service for Microsoft Active Directory or Microsoft Active Directory in your + * on-premises environment or in Amazon Web Services using AD Connector. This option also requires you to + * provide a Directory ID by using the IdentityProviderDetails parameter.

    *

    Use the API_GATEWAY value to integrate with an identity provider of your choosing. The - * API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call - * for authentication using the IdentityProviderDetails parameter.

    - *

    Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value, - * you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

    + * API_GATEWAY setting requires you to provide an Amazon API Gateway endpoint URL to call + * for authentication by using the IdentityProviderDetails parameter.

    + *

    Use the AWS_LAMBDA value to directly use an Lambda function as your identity provider. + * If you choose this value, you must specify the ARN for the Lambda function in the Function parameter + * or the IdentityProviderDetails data type.

    */ IdentityProviderType?: IdentityProviderType | string; /** - *

    Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn - * on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in + *

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a server to turn + * on Amazon CloudWatch logging for Amazon S3 or Amazon EFSevents. When set, you can view user activity in * your CloudWatch logs.

    */ LoggingRole?: string; /** - *

    Specify a string to display when users connect to a server. This string is displayed after the user authenticates.

    + *

    Specifies a string to display when users connect to a server. This string is displayed after the user authenticates.

    * *

    The SFTP protocol does not support post-authentication display banners.

    *
    @@ -1938,8 +2530,9 @@ export interface DescribedServer { PostAuthenticationLoginBanner?: string; /** - *

    Specify a string to display when users connect to a server. This string is displayed before the user authenticates. - * For example, the following banner displays details about using the system.

    + *

    Specifies a string to display when users connect to a server. This string is displayed before the user authenticates. + * For example, the following banner displays details about using the system:

    + * *

    * This system is for the use of authorized users only. Individuals using this computer system without authority, * or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by @@ -1982,7 +2575,7 @@ export interface DescribedServer { ServerId?: string; /** - *

    Specifies the condition of a server for the server that was described. A value of + *

    The condition of the server that was described. A value of * ONLINE indicates that the server can accept jobs and transfer files. A * State value of OFFLINE means that the server cannot perform file * transfer operations.

    @@ -2007,7 +2600,7 @@ export interface DescribedServer { UserCount?: number; /** - *

    Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.

    + *

    Specifies the workflow ID for the workflow to assign and the execution role that's used for executing the workflow.

    */ WorkflowDetails?: WorkflowDetails; } @@ -2060,9 +2653,9 @@ export interface DescribedUser { * be visible to your user and how you want to make them visible. You must specify the * Entry and Target pair, where Entry shows how the path * is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you - * only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity - * and Access Management (IAM) role provides access to paths in Target. This value - * can only be set when HomeDirectoryType is set to + * only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) + * role provides access to paths in Target. This value + * can be set only when HomeDirectoryType is set to * LOGICAL.

    * *

    In most cases, you can use this value instead of the session policy to lock your user @@ -2073,15 +2666,15 @@ export interface DescribedUser { HomeDirectoryMappings?: HomeDirectoryMapEntry[]; /** - *

    The type of landing directory (folder) you want your users' home directory to be when they log into the server. - * If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. - * If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon - * S3 or EFS paths visible to your users.

    + *

    The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. + * If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer + * protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for + * how you want to make Amazon S3 or Amazon EFS paths visible to your users.

    */ HomeDirectoryType?: HomeDirectoryType | string; /** - *

    A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user + *

    A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's * access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, * ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

    */ @@ -2098,10 +2691,10 @@ export interface DescribedUser { PosixProfile?: PosixProfile; /** - *

    Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS - * file system. The policies attached to this role determine the level of access that you want to provide your users when transferring - * files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the - * server to access your resources when servicing your users' transfer requests.

    + *

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 + * bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users + * when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust + * relationship that allows the server to access your resources when servicing your users' transfer requests.

    */ Role?: string; @@ -2184,6 +2777,20 @@ export interface DescribeExecutionResponse { Execution: DescribedExecution | undefined; } +export interface DescribeProfileRequest { + /** + *

    The identifier of the profile that you want described.

    + */ + ProfileId: string | undefined; +} + +export interface DescribeProfileResponse { + /** + *

    The details of the specified profile, returned as an object.

    + */ + Profile: DescribedProfile | undefined; +} + export interface DescribeSecurityPolicyRequest { /** *

    Specifies the name of the security policy that is attached to the server.

    @@ -2221,7 +2828,7 @@ export interface DescribeUserRequest { /** *

    The name of the user assigned to one or more servers. User names are part of the sign-in - * credentials to use the Amazon Web Services Transfer Family service and perform file transfer tasks.

    + * credentials to use the Transfer Family service and perform file transfer tasks.

    */ UserName: string | undefined; } @@ -2253,6 +2860,56 @@ export interface DescribeWorkflowResponse { Workflow: DescribedWorkflow | undefined; } +export interface ImportCertificateRequest { + /** + *

    Specifies whether this certificate is used for signing or encryption.

    + */ + Usage: CertificateUsageType | string | undefined; + + /** + *

    The file that contains the certificate to import.

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

    An optional list of certificates that make up the chain for the certificate that's being + * imported.

    + */ + CertificateChain?: string; + + /** + *

    The file that contains the private key for the certificate that's being imported.

    + */ + PrivateKey?: string; + + /** + *

    An optional date that specifies when the certificate becomes active.

    + */ + ActiveDate?: Date; + + /** + *

    An optional date that specifies when the certificate becomes inactive.

    + */ + InactiveDate?: Date; + + /** + *

    A short description that helps identify the certificate.

    + */ + Description?: string; + + /** + *

    Key-value pairs that can be used to group and search for certificates.

    + */ + Tags?: Tag[]; +} + +export interface ImportCertificateResponse { + /** + *

    An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

    + */ + CertificateId: string | undefined; +} + export interface ImportSshPublicKeyRequest { /** *

    A system-assigned unique identifier for a server.

    @@ -2345,25 +3002,25 @@ export interface ListedAccess { HomeDirectory?: string; /** - *

    The type of landing directory (folder) you want your users' home directory to be when they log into the server. - * If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. - * If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon - * S3 or EFS paths visible to your users.

    + *

    The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. + * If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer + * protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for + * how you want to make Amazon S3 or Amazon EFS paths visible to your users.

    */ HomeDirectoryType?: HomeDirectoryType | string; /** - *

    Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS - * file system. The policies attached to this role determine the level of access that you want to provide your users when transferring - * files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the - * server to access your resources when servicing your users' transfer requests.

    + *

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 + * bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users + * when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust + * relationship that allows the server to access your resources when servicing your users' transfer requests.

    */ Role?: string; /** *

    A unique identifier that is required to identify specific groups within your directory. * The users of the group that you associate have access to your Amazon S3 or Amazon EFS - * resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name, + * resources over the enabled protocols using Transfer Family. If you know the group name, * you can view the SID values by running the following command using Windows PowerShell.

    * *

    @@ -2372,7 +3029,7 @@ export interface ListedAccess { * *

    In that command, replace YourGroupName with the name of your Active Directory group.

    * - *

    The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. + *

    The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. * You can also include underscores or any of the following characters: =,.@:/-

    */ ExternalId?: string; @@ -2399,85 +3056,311 @@ export interface ListAccessesResponse { Accesses: ListedAccess[] | undefined; } -/** - *

    Returns properties of the execution that is specified.

    - */ -export interface ListedExecution { - /** - *

    A unique identifier for the execution of a workflow.

    - */ - ExecutionId?: string; - +export interface ListAgreementsRequest { /** - *

    A structure that describes the Amazon S3 or EFS file location. - * This is the file location when the execution begins: if the file is being copied, - * this is the initial (as opposed to destination) file location.

    + *

    The maximum number of agreements to return.

    */ - InitialFileLocation?: FileLocation; + MaxResults?: number; /** - *

    A container object for the session details associated with a workflow.

    + *

    When you can get additional results from the ListAgreements call, a + * NextToken parameter is returned in the output. You can then pass in a + * subsequent command to the NextToken parameter to continue listing additional + * agreements.

    */ - ServiceMetadata?: ServiceMetadata; + NextToken?: string; /** - *

    The status is one of the execution. Can be in progress, completed, exception encountered, or handling the exception.

    + *

    The identifier of the server for which you want a list of agreements.

    */ - Status?: ExecutionStatus | string; + ServerId: string | undefined; } /** - *

    Returns properties of a file transfer protocol-enabled server that was specified.

    + *

    Describes the properties of an agreement.

    */ -export interface ListedServer { +export interface ListedAgreement { /** - *

    Specifies the unique Amazon Resource Name (ARN) for a server to be listed.

    + *

    The Amazon Resource Name (ARN) of the specified agreement.

    */ - Arn: string | undefined; + Arn?: string; /** - *

    Specifies the domain of the storage system that is used for file transfers.

    + *

    A unique identifier for the agreement. This identifier is returned when you create an agreement.

    */ - Domain?: Domain | string; + AgreementId?: string; /** - *

    Specifies the mode of authentication for a server. The default value is - * SERVICE_MANAGED, which allows you to store and access user credentials within - * the Amazon Web Services Transfer Family service.

    - *

    Use AWS_DIRECTORY_SERVICE to provide access to - * Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your - * on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to - * provide a Directory ID using the IdentityProviderDetails parameter.

    - *

    Use the API_GATEWAY value to integrate with an identity provider of your choosing. The - * API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call - * for authentication using the IdentityProviderDetails parameter.

    - *

    Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value, - * you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

    + *

    The current description for the agreement. You can change it by calling the + * UpdateAgreement operation and providing a new description.

    */ - IdentityProviderType?: IdentityProviderType | string; + Description?: string; /** - *

    Specifies the type of VPC endpoint that your server is connected to. If your server is - * connected to a VPC endpoint, your server isn't accessible over the public internet.

    + *

    The agreement can be either ACTIVE or INACTIVE.

    */ - EndpointType?: EndpointType | string; + Status?: AgreementStatusType | string; /** - *

    Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn - * on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in - * your CloudWatch logs.

    + *

    The unique identifier for the agreement.

    */ - LoggingRole?: string; + ServerId?: string; /** - *

    Specifies the unique system assigned identifier for the servers that were listed.

    + *

    A unique identifier for the AS2 process.

    */ - ServerId?: string; + LocalProfileId?: string; /** - *

    Specifies the condition of a server for the server that was described. A value of - * ONLINE indicates that the server can accept jobs and transfer files. A - * State value of OFFLINE means that the server cannot perform file + *

    A unique identifier for the partner process.

    + */ + PartnerProfileId?: string; +} + +export interface ListAgreementsResponse { + /** + *

    Returns a token that you can use to call ListAgreements again and receive + * additional results, if there are any.

    + */ + NextToken?: string; + + /** + *

    Returns an array, where each item contains the details of an agreement.

    + */ + Agreements: ListedAgreement[] | undefined; +} + +export interface ListCertificatesRequest { + /** + *

    The maximum number of certificates to return.

    + */ + MaxResults?: number; + + /** + *

    When you can get additional results from the ListCertificates call, a + * NextToken parameter is returned in the output. You can then pass in a + * subsequent command to the NextToken parameter to continue listing additional + * certificates.

    + */ + NextToken?: string; +} + +/** + *

    Describes the properties of a certificate.

    + */ +export interface ListedCertificate { + /** + *

    The Amazon Resource Name (ARN) of the specified certificate.

    + */ + Arn?: string; + + /** + *

    An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

    + */ + CertificateId?: string; + + /** + *

    Specifies whether this certificate is used for signing or encryption.

    + */ + Usage?: CertificateUsageType | string; + + /** + *

    The certificate can be either ACTIVE, PENDING_ROTATION, or + * INACTIVE. PENDING_ROTATION means that this certificate will + * replace the current certificate when it expires.

    + */ + Status?: CertificateStatusType | string; + + /** + *

    An optional date that specifies when the certificate becomes active.

    + */ + ActiveDate?: Date; + + /** + *

    An optional date that specifies when the certificate becomes inactive.

    + */ + InactiveDate?: Date; + + /** + *

    The type for the certificate. If a private key has been specified for the certificate, its + * type is CERTIFICATE_WITH_PRIVATE_KEY. If there is no private key, the type is + * CERTIFICATE.

    + */ + Type?: CertificateType | string; + + /** + *

    The name or short description that's used to identify the certificate.

    + */ + Description?: string; +} + +export interface ListCertificatesResponse { + /** + *

    Returns the next token, which you can use to list the next certificate.

    + */ + NextToken?: string; + + /** + *

    Returns an array of the certificates that are specified in the + * ListCertificates call.

    + */ + Certificates: ListedCertificate[] | undefined; +} + +export interface ListConnectorsRequest { + /** + *

    The maximum number of connectors to return.

    + */ + MaxResults?: number; + + /** + *

    When you can get additional results from the ListConnectors call, a + * NextToken parameter is returned in the output. You can then pass in a + * subsequent command to the NextToken parameter to continue listing additional + * connectors.

    + */ + NextToken?: string; +} + +/** + *

    Returns details of the connector that is specified.

    + */ +export interface ListedConnector { + /** + *

    The Amazon Resource Name (ARN) of the specified connector.

    + */ + Arn?: string; + + /** + *

    The unique identifier for the connector.

    + */ + ConnectorId?: string; + + /** + *

    The URL of the partner's AS2 endpoint.

    + */ + Url?: string; +} + +export interface ListConnectorsResponse { + /** + *

    Returns a token that you can use to call ListConnectors again and receive + * additional results, if there are any.

    + */ + NextToken?: string; + + /** + *

    Returns an array, where each item contains the details of a connector.

    + */ + Connectors: ListedConnector[] | undefined; +} + +/** + *

    Returns properties of the execution that is specified.

    + */ +export interface ListedExecution { + /** + *

    A unique identifier for the execution of a workflow.

    + */ + ExecutionId?: string; + + /** + *

    A structure that describes the Amazon S3 or EFS file location. + * This is the file location when the execution begins: if the file is being copied, + * this is the initial (as opposed to destination) file location.

    + */ + InitialFileLocation?: FileLocation; + + /** + *

    A container object for the session details that are associated with a workflow.

    + */ + ServiceMetadata?: ServiceMetadata; + + /** + *

    The status is one of the execution. Can be in progress, completed, exception encountered, or handling the exception.

    + */ + Status?: ExecutionStatus | string; +} + +/** + *

    Returns the properties of the profile that was specified.

    + */ +export interface ListedProfile { + /** + *

    The Amazon Resource Name (ARN) of the specified profile.

    + */ + Arn?: string; + + /** + *

    A unique identifier for the local or partner AS2 profile.

    + */ + ProfileId?: string; + + /** + *

    The unique identifier for the AS2 process.

    + */ + As2Id?: string; + + /** + *

    Indicates whether to list only LOCAL type profiles or only PARTNER type profiles. + * If not supplied in the request, the command lists all types of profiles.

    + */ + ProfileType?: ProfileType | string; +} + +/** + *

    Returns properties of a file transfer protocol-enabled server that was specified.

    + */ +export interface ListedServer { + /** + *

    Specifies the unique Amazon Resource Name (ARN) for a server to be listed.

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

    Specifies the domain of the storage system that is used for file transfers.

    + */ + Domain?: Domain | string; + + /** + *

    The mode of authentication for a server. The default value is + * SERVICE_MANAGED, which allows you to store and access user credentials within + * the Transfer Family service.

    + *

    Use AWS_DIRECTORY_SERVICE to provide access to + * Active Directory groups in Directory Service for Microsoft Active Directory or Microsoft Active Directory in your + * on-premises environment or in Amazon Web Services using AD Connector. This option also requires you to + * provide a Directory ID by using the IdentityProviderDetails parameter.

    + *

    Use the API_GATEWAY value to integrate with an identity provider of your choosing. The + * API_GATEWAY setting requires you to provide an Amazon API Gateway endpoint URL to call + * for authentication by using the IdentityProviderDetails parameter.

    + *

    Use the AWS_LAMBDA value to directly use an Lambda function as your identity provider. + * If you choose this value, you must specify the ARN for the Lambda function in the Function parameter + * or the IdentityProviderDetails data type.

    + */ + IdentityProviderType?: IdentityProviderType | string; + + /** + *

    Specifies the type of VPC endpoint that your server is connected to. If your server is + * connected to a VPC endpoint, your server isn't accessible over the public internet.

    + */ + EndpointType?: EndpointType | string; + + /** + *

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a server to turn + * on Amazon CloudWatch logging for Amazon S3 or Amazon EFSevents. When set, you can view user activity in + * your CloudWatch logs.

    + */ + LoggingRole?: string; + + /** + *

    Specifies the unique system assigned identifier for the servers that were listed.

    + */ + ServerId?: string; + + /** + *

    The condition of the server that was described. A value of + * ONLINE indicates that the server can accept jobs and transfer files. A + * State value of OFFLINE means that the server cannot perform file * transfer operations.

    * *

    The states of STARTING and STOPPING indicate that the server is @@ -2511,18 +3394,18 @@ export interface ListedUser { HomeDirectory?: string; /** - *

    The type of landing directory (folder) you want your users' home directory to be when they log into the server. - * If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. - * If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon - * S3 or EFS paths visible to your users.

    + *

    The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. + * If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer + * protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for + * how you want to make Amazon S3 or Amazon EFS paths visible to your users.

    */ HomeDirectoryType?: HomeDirectoryType | string; /** - *

    Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS - * file system. The policies attached to this role determine the level of access that you want to provide your users when transferring - * files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the - * server to access your resources when servicing your users' transfer requests.

    + *

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 + * bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users + * when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust + * relationship that allows the server to access your resources when servicing your users' transfer requests.

    * * *

    The IAM role that controls your users' access to your Amazon S3 bucket for servers with Domain=S3, or your EFS file system for servers with Domain=EFS. @@ -2568,7 +3451,7 @@ export interface ListedWorkflow { export interface ListExecutionsRequest { /** - *

    Specifies the aximum number of executions to return.

    + *

    Specifies the maximum number of executions to return.

    */ MaxResults?: number; @@ -2579,14 +3462,14 @@ export interface ListExecutionsRequest { * continue listing additional executions.

    *

    * This is useful for pagination, for instance. - * If you have 100 executions for a workflow, you might only want to list first 10. If so, callthe API by specifing the max-results: + * If you have 100 executions for a workflow, you might only want to list first 10. If so, call the API by specifying the max-results: *

    *

    * aws transfer list-executions --max-results 10 *

    *

    * This returns details for the first 10 executions, as well as the pointer (NextToken) to the eleventh execution. - * You can now call the API again, suppling the NextToken value you received: + * You can now call the API again, supplying the NextToken value you received: *

    *

    * aws transfer list-executions --max-results 10 --next-token $somePointerReturnedFromPreviousListResult @@ -2646,6 +3529,39 @@ export interface ListExecutionsResponse { Executions: ListedExecution[] | undefined; } +export interface ListProfilesRequest { + /** + *

    The maximum number of profiles to return.

    + */ + MaxResults?: number; + + /** + *

    When there are additional results that were not returned, a NextToken + * parameter is returned. You can use that value for a subsequent call to + * ListProfiles to continue listing results.

    + */ + NextToken?: string; + + /** + *

    Indicates whether to list only LOCAL type profiles or only PARTNER type profiles. + * If not supplied in the request, the command lists all types of profiles.

    + */ + ProfileType?: ProfileType | string; +} + +export interface ListProfilesResponse { + /** + *

    Returns a token that you can use to call ListProfiles again and receive + * additional results, if there are any.

    + */ + NextToken?: string; + + /** + *

    Returns an array, where each item contains the details of a profile.

    + */ + Profiles: ListedProfile[] | undefined; +} + export interface ListSecurityPoliciesRequest { /** *

    Specifies the number of security policies to return as a response to the @@ -2844,6 +3760,28 @@ export interface SendWorkflowStepStateRequest { export interface SendWorkflowStepStateResponse {} +export interface StartFileTransferRequest { + /** + *

    The unique identifier for the connector.

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

    An array of strings. Each string represents the absolute path for one outbound file transfer. For example, + * + * DOC-EXAMPLE-BUCKET/myfile.txt + * .

    + */ + SendFilePaths: string[] | undefined; +} + +export interface StartFileTransferResponse { + /** + *

    Returns the unique identifier for this file transfer.

    + */ + TransferId: string | undefined; +} + export interface StartServerRequest { /** *

    A system-assigned unique identifier for a server that you start.

    @@ -2961,10 +3899,10 @@ export interface UpdateAccessRequest { HomeDirectory?: string; /** - *

    The type of landing directory (folder) you want your users' home directory to be when they log into the server. - * If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. - * If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon - * S3 or EFS paths visible to your users.

    + *

    The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. + * If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer + * protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for + * how you want to make Amazon S3 or Amazon EFS paths visible to your users.

    */ HomeDirectoryType?: HomeDirectoryType | string; @@ -2973,9 +3911,9 @@ export interface UpdateAccessRequest { * be visible to your user and how you want to make them visible. You must specify the * Entry and Target pair, where Entry shows how the path * is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you - * only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity - * and Access Management (IAM) role provides access to paths in Target. This value - * can only be set when HomeDirectoryType is set to + * only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) + * role provides access to paths in Target. This value + * can be set only when HomeDirectoryType is set to * LOGICAL.

    *

    The following is an Entry and Target pair example.

    *

    @@ -2993,14 +3931,13 @@ export interface UpdateAccessRequest { HomeDirectoryMappings?: HomeDirectoryMapEntry[]; /** - *

    A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user + *

    A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's * access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, * ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

    * - * * - *

    This only applies when the domain of ServerId is S3. EFS does not use session policies.

    - *

    For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead + *

    This policy applies only when the domain of ServerId is Amazon S3. Amazon EFS does not use session policies.

    + *

    For session policies, Transfer Family stores the policy as a JSON blob, instead * of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass * it in the Policy argument.

    *

    For an example of a session policy, see Example @@ -3021,10 +3958,10 @@ export interface UpdateAccessRequest { PosixProfile?: PosixProfile; /** - *

    Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS - * file system. The policies attached to this role determine the level of access that you want to provide your users when transferring - * files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the - * server to access your resources when servicing your users' transfer requests.

    + *

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 + * bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users + * when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust + * relationship that allows the server to access your resources when servicing your users' transfer requests.

    */ Role?: string; @@ -3036,7 +3973,7 @@ export interface UpdateAccessRequest { /** *

    A unique identifier that is required to identify specific groups within your directory. * The users of the group that you associate have access to your Amazon S3 or Amazon EFS - * resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name, + * resources over the enabled protocols using Transfer Family. If you know the group name, * you can view the SID values by running the following command using Windows PowerShell.

    * *

    @@ -3045,7 +3982,7 @@ export interface UpdateAccessRequest { * *

    In that command, replace YourGroupName with the name of your Active Directory group.

    * - *

    The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. + *

    The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces. * You can also include underscores or any of the following characters: =,.@:/-

    */ ExternalId: string | undefined; @@ -3064,6 +4001,154 @@ export interface UpdateAccessResponse { ExternalId: string | undefined; } +export interface UpdateAgreementRequest { + /** + *

    A unique identifier for the agreement. This identifier is returned when you create an agreement.

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

    A system-assigned unique identifier for a server instance. This is the specific server that the agreement uses.

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

    To replace the existing description, provide a short description for the agreement.

    + */ + Description?: string; + + /** + *

    You can update the status for the agreement, either activating an inactive agreement or + * the reverse.

    + */ + Status?: AgreementStatusType | string; + + /** + *

    To change the local profile identifier, provide a new value + * here.

    + */ + LocalProfileId?: string; + + /** + *

    To change the partner profile identifier, provide a new value here.

    + */ + PartnerProfileId?: string; + + /** + *

    To change the landing directory (folder) for files that are transferred, provide the + * bucket folder that you want to use; for example, + * /DOC-EXAMPLE-BUCKET/home/mydirectory + * .

    + */ + BaseDirectory?: string; + + /** + *

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that grants access to at least the + * HomeDirectory of your users' Amazon S3 buckets.

    + */ + AccessRole?: string; +} + +export interface UpdateAgreementResponse { + /** + *

    A unique identifier for the agreement. This identifier is returned when you create an agreement.

    + */ + AgreementId: string | undefined; +} + +export interface UpdateCertificateRequest { + /** + *

    The identifier of the certificate object that you are updating.

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

    An optional date that specifies when the certificate becomes active.

    + */ + ActiveDate?: Date; + + /** + *

    An optional date that specifies when the certificate becomes inactive.

    + */ + InactiveDate?: Date; + + /** + *

    A short description to help identify the certificate.

    + */ + Description?: string; +} + +export interface UpdateCertificateResponse { + /** + *

    Returns the identifier of the certificate object that you are updating.

    + */ + CertificateId: string | undefined; +} + +export interface UpdateConnectorRequest { + /** + *

    The unique identifier for the connector.

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

    The URL of the partner's AS2 endpoint.

    + */ + Url?: string; + + /** + *

    A structure that contains the parameters for a connector object.

    + */ + As2Config?: As2ConnectorConfig; + + /** + *

    With AS2, you can send files by calling StartFileTransfer and specifying the + * file paths in the request parameter, SendFilePaths. We use the file’s parent + * directory (for example, for --send-file-paths /bucket/dir/file.txt, parent + * directory is /bucket/dir/) to temporarily store a processed AS2 message file, + * store the MDN when we receive them from the partner, and write a final JSON file containing + * relevant metadata of the transmission. So, the AccessRole needs to provide read + * and write access to the parent directory of the file location used in the + * StartFileTransfer request. Additionally, you need to provide read and write + * access to the parent directory of the files that you intend to send with + * StartFileTransfer.

    + */ + AccessRole?: string; + + /** + *

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a connector to turn + * on CloudWatch logging for Amazon S3 events. When set, you can view connector + * activity in your CloudWatch logs.

    + */ + LoggingRole?: string; +} + +export interface UpdateConnectorResponse { + /** + *

    Returns the identifier of the connector object that you are updating.

    + */ + ConnectorId: string | undefined; +} + +export interface UpdateProfileRequest { + /** + *

    The identifier of the profile object that you are updating.

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

    An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

    + */ + CertificateIds?: string[]; +} + +export interface UpdateProfileResponse { + /** + *

    Returns the identifier for the profile that's being updated.

    + */ + ProfileId: string | undefined; +} + export interface UpdateServerRequest { /** *

    The Amazon Resource Name (ARN) of the Amazon Web ServicesCertificate Manager (ACM) certificate. Required @@ -3112,19 +4197,25 @@ export interface UpdateServerRequest { *

      *
    • *

      - * Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols). + * To indicate passive mode (for FTP and FTPS protocols), use the PassiveIp parameter. * Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer. *

      *
    • *
    • - *

      Use the SetStatOption to ignore the error that is generated when the client attempts to use SETSTAT on a file you are uploading to an S3 bucket. - * Set the value to ENABLE_NO_OP to have the Transfer Family server ignore the SETSTAT command, and upload files without needing to make any changes to your SFTP client. - * Note that with SetStatOption set to ENABLE_NO_OP, Transfer generates a log entry to CloudWatch Logs, so you can determine when the client - * is making a SETSTAT call.

      + *

      To ignore the error that is generated when the client attempts to use the SETSTAT command on a file that you are + * uploading to an Amazon S3 bucket, use the SetStatOption parameter. To have the Transfer Family server ignore the + * SETSTAT command and upload files without needing to make any changes to your SFTP client, set the value to + * ENABLE_NO_OP. If you set the SetStatOption parameter to ENABLE_NO_OP, Transfer Family + * generates a log entry to Amazon CloudWatch Logs, so that you can determine when the client is making a SETSTAT + * call.

      *
    • *
    • - *

      Use the TlsSessionResumptionMode parameter to determine whether or not your Transfer server - * resumes recent, negotiated sessions through a unique session ID.

      + *

      To determine whether your Transfer Family server resumes recent, negotiated sessions through a unique session ID, use the + * TlsSessionResumptionMode parameter.

      + *
    • + *
    • + *

      + * As2Transports indicates the transport method for the AS2 messages. Currently, only HTTP is supported.

      *
    • *
    */ @@ -3132,8 +4223,8 @@ export interface UpdateServerRequest { /** *

    The virtual private cloud (VPC) endpoint settings that are configured for your server. - * When you host your endpoint within your VPC, you can make it accessible only to resources - * within your VPC, or you can attach Elastic IP addresses and make it accessible to clients over + * When you host your endpoint within your VPC, you can make your endpoint accessible only to resources + * within your VPC, or you can attach Elastic IP addresses and make your endpoint accessible to clients over * the internet. Your VPC's default security groups are automatically assigned to your * endpoint.

    */ @@ -3168,7 +4259,7 @@ export interface UpdateServerRequest { *

    Use the following command to generate an RSA 2048 bit key with no passphrase:

    *

    * ssh-keygen -t rsa -b 2048 -N "" -m PEM -f my-new-server-key.

    - *

    Use a minimum value of 2048 for the -b option: you can create a stronger key using 3072 or 4096.

    + *

    Use a minimum value of 2048 for the -b option. You can create a stronger key by using 3072 or 4096.

    * *

    Use the following command to generate an ECDSA 256 bit key with no passphrase:

    *

    @@ -3189,8 +4280,7 @@ export interface UpdateServerRequest { * * * - *

    For more information, see Change the host key for your SFTP-enabled server in the Amazon Web Services Transfer - * Family User Guide.

    + *

    For more information, see Change the host key for your SFTP-enabled server in the Transfer Family User Guide.

    */ HostKey?: string; @@ -3201,14 +4291,14 @@ export interface UpdateServerRequest { IdentityProviderDetails?: IdentityProviderDetails; /** - *

    Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn - * on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in + *

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a server to turn + * on Amazon CloudWatch logging for Amazon S3 or Amazon EFSevents. When set, you can view user activity in * your CloudWatch logs.

    */ LoggingRole?: string; /** - *

    Specify a string to display when users connect to a server. This string is displayed after the user authenticates.

    + *

    Specifies a string to display when users connect to a server. This string is displayed after the user authenticates.

    * *

    The SFTP protocol does not support post-authentication display banners.

    *
    @@ -3216,8 +4306,9 @@ export interface UpdateServerRequest { PostAuthenticationLoginBanner?: string; /** - *

    Specify a string to display when users connect to a server. This string is displayed before the user authenticates. - * For example, the following banner displays details about using the system.

    + *

    Specifies a string to display when users connect to a server. This string is displayed before the user authenticates. + * For example, the following banner displays details about using the system:

    + * *

    * This system is for the use of authorized users only. Individuals using this computer system without authority, * or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by @@ -3274,7 +4365,7 @@ export interface UpdateServerRequest { ServerId: string | undefined; /** - *

    Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.

    + *

    Specifies the workflow ID for the workflow to assign and the execution role that's used for executing the workflow.

    *

    To remove an associated workflow from a server, you can provide an empty OnUpload object, as in the following example.

    *

    * aws transfer update-server --server-id s-01234567890abcdef --workflow-details '{"OnUpload":[]}' @@ -3299,10 +4390,10 @@ export interface UpdateUserRequest { HomeDirectory?: string; /** - *

    The type of landing directory (folder) you want your users' home directory to be when they log into the server. - * If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients. - * If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon - * S3 or EFS paths visible to your users.

    + *

    The type of landing directory (folder) that you want your users' home directory to be when they log in to the server. + * If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer + * protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for + * how you want to make Amazon S3 or Amazon EFS paths visible to your users.

    */ HomeDirectoryType?: HomeDirectoryType | string; @@ -3311,9 +4402,9 @@ export interface UpdateUserRequest { * be visible to your user and how you want to make them visible. You must specify the * Entry and Target pair, where Entry shows how the path * is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you - * only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity - * and Access Management (IAM) role provides access to paths in Target. This value - * can only be set when HomeDirectoryType is set to + * only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) + * role provides access to paths in Target. This value + * can be set only when HomeDirectoryType is set to * LOGICAL.

    * *

    The following is an Entry and Target pair example.

    @@ -3334,13 +4425,13 @@ export interface UpdateUserRequest { HomeDirectoryMappings?: HomeDirectoryMapEntry[]; /** - *

    A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user + *

    A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's * access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName}, * ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

    * * - *

    This only applies when the domain of ServerId is S3. EFS does not use session policies.

    - *

    For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead + *

    This policy applies only when the domain of ServerId is Amazon S3. Amazon EFS does not use session policies.

    + *

    For session policies, Transfer Family stores the policy as a JSON blob, instead * of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass * it in the Policy argument.

    * @@ -3367,10 +4458,10 @@ export interface UpdateUserRequest { PosixProfile?: PosixProfile; /** - *

    Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS - * file system. The policies attached to this role determine the level of access that you want to provide your users when transferring - * files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the - * server to access your resources when servicing your users' transfer requests.

    + *

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 + * bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users + * when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust + * relationship that allows the server to access your resources when servicing your users' transfer requests.

    */ Role?: string; @@ -3409,6 +4500,13 @@ export interface UpdateUserResponse { UserName: string | undefined; } +/** + * @internal + */ +export const As2ConnectorConfigFilterSensitiveLog = (obj: As2ConnectorConfig): any => ({ + ...obj, +}); + /** * @internal */ @@ -3419,77 +4517,119 @@ export const EfsFileLocationFilterSensitiveLog = (obj: EfsFileLocation): any => /** * @internal */ -export const S3InputFileLocationFilterSensitiveLog = (obj: S3InputFileLocation): any => ({ +export const S3InputFileLocationFilterSensitiveLog = (obj: S3InputFileLocation): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const InputFileLocationFilterSensitiveLog = (obj: InputFileLocation): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const CopyStepDetailsFilterSensitiveLog = (obj: CopyStepDetails): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const HomeDirectoryMapEntryFilterSensitiveLog = (obj: HomeDirectoryMapEntry): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const PosixProfileFilterSensitiveLog = (obj: PosixProfile): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const CreateAccessRequestFilterSensitiveLog = (obj: CreateAccessRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const CreateAccessResponseFilterSensitiveLog = (obj: CreateAccessResponse): any => ({ ...obj, }); /** * @internal */ -export const InputFileLocationFilterSensitiveLog = (obj: InputFileLocation): any => ({ +export const TagFilterSensitiveLog = (obj: Tag): any => ({ ...obj, }); /** * @internal */ -export const CopyStepDetailsFilterSensitiveLog = (obj: CopyStepDetails): any => ({ +export const CreateAgreementRequestFilterSensitiveLog = (obj: CreateAgreementRequest): any => ({ ...obj, }); /** * @internal */ -export const HomeDirectoryMapEntryFilterSensitiveLog = (obj: HomeDirectoryMapEntry): any => ({ +export const CreateAgreementResponseFilterSensitiveLog = (obj: CreateAgreementResponse): any => ({ ...obj, }); /** * @internal */ -export const PosixProfileFilterSensitiveLog = (obj: PosixProfile): any => ({ +export const CreateConnectorRequestFilterSensitiveLog = (obj: CreateConnectorRequest): any => ({ ...obj, }); /** * @internal */ -export const CreateAccessRequestFilterSensitiveLog = (obj: CreateAccessRequest): any => ({ +export const CreateConnectorResponseFilterSensitiveLog = (obj: CreateConnectorResponse): any => ({ ...obj, }); /** * @internal */ -export const CreateAccessResponseFilterSensitiveLog = (obj: CreateAccessResponse): any => ({ +export const CreateProfileRequestFilterSensitiveLog = (obj: CreateProfileRequest): any => ({ ...obj, }); /** * @internal */ -export const EndpointDetailsFilterSensitiveLog = (obj: EndpointDetails): any => ({ +export const CreateProfileResponseFilterSensitiveLog = (obj: CreateProfileResponse): any => ({ ...obj, }); /** * @internal */ -export const IdentityProviderDetailsFilterSensitiveLog = (obj: IdentityProviderDetails): any => ({ +export const EndpointDetailsFilterSensitiveLog = (obj: EndpointDetails): any => ({ ...obj, }); /** * @internal */ -export const ProtocolDetailsFilterSensitiveLog = (obj: ProtocolDetails): any => ({ +export const IdentityProviderDetailsFilterSensitiveLog = (obj: IdentityProviderDetails): any => ({ ...obj, }); /** * @internal */ -export const TagFilterSensitiveLog = (obj: Tag): any => ({ +export const ProtocolDetailsFilterSensitiveLog = (obj: ProtocolDetails): any => ({ ...obj, }); @@ -3592,6 +4732,34 @@ export const DeleteAccessRequestFilterSensitiveLog = (obj: DeleteAccessRequest): ...obj, }); +/** + * @internal + */ +export const DeleteAgreementRequestFilterSensitiveLog = (obj: DeleteAgreementRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const DeleteCertificateRequestFilterSensitiveLog = (obj: DeleteCertificateRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const DeleteConnectorRequestFilterSensitiveLog = (obj: DeleteConnectorRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const DeleteProfileRequestFilterSensitiveLog = (obj: DeleteProfileRequest): any => ({ + ...obj, +}); + /** * @internal */ @@ -3641,6 +4809,72 @@ export const DescribeAccessResponseFilterSensitiveLog = (obj: DescribeAccessResp ...obj, }); +/** + * @internal + */ +export const DescribeAgreementRequestFilterSensitiveLog = (obj: DescribeAgreementRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const DescribedAgreementFilterSensitiveLog = (obj: DescribedAgreement): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const DescribeAgreementResponseFilterSensitiveLog = (obj: DescribeAgreementResponse): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const DescribeCertificateRequestFilterSensitiveLog = (obj: DescribeCertificateRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const DescribedCertificateFilterSensitiveLog = (obj: DescribedCertificate): any => ({ + ...obj, + ...(obj.Certificate && { Certificate: SENSITIVE_STRING }), + ...(obj.CertificateChain && { CertificateChain: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const DescribeCertificateResponseFilterSensitiveLog = (obj: DescribeCertificateResponse): any => ({ + ...obj, + ...(obj.Certificate && { Certificate: DescribedCertificateFilterSensitiveLog(obj.Certificate) }), +}); + +/** + * @internal + */ +export const DescribeConnectorRequestFilterSensitiveLog = (obj: DescribeConnectorRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const DescribedConnectorFilterSensitiveLog = (obj: DescribedConnector): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const DescribeConnectorResponseFilterSensitiveLog = (obj: DescribeConnectorResponse): any => ({ + ...obj, +}); + /** * @internal */ @@ -3704,6 +4938,13 @@ export const DescribedExecutionFilterSensitiveLog = (obj: DescribedExecution): a ...obj, }); +/** + * @internal + */ +export const DescribedProfileFilterSensitiveLog = (obj: DescribedProfile): any => ({ + ...obj, +}); + /** * @internal */ @@ -3753,6 +4994,20 @@ export const DescribeExecutionResponseFilterSensitiveLog = (obj: DescribeExecuti ...obj, }); +/** + * @internal + */ +export const DescribeProfileRequestFilterSensitiveLog = (obj: DescribeProfileRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const DescribeProfileResponseFilterSensitiveLog = (obj: DescribeProfileResponse): any => ({ + ...obj, +}); + /** * @internal */ @@ -3809,6 +5064,23 @@ export const DescribeWorkflowResponseFilterSensitiveLog = (obj: DescribeWorkflow ...obj, }); +/** + * @internal + */ +export const ImportCertificateRequestFilterSensitiveLog = (obj: ImportCertificateRequest): any => ({ + ...obj, + ...(obj.Certificate && { Certificate: SENSITIVE_STRING }), + ...(obj.CertificateChain && { CertificateChain: SENSITIVE_STRING }), + ...(obj.PrivateKey && { PrivateKey: SENSITIVE_STRING }), +}); + +/** + * @internal + */ +export const ImportCertificateResponseFilterSensitiveLog = (obj: ImportCertificateResponse): any => ({ + ...obj, +}); + /** * @internal */ @@ -3844,6 +5116,69 @@ export const ListAccessesResponseFilterSensitiveLog = (obj: ListAccessesResponse ...obj, }); +/** + * @internal + */ +export const ListAgreementsRequestFilterSensitiveLog = (obj: ListAgreementsRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const ListedAgreementFilterSensitiveLog = (obj: ListedAgreement): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const ListAgreementsResponseFilterSensitiveLog = (obj: ListAgreementsResponse): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const ListCertificatesRequestFilterSensitiveLog = (obj: ListCertificatesRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const ListedCertificateFilterSensitiveLog = (obj: ListedCertificate): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const ListCertificatesResponseFilterSensitiveLog = (obj: ListCertificatesResponse): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const ListConnectorsRequestFilterSensitiveLog = (obj: ListConnectorsRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const ListedConnectorFilterSensitiveLog = (obj: ListedConnector): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const ListConnectorsResponseFilterSensitiveLog = (obj: ListConnectorsResponse): any => ({ + ...obj, +}); + /** * @internal */ @@ -3851,6 +5186,13 @@ export const ListedExecutionFilterSensitiveLog = (obj: ListedExecution): any => ...obj, }); +/** + * @internal + */ +export const ListedProfileFilterSensitiveLog = (obj: ListedProfile): any => ({ + ...obj, +}); + /** * @internal */ @@ -3886,6 +5228,20 @@ export const ListExecutionsResponseFilterSensitiveLog = (obj: ListExecutionsResp ...obj, }); +/** + * @internal + */ +export const ListProfilesRequestFilterSensitiveLog = (obj: ListProfilesRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const ListProfilesResponseFilterSensitiveLog = (obj: ListProfilesResponse): any => ({ + ...obj, +}); + /** * @internal */ @@ -3970,6 +5326,20 @@ export const SendWorkflowStepStateResponseFilterSensitiveLog = (obj: SendWorkflo ...obj, }); +/** + * @internal + */ +export const StartFileTransferRequestFilterSensitiveLog = (obj: StartFileTransferRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const StartFileTransferResponseFilterSensitiveLog = (obj: StartFileTransferResponse): any => ({ + ...obj, +}); + /** * @internal */ @@ -4027,6 +5397,62 @@ export const UpdateAccessResponseFilterSensitiveLog = (obj: UpdateAccessResponse ...obj, }); +/** + * @internal + */ +export const UpdateAgreementRequestFilterSensitiveLog = (obj: UpdateAgreementRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const UpdateAgreementResponseFilterSensitiveLog = (obj: UpdateAgreementResponse): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const UpdateCertificateRequestFilterSensitiveLog = (obj: UpdateCertificateRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const UpdateCertificateResponseFilterSensitiveLog = (obj: UpdateCertificateResponse): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const UpdateConnectorRequestFilterSensitiveLog = (obj: UpdateConnectorRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const UpdateConnectorResponseFilterSensitiveLog = (obj: UpdateConnectorResponse): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const UpdateProfileRequestFilterSensitiveLog = (obj: UpdateProfileRequest): any => ({ + ...obj, +}); + +/** + * @internal + */ +export const UpdateProfileResponseFilterSensitiveLog = (obj: UpdateProfileResponse): any => ({ + ...obj, +}); + /** * @internal */ diff --git a/clients/client-transfer/src/pagination/ListAgreementsPaginator.ts b/clients/client-transfer/src/pagination/ListAgreementsPaginator.ts new file mode 100644 index 000000000000..b6190c201c30 --- /dev/null +++ b/clients/client-transfer/src/pagination/ListAgreementsPaginator.ts @@ -0,0 +1,61 @@ +// smithy-typescript generated code +import { Paginator } from "@aws-sdk/types"; + +import { + ListAgreementsCommand, + ListAgreementsCommandInput, + ListAgreementsCommandOutput, +} from "../commands/ListAgreementsCommand"; +import { Transfer } from "../Transfer"; +import { TransferClient } from "../TransferClient"; +import { TransferPaginationConfiguration } from "./Interfaces"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: TransferClient, + input: ListAgreementsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListAgreementsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: Transfer, + input: ListAgreementsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listAgreements(input, ...args); +}; +export async function* paginateListAgreements( + config: TransferPaginationConfiguration, + input: ListAgreementsCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.NextToken + let token: typeof input.NextToken | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListAgreementsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof Transfer) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof TransferClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected Transfer | TransferClient"); + } + yield page; + const prevToken = token; + token = page.NextToken; + hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken)); + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-transfer/src/pagination/ListCertificatesPaginator.ts b/clients/client-transfer/src/pagination/ListCertificatesPaginator.ts new file mode 100644 index 000000000000..ceaa62779347 --- /dev/null +++ b/clients/client-transfer/src/pagination/ListCertificatesPaginator.ts @@ -0,0 +1,61 @@ +// smithy-typescript generated code +import { Paginator } from "@aws-sdk/types"; + +import { + ListCertificatesCommand, + ListCertificatesCommandInput, + ListCertificatesCommandOutput, +} from "../commands/ListCertificatesCommand"; +import { Transfer } from "../Transfer"; +import { TransferClient } from "../TransferClient"; +import { TransferPaginationConfiguration } from "./Interfaces"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: TransferClient, + input: ListCertificatesCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListCertificatesCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: Transfer, + input: ListCertificatesCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listCertificates(input, ...args); +}; +export async function* paginateListCertificates( + config: TransferPaginationConfiguration, + input: ListCertificatesCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.NextToken + let token: typeof input.NextToken | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListCertificatesCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof Transfer) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof TransferClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected Transfer | TransferClient"); + } + yield page; + const prevToken = token; + token = page.NextToken; + hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken)); + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-transfer/src/pagination/ListConnectorsPaginator.ts b/clients/client-transfer/src/pagination/ListConnectorsPaginator.ts new file mode 100644 index 000000000000..c86eabf19260 --- /dev/null +++ b/clients/client-transfer/src/pagination/ListConnectorsPaginator.ts @@ -0,0 +1,61 @@ +// smithy-typescript generated code +import { Paginator } from "@aws-sdk/types"; + +import { + ListConnectorsCommand, + ListConnectorsCommandInput, + ListConnectorsCommandOutput, +} from "../commands/ListConnectorsCommand"; +import { Transfer } from "../Transfer"; +import { TransferClient } from "../TransferClient"; +import { TransferPaginationConfiguration } from "./Interfaces"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: TransferClient, + input: ListConnectorsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListConnectorsCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: Transfer, + input: ListConnectorsCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listConnectors(input, ...args); +}; +export async function* paginateListConnectors( + config: TransferPaginationConfiguration, + input: ListConnectorsCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.NextToken + let token: typeof input.NextToken | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListConnectorsCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof Transfer) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof TransferClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected Transfer | TransferClient"); + } + yield page; + const prevToken = token; + token = page.NextToken; + hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken)); + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-transfer/src/pagination/ListProfilesPaginator.ts b/clients/client-transfer/src/pagination/ListProfilesPaginator.ts new file mode 100644 index 000000000000..64154812cea6 --- /dev/null +++ b/clients/client-transfer/src/pagination/ListProfilesPaginator.ts @@ -0,0 +1,61 @@ +// smithy-typescript generated code +import { Paginator } from "@aws-sdk/types"; + +import { + ListProfilesCommand, + ListProfilesCommandInput, + ListProfilesCommandOutput, +} from "../commands/ListProfilesCommand"; +import { Transfer } from "../Transfer"; +import { TransferClient } from "../TransferClient"; +import { TransferPaginationConfiguration } from "./Interfaces"; + +/** + * @private + */ +const makePagedClientRequest = async ( + client: TransferClient, + input: ListProfilesCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.send(new ListProfilesCommand(input), ...args); +}; +/** + * @private + */ +const makePagedRequest = async ( + client: Transfer, + input: ListProfilesCommandInput, + ...args: any +): Promise => { + // @ts-ignore + return await client.listProfiles(input, ...args); +}; +export async function* paginateListProfiles( + config: TransferPaginationConfiguration, + input: ListProfilesCommandInput, + ...additionalArguments: any +): Paginator { + // ToDo: replace with actual type instead of typeof input.NextToken + let token: typeof input.NextToken | undefined = config.startingToken || undefined; + let hasNext = true; + let page: ListProfilesCommandOutput; + while (hasNext) { + input.NextToken = token; + input["MaxResults"] = config.pageSize; + if (config.client instanceof Transfer) { + page = await makePagedRequest(config.client, input, ...additionalArguments); + } else if (config.client instanceof TransferClient) { + page = await makePagedClientRequest(config.client, input, ...additionalArguments); + } else { + throw new Error("Invalid client, expected Transfer | TransferClient"); + } + yield page; + const prevToken = token; + token = page.NextToken; + hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken)); + } + // @ts-ignore + return undefined; +} diff --git a/clients/client-transfer/src/pagination/index.ts b/clients/client-transfer/src/pagination/index.ts index 997e3d9ccc43..e5285ca7f3f8 100644 --- a/clients/client-transfer/src/pagination/index.ts +++ b/clients/client-transfer/src/pagination/index.ts @@ -1,7 +1,11 @@ // smithy-typescript generated code export * from "./Interfaces"; export * from "./ListAccessesPaginator"; +export * from "./ListAgreementsPaginator"; +export * from "./ListCertificatesPaginator"; +export * from "./ListConnectorsPaginator"; export * from "./ListExecutionsPaginator"; +export * from "./ListProfilesPaginator"; export * from "./ListSecurityPoliciesPaginator"; export * from "./ListServersPaginator"; export * from "./ListTagsForResourcePaginator"; diff --git a/clients/client-transfer/src/protocols/Aws_json1_1.ts b/clients/client-transfer/src/protocols/Aws_json1_1.ts index 9b11a19fb352..3f3bfe65d28a 100644 --- a/clients/client-transfer/src/protocols/Aws_json1_1.ts +++ b/clients/client-transfer/src/protocols/Aws_json1_1.ts @@ -18,16 +18,30 @@ import { } from "@aws-sdk/types"; import { CreateAccessCommandInput, CreateAccessCommandOutput } from "../commands/CreateAccessCommand"; +import { CreateAgreementCommandInput, CreateAgreementCommandOutput } from "../commands/CreateAgreementCommand"; +import { CreateConnectorCommandInput, CreateConnectorCommandOutput } from "../commands/CreateConnectorCommand"; +import { CreateProfileCommandInput, CreateProfileCommandOutput } from "../commands/CreateProfileCommand"; import { CreateServerCommandInput, CreateServerCommandOutput } from "../commands/CreateServerCommand"; import { CreateUserCommandInput, CreateUserCommandOutput } from "../commands/CreateUserCommand"; import { CreateWorkflowCommandInput, CreateWorkflowCommandOutput } from "../commands/CreateWorkflowCommand"; import { DeleteAccessCommandInput, DeleteAccessCommandOutput } from "../commands/DeleteAccessCommand"; +import { DeleteAgreementCommandInput, DeleteAgreementCommandOutput } from "../commands/DeleteAgreementCommand"; +import { DeleteCertificateCommandInput, DeleteCertificateCommandOutput } from "../commands/DeleteCertificateCommand"; +import { DeleteConnectorCommandInput, DeleteConnectorCommandOutput } from "../commands/DeleteConnectorCommand"; +import { DeleteProfileCommandInput, DeleteProfileCommandOutput } from "../commands/DeleteProfileCommand"; import { DeleteServerCommandInput, DeleteServerCommandOutput } from "../commands/DeleteServerCommand"; import { DeleteSshPublicKeyCommandInput, DeleteSshPublicKeyCommandOutput } from "../commands/DeleteSshPublicKeyCommand"; import { DeleteUserCommandInput, DeleteUserCommandOutput } from "../commands/DeleteUserCommand"; import { DeleteWorkflowCommandInput, DeleteWorkflowCommandOutput } from "../commands/DeleteWorkflowCommand"; import { DescribeAccessCommandInput, DescribeAccessCommandOutput } from "../commands/DescribeAccessCommand"; +import { DescribeAgreementCommandInput, DescribeAgreementCommandOutput } from "../commands/DescribeAgreementCommand"; +import { + DescribeCertificateCommandInput, + DescribeCertificateCommandOutput, +} from "../commands/DescribeCertificateCommand"; +import { DescribeConnectorCommandInput, DescribeConnectorCommandOutput } from "../commands/DescribeConnectorCommand"; import { DescribeExecutionCommandInput, DescribeExecutionCommandOutput } from "../commands/DescribeExecutionCommand"; +import { DescribeProfileCommandInput, DescribeProfileCommandOutput } from "../commands/DescribeProfileCommand"; import { DescribeSecurityPolicyCommandInput, DescribeSecurityPolicyCommandOutput, @@ -35,9 +49,14 @@ import { import { DescribeServerCommandInput, DescribeServerCommandOutput } from "../commands/DescribeServerCommand"; import { DescribeUserCommandInput, DescribeUserCommandOutput } from "../commands/DescribeUserCommand"; import { DescribeWorkflowCommandInput, DescribeWorkflowCommandOutput } from "../commands/DescribeWorkflowCommand"; +import { ImportCertificateCommandInput, ImportCertificateCommandOutput } from "../commands/ImportCertificateCommand"; import { ImportSshPublicKeyCommandInput, ImportSshPublicKeyCommandOutput } from "../commands/ImportSshPublicKeyCommand"; import { ListAccessesCommandInput, ListAccessesCommandOutput } from "../commands/ListAccessesCommand"; +import { ListAgreementsCommandInput, ListAgreementsCommandOutput } from "../commands/ListAgreementsCommand"; +import { ListCertificatesCommandInput, ListCertificatesCommandOutput } from "../commands/ListCertificatesCommand"; +import { ListConnectorsCommandInput, ListConnectorsCommandOutput } from "../commands/ListConnectorsCommand"; import { ListExecutionsCommandInput, ListExecutionsCommandOutput } from "../commands/ListExecutionsCommand"; +import { ListProfilesCommandInput, ListProfilesCommandOutput } from "../commands/ListProfilesCommand"; import { ListSecurityPoliciesCommandInput, ListSecurityPoliciesCommandOutput, @@ -53,6 +72,7 @@ import { SendWorkflowStepStateCommandInput, SendWorkflowStepStateCommandOutput, } from "../commands/SendWorkflowStepStateCommand"; +import { StartFileTransferCommandInput, StartFileTransferCommandOutput } from "../commands/StartFileTransferCommand"; import { StartServerCommandInput, StartServerCommandOutput } from "../commands/StartServerCommand"; import { StopServerCommandInput, StopServerCommandOutput } from "../commands/StopServerCommand"; import { TagResourceCommandInput, TagResourceCommandOutput } from "../commands/TagResourceCommand"; @@ -62,14 +82,26 @@ import { } from "../commands/TestIdentityProviderCommand"; import { UntagResourceCommandInput, UntagResourceCommandOutput } from "../commands/UntagResourceCommand"; import { UpdateAccessCommandInput, UpdateAccessCommandOutput } from "../commands/UpdateAccessCommand"; +import { UpdateAgreementCommandInput, UpdateAgreementCommandOutput } from "../commands/UpdateAgreementCommand"; +import { UpdateCertificateCommandInput, UpdateCertificateCommandOutput } from "../commands/UpdateCertificateCommand"; +import { UpdateConnectorCommandInput, UpdateConnectorCommandOutput } from "../commands/UpdateConnectorCommand"; +import { UpdateProfileCommandInput, UpdateProfileCommandOutput } from "../commands/UpdateProfileCommand"; import { UpdateServerCommandInput, UpdateServerCommandOutput } from "../commands/UpdateServerCommand"; import { UpdateUserCommandInput, UpdateUserCommandOutput } from "../commands/UpdateUserCommand"; import { AccessDeniedException, + As2ConnectorConfig, + As2Transport, ConflictException, CopyStepDetails, CreateAccessRequest, CreateAccessResponse, + CreateAgreementRequest, + CreateAgreementResponse, + CreateConnectorRequest, + CreateConnectorResponse, + CreateProfileRequest, + CreateProfileResponse, CreateServerRequest, CreateServerResponse, CreateUserRequest, @@ -78,6 +110,10 @@ import { CreateWorkflowResponse, CustomStepDetails, DeleteAccessRequest, + DeleteAgreementRequest, + DeleteCertificateRequest, + DeleteConnectorRequest, + DeleteProfileRequest, DeleteServerRequest, DeleteSshPublicKeyRequest, DeleteStepDetails, @@ -85,14 +121,26 @@ import { DeleteWorkflowRequest, DescribeAccessRequest, DescribeAccessResponse, + DescribeAgreementRequest, + DescribeAgreementResponse, + DescribeCertificateRequest, + DescribeCertificateResponse, + DescribeConnectorRequest, + DescribeConnectorResponse, DescribedAccess, + DescribedAgreement, + DescribedCertificate, + DescribedConnector, DescribedExecution, + DescribedProfile, DescribedSecurityPolicy, DescribedServer, DescribedUser, DescribedWorkflow, DescribeExecutionRequest, DescribeExecutionResponse, + DescribeProfileRequest, + DescribeProfileResponse, DescribeSecurityPolicyRequest, DescribeSecurityPolicyResponse, DescribeServerRequest, @@ -109,6 +157,8 @@ import { FileLocation, HomeDirectoryMapEntry, IdentityProviderDetails, + ImportCertificateRequest, + ImportCertificateResponse, ImportSshPublicKeyRequest, ImportSshPublicKeyResponse, InputFileLocation, @@ -117,13 +167,25 @@ import { InvalidRequestException, ListAccessesRequest, ListAccessesResponse, + ListAgreementsRequest, + ListAgreementsResponse, + ListCertificatesRequest, + ListCertificatesResponse, + ListConnectorsRequest, + ListConnectorsResponse, ListedAccess, + ListedAgreement, + ListedCertificate, + ListedConnector, ListedExecution, + ListedProfile, ListedServer, ListedUser, ListedWorkflow, ListExecutionsRequest, ListExecutionsResponse, + ListProfilesRequest, + ListProfilesResponse, ListSecurityPoliciesRequest, ListSecurityPoliciesResponse, ListServersRequest, @@ -148,6 +210,8 @@ import { ServiceMetadata, ServiceUnavailableException, SshPublicKey, + StartFileTransferRequest, + StartFileTransferResponse, StartServerRequest, StopServerRequest, Tag, @@ -159,6 +223,14 @@ import { UntagResourceRequest, UpdateAccessRequest, UpdateAccessResponse, + UpdateAgreementRequest, + UpdateAgreementResponse, + UpdateCertificateRequest, + UpdateCertificateResponse, + UpdateConnectorRequest, + UpdateConnectorResponse, + UpdateProfileRequest, + UpdateProfileResponse, UpdateServerRequest, UpdateServerResponse, UpdateUserRequest, @@ -183,6 +255,45 @@ export const serializeAws_json1_1CreateAccessCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1CreateAgreementCommand = async ( + input: CreateAgreementCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.CreateAgreement", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateAgreementRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1CreateConnectorCommand = async ( + input: CreateConnectorCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.CreateConnector", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateConnectorRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1CreateProfileCommand = async ( + input: CreateProfileCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.CreateProfile", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1CreateProfileRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1CreateServerCommand = async ( input: CreateServerCommandInput, context: __SerdeContext @@ -235,6 +346,58 @@ export const serializeAws_json1_1DeleteAccessCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DeleteAgreementCommand = async ( + input: DeleteAgreementCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.DeleteAgreement", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteAgreementRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DeleteCertificateCommand = async ( + input: DeleteCertificateCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.DeleteCertificate", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteCertificateRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DeleteConnectorCommand = async ( + input: DeleteConnectorCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.DeleteConnector", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteConnectorRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DeleteProfileCommand = async ( + input: DeleteProfileCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.DeleteProfile", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DeleteProfileRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DeleteServerCommand = async ( input: DeleteServerCommandInput, context: __SerdeContext @@ -300,6 +463,45 @@ export const serializeAws_json1_1DescribeAccessCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DescribeAgreementCommand = async ( + input: DescribeAgreementCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.DescribeAgreement", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeAgreementRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DescribeCertificateCommand = async ( + input: DescribeCertificateCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.DescribeCertificate", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeCertificateRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1DescribeConnectorCommand = async ( + input: DescribeConnectorCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.DescribeConnector", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeConnectorRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DescribeExecutionCommand = async ( input: DescribeExecutionCommandInput, context: __SerdeContext @@ -313,6 +515,19 @@ export const serializeAws_json1_1DescribeExecutionCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1DescribeProfileCommand = async ( + input: DescribeProfileCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.DescribeProfile", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1DescribeProfileRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1DescribeSecurityPolicyCommand = async ( input: DescribeSecurityPolicyCommandInput, context: __SerdeContext @@ -365,6 +580,19 @@ export const serializeAws_json1_1DescribeWorkflowCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1ImportCertificateCommand = async ( + input: ImportCertificateCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.ImportCertificate", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ImportCertificateRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1ImportSshPublicKeyCommand = async ( input: ImportSshPublicKeyCommandInput, context: __SerdeContext @@ -391,6 +619,45 @@ export const serializeAws_json1_1ListAccessesCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1ListAgreementsCommand = async ( + input: ListAgreementsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.ListAgreements", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListAgreementsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1ListCertificatesCommand = async ( + input: ListCertificatesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.ListCertificates", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListCertificatesRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1ListConnectorsCommand = async ( + input: ListConnectorsCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.ListConnectors", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListConnectorsRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1ListExecutionsCommand = async ( input: ListExecutionsCommandInput, context: __SerdeContext @@ -404,6 +671,19 @@ export const serializeAws_json1_1ListExecutionsCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1ListProfilesCommand = async ( + input: ListProfilesCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.ListProfiles", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1ListProfilesRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1ListSecurityPoliciesCommand = async ( input: ListSecurityPoliciesCommandInput, context: __SerdeContext @@ -482,6 +762,19 @@ export const serializeAws_json1_1SendWorkflowStepStateCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1StartFileTransferCommand = async ( + input: StartFileTransferCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.StartFileTransfer", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1StartFileTransferRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1StartServerCommand = async ( input: StartServerCommandInput, context: __SerdeContext @@ -560,6 +853,58 @@ export const serializeAws_json1_1UpdateAccessCommand = async ( return buildHttpRpcRequest(context, headers, "/", undefined, body); }; +export const serializeAws_json1_1UpdateAgreementCommand = async ( + input: UpdateAgreementCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.UpdateAgreement", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1UpdateAgreementRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1UpdateCertificateCommand = async ( + input: UpdateCertificateCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.UpdateCertificate", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1UpdateCertificateRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1UpdateConnectorCommand = async ( + input: UpdateConnectorCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.UpdateConnector", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1UpdateConnectorRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + +export const serializeAws_json1_1UpdateProfileCommand = async ( + input: UpdateProfileCommandInput, + context: __SerdeContext +): Promise<__HttpRequest> => { + const headers: __HeaderBag = { + "content-type": "application/x-amz-json-1.1", + "x-amz-target": "TransferService.UpdateProfile", + }; + let body: any; + body = JSON.stringify(serializeAws_json1_1UpdateProfileRequest(input, context)); + return buildHttpRpcRequest(context, headers, "/", undefined, body); +}; + export const serializeAws_json1_1UpdateServerCommand = async ( input: UpdateServerCommandInput, context: __SerdeContext @@ -642,27 +987,27 @@ const deserializeAws_json1_1CreateAccessCommandError = async ( } }; -export const deserializeAws_json1_1CreateServerCommand = async ( +export const deserializeAws_json1_1CreateAgreementCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreateServerCommandError(output, context); + return deserializeAws_json1_1CreateAgreementCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1CreateServerResponse(data, context); - const response: CreateServerCommandOutput = { + contents = deserializeAws_json1_1CreateAgreementResponse(data, context); + const response: CreateAgreementCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreateServerCommandError = async ( +const deserializeAws_json1_1CreateAgreementCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -670,9 +1015,6 @@ const deserializeAws_json1_1CreateServerCommandError = async ( let response: __BaseException; const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.transfer#AccessDeniedException": - throw await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context); case "InternalServiceError": case "com.amazonaws.transfer#InternalServiceError": throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); @@ -688,9 +1030,6 @@ const deserializeAws_json1_1CreateServerCommandError = async ( case "ServiceUnavailableException": case "com.amazonaws.transfer#ServiceUnavailableException": throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); - case "ThrottlingException": - case "com.amazonaws.transfer#ThrottlingException": - throw await deserializeAws_json1_1ThrottlingExceptionResponse(parsedOutput, context); default: const parsedBody = parsedOutput.body; const $metadata = deserializeMetadata(output); @@ -704,27 +1043,27 @@ const deserializeAws_json1_1CreateServerCommandError = async ( } }; -export const deserializeAws_json1_1CreateUserCommand = async ( +export const deserializeAws_json1_1CreateConnectorCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreateUserCommandError(output, context); + return deserializeAws_json1_1CreateConnectorCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1CreateUserResponse(data, context); - const response: CreateUserCommandOutput = { + contents = deserializeAws_json1_1CreateConnectorResponse(data, context); + const response: CreateConnectorCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreateUserCommandError = async ( +const deserializeAws_json1_1CreateConnectorCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -760,27 +1099,27 @@ const deserializeAws_json1_1CreateUserCommandError = async ( } }; -export const deserializeAws_json1_1CreateWorkflowCommand = async ( +export const deserializeAws_json1_1CreateProfileCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1CreateWorkflowCommandError(output, context); + return deserializeAws_json1_1CreateProfileCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1CreateWorkflowResponse(data, context); - const response: CreateWorkflowCommandOutput = { + contents = deserializeAws_json1_1CreateProfileResponse(data, context); + const response: CreateProfileCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1CreateWorkflowCommandError = async ( +const deserializeAws_json1_1CreateProfileCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -788,24 +1127,18 @@ const deserializeAws_json1_1CreateWorkflowCommandError = async ( let response: __BaseException; const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.transfer#AccessDeniedException": - throw await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context); case "InternalServiceError": case "com.amazonaws.transfer#InternalServiceError": throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); case "InvalidRequestException": case "com.amazonaws.transfer#InvalidRequestException": throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); - case "ResourceExistsException": - case "com.amazonaws.transfer#ResourceExistsException": - throw await deserializeAws_json1_1ResourceExistsExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); case "ServiceUnavailableException": case "com.amazonaws.transfer#ServiceUnavailableException": throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); - case "ThrottlingException": - case "com.amazonaws.transfer#ThrottlingException": - throw await deserializeAws_json1_1ThrottlingExceptionResponse(parsedOutput, context); default: const parsedBody = parsedOutput.body; const $metadata = deserializeMetadata(output); @@ -819,24 +1152,27 @@ const deserializeAws_json1_1CreateWorkflowCommandError = async ( } }; -export const deserializeAws_json1_1DeleteAccessCommand = async ( +export const deserializeAws_json1_1CreateServerCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DeleteAccessCommandError(output, context); + return deserializeAws_json1_1CreateServerCommandError(output, context); } - await collectBody(output.body, context); - const response: DeleteAccessCommandOutput = { + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1CreateServerResponse(data, context); + const response: CreateServerCommandOutput = { $metadata: deserializeMetadata(output), + ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DeleteAccessCommandError = async ( +const deserializeAws_json1_1CreateServerCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -844,18 +1180,27 @@ const deserializeAws_json1_1DeleteAccessCommandError = async ( let response: __BaseException; const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.transfer#AccessDeniedException": + throw await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context); case "InternalServiceError": case "com.amazonaws.transfer#InternalServiceError": throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); case "InvalidRequestException": case "com.amazonaws.transfer#InvalidRequestException": throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceExistsException": + case "com.amazonaws.transfer#ResourceExistsException": + throw await deserializeAws_json1_1ResourceExistsExceptionResponse(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.transfer#ResourceNotFoundException": throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); case "ServiceUnavailableException": case "com.amazonaws.transfer#ServiceUnavailableException": throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.transfer#ThrottlingException": + throw await deserializeAws_json1_1ThrottlingExceptionResponse(parsedOutput, context); default: const parsedBody = parsedOutput.body; const $metadata = deserializeMetadata(output); @@ -869,24 +1214,27 @@ const deserializeAws_json1_1DeleteAccessCommandError = async ( } }; -export const deserializeAws_json1_1DeleteServerCommand = async ( +export const deserializeAws_json1_1CreateUserCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DeleteServerCommandError(output, context); + return deserializeAws_json1_1CreateUserCommandError(output, context); } - await collectBody(output.body, context); - const response: DeleteServerCommandOutput = { + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1CreateUserResponse(data, context); + const response: CreateUserCommandOutput = { $metadata: deserializeMetadata(output), + ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DeleteServerCommandError = async ( +const deserializeAws_json1_1CreateUserCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -894,15 +1242,15 @@ const deserializeAws_json1_1DeleteServerCommandError = async ( let response: __BaseException; const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.transfer#AccessDeniedException": - throw await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context); case "InternalServiceError": case "com.amazonaws.transfer#InternalServiceError": throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); case "InvalidRequestException": case "com.amazonaws.transfer#InvalidRequestException": throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceExistsException": + case "com.amazonaws.transfer#ResourceExistsException": + throw await deserializeAws_json1_1ResourceExistsExceptionResponse(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.transfer#ResourceNotFoundException": throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); @@ -922,24 +1270,27 @@ const deserializeAws_json1_1DeleteServerCommandError = async ( } }; -export const deserializeAws_json1_1DeleteSshPublicKeyCommand = async ( +export const deserializeAws_json1_1CreateWorkflowCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DeleteSshPublicKeyCommandError(output, context); + return deserializeAws_json1_1CreateWorkflowCommandError(output, context); } - await collectBody(output.body, context); - const response: DeleteSshPublicKeyCommandOutput = { + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1CreateWorkflowResponse(data, context); + const response: CreateWorkflowCommandOutput = { $metadata: deserializeMetadata(output), + ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DeleteSshPublicKeyCommandError = async ( +const deserializeAws_json1_1CreateWorkflowCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -947,15 +1298,18 @@ const deserializeAws_json1_1DeleteSshPublicKeyCommandError = async ( let response: __BaseException; const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.transfer#AccessDeniedException": + throw await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context); case "InternalServiceError": case "com.amazonaws.transfer#InternalServiceError": throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); case "InvalidRequestException": case "com.amazonaws.transfer#InvalidRequestException": throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); - case "ResourceNotFoundException": - case "com.amazonaws.transfer#ResourceNotFoundException": - throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ResourceExistsException": + case "com.amazonaws.transfer#ResourceExistsException": + throw await deserializeAws_json1_1ResourceExistsExceptionResponse(parsedOutput, context); case "ServiceUnavailableException": case "com.amazonaws.transfer#ServiceUnavailableException": throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); @@ -975,24 +1329,24 @@ const deserializeAws_json1_1DeleteSshPublicKeyCommandError = async ( } }; -export const deserializeAws_json1_1DeleteUserCommand = async ( +export const deserializeAws_json1_1DeleteAccessCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DeleteUserCommandError(output, context); + return deserializeAws_json1_1DeleteAccessCommandError(output, context); } await collectBody(output.body, context); - const response: DeleteUserCommandOutput = { + const response: DeleteAccessCommandOutput = { $metadata: deserializeMetadata(output), }; return Promise.resolve(response); }; -const deserializeAws_json1_1DeleteUserCommandError = async ( +const deserializeAws_json1_1DeleteAccessCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1025,24 +1379,24 @@ const deserializeAws_json1_1DeleteUserCommandError = async ( } }; -export const deserializeAws_json1_1DeleteWorkflowCommand = async ( +export const deserializeAws_json1_1DeleteAgreementCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DeleteWorkflowCommandError(output, context); + return deserializeAws_json1_1DeleteAgreementCommandError(output, context); } await collectBody(output.body, context); - const response: DeleteWorkflowCommandOutput = { + const response: DeleteAgreementCommandOutput = { $metadata: deserializeMetadata(output), }; return Promise.resolve(response); }; -const deserializeAws_json1_1DeleteWorkflowCommandError = async ( +const deserializeAws_json1_1DeleteAgreementCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1050,9 +1404,6 @@ const deserializeAws_json1_1DeleteWorkflowCommandError = async ( let response: __BaseException; const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.transfer#AccessDeniedException": - throw await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context); case "InternalServiceError": case "com.amazonaws.transfer#InternalServiceError": throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); @@ -1078,27 +1429,24 @@ const deserializeAws_json1_1DeleteWorkflowCommandError = async ( } }; -export const deserializeAws_json1_1DescribeAccessCommand = async ( +export const deserializeAws_json1_1DeleteCertificateCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeAccessCommandError(output, context); + return deserializeAws_json1_1DeleteCertificateCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1DescribeAccessResponse(data, context); - const response: DescribeAccessCommandOutput = { + await collectBody(output.body, context); + const response: DeleteCertificateCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeAccessCommandError = async ( +const deserializeAws_json1_1DeleteCertificateCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1131,27 +1479,24 @@ const deserializeAws_json1_1DescribeAccessCommandError = async ( } }; -export const deserializeAws_json1_1DescribeExecutionCommand = async ( +export const deserializeAws_json1_1DeleteConnectorCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeExecutionCommandError(output, context); + return deserializeAws_json1_1DeleteConnectorCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1DescribeExecutionResponse(data, context); - const response: DescribeExecutionCommandOutput = { + await collectBody(output.body, context); + const response: DeleteConnectorCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeExecutionCommandError = async ( +const deserializeAws_json1_1DeleteConnectorCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1184,27 +1529,24 @@ const deserializeAws_json1_1DescribeExecutionCommandError = async ( } }; -export const deserializeAws_json1_1DescribeSecurityPolicyCommand = async ( +export const deserializeAws_json1_1DeleteProfileCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeSecurityPolicyCommandError(output, context); + return deserializeAws_json1_1DeleteProfileCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1DescribeSecurityPolicyResponse(data, context); - const response: DescribeSecurityPolicyCommandOutput = { + await collectBody(output.body, context); + const response: DeleteProfileCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeSecurityPolicyCommandError = async ( +const deserializeAws_json1_1DeleteProfileCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1237,27 +1579,24 @@ const deserializeAws_json1_1DescribeSecurityPolicyCommandError = async ( } }; -export const deserializeAws_json1_1DescribeServerCommand = async ( +export const deserializeAws_json1_1DeleteServerCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeServerCommandError(output, context); + return deserializeAws_json1_1DeleteServerCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1DescribeServerResponse(data, context); - const response: DescribeServerCommandOutput = { + await collectBody(output.body, context); + const response: DeleteServerCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeServerCommandError = async ( +const deserializeAws_json1_1DeleteServerCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1265,6 +1604,9 @@ const deserializeAws_json1_1DescribeServerCommandError = async ( let response: __BaseException; const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.transfer#AccessDeniedException": + throw await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context); case "InternalServiceError": case "com.amazonaws.transfer#InternalServiceError": throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); @@ -1290,27 +1632,24 @@ const deserializeAws_json1_1DescribeServerCommandError = async ( } }; -export const deserializeAws_json1_1DescribeUserCommand = async ( +export const deserializeAws_json1_1DeleteSshPublicKeyCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeUserCommandError(output, context); + return deserializeAws_json1_1DeleteSshPublicKeyCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1DescribeUserResponse(data, context); - const response: DescribeUserCommandOutput = { + await collectBody(output.body, context); + const response: DeleteSshPublicKeyCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeUserCommandError = async ( +const deserializeAws_json1_1DeleteSshPublicKeyCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1330,6 +1669,9 @@ const deserializeAws_json1_1DescribeUserCommandError = async ( case "ServiceUnavailableException": case "com.amazonaws.transfer#ServiceUnavailableException": throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.transfer#ThrottlingException": + throw await deserializeAws_json1_1ThrottlingExceptionResponse(parsedOutput, context); default: const parsedBody = parsedOutput.body; const $metadata = deserializeMetadata(output); @@ -1343,27 +1685,24 @@ const deserializeAws_json1_1DescribeUserCommandError = async ( } }; -export const deserializeAws_json1_1DescribeWorkflowCommand = async ( +export const deserializeAws_json1_1DeleteUserCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1DescribeWorkflowCommandError(output, context); + return deserializeAws_json1_1DeleteUserCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1DescribeWorkflowResponse(data, context); - const response: DescribeWorkflowCommandOutput = { + await collectBody(output.body, context); + const response: DeleteUserCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1DescribeWorkflowCommandError = async ( +const deserializeAws_json1_1DeleteUserCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1396,27 +1735,24 @@ const deserializeAws_json1_1DescribeWorkflowCommandError = async ( } }; -export const deserializeAws_json1_1ImportSshPublicKeyCommand = async ( +export const deserializeAws_json1_1DeleteWorkflowCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ImportSshPublicKeyCommandError(output, context); + return deserializeAws_json1_1DeleteWorkflowCommandError(output, context); } - const data: any = await parseBody(output.body, context); - let contents: any = {}; - contents = deserializeAws_json1_1ImportSshPublicKeyResponse(data, context); - const response: ImportSshPublicKeyCommandOutput = { + await collectBody(output.body, context); + const response: DeleteWorkflowCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ImportSshPublicKeyCommandError = async ( +const deserializeAws_json1_1DeleteWorkflowCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1424,24 +1760,21 @@ const deserializeAws_json1_1ImportSshPublicKeyCommandError = async ( let response: __BaseException; const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.transfer#AccessDeniedException": + throw await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context); case "InternalServiceError": case "com.amazonaws.transfer#InternalServiceError": throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); case "InvalidRequestException": case "com.amazonaws.transfer#InvalidRequestException": throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); - case "ResourceExistsException": - case "com.amazonaws.transfer#ResourceExistsException": - throw await deserializeAws_json1_1ResourceExistsExceptionResponse(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.transfer#ResourceNotFoundException": throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); case "ServiceUnavailableException": case "com.amazonaws.transfer#ServiceUnavailableException": throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); - case "ThrottlingException": - case "com.amazonaws.transfer#ThrottlingException": - throw await deserializeAws_json1_1ThrottlingExceptionResponse(parsedOutput, context); default: const parsedBody = parsedOutput.body; const $metadata = deserializeMetadata(output); @@ -1455,27 +1788,27 @@ const deserializeAws_json1_1ImportSshPublicKeyCommandError = async ( } }; -export const deserializeAws_json1_1ListAccessesCommand = async ( +export const deserializeAws_json1_1DescribeAccessCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListAccessesCommandError(output, context); + return deserializeAws_json1_1DescribeAccessCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListAccessesResponse(data, context); - const response: ListAccessesCommandOutput = { + contents = deserializeAws_json1_1DescribeAccessResponse(data, context); + const response: DescribeAccessCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListAccessesCommandError = async ( +const deserializeAws_json1_1DescribeAccessCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1486,9 +1819,6 @@ const deserializeAws_json1_1ListAccessesCommandError = async ( case "InternalServiceError": case "com.amazonaws.transfer#InternalServiceError": throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); - case "InvalidNextTokenException": - case "com.amazonaws.transfer#InvalidNextTokenException": - throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context); case "InvalidRequestException": case "com.amazonaws.transfer#InvalidRequestException": throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); @@ -1511,27 +1841,27 @@ const deserializeAws_json1_1ListAccessesCommandError = async ( } }; -export const deserializeAws_json1_1ListExecutionsCommand = async ( +export const deserializeAws_json1_1DescribeAgreementCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListExecutionsCommandError(output, context); + return deserializeAws_json1_1DescribeAgreementCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListExecutionsResponse(data, context); - const response: ListExecutionsCommandOutput = { + contents = deserializeAws_json1_1DescribeAgreementResponse(data, context); + const response: DescribeAgreementCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListExecutionsCommandError = async ( +const deserializeAws_json1_1DescribeAgreementCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1542,9 +1872,6 @@ const deserializeAws_json1_1ListExecutionsCommandError = async ( case "InternalServiceError": case "com.amazonaws.transfer#InternalServiceError": throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); - case "InvalidNextTokenException": - case "com.amazonaws.transfer#InvalidNextTokenException": - throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context); case "InvalidRequestException": case "com.amazonaws.transfer#InvalidRequestException": throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); @@ -1567,27 +1894,27 @@ const deserializeAws_json1_1ListExecutionsCommandError = async ( } }; -export const deserializeAws_json1_1ListSecurityPoliciesCommand = async ( +export const deserializeAws_json1_1DescribeCertificateCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListSecurityPoliciesCommandError(output, context); + return deserializeAws_json1_1DescribeCertificateCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListSecurityPoliciesResponse(data, context); - const response: ListSecurityPoliciesCommandOutput = { + contents = deserializeAws_json1_1DescribeCertificateResponse(data, context); + const response: DescribeCertificateCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListSecurityPoliciesCommandError = async ( +const deserializeAws_json1_1DescribeCertificateCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1598,12 +1925,12 @@ const deserializeAws_json1_1ListSecurityPoliciesCommandError = async ( case "InternalServiceError": case "com.amazonaws.transfer#InternalServiceError": throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); - case "InvalidNextTokenException": - case "com.amazonaws.transfer#InvalidNextTokenException": - throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context); case "InvalidRequestException": case "com.amazonaws.transfer#InvalidRequestException": throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); case "ServiceUnavailableException": case "com.amazonaws.transfer#ServiceUnavailableException": throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); @@ -1620,27 +1947,27 @@ const deserializeAws_json1_1ListSecurityPoliciesCommandError = async ( } }; -export const deserializeAws_json1_1ListServersCommand = async ( +export const deserializeAws_json1_1DescribeConnectorCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListServersCommandError(output, context); + return deserializeAws_json1_1DescribeConnectorCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListServersResponse(data, context); - const response: ListServersCommandOutput = { + contents = deserializeAws_json1_1DescribeConnectorResponse(data, context); + const response: DescribeConnectorCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListServersCommandError = async ( +const deserializeAws_json1_1DescribeConnectorCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1651,12 +1978,12 @@ const deserializeAws_json1_1ListServersCommandError = async ( case "InternalServiceError": case "com.amazonaws.transfer#InternalServiceError": throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); - case "InvalidNextTokenException": - case "com.amazonaws.transfer#InvalidNextTokenException": - throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context); case "InvalidRequestException": case "com.amazonaws.transfer#InvalidRequestException": throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); case "ServiceUnavailableException": case "com.amazonaws.transfer#ServiceUnavailableException": throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); @@ -1673,27 +2000,27 @@ const deserializeAws_json1_1ListServersCommandError = async ( } }; -export const deserializeAws_json1_1ListTagsForResourceCommand = async ( +export const deserializeAws_json1_1DescribeExecutionCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListTagsForResourceCommandError(output, context); + return deserializeAws_json1_1DescribeExecutionCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListTagsForResourceResponse(data, context); - const response: ListTagsForResourceCommandOutput = { + contents = deserializeAws_json1_1DescribeExecutionResponse(data, context); + const response: DescribeExecutionCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListTagsForResourceCommandError = async ( +const deserializeAws_json1_1DescribeExecutionCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1704,13 +2031,941 @@ const deserializeAws_json1_1ListTagsForResourceCommandError = async ( case "InternalServiceError": case "com.amazonaws.transfer#InternalServiceError": throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); - case "InvalidNextTokenException": - case "com.amazonaws.transfer#InvalidNextTokenException": - throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context); case "InvalidRequestException": case "com.amazonaws.transfer#InvalidRequestException": throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); - case "ServiceUnavailableException": + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1DescribeProfileCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DescribeProfileCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DescribeProfileResponse(data, context); + const response: DescribeProfileCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DescribeProfileCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1DescribeSecurityPolicyCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DescribeSecurityPolicyCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DescribeSecurityPolicyResponse(data, context); + const response: DescribeSecurityPolicyCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DescribeSecurityPolicyCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1DescribeServerCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DescribeServerCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DescribeServerResponse(data, context); + const response: DescribeServerCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DescribeServerCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1DescribeUserCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DescribeUserCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DescribeUserResponse(data, context); + const response: DescribeUserCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DescribeUserCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1DescribeWorkflowCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1DescribeWorkflowCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1DescribeWorkflowResponse(data, context); + const response: DescribeWorkflowCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1DescribeWorkflowCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1ImportCertificateCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ImportCertificateCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ImportCertificateResponse(data, context); + const response: ImportCertificateCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ImportCertificateCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1ImportSshPublicKeyCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ImportSshPublicKeyCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ImportSshPublicKeyResponse(data, context); + const response: ImportSshPublicKeyCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ImportSshPublicKeyCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceExistsException": + case "com.amazonaws.transfer#ResourceExistsException": + throw await deserializeAws_json1_1ResourceExistsExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.transfer#ThrottlingException": + throw await deserializeAws_json1_1ThrottlingExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1ListAccessesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListAccessesCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListAccessesResponse(data, context); + const response: ListAccessesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListAccessesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidNextTokenException": + case "com.amazonaws.transfer#InvalidNextTokenException": + throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1ListAgreementsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListAgreementsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListAgreementsResponse(data, context); + const response: ListAgreementsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListAgreementsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidNextTokenException": + case "com.amazonaws.transfer#InvalidNextTokenException": + throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1ListCertificatesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListCertificatesCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListCertificatesResponse(data, context); + const response: ListCertificatesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListCertificatesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidNextTokenException": + case "com.amazonaws.transfer#InvalidNextTokenException": + throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1ListConnectorsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListConnectorsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListConnectorsResponse(data, context); + const response: ListConnectorsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListConnectorsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidNextTokenException": + case "com.amazonaws.transfer#InvalidNextTokenException": + throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1ListExecutionsCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListExecutionsCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListExecutionsResponse(data, context); + const response: ListExecutionsCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListExecutionsCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidNextTokenException": + case "com.amazonaws.transfer#InvalidNextTokenException": + throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1ListProfilesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListProfilesCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListProfilesResponse(data, context); + const response: ListProfilesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListProfilesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidNextTokenException": + case "com.amazonaws.transfer#InvalidNextTokenException": + throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1ListSecurityPoliciesCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListSecurityPoliciesCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListSecurityPoliciesResponse(data, context); + const response: ListSecurityPoliciesCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListSecurityPoliciesCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidNextTokenException": + case "com.amazonaws.transfer#InvalidNextTokenException": + throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1ListServersCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListServersCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListServersResponse(data, context); + const response: ListServersCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListServersCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidNextTokenException": + case "com.amazonaws.transfer#InvalidNextTokenException": + throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1ListTagsForResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListTagsForResourceCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListTagsForResourceResponse(data, context); + const response: ListTagsForResourceCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListTagsForResourceCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidNextTokenException": + case "com.amazonaws.transfer#InvalidNextTokenException": + throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1ListUsersCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1ListUsersCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1ListUsersResponse(data, context); + const response: ListUsersCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1ListUsersCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidNextTokenException": + case "com.amazonaws.transfer#InvalidNextTokenException": + throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": case "com.amazonaws.transfer#ServiceUnavailableException": throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); default: @@ -1726,27 +2981,27 @@ const deserializeAws_json1_1ListTagsForResourceCommandError = async ( } }; -export const deserializeAws_json1_1ListUsersCommand = async ( +export const deserializeAws_json1_1ListWorkflowsCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListUsersCommandError(output, context); + return deserializeAws_json1_1ListWorkflowsCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListUsersResponse(data, context); - const response: ListUsersCommandOutput = { + contents = deserializeAws_json1_1ListWorkflowsResponse(data, context); + const response: ListWorkflowsCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListUsersCommandError = async ( +const deserializeAws_json1_1ListWorkflowsCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1761,6 +3016,59 @@ const deserializeAws_json1_1ListUsersCommandError = async ( case "com.amazonaws.transfer#InvalidNextTokenException": throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context); case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1SendWorkflowStepStateCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1SendWorkflowStepStateCommandError(output, context); + } + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1SendWorkflowStepStateResponse(data, context); + const response: SendWorkflowStepStateCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1SendWorkflowStepStateCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "AccessDeniedException": + case "com.amazonaws.transfer#AccessDeniedException": + throw await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context); + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidRequestException": case "com.amazonaws.transfer#InvalidRequestException": throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); case "ResourceNotFoundException": @@ -1769,6 +3077,9 @@ const deserializeAws_json1_1ListUsersCommandError = async ( case "ServiceUnavailableException": case "com.amazonaws.transfer#ServiceUnavailableException": throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.transfer#ThrottlingException": + throw await deserializeAws_json1_1ThrottlingExceptionResponse(parsedOutput, context); default: const parsedBody = parsedOutput.body; const $metadata = deserializeMetadata(output); @@ -1782,27 +3093,186 @@ const deserializeAws_json1_1ListUsersCommandError = async ( } }; -export const deserializeAws_json1_1ListWorkflowsCommand = async ( +export const deserializeAws_json1_1StartFileTransferCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1ListWorkflowsCommandError(output, context); + return deserializeAws_json1_1StartFileTransferCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1ListWorkflowsResponse(data, context); - const response: ListWorkflowsCommandOutput = { + contents = deserializeAws_json1_1StartFileTransferResponse(data, context); + const response: StartFileTransferCommandOutput = { + $metadata: deserializeMetadata(output), + ...contents, + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1StartFileTransferCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.transfer#ThrottlingException": + throw await deserializeAws_json1_1ThrottlingExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1StartServerCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1StartServerCommandError(output, context); + } + await collectBody(output.body, context); + const response: StartServerCommandOutput = { + $metadata: deserializeMetadata(output), + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1StartServerCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.transfer#ThrottlingException": + throw await deserializeAws_json1_1ThrottlingExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1StopServerCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1StopServerCommandError(output, context); + } + await collectBody(output.body, context); + const response: StopServerCommandOutput = { + $metadata: deserializeMetadata(output), + }; + return Promise.resolve(response); +}; + +const deserializeAws_json1_1StopServerCommandError = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + const parsedOutput: any = { + ...output, + body: await parseBody(output.body, context), + }; + let response: __BaseException; + const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); + switch (errorCode) { + case "InternalServiceError": + case "com.amazonaws.transfer#InternalServiceError": + throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); + case "InvalidRequestException": + case "com.amazonaws.transfer#InvalidRequestException": + throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); + case "ServiceUnavailableException": + case "com.amazonaws.transfer#ServiceUnavailableException": + throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); + case "ThrottlingException": + case "com.amazonaws.transfer#ThrottlingException": + throw await deserializeAws_json1_1ThrottlingExceptionResponse(parsedOutput, context); + default: + const parsedBody = parsedOutput.body; + const $metadata = deserializeMetadata(output); + const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + "" : undefined; + response = new __BaseException({ + name: parsedBody.code || parsedBody.Code || errorCode || statusCode || "UnknowError", + $fault: "client", + $metadata, + }); + throw __decorateServiceException(response, parsedBody); + } +}; + +export const deserializeAws_json1_1TagResourceCommand = async ( + output: __HttpResponse, + context: __SerdeContext +): Promise => { + if (output.statusCode >= 300) { + return deserializeAws_json1_1TagResourceCommandError(output, context); + } + await collectBody(output.body, context); + const response: TagResourceCommandOutput = { $metadata: deserializeMetadata(output), - ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1ListWorkflowsCommandError = async ( +const deserializeAws_json1_1TagResourceCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1813,12 +3283,12 @@ const deserializeAws_json1_1ListWorkflowsCommandError = async ( case "InternalServiceError": case "com.amazonaws.transfer#InternalServiceError": throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); - case "InvalidNextTokenException": - case "com.amazonaws.transfer#InvalidNextTokenException": - throw await deserializeAws_json1_1InvalidNextTokenExceptionResponse(parsedOutput, context); case "InvalidRequestException": case "com.amazonaws.transfer#InvalidRequestException": throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceNotFoundException": + case "com.amazonaws.transfer#ResourceNotFoundException": + throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); case "ServiceUnavailableException": case "com.amazonaws.transfer#ServiceUnavailableException": throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); @@ -1835,27 +3305,27 @@ const deserializeAws_json1_1ListWorkflowsCommandError = async ( } }; -export const deserializeAws_json1_1SendWorkflowStepStateCommand = async ( +export const deserializeAws_json1_1TestIdentityProviderCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1SendWorkflowStepStateCommandError(output, context); + return deserializeAws_json1_1TestIdentityProviderCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1SendWorkflowStepStateResponse(data, context); - const response: SendWorkflowStepStateCommandOutput = { + contents = deserializeAws_json1_1TestIdentityProviderResponse(data, context); + const response: TestIdentityProviderCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1SendWorkflowStepStateCommandError = async ( +const deserializeAws_json1_1TestIdentityProviderCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1863,9 +3333,6 @@ const deserializeAws_json1_1SendWorkflowStepStateCommandError = async ( let response: __BaseException; const errorCode = loadRestJsonErrorCode(output, parsedOutput.body); switch (errorCode) { - case "AccessDeniedException": - case "com.amazonaws.transfer#AccessDeniedException": - throw await deserializeAws_json1_1AccessDeniedExceptionResponse(parsedOutput, context); case "InternalServiceError": case "com.amazonaws.transfer#InternalServiceError": throw await deserializeAws_json1_1InternalServiceErrorResponse(parsedOutput, context); @@ -1878,9 +3345,6 @@ const deserializeAws_json1_1SendWorkflowStepStateCommandError = async ( case "ServiceUnavailableException": case "com.amazonaws.transfer#ServiceUnavailableException": throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); - case "ThrottlingException": - case "com.amazonaws.transfer#ThrottlingException": - throw await deserializeAws_json1_1ThrottlingExceptionResponse(parsedOutput, context); default: const parsedBody = parsedOutput.body; const $metadata = deserializeMetadata(output); @@ -1894,24 +3358,24 @@ const deserializeAws_json1_1SendWorkflowStepStateCommandError = async ( } }; -export const deserializeAws_json1_1StartServerCommand = async ( +export const deserializeAws_json1_1UntagResourceCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1StartServerCommandError(output, context); + return deserializeAws_json1_1UntagResourceCommandError(output, context); } await collectBody(output.body, context); - const response: StartServerCommandOutput = { + const response: UntagResourceCommandOutput = { $metadata: deserializeMetadata(output), }; return Promise.resolve(response); }; -const deserializeAws_json1_1StartServerCommandError = async ( +const deserializeAws_json1_1UntagResourceCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1931,9 +3395,6 @@ const deserializeAws_json1_1StartServerCommandError = async ( case "ServiceUnavailableException": case "com.amazonaws.transfer#ServiceUnavailableException": throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); - case "ThrottlingException": - case "com.amazonaws.transfer#ThrottlingException": - throw await deserializeAws_json1_1ThrottlingExceptionResponse(parsedOutput, context); default: const parsedBody = parsedOutput.body; const $metadata = deserializeMetadata(output); @@ -1947,24 +3408,27 @@ const deserializeAws_json1_1StartServerCommandError = async ( } }; -export const deserializeAws_json1_1StopServerCommand = async ( +export const deserializeAws_json1_1UpdateAccessCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1StopServerCommandError(output, context); + return deserializeAws_json1_1UpdateAccessCommandError(output, context); } - await collectBody(output.body, context); - const response: StopServerCommandOutput = { + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1UpdateAccessResponse(data, context); + const response: UpdateAccessCommandOutput = { $metadata: deserializeMetadata(output), + ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1StopServerCommandError = async ( +const deserializeAws_json1_1UpdateAccessCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -1978,15 +3442,15 @@ const deserializeAws_json1_1StopServerCommandError = async ( case "InvalidRequestException": case "com.amazonaws.transfer#InvalidRequestException": throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceExistsException": + case "com.amazonaws.transfer#ResourceExistsException": + throw await deserializeAws_json1_1ResourceExistsExceptionResponse(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.transfer#ResourceNotFoundException": throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); case "ServiceUnavailableException": case "com.amazonaws.transfer#ServiceUnavailableException": throw await deserializeAws_json1_1ServiceUnavailableExceptionResponse(parsedOutput, context); - case "ThrottlingException": - case "com.amazonaws.transfer#ThrottlingException": - throw await deserializeAws_json1_1ThrottlingExceptionResponse(parsedOutput, context); default: const parsedBody = parsedOutput.body; const $metadata = deserializeMetadata(output); @@ -2000,24 +3464,27 @@ const deserializeAws_json1_1StopServerCommandError = async ( } }; -export const deserializeAws_json1_1TagResourceCommand = async ( +export const deserializeAws_json1_1UpdateAgreementCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1TagResourceCommandError(output, context); + return deserializeAws_json1_1UpdateAgreementCommandError(output, context); } - await collectBody(output.body, context); - const response: TagResourceCommandOutput = { + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1UpdateAgreementResponse(data, context); + const response: UpdateAgreementCommandOutput = { $metadata: deserializeMetadata(output), + ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1TagResourceCommandError = async ( +const deserializeAws_json1_1UpdateAgreementCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -2031,6 +3498,9 @@ const deserializeAws_json1_1TagResourceCommandError = async ( case "InvalidRequestException": case "com.amazonaws.transfer#InvalidRequestException": throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceExistsException": + case "com.amazonaws.transfer#ResourceExistsException": + throw await deserializeAws_json1_1ResourceExistsExceptionResponse(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.transfer#ResourceNotFoundException": throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); @@ -2050,27 +3520,27 @@ const deserializeAws_json1_1TagResourceCommandError = async ( } }; -export const deserializeAws_json1_1TestIdentityProviderCommand = async ( +export const deserializeAws_json1_1UpdateCertificateCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1TestIdentityProviderCommandError(output, context); + return deserializeAws_json1_1UpdateCertificateCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1TestIdentityProviderResponse(data, context); - const response: TestIdentityProviderCommandOutput = { + contents = deserializeAws_json1_1UpdateCertificateResponse(data, context); + const response: UpdateCertificateCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1TestIdentityProviderCommandError = async ( +const deserializeAws_json1_1UpdateCertificateCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -2103,24 +3573,27 @@ const deserializeAws_json1_1TestIdentityProviderCommandError = async ( } }; -export const deserializeAws_json1_1UntagResourceCommand = async ( +export const deserializeAws_json1_1UpdateConnectorCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1UntagResourceCommandError(output, context); + return deserializeAws_json1_1UpdateConnectorCommandError(output, context); } - await collectBody(output.body, context); - const response: UntagResourceCommandOutput = { + const data: any = await parseBody(output.body, context); + let contents: any = {}; + contents = deserializeAws_json1_1UpdateConnectorResponse(data, context); + const response: UpdateConnectorCommandOutput = { $metadata: deserializeMetadata(output), + ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1UntagResourceCommandError = async ( +const deserializeAws_json1_1UpdateConnectorCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -2134,6 +3607,9 @@ const deserializeAws_json1_1UntagResourceCommandError = async ( case "InvalidRequestException": case "com.amazonaws.transfer#InvalidRequestException": throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); + case "ResourceExistsException": + case "com.amazonaws.transfer#ResourceExistsException": + throw await deserializeAws_json1_1ResourceExistsExceptionResponse(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.transfer#ResourceNotFoundException": throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); @@ -2153,27 +3629,27 @@ const deserializeAws_json1_1UntagResourceCommandError = async ( } }; -export const deserializeAws_json1_1UpdateAccessCommand = async ( +export const deserializeAws_json1_1UpdateProfileCommand = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { if (output.statusCode >= 300) { - return deserializeAws_json1_1UpdateAccessCommandError(output, context); + return deserializeAws_json1_1UpdateProfileCommandError(output, context); } const data: any = await parseBody(output.body, context); let contents: any = {}; - contents = deserializeAws_json1_1UpdateAccessResponse(data, context); - const response: UpdateAccessCommandOutput = { + contents = deserializeAws_json1_1UpdateProfileResponse(data, context); + const response: UpdateProfileCommandOutput = { $metadata: deserializeMetadata(output), ...contents, }; return Promise.resolve(response); }; -const deserializeAws_json1_1UpdateAccessCommandError = async ( +const deserializeAws_json1_1UpdateProfileCommandError = async ( output: __HttpResponse, context: __SerdeContext -): Promise => { +): Promise => { const parsedOutput: any = { ...output, body: await parseBody(output.body, context), @@ -2187,9 +3663,6 @@ const deserializeAws_json1_1UpdateAccessCommandError = async ( case "InvalidRequestException": case "com.amazonaws.transfer#InvalidRequestException": throw await deserializeAws_json1_1InvalidRequestExceptionResponse(parsedOutput, context); - case "ResourceExistsException": - case "com.amazonaws.transfer#ResourceExistsException": - throw await deserializeAws_json1_1ResourceExistsExceptionResponse(parsedOutput, context); case "ResourceNotFoundException": case "com.amazonaws.transfer#ResourceNotFoundException": throw await deserializeAws_json1_1ResourceNotFoundExceptionResponse(parsedOutput, context); @@ -2458,6 +3931,41 @@ const serializeAws_json1_1AddressAllocationIds = (input: string[], context: __Se }); }; +const serializeAws_json1_1As2ConnectorConfig = (input: As2ConnectorConfig, context: __SerdeContext): any => { + return { + ...(input.Compression != null && { Compression: input.Compression }), + ...(input.EncryptionAlgorithm != null && { EncryptionAlgorithm: input.EncryptionAlgorithm }), + ...(input.LocalProfileId != null && { LocalProfileId: input.LocalProfileId }), + ...(input.MdnResponse != null && { MdnResponse: input.MdnResponse }), + ...(input.MdnSigningAlgorithm != null && { MdnSigningAlgorithm: input.MdnSigningAlgorithm }), + ...(input.MessageSubject != null && { MessageSubject: input.MessageSubject }), + ...(input.PartnerProfileId != null && { PartnerProfileId: input.PartnerProfileId }), + ...(input.SigningAlgorithm != null && { SigningAlgorithm: input.SigningAlgorithm }), + }; +}; + +const serializeAws_json1_1As2Transports = (input: (As2Transport | string)[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return entry; + }); +}; + +const serializeAws_json1_1CertificateIds = (input: string[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return entry; + }); +}; + const serializeAws_json1_1CopyStepDetails = (input: CopyStepDetails, context: __SerdeContext): any => { return { ...(input.DestinationFileLocation != null && { @@ -2484,6 +3992,40 @@ const serializeAws_json1_1CreateAccessRequest = (input: CreateAccessRequest, con }; }; +const serializeAws_json1_1CreateAgreementRequest = (input: CreateAgreementRequest, context: __SerdeContext): any => { + return { + ...(input.AccessRole != null && { AccessRole: input.AccessRole }), + ...(input.BaseDirectory != null && { BaseDirectory: input.BaseDirectory }), + ...(input.Description != null && { Description: input.Description }), + ...(input.LocalProfileId != null && { LocalProfileId: input.LocalProfileId }), + ...(input.PartnerProfileId != null && { PartnerProfileId: input.PartnerProfileId }), + ...(input.ServerId != null && { ServerId: input.ServerId }), + ...(input.Status != null && { Status: input.Status }), + ...(input.Tags != null && { Tags: serializeAws_json1_1Tags(input.Tags, context) }), + }; +}; + +const serializeAws_json1_1CreateConnectorRequest = (input: CreateConnectorRequest, context: __SerdeContext): any => { + return { + ...(input.AccessRole != null && { AccessRole: input.AccessRole }), + ...(input.As2Config != null && { As2Config: serializeAws_json1_1As2ConnectorConfig(input.As2Config, context) }), + ...(input.LoggingRole != null && { LoggingRole: input.LoggingRole }), + ...(input.Tags != null && { Tags: serializeAws_json1_1Tags(input.Tags, context) }), + ...(input.Url != null && { Url: input.Url }), + }; +}; + +const serializeAws_json1_1CreateProfileRequest = (input: CreateProfileRequest, context: __SerdeContext): any => { + return { + ...(input.As2Id != null && { As2Id: input.As2Id }), + ...(input.CertificateIds != null && { + CertificateIds: serializeAws_json1_1CertificateIds(input.CertificateIds, context), + }), + ...(input.ProfileType != null && { ProfileType: input.ProfileType }), + ...(input.Tags != null && { Tags: serializeAws_json1_1Tags(input.Tags, context) }), + }; +}; + const serializeAws_json1_1CreateServerRequest = (input: CreateServerRequest, context: __SerdeContext): any => { return { ...(input.Certificate != null && { Certificate: input.Certificate }), @@ -2560,6 +4102,34 @@ const serializeAws_json1_1DeleteAccessRequest = (input: DeleteAccessRequest, con }; }; +const serializeAws_json1_1DeleteAgreementRequest = (input: DeleteAgreementRequest, context: __SerdeContext): any => { + return { + ...(input.AgreementId != null && { AgreementId: input.AgreementId }), + ...(input.ServerId != null && { ServerId: input.ServerId }), + }; +}; + +const serializeAws_json1_1DeleteCertificateRequest = ( + input: DeleteCertificateRequest, + context: __SerdeContext +): any => { + return { + ...(input.CertificateId != null && { CertificateId: input.CertificateId }), + }; +}; + +const serializeAws_json1_1DeleteConnectorRequest = (input: DeleteConnectorRequest, context: __SerdeContext): any => { + return { + ...(input.ConnectorId != null && { ConnectorId: input.ConnectorId }), + }; +}; + +const serializeAws_json1_1DeleteProfileRequest = (input: DeleteProfileRequest, context: __SerdeContext): any => { + return { + ...(input.ProfileId != null && { ProfileId: input.ProfileId }), + }; +}; + const serializeAws_json1_1DeleteServerRequest = (input: DeleteServerRequest, context: __SerdeContext): any => { return { ...(input.ServerId != null && { ServerId: input.ServerId }), @@ -2604,6 +4174,34 @@ const serializeAws_json1_1DescribeAccessRequest = (input: DescribeAccessRequest, }; }; +const serializeAws_json1_1DescribeAgreementRequest = ( + input: DescribeAgreementRequest, + context: __SerdeContext +): any => { + return { + ...(input.AgreementId != null && { AgreementId: input.AgreementId }), + ...(input.ServerId != null && { ServerId: input.ServerId }), + }; +}; + +const serializeAws_json1_1DescribeCertificateRequest = ( + input: DescribeCertificateRequest, + context: __SerdeContext +): any => { + return { + ...(input.CertificateId != null && { CertificateId: input.CertificateId }), + }; +}; + +const serializeAws_json1_1DescribeConnectorRequest = ( + input: DescribeConnectorRequest, + context: __SerdeContext +): any => { + return { + ...(input.ConnectorId != null && { ConnectorId: input.ConnectorId }), + }; +}; + const serializeAws_json1_1DescribeExecutionRequest = ( input: DescribeExecutionRequest, context: __SerdeContext @@ -2614,6 +4212,12 @@ const serializeAws_json1_1DescribeExecutionRequest = ( }; }; +const serializeAws_json1_1DescribeProfileRequest = (input: DescribeProfileRequest, context: __SerdeContext): any => { + return { + ...(input.ProfileId != null && { ProfileId: input.ProfileId }), + }; +}; + const serializeAws_json1_1DescribeSecurityPolicyRequest = ( input: DescribeSecurityPolicyRequest, context: __SerdeContext @@ -2663,6 +4267,17 @@ const serializeAws_json1_1EndpointDetails = (input: EndpointDetails, context: __ }; }; +const serializeAws_json1_1FilePaths = (input: string[], context: __SerdeContext): any => { + return input + .filter((e: any) => e != null) + .map((entry) => { + if (entry === null) { + return null as any; + } + return entry; + }); +}; + const serializeAws_json1_1HomeDirectoryMapEntry = (input: HomeDirectoryMapEntry, context: __SerdeContext): any => { return { ...(input.Entry != null && { Entry: input.Entry }), @@ -2690,6 +4305,22 @@ const serializeAws_json1_1IdentityProviderDetails = (input: IdentityProviderDeta }; }; +const serializeAws_json1_1ImportCertificateRequest = ( + input: ImportCertificateRequest, + context: __SerdeContext +): any => { + return { + ...(input.ActiveDate != null && { ActiveDate: Math.round(input.ActiveDate.getTime() / 1000) }), + ...(input.Certificate != null && { Certificate: input.Certificate }), + ...(input.CertificateChain != null && { CertificateChain: input.CertificateChain }), + ...(input.Description != null && { Description: input.Description }), + ...(input.InactiveDate != null && { InactiveDate: Math.round(input.InactiveDate.getTime() / 1000) }), + ...(input.PrivateKey != null && { PrivateKey: input.PrivateKey }), + ...(input.Tags != null && { Tags: serializeAws_json1_1Tags(input.Tags, context) }), + ...(input.Usage != null && { Usage: input.Usage }), + }; +}; + const serializeAws_json1_1ImportSshPublicKeyRequest = ( input: ImportSshPublicKeyRequest, context: __SerdeContext @@ -2720,6 +4351,28 @@ const serializeAws_json1_1ListAccessesRequest = (input: ListAccessesRequest, con }; }; +const serializeAws_json1_1ListAgreementsRequest = (input: ListAgreementsRequest, context: __SerdeContext): any => { + return { + ...(input.MaxResults != null && { MaxResults: input.MaxResults }), + ...(input.NextToken != null && { NextToken: input.NextToken }), + ...(input.ServerId != null && { ServerId: input.ServerId }), + }; +}; + +const serializeAws_json1_1ListCertificatesRequest = (input: ListCertificatesRequest, context: __SerdeContext): any => { + return { + ...(input.MaxResults != null && { MaxResults: input.MaxResults }), + ...(input.NextToken != null && { NextToken: input.NextToken }), + }; +}; + +const serializeAws_json1_1ListConnectorsRequest = (input: ListConnectorsRequest, context: __SerdeContext): any => { + return { + ...(input.MaxResults != null && { MaxResults: input.MaxResults }), + ...(input.NextToken != null && { NextToken: input.NextToken }), + }; +}; + const serializeAws_json1_1ListExecutionsRequest = (input: ListExecutionsRequest, context: __SerdeContext): any => { return { ...(input.MaxResults != null && { MaxResults: input.MaxResults }), @@ -2728,6 +4381,14 @@ const serializeAws_json1_1ListExecutionsRequest = (input: ListExecutionsRequest, }; }; +const serializeAws_json1_1ListProfilesRequest = (input: ListProfilesRequest, context: __SerdeContext): any => { + return { + ...(input.MaxResults != null && { MaxResults: input.MaxResults }), + ...(input.NextToken != null && { NextToken: input.NextToken }), + ...(input.ProfileType != null && { ProfileType: input.ProfileType }), + }; +}; + const serializeAws_json1_1ListSecurityPoliciesRequest = ( input: ListSecurityPoliciesRequest, context: __SerdeContext @@ -2794,6 +4455,9 @@ const serializeAws_json1_1PosixProfile = (input: PosixProfile, context: __SerdeC const serializeAws_json1_1ProtocolDetails = (input: ProtocolDetails, context: __SerdeContext): any => { return { + ...(input.As2Transports != null && { + As2Transports: serializeAws_json1_1As2Transports(input.As2Transports, context), + }), ...(input.PassiveIp != null && { PassiveIp: input.PassiveIp }), ...(input.SetStatOption != null && { SetStatOption: input.SetStatOption }), ...(input.TlsSessionResumptionMode != null && { TlsSessionResumptionMode: input.TlsSessionResumptionMode }), @@ -2863,10 +4527,20 @@ const serializeAws_json1_1SendWorkflowStepStateRequest = ( context: __SerdeContext ): any => { return { - ...(input.ExecutionId != null && { ExecutionId: input.ExecutionId }), - ...(input.Status != null && { Status: input.Status }), - ...(input.Token != null && { Token: input.Token }), - ...(input.WorkflowId != null && { WorkflowId: input.WorkflowId }), + ...(input.ExecutionId != null && { ExecutionId: input.ExecutionId }), + ...(input.Status != null && { Status: input.Status }), + ...(input.Token != null && { Token: input.Token }), + ...(input.WorkflowId != null && { WorkflowId: input.WorkflowId }), + }; +}; + +const serializeAws_json1_1StartFileTransferRequest = ( + input: StartFileTransferRequest, + context: __SerdeContext +): any => { + return { + ...(input.ConnectorId != null && { ConnectorId: input.ConnectorId }), + ...(input.SendFilePaths != null && { SendFilePaths: serializeAws_json1_1FilePaths(input.SendFilePaths, context) }), }; }; @@ -2972,6 +4646,50 @@ const serializeAws_json1_1UpdateAccessRequest = (input: UpdateAccessRequest, con }; }; +const serializeAws_json1_1UpdateAgreementRequest = (input: UpdateAgreementRequest, context: __SerdeContext): any => { + return { + ...(input.AccessRole != null && { AccessRole: input.AccessRole }), + ...(input.AgreementId != null && { AgreementId: input.AgreementId }), + ...(input.BaseDirectory != null && { BaseDirectory: input.BaseDirectory }), + ...(input.Description != null && { Description: input.Description }), + ...(input.LocalProfileId != null && { LocalProfileId: input.LocalProfileId }), + ...(input.PartnerProfileId != null && { PartnerProfileId: input.PartnerProfileId }), + ...(input.ServerId != null && { ServerId: input.ServerId }), + ...(input.Status != null && { Status: input.Status }), + }; +}; + +const serializeAws_json1_1UpdateCertificateRequest = ( + input: UpdateCertificateRequest, + context: __SerdeContext +): any => { + return { + ...(input.ActiveDate != null && { ActiveDate: Math.round(input.ActiveDate.getTime() / 1000) }), + ...(input.CertificateId != null && { CertificateId: input.CertificateId }), + ...(input.Description != null && { Description: input.Description }), + ...(input.InactiveDate != null && { InactiveDate: Math.round(input.InactiveDate.getTime() / 1000) }), + }; +}; + +const serializeAws_json1_1UpdateConnectorRequest = (input: UpdateConnectorRequest, context: __SerdeContext): any => { + return { + ...(input.AccessRole != null && { AccessRole: input.AccessRole }), + ...(input.As2Config != null && { As2Config: serializeAws_json1_1As2ConnectorConfig(input.As2Config, context) }), + ...(input.ConnectorId != null && { ConnectorId: input.ConnectorId }), + ...(input.LoggingRole != null && { LoggingRole: input.LoggingRole }), + ...(input.Url != null && { Url: input.Url }), + }; +}; + +const serializeAws_json1_1UpdateProfileRequest = (input: UpdateProfileRequest, context: __SerdeContext): any => { + return { + ...(input.CertificateIds != null && { + CertificateIds: serializeAws_json1_1CertificateIds(input.CertificateIds, context), + }), + ...(input.ProfileId != null && { ProfileId: input.ProfileId }), + }; +}; + const serializeAws_json1_1UpdateServerRequest = (input: UpdateServerRequest, context: __SerdeContext): any => { return { ...(input.Certificate != null && { Certificate: input.Certificate }), @@ -3077,6 +4795,43 @@ const deserializeAws_json1_1AddressAllocationIds = (output: any, context: __Serd return retVal; }; +const deserializeAws_json1_1As2ConnectorConfig = (output: any, context: __SerdeContext): As2ConnectorConfig => { + return { + Compression: __expectString(output.Compression), + EncryptionAlgorithm: __expectString(output.EncryptionAlgorithm), + LocalProfileId: __expectString(output.LocalProfileId), + MdnResponse: __expectString(output.MdnResponse), + MdnSigningAlgorithm: __expectString(output.MdnSigningAlgorithm), + MessageSubject: __expectString(output.MessageSubject), + PartnerProfileId: __expectString(output.PartnerProfileId), + SigningAlgorithm: __expectString(output.SigningAlgorithm), + } as any; +}; + +const deserializeAws_json1_1As2Transports = (output: any, context: __SerdeContext): (As2Transport | string)[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return __expectString(entry) as any; + }); + return retVal; +}; + +const deserializeAws_json1_1CertificateIds = (output: any, context: __SerdeContext): string[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return __expectString(entry) as any; + }); + return retVal; +}; + const deserializeAws_json1_1ConflictException = (output: any, context: __SerdeContext): ConflictException => { return { Message: __expectString(output.Message), @@ -3102,6 +4857,30 @@ const deserializeAws_json1_1CreateAccessResponse = (output: any, context: __Serd } as any; }; +const deserializeAws_json1_1CreateAgreementResponse = ( + output: any, + context: __SerdeContext +): CreateAgreementResponse => { + return { + AgreementId: __expectString(output.AgreementId), + } as any; +}; + +const deserializeAws_json1_1CreateConnectorResponse = ( + output: any, + context: __SerdeContext +): CreateConnectorResponse => { + return { + ConnectorId: __expectString(output.ConnectorId), + } as any; +}; + +const deserializeAws_json1_1CreateProfileResponse = (output: any, context: __SerdeContext): CreateProfileResponse => { + return { + ProfileId: __expectString(output.ProfileId), + } as any; +}; + const deserializeAws_json1_1CreateServerResponse = (output: any, context: __SerdeContext): CreateServerResponse => { return { ServerId: __expectString(output.ServerId), @@ -3144,6 +4923,36 @@ const deserializeAws_json1_1DescribeAccessResponse = (output: any, context: __Se } as any; }; +const deserializeAws_json1_1DescribeAgreementResponse = ( + output: any, + context: __SerdeContext +): DescribeAgreementResponse => { + return { + Agreement: + output.Agreement != null ? deserializeAws_json1_1DescribedAgreement(output.Agreement, context) : undefined, + } as any; +}; + +const deserializeAws_json1_1DescribeCertificateResponse = ( + output: any, + context: __SerdeContext +): DescribeCertificateResponse => { + return { + Certificate: + output.Certificate != null ? deserializeAws_json1_1DescribedCertificate(output.Certificate, context) : undefined, + } as any; +}; + +const deserializeAws_json1_1DescribeConnectorResponse = ( + output: any, + context: __SerdeContext +): DescribeConnectorResponse => { + return { + Connector: + output.Connector != null ? deserializeAws_json1_1DescribedConnector(output.Connector, context) : undefined, + } as any; +}; + const deserializeAws_json1_1DescribedAccess = (output: any, context: __SerdeContext): DescribedAccess => { return { ExternalId: __expectString(output.ExternalId), @@ -3160,6 +4969,63 @@ const deserializeAws_json1_1DescribedAccess = (output: any, context: __SerdeCont } as any; }; +const deserializeAws_json1_1DescribedAgreement = (output: any, context: __SerdeContext): DescribedAgreement => { + return { + AccessRole: __expectString(output.AccessRole), + AgreementId: __expectString(output.AgreementId), + Arn: __expectString(output.Arn), + BaseDirectory: __expectString(output.BaseDirectory), + Description: __expectString(output.Description), + LocalProfileId: __expectString(output.LocalProfileId), + PartnerProfileId: __expectString(output.PartnerProfileId), + ServerId: __expectString(output.ServerId), + Status: __expectString(output.Status), + Tags: output.Tags != null ? deserializeAws_json1_1Tags(output.Tags, context) : undefined, + } as any; +}; + +const deserializeAws_json1_1DescribedCertificate = (output: any, context: __SerdeContext): DescribedCertificate => { + return { + ActiveDate: + output.ActiveDate != null ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.ActiveDate))) : undefined, + Arn: __expectString(output.Arn), + Certificate: __expectString(output.Certificate), + CertificateChain: __expectString(output.CertificateChain), + CertificateId: __expectString(output.CertificateId), + Description: __expectString(output.Description), + InactiveDate: + output.InactiveDate != null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.InactiveDate))) + : undefined, + NotAfterDate: + output.NotAfterDate != null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.NotAfterDate))) + : undefined, + NotBeforeDate: + output.NotBeforeDate != null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.NotBeforeDate))) + : undefined, + Serial: __expectString(output.Serial), + Status: __expectString(output.Status), + Tags: output.Tags != null ? deserializeAws_json1_1Tags(output.Tags, context) : undefined, + Type: __expectString(output.Type), + Usage: __expectString(output.Usage), + } as any; +}; + +const deserializeAws_json1_1DescribedConnector = (output: any, context: __SerdeContext): DescribedConnector => { + return { + AccessRole: __expectString(output.AccessRole), + Arn: __expectString(output.Arn), + As2Config: + output.As2Config != null ? deserializeAws_json1_1As2ConnectorConfig(output.As2Config, context) : undefined, + ConnectorId: __expectString(output.ConnectorId), + LoggingRole: __expectString(output.LoggingRole), + Tags: output.Tags != null ? deserializeAws_json1_1Tags(output.Tags, context) : undefined, + Url: __expectString(output.Url), + } as any; +}; + const deserializeAws_json1_1DescribedExecution = (output: any, context: __SerdeContext): DescribedExecution => { return { ExecutionId: __expectString(output.ExecutionId), @@ -3183,6 +5049,18 @@ const deserializeAws_json1_1DescribedExecution = (output: any, context: __SerdeC } as any; }; +const deserializeAws_json1_1DescribedProfile = (output: any, context: __SerdeContext): DescribedProfile => { + return { + Arn: __expectString(output.Arn), + As2Id: __expectString(output.As2Id), + CertificateIds: + output.CertificateIds != null ? deserializeAws_json1_1CertificateIds(output.CertificateIds, context) : undefined, + ProfileId: __expectString(output.ProfileId), + ProfileType: __expectString(output.ProfileType), + Tags: output.Tags != null ? deserializeAws_json1_1Tags(output.Tags, context) : undefined, + } as any; +}; + const deserializeAws_json1_1DescribedSecurityPolicy = ( output: any, context: __SerdeContext @@ -3280,6 +5158,15 @@ const deserializeAws_json1_1DescribeExecutionResponse = ( } as any; }; +const deserializeAws_json1_1DescribeProfileResponse = ( + output: any, + context: __SerdeContext +): DescribeProfileResponse => { + return { + Profile: output.Profile != null ? deserializeAws_json1_1DescribedProfile(output.Profile, context) : undefined, + } as any; +}; + const deserializeAws_json1_1DescribeSecurityPolicyResponse = ( output: any, context: __SerdeContext @@ -3416,6 +5303,15 @@ const deserializeAws_json1_1IdentityProviderDetails = ( } as any; }; +const deserializeAws_json1_1ImportCertificateResponse = ( + output: any, + context: __SerdeContext +): ImportCertificateResponse => { + return { + CertificateId: __expectString(output.CertificateId), + } as any; +}; + const deserializeAws_json1_1ImportSshPublicKeyResponse = ( output: any, context: __SerdeContext @@ -3472,6 +5368,33 @@ const deserializeAws_json1_1ListAccessesResponse = (output: any, context: __Serd } as any; }; +const deserializeAws_json1_1ListAgreementsResponse = (output: any, context: __SerdeContext): ListAgreementsResponse => { + return { + Agreements: + output.Agreements != null ? deserializeAws_json1_1ListedAgreements(output.Agreements, context) : undefined, + NextToken: __expectString(output.NextToken), + } as any; +}; + +const deserializeAws_json1_1ListCertificatesResponse = ( + output: any, + context: __SerdeContext +): ListCertificatesResponse => { + return { + Certificates: + output.Certificates != null ? deserializeAws_json1_1ListedCertificates(output.Certificates, context) : undefined, + NextToken: __expectString(output.NextToken), + } as any; +}; + +const deserializeAws_json1_1ListConnectorsResponse = (output: any, context: __SerdeContext): ListConnectorsResponse => { + return { + Connectors: + output.Connectors != null ? deserializeAws_json1_1ListedConnectors(output.Connectors, context) : undefined, + NextToken: __expectString(output.NextToken), + } as any; +}; + const deserializeAws_json1_1ListedAccess = (output: any, context: __SerdeContext): ListedAccess => { return { ExternalId: __expectString(output.ExternalId), @@ -3493,6 +5416,79 @@ const deserializeAws_json1_1ListedAccesses = (output: any, context: __SerdeConte return retVal; }; +const deserializeAws_json1_1ListedAgreement = (output: any, context: __SerdeContext): ListedAgreement => { + return { + AgreementId: __expectString(output.AgreementId), + Arn: __expectString(output.Arn), + Description: __expectString(output.Description), + LocalProfileId: __expectString(output.LocalProfileId), + PartnerProfileId: __expectString(output.PartnerProfileId), + ServerId: __expectString(output.ServerId), + Status: __expectString(output.Status), + } as any; +}; + +const deserializeAws_json1_1ListedAgreements = (output: any, context: __SerdeContext): ListedAgreement[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_json1_1ListedAgreement(entry, context); + }); + return retVal; +}; + +const deserializeAws_json1_1ListedCertificate = (output: any, context: __SerdeContext): ListedCertificate => { + return { + ActiveDate: + output.ActiveDate != null ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.ActiveDate))) : undefined, + Arn: __expectString(output.Arn), + CertificateId: __expectString(output.CertificateId), + Description: __expectString(output.Description), + InactiveDate: + output.InactiveDate != null + ? __expectNonNull(__parseEpochTimestamp(__expectNumber(output.InactiveDate))) + : undefined, + Status: __expectString(output.Status), + Type: __expectString(output.Type), + Usage: __expectString(output.Usage), + } as any; +}; + +const deserializeAws_json1_1ListedCertificates = (output: any, context: __SerdeContext): ListedCertificate[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_json1_1ListedCertificate(entry, context); + }); + return retVal; +}; + +const deserializeAws_json1_1ListedConnector = (output: any, context: __SerdeContext): ListedConnector => { + return { + Arn: __expectString(output.Arn), + ConnectorId: __expectString(output.ConnectorId), + Url: __expectString(output.Url), + } as any; +}; + +const deserializeAws_json1_1ListedConnectors = (output: any, context: __SerdeContext): ListedConnector[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_json1_1ListedConnector(entry, context); + }); + return retVal; +}; + const deserializeAws_json1_1ListedExecution = (output: any, context: __SerdeContext): ListedExecution => { return { ExecutionId: __expectString(output.ExecutionId), @@ -3520,6 +5516,27 @@ const deserializeAws_json1_1ListedExecutions = (output: any, context: __SerdeCon return retVal; }; +const deserializeAws_json1_1ListedProfile = (output: any, context: __SerdeContext): ListedProfile => { + return { + Arn: __expectString(output.Arn), + As2Id: __expectString(output.As2Id), + ProfileId: __expectString(output.ProfileId), + ProfileType: __expectString(output.ProfileType), + } as any; +}; + +const deserializeAws_json1_1ListedProfiles = (output: any, context: __SerdeContext): ListedProfile[] => { + const retVal = (output || []) + .filter((e: any) => e != null) + .map((entry: any) => { + if (entry === null) { + return null as any; + } + return deserializeAws_json1_1ListedProfile(entry, context); + }); + return retVal; +}; + const deserializeAws_json1_1ListedServer = (output: any, context: __SerdeContext): ListedServer => { return { Arn: __expectString(output.Arn), @@ -3597,6 +5614,13 @@ const deserializeAws_json1_1ListExecutionsResponse = (output: any, context: __Se } as any; }; +const deserializeAws_json1_1ListProfilesResponse = (output: any, context: __SerdeContext): ListProfilesResponse => { + return { + NextToken: __expectString(output.NextToken), + Profiles: output.Profiles != null ? deserializeAws_json1_1ListedProfiles(output.Profiles, context) : undefined, + } as any; +}; + const deserializeAws_json1_1ListSecurityPoliciesResponse = ( output: any, context: __SerdeContext @@ -3673,6 +5697,8 @@ const deserializeAws_json1_1PosixProfile = (output: any, context: __SerdeContext const deserializeAws_json1_1ProtocolDetails = (output: any, context: __SerdeContext): ProtocolDetails => { return { + As2Transports: + output.As2Transports != null ? deserializeAws_json1_1As2Transports(output.As2Transports, context) : undefined, PassiveIp: __expectString(output.PassiveIp), SetStatOption: __expectString(output.SetStatOption), TlsSessionResumptionMode: __expectString(output.TlsSessionResumptionMode), @@ -3842,6 +5868,15 @@ const deserializeAws_json1_1SshPublicKeys = (output: any, context: __SerdeContex return retVal; }; +const deserializeAws_json1_1StartFileTransferResponse = ( + output: any, + context: __SerdeContext +): StartFileTransferResponse => { + return { + TransferId: __expectString(output.TransferId), + } as any; +}; + const deserializeAws_json1_1SubnetIds = (output: any, context: __SerdeContext): string[] => { const retVal = (output || []) .filter((e: any) => e != null) @@ -3906,6 +5941,39 @@ const deserializeAws_json1_1UpdateAccessResponse = (output: any, context: __Serd } as any; }; +const deserializeAws_json1_1UpdateAgreementResponse = ( + output: any, + context: __SerdeContext +): UpdateAgreementResponse => { + return { + AgreementId: __expectString(output.AgreementId), + } as any; +}; + +const deserializeAws_json1_1UpdateCertificateResponse = ( + output: any, + context: __SerdeContext +): UpdateCertificateResponse => { + return { + CertificateId: __expectString(output.CertificateId), + } as any; +}; + +const deserializeAws_json1_1UpdateConnectorResponse = ( + output: any, + context: __SerdeContext +): UpdateConnectorResponse => { + return { + ConnectorId: __expectString(output.ConnectorId), + } as any; +}; + +const deserializeAws_json1_1UpdateProfileResponse = (output: any, context: __SerdeContext): UpdateProfileResponse => { + return { + ProfileId: __expectString(output.ProfileId), + } as any; +}; + const deserializeAws_json1_1UpdateServerResponse = (output: any, context: __SerdeContext): UpdateServerResponse => { return { ServerId: __expectString(output.ServerId), diff --git a/codegen/sdk-codegen/aws-models/transfer.json b/codegen/sdk-codegen/aws-models/transfer.json index a92fe9fc10ae..de24cad75fdc 100644 --- a/codegen/sdk-codegen/aws-models/transfer.json +++ b/codegen/sdk-codegen/aws-models/transfer.json @@ -55,6 +55,31 @@ "target": "com.amazonaws.transfer#AddressAllocationId" } }, + "com.amazonaws.transfer#AgreementId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 19, + "max": 19 + }, + "smithy.api#pattern": "^a-([0-9a-f]{17})$" + } + }, + "com.amazonaws.transfer#AgreementStatusType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ACTIVE", + "name": "ACTIVE" + }, + { + "value": "INACTIVE", + "name": "INACTIVE" + } + ] + } + }, "com.amazonaws.transfer#Arn": { "type": "string", "traits": { @@ -65,6 +90,95 @@ "smithy.api#pattern": "^arn:" } }, + "com.amazonaws.transfer#As2ConnectorConfig": { + "type": "structure", + "members": { + "LocalProfileId": { + "target": "com.amazonaws.transfer#ProfileId", + "traits": { + "smithy.api#documentation": "

    A unique identifier for the AS2 process.

    " + } + }, + "PartnerProfileId": { + "target": "com.amazonaws.transfer#ProfileId", + "traits": { + "smithy.api#documentation": "

    A unique identifier for the partner for the connector.

    " + } + }, + "MessageSubject": { + "target": "com.amazonaws.transfer#MessageSubject", + "traits": { + "smithy.api#documentation": "

    A short description to help identify the connector.

    " + } + }, + "Compression": { + "target": "com.amazonaws.transfer#CompressionEnum", + "traits": { + "smithy.api#documentation": "

    Specifies whether the AS2 file is compressed.

    " + } + }, + "EncryptionAlgorithm": { + "target": "com.amazonaws.transfer#EncryptionAlg", + "traits": { + "smithy.api#documentation": "

    The algorithm that is used to encrypt the file.

    " + } + }, + "SigningAlgorithm": { + "target": "com.amazonaws.transfer#SigningAlg", + "traits": { + "smithy.api#documentation": "

    The algorithm that is used to sign the AS2 transfers for this partner profile.

    " + } + }, + "MdnSigningAlgorithm": { + "target": "com.amazonaws.transfer#MdnSigningAlg", + "traits": { + "smithy.api#documentation": "

    The signing algorithm for the MDN response.

    " + } + }, + "MdnResponse": { + "target": "com.amazonaws.transfer#MdnResponse", + "traits": { + "smithy.api#documentation": "

    Used for outbound requests (from an Transfer Family server to a partner AS2 server) to determine whether\n the partner response for transfers is synchronous or asynchronous. Specify either of the following values:

    \n
      \n
    • \n

      \n SYNC: The system expects a synchronous MDN response, confirming that the file was transferred successfully (or not).

      \n
    • \n
    • \n

      \n NONE: Specifies that no MDN response is required.

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

    Contains the details for a connector object. The connector object is used for AS2 outbound\n processes, to connect the Transfer Family customer with the trading partner.

    " + } + }, + "com.amazonaws.transfer#As2Id": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 128 + }, + "smithy.api#pattern": "^[\\p{Print}\\s]*$" + } + }, + "com.amazonaws.transfer#As2Transport": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "HTTP", + "name": "HTTP" + } + ] + } + }, + "com.amazonaws.transfer#As2Transports": { + "type": "list", + "member": { + "target": "com.amazonaws.transfer#As2Transport" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1 + } + } + }, "com.amazonaws.transfer#CallbackToken": { "type": "string", "traits": { @@ -75,6 +189,19 @@ "smithy.api#pattern": "^\\w+$" } }, + "com.amazonaws.transfer#CertDate": { + "type": "timestamp" + }, + "com.amazonaws.transfer#CertSerial": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 0, + "max": 48 + }, + "smithy.api#pattern": "^[\\p{XDigit}{2}:?]*$" + } + }, "com.amazonaws.transfer#Certificate": { "type": "string", "traits": { @@ -84,6 +211,108 @@ } } }, + "com.amazonaws.transfer#CertificateBodyType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 16384 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.transfer#CertificateChainType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 2097152 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.transfer#CertificateId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 22, + "max": 22 + }, + "smithy.api#pattern": "^cert-([0-9a-f]{17})$" + } + }, + "com.amazonaws.transfer#CertificateIds": { + "type": "list", + "member": { + "target": "com.amazonaws.transfer#CertificateId" + } + }, + "com.amazonaws.transfer#CertificateStatusType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ACTIVE", + "name": "ACTIVE" + }, + { + "value": "PENDING_ROTATION", + "name": "PENDING_ROTATION" + }, + { + "value": "INACTIVE", + "name": "INACTIVE" + } + ] + } + }, + "com.amazonaws.transfer#CertificateType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "CERTIFICATE", + "name": "CERTIFICATE" + }, + { + "value": "CERTIFICATE_WITH_PRIVATE_KEY", + "name": "CERTIFICATE_WITH_PRIVATE_KEY" + } + ] + } + }, + "com.amazonaws.transfer#CertificateUsageType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "SIGNING", + "name": "SIGNING" + }, + { + "value": "ENCRYPTION", + "name": "ENCRYPTION" + } + ] + } + }, + "com.amazonaws.transfer#CompressionEnum": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "ZLIB", + "name": "ZLIB" + }, + { + "value": "DISABLED", + "name": "DISABLED" + } + ] + } + }, "com.amazonaws.transfer#ConflictException": { "type": "structure", "members": { @@ -100,6 +329,16 @@ "smithy.api#httpError": 409 } }, + "com.amazonaws.transfer#ConnectorId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 19, + "max": 19 + }, + "smithy.api#pattern": "^c-([0-9a-f]{17})$" + } + }, "com.amazonaws.transfer#CopyStepDetails": { "type": "structure", "members": { @@ -158,7 +397,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Used by administrators to choose which groups in the directory should have access to\n upload and download files over the enabled protocols using Amazon Web Services Transfer Family. For example, a\n Microsoft Active Directory might contain 50,000 users, but only a small fraction might need\n the ability to transfer files to the server. An administrator can use\n CreateAccess to limit the access to the correct set of users who need this\n ability.

    " + "smithy.api#documentation": "

    Used by administrators to choose which groups in the directory should have access to\n upload and download files over the enabled protocols using Transfer Family. For example, a\n Microsoft Active Directory might contain 50,000 users, but only a small fraction might need\n the ability to transfer files to the server. An administrator can use\n CreateAccess to limit the access to the correct set of users who need this\n ability.

    " } }, "com.amazonaws.transfer#CreateAccessRequest": { @@ -173,19 +412,19 @@ "HomeDirectoryType": { "target": "com.amazonaws.transfer#HomeDirectoryType", "traits": { - "smithy.api#documentation": "

    The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

    " + "smithy.api#documentation": "

    The type of landing directory (folder) that you want your users' home directory to be when they log in to the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer \n protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for \n how you want to make Amazon S3 or Amazon EFS paths visible to your users.

    " } }, "HomeDirectoryMappings": { "target": "com.amazonaws.transfer#HomeDirectoryMappings", "traits": { - "smithy.api#documentation": "

    Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

    \n

    The following is an Entry and Target pair example.

    \n

    \n [ { \"Entry\": \"/directory1\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

    \n

    In most cases, you can use this value instead of the session policy to lock down your\n user to the designated home directory (\"chroot\"). To do this, you can set\n Entry to / and set Target to the\n HomeDirectory parameter value.

    \n

    The following is an Entry and Target pair example for chroot.

    \n

    \n [ { \"Entry\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

    " + "smithy.api#documentation": "

    Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) \n role provides access to paths in Target. This value\n can be set only when HomeDirectoryType is set to\n LOGICAL.

    \n

    The following is an Entry and Target pair example.

    \n

    \n [ { \"Entry\": \"/directory1\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

    \n

    In most cases, you can use this value instead of the session policy to lock down your\n user to the designated home directory (\"chroot\"). To do this, you can set\n Entry to / and set Target to the\n HomeDirectory parameter value.

    \n

    The following is an Entry and Target pair example for chroot.

    \n

    \n [ { \"Entry\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

    " } }, "Policy": { "target": "com.amazonaws.transfer#Policy", "traits": { - "smithy.api#documentation": "

    A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

    \n \n \n

    This only applies when the domain of ServerId is S3. EFS does not use session policies.

    \n

    For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead\n of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass\n it in the Policy argument.

    \n

    For an example of a session policy, see Example\n session policy.

    \n

    For more information, see AssumeRole in the Amazon Web Services Security Token Service API\n Reference.

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

    A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

    \n \n \n

    This policy applies only when the domain of ServerId is Amazon S3. Amazon EFS does not use session policies.

    \n

    For session policies, Transfer Family stores the policy as a JSON blob, instead\n of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass\n it in the Policy argument.

    \n

    For an example of a session policy, see Example\n session policy.

    \n

    For more information, see AssumeRole in the Security Token Service API\n Reference.

    \n
    " } }, "PosixProfile": { @@ -194,7 +433,7 @@ "Role": { "target": "com.amazonaws.transfer#Role", "traits": { - "smithy.api#documentation": "

    Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS\n file system. The policies attached to this role determine the level of access that you want to provide your users when transferring\n files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the\n server to access your resources when servicing your users' transfer requests.

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

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 \n bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users \n when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust \n relationship that allows the server to access your resources when servicing your users' transfer requests.

    ", "smithy.api#required": {} } }, @@ -208,7 +447,7 @@ "ExternalId": { "target": "com.amazonaws.transfer#ExternalId", "traits": { - "smithy.api#documentation": "

    A unique identifier that is required to identify specific groups within your directory.\n The users of the group that you associate have access to your Amazon S3 or Amazon EFS\n resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name,\n you can view the SID values by running the following command using Windows PowerShell.

    \n\n

    \n Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid\n

    \n \n

    In that command, replace YourGroupName with the name of your Active Directory group.

    \n\n

    The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces.\n You can also include underscores or any of the following characters: =,.@:/-

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

    A unique identifier that is required to identify specific groups within your directory.\n The users of the group that you associate have access to your Amazon S3 or Amazon EFS\n resources over the enabled protocols using Transfer Family. If you know the group name,\n you can view the SID values by running the following command using Windows PowerShell.

    \n\n

    \n Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid\n

    \n \n

    In that command, replace YourGroupName with the name of your Active Directory group.

    \n\n

    The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces.\n You can also include underscores or any of the following characters: =,.@:/-

    ", "smithy.api#required": {} } } @@ -227,24 +466,21 @@ "ExternalId": { "target": "com.amazonaws.transfer#ExternalId", "traits": { - "smithy.api#documentation": "

    The external ID of the group whose users have access to your Amazon S3 or Amazon EFS\n resources over the enabled protocols using Amazon Web Services Transfer Family.

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

    The external ID of the group whose users have access to your Amazon S3 or Amazon EFS\n resources over the enabled protocols using Transfer Family.

    ", "smithy.api#required": {} } } } }, - "com.amazonaws.transfer#CreateServer": { + "com.amazonaws.transfer#CreateAgreement": { "type": "operation", "input": { - "target": "com.amazonaws.transfer#CreateServerRequest" + "target": "com.amazonaws.transfer#CreateAgreementRequest" }, "output": { - "target": "com.amazonaws.transfer#CreateServerResponse" + "target": "com.amazonaws.transfer#CreateAgreementResponse" }, "errors": [ - { - "target": "com.amazonaws.transfer#AccessDeniedException" - }, { "target": "com.amazonaws.transfer#InternalServiceError" }, @@ -259,129 +495,89 @@ }, { "target": "com.amazonaws.transfer#ServiceUnavailableException" - }, - { - "target": "com.amazonaws.transfer#ThrottlingException" } ], "traits": { - "smithy.api#documentation": "

    Instantiates an auto-scaling virtual server based on the selected file transfer protocol\n in Amazon Web Services. When you make updates to your file transfer protocol-enabled server or when you work\n with users, use the service-generated ServerId property that is assigned to the\n newly created server.

    " + "smithy.api#documentation": "

    Creates an agreement. An agreement is a bilateral trading partner agreement, or partnership,\n between an Transfer Family server and an AS2 process. The agreement defines the file and message\n transfer relationship between the server and the AS2 process. To define an agreement, Transfer Family\n combines a server, local profile, partner profile, certificate, and other\n attributes.

    \n

    The partner is identified with the PartnerProfileId, and the AS2 process is identified with the LocalProfileId.

    " } }, - "com.amazonaws.transfer#CreateServerRequest": { + "com.amazonaws.transfer#CreateAgreementRequest": { "type": "structure", "members": { - "Certificate": { - "target": "com.amazonaws.transfer#Certificate", - "traits": { - "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Amazon Web Services Certificate Manager (ACM) certificate. Required\n when Protocols is set to FTPS.

    \n\n

    To request a new public certificate, see Request a public certificate\n in the Amazon Web Services Certificate Manager User Guide.

    \n\n

    To import an existing certificate into ACM, see Importing certificates into ACM\n in the Amazon Web Services Certificate Manager User Guide.

    \n\n

    To request a private certificate to use FTPS through private IP addresses, see Request a\n private certificate in the Amazon Web Services Certificate Manager User\n Guide.

    \n\n

    Certificates with the following cryptographic algorithms and key sizes are\n supported:

    \n\n
      \n
    • \n

      2048-bit RSA (RSA_2048)

      \n
    • \n
    • \n

      4096-bit RSA (RSA_4096)

      \n
    • \n
    • \n

      Elliptic Prime Curve 256 bit (EC_prime256v1)

      \n
    • \n
    • \n

      Elliptic Prime Curve 384 bit (EC_secp384r1)

      \n
    • \n
    • \n

      Elliptic Prime Curve 521 bit (EC_secp521r1)

      \n
    • \n
    \n\n \n

    The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP\n address specified and information about the issuer.

    \n
    " - } - }, - "Domain": { - "target": "com.amazonaws.transfer#Domain", - "traits": { - "smithy.api#documentation": "

    The domain of the storage system that is used for file transfers. There are two domains\n available: Amazon Simple Storage Service (Amazon S3) and Amazon Elastic File System (Amazon EFS). The\n default value is S3.

    \n\n \n

    After the server is created, the domain cannot be changed.

    \n
    " - } - }, - "EndpointDetails": { - "target": "com.amazonaws.transfer#EndpointDetails", + "Description": { + "target": "com.amazonaws.transfer#Description", "traits": { - "smithy.api#documentation": "

    The virtual private cloud (VPC) endpoint settings that are configured for your server.\n When you host your endpoint within your VPC, you can make it accessible only to resources\n within your VPC, or you can attach Elastic IP addresses and make it accessible to clients over\n the internet. Your VPC's default security groups are automatically assigned to your\n endpoint.

    " + "smithy.api#documentation": "

    A name or short description to identify the agreement.

    " } }, - "EndpointType": { - "target": "com.amazonaws.transfer#EndpointType", + "ServerId": { + "target": "com.amazonaws.transfer#ServerId", "traits": { - "smithy.api#documentation": "

    The type of endpoint that you want your server to use. You can choose to make your server's endpoint publicly accessible (PUBLIC)\n or host it inside your VPC. With an endpoint that is hosted in a VPC, you can restrict access to your server and \n resources only within your VPC or choose to make it internet facing by attaching Elastic IP addresses directly to it.

    \n \n

    After May 19, 2021, you won't be able to create a server using\n EndpointType=VPC_ENDPOINT in your Amazon Web Services account if your account hasn't already\n done so before May 19, 2021. If you have already created servers with\n EndpointType=VPC_ENDPOINT in your Amazon Web Services account on or before May 19, 2021,\n you will not be affected. After this date, use\n EndpointType=VPC.

    \n \n

    For more information, see\n https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.

    \n

    It is recommended that you use VPC as the EndpointType. With\n this endpoint type, you have the option to directly associate up to three Elastic IPv4\n addresses (BYO IP included) with your server's endpoint and use VPC security groups to\n restrict traffic by the client's public IP address. This is not possible with\n EndpointType set to VPC_ENDPOINT.

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

    A system-assigned unique identifier for a server instance. This is the specific server\n that the agreement uses.

    ", + "smithy.api#required": {} } }, - "HostKey": { - "target": "com.amazonaws.transfer#HostKey", + "LocalProfileId": { + "target": "com.amazonaws.transfer#ProfileId", "traits": { - "smithy.api#documentation": "

    The RSA, ECDSA, or ED25519 private key to use for your server.

    \n \n

    Use the following command to generate an RSA 2048 bit key with no passphrase:

    \n

    \n ssh-keygen -t rsa -b 2048 -N \"\" -m PEM -f my-new-server-key.

    \n

    Use a minimum value of 2048 for the -b option: you can create a stronger key using 3072 or 4096.

    \n \n

    Use the following command to generate an ECDSA 256 bit key with no passphrase:

    \n

    \n ssh-keygen -t ecdsa -b 256 -N \"\" -m PEM -f my-new-server-key.

    \n

    Valid values for the -b option for ECDSA are 256, 384, and 521.

    \n \n

    Use the following command to generate an ED25519 key with no passphrase:

    \n

    \n ssh-keygen -t ed25519 -N \"\" -f my-new-server-key.

    \n \n

    For all of these commands, you can replace my-new-server-key with a string of your choice.

    \n\n \n

    If you aren't planning to migrate existing users from an existing SFTP-enabled\n server to a new server, don't update the host key. Accidentally changing a\n server's host key can be disruptive.

    \n
    \n\n \n\n

    For more information, see Change the host key for your SFTP-enabled server in the Amazon Web Services Transfer\n Family User Guide.

    " + "smithy.api#documentation": "

    A unique identifier for the AS2 local profile.

    ", + "smithy.api#required": {} } }, - "IdentityProviderDetails": { - "target": "com.amazonaws.transfer#IdentityProviderDetails", + "PartnerProfileId": { + "target": "com.amazonaws.transfer#ProfileId", "traits": { - "smithy.api#documentation": "

    Required when IdentityProviderType is set to\n AWS_DIRECTORY_SERVICE or API_GATEWAY. Accepts an array containing\n all of the information required to use a directory in AWS_DIRECTORY_SERVICE or\n invoke a customer-supplied authentication API, including the API Gateway URL. Not required\n when IdentityProviderType is set to SERVICE_MANAGED.

    " + "smithy.api#documentation": "

    A unique identifier for the partner profile used in the agreement.

    ", + "smithy.api#required": {} } }, - "IdentityProviderType": { - "target": "com.amazonaws.transfer#IdentityProviderType", + "BaseDirectory": { + "target": "com.amazonaws.transfer#HomeDirectory", "traits": { - "smithy.api#documentation": "

    Specifies the mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Amazon Web Services Transfer Family service.

    \n

    Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to\n provide a Directory ID using the IdentityProviderDetails parameter.

    \n

    Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call\n for authentication using the IdentityProviderDetails parameter.

    \n

    Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value,\n you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

    " + "smithy.api#documentation": "

    The landing directory (folder) for files transferred by using the AS2 protocol.

    \n

    A BaseDirectory example is\n /DOC-EXAMPLE-BUCKET/home/mydirectory\n .

    ", + "smithy.api#required": {} } }, - "LoggingRole": { + "AccessRole": { "target": "com.amazonaws.transfer#Role", "traits": { - "smithy.api#documentation": "

    Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn\n on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in\n your CloudWatch logs.

    " - } - }, - "PostAuthenticationLoginBanner": { - "target": "com.amazonaws.transfer#PostAuthenticationLoginBanner", - "traits": { - "smithy.api#documentation": "

    Specify a string to display when users connect to a server. This string is displayed after the user authenticates.

    \n \n

    The SFTP protocol does not support post-authentication display banners.

    \n
    " - } - }, - "PreAuthenticationLoginBanner": { - "target": "com.amazonaws.transfer#PreAuthenticationLoginBanner", - "traits": { - "smithy.api#documentation": "

    Specify a string to display when users connect to a server. This string is displayed before the user authenticates.\n For example, the following banner displays details about using the system.

    \n

    \n This system is for the use of authorized users only. Individuals using this computer system without authority,\n or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by\n system personnel.\n

    " - } - }, - "Protocols": { - "target": "com.amazonaws.transfer#Protocols", - "traits": { - "smithy.api#documentation": "

    Specifies the file transfer protocol or protocols over which your file transfer protocol\n client can connect to your server's endpoint. The available protocols are:

    \n\n
      \n
    • \n

      \n SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over\n SSH

      \n
    • \n
    • \n

      \n FTPS (File Transfer Protocol Secure): File transfer with TLS\n encryption

      \n
    • \n
    • \n

      \n FTP (File Transfer Protocol): Unencrypted file transfer

      \n
    • \n
    \n\n \n

    If you select FTPS, you must choose a certificate stored in Amazon Web Services Certificate\n Manager (ACM) which is used to identify your server when clients connect to it over\n FTPS.

    \n\n

    If Protocol includes either FTP or FTPS, then the\n EndpointType must be VPC and the\n IdentityProviderType must be AWS_DIRECTORY_SERVICE or API_GATEWAY.

    \n\n

    If Protocol includes FTP, then\n AddressAllocationIds cannot be associated.

    \n\n

    If Protocol is set only to SFTP, the EndpointType\n can be set to PUBLIC and the IdentityProviderType can be set to\n SERVICE_MANAGED.

    \n
    " - } - }, - "ProtocolDetails": { - "target": "com.amazonaws.transfer#ProtocolDetails", - "traits": { - "smithy.api#documentation": "

    The protocol settings that are configured for your server.

    \n
      \n
    • \n

      \n Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols).\n Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.\n

      \n
    • \n
    • \n

      Use the SetStatOption to ignore the error that is generated when the client attempts to use SETSTAT on a file you are uploading to an S3 bucket.\n Set the value to ENABLE_NO_OP to have the Transfer Family server ignore the SETSTAT command, and upload files without needing to make any changes to your SFTP client.\n Note that with SetStatOption set to ENABLE_NO_OP, Transfer generates a log entry to CloudWatch Logs, so you can determine when the client\n is making a SETSTAT call.

      \n
    • \n
    • \n

      Use the TlsSessionResumptionMode parameter to determine whether or not your Transfer server\n resumes recent, negotiated sessions through a unique session ID.

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

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that grants access to at least the \n HomeDirectory of your users' Amazon S3 buckets.

    ", + "smithy.api#required": {} } }, - "SecurityPolicyName": { - "target": "com.amazonaws.transfer#SecurityPolicyName", + "Status": { + "target": "com.amazonaws.transfer#AgreementStatusType", "traits": { - "smithy.api#documentation": "

    Specifies the name of the security policy that is attached to the server.

    " + "smithy.api#documentation": "

    The status of the agreement. The agreement can be either ACTIVE or\n INACTIVE.

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

    Key-value pairs that can be used to group and search for servers.

    " - } - }, - "WorkflowDetails": { - "target": "com.amazonaws.transfer#WorkflowDetails", - "traits": { - "smithy.api#documentation": "

    Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.

    " + "smithy.api#documentation": "

    Key-value pairs that can be used to group and search for agreements.

    " } } } }, - "com.amazonaws.transfer#CreateServerResponse": { + "com.amazonaws.transfer#CreateAgreementResponse": { "type": "structure", "members": { - "ServerId": { - "target": "com.amazonaws.transfer#ServerId", + "AgreementId": { + "target": "com.amazonaws.transfer#AgreementId", "traits": { - "smithy.api#documentation": "

    The service-assigned ID of the server that is created.

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

    The unique identifier for the agreement. Use this ID for deleting, or updating an\n agreement, as well as in any other API calls that require that you specify the agreement\n ID.

    ", "smithy.api#required": {} } } } }, - "com.amazonaws.transfer#CreateUser": { + "com.amazonaws.transfer#CreateConnector": { "type": "operation", "input": { - "target": "com.amazonaws.transfer#CreateUserRequest" + "target": "com.amazonaws.transfer#CreateConnectorRequest" }, "output": { - "target": "com.amazonaws.transfer#CreateUserResponse" + "target": "com.amazonaws.transfer#CreateConnectorResponse" }, "errors": [ { @@ -401,34 +597,324 @@ } ], "traits": { - "smithy.api#documentation": "

    Creates a user and associates them with an existing file transfer protocol-enabled server.\n You can only create and associate users with servers that have the\n IdentityProviderType set to SERVICE_MANAGED. Using parameters for\n CreateUser, you can specify the user name, set the home directory, store the\n user's public key, and assign the user's Amazon Web Services Identity and Access Management (IAM)\n role. You can also optionally add a session policy, and assign metadata with tags that can\n be used to group and search for users.

    " + "smithy.api#documentation": "

    Creates the connector, which captures the parameters for an outbound connection for the\n AS2 protocol. The connector is required for sending files from a\n customer's non Amazon Web Services server.

    " } }, - "com.amazonaws.transfer#CreateUserRequest": { + "com.amazonaws.transfer#CreateConnectorRequest": { "type": "structure", "members": { - "HomeDirectory": { - "target": "com.amazonaws.transfer#HomeDirectory", + "Url": { + "target": "com.amazonaws.transfer#Url", "traits": { - "smithy.api#documentation": "

    The landing directory (folder) for a user when they log in to the server using the client.

    \n

    A HomeDirectory example is /bucket_name/home/mydirectory.

    " + "smithy.api#documentation": "

    The URL of the partner's AS2 endpoint.

    ", + "smithy.api#required": {} } }, - "HomeDirectoryType": { - "target": "com.amazonaws.transfer#HomeDirectoryType", + "As2Config": { + "target": "com.amazonaws.transfer#As2ConnectorConfig", "traits": { - "smithy.api#documentation": "

    The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

    " + "smithy.api#documentation": "

    A structure that contains the parameters for a connector object.

    ", + "smithy.api#required": {} } }, - "HomeDirectoryMappings": { - "target": "com.amazonaws.transfer#HomeDirectoryMappings", + "AccessRole": { + "target": "com.amazonaws.transfer#Role", + "traits": { + "smithy.api#documentation": "

    With AS2, you can send files by calling StartFileTransfer and specifying the\n file paths in the request parameter, SendFilePaths. We use the file’s parent\n directory (for example, for --send-file-paths /bucket/dir/file.txt, parent\n directory is /bucket/dir/) to temporarily store a processed AS2 message file,\n store the MDN when we receive them from the partner, and write a final JSON file containing\n relevant metadata of the transmission. So, the AccessRole needs to provide read\n and write access to the parent directory of the file location used in the\n StartFileTransfer request. Additionally, you need to provide read and write\n access to the parent directory of the files that you intend to send with\n StartFileTransfer.

    ", + "smithy.api#required": {} + } + }, + "LoggingRole": { + "target": "com.amazonaws.transfer#Role", + "traits": { + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a connector to turn\n on CloudWatch logging for Amazon S3 events. When set, you can view connector\n activity in your CloudWatch logs.

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

    Key-value pairs that can be used to group and search for connectors. Tags are metadata attached to connectors for any purpose.

    " + } + } + } + }, + "com.amazonaws.transfer#CreateConnectorResponse": { + "type": "structure", + "members": { + "ConnectorId": { + "target": "com.amazonaws.transfer#ConnectorId", + "traits": { + "smithy.api#documentation": "

    The unique identifier for the connector, returned after the API call succeeds.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#CreateProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#CreateProfileRequest" + }, + "output": { + "target": "com.amazonaws.transfer#CreateProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Creates the profile for the AS2 process. The agreement is between the partner and the AS2\n process.

    " + } + }, + "com.amazonaws.transfer#CreateProfileRequest": { + "type": "structure", + "members": { + "As2Id": { + "target": "com.amazonaws.transfer#As2Id", + "traits": { + "smithy.api#documentation": "

    The As2Id is the AS2-name, as defined in the defined in\n the RFC 4130. For inbound transfers, this is the AS2-From header for the AS2 messages\n sent from the partner. For outbound connectors, this is the AS2-To header for the\n AS2 messages sent to the partner using the StartFileTransfer API operation. This ID cannot include spaces.

    ", + "smithy.api#required": {} + } + }, + "ProfileType": { + "target": "com.amazonaws.transfer#ProfileType", + "traits": { + "smithy.api#documentation": "

    Indicates whether to list only LOCAL type profiles or only PARTNER type profiles. \n If not supplied in the request, the command lists all types of profiles.

    ", + "smithy.api#required": {} + } + }, + "CertificateIds": { + "target": "com.amazonaws.transfer#CertificateIds", + "traits": { + "smithy.api#documentation": "

    An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

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

    Key-value pairs that can be used to group and search for AS2 profiles.

    " + } + } + } + }, + "com.amazonaws.transfer#CreateProfileResponse": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.transfer#ProfileId", + "traits": { + "smithy.api#documentation": "

    The unique identifier for the AS2 profile, returned after the API call succeeds.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#CreateServer": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#CreateServerRequest" + }, + "output": { + "target": "com.amazonaws.transfer#CreateServerResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#AccessDeniedException" + }, + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceExistsException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.transfer#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

    Instantiates an auto-scaling virtual server based on the selected file transfer protocol\n in Amazon Web Services. When you make updates to your file transfer protocol-enabled server or when you work\n with users, use the service-generated ServerId property that is assigned to the\n newly created server.

    " + } + }, + "com.amazonaws.transfer#CreateServerRequest": { + "type": "structure", + "members": { + "Certificate": { + "target": "com.amazonaws.transfer#Certificate", + "traits": { + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Certificate Manager (ACM) certificate. Required\n when Protocols is set to FTPS.

    \n\n

    To request a new public certificate, see Request a public certificate\n in the Certificate Manager User Guide.

    \n\n

    To import an existing certificate into ACM, see Importing certificates into ACM\n in the Certificate Manager User Guide.

    \n\n

    To request a private certificate to use FTPS through private IP addresses, see Request a\n private certificate in the Certificate Manager User\n Guide.

    \n\n

    Certificates with the following cryptographic algorithms and key sizes are\n supported:

    \n\n
      \n
    • \n

      2048-bit RSA (RSA_2048)

      \n
    • \n
    • \n

      4096-bit RSA (RSA_4096)

      \n
    • \n
    • \n

      Elliptic Prime Curve 256 bit (EC_prime256v1)

      \n
    • \n
    • \n

      Elliptic Prime Curve 384 bit (EC_secp384r1)

      \n
    • \n
    • \n

      Elliptic Prime Curve 521 bit (EC_secp521r1)

      \n
    • \n
    \n\n \n

    The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP\n address specified and information about the issuer.

    \n
    " + } + }, + "Domain": { + "target": "com.amazonaws.transfer#Domain", + "traits": { + "smithy.api#documentation": "

    The domain of the storage system that is used for file transfers. There are two domains\n available: Amazon Simple Storage Service (Amazon S3) and Amazon Elastic File System (Amazon EFS). The\n default value is S3.

    \n\n \n

    After the server is created, the domain cannot be changed.

    \n
    " + } + }, + "EndpointDetails": { + "target": "com.amazonaws.transfer#EndpointDetails", + "traits": { + "smithy.api#documentation": "

    The virtual private cloud (VPC) endpoint settings that are configured for your server.\n When you host your endpoint within your VPC, you can make your endpoint accessible only to resources\n within your VPC, or you can attach Elastic IP addresses and make your endpoint accessible to clients over\n the internet. Your VPC's default security groups are automatically assigned to your\n endpoint.

    " + } + }, + "EndpointType": { + "target": "com.amazonaws.transfer#EndpointType", + "traits": { + "smithy.api#documentation": "

    The type of endpoint that you want your server to use. You can choose to make your server's endpoint publicly accessible (PUBLIC)\n or host it inside your VPC. With an endpoint that is hosted in a VPC, you can restrict access to your server and \n resources only within your VPC or choose to make it internet facing by attaching Elastic IP addresses directly to it.

    \n \n

    After May 19, 2021, you won't be able to create a server using\n EndpointType=VPC_ENDPOINT in your Amazon Web Services account if your account hasn't already\n done so before May 19, 2021. If you have already created servers with\n EndpointType=VPC_ENDPOINT in your Amazon Web Services account on or before May 19, 2021,\n you will not be affected. After this date, use\n EndpointType=VPC.

    \n \n

    For more information, see\n https://docs.aws.amazon.com/transfer/latest/userguide/create-server-in-vpc.html#deprecate-vpc-endpoint.

    \n

    It is recommended that you use VPC as the EndpointType. With\n this endpoint type, you have the option to directly associate up to three Elastic IPv4\n addresses (BYO IP included) with your server's endpoint and use VPC security groups to\n restrict traffic by the client's public IP address. This is not possible with\n EndpointType set to VPC_ENDPOINT.

    \n
    " + } + }, + "HostKey": { + "target": "com.amazonaws.transfer#HostKey", + "traits": { + "smithy.api#documentation": "

    The RSA, ECDSA, or ED25519 private key to use for your server.

    \n \n

    Use the following command to generate an RSA 2048 bit key with no passphrase:

    \n

    \n ssh-keygen -t rsa -b 2048 -N \"\" -m PEM -f my-new-server-key.

    \n

    Use a minimum value of 2048 for the -b option. You can create a stronger key by using 3072 or 4096.

    \n \n

    Use the following command to generate an ECDSA 256 bit key with no passphrase:

    \n

    \n ssh-keygen -t ecdsa -b 256 -N \"\" -m PEM -f my-new-server-key.

    \n

    Valid values for the -b option for ECDSA are 256, 384, and 521.

    \n \n

    Use the following command to generate an ED25519 key with no passphrase:

    \n

    \n ssh-keygen -t ed25519 -N \"\" -f my-new-server-key.

    \n \n

    For all of these commands, you can replace my-new-server-key with a string of your choice.

    \n\n \n

    If you aren't planning to migrate existing users from an existing SFTP-enabled\n server to a new server, don't update the host key. Accidentally changing a\n server's host key can be disruptive.

    \n
    \n\n \n\n

    For more information, see Change the host key for your SFTP-enabled server in the Transfer Family User Guide.

    " + } + }, + "IdentityProviderDetails": { + "target": "com.amazonaws.transfer#IdentityProviderDetails", + "traits": { + "smithy.api#documentation": "

    Required when IdentityProviderType is set to\n AWS_DIRECTORY_SERVICE or API_GATEWAY. Accepts an array containing\n all of the information required to use a directory in AWS_DIRECTORY_SERVICE or\n invoke a customer-supplied authentication API, including the API Gateway URL. Not required\n when IdentityProviderType is set to SERVICE_MANAGED.

    " + } + }, + "IdentityProviderType": { + "target": "com.amazonaws.transfer#IdentityProviderType", + "traits": { + "smithy.api#documentation": "

    The mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Transfer Family service.

    \n

    Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Directory Service for Microsoft Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connector. This option also requires you to\n provide a Directory ID by using the IdentityProviderDetails parameter.

    \n

    Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an Amazon API Gateway endpoint URL to call\n for authentication by using the IdentityProviderDetails parameter.

    \n

    Use the AWS_LAMBDA value to directly use an Lambda function as your identity provider. \n If you choose this value, you must specify the ARN for the Lambda function in the Function parameter \n or the IdentityProviderDetails data type.

    " + } + }, + "LoggingRole": { + "target": "com.amazonaws.transfer#Role", + "traits": { + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a server to turn\n on Amazon CloudWatch logging for Amazon S3 or Amazon EFSevents. When set, you can view user activity in\n your CloudWatch logs.

    " + } + }, + "PostAuthenticationLoginBanner": { + "target": "com.amazonaws.transfer#PostAuthenticationLoginBanner", + "traits": { + "smithy.api#documentation": "

    Specifies a string to display when users connect to a server. This string is displayed after the user authenticates.

    \n \n

    The SFTP protocol does not support post-authentication display banners.

    \n
    " + } + }, + "PreAuthenticationLoginBanner": { + "target": "com.amazonaws.transfer#PreAuthenticationLoginBanner", + "traits": { + "smithy.api#documentation": "

    Specifies a string to display when users connect to a server. This string is displayed before the user authenticates.\n For example, the following banner displays details about using the system:

    \n \n

    \n This system is for the use of authorized users only. Individuals using this computer system without authority,\n or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by\n system personnel.\n

    " + } + }, + "Protocols": { + "target": "com.amazonaws.transfer#Protocols", + "traits": { + "smithy.api#documentation": "

    Specifies the file transfer protocol or protocols over which your file transfer protocol\n client can connect to your server's endpoint. The available protocols are:

    \n\n
      \n
    • \n

      \n SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over\n SSH

      \n
    • \n
    • \n

      \n FTPS (File Transfer Protocol Secure): File transfer with TLS\n encryption

      \n
    • \n
    • \n

      \n FTP (File Transfer Protocol): Unencrypted file transfer

      \n
    • \n
    • \n

      \n AS2 (Applicability Statement 2): used for transporting structured business-to-business data

      \n
    • \n
    \n\n \n
      \n
    • \n

      If you select FTPS, you must choose a certificate stored in Certificate Manager (ACM) \n which is used to identify your server when clients connect to it over\n FTPS.

      \n
    • \n
    • \n

      If Protocol includes either FTP or FTPS, then the\n EndpointType must be VPC and the\n IdentityProviderType must be AWS_DIRECTORY_SERVICE or API_GATEWAY.

      \n
    • \n
    • \n

      If Protocol includes FTP, then\n AddressAllocationIds cannot be associated.

      \n
    • \n
    • \n

      If Protocol is set only to SFTP, the EndpointType\n can be set to PUBLIC and the IdentityProviderType can be set to\n SERVICE_MANAGED.

      \n
    • \n
    • \n

      If Protocol includes AS2, then the\n EndpointType must be VPC, and domain must be Amazon S3.

      \n
    • \n
    \n
    " + } + }, + "ProtocolDetails": { + "target": "com.amazonaws.transfer#ProtocolDetails", + "traits": { + "smithy.api#documentation": "

    The protocol settings that are configured for your server.

    \n
      \n
    • \n

      \n To indicate passive mode (for FTP and FTPS protocols), use the PassiveIp parameter.\n Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.\n

      \n
    • \n
    • \n

      To ignore the error that is generated when the client attempts to use the SETSTAT command on a file that you are \n uploading to an Amazon S3 bucket, use the SetStatOption parameter. To have the Transfer Family server ignore the \n SETSTAT command and upload files without needing to make any changes to your SFTP client, set the value to \n ENABLE_NO_OP. If you set the SetStatOption parameter to ENABLE_NO_OP, Transfer Family \n generates a log entry to Amazon CloudWatch Logs, so that you can determine when the client is making a SETSTAT \n call.

      \n
    • \n
    • \n

      To determine whether your Transfer Family server resumes recent, negotiated sessions through a unique session ID, use the \n TlsSessionResumptionMode parameter.

      \n
    • \n
    • \n

      \n As2Transports indicates the transport method for the AS2 messages. Currently, only HTTP is supported.

      \n
    • \n
    " + } + }, + "SecurityPolicyName": { + "target": "com.amazonaws.transfer#SecurityPolicyName", + "traits": { + "smithy.api#documentation": "

    Specifies the name of the security policy that is attached to the server.

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

    Key-value pairs that can be used to group and search for servers.

    " + } + }, + "WorkflowDetails": { + "target": "com.amazonaws.transfer#WorkflowDetails", + "traits": { + "smithy.api#documentation": "

    Specifies the workflow ID for the workflow to assign and the execution role that's used for executing the workflow.

    " + } + } + } + }, + "com.amazonaws.transfer#CreateServerResponse": { + "type": "structure", + "members": { + "ServerId": { + "target": "com.amazonaws.transfer#ServerId", + "traits": { + "smithy.api#documentation": "

    The service-assigned ID of the server that is created.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#CreateUser": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#CreateUserRequest" + }, + "output": { + "target": "com.amazonaws.transfer#CreateUserResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceExistsException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Creates a user and associates them with an existing file transfer protocol-enabled server.\n You can only create and associate users with servers that have the\n IdentityProviderType set to SERVICE_MANAGED. Using parameters for\n CreateUser, you can specify the user name, set the home directory, store the\n user's public key, and assign the user's Identity and Access Management (IAM)\n role. You can also optionally add a session policy, and assign metadata with tags that can\n be used to group and search for users.

    " + } + }, + "com.amazonaws.transfer#CreateUserRequest": { + "type": "structure", + "members": { + "HomeDirectory": { + "target": "com.amazonaws.transfer#HomeDirectory", "traits": { - "smithy.api#documentation": "

    Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

    \n\n

    The following is an Entry and Target pair example.

    \n\n

    \n [ { \"Entry\": \"/directory1\", \"Target\":\n \"/bucket_name/home/mydirectory\" } ]\n

    \n\n

    In most cases, you can use this value instead of the session policy to lock your user\n down to the designated home directory (\"chroot\"). To do this, you can set\n Entry to / and set Target to the HomeDirectory\n parameter value.

    \n

    The following is an Entry and Target pair example for chroot.

    \n

    \n [ { \"Entry\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

    " + "smithy.api#documentation": "

    The landing directory (folder) for a user when they log in to the server using the client.

    \n

    A HomeDirectory example is /bucket_name/home/mydirectory.

    " + } + }, + "HomeDirectoryType": { + "target": "com.amazonaws.transfer#HomeDirectoryType", + "traits": { + "smithy.api#documentation": "

    The type of landing directory (folder) that you want your users' home directory to be when they log in to the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer \n protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for \n how you want to make Amazon S3 or Amazon EFS paths visible to your users.

    " + } + }, + "HomeDirectoryMappings": { + "target": "com.amazonaws.transfer#HomeDirectoryMappings", + "traits": { + "smithy.api#documentation": "

    Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) \n role provides access to paths in Target. This value\n can be set only when HomeDirectoryType is set to\n LOGICAL.

    \n\n

    The following is an Entry and Target pair example.

    \n\n

    \n [ { \"Entry\": \"/directory1\", \"Target\":\n \"/bucket_name/home/mydirectory\" } ]\n

    \n\n

    In most cases, you can use this value instead of the session policy to lock your user\n down to the designated home directory (\"chroot\"). To do this, you can set\n Entry to / and set Target to the HomeDirectory\n parameter value.

    \n

    The following is an Entry and Target pair example for chroot.

    \n

    \n [ { \"Entry\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

    " } }, "Policy": { "target": "com.amazonaws.transfer#Policy", "traits": { - "smithy.api#documentation": "

    A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

    \n\n \n

    This only applies when the domain of ServerId is S3. EFS does not use session policies.

    \n

    For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead\n of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass\n it in the Policy argument.

    \n\n \n\n

    For an example of a session policy, see Example session\n policy.

    \n\n \n\n

    For more information, see AssumeRole in the Amazon Web Services\n Security Token Service API Reference.

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

    A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

    \n\n \n

    This policy applies only when the domain of ServerId is Amazon S3. Amazon EFS does not use session policies.

    \n

    For session policies, Transfer Family stores the policy as a JSON blob, instead\n of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass\n it in the Policy argument.

    \n\n \n\n

    For an example of a session policy, see Example session\n policy.

    \n\n \n\n

    For more information, see AssumeRole in the Amazon Web Services\n Security Token Service API Reference.

    \n
    " } }, "PosixProfile": { @@ -440,7 +926,7 @@ "Role": { "target": "com.amazonaws.transfer#Role", "traits": { - "smithy.api#documentation": "

    Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS\n file system. The policies attached to this role determine the level of access that you want to provide your users when transferring\n files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the\n server to access your resources when servicing your users' transfer requests.

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

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 \n bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users \n when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust \n relationship that allows the server to access your resources when servicing your users' transfer requests.

    ", "smithy.api#required": {} } }, @@ -535,7 +1021,7 @@ "Steps": { "target": "com.amazonaws.transfer#WorkflowSteps", "traits": { - "smithy.api#documentation": "

    Specifies the details for the steps that are in the specified workflow.

    \n

    \n The TYPE specifies which of the following actions is being taken for this step.\n

    \n
      \n
    • \n

      \n COPY: copy the file to another location

      \n
    • \n
    • \n

      \n CUSTOM: custom step with a lambda target

      \n
    • \n
    • \n

      \n DELETE: delete the file

      \n
    • \n
    • \n

      \n TAG: add a tag to the file

      \n
    • \n
    \n \n

    \n Currently, copying and tagging are supported only on S3.\n

    \n
    \n

    \n For file location, you specify either the S3 bucket and key, or the EFS filesystem ID and path.\n

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

    Specifies the details for the steps that are in the specified workflow.

    \n

    \n The TYPE specifies which of the following actions is being taken for this step.\n

    \n
      \n
    • \n

      \n COPY: Copy the file to another location.

      \n
    • \n
    • \n

      \n CUSTOM: Perform a custom step with an Lambda function target.

      \n
    • \n
    • \n

      \n DELETE: Delete the file.

      \n
    • \n
    • \n

      \n TAG: Add a tag to the file.

      \n
    • \n
    \n \n

    \n Currently, copying and tagging are supported only on S3.\n

    \n
    \n

    For file location, you specify either the S3 bucket and key, or the EFS file system ID\n and path.

    ", "smithy.api#required": {} } }, @@ -674,24 +1160,183 @@ "ExternalId": { "target": "com.amazonaws.transfer#ExternalId", "traits": { - "smithy.api#documentation": "

    A unique identifier that is required to identify specific groups within your directory.\n The users of the group that you associate have access to your Amazon S3 or Amazon EFS\n resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name,\n you can view the SID values by running the following command using Windows PowerShell.

    \n\n

    \n Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid\n

    \n \n

    In that command, replace YourGroupName with the name of your Active Directory group.

    \n\n

    The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces.\n You can also include underscores or any of the following characters: =,.@:/-

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

    A unique identifier that is required to identify specific groups within your directory.\n The users of the group that you associate have access to your Amazon S3 or Amazon EFS\n resources over the enabled protocols using Transfer Family. If you know the group name,\n you can view the SID values by running the following command using Windows PowerShell.

    \n\n

    \n Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid\n

    \n \n

    In that command, replace YourGroupName with the name of your Active Directory group.

    \n\n

    The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces.\n You can also include underscores or any of the following characters: =,.@:/-

    ", "smithy.api#required": {} } } } }, - "com.amazonaws.transfer#DeleteServer": { + "com.amazonaws.transfer#DeleteAgreement": { "type": "operation", "input": { - "target": "com.amazonaws.transfer#DeleteServerRequest" + "target": "com.amazonaws.transfer#DeleteAgreementRequest" }, "output": { "target": "smithy.api#Unit" }, "errors": [ - { - "target": "com.amazonaws.transfer#AccessDeniedException" - }, + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Delete the agreement that's specified in the provided AgreementId.

    " + } + }, + "com.amazonaws.transfer#DeleteAgreementRequest": { + "type": "structure", + "members": { + "AgreementId": { + "target": "com.amazonaws.transfer#AgreementId", + "traits": { + "smithy.api#documentation": "

    A unique identifier for the agreement. This identifier is returned when you create an agreement.

    ", + "smithy.api#required": {} + } + }, + "ServerId": { + "target": "com.amazonaws.transfer#ServerId", + "traits": { + "smithy.api#documentation": "

    The server ID associated with the agreement that you are deleting.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#DeleteCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#DeleteCertificateRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Deletes the certificate that's specified in the CertificateId\n parameter.

    " + } + }, + "com.amazonaws.transfer#DeleteCertificateRequest": { + "type": "structure", + "members": { + "CertificateId": { + "target": "com.amazonaws.transfer#CertificateId", + "traits": { + "smithy.api#documentation": "

    The ID of the certificate object that you are deleting.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#DeleteConnector": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#DeleteConnectorRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Deletes the agreement that's specified in the provided ConnectorId.

    " + } + }, + "com.amazonaws.transfer#DeleteConnectorRequest": { + "type": "structure", + "members": { + "ConnectorId": { + "target": "com.amazonaws.transfer#ConnectorId", + "traits": { + "smithy.api#documentation": "

    The unique identifier for the connector.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#DeleteProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#DeleteProfileRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Deletes the profile that's specified in the ProfileId parameter.

    " + } + }, + "com.amazonaws.transfer#DeleteProfileRequest": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.transfer#ProfileId", + "traits": { + "smithy.api#documentation": "

    The ID of the profile that you are deleting.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#DeleteServer": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#DeleteServerRequest" + }, + "output": { + "target": "smithy.api#Unit" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#AccessDeniedException" + }, { "target": "com.amazonaws.transfer#InternalServiceError" }, @@ -905,7 +1550,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Describes the access that is assigned to the specific file transfer protocol-enabled\n server, as identified by its ServerId property and its\n ExternalID.

    \n \n

    The response from this call returns the properties of the access that is associated with\n the ServerId value that was specified.

    " + "smithy.api#documentation": "

    Describes the access that is assigned to the specific file transfer protocol-enabled\n server, as identified by its ServerId property and its\n ExternalId.

    \n \n

    The response from this call returns the properties of the access that is associated with\n the ServerId value that was specified.

    " } }, "com.amazonaws.transfer#DescribeAccessRequest": { @@ -921,7 +1566,7 @@ "ExternalId": { "target": "com.amazonaws.transfer#ExternalId", "traits": { - "smithy.api#documentation": "

    A unique identifier that is required to identify specific groups within your directory.\n The users of the group that you associate have access to your Amazon S3 or Amazon EFS\n resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name,\n you can view the SID values by running the following command using Windows PowerShell.

    \n\n

    \n Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid\n

    \n \n

    In that command, replace YourGroupName with the name of your Active Directory group.

    \n\n

    The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces.\n You can also include underscores or any of the following characters: =,.@:/-

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

    A unique identifier that is required to identify specific groups within your directory.\n The users of the group that you associate have access to your Amazon S3 or Amazon EFS\n resources over the enabled protocols using Transfer Family. If you know the group name,\n you can view the SID values by running the following command using Windows PowerShell.

    \n\n

    \n Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid\n

    \n \n

    In that command, replace YourGroupName with the name of your Active Directory group.

    \n\n

    The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces.\n You can also include underscores or any of the following characters: =,.@:/-

    ", "smithy.api#required": {} } } @@ -946,13 +1591,13 @@ } } }, - "com.amazonaws.transfer#DescribeExecution": { + "com.amazonaws.transfer#DescribeAgreement": { "type": "operation", "input": { - "target": "com.amazonaws.transfer#DescribeExecutionRequest" + "target": "com.amazonaws.transfer#DescribeAgreementRequest" }, "output": { - "target": "com.amazonaws.transfer#DescribeExecutionResponse" + "target": "com.amazonaws.transfer#DescribeAgreementResponse" }, "errors": [ { @@ -969,54 +1614,47 @@ } ], "traits": { - "smithy.api#documentation": "

    You can use DescribeExecution to check the details of the execution of the specified workflow.

    " + "smithy.api#documentation": "

    Describes the agreement that's identified by the AgreementId.

    " } }, - "com.amazonaws.transfer#DescribeExecutionRequest": { + "com.amazonaws.transfer#DescribeAgreementRequest": { "type": "structure", "members": { - "ExecutionId": { - "target": "com.amazonaws.transfer#ExecutionId", + "AgreementId": { + "target": "com.amazonaws.transfer#AgreementId", "traits": { - "smithy.api#documentation": "

    A unique identifier for the execution of a workflow.

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

    A unique identifier for the agreement. This identifier is returned when you create an agreement.

    ", "smithy.api#required": {} } }, - "WorkflowId": { - "target": "com.amazonaws.transfer#WorkflowId", + "ServerId": { + "target": "com.amazonaws.transfer#ServerId", "traits": { - "smithy.api#documentation": "

    A unique identifier for the workflow.

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

    The server ID that's associated with the agreement.

    ", "smithy.api#required": {} } } } }, - "com.amazonaws.transfer#DescribeExecutionResponse": { + "com.amazonaws.transfer#DescribeAgreementResponse": { "type": "structure", "members": { - "WorkflowId": { - "target": "com.amazonaws.transfer#WorkflowId", - "traits": { - "smithy.api#documentation": "

    A unique identifier for the workflow.

    ", - "smithy.api#required": {} - } - }, - "Execution": { - "target": "com.amazonaws.transfer#DescribedExecution", + "Agreement": { + "target": "com.amazonaws.transfer#DescribedAgreement", "traits": { - "smithy.api#documentation": "

    The structure that contains the details of the workflow' execution.

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

    The details for the specified agreement, returned as a DescribedAgreement\n object.

    ", "smithy.api#required": {} } } } }, - "com.amazonaws.transfer#DescribeSecurityPolicy": { + "com.amazonaws.transfer#DescribeCertificate": { "type": "operation", "input": { - "target": "com.amazonaws.transfer#DescribeSecurityPolicyRequest" + "target": "com.amazonaws.transfer#DescribeCertificateRequest" }, "output": { - "target": "com.amazonaws.transfer#DescribeSecurityPolicyResponse" + "target": "com.amazonaws.transfer#DescribeCertificateResponse" }, "errors": [ { @@ -1033,40 +1671,40 @@ } ], "traits": { - "smithy.api#documentation": "

    Describes the security policy that is attached to your file transfer protocol-enabled\n server. The response contains a description of the security policy's properties. For more\n information about security policies, see Working with security\n policies.

    " + "smithy.api#documentation": "

    Describes the certificate that's identified by the CertificateId.

    " } }, - "com.amazonaws.transfer#DescribeSecurityPolicyRequest": { + "com.amazonaws.transfer#DescribeCertificateRequest": { "type": "structure", "members": { - "SecurityPolicyName": { - "target": "com.amazonaws.transfer#SecurityPolicyName", + "CertificateId": { + "target": "com.amazonaws.transfer#CertificateId", "traits": { - "smithy.api#documentation": "

    Specifies the name of the security policy that is attached to the server.

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

    An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

    ", "smithy.api#required": {} } } } }, - "com.amazonaws.transfer#DescribeSecurityPolicyResponse": { + "com.amazonaws.transfer#DescribeCertificateResponse": { "type": "structure", "members": { - "SecurityPolicy": { - "target": "com.amazonaws.transfer#DescribedSecurityPolicy", + "Certificate": { + "target": "com.amazonaws.transfer#DescribedCertificate", "traits": { - "smithy.api#documentation": "

    An array containing the properties of the security policy.

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

    The details for the specified certificate, returned as an object.

    ", "smithy.api#required": {} } } } }, - "com.amazonaws.transfer#DescribeServer": { + "com.amazonaws.transfer#DescribeConnector": { "type": "operation", "input": { - "target": "com.amazonaws.transfer#DescribeServerRequest" + "target": "com.amazonaws.transfer#DescribeConnectorRequest" }, "output": { - "target": "com.amazonaws.transfer#DescribeServerResponse" + "target": "com.amazonaws.transfer#DescribeConnectorResponse" }, "errors": [ { @@ -1083,92 +1721,40 @@ } ], "traits": { - "smithy.api#documentation": "

    Describes a file transfer protocol-enabled server that you specify by passing the\n ServerId parameter.

    \n\n

    The response contains a description of a server's properties. When you set\n EndpointType to VPC, the response will contain the\n EndpointDetails.

    ", - "smithy.waiters#waitable": { - "ServerOffline": { - "acceptors": [ - { - "state": "success", - "matcher": { - "output": { - "path": "Server.State", - "expected": "OFFLINE", - "comparator": "stringEquals" - } - } - }, - { - "state": "failure", - "matcher": { - "output": { - "path": "Server.State", - "expected": "STOP_FAILED", - "comparator": "stringEquals" - } - } - } - ], - "minDelay": 30 - }, - "ServerOnline": { - "acceptors": [ - { - "state": "success", - "matcher": { - "output": { - "path": "Server.State", - "expected": "ONLINE", - "comparator": "stringEquals" - } - } - }, - { - "state": "failure", - "matcher": { - "output": { - "path": "Server.State", - "expected": "START_FAILED", - "comparator": "stringEquals" - } - } - } - ], - "minDelay": 30 - } - } + "smithy.api#documentation": "

    Describes the connector that's identified by the ConnectorId.\n

    " } }, - "com.amazonaws.transfer#DescribeServerRequest": { + "com.amazonaws.transfer#DescribeConnectorRequest": { "type": "structure", "members": { - "ServerId": { - "target": "com.amazonaws.transfer#ServerId", + "ConnectorId": { + "target": "com.amazonaws.transfer#ConnectorId", "traits": { - "smithy.api#documentation": "

    A system-assigned unique identifier for a server.

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

    The unique identifier for the connector.

    ", "smithy.api#required": {} } } } }, - "com.amazonaws.transfer#DescribeServerResponse": { + "com.amazonaws.transfer#DescribeConnectorResponse": { "type": "structure", "members": { - "Server": { - "target": "com.amazonaws.transfer#DescribedServer", + "Connector": { + "target": "com.amazonaws.transfer#DescribedConnector", "traits": { - "smithy.api#documentation": "

    An array containing the properties of a server with the ServerID you\n specified.

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

    The structure that contains the details of the connector.

    ", "smithy.api#required": {} } } } }, - "com.amazonaws.transfer#DescribeUser": { + "com.amazonaws.transfer#DescribeExecution": { "type": "operation", "input": { - "target": "com.amazonaws.transfer#DescribeUserRequest" + "target": "com.amazonaws.transfer#DescribeExecutionRequest" }, "output": { - "target": "com.amazonaws.transfer#DescribeUserResponse" + "target": "com.amazonaws.transfer#DescribeExecutionResponse" }, "errors": [ { @@ -1185,23 +1771,289 @@ } ], "traits": { - "smithy.api#documentation": "

    Describes the user assigned to the specific file transfer protocol-enabled server, as\n identified by its ServerId property.

    \n\n

    The response from this call returns the properties of the user associated with the\n ServerId value that was specified.

    " + "smithy.api#documentation": "

    You can use DescribeExecution to check the details of the execution of the specified workflow.

    " } }, - "com.amazonaws.transfer#DescribeUserRequest": { + "com.amazonaws.transfer#DescribeExecutionRequest": { "type": "structure", "members": { - "ServerId": { - "target": "com.amazonaws.transfer#ServerId", + "ExecutionId": { + "target": "com.amazonaws.transfer#ExecutionId", "traits": { - "smithy.api#documentation": "

    A system-assigned unique identifier for a server that has this user assigned.

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

    A unique identifier for the execution of a workflow.

    ", "smithy.api#required": {} } }, - "UserName": { - "target": "com.amazonaws.transfer#UserName", + "WorkflowId": { + "target": "com.amazonaws.transfer#WorkflowId", "traits": { - "smithy.api#documentation": "

    The name of the user assigned to one or more servers. User names are part of the sign-in\n credentials to use the Amazon Web Services Transfer Family service and perform file transfer tasks.

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

    A unique identifier for the workflow.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#DescribeExecutionResponse": { + "type": "structure", + "members": { + "WorkflowId": { + "target": "com.amazonaws.transfer#WorkflowId", + "traits": { + "smithy.api#documentation": "

    A unique identifier for the workflow.

    ", + "smithy.api#required": {} + } + }, + "Execution": { + "target": "com.amazonaws.transfer#DescribedExecution", + "traits": { + "smithy.api#documentation": "

    The structure that contains the details of the workflow' execution.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#DescribeProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#DescribeProfileRequest" + }, + "output": { + "target": "com.amazonaws.transfer#DescribeProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Returns the details of the profile that's specified by the ProfileId.

    " + } + }, + "com.amazonaws.transfer#DescribeProfileRequest": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.transfer#ProfileId", + "traits": { + "smithy.api#documentation": "

    The identifier of the profile that you want described.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#DescribeProfileResponse": { + "type": "structure", + "members": { + "Profile": { + "target": "com.amazonaws.transfer#DescribedProfile", + "traits": { + "smithy.api#documentation": "

    The details of the specified profile, returned as an object.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#DescribeSecurityPolicy": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#DescribeSecurityPolicyRequest" + }, + "output": { + "target": "com.amazonaws.transfer#DescribeSecurityPolicyResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Describes the security policy that is attached to your file transfer protocol-enabled\n server. The response contains a description of the security policy's properties. For more\n information about security policies, see Working with security\n policies.

    " + } + }, + "com.amazonaws.transfer#DescribeSecurityPolicyRequest": { + "type": "structure", + "members": { + "SecurityPolicyName": { + "target": "com.amazonaws.transfer#SecurityPolicyName", + "traits": { + "smithy.api#documentation": "

    Specifies the name of the security policy that is attached to the server.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#DescribeSecurityPolicyResponse": { + "type": "structure", + "members": { + "SecurityPolicy": { + "target": "com.amazonaws.transfer#DescribedSecurityPolicy", + "traits": { + "smithy.api#documentation": "

    An array containing the properties of the security policy.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#DescribeServer": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#DescribeServerRequest" + }, + "output": { + "target": "com.amazonaws.transfer#DescribeServerResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Describes a file transfer protocol-enabled server that you specify by passing the\n ServerId parameter.

    \n\n

    The response contains a description of a server's properties. When you set\n EndpointType to VPC, the response will contain the\n EndpointDetails.

    ", + "smithy.waiters#waitable": { + "ServerOffline": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Server.State", + "expected": "OFFLINE", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Server.State", + "expected": "STOP_FAILED", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 30 + }, + "ServerOnline": { + "acceptors": [ + { + "state": "success", + "matcher": { + "output": { + "path": "Server.State", + "expected": "ONLINE", + "comparator": "stringEquals" + } + } + }, + { + "state": "failure", + "matcher": { + "output": { + "path": "Server.State", + "expected": "START_FAILED", + "comparator": "stringEquals" + } + } + } + ], + "minDelay": 30 + } + } + } + }, + "com.amazonaws.transfer#DescribeServerRequest": { + "type": "structure", + "members": { + "ServerId": { + "target": "com.amazonaws.transfer#ServerId", + "traits": { + "smithy.api#documentation": "

    A system-assigned unique identifier for a server.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#DescribeServerResponse": { + "type": "structure", + "members": { + "Server": { + "target": "com.amazonaws.transfer#DescribedServer", + "traits": { + "smithy.api#documentation": "

    An array containing the properties of a server with the ServerID you\n specified.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#DescribeUser": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#DescribeUserRequest" + }, + "output": { + "target": "com.amazonaws.transfer#DescribeUserResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Describes the user assigned to the specific file transfer protocol-enabled server, as\n identified by its ServerId property.

    \n\n

    The response from this call returns the properties of the user associated with the\n ServerId value that was specified.

    " + } + }, + "com.amazonaws.transfer#DescribeUserRequest": { + "type": "structure", + "members": { + "ServerId": { + "target": "com.amazonaws.transfer#ServerId", + "traits": { + "smithy.api#documentation": "

    A system-assigned unique identifier for a server that has this user assigned.

    ", + "smithy.api#required": {} + } + }, + "UserName": { + "target": "com.amazonaws.transfer#UserName", + "traits": { + "smithy.api#documentation": "

    The name of the user assigned to one or more servers. User names are part of the sign-in\n credentials to use the Transfer Family service and perform file transfer tasks.

    ", "smithy.api#required": {} } } @@ -1288,19 +2140,19 @@ "HomeDirectoryMappings": { "target": "com.amazonaws.transfer#HomeDirectoryMappings", "traits": { - "smithy.api#documentation": "

    Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

    \n \n

    In most cases, you can use this value instead of the session policy to lock down the\n associated access to the designated home directory (\"chroot\"). To do this, you\n can set Entry to '/' and set Target to the\n HomeDirectory parameter value.

    " + "smithy.api#documentation": "

    Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) \n role provides access to paths in Target. This value\n can be set only when HomeDirectoryType is set to\n LOGICAL.

    \n \n

    In most cases, you can use this value instead of the session policy to lock down the\n associated access to the designated home directory (\"chroot\"). To do this, you\n can set Entry to '/' and set Target to the\n HomeDirectory parameter value.

    " } }, "HomeDirectoryType": { "target": "com.amazonaws.transfer#HomeDirectoryType", "traits": { - "smithy.api#documentation": "

    The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

    " + "smithy.api#documentation": "

    The type of landing directory (folder) that you want your users' home directory to be when they log in to the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer \n protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for \n how you want to make Amazon S3 or Amazon EFS paths visible to your users.

    " } }, "Policy": { "target": "com.amazonaws.transfer#Policy", "traits": { - "smithy.api#documentation": "

    A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

    " + "smithy.api#documentation": "

    A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

    " } }, "PosixProfile": { @@ -1309,13 +2161,13 @@ "Role": { "target": "com.amazonaws.transfer#Role", "traits": { - "smithy.api#documentation": "

    Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS\n file system. The policies attached to this role determine the level of access that you want to provide your users when transferring\n files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the\n server to access your resources when servicing your users' transfer requests.

    " + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 \n bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users \n when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust \n relationship that allows the server to access your resources when servicing your users' transfer requests.

    " } }, "ExternalId": { "target": "com.amazonaws.transfer#ExternalId", "traits": { - "smithy.api#documentation": "

    A unique identifier that is required to identify specific groups within your directory.\n The users of the group that you associate have access to your Amazon S3 or Amazon EFS\n resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name,\n you can view the SID values by running the following command using Windows PowerShell.

    \n\n

    \n Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid\n

    \n \n

    In that command, replace YourGroupName with the name of your Active Directory group.

    \n\n

    The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces.\n You can also include underscores or any of the following characters: =,.@:/-

    " + "smithy.api#documentation": "

    A unique identifier that is required to identify specific groups within your directory.\n The users of the group that you associate have access to your Amazon S3 or Amazon EFS\n resources over the enabled protocols using Transfer Family. If you know the group name,\n you can view the SID values by running the following command using Windows PowerShell.

    \n\n

    \n Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid\n

    \n \n

    In that command, replace YourGroupName with the name of your Active Directory group.

    \n\n

    The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces.\n You can also include underscores or any of the following characters: =,.@:/-

    " } } }, @@ -1323,10 +2175,223 @@ "smithy.api#documentation": "

    Describes the properties of the access that was specified.

    " } }, - "com.amazonaws.transfer#DescribedExecution": { + "com.amazonaws.transfer#DescribedAgreement": { "type": "structure", "members": { - "ExecutionId": { + "Arn": { + "target": "com.amazonaws.transfer#Arn", + "traits": { + "smithy.api#documentation": "

    The unique Amazon Resource Name (ARN) for the agreement.

    ", + "smithy.api#required": {} + } + }, + "AgreementId": { + "target": "com.amazonaws.transfer#AgreementId", + "traits": { + "smithy.api#documentation": "

    A unique identifier for the agreement. This identifier is returned when you create an agreement.

    " + } + }, + "Description": { + "target": "com.amazonaws.transfer#Description", + "traits": { + "smithy.api#documentation": "

    The name or short description that's used to identify the agreement.

    " + } + }, + "Status": { + "target": "com.amazonaws.transfer#AgreementStatusType", + "traits": { + "smithy.api#documentation": "

    The current status of the agreement, either ACTIVE or\n INACTIVE.

    " + } + }, + "ServerId": { + "target": "com.amazonaws.transfer#ServerId", + "traits": { + "smithy.api#documentation": "

    A system-assigned unique identifier for a server instance. This identifier indicates the\n specific server that the agreement uses.

    " + } + }, + "LocalProfileId": { + "target": "com.amazonaws.transfer#ProfileId", + "traits": { + "smithy.api#documentation": "

    A unique identifier for the AS2 process.

    " + } + }, + "PartnerProfileId": { + "target": "com.amazonaws.transfer#ProfileId", + "traits": { + "smithy.api#documentation": "

    A unique identifier for the partner in the agreement.

    " + } + }, + "BaseDirectory": { + "target": "com.amazonaws.transfer#HomeDirectory", + "traits": { + "smithy.api#documentation": "

    The landing directory (folder) for files that are transferred by using the AS2\n protocol.

    " + } + }, + "AccessRole": { + "target": "com.amazonaws.transfer#Role", + "traits": { + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that grants access to at least the \n HomeDirectory of your users' Amazon S3 buckets.

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

    Key-value pairs that can be used to group and search for agreements.

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

    Describes the properties of an agreement.

    " + } + }, + "com.amazonaws.transfer#DescribedCertificate": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.transfer#Arn", + "traits": { + "smithy.api#documentation": "

    The unique Amazon Resource Name (ARN) for the certificate.

    ", + "smithy.api#required": {} + } + }, + "CertificateId": { + "target": "com.amazonaws.transfer#CertificateId", + "traits": { + "smithy.api#documentation": "

    An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

    " + } + }, + "Usage": { + "target": "com.amazonaws.transfer#CertificateUsageType", + "traits": { + "smithy.api#documentation": "

    Specifies whether this certificate is used for signing or encryption.

    " + } + }, + "Status": { + "target": "com.amazonaws.transfer#CertificateStatusType", + "traits": { + "smithy.api#documentation": "

    The certificate can be either ACTIVE, PENDING_ROTATION, or\n INACTIVE. PENDING_ROTATION means that this certificate will\n replace the current certificate when it expires.

    " + } + }, + "Certificate": { + "target": "com.amazonaws.transfer#CertificateBodyType", + "traits": { + "smithy.api#documentation": "

    The file name for the certificate.

    " + } + }, + "CertificateChain": { + "target": "com.amazonaws.transfer#CertificateChainType", + "traits": { + "smithy.api#documentation": "

    The list of certificates that make up the chain for the certificate.

    " + } + }, + "ActiveDate": { + "target": "com.amazonaws.transfer#CertDate", + "traits": { + "smithy.api#documentation": "

    An optional date that specifies when the certificate becomes active.

    " + } + }, + "InactiveDate": { + "target": "com.amazonaws.transfer#CertDate", + "traits": { + "smithy.api#documentation": "

    An optional date that specifies when the certificate becomes inactive.

    " + } + }, + "Serial": { + "target": "com.amazonaws.transfer#CertSerial", + "traits": { + "smithy.api#documentation": "

    The serial number for the certificate.

    " + } + }, + "NotBeforeDate": { + "target": "com.amazonaws.transfer#CertDate", + "traits": { + "smithy.api#documentation": "

    The earliest date that the certificate is valid.

    " + } + }, + "NotAfterDate": { + "target": "com.amazonaws.transfer#CertDate", + "traits": { + "smithy.api#documentation": "

    The final date that the certificate is\n valid.

    " + } + }, + "Type": { + "target": "com.amazonaws.transfer#CertificateType", + "traits": { + "smithy.api#documentation": "

    If a private key has been specified for the certificate, its type is CERTIFICATE_WITH_PRIVATE_KEY. If there is no private key, the type is CERTIFICATE.

    " + } + }, + "Description": { + "target": "com.amazonaws.transfer#Description", + "traits": { + "smithy.api#documentation": "

    The name or description that's used to identity the certificate.

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

    Key-value pairs that can be used to group and search for certificates.

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

    Describes the properties of a certificate.

    " + } + }, + "com.amazonaws.transfer#DescribedConnector": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.transfer#Arn", + "traits": { + "smithy.api#documentation": "

    The unique Amazon Resource Name (ARN) for the connector.

    ", + "smithy.api#required": {} + } + }, + "ConnectorId": { + "target": "com.amazonaws.transfer#ConnectorId", + "traits": { + "smithy.api#documentation": "

    The unique identifier for the connector.

    " + } + }, + "Url": { + "target": "com.amazonaws.transfer#Url", + "traits": { + "smithy.api#documentation": "

    The URL of the partner's AS2 endpoint.

    " + } + }, + "As2Config": { + "target": "com.amazonaws.transfer#As2ConnectorConfig", + "traits": { + "smithy.api#documentation": "

    A structure that contains the parameters for a connector object.

    " + } + }, + "AccessRole": { + "target": "com.amazonaws.transfer#Role", + "traits": { + "smithy.api#documentation": "

    With AS2, you can send files by calling StartFileTransfer and specifying the\n file paths in the request parameter, SendFilePaths. We use the file’s parent\n directory (for example, for --send-file-paths /bucket/dir/file.txt, parent\n directory is /bucket/dir/) to temporarily store a processed AS2 message file,\n store the MDN when we receive them from the partner, and write a final JSON file containing\n relevant metadata of the transmission. So, the AccessRole needs to provide read\n and write access to the parent directory of the file location used in the\n StartFileTransfer request. Additionally, you need to provide read and write\n access to the parent directory of the files that you intend to send with\n StartFileTransfer.

    " + } + }, + "LoggingRole": { + "target": "com.amazonaws.transfer#Role", + "traits": { + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a connector to turn\n on CloudWatch logging for Amazon S3 events. When set, you can view connector\n activity in your CloudWatch logs.

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

    Key-value pairs that can be used to group and search for connectors.

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

    Describes the parameters for the connector, as identified by the\n ConnectorId.

    " + } + }, + "com.amazonaws.transfer#DescribedExecution": { + "type": "structure", + "members": { + "ExecutionId": { "target": "com.amazonaws.transfer#ExecutionId", "traits": { "smithy.api#documentation": "

    A unique identifier for the execution of a workflow.

    " @@ -1341,7 +2406,7 @@ "ServiceMetadata": { "target": "com.amazonaws.transfer#ServiceMetadata", "traits": { - "smithy.api#documentation": "

    A container object for the session details associated with a workflow.

    " + "smithy.api#documentation": "

    A container object for the session details that are associated with a workflow.

    " } }, "ExecutionRole": { @@ -1376,6 +2441,51 @@ "smithy.api#documentation": "

    The details for an execution object.

    " } }, + "com.amazonaws.transfer#DescribedProfile": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.transfer#Arn", + "traits": { + "smithy.api#documentation": "

    The unique Amazon Resource Name (ARN) for the profile.

    ", + "smithy.api#required": {} + } + }, + "ProfileId": { + "target": "com.amazonaws.transfer#ProfileId", + "traits": { + "smithy.api#documentation": "

    A unique identifier for the local or partner AS2 profile.

    " + } + }, + "ProfileType": { + "target": "com.amazonaws.transfer#ProfileType", + "traits": { + "smithy.api#documentation": "

    Indicates whether to list only LOCAL type profiles or only PARTNER type profiles. \n If not supplied in the request, the command lists all types of profiles.

    " + } + }, + "As2Id": { + "target": "com.amazonaws.transfer#As2Id", + "traits": { + "smithy.api#documentation": "

    The unique identifier for the AS2 process.

    " + } + }, + "CertificateIds": { + "target": "com.amazonaws.transfer#CertificateIds", + "traits": { + "smithy.api#documentation": "

    An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

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

    Key-value pairs that can be used to group and search for profiles.

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

    The details for a local or partner AS2 profile.\n profile.

    " + } + }, "com.amazonaws.transfer#DescribedSecurityPolicy": { "type": "structure", "members": { @@ -1452,7 +2562,7 @@ "EndpointDetails": { "target": "com.amazonaws.transfer#EndpointDetails", "traits": { - "smithy.api#documentation": "

    The virtual private cloud (VPC) endpoint settings that are configured for your server.\n When you host your endpoint within your VPC, you can make it accessible only to resources\n within your VPC, or you can attach Elastic IP addresses and make it accessible to clients over\n the internet. Your VPC's default security groups are automatically assigned to your\n endpoint.

    " + "smithy.api#documentation": "

    The virtual private cloud (VPC) endpoint settings that are configured for your server.\n When you host your endpoint within your VPC, you can make your endpoint accessible only to resources\n within your VPC, or you can attach Elastic IP addresses and make your endpoint accessible to clients over\n the internet. Your VPC's default security groups are automatically assigned to your\n endpoint.

    " } }, "EndpointType": { @@ -1476,25 +2586,25 @@ "IdentityProviderType": { "target": "com.amazonaws.transfer#IdentityProviderType", "traits": { - "smithy.api#documentation": "

    Specifies the mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Amazon Web Services Transfer Family service.

    \n

    Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to\n provide a Directory ID using the IdentityProviderDetails parameter.

    \n

    Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call\n for authentication using the IdentityProviderDetails parameter.

    \n

    Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value,\n you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

    " + "smithy.api#documentation": "

    The mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Transfer Family service.

    \n

    Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Directory Service for Microsoft Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connector. This option also requires you to\n provide a Directory ID by using the IdentityProviderDetails parameter.

    \n

    Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an Amazon API Gateway endpoint URL to call\n for authentication by using the IdentityProviderDetails parameter.

    \n

    Use the AWS_LAMBDA value to directly use an Lambda function as your identity provider. \n If you choose this value, you must specify the ARN for the Lambda function in the Function parameter \n or the IdentityProviderDetails data type.

    " } }, "LoggingRole": { "target": "com.amazonaws.transfer#Role", "traits": { - "smithy.api#documentation": "

    Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn\n on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in\n your CloudWatch logs.

    " + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a server to turn\n on Amazon CloudWatch logging for Amazon S3 or Amazon EFSevents. When set, you can view user activity in\n your CloudWatch logs.

    " } }, "PostAuthenticationLoginBanner": { "target": "com.amazonaws.transfer#PostAuthenticationLoginBanner", "traits": { - "smithy.api#documentation": "

    Specify a string to display when users connect to a server. This string is displayed after the user authenticates.

    \n \n

    The SFTP protocol does not support post-authentication display banners.

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

    Specifies a string to display when users connect to a server. This string is displayed after the user authenticates.

    \n \n

    The SFTP protocol does not support post-authentication display banners.

    \n
    " } }, "PreAuthenticationLoginBanner": { "target": "com.amazonaws.transfer#PreAuthenticationLoginBanner", "traits": { - "smithy.api#documentation": "

    Specify a string to display when users connect to a server. This string is displayed before the user authenticates.\n For example, the following banner displays details about using the system.

    \n

    \n This system is for the use of authorized users only. Individuals using this computer system without authority,\n or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by\n system personnel.\n

    " + "smithy.api#documentation": "

    Specifies a string to display when users connect to a server. This string is displayed before the user authenticates.\n For example, the following banner displays details about using the system:

    \n \n

    \n This system is for the use of authorized users only. Individuals using this computer system without authority,\n or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by\n system personnel.\n

    " } }, "Protocols": { @@ -1518,7 +2628,7 @@ "State": { "target": "com.amazonaws.transfer#State", "traits": { - "smithy.api#documentation": "

    Specifies the condition of a server for the server that was described. A value of\n ONLINE indicates that the server can accept jobs and transfer files. A\n State value of OFFLINE means that the server cannot perform file\n transfer operations.

    \n\n

    The states of STARTING and STOPPING indicate that the server is\n in an intermediate state, either not fully able to respond, or not fully offline. The values\n of START_FAILED or STOP_FAILED can indicate an error\n condition.

    " + "smithy.api#documentation": "

    The condition of the server that was described. A value of\n ONLINE indicates that the server can accept jobs and transfer files. A\n State value of OFFLINE means that the server cannot perform file\n transfer operations.

    \n\n

    The states of STARTING and STOPPING indicate that the server is\n in an intermediate state, either not fully able to respond, or not fully offline. The values\n of START_FAILED or STOP_FAILED can indicate an error\n condition.

    " } }, "Tags": { @@ -1536,7 +2646,7 @@ "WorkflowDetails": { "target": "com.amazonaws.transfer#WorkflowDetails", "traits": { - "smithy.api#documentation": "

    Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.

    " + "smithy.api#documentation": "

    Specifies the workflow ID for the workflow to assign and the execution role that's used for executing the workflow.

    " } } }, @@ -1563,19 +2673,19 @@ "HomeDirectoryMappings": { "target": "com.amazonaws.transfer#HomeDirectoryMappings", "traits": { - "smithy.api#documentation": "

    Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

    \n\n

    In most cases, you can use this value instead of the session policy to lock your user\n down to the designated home directory (\"chroot\"). To do this, you can set\n Entry to '/' and set Target to the HomeDirectory\n parameter value.

    " + "smithy.api#documentation": "

    Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) \n role provides access to paths in Target. This value\n can be set only when HomeDirectoryType is set to\n LOGICAL.

    \n\n

    In most cases, you can use this value instead of the session policy to lock your user\n down to the designated home directory (\"chroot\"). To do this, you can set\n Entry to '/' and set Target to the HomeDirectory\n parameter value.

    " } }, "HomeDirectoryType": { "target": "com.amazonaws.transfer#HomeDirectoryType", "traits": { - "smithy.api#documentation": "

    The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

    " + "smithy.api#documentation": "

    The type of landing directory (folder) that you want your users' home directory to be when they log in to the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer \n protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for \n how you want to make Amazon S3 or Amazon EFS paths visible to your users.

    " } }, "Policy": { "target": "com.amazonaws.transfer#Policy", "traits": { - "smithy.api#documentation": "

    A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

    " + "smithy.api#documentation": "

    A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

    " } }, "PosixProfile": { @@ -1587,7 +2697,7 @@ "Role": { "target": "com.amazonaws.transfer#Role", "traits": { - "smithy.api#documentation": "

    Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS\n file system. The policies attached to this role determine the level of access that you want to provide your users when transferring\n files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the\n server to access your resources when servicing your users' transfer requests.

    " + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 \n bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users \n when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust \n relationship that allows the server to access your resources when servicing your users' transfer requests.

    " } }, "SshPublicKeys": { @@ -1658,6 +2768,16 @@ "smithy.api#documentation": "

    Describes the properties of the specified workflow

    " } }, + "com.amazonaws.transfer#Description": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 200 + }, + "smithy.api#pattern": "^[\\p{Graph}]+$" + } + }, "com.amazonaws.transfer#DirectoryId": { "type": "string", "traits": { @@ -1723,6 +2843,25 @@ "smithy.api#pattern": "^[^\\x00]+$" } }, + "com.amazonaws.transfer#EncryptionAlg": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "AES128_CBC", + "name": "AES128_CBC" + }, + { + "value": "AES192_CBC", + "name": "AES192_CBC" + }, + { + "value": "AES256_CBC", + "name": "AES256_CBC" + } + ] + } + }, "com.amazonaws.transfer#EndpointDetails": { "type": "structure", "members": { @@ -1903,7 +3042,7 @@ "StepType": { "target": "com.amazonaws.transfer#WorkflowStepType", "traits": { - "smithy.api#documentation": "

    One of the available step types.

    \n
      \n
    • \n

      \n COPY: copy the file to another location

      \n
    • \n
    • \n

      \n CUSTOM: custom step with a lambda target

      \n
    • \n
    • \n

      \n DELETE: delete the file

      \n
    • \n
    • \n

      \n TAG: add a tag to the file

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

    One of the available step types.

    \n
      \n
    • \n

      \n COPY: Copy the file to another location.

      \n
    • \n
    • \n

      \n CUSTOM: Perform a custom step with an Lambda function target.

      \n
    • \n
    • \n

      \n DELETE: Delete the file.

      \n
    • \n
    • \n

      \n TAG: Add a tag to the file.

      \n
    • \n
    " } }, "Outputs": { @@ -1915,7 +3054,7 @@ "Error": { "target": "com.amazonaws.transfer#ExecutionError", "traits": { - "smithy.api#documentation": "

    Specifies the details for an error, if it occurred during execution of the specified workfow step.

    " + "smithy.api#documentation": "

    Specifies the details for an error, if it occurred during execution of the specified\n workflow step.

    " } } }, @@ -1951,7 +3090,7 @@ "S3FileLocation": { "target": "com.amazonaws.transfer#S3FileLocation", "traits": { - "smithy.api#documentation": "

    Specifies the S3 details for the file being used, such as bucket, Etag, and so forth.

    " + "smithy.api#documentation": "

    Specifies the S3 details for the file being used, such as bucket, ETag, and so\n forth.

    " } }, "EfsFileLocation": { @@ -1965,6 +3104,28 @@ "smithy.api#documentation": "

    Specifies the Amazon S3 or EFS file details to be used in the step.

    " } }, + "com.amazonaws.transfer#FilePath": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^(.)+$" + } + }, + "com.amazonaws.transfer#FilePaths": { + "type": "list", + "member": { + "target": "com.amazonaws.transfer#FilePath" + }, + "traits": { + "smithy.api#length": { + "min": 1, + "max": 10 + } + } + }, "com.amazonaws.transfer#Fips": { "type": "boolean", "traits": { @@ -2071,7 +3232,7 @@ "DirectoryId": { "target": "com.amazonaws.transfer#DirectoryId", "traits": { - "smithy.api#documentation": "

    The identifier of the Amazon Web Services Directory Service directory that you want to stop sharing.

    " + "smithy.api#documentation": "

    The identifier of the Directory Service directory that you want to stop sharing.

    " } }, "Function": { @@ -2109,6 +3270,99 @@ ] } }, + "com.amazonaws.transfer#ImportCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#ImportCertificateRequest" + }, + "output": { + "target": "com.amazonaws.transfer#ImportCertificateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Imports the signing and encryption certificates that you need to create local (AS2)\n profiles and partner\n profiles.

    " + } + }, + "com.amazonaws.transfer#ImportCertificateRequest": { + "type": "structure", + "members": { + "Usage": { + "target": "com.amazonaws.transfer#CertificateUsageType", + "traits": { + "smithy.api#documentation": "

    Specifies whether this certificate is used for signing or encryption.

    ", + "smithy.api#required": {} + } + }, + "Certificate": { + "target": "com.amazonaws.transfer#CertificateBodyType", + "traits": { + "smithy.api#documentation": "

    The file that contains the certificate to import.

    ", + "smithy.api#required": {} + } + }, + "CertificateChain": { + "target": "com.amazonaws.transfer#CertificateChainType", + "traits": { + "smithy.api#documentation": "

    An optional list of certificates that make up the chain for the certificate that's being\n imported.

    " + } + }, + "PrivateKey": { + "target": "com.amazonaws.transfer#PrivateKeyType", + "traits": { + "smithy.api#documentation": "

    The file that contains the private key for the certificate that's being imported.

    " + } + }, + "ActiveDate": { + "target": "com.amazonaws.transfer#CertDate", + "traits": { + "smithy.api#documentation": "

    An optional date that specifies when the certificate becomes active.

    " + } + }, + "InactiveDate": { + "target": "com.amazonaws.transfer#CertDate", + "traits": { + "smithy.api#documentation": "

    An optional date that specifies when the certificate becomes inactive.

    " + } + }, + "Description": { + "target": "com.amazonaws.transfer#Description", + "traits": { + "smithy.api#documentation": "

    A short description that helps identify the certificate.

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

    Key-value pairs that can be used to group and search for certificates.

    " + } + } + } + }, + "com.amazonaws.transfer#ImportCertificateResponse": { + "type": "structure", + "members": { + "CertificateId": { + "target": "com.amazonaws.transfer#CertificateId", + "traits": { + "smithy.api#documentation": "

    An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

    ", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.transfer#ImportSshPublicKey": { "type": "operation", "input": { @@ -2191,86 +3445,387 @@ "smithy.api#required": {} } } - }, + }, + "traits": { + "smithy.api#documentation": "

    Identifies the user, the server they belong to, and the identifier of the SSH public key\n associated with that user. A user can have more than one key on each server that they are\n associated with.

    " + } + }, + "com.amazonaws.transfer#InputFileLocation": { + "type": "structure", + "members": { + "S3FileLocation": { + "target": "com.amazonaws.transfer#S3InputFileLocation", + "traits": { + "smithy.api#documentation": "

    Specifies the details for the S3 file being copied.

    " + } + }, + "EfsFileLocation": { + "target": "com.amazonaws.transfer#EfsFileLocation", + "traits": { + "smithy.api#documentation": "

    Reserved for future use.

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

    Specifies the location for the file being copied. Only applicable for the Copy type of workflow steps.

    " + } + }, + "com.amazonaws.transfer#InternalServiceError": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.transfer#Message", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

    This exception is thrown when an error occurs in the Amazon Web ServicesTransfer Family service.

    ", + "smithy.api#error": "server", + "smithy.api#httpError": 503 + } + }, + "com.amazonaws.transfer#InvalidNextTokenException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.transfer#Message", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

    The NextToken parameter that was passed is invalid.

    ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.transfer#InvalidRequestException": { + "type": "structure", + "members": { + "Message": { + "target": "com.amazonaws.transfer#Message", + "traits": { + "smithy.api#required": {} + } + } + }, + "traits": { + "smithy.api#documentation": "

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

    ", + "smithy.api#error": "client", + "smithy.api#httpError": 400 + } + }, + "com.amazonaws.transfer#ListAccesses": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#ListAccessesRequest" + }, + "output": { + "target": "com.amazonaws.transfer#ListAccessesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidNextTokenException" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Lists the details for all the accesses you have on your server.

    ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Accesses", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.transfer#ListAccessesRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.transfer#MaxResults", + "traits": { + "smithy.api#documentation": "

    Specifies the maximum number of access SIDs to return.

    " + } + }, + "NextToken": { + "target": "com.amazonaws.transfer#NextToken", + "traits": { + "smithy.api#documentation": "

    When you can get additional results from the ListAccesses call, a\n NextToken parameter is returned in the output. You can then pass in a\n subsequent command to the NextToken parameter to continue listing additional\n accesses.

    " + } + }, + "ServerId": { + "target": "com.amazonaws.transfer#ServerId", + "traits": { + "smithy.api#documentation": "

    A system-assigned unique identifier for a server that has users assigned to it.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#ListAccessesResponse": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.transfer#NextToken", + "traits": { + "smithy.api#documentation": "

    When you can get additional results from the ListAccesses call, a\n NextToken parameter is returned in the output. You can then pass in a\n subsequent command to the NextToken parameter to continue listing additional\n accesses.

    " + } + }, + "ServerId": { + "target": "com.amazonaws.transfer#ServerId", + "traits": { + "smithy.api#documentation": "

    A system-assigned unique identifier for a server that has users assigned to it.

    ", + "smithy.api#required": {} + } + }, + "Accesses": { + "target": "com.amazonaws.transfer#ListedAccesses", + "traits": { + "smithy.api#documentation": "

    Returns the accesses and their properties for the ServerId value that you\n specify.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#ListAgreements": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#ListAgreementsRequest" + }, + "output": { + "target": "com.amazonaws.transfer#ListAgreementsResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidNextTokenException" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Returns a list of the agreements for the server that's identified by the\n ServerId that you supply. If you want to limit the results to a certain number,\n supply a value for the MaxResults parameter. If you ran the command previously\n and received a value for NextToken, you can supply that value to continue listing\n agreements from where you left off.

    ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Agreements", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.transfer#ListAgreementsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.transfer#MaxResults", + "traits": { + "smithy.api#documentation": "

    The maximum number of agreements to return.

    " + } + }, + "NextToken": { + "target": "com.amazonaws.transfer#NextToken", + "traits": { + "smithy.api#documentation": "

    When you can get additional results from the ListAgreements call, a\n NextToken parameter is returned in the output. You can then pass in a\n subsequent command to the NextToken parameter to continue listing additional\n agreements.

    " + } + }, + "ServerId": { + "target": "com.amazonaws.transfer#ServerId", + "traits": { + "smithy.api#documentation": "

    The identifier of the server for which you want a list of agreements.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#ListAgreementsResponse": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.transfer#NextToken", + "traits": { + "smithy.api#documentation": "

    Returns a token that you can use to call ListAgreements again and receive\n additional results, if there are any.

    " + } + }, + "Agreements": { + "target": "com.amazonaws.transfer#ListedAgreements", + "traits": { + "smithy.api#documentation": "

    Returns an array, where each item contains the details of an agreement.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#ListCertificates": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#ListCertificatesRequest" + }, + "output": { + "target": "com.amazonaws.transfer#ListCertificatesResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidNextTokenException" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], "traits": { - "smithy.api#documentation": "

    Identifies the user, the server they belong to, and the identifier of the SSH public key\n associated with that user. A user can have more than one key on each server that they are\n associated with.

    " + "smithy.api#documentation": "

    Returns a list of the current certificates that have been imported into Transfer Family. If you want to\n limit the results to a certain number, supply a value for the MaxResults\n parameter. If you ran the command previously and received a value for the\n NextToken parameter, you can supply that value to continue listing certificates\n from where you left off.

    ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Certificates", + "pageSize": "MaxResults" + } } }, - "com.amazonaws.transfer#InputFileLocation": { + "com.amazonaws.transfer#ListCertificatesRequest": { "type": "structure", "members": { - "S3FileLocation": { - "target": "com.amazonaws.transfer#S3InputFileLocation", + "MaxResults": { + "target": "com.amazonaws.transfer#MaxResults", "traits": { - "smithy.api#documentation": "

    Specifies the details for the S3 file being copied.

    " + "smithy.api#documentation": "

    The maximum number of certificates to return.

    " } }, - "EfsFileLocation": { - "target": "com.amazonaws.transfer#EfsFileLocation", + "NextToken": { + "target": "com.amazonaws.transfer#NextToken", "traits": { - "smithy.api#documentation": "

    Reserved for future use.

    " + "smithy.api#documentation": "

    When you can get additional results from the ListCertificates call, a\n NextToken parameter is returned in the output. You can then pass in a\n subsequent command to the NextToken parameter to continue listing additional\n certificates.

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

    Specifies the location for the file being copied. Only applicable for the Copy type of workflow steps.

    " } }, - "com.amazonaws.transfer#InternalServiceError": { + "com.amazonaws.transfer#ListCertificatesResponse": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.transfer#Message", + "NextToken": { + "target": "com.amazonaws.transfer#NextToken", + "traits": { + "smithy.api#documentation": "

    Returns the next token, which you can use to list the next certificate.

    " + } + }, + "Certificates": { + "target": "com.amazonaws.transfer#ListedCertificates", "traits": { + "smithy.api#documentation": "

    Returns an array of the certificates that are specified in the\n ListCertificates call.

    ", "smithy.api#required": {} } } + } + }, + "com.amazonaws.transfer#ListConnectors": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#ListConnectorsRequest" + }, + "output": { + "target": "com.amazonaws.transfer#ListConnectorsResponse" }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidNextTokenException" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], "traits": { - "smithy.api#documentation": "

    This exception is thrown when an error occurs in the Amazon Web ServicesTransfer Family service.

    ", - "smithy.api#error": "server", - "smithy.api#httpError": 503 + "smithy.api#documentation": "

    Lists the connectors for the specified Region.

    ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Connectors", + "pageSize": "MaxResults" + } } }, - "com.amazonaws.transfer#InvalidNextTokenException": { + "com.amazonaws.transfer#ListConnectorsRequest": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.transfer#Message", + "MaxResults": { + "target": "com.amazonaws.transfer#MaxResults", "traits": { - "smithy.api#required": {} + "smithy.api#documentation": "

    The maximum number of connectors to return.

    " + } + }, + "NextToken": { + "target": "com.amazonaws.transfer#NextToken", + "traits": { + "smithy.api#documentation": "

    When you can get additional results from the ListConnectors call, a\n NextToken parameter is returned in the output. You can then pass in a\n subsequent command to the NextToken parameter to continue listing additional\n connectors.

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

    The NextToken parameter that was passed is invalid.

    ", - "smithy.api#error": "client", - "smithy.api#httpError": 400 } }, - "com.amazonaws.transfer#InvalidRequestException": { + "com.amazonaws.transfer#ListConnectorsResponse": { "type": "structure", "members": { - "Message": { - "target": "com.amazonaws.transfer#Message", + "NextToken": { + "target": "com.amazonaws.transfer#NextToken", + "traits": { + "smithy.api#documentation": "

    Returns a token that you can use to call ListConnectors again and receive\n additional results, if there are any.

    " + } + }, + "Connectors": { + "target": "com.amazonaws.transfer#ListedConnectors", "traits": { + "smithy.api#documentation": "

    Returns an array, where each item contains the details of a connector.

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

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

    ", - "smithy.api#error": "client", - "smithy.api#httpError": 400 } }, - "com.amazonaws.transfer#ListAccesses": { + "com.amazonaws.transfer#ListExecutions": { "type": "operation", "input": { - "target": "com.amazonaws.transfer#ListAccessesRequest" + "target": "com.amazonaws.transfer#ListExecutionsRequest" }, "output": { - "target": "com.amazonaws.transfer#ListAccessesResponse" + "target": "com.amazonaws.transfer#ListExecutionsResponse" }, "errors": [ { @@ -2290,71 +3845,71 @@ } ], "traits": { - "smithy.api#documentation": "

    Lists the details for all the accesses you have on your server.

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

    Lists all executions for the specified workflow.

    ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", - "items": "Accesses", + "items": "Executions", "pageSize": "MaxResults" } } }, - "com.amazonaws.transfer#ListAccessesRequest": { + "com.amazonaws.transfer#ListExecutionsRequest": { "type": "structure", "members": { "MaxResults": { "target": "com.amazonaws.transfer#MaxResults", "traits": { - "smithy.api#documentation": "

    Specifies the maximum number of access SIDs to return.

    " + "smithy.api#documentation": "

    Specifies the maximum number of executions to return.

    " } }, "NextToken": { "target": "com.amazonaws.transfer#NextToken", "traits": { - "smithy.api#documentation": "

    When you can get additional results from the ListAccesses call, a\n NextToken parameter is returned in the output. You can then pass in a\n subsequent command to the NextToken parameter to continue listing additional\n accesses.

    " + "smithy.api#documentation": "

    \n ListExecutions returns the NextToken parameter in the output.\n You can then pass the NextToken parameter in a subsequent command to\n continue listing additional executions.

    \n

    \n This is useful for pagination, for instance.\n If you have 100 executions for a workflow, you might only want to list first 10. If so, call the API by specifying the max-results:\n

    \n

    \n aws transfer list-executions --max-results 10\n

    \n

    \n This returns details for the first 10 executions, as well as the pointer (NextToken) to the eleventh execution.\n You can now call the API again, supplying the NextToken value you received:\n

    \n

    \n aws transfer list-executions --max-results 10 --next-token $somePointerReturnedFromPreviousListResult\n

    \n

    \n This call returns the next 10 executions, the 11th through the 20th. You can then repeat the call until the details\n for all 100 executions have been returned.\n

    " } }, - "ServerId": { - "target": "com.amazonaws.transfer#ServerId", + "WorkflowId": { + "target": "com.amazonaws.transfer#WorkflowId", "traits": { - "smithy.api#documentation": "

    A system-assigned unique identifier for a server that has users assigned to it.

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

    A unique identifier for the workflow.

    ", "smithy.api#required": {} } } } }, - "com.amazonaws.transfer#ListAccessesResponse": { + "com.amazonaws.transfer#ListExecutionsResponse": { "type": "structure", "members": { "NextToken": { "target": "com.amazonaws.transfer#NextToken", "traits": { - "smithy.api#documentation": "

    When you can get additional results from the ListAccesses call, a\n NextToken parameter is returned in the output. You can then pass in a\n subsequent command to the NextToken parameter to continue listing additional\n accesses.

    " + "smithy.api#documentation": "

    \n ListExecutions returns the NextToken parameter in the output.\n You can then pass the NextToken parameter in a subsequent command to\n continue listing additional executions.

    " } }, - "ServerId": { - "target": "com.amazonaws.transfer#ServerId", + "WorkflowId": { + "target": "com.amazonaws.transfer#WorkflowId", "traits": { - "smithy.api#documentation": "

    A system-assigned unique identifier for a server that has users assigned to it.

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

    A unique identifier for the workflow.

    ", "smithy.api#required": {} } }, - "Accesses": { - "target": "com.amazonaws.transfer#ListedAccesses", + "Executions": { + "target": "com.amazonaws.transfer#ListedExecutions", "traits": { - "smithy.api#documentation": "

    Returns the accesses and their properties for the ServerId value that you\n specify.

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

    Returns the details for each execution.

    \n
      \n
    • \n

      \n NextToken: returned from a call to several APIs,\n you can use pass it to a subsequent command to continue listing additional executions.

      \n
    • \n
    • \n

      \n StartTime: timestamp indicating when the execution began.

      \n
    • \n
    • \n

      \n Executions: details of the execution, including the execution ID, initial file location,\n and Service metadata.

      \n
    • \n
    • \n

      \n Status: one of the following values:\n IN_PROGRESS, COMPLETED, EXCEPTION, HANDLING_EXEPTION.\n

      \n
    • \n
    ", "smithy.api#required": {} } } } }, - "com.amazonaws.transfer#ListExecutions": { + "com.amazonaws.transfer#ListProfiles": { "type": "operation", "input": { - "target": "com.amazonaws.transfer#ListExecutionsRequest" + "target": "com.amazonaws.transfer#ListProfilesRequest" }, "output": { - "target": "com.amazonaws.transfer#ListExecutionsResponse" + "target": "com.amazonaws.transfer#ListProfilesResponse" }, "errors": [ { @@ -2374,59 +3929,51 @@ } ], "traits": { - "smithy.api#documentation": "

    Lists all executions for the specified workflow.

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

    Returns a list of the profiles for your system. If you want to limit the results to a\n certain number, supply a value for the MaxResults parameter. If you ran the\n command previously and received a value for NextToken, you can supply that value\n to continue listing profiles from where you left off.

    ", "smithy.api#paginated": { "inputToken": "NextToken", "outputToken": "NextToken", - "items": "Executions", + "items": "Profiles", "pageSize": "MaxResults" } } }, - "com.amazonaws.transfer#ListExecutionsRequest": { + "com.amazonaws.transfer#ListProfilesRequest": { "type": "structure", "members": { "MaxResults": { "target": "com.amazonaws.transfer#MaxResults", "traits": { - "smithy.api#documentation": "

    Specifies the aximum number of executions to return.

    " + "smithy.api#documentation": "

    The maximum number of profiles to return.

    " } }, "NextToken": { "target": "com.amazonaws.transfer#NextToken", "traits": { - "smithy.api#documentation": "

    \n ListExecutions returns the NextToken parameter in the output.\n You can then pass the NextToken parameter in a subsequent command to\n continue listing additional executions.

    \n

    \n This is useful for pagination, for instance.\n If you have 100 executions for a workflow, you might only want to list first 10. If so, callthe API by specifing the max-results:\n

    \n

    \n aws transfer list-executions --max-results 10\n

    \n

    \n This returns details for the first 10 executions, as well as the pointer (NextToken) to the eleventh execution.\n You can now call the API again, suppling the NextToken value you received:\n

    \n

    \n aws transfer list-executions --max-results 10 --next-token $somePointerReturnedFromPreviousListResult\n

    \n

    \n This call returns the next 10 executions, the 11th through the 20th. You can then repeat the call until the details\n for all 100 executions have been returned.\n

    " + "smithy.api#documentation": "

    When there are additional results that were not returned, a NextToken\n parameter is returned. You can use that value for a subsequent call to\n ListProfiles to continue listing results.

    " } }, - "WorkflowId": { - "target": "com.amazonaws.transfer#WorkflowId", + "ProfileType": { + "target": "com.amazonaws.transfer#ProfileType", "traits": { - "smithy.api#documentation": "

    A unique identifier for the workflow.

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

    Indicates whether to list only LOCAL type profiles or only PARTNER type profiles. \n If not supplied in the request, the command lists all types of profiles.

    " } } } }, - "com.amazonaws.transfer#ListExecutionsResponse": { + "com.amazonaws.transfer#ListProfilesResponse": { "type": "structure", "members": { "NextToken": { "target": "com.amazonaws.transfer#NextToken", "traits": { - "smithy.api#documentation": "

    \n ListExecutions returns the NextToken parameter in the output.\n You can then pass the NextToken parameter in a subsequent command to\n continue listing additional executions.

    " - } - }, - "WorkflowId": { - "target": "com.amazonaws.transfer#WorkflowId", - "traits": { - "smithy.api#documentation": "

    A unique identifier for the workflow.

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

    Returns a token that you can use to call ListProfiles again and receive\n additional results, if there are any.

    " } }, - "Executions": { - "target": "com.amazonaws.transfer#ListedExecutions", + "Profiles": { + "target": "com.amazonaws.transfer#ListedProfiles", "traits": { - "smithy.api#documentation": "

    Returns the details for each execution.

    \n
      \n
    • \n

      \n NextToken: returned from a call to several APIs,\n you can use pass it to a subsequent command to continue listing additional executions.

      \n
    • \n
    • \n

      \n StartTime: timestamp indicating when the execution began.

      \n
    • \n
    • \n

      \n Executions: details of the execution, including the execution ID, initial file location,\n and Service metadata.

      \n
    • \n
    • \n

      \n Status: one of the following values:\n IN_PROGRESS, COMPLETED, EXCEPTION, HANDLING_EXEPTION.\n

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

    Returns an array, where each item contains the details of a profile.

    ", "smithy.api#required": {} } } @@ -2744,94 +4291,244 @@ { "target": "com.amazonaws.transfer#InvalidNextTokenException" }, - { - "target": "com.amazonaws.transfer#InvalidRequestException" + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Lists all of your workflows.

    ", + "smithy.api#paginated": { + "inputToken": "NextToken", + "outputToken": "NextToken", + "items": "Workflows", + "pageSize": "MaxResults" + } + } + }, + "com.amazonaws.transfer#ListWorkflowsRequest": { + "type": "structure", + "members": { + "MaxResults": { + "target": "com.amazonaws.transfer#MaxResults", + "traits": { + "smithy.api#documentation": "

    Specifies the maximum number of workflows to return.

    " + } + }, + "NextToken": { + "target": "com.amazonaws.transfer#NextToken", + "traits": { + "smithy.api#documentation": "

    \n ListWorkflows returns the NextToken parameter in the output.\n You can then pass the NextToken parameter in a subsequent command to\n continue listing additional workflows.

    " + } + } + } + }, + "com.amazonaws.transfer#ListWorkflowsResponse": { + "type": "structure", + "members": { + "NextToken": { + "target": "com.amazonaws.transfer#NextToken", + "traits": { + "smithy.api#documentation": "

    \n ListWorkflows returns the NextToken parameter in the output.\n You can then pass the NextToken parameter in a subsequent command to\n continue listing additional workflows.

    " + } + }, + "Workflows": { + "target": "com.amazonaws.transfer#ListedWorkflows", + "traits": { + "smithy.api#documentation": "

    Returns the Arn, WorkflowId, and Description for each workflow.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#ListedAccess": { + "type": "structure", + "members": { + "HomeDirectory": { + "target": "com.amazonaws.transfer#HomeDirectory", + "traits": { + "smithy.api#documentation": "

    The landing directory (folder) for a user when they log in to the server using the client.

    \n

    A HomeDirectory example is /bucket_name/home/mydirectory.

    " + } + }, + "HomeDirectoryType": { + "target": "com.amazonaws.transfer#HomeDirectoryType", + "traits": { + "smithy.api#documentation": "

    The type of landing directory (folder) that you want your users' home directory to be when they log in to the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer \n protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for \n how you want to make Amazon S3 or Amazon EFS paths visible to your users.

    " + } + }, + "Role": { + "target": "com.amazonaws.transfer#Role", + "traits": { + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 \n bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users \n when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust \n relationship that allows the server to access your resources when servicing your users' transfer requests.

    " + } + }, + "ExternalId": { + "target": "com.amazonaws.transfer#ExternalId", + "traits": { + "smithy.api#documentation": "

    A unique identifier that is required to identify specific groups within your directory.\n The users of the group that you associate have access to your Amazon S3 or Amazon EFS\n resources over the enabled protocols using Transfer Family. If you know the group name,\n you can view the SID values by running the following command using Windows PowerShell.

    \n\n

    \n Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid\n

    \n \n

    In that command, replace YourGroupName with the name of your Active Directory group.

    \n\n

    The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces.\n You can also include underscores or any of the following characters: =,.@:/-

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

    Lists the properties for one or more specified associated accesses.

    " + } + }, + "com.amazonaws.transfer#ListedAccesses": { + "type": "list", + "member": { + "target": "com.amazonaws.transfer#ListedAccess" + } + }, + "com.amazonaws.transfer#ListedAgreement": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.transfer#Arn", + "traits": { + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the specified agreement.

    " + } + }, + "AgreementId": { + "target": "com.amazonaws.transfer#AgreementId", + "traits": { + "smithy.api#documentation": "

    A unique identifier for the agreement. This identifier is returned when you create an agreement.

    " + } + }, + "Description": { + "target": "com.amazonaws.transfer#Description", + "traits": { + "smithy.api#documentation": "

    The current description for the agreement. You can change it by calling the\n UpdateAgreement operation and providing a new description.

    " + } + }, + "Status": { + "target": "com.amazonaws.transfer#AgreementStatusType", + "traits": { + "smithy.api#documentation": "

    The agreement can be either ACTIVE or INACTIVE.

    " + } + }, + "ServerId": { + "target": "com.amazonaws.transfer#ServerId", + "traits": { + "smithy.api#documentation": "

    The unique identifier for the agreement.

    " + } }, - { - "target": "com.amazonaws.transfer#ServiceUnavailableException" + "LocalProfileId": { + "target": "com.amazonaws.transfer#ProfileId", + "traits": { + "smithy.api#documentation": "

    A unique identifier for the AS2 process.

    " + } + }, + "PartnerProfileId": { + "target": "com.amazonaws.transfer#ProfileId", + "traits": { + "smithy.api#documentation": "

    A unique identifier for the partner process.

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

    Lists all of your workflows.

    ", - "smithy.api#paginated": { - "inputToken": "NextToken", - "outputToken": "NextToken", - "items": "Workflows", - "pageSize": "MaxResults" - } + "smithy.api#documentation": "

    Describes the properties of an agreement.

    " } }, - "com.amazonaws.transfer#ListWorkflowsRequest": { + "com.amazonaws.transfer#ListedAgreements": { + "type": "list", + "member": { + "target": "com.amazonaws.transfer#ListedAgreement" + } + }, + "com.amazonaws.transfer#ListedCertificate": { "type": "structure", "members": { - "MaxResults": { - "target": "com.amazonaws.transfer#MaxResults", + "Arn": { + "target": "com.amazonaws.transfer#Arn", "traits": { - "smithy.api#documentation": "

    Specifies the maximum number of workflows to return.

    " + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the specified certificate.

    " } }, - "NextToken": { - "target": "com.amazonaws.transfer#NextToken", + "CertificateId": { + "target": "com.amazonaws.transfer#CertificateId", "traits": { - "smithy.api#documentation": "

    \n ListWorkflows returns the NextToken parameter in the output.\n You can then pass the NextToken parameter in a subsequent command to\n continue listing additional workflows.

    " + "smithy.api#documentation": "

    An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

    " } - } - } - }, - "com.amazonaws.transfer#ListWorkflowsResponse": { - "type": "structure", - "members": { - "NextToken": { - "target": "com.amazonaws.transfer#NextToken", + }, + "Usage": { + "target": "com.amazonaws.transfer#CertificateUsageType", "traits": { - "smithy.api#documentation": "

    \n ListWorkflows returns the NextToken parameter in the output.\n You can then pass the NextToken parameter in a subsequent command to\n continue listing additional workflows.

    " + "smithy.api#documentation": "

    Specifies whether this certificate is used for signing or encryption.

    " } }, - "Workflows": { - "target": "com.amazonaws.transfer#ListedWorkflows", + "Status": { + "target": "com.amazonaws.transfer#CertificateStatusType", "traits": { - "smithy.api#documentation": "

    Returns the Arn, WorkflowId, and Description for each workflow.

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

    The certificate can be either ACTIVE, PENDING_ROTATION, or\n INACTIVE. PENDING_ROTATION means that this certificate will\n replace the current certificate when it expires.

    " + } + }, + "ActiveDate": { + "target": "com.amazonaws.transfer#CertDate", + "traits": { + "smithy.api#documentation": "

    An optional date that specifies when the certificate becomes active.

    " + } + }, + "InactiveDate": { + "target": "com.amazonaws.transfer#CertDate", + "traits": { + "smithy.api#documentation": "

    An optional date that specifies when the certificate becomes inactive.

    " + } + }, + "Type": { + "target": "com.amazonaws.transfer#CertificateType", + "traits": { + "smithy.api#documentation": "

    The type for the certificate. If a private key has been specified for the certificate, its\n type is CERTIFICATE_WITH_PRIVATE_KEY. If there is no private key, the type is\n CERTIFICATE.

    " + } + }, + "Description": { + "target": "com.amazonaws.transfer#Description", + "traits": { + "smithy.api#documentation": "

    The name or short description that's used to identify the certificate.

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

    Describes the properties of a certificate.

    " } }, - "com.amazonaws.transfer#ListedAccess": { + "com.amazonaws.transfer#ListedCertificates": { + "type": "list", + "member": { + "target": "com.amazonaws.transfer#ListedCertificate" + } + }, + "com.amazonaws.transfer#ListedConnector": { "type": "structure", "members": { - "HomeDirectory": { - "target": "com.amazonaws.transfer#HomeDirectory", - "traits": { - "smithy.api#documentation": "

    The landing directory (folder) for a user when they log in to the server using the client.

    \n

    A HomeDirectory example is /bucket_name/home/mydirectory.

    " - } - }, - "HomeDirectoryType": { - "target": "com.amazonaws.transfer#HomeDirectoryType", + "Arn": { + "target": "com.amazonaws.transfer#Arn", "traits": { - "smithy.api#documentation": "

    The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

    " + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the specified connector.

    " } }, - "Role": { - "target": "com.amazonaws.transfer#Role", + "ConnectorId": { + "target": "com.amazonaws.transfer#ConnectorId", "traits": { - "smithy.api#documentation": "

    Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS\n file system. The policies attached to this role determine the level of access that you want to provide your users when transferring\n files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the\n server to access your resources when servicing your users' transfer requests.

    " + "smithy.api#documentation": "

    The unique identifier for the connector.

    " } }, - "ExternalId": { - "target": "com.amazonaws.transfer#ExternalId", + "Url": { + "target": "com.amazonaws.transfer#Url", "traits": { - "smithy.api#documentation": "

    A unique identifier that is required to identify specific groups within your directory.\n The users of the group that you associate have access to your Amazon S3 or Amazon EFS\n resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name,\n you can view the SID values by running the following command using Windows PowerShell.

    \n\n

    \n Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid\n

    \n \n

    In that command, replace YourGroupName with the name of your Active Directory group.

    \n\n

    The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces.\n You can also include underscores or any of the following characters: =,.@:/-

    " + "smithy.api#documentation": "

    The URL of the partner's AS2 endpoint.

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

    Lists the properties for one or more specified associated accesses.

    " + "smithy.api#documentation": "

    Returns details of the connector that is specified.

    " } }, - "com.amazonaws.transfer#ListedAccesses": { + "com.amazonaws.transfer#ListedConnectors": { "type": "list", "member": { - "target": "com.amazonaws.transfer#ListedAccess" + "target": "com.amazonaws.transfer#ListedConnector" } }, "com.amazonaws.transfer#ListedExecution": { @@ -2852,7 +4549,7 @@ "ServiceMetadata": { "target": "com.amazonaws.transfer#ServiceMetadata", "traits": { - "smithy.api#documentation": "

    A container object for the session details associated with a workflow.

    " + "smithy.api#documentation": "

    A container object for the session details that are associated with a workflow.

    " } }, "Status": { @@ -2872,6 +4569,44 @@ "target": "com.amazonaws.transfer#ListedExecution" } }, + "com.amazonaws.transfer#ListedProfile": { + "type": "structure", + "members": { + "Arn": { + "target": "com.amazonaws.transfer#Arn", + "traits": { + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the specified profile.

    " + } + }, + "ProfileId": { + "target": "com.amazonaws.transfer#ProfileId", + "traits": { + "smithy.api#documentation": "

    A unique identifier for the local or partner AS2 profile.

    " + } + }, + "As2Id": { + "target": "com.amazonaws.transfer#As2Id", + "traits": { + "smithy.api#documentation": "

    The unique identifier for the AS2 process.

    " + } + }, + "ProfileType": { + "target": "com.amazonaws.transfer#ProfileType", + "traits": { + "smithy.api#documentation": "

    Indicates whether to list only LOCAL type profiles or only PARTNER type profiles. \n If not supplied in the request, the command lists all types of profiles.

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

    Returns the properties of the profile that was specified.

    " + } + }, + "com.amazonaws.transfer#ListedProfiles": { + "type": "list", + "member": { + "target": "com.amazonaws.transfer#ListedProfile" + } + }, "com.amazonaws.transfer#ListedServer": { "type": "structure", "members": { @@ -2891,7 +4626,7 @@ "IdentityProviderType": { "target": "com.amazonaws.transfer#IdentityProviderType", "traits": { - "smithy.api#documentation": "

    Specifies the mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Amazon Web Services Transfer Family service.

    \n

    Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Amazon Web Services Managed Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connectors. This option also requires you to\n provide a Directory ID using the IdentityProviderDetails parameter.

    \n

    Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an API Gateway endpoint URL to call\n for authentication using the IdentityProviderDetails parameter.

    \n

    Use the AWS_LAMBDA value to directly use a Lambda function as your identity provider. If you choose this value,\n you must specify the ARN for the lambda function in the Function parameter for the IdentityProviderDetails data type.

    " + "smithy.api#documentation": "

    The mode of authentication for a server. The default value is\n SERVICE_MANAGED, which allows you to store and access user credentials within\n the Transfer Family service.

    \n

    Use AWS_DIRECTORY_SERVICE to provide access to\n Active Directory groups in Directory Service for Microsoft Active Directory or Microsoft Active Directory in your\n on-premises environment or in Amazon Web Services using AD Connector. This option also requires you to\n provide a Directory ID by using the IdentityProviderDetails parameter.

    \n

    Use the API_GATEWAY value to integrate with an identity provider of your choosing. The\n API_GATEWAY setting requires you to provide an Amazon API Gateway endpoint URL to call\n for authentication by using the IdentityProviderDetails parameter.

    \n

    Use the AWS_LAMBDA value to directly use an Lambda function as your identity provider. \n If you choose this value, you must specify the ARN for the Lambda function in the Function parameter \n or the IdentityProviderDetails data type.

    " } }, "EndpointType": { @@ -2903,7 +4638,7 @@ "LoggingRole": { "target": "com.amazonaws.transfer#Role", "traits": { - "smithy.api#documentation": "

    Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn\n on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in\n your CloudWatch logs.

    " + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a server to turn\n on Amazon CloudWatch logging for Amazon S3 or Amazon EFSevents. When set, you can view user activity in\n your CloudWatch logs.

    " } }, "ServerId": { @@ -2915,7 +4650,7 @@ "State": { "target": "com.amazonaws.transfer#State", "traits": { - "smithy.api#documentation": "

    Specifies the condition of a server for the server that was described. A value of\n ONLINE indicates that the server can accept jobs and transfer files. A\n State value of OFFLINE means that the server cannot perform file\n transfer operations.

    \n\n

    The states of STARTING and STOPPING indicate that the server is\n in an intermediate state, either not fully able to respond, or not fully offline. The values\n of START_FAILED or STOP_FAILED can indicate an error\n condition.

    " + "smithy.api#documentation": "

    The condition of the server that was described. A value of\n ONLINE indicates that the server can accept jobs and transfer files. A\n State value of OFFLINE means that the server cannot perform file\n transfer operations.

    \n\n

    The states of STARTING and STOPPING indicate that the server is\n in an intermediate state, either not fully able to respond, or not fully offline. The values\n of START_FAILED or STOP_FAILED can indicate an error\n condition.

    " } }, "UserCount": { @@ -2954,13 +4689,13 @@ "HomeDirectoryType": { "target": "com.amazonaws.transfer#HomeDirectoryType", "traits": { - "smithy.api#documentation": "

    The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

    " + "smithy.api#documentation": "

    The type of landing directory (folder) that you want your users' home directory to be when they log in to the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer \n protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for \n how you want to make Amazon S3 or Amazon EFS paths visible to your users.

    " } }, "Role": { "target": "com.amazonaws.transfer#Role", "traits": { - "smithy.api#documentation": "

    Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS\n file system. The policies attached to this role determine the level of access that you want to provide your users when transferring\n files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the\n server to access your resources when servicing your users' transfer requests.

    \n \n\n

    The IAM role that controls your users' access to your Amazon S3 bucket for servers with Domain=S3, or your EFS file system for servers with Domain=EFS. \n

    \n

    The policies attached to this role determine the level of access you want to provide your users when \n transferring files into and out of your S3 buckets or EFS file systems.

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

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 \n bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users \n when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust \n relationship that allows the server to access your resources when servicing your users' transfer requests.

    \n \n\n

    The IAM role that controls your users' access to your Amazon S3 bucket for servers with Domain=S3, or your EFS file system for servers with Domain=EFS. \n

    \n

    The policies attached to this role determine the level of access you want to provide your users when \n transferring files into and out of your S3 buckets or EFS file systems.

    \n\n
    " } }, "SshPublicKeyCount": { @@ -3034,13 +4769,13 @@ "LoggingRole": { "target": "com.amazonaws.transfer#Role", "traits": { - "smithy.api#documentation": "

    Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn\n on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in\n your CloudWatch logs.

    " + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a server to turn\n on Amazon CloudWatch logging for Amazon S3 or Amazon EFSevents. When set, you can view user activity in\n your CloudWatch logs.

    " } }, "LogGroupName": { "target": "com.amazonaws.transfer#LogGroupName", "traits": { - "smithy.api#documentation": "

    The name of the CloudWatch logging group for the Amazon Web Services Transfer server to which this workflow belongs.

    " + "smithy.api#documentation": "

    The name of the CloudWatch logging group for the Transfer Family server to which this workflow belongs.

    " } } }, @@ -3078,9 +4813,65 @@ } } }, + "com.amazonaws.transfer#MdnResponse": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "SYNC", + "name": "SYNC" + }, + { + "value": "NONE", + "name": "NONE" + } + ] + } + }, + "com.amazonaws.transfer#MdnSigningAlg": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "SHA256", + "name": "SHA256" + }, + { + "value": "SHA384", + "name": "SHA384" + }, + { + "value": "SHA512", + "name": "SHA512" + }, + { + "value": "SHA1", + "name": "SHA1" + }, + { + "value": "NONE", + "name": "NONE" + }, + { + "value": "DEFAULT", + "name": "DEFAULT" + } + ] + } + }, "com.amazonaws.transfer#Message": { "type": "string" }, + "com.amazonaws.transfer#MessageSubject": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 1024 + }, + "smithy.api#pattern": "^[\\p{Print}\\p{Blank}]+$" + } + }, "com.amazonaws.transfer#NextToken": { "type": "string", "traits": { @@ -3203,6 +4994,42 @@ "smithy.api#pattern": "^[\\x09-\\x0D\\x20-\\x7E]*$" } }, + "com.amazonaws.transfer#PrivateKeyType": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 16384 + }, + "smithy.api#pattern": "^[\\u0009\\u000A\\u000D\\u0020-\\u00FF]*$", + "smithy.api#sensitive": {} + } + }, + "com.amazonaws.transfer#ProfileId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 19, + "max": 19 + }, + "smithy.api#pattern": "^p-([0-9a-f]{17})$" + } + }, + "com.amazonaws.transfer#ProfileType": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "LOCAL", + "name": "LOCAL" + }, + { + "value": "PARTNER", + "name": "PARTNER" + } + ] + } + }, "com.amazonaws.transfer#Protocol": { "type": "string", "traits": { @@ -3218,6 +5045,10 @@ { "value": "FTPS", "name": "FTPS" + }, + { + "value": "AS2", + "name": "AS2" } ] } @@ -3242,6 +5073,12 @@ "traits": { "smithy.api#documentation": "

    Use the SetStatOption to ignore the error that is generated when the client attempts to use SETSTAT on a file you are uploading to an S3 bucket.

    \n

    Some SFTP file transfer clients can attempt to change the attributes of remote files, including timestamp and permissions, using commands, such as SETSTAT when uploading the file.\n However, these commands are not compatible with object storage systems, such as Amazon S3. Due to this incompatibility, file uploads from these clients can result in errors even when \n the file is otherwise successfully uploaded.

    \n

    Set the value to ENABLE_NO_OP to have the Transfer Family server ignore the SETSTAT command, and upload files without needing to make any changes to your SFTP client.\n While the SetStatOption \n ENABLE_NO_OP setting ignores the error, it does generate a log entry in Amazon CloudWatch Logs, so you can determine when the client is making a SETSTAT call.

    \n \n

    If you want to preserve the original timestamp for your file, and modify other file attributes using SETSTAT, you can use Amazon EFS as backend storage with Transfer Family.

    \n
    " } + }, + "As2Transports": { + "target": "com.amazonaws.transfer#As2Transports", + "traits": { + "smithy.api#documentation": "

    Indicates the transport method for the AS2 messages. Currently, only HTTP is supported.

    " + } } }, "traits": { @@ -3256,7 +5093,7 @@ "traits": { "smithy.api#length": { "min": 1, - "max": 3 + "max": 4 } } }, @@ -3370,7 +5207,7 @@ "Key": { "target": "com.amazonaws.transfer#S3Key", "traits": { - "smithy.api#documentation": "

    The name assigned to the file when it was created in S3. You use the object key to retrieve the object.

    " + "smithy.api#documentation": "

    The name assigned to the file when it was created in Amazon S3. You use the object key to retrieve the object.

    " } }, "VersionId": { @@ -3387,7 +5224,7 @@ } }, "traits": { - "smithy.api#documentation": "

    Specifies the details for the file location for the file being used in the workflow. Only applicable if you are using S3 storage.

    " + "smithy.api#documentation": "

    Specifies the details for the file location for the file that's being used in the workflow. Only applicable if you are using S3 storage.

    " } }, "com.amazonaws.transfer#S3InputFileLocation": { @@ -3402,7 +5239,7 @@ "Key": { "target": "com.amazonaws.transfer#S3Key", "traits": { - "smithy.api#documentation": "

    The name assigned to the file when it was created in S3. You use the object key to retrieve the object.

    " + "smithy.api#documentation": "

    The name assigned to the file when it was created in Amazon S3. You use the object key to retrieve the object.

    " } } }, @@ -3637,7 +5474,7 @@ } }, "traits": { - "smithy.api#documentation": "

    A container object for the session details associated with a workflow.

    " + "smithy.api#documentation": "

    A container object for the session details that are associated with a workflow.

    " } }, "com.amazonaws.transfer#ServiceUnavailableException": { @@ -3682,6 +5519,33 @@ ] } }, + "com.amazonaws.transfer#SigningAlg": { + "type": "string", + "traits": { + "smithy.api#enum": [ + { + "value": "SHA256", + "name": "SHA256" + }, + { + "value": "SHA384", + "name": "SHA384" + }, + { + "value": "SHA512", + "name": "SHA512" + }, + { + "value": "SHA1", + "name": "SHA1" + }, + { + "value": "NONE", + "name": "NONE" + } + ] + } + }, "com.amazonaws.transfer#SourceFileLocation": { "type": "string", "traits": { @@ -3768,6 +5632,66 @@ } } }, + "com.amazonaws.transfer#StartFileTransfer": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#StartFileTransferRequest" + }, + "output": { + "target": "com.amazonaws.transfer#StartFileTransferResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + }, + { + "target": "com.amazonaws.transfer#ThrottlingException" + } + ], + "traits": { + "smithy.api#documentation": "

    Begins an outbound file transfer. You specify the ConnectorId and the file\n paths for where to send the files.

    " + } + }, + "com.amazonaws.transfer#StartFileTransferRequest": { + "type": "structure", + "members": { + "ConnectorId": { + "target": "com.amazonaws.transfer#ConnectorId", + "traits": { + "smithy.api#documentation": "

    The unique identifier for the connector.

    ", + "smithy.api#required": {} + } + }, + "SendFilePaths": { + "target": "com.amazonaws.transfer#FilePaths", + "traits": { + "smithy.api#documentation": "

    An array of strings. Each string represents the absolute path for one outbound file transfer. For example,\n \n DOC-EXAMPLE-BUCKET/myfile.txt\n .

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#StartFileTransferResponse": { + "type": "structure", + "members": { + "TransferId": { + "target": "com.amazonaws.transfer#TransferId", + "traits": { + "smithy.api#documentation": "

    Returns the unique identifier for this file transfer.

    ", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.transfer#StartServer": { "type": "operation", "input": { @@ -3879,7 +5803,7 @@ } ], "traits": { - "smithy.api#documentation": "

    Changes the state of a file transfer protocol-enabled server from ONLINE to\n OFFLINE. An OFFLINE server cannot accept and process file transfer\n jobs. Information tied to your server, such as server and user properties, are not affected by\n stopping your server.

    \n\n \n

    Stopping the server will not reduce or impact your file transfer protocol endpoint\n billing; you must delete the server to stop being billed.

    \n
    \n\n

    The state of STOPPING indicates that the server is in an intermediate state,\n either not fully able to respond, or not fully offline. The values of STOP_FAILED\n can indicate an error condition.

    \n\n

    No response is returned from this call.

    " + "smithy.api#documentation": "

    Changes the state of a file transfer protocol-enabled server from ONLINE to\n OFFLINE. An OFFLINE server cannot accept and process file transfer\n jobs. Information tied to your server, such as server and user properties, are not affected by\n stopping your server.

    \n\n \n

    Stopping the server does not reduce or impact your file transfer protocol endpoint\n billing; you must delete the server to stop being billed.

    \n
    \n\n

    The state of STOPPING indicates that the server is in an intermediate state,\n either not fully able to respond, or not fully offline. The values of STOP_FAILED\n can indicate an error condition.

    \n\n

    No response is returned from this call.

    " } }, "com.amazonaws.transfer#StopServerRequest": { @@ -4167,6 +6091,16 @@ ] } }, + "com.amazonaws.transfer#TransferId": { + "type": "string", + "traits": { + "smithy.api#length": { + "min": 1, + "max": 512 + }, + "smithy.api#pattern": "^[0-9a-zA-Z./-]+$" + } + }, "com.amazonaws.transfer#TransferService": { "type": "service", "traits": { @@ -4181,13 +6115,22 @@ "name": "transfer" }, "aws.protocols#awsJson1_1": {}, - "smithy.api#documentation": "

    Amazon Web Services Transfer Family is a fully managed service that enables the transfer of files over the\n File Transfer Protocol (FTP), File Transfer Protocol over SSL (FTPS), or Secure Shell (SSH)\n File Transfer Protocol (SFTP) directly into and out of Amazon Simple Storage Service (Amazon\n S3). Amazon Web Services helps you seamlessly migrate your file transfer workflows to Amazon Web Services Transfer Family by\n integrating with existing authentication systems, and providing DNS routing with Amazon Route\n 53 so nothing changes for your customers and partners, or their applications. With your data\n in Amazon S3, you can use it with Amazon Web Services services for processing, analytics, machine learning,\n and archiving. Getting started with Amazon Web Services Transfer Family is easy since there is no\n infrastructure to buy and set up.

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

    Transfer Family is a fully managed service that enables the transfer of files over the File\n Transfer Protocol (FTP), File Transfer Protocol over SSL (FTPS), or Secure Shell (SSH) File\n Transfer Protocol (SFTP) directly into and out of Amazon Simple Storage Service (Amazon S3).\n Amazon Web Services helps you seamlessly migrate your file transfer workflows to Transfer Family by integrating\n with existing authentication systems, and providing DNS routing with Amazon Route 53 so\n nothing changes for your customers and partners, or their applications. With your data in\n Amazon S3, you can use it with Amazon Web Services for processing, analytics, machine learning, and\n archiving. Getting started with Transfer Family is easy since there is no infrastructure to buy and\n set up.

    ", "smithy.api#title": "AWS Transfer Family" }, "version": "2018-11-05", "operations": [ { - "target": "com.amazonaws.transfer#CreateAccess" + "target": "com.amazonaws.transfer#CreateAccess" + }, + { + "target": "com.amazonaws.transfer#CreateAgreement" + }, + { + "target": "com.amazonaws.transfer#CreateConnector" + }, + { + "target": "com.amazonaws.transfer#CreateProfile" }, { "target": "com.amazonaws.transfer#CreateServer" @@ -4201,6 +6144,18 @@ { "target": "com.amazonaws.transfer#DeleteAccess" }, + { + "target": "com.amazonaws.transfer#DeleteAgreement" + }, + { + "target": "com.amazonaws.transfer#DeleteCertificate" + }, + { + "target": "com.amazonaws.transfer#DeleteConnector" + }, + { + "target": "com.amazonaws.transfer#DeleteProfile" + }, { "target": "com.amazonaws.transfer#DeleteServer" }, @@ -4216,9 +6171,21 @@ { "target": "com.amazonaws.transfer#DescribeAccess" }, + { + "target": "com.amazonaws.transfer#DescribeAgreement" + }, + { + "target": "com.amazonaws.transfer#DescribeCertificate" + }, + { + "target": "com.amazonaws.transfer#DescribeConnector" + }, { "target": "com.amazonaws.transfer#DescribeExecution" }, + { + "target": "com.amazonaws.transfer#DescribeProfile" + }, { "target": "com.amazonaws.transfer#DescribeSecurityPolicy" }, @@ -4231,15 +6198,30 @@ { "target": "com.amazonaws.transfer#DescribeWorkflow" }, + { + "target": "com.amazonaws.transfer#ImportCertificate" + }, { "target": "com.amazonaws.transfer#ImportSshPublicKey" }, { "target": "com.amazonaws.transfer#ListAccesses" }, + { + "target": "com.amazonaws.transfer#ListAgreements" + }, + { + "target": "com.amazonaws.transfer#ListCertificates" + }, + { + "target": "com.amazonaws.transfer#ListConnectors" + }, { "target": "com.amazonaws.transfer#ListExecutions" }, + { + "target": "com.amazonaws.transfer#ListProfiles" + }, { "target": "com.amazonaws.transfer#ListSecurityPolicies" }, @@ -4258,6 +6240,9 @@ { "target": "com.amazonaws.transfer#SendWorkflowStepState" }, + { + "target": "com.amazonaws.transfer#StartFileTransfer" + }, { "target": "com.amazonaws.transfer#StartServer" }, @@ -4276,6 +6261,18 @@ { "target": "com.amazonaws.transfer#UpdateAccess" }, + { + "target": "com.amazonaws.transfer#UpdateAgreement" + }, + { + "target": "com.amazonaws.transfer#UpdateCertificate" + }, + { + "target": "com.amazonaws.transfer#UpdateConnector" + }, + { + "target": "com.amazonaws.transfer#UpdateProfile" + }, { "target": "com.amazonaws.transfer#UpdateServer" }, @@ -4370,19 +6367,19 @@ "HomeDirectoryType": { "target": "com.amazonaws.transfer#HomeDirectoryType", "traits": { - "smithy.api#documentation": "

    The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

    " + "smithy.api#documentation": "

    The type of landing directory (folder) that you want your users' home directory to be when they log in to the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer \n protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for \n how you want to make Amazon S3 or Amazon EFS paths visible to your users.

    " } }, "HomeDirectoryMappings": { "target": "com.amazonaws.transfer#HomeDirectoryMappings", "traits": { - "smithy.api#documentation": "

    Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

    \n

    The following is an Entry and Target pair example.

    \n

    \n [ { \"Entry\": \"/directory1\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

    \n

    In most cases, you can use this value instead of the session policy to lock down your\n user to the designated home directory (\"chroot\"). To do this, you can set\n Entry to / and set Target to the\n HomeDirectory parameter value.

    \n

    The following is an Entry and Target pair example for chroot.

    \n

    \n [ { \"Entry\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

    " + "smithy.api#documentation": "

    Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) \n role provides access to paths in Target. This value\n can be set only when HomeDirectoryType is set to\n LOGICAL.

    \n

    The following is an Entry and Target pair example.

    \n

    \n [ { \"Entry\": \"/directory1\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

    \n

    In most cases, you can use this value instead of the session policy to lock down your\n user to the designated home directory (\"chroot\"). To do this, you can set\n Entry to / and set Target to the\n HomeDirectory parameter value.

    \n

    The following is an Entry and Target pair example for chroot.

    \n

    \n [ { \"Entry\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

    " } }, "Policy": { "target": "com.amazonaws.transfer#Policy", "traits": { - "smithy.api#documentation": "

    A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

    \n \n \n \n

    This only applies when the domain of ServerId is S3. EFS does not use session policies.

    \n

    For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead\n of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass\n it in the Policy argument.

    \n

    For an example of a session policy, see Example\n session policy.

    \n

    For more information, see AssumeRole in the Amazon Web ServicesSecurity Token Service API\n Reference.

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

    A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

    \n \n \n

    This policy applies only when the domain of ServerId is Amazon S3. Amazon EFS does not use session policies.

    \n

    For session policies, Transfer Family stores the policy as a JSON blob, instead\n of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass\n it in the Policy argument.

    \n

    For an example of a session policy, see Example\n session policy.

    \n

    For more information, see AssumeRole in the Amazon Web ServicesSecurity Token Service API\n Reference.

    \n
    " } }, "PosixProfile": { @@ -4391,7 +6388,7 @@ "Role": { "target": "com.amazonaws.transfer#Role", "traits": { - "smithy.api#documentation": "

    Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS\n file system. The policies attached to this role determine the level of access that you want to provide your users when transferring\n files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the\n server to access your resources when servicing your users' transfer requests.

    " + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 \n bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users \n when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust \n relationship that allows the server to access your resources when servicing your users' transfer requests.

    " } }, "ServerId": { @@ -4404,7 +6401,7 @@ "ExternalId": { "target": "com.amazonaws.transfer#ExternalId", "traits": { - "smithy.api#documentation": "

    A unique identifier that is required to identify specific groups within your directory.\n The users of the group that you associate have access to your Amazon S3 or Amazon EFS\n resources over the enabled protocols using Amazon Web Services Transfer Family. If you know the group name,\n you can view the SID values by running the following command using Windows PowerShell.

    \n\n

    \n Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid\n

    \n \n

    In that command, replace YourGroupName with the name of your Active Directory group.

    \n\n

    The regex used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces.\n You can also include underscores or any of the following characters: =,.@:/-

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

    A unique identifier that is required to identify specific groups within your directory.\n The users of the group that you associate have access to your Amazon S3 or Amazon EFS\n resources over the enabled protocols using Transfer Family. If you know the group name,\n you can view the SID values by running the following command using Windows PowerShell.

    \n\n

    \n Get-ADGroup -Filter {samAccountName -like \"YourGroupName*\"} -Properties * | Select SamAccountName,ObjectSid\n

    \n \n

    In that command, replace YourGroupName with the name of your Active Directory group.

    \n\n

    The regular expression used to validate this parameter is a string of characters consisting of uppercase and lowercase alphanumeric characters with no spaces.\n You can also include underscores or any of the following characters: =,.@:/-

    ", "smithy.api#required": {} } } @@ -4429,6 +6426,303 @@ } } }, + "com.amazonaws.transfer#UpdateAgreement": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#UpdateAgreementRequest" + }, + "output": { + "target": "com.amazonaws.transfer#UpdateAgreementResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceExistsException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Updates some of the parameters for an existing agreement. Provide the\n AgreementId and the ServerId for the agreement that you want to\n update, along with the new values for the parameters to update.

    " + } + }, + "com.amazonaws.transfer#UpdateAgreementRequest": { + "type": "structure", + "members": { + "AgreementId": { + "target": "com.amazonaws.transfer#AgreementId", + "traits": { + "smithy.api#documentation": "

    A unique identifier for the agreement. This identifier is returned when you create an agreement.

    ", + "smithy.api#required": {} + } + }, + "ServerId": { + "target": "com.amazonaws.transfer#ServerId", + "traits": { + "smithy.api#documentation": "

    A system-assigned unique identifier for a server instance. This is the specific server that the agreement uses.

    ", + "smithy.api#required": {} + } + }, + "Description": { + "target": "com.amazonaws.transfer#Description", + "traits": { + "smithy.api#documentation": "

    To replace the existing description, provide a short description for the agreement.

    " + } + }, + "Status": { + "target": "com.amazonaws.transfer#AgreementStatusType", + "traits": { + "smithy.api#documentation": "

    You can update the status for the agreement, either activating an inactive agreement or\n the reverse.

    " + } + }, + "LocalProfileId": { + "target": "com.amazonaws.transfer#ProfileId", + "traits": { + "smithy.api#documentation": "

    To change the local profile identifier, provide a new value\n here.

    " + } + }, + "PartnerProfileId": { + "target": "com.amazonaws.transfer#ProfileId", + "traits": { + "smithy.api#documentation": "

    To change the partner profile identifier, provide a new value here.

    " + } + }, + "BaseDirectory": { + "target": "com.amazonaws.transfer#HomeDirectory", + "traits": { + "smithy.api#documentation": "

    To change the landing directory (folder) for files that are transferred, provide the\n bucket folder that you want to use; for example,\n /DOC-EXAMPLE-BUCKET/home/mydirectory\n .

    " + } + }, + "AccessRole": { + "target": "com.amazonaws.transfer#Role", + "traits": { + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that grants access to at least the \n HomeDirectory of your users' Amazon S3 buckets.

    " + } + } + } + }, + "com.amazonaws.transfer#UpdateAgreementResponse": { + "type": "structure", + "members": { + "AgreementId": { + "target": "com.amazonaws.transfer#AgreementId", + "traits": { + "smithy.api#documentation": "

    A unique identifier for the agreement. This identifier is returned when you create an agreement.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#UpdateCertificate": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#UpdateCertificateRequest" + }, + "output": { + "target": "com.amazonaws.transfer#UpdateCertificateResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Updates the active and inactive dates for a certificate.

    " + } + }, + "com.amazonaws.transfer#UpdateCertificateRequest": { + "type": "structure", + "members": { + "CertificateId": { + "target": "com.amazonaws.transfer#CertificateId", + "traits": { + "smithy.api#documentation": "

    The identifier of the certificate object that you are updating.

    ", + "smithy.api#required": {} + } + }, + "ActiveDate": { + "target": "com.amazonaws.transfer#CertDate", + "traits": { + "smithy.api#documentation": "

    An optional date that specifies when the certificate becomes active.

    " + } + }, + "InactiveDate": { + "target": "com.amazonaws.transfer#CertDate", + "traits": { + "smithy.api#documentation": "

    An optional date that specifies when the certificate becomes inactive.

    " + } + }, + "Description": { + "target": "com.amazonaws.transfer#Description", + "traits": { + "smithy.api#documentation": "

    A short description to help identify the certificate.

    " + } + } + } + }, + "com.amazonaws.transfer#UpdateCertificateResponse": { + "type": "structure", + "members": { + "CertificateId": { + "target": "com.amazonaws.transfer#CertificateId", + "traits": { + "smithy.api#documentation": "

    Returns the identifier of the certificate object that you are updating.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#UpdateConnector": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#UpdateConnectorRequest" + }, + "output": { + "target": "com.amazonaws.transfer#UpdateConnectorResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceExistsException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Updates some of the parameters for an existing connector. Provide the\n ConnectorId for the connector that you want to update, along with the new\n values for the parameters to update.

    " + } + }, + "com.amazonaws.transfer#UpdateConnectorRequest": { + "type": "structure", + "members": { + "ConnectorId": { + "target": "com.amazonaws.transfer#ConnectorId", + "traits": { + "smithy.api#documentation": "

    The unique identifier for the connector.

    ", + "smithy.api#required": {} + } + }, + "Url": { + "target": "com.amazonaws.transfer#Url", + "traits": { + "smithy.api#documentation": "

    The URL of the partner's AS2 endpoint.

    " + } + }, + "As2Config": { + "target": "com.amazonaws.transfer#As2ConnectorConfig", + "traits": { + "smithy.api#documentation": "

    A structure that contains the parameters for a connector object.

    " + } + }, + "AccessRole": { + "target": "com.amazonaws.transfer#Role", + "traits": { + "smithy.api#documentation": "

    With AS2, you can send files by calling StartFileTransfer and specifying the\n file paths in the request parameter, SendFilePaths. We use the file’s parent\n directory (for example, for --send-file-paths /bucket/dir/file.txt, parent\n directory is /bucket/dir/) to temporarily store a processed AS2 message file,\n store the MDN when we receive them from the partner, and write a final JSON file containing\n relevant metadata of the transmission. So, the AccessRole needs to provide read\n and write access to the parent directory of the file location used in the\n StartFileTransfer request. Additionally, you need to provide read and write\n access to the parent directory of the files that you intend to send with\n StartFileTransfer.

    " + } + }, + "LoggingRole": { + "target": "com.amazonaws.transfer#Role", + "traits": { + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a connector to turn\n on CloudWatch logging for Amazon S3 events. When set, you can view connector\n activity in your CloudWatch logs.

    " + } + } + } + }, + "com.amazonaws.transfer#UpdateConnectorResponse": { + "type": "structure", + "members": { + "ConnectorId": { + "target": "com.amazonaws.transfer#ConnectorId", + "traits": { + "smithy.api#documentation": "

    Returns the identifier of the connector object that you are updating.

    ", + "smithy.api#required": {} + } + } + } + }, + "com.amazonaws.transfer#UpdateProfile": { + "type": "operation", + "input": { + "target": "com.amazonaws.transfer#UpdateProfileRequest" + }, + "output": { + "target": "com.amazonaws.transfer#UpdateProfileResponse" + }, + "errors": [ + { + "target": "com.amazonaws.transfer#InternalServiceError" + }, + { + "target": "com.amazonaws.transfer#InvalidRequestException" + }, + { + "target": "com.amazonaws.transfer#ResourceNotFoundException" + }, + { + "target": "com.amazonaws.transfer#ServiceUnavailableException" + } + ], + "traits": { + "smithy.api#documentation": "

    Updates some of the parameters for an existing profile. Provide the ProfileId\n for the profile that you want to update, along with the new values for the parameters to\n update.

    " + } + }, + "com.amazonaws.transfer#UpdateProfileRequest": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.transfer#ProfileId", + "traits": { + "smithy.api#documentation": "

    The identifier of the profile object that you are updating.

    ", + "smithy.api#required": {} + } + }, + "CertificateIds": { + "target": "com.amazonaws.transfer#CertificateIds", + "traits": { + "smithy.api#documentation": "

    An array of identifiers for the imported certificates. You use this identifier for working with profiles and partner profiles.

    " + } + } + } + }, + "com.amazonaws.transfer#UpdateProfileResponse": { + "type": "structure", + "members": { + "ProfileId": { + "target": "com.amazonaws.transfer#ProfileId", + "traits": { + "smithy.api#documentation": "

    Returns the identifier for the profile that's being updated.

    ", + "smithy.api#required": {} + } + } + } + }, "com.amazonaws.transfer#UpdateServer": { "type": "operation", "input": { @@ -4479,13 +6773,13 @@ "ProtocolDetails": { "target": "com.amazonaws.transfer#ProtocolDetails", "traits": { - "smithy.api#documentation": "

    The protocol settings that are configured for your server.

    \n
      \n
    • \n

      \n Use the PassiveIp parameter to indicate passive mode (for FTP and FTPS protocols).\n Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.\n

      \n
    • \n
    • \n

      Use the SetStatOption to ignore the error that is generated when the client attempts to use SETSTAT on a file you are uploading to an S3 bucket.\n Set the value to ENABLE_NO_OP to have the Transfer Family server ignore the SETSTAT command, and upload files without needing to make any changes to your SFTP client.\n Note that with SetStatOption set to ENABLE_NO_OP, Transfer generates a log entry to CloudWatch Logs, so you can determine when the client\n is making a SETSTAT call.

      \n
    • \n
    • \n

      Use the TlsSessionResumptionMode parameter to determine whether or not your Transfer server\n resumes recent, negotiated sessions through a unique session ID.

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

    The protocol settings that are configured for your server.

    \n
      \n
    • \n

      \n To indicate passive mode (for FTP and FTPS protocols), use the PassiveIp parameter.\n Enter a single dotted-quad IPv4 address, such as the external IP address of a firewall, router, or load balancer.\n

      \n
    • \n
    • \n

      To ignore the error that is generated when the client attempts to use the SETSTAT command on a file that you are \n uploading to an Amazon S3 bucket, use the SetStatOption parameter. To have the Transfer Family server ignore the \n SETSTAT command and upload files without needing to make any changes to your SFTP client, set the value to \n ENABLE_NO_OP. If you set the SetStatOption parameter to ENABLE_NO_OP, Transfer Family \n generates a log entry to Amazon CloudWatch Logs, so that you can determine when the client is making a SETSTAT \n call.

      \n
    • \n
    • \n

      To determine whether your Transfer Family server resumes recent, negotiated sessions through a unique session ID, use the \n TlsSessionResumptionMode parameter.

      \n
    • \n
    • \n

      \n As2Transports indicates the transport method for the AS2 messages. Currently, only HTTP is supported.

      \n
    • \n
    " } }, "EndpointDetails": { "target": "com.amazonaws.transfer#EndpointDetails", "traits": { - "smithy.api#documentation": "

    The virtual private cloud (VPC) endpoint settings that are configured for your server.\n When you host your endpoint within your VPC, you can make it accessible only to resources\n within your VPC, or you can attach Elastic IP addresses and make it accessible to clients over\n the internet. Your VPC's default security groups are automatically assigned to your\n endpoint.

    " + "smithy.api#documentation": "

    The virtual private cloud (VPC) endpoint settings that are configured for your server.\n When you host your endpoint within your VPC, you can make your endpoint accessible only to resources\n within your VPC, or you can attach Elastic IP addresses and make your endpoint accessible to clients over\n the internet. Your VPC's default security groups are automatically assigned to your\n endpoint.

    " } }, "EndpointType": { @@ -4497,7 +6791,7 @@ "HostKey": { "target": "com.amazonaws.transfer#HostKey", "traits": { - "smithy.api#documentation": "

    The RSA, ECDSA, or ED25519 private key to use for your server.

    \n \n

    Use the following command to generate an RSA 2048 bit key with no passphrase:

    \n

    \n ssh-keygen -t rsa -b 2048 -N \"\" -m PEM -f my-new-server-key.

    \n

    Use a minimum value of 2048 for the -b option: you can create a stronger key using 3072 or 4096.

    \n \n

    Use the following command to generate an ECDSA 256 bit key with no passphrase:

    \n

    \n ssh-keygen -t ecdsa -b 256 -N \"\" -m PEM -f my-new-server-key.

    \n

    Valid values for the -b option for ECDSA are 256, 384, and 521.

    \n \n

    Use the following command to generate an ED25519 key with no passphrase:

    \n

    \n ssh-keygen -t ed25519 -N \"\" -f my-new-server-key.

    \n \n

    For all of these commands, you can replace my-new-server-key with a string of your choice.

    \n\n \n

    If you aren't planning to migrate existing users from an existing SFTP-enabled\n server to a new server, don't update the host key. Accidentally changing a\n server's host key can be disruptive.

    \n
    \n\n \n\n

    For more information, see Change the host key for your SFTP-enabled server in the Amazon Web Services Transfer\n Family User Guide.

    " + "smithy.api#documentation": "

    The RSA, ECDSA, or ED25519 private key to use for your server.

    \n \n

    Use the following command to generate an RSA 2048 bit key with no passphrase:

    \n

    \n ssh-keygen -t rsa -b 2048 -N \"\" -m PEM -f my-new-server-key.

    \n

    Use a minimum value of 2048 for the -b option. You can create a stronger key by using 3072 or 4096.

    \n \n

    Use the following command to generate an ECDSA 256 bit key with no passphrase:

    \n

    \n ssh-keygen -t ecdsa -b 256 -N \"\" -m PEM -f my-new-server-key.

    \n

    Valid values for the -b option for ECDSA are 256, 384, and 521.

    \n \n

    Use the following command to generate an ED25519 key with no passphrase:

    \n

    \n ssh-keygen -t ed25519 -N \"\" -f my-new-server-key.

    \n \n

    For all of these commands, you can replace my-new-server-key with a string of your choice.

    \n\n \n

    If you aren't planning to migrate existing users from an existing SFTP-enabled\n server to a new server, don't update the host key. Accidentally changing a\n server's host key can be disruptive.

    \n
    \n\n \n\n

    For more information, see Change the host key for your SFTP-enabled server in the Transfer Family User Guide.

    " } }, "IdentityProviderDetails": { @@ -4509,19 +6803,19 @@ "LoggingRole": { "target": "com.amazonaws.transfer#NullableRole", "traits": { - "smithy.api#documentation": "

    Specifies the Amazon Resource Name (ARN) of the Amazon Web Services Identity and Access Management (IAM) role that allows a server to turn\n on Amazon CloudWatch logging for Amazon S3 or Amazon EFS events. When set, user activity can be viewed in\n your CloudWatch logs.

    " + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that allows a server to turn\n on Amazon CloudWatch logging for Amazon S3 or Amazon EFSevents. When set, you can view user activity in\n your CloudWatch logs.

    " } }, "PostAuthenticationLoginBanner": { "target": "com.amazonaws.transfer#PostAuthenticationLoginBanner", "traits": { - "smithy.api#documentation": "

    Specify a string to display when users connect to a server. This string is displayed after the user authenticates.

    \n \n

    The SFTP protocol does not support post-authentication display banners.

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

    Specifies a string to display when users connect to a server. This string is displayed after the user authenticates.

    \n \n

    The SFTP protocol does not support post-authentication display banners.

    \n
    " } }, "PreAuthenticationLoginBanner": { "target": "com.amazonaws.transfer#PreAuthenticationLoginBanner", "traits": { - "smithy.api#documentation": "

    Specify a string to display when users connect to a server. This string is displayed before the user authenticates.\n For example, the following banner displays details about using the system.

    \n

    \n This system is for the use of authorized users only. Individuals using this computer system without authority,\n or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by\n system personnel.\n

    " + "smithy.api#documentation": "

    Specifies a string to display when users connect to a server. This string is displayed before the user authenticates.\n For example, the following banner displays details about using the system:

    \n \n

    \n This system is for the use of authorized users only. Individuals using this computer system without authority,\n or in excess of their authority, are subject to having all of their activities on this system monitored and recorded by\n system personnel.\n

    " } }, "Protocols": { @@ -4546,7 +6840,7 @@ "WorkflowDetails": { "target": "com.amazonaws.transfer#WorkflowDetails", "traits": { - "smithy.api#documentation": "

    Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.

    \n

    To remove an associated workflow from a server, you can provide an empty OnUpload object, as in the following example.

    \n

    \n aws transfer update-server --server-id s-01234567890abcdef --workflow-details '{\"OnUpload\":[]}'\n

    " + "smithy.api#documentation": "

    Specifies the workflow ID for the workflow to assign and the execution role that's used for executing the workflow.

    \n

    To remove an associated workflow from a server, you can provide an empty OnUpload object, as in the following example.

    \n

    \n aws transfer update-server --server-id s-01234567890abcdef --workflow-details '{\"OnUpload\":[]}'\n

    " } } } @@ -4604,19 +6898,19 @@ "HomeDirectoryType": { "target": "com.amazonaws.transfer#HomeDirectoryType", "traits": { - "smithy.api#documentation": "

    The type of landing directory (folder) you want your users' home directory to be when they log into the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer protocol clients.\n If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for how you want to make Amazon\n S3 or EFS paths visible to your users.

    " + "smithy.api#documentation": "

    The type of landing directory (folder) that you want your users' home directory to be when they log in to the server.\n If you set it to PATH, the user will see the absolute Amazon S3 bucket or EFS paths as is in their file transfer \n protocol clients. If you set it LOGICAL, you need to provide mappings in the HomeDirectoryMappings for \n how you want to make Amazon S3 or Amazon EFS paths visible to your users.

    " } }, "HomeDirectoryMappings": { "target": "com.amazonaws.transfer#HomeDirectoryMappings", "traits": { - "smithy.api#documentation": "

    Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Amazon Web Services Identity\n and Access Management (IAM) role provides access to paths in Target. This value\n can only be set when HomeDirectoryType is set to\n LOGICAL.

    \n\n

    The following is an Entry and Target pair example.

    \n

    \n [ { \"Entry\": \"/directory1\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

    \n\n

    In most cases, you can use this value instead of the session policy to lock down your\n user to the designated home directory (\"chroot\"). To do this, you can set\n Entry to '/' and set Target to the HomeDirectory\n parameter value.

    \n\n

    The following is an Entry and Target pair example for chroot.

    \n

    \n [ { \"Entry\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

    " + "smithy.api#documentation": "

    Logical directory mappings that specify what Amazon S3 or Amazon EFS paths and keys should\n be visible to your user and how you want to make them visible. You must specify the\n Entry and Target pair, where Entry shows how the path\n is made visible and Target is the actual Amazon S3 or Amazon EFS path. If you\n only specify a target, it is displayed as is. You also must ensure that your Identity and Access Management (IAM) \n role provides access to paths in Target. This value\n can be set only when HomeDirectoryType is set to\n LOGICAL.

    \n\n

    The following is an Entry and Target pair example.

    \n

    \n [ { \"Entry\": \"/directory1\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

    \n\n

    In most cases, you can use this value instead of the session policy to lock down your\n user to the designated home directory (\"chroot\"). To do this, you can set\n Entry to '/' and set Target to the HomeDirectory\n parameter value.

    \n\n

    The following is an Entry and Target pair example for chroot.

    \n

    \n [ { \"Entry\": \"/\", \"Target\": \"/bucket_name/home/mydirectory\" } ]\n

    " } }, "Policy": { "target": "com.amazonaws.transfer#Policy", "traits": { - "smithy.api#documentation": "

    A session policy for your user so that you can use the same IAM role across multiple users. This policy scopes down user\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

    \n \n \n

    This only applies when the domain of ServerId is S3. EFS does not use session policies.

    \n

    For session policies, Amazon Web Services Transfer Family stores the policy as a JSON blob, instead\n of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass\n it in the Policy argument.

    \n \n \n\n

    For an example of a session policy, see Creating a session\n policy.

    \n\n \n\n

    For more information, see AssumeRole in the Amazon Web Services\n Security Token Service API Reference.

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

    A session policy for your user so that you can use the same Identity and Access Management (IAM) role across multiple users. This policy scopes down a user's\n access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ${Transfer:UserName},\n ${Transfer:HomeDirectory}, and ${Transfer:HomeBucket}.

    \n \n \n

    This policy applies only when the domain of ServerId is Amazon S3. Amazon EFS does not use session policies.

    \n

    For session policies, Transfer Family stores the policy as a JSON blob, instead\n of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass\n it in the Policy argument.

    \n \n \n\n

    For an example of a session policy, see Creating a session\n policy.

    \n\n \n\n

    For more information, see AssumeRole in the Amazon Web Services\n Security Token Service API Reference.

    \n
    " } }, "PosixProfile": { @@ -4628,7 +6922,7 @@ "Role": { "target": "com.amazonaws.transfer#Role", "traits": { - "smithy.api#documentation": "

    Specifies the Amazon Resource Name (ARN) of the IAM role that controls your users' access to your Amazon S3 bucket or EFS\n file system. The policies attached to this role determine the level of access that you want to provide your users when transferring\n files into and out of your Amazon S3 bucket or EFS file system. The IAM role should also contain a trust relationship that allows the\n server to access your resources when servicing your users' transfer requests.

    " + "smithy.api#documentation": "

    The Amazon Resource Name (ARN) of the Identity and Access Management (IAM) role that controls your users' access to your Amazon S3 \n bucket or Amazon EFS file system. The policies attached to this role determine the level of access that you want to provide your users \n when transferring files into and out of your Amazon S3 bucket or Amazon EFS file system. The IAM role should also contain a trust \n relationship that allows the server to access your resources when servicing your users' transfer requests.

    " } }, "ServerId": { @@ -4774,7 +7068,7 @@ } }, "traits": { - "smithy.api#documentation": "

    Specifies the workflow ID for the workflow to assign and the execution role used for executing the workflow.

    " + "smithy.api#documentation": "

    Specifies the workflow ID for the workflow to assign and the execution role that's used for executing the workflow.

    " } }, "com.amazonaws.transfer#WorkflowDetails": { @@ -4808,7 +7102,7 @@ "Type": { "target": "com.amazonaws.transfer#WorkflowStepType", "traits": { - "smithy.api#documentation": "

    \n Currently, the following step types are supported.\n

    \n
      \n
    • \n

      \n COPY: copy the file to another location

      \n
    • \n
    • \n

      \n CUSTOM: custom step with a lambda target

      \n
    • \n
    • \n

      \n DELETE: delete the file

      \n
    • \n
    • \n

      \n TAG: add a tag to the file

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

    \n Currently, the following step types are supported.\n

    \n
      \n
    • \n

      \n COPY: Copy the file to another location.

      \n
    • \n
    • \n

      \n CUSTOM: Perform a custom step with an Lambda function target.

      \n
    • \n
    • \n

      \n DELETE: Delete the file.

      \n
    • \n
    • \n

      \n TAG: Add a tag to the file.

      \n
    • \n
    " } }, "CopyStepDetails": {