AWS Transfer Family

2022/02/23 - AWS Transfer Family - 2 updated api methods

Changes  The file input selection feature provides the ability to use either the originally uploaded file or the output file from the previous workflow step, enabling customers to make multiple copies of the original file while keeping the source file intact for file archival.

CreateWorkflow (updated) Link ¶
Changes (request)
{'OnExceptionSteps': {'CopyStepDetails': {'SourceFileLocation': 'string'},
                      'CustomStepDetails': {'SourceFileLocation': 'string'},
                      'DeleteStepDetails': {'SourceFileLocation': 'string'},
                      'TagStepDetails': {'SourceFileLocation': 'string'}},
 'Steps': {'CopyStepDetails': {'SourceFileLocation': 'string'},
           'CustomStepDetails': {'SourceFileLocation': 'string'},
           'DeleteStepDetails': {'SourceFileLocation': 'string'},
           'TagStepDetails': {'SourceFileLocation': 'string'}}}

Allows you to create a workflow with specified steps and step details the workflow invokes after file transfer completes. After creating a workflow, you can associate the workflow created with any transfer servers by specifying the workflow-details field in CreateServer and UpdateServer operations.

See also: AWS API Documentation

Request Syntax

client.create_workflow(
    Description='string',
    Steps=[
        {
            'Type': 'COPY'|'CUSTOM'|'TAG'|'DELETE',
            'CopyStepDetails': {
                'Name': 'string',
                'DestinationFileLocation': {
                    'S3FileLocation': {
                        'Bucket': 'string',
                        'Key': 'string'
                    },
                    'EfsFileLocation': {
                        'FileSystemId': 'string',
                        'Path': 'string'
                    }
                },
                'OverwriteExisting': 'TRUE'|'FALSE',
                'SourceFileLocation': 'string'
            },
            'CustomStepDetails': {
                'Name': 'string',
                'Target': 'string',
                'TimeoutSeconds': 123,
                'SourceFileLocation': 'string'
            },
            'DeleteStepDetails': {
                'Name': 'string',
                'SourceFileLocation': 'string'
            },
            'TagStepDetails': {
                'Name': 'string',
                'Tags': [
                    {
                        'Key': 'string',
                        'Value': 'string'
                    },
                ],
                'SourceFileLocation': 'string'
            }
        },
    ],
    OnExceptionSteps=[
        {
            'Type': 'COPY'|'CUSTOM'|'TAG'|'DELETE',
            'CopyStepDetails': {
                'Name': 'string',
                'DestinationFileLocation': {
                    'S3FileLocation': {
                        'Bucket': 'string',
                        'Key': 'string'
                    },
                    'EfsFileLocation': {
                        'FileSystemId': 'string',
                        'Path': 'string'
                    }
                },
                'OverwriteExisting': 'TRUE'|'FALSE',
                'SourceFileLocation': 'string'
            },
            'CustomStepDetails': {
                'Name': 'string',
                'Target': 'string',
                'TimeoutSeconds': 123,
                'SourceFileLocation': 'string'
            },
            'DeleteStepDetails': {
                'Name': 'string',
                'SourceFileLocation': 'string'
            },
            'TagStepDetails': {
                'Name': 'string',
                'Tags': [
                    {
                        'Key': 'string',
                        'Value': 'string'
                    },
                ],
                'SourceFileLocation': 'string'
            }
        },
    ],
    Tags=[
        {
            'Key': 'string',
            'Value': 'string'
        },
    ]
)
type Description:

string

param Description:

A textual description for the workflow.

type Steps:

list

param Steps:

