/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace Transfer { namespace Model { /** *

The basic building block of a workflow.

See Also:

AWS * API Reference

*/ class WorkflowStep { public: AWS_TRANSFER_API WorkflowStep(); AWS_TRANSFER_API WorkflowStep(Aws::Utils::Json::JsonView jsonValue); AWS_TRANSFER_API WorkflowStep& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_TRANSFER_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

Currently, the following step types are supported.

  • * COPY - Copy the file to another location.

  • * CUSTOM - Perform a custom step with an Lambda function * target.

  • DECRYPT - Decrypt a file that * was encrypted before it was uploaded.

  • DELETE * - Delete the file.

  • TAG - Add a tag * to the file.

*/ inline const WorkflowStepType& GetType() const{ return m_type; } /** *

Currently, the following step types are supported.

  • * COPY - Copy the file to another location.

  • * CUSTOM - Perform a custom step with an Lambda function * target.

  • DECRYPT - Decrypt a file that * was encrypted before it was uploaded.

  • DELETE * - Delete the file.

  • TAG - Add a tag * to the file.

*/ inline bool TypeHasBeenSet() const { return m_typeHasBeenSet; } /** *

Currently, the following step types are supported.

  • * COPY - Copy the file to another location.

  • * CUSTOM - Perform a custom step with an Lambda function * target.

  • DECRYPT - Decrypt a file that * was encrypted before it was uploaded.

  • DELETE * - Delete the file.

  • TAG - Add a tag * to the file.

*/ inline void SetType(const WorkflowStepType& value) { m_typeHasBeenSet = true; m_type = value; } /** *

Currently, the following step types are supported.

  • * COPY - Copy the file to another location.

  • * CUSTOM - Perform a custom step with an Lambda function * target.

  • DECRYPT - Decrypt a file that * was encrypted before it was uploaded.

  • DELETE * - Delete the file.

  • TAG - Add a tag * to the file.

*/ inline void SetType(WorkflowStepType&& value) { m_typeHasBeenSet = true; m_type = std::move(value); } /** *

Currently, the following step types are supported.

  • * COPY - Copy the file to another location.

  • * CUSTOM - Perform a custom step with an Lambda function * target.

  • DECRYPT - Decrypt a file that * was encrypted before it was uploaded.

  • DELETE * - Delete the file.

  • TAG - Add a tag * to the file.

*/ inline WorkflowStep& WithType(const WorkflowStepType& value) { SetType(value); return *this;} /** *

Currently, the following step types are supported.

  • * COPY - Copy the file to another location.

  • * CUSTOM - Perform a custom step with an Lambda function * target.

  • DECRYPT - Decrypt a file that * was encrypted before it was uploaded.

  • DELETE * - Delete the file.

  • TAG - Add a tag * to the file.

*/ inline WorkflowStep& WithType(WorkflowStepType&& value) { SetType(std::move(value)); return *this;} /** *

Details for a step that performs a file copy.

Consists of the * following values:

  • A description

  • An Amazon S3 * location for the destination of the file copy.

  • A flag that * indicates whether to overwrite an existing file of the same name. The default is * FALSE.

*/ inline const CopyStepDetails& GetCopyStepDetails() const{ return m_copyStepDetails; } /** *

Details for a step that performs a file copy.

Consists of the * following values:

  • A description

  • An Amazon S3 * location for the destination of the file copy.

  • A flag that * indicates whether to overwrite an existing file of the same name. The default is * FALSE.

*/ inline bool CopyStepDetailsHasBeenSet() const { return m_copyStepDetailsHasBeenSet; } /** *

Details for a step that performs a file copy.

Consists of the * following values:

  • A description

  • An Amazon S3 * location for the destination of the file copy.

  • A flag that * indicates whether to overwrite an existing file of the same name. The default is * FALSE.

*/ inline void SetCopyStepDetails(const CopyStepDetails& value) { m_copyStepDetailsHasBeenSet = true; m_copyStepDetails = value; } /** *

Details for a step that performs a file copy.

Consists of the * following values:

  • A description

  • An Amazon S3 * location for the destination of the file copy.

  • A flag that * indicates whether to overwrite an existing file of the same name. The default is * FALSE.

*/ inline void SetCopyStepDetails(CopyStepDetails&& value) { m_copyStepDetailsHasBeenSet = true; m_copyStepDetails = std::move(value); } /** *

Details for a step that performs a file copy.

Consists of the * following values:

  • A description

  • An Amazon S3 * location for the destination of the file copy.

  • A flag that * indicates whether to overwrite an existing file of the same name. The default is * FALSE.

*/ inline WorkflowStep& WithCopyStepDetails(const CopyStepDetails& value) { SetCopyStepDetails(value); return *this;} /** *

Details for a step that performs a file copy.

Consists of the * following values:

  • A description

  • An Amazon S3 * location for the destination of the file copy.

  • A flag that * indicates whether to overwrite an existing file of the same name. The default is * FALSE.

*/ inline WorkflowStep& WithCopyStepDetails(CopyStepDetails&& value) { SetCopyStepDetails(std::move(value)); return *this;} /** *

Details for a step that invokes an Lambda function.

Consists of the * Lambda function's name, target, and timeout (in seconds).

*/ inline const CustomStepDetails& GetCustomStepDetails() const{ return m_customStepDetails; } /** *

Details for a step that invokes an Lambda function.

Consists of the * Lambda function's name, target, and timeout (in seconds).

*/ inline bool CustomStepDetailsHasBeenSet() const { return m_customStepDetailsHasBeenSet; } /** *

Details for a step that invokes an Lambda function.

Consists of the * Lambda function's name, target, and timeout (in seconds).

*/ inline void SetCustomStepDetails(const CustomStepDetails& value) { m_customStepDetailsHasBeenSet = true; m_customStepDetails = value; } /** *

Details for a step that invokes an Lambda function.

Consists of the * Lambda function's name, target, and timeout (in seconds).

*/ inline void SetCustomStepDetails(CustomStepDetails&& value) { m_customStepDetailsHasBeenSet = true; m_customStepDetails = std::move(value); } /** *

Details for a step that invokes an Lambda function.

Consists of the * Lambda function's name, target, and timeout (in seconds).

*/ inline WorkflowStep& WithCustomStepDetails(const CustomStepDetails& value) { SetCustomStepDetails(value); return *this;} /** *

Details for a step that invokes an Lambda function.

Consists of the * Lambda function's name, target, and timeout (in seconds).

*/ inline WorkflowStep& WithCustomStepDetails(CustomStepDetails&& value) { SetCustomStepDetails(std::move(value)); return *this;} /** *

Details for a step that deletes the file.

*/ inline const DeleteStepDetails& GetDeleteStepDetails() const{ return m_deleteStepDetails; } /** *

Details for a step that deletes the file.

*/ inline bool DeleteStepDetailsHasBeenSet() const { return m_deleteStepDetailsHasBeenSet; } /** *

Details for a step that deletes the file.

*/ inline void SetDeleteStepDetails(const DeleteStepDetails& value) { m_deleteStepDetailsHasBeenSet = true; m_deleteStepDetails = value; } /** *

Details for a step that deletes the file.

*/ inline void SetDeleteStepDetails(DeleteStepDetails&& value) { m_deleteStepDetailsHasBeenSet = true; m_deleteStepDetails = std::move(value); } /** *

Details for a step that deletes the file.

*/ inline WorkflowStep& WithDeleteStepDetails(const DeleteStepDetails& value) { SetDeleteStepDetails(value); return *this;} /** *

Details for a step that deletes the file.

*/ inline WorkflowStep& WithDeleteStepDetails(DeleteStepDetails&& value) { SetDeleteStepDetails(std::move(value)); return *this;} /** *

Details for a step that creates one or more tags.

You specify one or * more tags. Each tag contains a key-value pair.

*/ inline const TagStepDetails& GetTagStepDetails() const{ return m_tagStepDetails; } /** *

Details for a step that creates one or more tags.

You specify one or * more tags. Each tag contains a key-value pair.

*/ inline bool TagStepDetailsHasBeenSet() const { return m_tagStepDetailsHasBeenSet; } /** *

Details for a step that creates one or more tags.

You specify one or * more tags. Each tag contains a key-value pair.

*/ inline void SetTagStepDetails(const TagStepDetails& value) { m_tagStepDetailsHasBeenSet = true; m_tagStepDetails = value; } /** *

Details for a step that creates one or more tags.

You specify one or * more tags. Each tag contains a key-value pair.

*/ inline void SetTagStepDetails(TagStepDetails&& value) { m_tagStepDetailsHasBeenSet = true; m_tagStepDetails = std::move(value); } /** *

Details for a step that creates one or more tags.

You specify one or * more tags. Each tag contains a key-value pair.

*/ inline WorkflowStep& WithTagStepDetails(const TagStepDetails& value) { SetTagStepDetails(value); return *this;} /** *

Details for a step that creates one or more tags.

You specify one or * more tags. Each tag contains a key-value pair.

*/ inline WorkflowStep& WithTagStepDetails(TagStepDetails&& value) { SetTagStepDetails(std::move(value)); return *this;} /** *

Details for a step that decrypts an encrypted file.

Consists of the * following values:

  • A descriptive name

  • An * Amazon S3 or Amazon Elastic File System (Amazon EFS) location for the source * file to decrypt.

  • An S3 or Amazon EFS location for the * destination of the file decryption.

  • A flag that indicates * whether to overwrite an existing file of the same name. The default is * FALSE.

  • The type of encryption that's used. * Currently, only PGP encryption is supported.

*/ inline const DecryptStepDetails& GetDecryptStepDetails() const{ return m_decryptStepDetails; } /** *

Details for a step that decrypts an encrypted file.

Consists of the * following values:

  • A descriptive name

  • An * Amazon S3 or Amazon Elastic File System (Amazon EFS) location for the source * file to decrypt.

  • An S3 or Amazon EFS location for the * destination of the file decryption.

  • A flag that indicates * whether to overwrite an existing file of the same name. The default is * FALSE.

  • The type of encryption that's used. * Currently, only PGP encryption is supported.

*/ inline bool DecryptStepDetailsHasBeenSet() const { return m_decryptStepDetailsHasBeenSet; } /** *

Details for a step that decrypts an encrypted file.

Consists of the * following values:

  • A descriptive name

  • An * Amazon S3 or Amazon Elastic File System (Amazon EFS) location for the source * file to decrypt.

  • An S3 or Amazon EFS location for the * destination of the file decryption.

  • A flag that indicates * whether to overwrite an existing file of the same name. The default is * FALSE.

  • The type of encryption that's used. * Currently, only PGP encryption is supported.

*/ inline void SetDecryptStepDetails(const DecryptStepDetails& value) { m_decryptStepDetailsHasBeenSet = true; m_decryptStepDetails = value; } /** *

Details for a step that decrypts an encrypted file.

Consists of the * following values:

  • A descriptive name

  • An * Amazon S3 or Amazon Elastic File System (Amazon EFS) location for the source * file to decrypt.

  • An S3 or Amazon EFS location for the * destination of the file decryption.

  • A flag that indicates * whether to overwrite an existing file of the same name. The default is * FALSE.

  • The type of encryption that's used. * Currently, only PGP encryption is supported.

*/ inline void SetDecryptStepDetails(DecryptStepDetails&& value) { m_decryptStepDetailsHasBeenSet = true; m_decryptStepDetails = std::move(value); } /** *

Details for a step that decrypts an encrypted file.

Consists of the * following values:

  • A descriptive name

  • An * Amazon S3 or Amazon Elastic File System (Amazon EFS) location for the source * file to decrypt.

  • An S3 or Amazon EFS location for the * destination of the file decryption.

  • A flag that indicates * whether to overwrite an existing file of the same name. The default is * FALSE.

  • The type of encryption that's used. * Currently, only PGP encryption is supported.

*/ inline WorkflowStep& WithDecryptStepDetails(const DecryptStepDetails& value) { SetDecryptStepDetails(value); return *this;} /** *

Details for a step that decrypts an encrypted file.

Consists of the * following values:

  • A descriptive name

  • An * Amazon S3 or Amazon Elastic File System (Amazon EFS) location for the source * file to decrypt.

  • An S3 or Amazon EFS location for the * destination of the file decryption.

  • A flag that indicates * whether to overwrite an existing file of the same name. The default is * FALSE.

  • The type of encryption that's used. * Currently, only PGP encryption is supported.

*/ inline WorkflowStep& WithDecryptStepDetails(DecryptStepDetails&& value) { SetDecryptStepDetails(std::move(value)); return *this;} private: WorkflowStepType m_type; bool m_typeHasBeenSet = false; CopyStepDetails m_copyStepDetails; bool m_copyStepDetailsHasBeenSet = false; CustomStepDetails m_customStepDetails; bool m_customStepDetailsHasBeenSet = false; DeleteStepDetails m_deleteStepDetails; bool m_deleteStepDetailsHasBeenSet = false; TagStepDetails m_tagStepDetails; bool m_tagStepDetailsHasBeenSet = false; DecryptStepDetails m_decryptStepDetails; bool m_decryptStepDetailsHasBeenSet = false; }; } // namespace Model } // namespace Transfer } // namespace Aws