/** * 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 namespace Aws { namespace Transfer { namespace Model { /** */ class CreateWorkflowRequest : public TransferRequest { public: AWS_TRANSFER_API CreateWorkflowRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateWorkflow"; } AWS_TRANSFER_API Aws::String SerializePayload() const override; AWS_TRANSFER_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

A textual description for the workflow.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

A textual description for the workflow.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

A textual description for the workflow.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

A textual description for the workflow.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

A textual description for the workflow.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

A textual description for the workflow.

*/ inline CreateWorkflowRequest& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

A textual description for the workflow.

*/ inline CreateWorkflowRequest& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

A textual description for the workflow.

*/ inline CreateWorkflowRequest& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

Specifies the details for the steps that are in the specified workflow.

*

The TYPE specifies which of the following actions is being * taken for this step.

  • 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.

  • *

Currently, copying and tagging are supported only on S3.

*

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

*/ inline const Aws::Vector& GetSteps() const{ return m_steps; } /** *

Specifies the details for the steps that are in the specified workflow.

*

The TYPE specifies which of the following actions is being * taken for this step.

  • 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.

  • *

Currently, copying and tagging are supported only on S3.

*

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

*/ inline bool StepsHasBeenSet() const { return m_stepsHasBeenSet; } /** *

Specifies the details for the steps that are in the specified workflow.

*

The TYPE specifies which of the following actions is being * taken for this step.

  • 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.

  • *

Currently, copying and tagging are supported only on S3.

*

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

*/ inline void SetSteps(const Aws::Vector& value) { m_stepsHasBeenSet = true; m_steps = value; } /** *

Specifies the details for the steps that are in the specified workflow.

*

The TYPE specifies which of the following actions is being * taken for this step.

  • 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.

  • *

Currently, copying and tagging are supported only on S3.

*

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

*/ inline void SetSteps(Aws::Vector&& value) { m_stepsHasBeenSet = true; m_steps = std::move(value); } /** *

Specifies the details for the steps that are in the specified workflow.

*

The TYPE specifies which of the following actions is being * taken for this step.

  • 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.

  • *

Currently, copying and tagging are supported only on S3.

*

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

*/ inline CreateWorkflowRequest& WithSteps(const Aws::Vector& value) { SetSteps(value); return *this;} /** *

Specifies the details for the steps that are in the specified workflow.

*

The TYPE specifies which of the following actions is being * taken for this step.

  • 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.

  • *

Currently, copying and tagging are supported only on S3.

*

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

*/ inline CreateWorkflowRequest& WithSteps(Aws::Vector&& value) { SetSteps(std::move(value)); return *this;} /** *

Specifies the details for the steps that are in the specified workflow.

*

The TYPE specifies which of the following actions is being * taken for this step.

  • 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.

  • *

Currently, copying and tagging are supported only on S3.

*

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

*/ inline CreateWorkflowRequest& AddSteps(const WorkflowStep& value) { m_stepsHasBeenSet = true; m_steps.push_back(value); return *this; } /** *

Specifies the details for the steps that are in the specified workflow.

*

The TYPE specifies which of the following actions is being * taken for this step.

  • 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.

  • *

Currently, copying and tagging are supported only on S3.

*

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

*/ inline CreateWorkflowRequest& AddSteps(WorkflowStep&& value) { m_stepsHasBeenSet = true; m_steps.push_back(std::move(value)); return *this; } /** *

Specifies the steps (actions) to take if errors are encountered during * execution of the workflow.

For custom steps, the Lambda function * needs to send FAILURE to the call back API to kick off the * exception steps. Additionally, if the Lambda does not send SUCCESS * before it times out, the exception steps are executed.

*/ inline const Aws::Vector& GetOnExceptionSteps() const{ return m_onExceptionSteps; } /** *

Specifies the steps (actions) to take if errors are encountered during * execution of the workflow.

For custom steps, the Lambda function * needs to send FAILURE to the call back API to kick off the * exception steps. Additionally, if the Lambda does not send SUCCESS * before it times out, the exception steps are executed.

*/ inline bool OnExceptionStepsHasBeenSet() const { return m_onExceptionStepsHasBeenSet; } /** *

Specifies the steps (actions) to take if errors are encountered during * execution of the workflow.

For custom steps, the Lambda function * needs to send FAILURE to the call back API to kick off the * exception steps. Additionally, if the Lambda does not send SUCCESS * before it times out, the exception steps are executed.

*/ inline void SetOnExceptionSteps(const Aws::Vector& value) { m_onExceptionStepsHasBeenSet = true; m_onExceptionSteps = value; } /** *

Specifies the steps (actions) to take if errors are encountered during * execution of the workflow.

For custom steps, the Lambda function * needs to send FAILURE to the call back API to kick off the * exception steps. Additionally, if the Lambda does not send SUCCESS * before it times out, the exception steps are executed.

*/ inline void SetOnExceptionSteps(Aws::Vector&& value) { m_onExceptionStepsHasBeenSet = true; m_onExceptionSteps = std::move(value); } /** *

Specifies the steps (actions) to take if errors are encountered during * execution of the workflow.

For custom steps, the Lambda function * needs to send FAILURE to the call back API to kick off the * exception steps. Additionally, if the Lambda does not send SUCCESS * before it times out, the exception steps are executed.

*/ inline CreateWorkflowRequest& WithOnExceptionSteps(const Aws::Vector& value) { SetOnExceptionSteps(value); return *this;} /** *

Specifies the steps (actions) to take if errors are encountered during * execution of the workflow.

For custom steps, the Lambda function * needs to send FAILURE to the call back API to kick off the * exception steps. Additionally, if the Lambda does not send SUCCESS * before it times out, the exception steps are executed.

*/ inline CreateWorkflowRequest& WithOnExceptionSteps(Aws::Vector&& value) { SetOnExceptionSteps(std::move(value)); return *this;} /** *

Specifies the steps (actions) to take if errors are encountered during * execution of the workflow.

For custom steps, the Lambda function * needs to send FAILURE to the call back API to kick off the * exception steps. Additionally, if the Lambda does not send SUCCESS * before it times out, the exception steps are executed.

*/ inline CreateWorkflowRequest& AddOnExceptionSteps(const WorkflowStep& value) { m_onExceptionStepsHasBeenSet = true; m_onExceptionSteps.push_back(value); return *this; } /** *

Specifies the steps (actions) to take if errors are encountered during * execution of the workflow.

For custom steps, the Lambda function * needs to send FAILURE to the call back API to kick off the * exception steps. Additionally, if the Lambda does not send SUCCESS * before it times out, the exception steps are executed.

*/ inline CreateWorkflowRequest& AddOnExceptionSteps(WorkflowStep&& value) { m_onExceptionStepsHasBeenSet = true; m_onExceptionSteps.push_back(std::move(value)); return *this; } /** *

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

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

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

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

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

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

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

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

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

*/ inline CreateWorkflowRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

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

*/ inline CreateWorkflowRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

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

*/ inline CreateWorkflowRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

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

*/ inline CreateWorkflowRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } private: Aws::String m_description; bool m_descriptionHasBeenSet = false; Aws::Vector m_steps; bool m_stepsHasBeenSet = false; Aws::Vector m_onExceptionSteps; bool m_onExceptionStepsHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace Transfer } // namespace Aws