[REQUIRED]

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: custom step with a lambda target

  • Delete: delete the file

  • Tag: add a tag to the file

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

  • (dict) --

    The basic building block of a workflow.

    • Type (string) --

      Currently, the following step types are supported.

      • Copy: copy the file to another location

      • Custom: custom step with a lambda target

      • Delete: delete the file

      • Tag: add a tag to the file

    • CopyStepDetails (dict) --

      Details for a step that performs a file copy.

      Consists of the following values:

      • A description

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

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

      • Name (string) --

        The name of the step, used as an identifier.

      • DestinationFileLocation (dict) --

        Specifies the location for the file being copied. Only applicable for Copy type workflow steps. Use ${Transfer:username} in this field to parametrize the destination prefix by username.

        • S3FileLocation (dict) --

          Specifies the details for the S3 file being copied.

          • Bucket (string) --

            Specifies the S3 bucket for the customer input file.

          • Key (string) --

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

        • EfsFileLocation (dict) --

          Reserved for future use.

          • FileSystemId (string) --

            The ID of the file system, assigned by Amazon EFS.

          • Path (string) --

            The pathname for the folder being used by a workflow.

      • OverwriteExisting (string) --

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

      • SourceFileLocation (string) --

        Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow.

        • Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value.

        • Enter ${original.file} to use the originally-uploaded file location as input for this step.

    • CustomStepDetails (dict) --

      Details for a step that invokes a lambda function.

      Consists of the lambda function name, target, and timeout (in seconds).

      • Name (string) --

        The name of the step, used as an identifier.

      • Target (string) --

        The ARN for the lambda function that is being called.

      • TimeoutSeconds (integer) --

        Timeout, in seconds, for the step.

      • SourceFileLocation (string) --

        Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow.

        • Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value.

        • Enter ${original.file} to use the originally-uploaded file location as input for this step.

    • DeleteStepDetails (dict) --

      Details for a step that deletes the file.

      • Name (string) --

        The name of the step, used as an identifier.

      • SourceFileLocation (string) --

        Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow.

        • Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value.

        • Enter ${original.file} to use the originally-uploaded file location as input for this step.

    • TagStepDetails (dict) --

      Details for a step that creates one or more tags.

      You specify one or more tags: each tag contains a key/value pair.

      • Name (string) --

        The name of the step, used as an identifier.

      • Tags (list) --

        Array that contains from 1 to 10 key/value pairs.

        • (dict) --

          Specifies the key-value pair that are assigned to a file during the execution of a Tagging step.

          • Key (string) -- [REQUIRED]

            The name assigned to the tag that you create.

          • Value (string) -- [REQUIRED]

            The value that corresponds to the key.

      • SourceFileLocation (string) --

        Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow.

        • Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value.

        • Enter ${original.file} to use the originally-uploaded file location as input for this step.

type OnExceptionSteps:

list

param OnExceptionSteps:

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

  • (dict) --

    The basic building block of a workflow.

    • Type (string) --

      Currently, the following step types are supported.

      • Copy: copy the file to another location

      • Custom: custom step with a lambda target

      • Delete: delete the file

      • Tag: add a tag to the file

    • CopyStepDetails (dict) --

      Details for a step that performs a file copy.

      Consists of the following values:

      • A description

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

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

      • Name (string) --

        The name of the step, used as an identifier.

      • DestinationFileLocation (dict) --

        Specifies the location for the file being copied. Only applicable for Copy type workflow steps. Use ${Transfer:username} in this field to parametrize the destination prefix by username.

        • S3FileLocation (dict) --

          Specifies the details for the S3 file being copied.

          • Bucket (string) --

            Specifies the S3 bucket for the customer input file.

          • Key (string) --

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

        • EfsFileLocation (dict) --

          Reserved for future use.

          • FileSystemId (string) --

            The ID of the file system, assigned by Amazon EFS.

          • Path (string) --

            The pathname for the folder being used by a workflow.

      • OverwriteExisting (string) --

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

      • SourceFileLocation (string) --

        Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow.

        • Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value.

        • Enter ${original.file} to use the originally-uploaded file location as input for this step.

    • CustomStepDetails (dict) --

      Details for a step that invokes a lambda function.

      Consists of the lambda function name, target, and timeout (in seconds).

      • Name (string) --

        The name of the step, used as an identifier.

      • Target (string) --

        The ARN for the lambda function that is being called.

      • TimeoutSeconds (integer) --

        Timeout, in seconds, for the step.

      • SourceFileLocation (string) --

        Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow.

        • Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value.

        • Enter ${original.file} to use the originally-uploaded file location as input for this step.

    • DeleteStepDetails (dict) --

      Details for a step that deletes the file.

      • Name (string) --

        The name of the step, used as an identifier.

      • SourceFileLocation (string) --

        Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow.

        • Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value.

        • Enter ${original.file} to use the originally-uploaded file location as input for this step.

    • TagStepDetails (dict) --

      Details for a step that creates one or more tags.

      You specify one or more tags: each tag contains a key/value pair.

      • Name (string) --

        The name of the step, used as an identifier.

      • Tags (list) --

        Array that contains from 1 to 10 key/value pairs.

        • (dict) --

          Specifies the key-value pair that are assigned to a file during the execution of a Tagging step.

          • Key (string) -- [REQUIRED]

            The name assigned to the tag that you create.

          • Value (string) -- [REQUIRED]

            The value that corresponds to the key.

      • SourceFileLocation (string) --

        Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow.

        • Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value.

        • Enter ${original.file} to use the originally-uploaded file location as input for this step.

type Tags:

list

param Tags:

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

  • (dict) --

    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.

    • Key (string) -- [REQUIRED]

      The name assigned to the tag that you create.

    • Value (string) -- [REQUIRED]

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

rtype:

dict

returns:

Response Syntax

{
    'WorkflowId': 'string'
}

Response Structure

  • (dict) --

    • WorkflowId (string) --

      A unique identifier for the workflow.

DescribeWorkflow (updated) Link ¶
Changes (response)
{'Workflow': {'OnExceptionSteps': {'CopyStepDetails': {'SourceFileLocation': 'string'},
                                   'CustomStepDetails': {'SourceFileLocation': 'string'},
                                   'DeleteStepDetails': {'SourceFileLocation': 'string'},
                                   'TagStepDetails': {'SourceFileLocation': 'string'}},
              'Steps': {'CopyStepDetails': {'SourceFileLocation': 'string'},
                        'CustomStepDetails': {'SourceFileLocation': 'string'},
                        'DeleteStepDetails': {'SourceFileLocation': 'string'},
                        'TagStepDetails': {'SourceFileLocation': 'string'}}}}

Describes the specified workflow.

See also: AWS API Documentation

Request Syntax

client.describe_workflow(
    WorkflowId='string'
)
type WorkflowId:

string

param WorkflowId:

[REQUIRED]

A unique identifier for the workflow.

rtype:

dict

returns:

Response Syntax

{
    'Workflow': {
        'Arn': 'string',
        'Description': 'string',
        'Steps': [
            {
                'Type': 'COPY'|'CUSTOM'|'TAG'|'DELETE',
                'CopyStepDetails': {
                    'Name': 'string',
                    'DestinationFileLocation': {
                        'S3FileLocation': {
                            'Bucket': 'string',
                            'Key': 'string'
                        },
                        'EfsFileLocation': {
                            'FileSystemId': 'string',
                            'Path': 'string'
                        }
                    },
                    'OverwriteExisting': 'TRUE'|'FALSE',
                    'SourceFileLocation': 'string'
                },
                'CustomStepDetails': {
                    'Name': 'string',
                    'Target': 'string',
                    'TimeoutSeconds': 123,
                    'SourceFileLocation': 'string'
                },
                'DeleteStepDetails': {
                    'Name': 'string',
                    'SourceFileLocation': 'string'
                },
                'TagStepDetails': {
                    'Name': 'string',
                    'Tags': [
                        {
                            'Key': 'string',
                            'Value': 'string'
                        },
                    ],
                    'SourceFileLocation': 'string'
                }
            },
        ],
        'OnExceptionSteps': [
            {
                'Type': 'COPY'|'CUSTOM'|'TAG'|'DELETE',
                'CopyStepDetails': {
                    'Name': 'string',
                    'DestinationFileLocation': {
                        'S3FileLocation': {
                            'Bucket': 'string',
                            'Key': 'string'
                        },
                        'EfsFileLocation': {
                            'FileSystemId': 'string',
                            'Path': 'string'
                        }
                    },
                    'OverwriteExisting': 'TRUE'|'FALSE',
                    'SourceFileLocation': 'string'
                },
                'CustomStepDetails': {
                    'Name': 'string',
                    'Target': 'string',
                    'TimeoutSeconds': 123,
                    'SourceFileLocation': 'string'
                },
                'DeleteStepDetails': {
                    'Name': 'string',
                    'SourceFileLocation': 'string'
                },
                'TagStepDetails': {
                    'Name': 'string',
                    'Tags': [
                        {
                            'Key': 'string',
                            'Value': 'string'
                        },
                    ],
                    'SourceFileLocation': 'string'
                }
            },
        ],
        'WorkflowId': 'string',
        'Tags': [
            {
                'Key': 'string',
                'Value': 'string'
            },
        ]
    }
}

Response Structure

  • (dict) --

    • Workflow (dict) --

      The structure that contains the details of the workflow.

      • Arn (string) --

        Specifies the unique Amazon Resource Name (ARN) for the workflow.

      • Description (string) --

        Specifies the text description for the workflow.

      • Steps (list) --

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

        • (dict) --

          The basic building block of a workflow.

          • Type (string) --

            Currently, the following step types are supported.

            • Copy: copy the file to another location

            • Custom: custom step with a lambda target

            • Delete: delete the file

            • Tag: add a tag to the file

          • CopyStepDetails (dict) --

            Details for a step that performs a file copy.

            Consists of the following values:

            • A description

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

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

            • Name (string) --

              The name of the step, used as an identifier.

            • DestinationFileLocation (dict) --

              Specifies the location for the file being copied. Only applicable for Copy type workflow steps. Use ${Transfer:username} in this field to parametrize the destination prefix by username.

              • S3FileLocation (dict) --

                Specifies the details for the S3 file being copied.

                • Bucket (string) --

                  Specifies the S3 bucket for the customer input file.

                • Key (string) --

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

              • EfsFileLocation (dict) --

                Reserved for future use.

                • FileSystemId (string) --

                  The ID of the file system, assigned by Amazon EFS.

                • Path (string) --

                  The pathname for the folder being used by a workflow.

            • OverwriteExisting (string) --

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

            • SourceFileLocation (string) --

              Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow.

              • Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value.

              • Enter ${original.file} to use the originally-uploaded file location as input for this step.

          • CustomStepDetails (dict) --

            Details for a step that invokes a lambda function.

            Consists of the lambda function name, target, and timeout (in seconds).

            • Name (string) --

              The name of the step, used as an identifier.

            • Target (string) --

              The ARN for the lambda function that is being called.

            • TimeoutSeconds (integer) --

              Timeout, in seconds, for the step.

            • SourceFileLocation (string) --

              Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow.

              • Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value.

              • Enter ${original.file} to use the originally-uploaded file location as input for this step.

          • DeleteStepDetails (dict) --

            Details for a step that deletes the file.

            • Name (string) --

              The name of the step, used as an identifier.

            • SourceFileLocation (string) --

              Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow.

              • Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value.

              • Enter ${original.file} to use the originally-uploaded file location as input for this step.

          • TagStepDetails (dict) --

            Details for a step that creates one or more tags.

            You specify one or more tags: each tag contains a key/value pair.

            • Name (string) --

              The name of the step, used as an identifier.

            • Tags (list) --

              Array that contains from 1 to 10 key/value pairs.

              • (dict) --

                Specifies the key-value pair that are assigned to a file during the execution of a Tagging step.

                • Key (string) --

                  The name assigned to the tag that you create.

                • Value (string) --

                  The value that corresponds to the key.

            • SourceFileLocation (string) --

              Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow.

              • Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value.

              • Enter ${original.file} to use the originally-uploaded file location as input for this step.

      • OnExceptionSteps (list) --

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

        • (dict) --

          The basic building block of a workflow.

          • Type (string) --

            Currently, the following step types are supported.

            • Copy: copy the file to another location

            • Custom: custom step with a lambda target

            • Delete: delete the file

            • Tag: add a tag to the file

          • CopyStepDetails (dict) --

            Details for a step that performs a file copy.

            Consists of the following values:

            • A description

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

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

            • Name (string) --

              The name of the step, used as an identifier.

            • DestinationFileLocation (dict) --

              Specifies the location for the file being copied. Only applicable for Copy type workflow steps. Use ${Transfer:username} in this field to parametrize the destination prefix by username.

              • S3FileLocation (dict) --

                Specifies the details for the S3 file being copied.

                • Bucket (string) --

                  Specifies the S3 bucket for the customer input file.

                • Key (string) --

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

              • EfsFileLocation (dict) --

                Reserved for future use.

                • FileSystemId (string) --

                  The ID of the file system, assigned by Amazon EFS.

                • Path (string) --

                  The pathname for the folder being used by a workflow.

            • OverwriteExisting (string) --

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

            • SourceFileLocation (string) --

              Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow.

              • Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value.

              • Enter ${original.file} to use the originally-uploaded file location as input for this step.

          • CustomStepDetails (dict) --

            Details for a step that invokes a lambda function.

            Consists of the lambda function name, target, and timeout (in seconds).

            • Name (string) --

              The name of the step, used as an identifier.

            • Target (string) --

              The ARN for the lambda function that is being called.

            • TimeoutSeconds (integer) --

              Timeout, in seconds, for the step.

            • SourceFileLocation (string) --

              Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow.

              • Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value.

              • Enter ${original.file} to use the originally-uploaded file location as input for this step.

          • DeleteStepDetails (dict) --

            Details for a step that deletes the file.

            • Name (string) --

              The name of the step, used as an identifier.

            • SourceFileLocation (string) --

              Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow.

              • Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value.

              • Enter ${original.file} to use the originally-uploaded file location as input for this step.

          • TagStepDetails (dict) --

            Details for a step that creates one or more tags.

            You specify one or more tags: each tag contains a key/value pair.

            • Name (string) --

              The name of the step, used as an identifier.

            • Tags (list) --

              Array that contains from 1 to 10 key/value pairs.

              • (dict) --

                Specifies the key-value pair that are assigned to a file during the execution of a Tagging step.

                • Key (string) --

                  The name assigned to the tag that you create.

                • Value (string) --

                  The value that corresponds to the key.

            • SourceFileLocation (string) --

              Specifies which file to use as input to the workflow step: either the output from the previous step, or the originally uploaded file for the workflow.

              • Enter ${previous.file} to use the previous file as the input. In this case, this workflow step uses the output file from the previous workflow step as input. This is the default value.

              • Enter ${original.file} to use the originally-uploaded file location as input for this step.

      • WorkflowId (string) --

        A unique identifier for the workflow.

      • Tags (list) --

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

        • (dict) --

          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.

          • Key (string) --

            The name assigned to the tag that you create.

          • Value (string) --

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