1. Packages
  2. AWS Cloud Control
  3. API Docs
  4. transfer
  5. Server

We recommend new projects start with resources from the AWS provider.

AWS Cloud Control v1.9.0 published on Monday, Nov 18, 2024 by Pulumi

aws-native.transfer.Server

Explore with Pulumi AI

aws-native logo

We recommend new projects start with resources from the AWS provider.

AWS Cloud Control v1.9.0 published on Monday, Nov 18, 2024 by Pulumi

    Definition of AWS::Transfer::Server Resource Type

    Example Usage

    Example

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AwsNative = Pulumi.AwsNative;
    
    return await Deployment.RunAsync(() => 
    {
        var myTransferServer = new AwsNative.Transfer.Server("myTransferServer", new()
        {
            EndpointDetails = new AwsNative.Transfer.Inputs.ServerEndpointDetailsArgs
            {
                AddressAllocationIds = new[]
                {
                    "AddressAllocationId-1",
                    "AddressAllocationId-2",
                },
                SubnetIds = new[]
                {
                    "SubnetId-1",
                    "SubnetId-2",
                },
                VpcId = "VpcId",
            },
            EndpointType = AwsNative.Transfer.ServerEndpointType.Vpc,
            LoggingRole = "Logging-Role-ARN",
            Protocols = new[]
            {
                AwsNative.Transfer.ServerProtocol.Sftp,
            },
            SecurityPolicyName = "Security-Policy-Name",
            IdentityProviderDetails = new AwsNative.Transfer.Inputs.ServerIdentityProviderDetailsArgs
            {
                InvocationRole = "Invocation-Role-ARN",
                Url = "API_GATEWAY-Invocation-URL",
            },
            IdentityProviderType = AwsNative.Transfer.ServerIdentityProviderType.ApiGateway,
            Tags = new[]
            {
                new AwsNative.Inputs.TagArgs
                {
                    Key = "KeyName",
                    Value = "ValueName",
                },
            },
        });
    
    });
    
    package main
    
    import (
    	awsnative "github.com/pulumi/pulumi-aws-native/sdk/go/aws"
    	"github.com/pulumi/pulumi-aws-native/sdk/go/aws/transfer"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := transfer.NewServer(ctx, "myTransferServer", &transfer.ServerArgs{
    			EndpointDetails: &transfer.ServerEndpointDetailsArgs{
    				AddressAllocationIds: pulumi.StringArray{
    					pulumi.String("AddressAllocationId-1"),
    					pulumi.String("AddressAllocationId-2"),
    				},
    				SubnetIds: pulumi.StringArray{
    					pulumi.String("SubnetId-1"),
    					pulumi.String("SubnetId-2"),
    				},
    				VpcId: pulumi.String("VpcId"),
    			},
    			EndpointType: transfer.ServerEndpointTypeVpc,
    			LoggingRole:  pulumi.String("Logging-Role-ARN"),
    			Protocols: transfer.ServerProtocolArray{
    				transfer.ServerProtocolSftp,
    			},
    			SecurityPolicyName: pulumi.String("Security-Policy-Name"),
    			IdentityProviderDetails: &transfer.ServerIdentityProviderDetailsArgs{
    				InvocationRole: pulumi.String("Invocation-Role-ARN"),
    				Url:            pulumi.String("API_GATEWAY-Invocation-URL"),
    			},
    			IdentityProviderType: transfer.ServerIdentityProviderTypeApiGateway,
    			Tags: aws.TagArray{
    				&aws.TagArgs{
    					Key:   pulumi.String("KeyName"),
    					Value: pulumi.String("ValueName"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    

    Coming soon!

    import pulumi
    import pulumi_aws_native as aws_native
    
    my_transfer_server = aws_native.transfer.Server("myTransferServer",
        endpoint_details={
            "address_allocation_ids": [
                "AddressAllocationId-1",
                "AddressAllocationId-2",
            ],
            "subnet_ids": [
                "SubnetId-1",
                "SubnetId-2",
            ],
            "vpc_id": "VpcId",
        },
        endpoint_type=aws_native.transfer.ServerEndpointType.VPC,
        logging_role="Logging-Role-ARN",
        protocols=[aws_native.transfer.ServerProtocol.SFTP],
        security_policy_name="Security-Policy-Name",
        identity_provider_details={
            "invocation_role": "Invocation-Role-ARN",
            "url": "API_GATEWAY-Invocation-URL",
        },
        identity_provider_type=aws_native.transfer.ServerIdentityProviderType.API_GATEWAY,
        tags=[{
            "key": "KeyName",
            "value": "ValueName",
        }])
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws_native from "@pulumi/aws-native";
    
    const myTransferServer = new aws_native.transfer.Server("myTransferServer", {
        endpointDetails: {
            addressAllocationIds: [
                "AddressAllocationId-1",
                "AddressAllocationId-2",
            ],
            subnetIds: [
                "SubnetId-1",
                "SubnetId-2",
            ],
            vpcId: "VpcId",
        },
        endpointType: aws_native.transfer.ServerEndpointType.Vpc,
        loggingRole: "Logging-Role-ARN",
        protocols: [aws_native.transfer.ServerProtocol.Sftp],
        securityPolicyName: "Security-Policy-Name",
        identityProviderDetails: {
            invocationRole: "Invocation-Role-ARN",
            url: "API_GATEWAY-Invocation-URL",
        },
        identityProviderType: aws_native.transfer.ServerIdentityProviderType.ApiGateway,
        tags: [{
            key: "KeyName",
            value: "ValueName",
        }],
    });
    

    Coming soon!

    Example

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AwsNative = Pulumi.AwsNative;
    
    return await Deployment.RunAsync(() => 
    {
        var myTransferServer = new AwsNative.Transfer.Server("myTransferServer", new()
        {
            EndpointDetails = new AwsNative.Transfer.Inputs.ServerEndpointDetailsArgs
            {
                AddressAllocationIds = new[]
                {
                    "AddressAllocationId-1",
                    "AddressAllocationId-2",
                },
                SubnetIds = new[]
                {
                    "SubnetId-1",
                    "SubnetId-2",
                },
                VpcId = "VpcId",
            },
            EndpointType = AwsNative.Transfer.ServerEndpointType.Vpc,
            LoggingRole = "Logging-Role-ARN",
            Protocols = new[]
            {
                AwsNative.Transfer.ServerProtocol.Sftp,
            },
            SecurityPolicyName = "Security-Policy-Name",
            IdentityProviderDetails = new AwsNative.Transfer.Inputs.ServerIdentityProviderDetailsArgs
            {
                InvocationRole = "Invocation-Role-ARN",
                Url = "API_GATEWAY-Invocation-URL",
            },
            IdentityProviderType = AwsNative.Transfer.ServerIdentityProviderType.ApiGateway,
            Tags = new[]
            {
                new AwsNative.Inputs.TagArgs
                {
                    Key = "KeyName",
                    Value = "ValueName",
                },
            },
        });
    
    });
    
    package main
    
    import (
    	awsnative "github.com/pulumi/pulumi-aws-native/sdk/go/aws"
    	"github.com/pulumi/pulumi-aws-native/sdk/go/aws/transfer"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := transfer.NewServer(ctx, "myTransferServer", &transfer.ServerArgs{
    			EndpointDetails: &transfer.ServerEndpointDetailsArgs{
    				AddressAllocationIds: pulumi.StringArray{
    					pulumi.String("AddressAllocationId-1"),
    					pulumi.String("AddressAllocationId-2"),
    				},
    				SubnetIds: pulumi.StringArray{
    					pulumi.String("SubnetId-1"),
    					pulumi.String("SubnetId-2"),
    				},
    				VpcId: pulumi.String("VpcId"),
    			},
    			EndpointType: transfer.ServerEndpointTypeVpc,
    			LoggingRole:  pulumi.String("Logging-Role-ARN"),
    			Protocols: transfer.ServerProtocolArray{
    				transfer.ServerProtocolSftp,
    			},
    			SecurityPolicyName: pulumi.String("Security-Policy-Name"),
    			IdentityProviderDetails: &transfer.ServerIdentityProviderDetailsArgs{
    				InvocationRole: pulumi.String("Invocation-Role-ARN"),
    				Url:            pulumi.String("API_GATEWAY-Invocation-URL"),
    			},
    			IdentityProviderType: transfer.ServerIdentityProviderTypeApiGateway,
    			Tags: aws.TagArray{
    				&aws.TagArgs{
    					Key:   pulumi.String("KeyName"),
    					Value: pulumi.String("ValueName"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    

    Coming soon!

    import pulumi
    import pulumi_aws_native as aws_native
    
    my_transfer_server = aws_native.transfer.Server("myTransferServer",
        endpoint_details={
            "address_allocation_ids": [
                "AddressAllocationId-1",
                "AddressAllocationId-2",
            ],
            "subnet_ids": [
                "SubnetId-1",
                "SubnetId-2",
            ],
            "vpc_id": "VpcId",
        },
        endpoint_type=aws_native.transfer.ServerEndpointType.VPC,
        logging_role="Logging-Role-ARN",
        protocols=[aws_native.transfer.ServerProtocol.SFTP],
        security_policy_name="Security-Policy-Name",
        identity_provider_details={
            "invocation_role": "Invocation-Role-ARN",
            "url": "API_GATEWAY-Invocation-URL",
        },
        identity_provider_type=aws_native.transfer.ServerIdentityProviderType.API_GATEWAY,
        tags=[{
            "key": "KeyName",
            "value": "ValueName",
        }])
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws_native from "@pulumi/aws-native";
    
    const myTransferServer = new aws_native.transfer.Server("myTransferServer", {
        endpointDetails: {
            addressAllocationIds: [
                "AddressAllocationId-1",
                "AddressAllocationId-2",
            ],
            subnetIds: [
                "SubnetId-1",
                "SubnetId-2",
            ],
            vpcId: "VpcId",
        },
        endpointType: aws_native.transfer.ServerEndpointType.Vpc,
        loggingRole: "Logging-Role-ARN",
        protocols: [aws_native.transfer.ServerProtocol.Sftp],
        securityPolicyName: "Security-Policy-Name",
        identityProviderDetails: {
            invocationRole: "Invocation-Role-ARN",
            url: "API_GATEWAY-Invocation-URL",
        },
        identityProviderType: aws_native.transfer.ServerIdentityProviderType.ApiGateway,
        tags: [{
            key: "KeyName",
            value: "ValueName",
        }],
    });
    

    Coming soon!

    Example

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AwsNative = Pulumi.AwsNative;
    
    return await Deployment.RunAsync(() => 
    {
        var transferWorkflow = new AwsNative.Transfer.Workflow("transferWorkflow", new()
        {
            Description = "Transfer Family Workflows Blog",
            Steps = new[]
            {
                new AwsNative.Transfer.Inputs.WorkflowStepArgs
                {
                    Type = AwsNative.Transfer.WorkflowStepType.Copy,
                    CopyStepDetails = new AwsNative.Transfer.Inputs.WorkflowStepCopyStepDetailsPropertiesArgs
                    {
                        Name = "copyToUserKey",
                        DestinationFileLocation = new AwsNative.Transfer.Inputs.WorkflowS3FileLocationArgs
                        {
                            S3FileLocation = new AwsNative.Transfer.Inputs.WorkflowS3InputFileLocationArgs
                            {
                                Bucket = "archived-records",
                                Key = "${transfer:UserName}/",
                            },
                        },
                        OverwriteExisting = AwsNative.Transfer.WorkflowStepCopyStepDetailsPropertiesOverwriteExisting.True,
                    },
                },
                new AwsNative.Transfer.Inputs.WorkflowStepArgs
                {
                    Type = AwsNative.Transfer.WorkflowStepType.Tag,
                    TagStepDetails = new AwsNative.Transfer.Inputs.WorkflowStepTagStepDetailsPropertiesArgs
                    {
                        Name = "tagFileForArchive",
                        Tags = new[]
                        {
                            new AwsNative.Transfer.Inputs.WorkflowS3TagArgs
                            {
                                Key = "Archive",
                                Value = "yes",
                            },
                        },
                    },
                },
                new AwsNative.Transfer.Inputs.WorkflowStepArgs
                {
                    Type = AwsNative.Transfer.WorkflowStepType.Custom,
                    CustomStepDetails = new AwsNative.Transfer.Inputs.WorkflowStepCustomStepDetailsPropertiesArgs
                    {
                        Name = "transferExtract",
                        Target = "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:my-function-name",
                        TimeoutSeconds = 60,
                    },
                },
                new AwsNative.Transfer.Inputs.WorkflowStepArgs
                {
                    Type = AwsNative.Transfer.WorkflowStepType.Delete,
                    DeleteStepDetails = new AwsNative.Transfer.Inputs.WorkflowStepDeleteStepDetailsPropertiesArgs
                    {
                        Name = "DeleteInputFile",
                        SourceFileLocation = "${original.file}",
                    },
                },
            },
            Tags = new[]
            {
                new AwsNative.Inputs.TagArgs
                {
                    Key = "Name",
                    Value = "TransferFamilyWorkflows",
                },
            },
        });
    
        var sftpServer = new AwsNative.Transfer.Server("sftpServer", new()
        {
            WorkflowDetails = new AwsNative.Transfer.Inputs.ServerWorkflowDetailsArgs
            {
                OnUpload = new[]
                {
                    new AwsNative.Transfer.Inputs.ServerWorkflowDetailArgs
                    {
                        ExecutionRole = "your-workflow-execution-role-arn",
                        WorkflowId = transferWorkflow.WorkflowId,
                    },
                },
            },
        });
    
    });
    
    package main
    
    import (
    	awsnative "github.com/pulumi/pulumi-aws-native/sdk/go/aws"
    	"github.com/pulumi/pulumi-aws-native/sdk/go/aws/transfer"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		transferWorkflow, err := transfer.NewWorkflow(ctx, "transferWorkflow", &transfer.WorkflowArgs{
    			Description: pulumi.String("Transfer Family Workflows Blog"),
    			Steps: transfer.WorkflowStepArray{
    				&transfer.WorkflowStepArgs{
    					Type: transfer.WorkflowStepTypeCopy,
    					CopyStepDetails: &transfer.WorkflowStepCopyStepDetailsPropertiesArgs{
    						Name: pulumi.String("copyToUserKey"),
    						DestinationFileLocation: &transfer.WorkflowS3FileLocationArgs{
    							S3FileLocation: &transfer.WorkflowS3InputFileLocationArgs{
    								Bucket: pulumi.String("archived-records"),
    								Key:    pulumi.String("${transfer:UserName}/"),
    							},
    						},
    						OverwriteExisting: transfer.WorkflowStepCopyStepDetailsPropertiesOverwriteExistingTrue,
    					},
    				},
    				&transfer.WorkflowStepArgs{
    					Type: transfer.WorkflowStepTypeTag,
    					TagStepDetails: &transfer.WorkflowStepTagStepDetailsPropertiesArgs{
    						Name: pulumi.String("tagFileForArchive"),
    						Tags: transfer.WorkflowS3TagArray{
    							&transfer.WorkflowS3TagArgs{
    								Key:   pulumi.String("Archive"),
    								Value: pulumi.String("yes"),
    							},
    						},
    					},
    				},
    				&transfer.WorkflowStepArgs{
    					Type: transfer.WorkflowStepTypeCustom,
    					CustomStepDetails: &transfer.WorkflowStepCustomStepDetailsPropertiesArgs{
    						Name:           pulumi.String("transferExtract"),
    						Target:         pulumi.String("arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:my-function-name"),
    						TimeoutSeconds: pulumi.Int(60),
    					},
    				},
    				&transfer.WorkflowStepArgs{
    					Type: transfer.WorkflowStepTypeDelete,
    					DeleteStepDetails: &transfer.WorkflowStepDeleteStepDetailsPropertiesArgs{
    						Name:               pulumi.String("DeleteInputFile"),
    						SourceFileLocation: pulumi.String("${original.file}"),
    					},
    				},
    			},
    			Tags: aws.TagArray{
    				&aws.TagArgs{
    					Key:   pulumi.String("Name"),
    					Value: pulumi.String("TransferFamilyWorkflows"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = transfer.NewServer(ctx, "sftpServer", &transfer.ServerArgs{
    			WorkflowDetails: &transfer.ServerWorkflowDetailsArgs{
    				OnUpload: transfer.ServerWorkflowDetailArray{
    					&transfer.ServerWorkflowDetailArgs{
    						ExecutionRole: pulumi.String("your-workflow-execution-role-arn"),
    						WorkflowId:    transferWorkflow.WorkflowId,
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    

    Coming soon!

    import pulumi
    import pulumi_aws_native as aws_native
    
    transfer_workflow = aws_native.transfer.Workflow("transferWorkflow",
        description="Transfer Family Workflows Blog",
        steps=[
            {
                "type": aws_native.transfer.WorkflowStepType.COPY,
                "copy_step_details": {
                    "name": "copyToUserKey",
                    "destination_file_location": {
                        "s3_file_location": {
                            "bucket": "archived-records",
                            "key": "${transfer:UserName}/",
                        },
                    },
                    "overwrite_existing": aws_native.transfer.WorkflowStepCopyStepDetailsPropertiesOverwriteExisting.TRUE,
                },
            },
            {
                "type": aws_native.transfer.WorkflowStepType.TAG,
                "tag_step_details": {
                    "name": "tagFileForArchive",
                    "tags": [{
                        "key": "Archive",
                        "value": "yes",
                    }],
                },
            },
            {
                "type": aws_native.transfer.WorkflowStepType.CUSTOM,
                "custom_step_details": {
                    "name": "transferExtract",
                    "target": "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:my-function-name",
                    "timeout_seconds": 60,
                },
            },
            {
                "type": aws_native.transfer.WorkflowStepType.DELETE,
                "delete_step_details": {
                    "name": "DeleteInputFile",
                    "source_file_location": "${original.file}",
                },
            },
        ],
        tags=[{
            "key": "Name",
            "value": "TransferFamilyWorkflows",
        }])
    sftp_server = aws_native.transfer.Server("sftpServer", workflow_details={
        "on_upload": [{
            "execution_role": "your-workflow-execution-role-arn",
            "workflow_id": transfer_workflow.workflow_id,
        }],
    })
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws_native from "@pulumi/aws-native";
    
    const transferWorkflow = new aws_native.transfer.Workflow("transferWorkflow", {
        description: "Transfer Family Workflows Blog",
        steps: [
            {
                type: aws_native.transfer.WorkflowStepType.Copy,
                copyStepDetails: {
                    name: "copyToUserKey",
                    destinationFileLocation: {
                        s3FileLocation: {
                            bucket: "archived-records",
                            key: "${transfer:UserName}/",
                        },
                    },
                    overwriteExisting: aws_native.transfer.WorkflowStepCopyStepDetailsPropertiesOverwriteExisting.True,
                },
            },
            {
                type: aws_native.transfer.WorkflowStepType.Tag,
                tagStepDetails: {
                    name: "tagFileForArchive",
                    tags: [{
                        key: "Archive",
                        value: "yes",
                    }],
                },
            },
            {
                type: aws_native.transfer.WorkflowStepType.Custom,
                customStepDetails: {
                    name: "transferExtract",
                    target: "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:my-function-name",
                    timeoutSeconds: 60,
                },
            },
            {
                type: aws_native.transfer.WorkflowStepType.Delete,
                deleteStepDetails: {
                    name: "DeleteInputFile",
                    sourceFileLocation: "${original.file}",
                },
            },
        ],
        tags: [{
            key: "Name",
            value: "TransferFamilyWorkflows",
        }],
    });
    const sftpServer = new aws_native.transfer.Server("sftpServer", {workflowDetails: {
        onUpload: [{
            executionRole: "your-workflow-execution-role-arn",
            workflowId: transferWorkflow.workflowId,
        }],
    }});
    

    Coming soon!

    Example

    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using AwsNative = Pulumi.AwsNative;
    
    return await Deployment.RunAsync(() => 
    {
        var transferWorkflow = new AwsNative.Transfer.Workflow("transferWorkflow", new()
        {
            Description = "Transfer Family Workflows Blog",
            Steps = new[]
            {
                new AwsNative.Transfer.Inputs.WorkflowStepArgs
                {
                    Type = AwsNative.Transfer.WorkflowStepType.Copy,
                    CopyStepDetails = new AwsNative.Transfer.Inputs.WorkflowStepCopyStepDetailsPropertiesArgs
                    {
                        Name = "copyToUserKey",
                        DestinationFileLocation = new AwsNative.Transfer.Inputs.WorkflowS3FileLocationArgs
                        {
                            S3FileLocation = new AwsNative.Transfer.Inputs.WorkflowS3InputFileLocationArgs
                            {
                                Bucket = "archived-records",
                                Key = "${transfer:UserName}/",
                            },
                        },
                        OverwriteExisting = AwsNative.Transfer.WorkflowStepCopyStepDetailsPropertiesOverwriteExisting.True,
                    },
                },
                new AwsNative.Transfer.Inputs.WorkflowStepArgs
                {
                    Type = AwsNative.Transfer.WorkflowStepType.Tag,
                    TagStepDetails = new AwsNative.Transfer.Inputs.WorkflowStepTagStepDetailsPropertiesArgs
                    {
                        Name = "tagFileForArchive",
                        Tags = new[]
                        {
                            new AwsNative.Transfer.Inputs.WorkflowS3TagArgs
                            {
                                Key = "Archive",
                                Value = "yes",
                            },
                        },
                    },
                },
                new AwsNative.Transfer.Inputs.WorkflowStepArgs
                {
                    Type = AwsNative.Transfer.WorkflowStepType.Custom,
                    CustomStepDetails = new AwsNative.Transfer.Inputs.WorkflowStepCustomStepDetailsPropertiesArgs
                    {
                        Name = "transferExtract",
                        Target = "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:my-function-name",
                        TimeoutSeconds = 60,
                    },
                },
                new AwsNative.Transfer.Inputs.WorkflowStepArgs
                {
                    Type = AwsNative.Transfer.WorkflowStepType.Delete,
                    DeleteStepDetails = new AwsNative.Transfer.Inputs.WorkflowStepDeleteStepDetailsPropertiesArgs
                    {
                        Name = "DeleteInputFile",
                        SourceFileLocation = "${original.file}",
                    },
                },
            },
            Tags = new[]
            {
                new AwsNative.Inputs.TagArgs
                {
                    Key = "Name",
                    Value = "TransferFamilyWorkflows",
                },
            },
        });
    
        var sftpServer = new AwsNative.Transfer.Server("sftpServer", new()
        {
            WorkflowDetails = new AwsNative.Transfer.Inputs.ServerWorkflowDetailsArgs
            {
                OnUpload = new[]
                {
                    new AwsNative.Transfer.Inputs.ServerWorkflowDetailArgs
                    {
                        ExecutionRole = "your-workflow-execution-role-arn",
                        WorkflowId = transferWorkflow.WorkflowId,
                    },
                },
            },
        });
    
    });
    
    package main
    
    import (
    	awsnative "github.com/pulumi/pulumi-aws-native/sdk/go/aws"
    	"github.com/pulumi/pulumi-aws-native/sdk/go/aws/transfer"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		transferWorkflow, err := transfer.NewWorkflow(ctx, "transferWorkflow", &transfer.WorkflowArgs{
    			Description: pulumi.String("Transfer Family Workflows Blog"),
    			Steps: transfer.WorkflowStepArray{
    				&transfer.WorkflowStepArgs{
    					Type: transfer.WorkflowStepTypeCopy,
    					CopyStepDetails: &transfer.WorkflowStepCopyStepDetailsPropertiesArgs{
    						Name: pulumi.String("copyToUserKey"),
    						DestinationFileLocation: &transfer.WorkflowS3FileLocationArgs{
    							S3FileLocation: &transfer.WorkflowS3InputFileLocationArgs{
    								Bucket: pulumi.String("archived-records"),
    								Key:    pulumi.String("${transfer:UserName}/"),
    							},
    						},
    						OverwriteExisting: transfer.WorkflowStepCopyStepDetailsPropertiesOverwriteExistingTrue,
    					},
    				},
    				&transfer.WorkflowStepArgs{
    					Type: transfer.WorkflowStepTypeTag,
    					TagStepDetails: &transfer.WorkflowStepTagStepDetailsPropertiesArgs{
    						Name: pulumi.String("tagFileForArchive"),
    						Tags: transfer.WorkflowS3TagArray{
    							&transfer.WorkflowS3TagArgs{
    								Key:   pulumi.String("Archive"),
    								Value: pulumi.String("yes"),
    							},
    						},
    					},
    				},
    				&transfer.WorkflowStepArgs{
    					Type: transfer.WorkflowStepTypeCustom,
    					CustomStepDetails: &transfer.WorkflowStepCustomStepDetailsPropertiesArgs{
    						Name:           pulumi.String("transferExtract"),
    						Target:         pulumi.String("arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:my-function-name"),
    						TimeoutSeconds: pulumi.Int(60),
    					},
    				},
    				&transfer.WorkflowStepArgs{
    					Type: transfer.WorkflowStepTypeDelete,
    					DeleteStepDetails: &transfer.WorkflowStepDeleteStepDetailsPropertiesArgs{
    						Name:               pulumi.String("DeleteInputFile"),
    						SourceFileLocation: pulumi.String("${original.file}"),
    					},
    				},
    			},
    			Tags: aws.TagArray{
    				&aws.TagArgs{
    					Key:   pulumi.String("Name"),
    					Value: pulumi.String("TransferFamilyWorkflows"),
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_, err = transfer.NewServer(ctx, "sftpServer", &transfer.ServerArgs{
    			WorkflowDetails: &transfer.ServerWorkflowDetailsArgs{
    				OnUpload: transfer.ServerWorkflowDetailArray{
    					&transfer.ServerWorkflowDetailArgs{
    						ExecutionRole: pulumi.String("your-workflow-execution-role-arn"),
    						WorkflowId:    transferWorkflow.WorkflowId,
    					},
    				},
    			},
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    

    Coming soon!

    import pulumi
    import pulumi_aws_native as aws_native
    
    transfer_workflow = aws_native.transfer.Workflow("transferWorkflow",
        description="Transfer Family Workflows Blog",
        steps=[
            {
                "type": aws_native.transfer.WorkflowStepType.COPY,
                "copy_step_details": {
                    "name": "copyToUserKey",
                    "destination_file_location": {
                        "s3_file_location": {
                            "bucket": "archived-records",
                            "key": "${transfer:UserName}/",
                        },
                    },
                    "overwrite_existing": aws_native.transfer.WorkflowStepCopyStepDetailsPropertiesOverwriteExisting.TRUE,
                },
            },
            {
                "type": aws_native.transfer.WorkflowStepType.TAG,
                "tag_step_details": {
                    "name": "tagFileForArchive",
                    "tags": [{
                        "key": "Archive",
                        "value": "yes",
                    }],
                },
            },
            {
                "type": aws_native.transfer.WorkflowStepType.CUSTOM,
                "custom_step_details": {
                    "name": "transferExtract",
                    "target": "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:my-function-name",
                    "timeout_seconds": 60,
                },
            },
            {
                "type": aws_native.transfer.WorkflowStepType.DELETE,
                "delete_step_details": {
                    "name": "DeleteInputFile",
                    "source_file_location": "${original.file}",
                },
            },
        ],
        tags=[{
            "key": "Name",
            "value": "TransferFamilyWorkflows",
        }])
    sftp_server = aws_native.transfer.Server("sftpServer", workflow_details={
        "on_upload": [{
            "execution_role": "your-workflow-execution-role-arn",
            "workflow_id": transfer_workflow.workflow_id,
        }],
    })
    
    import * as pulumi from "@pulumi/pulumi";
    import * as aws_native from "@pulumi/aws-native";
    
    const transferWorkflow = new aws_native.transfer.Workflow("transferWorkflow", {
        description: "Transfer Family Workflows Blog",
        steps: [
            {
                type: aws_native.transfer.WorkflowStepType.Copy,
                copyStepDetails: {
                    name: "copyToUserKey",
                    destinationFileLocation: {
                        s3FileLocation: {
                            bucket: "archived-records",
                            key: "${transfer:UserName}/",
                        },
                    },
                    overwriteExisting: aws_native.transfer.WorkflowStepCopyStepDetailsPropertiesOverwriteExisting.True,
                },
            },
            {
                type: aws_native.transfer.WorkflowStepType.Tag,
                tagStepDetails: {
                    name: "tagFileForArchive",
                    tags: [{
                        key: "Archive",
                        value: "yes",
                    }],
                },
            },
            {
                type: aws_native.transfer.WorkflowStepType.Custom,
                customStepDetails: {
                    name: "transferExtract",
                    target: "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:my-function-name",
                    timeoutSeconds: 60,
                },
            },
            {
                type: aws_native.transfer.WorkflowStepType.Delete,
                deleteStepDetails: {
                    name: "DeleteInputFile",
                    sourceFileLocation: "${original.file}",
                },
            },
        ],
        tags: [{
            key: "Name",
            value: "TransferFamilyWorkflows",
        }],
    });
    const sftpServer = new aws_native.transfer.Server("sftpServer", {workflowDetails: {
        onUpload: [{
            executionRole: "your-workflow-execution-role-arn",
            workflowId: transferWorkflow.workflowId,
        }],
    }});
    

    Coming soon!

    Create Server Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Server(name: string, args?: ServerArgs, opts?: CustomResourceOptions);
    @overload
    def Server(resource_name: str,
               args: Optional[ServerArgs] = None,
               opts: Optional[ResourceOptions] = None)
    
    @overload
    def Server(resource_name: str,
               opts: Optional[ResourceOptions] = None,
               certificate: Optional[str] = None,
               domain: Optional[ServerDomain] = None,
               endpoint_details: Optional[ServerEndpointDetailsArgs] = None,
               endpoint_type: Optional[ServerEndpointType] = None,
               identity_provider_details: Optional[ServerIdentityProviderDetailsArgs] = None,
               identity_provider_type: Optional[ServerIdentityProviderType] = None,
               logging_role: Optional[str] = None,
               post_authentication_login_banner: Optional[str] = None,
               pre_authentication_login_banner: Optional[str] = None,
               protocol_details: Optional[ServerProtocolDetailsArgs] = None,
               protocols: Optional[Sequence[ServerProtocol]] = None,
               s3_storage_options: Optional[ServerS3StorageOptionsArgs] = None,
               security_policy_name: Optional[str] = None,
               structured_log_destinations: Optional[Sequence[str]] = None,
               tags: Optional[Sequence[_root_inputs.TagArgs]] = None,
               workflow_details: Optional[ServerWorkflowDetailsArgs] = None)
    func NewServer(ctx *Context, name string, args *ServerArgs, opts ...ResourceOption) (*Server, error)
    public Server(string name, ServerArgs? args = null, CustomResourceOptions? opts = null)
    public Server(String name, ServerArgs args)
    public Server(String name, ServerArgs args, CustomResourceOptions options)
    
    type: aws-native:transfer:Server
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    

    Parameters

    name string
    The unique name of the resource.
    args ServerArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args ServerArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args ServerArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ServerArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ServerArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Server Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The Server resource accepts the following input properties:

    Certificate string

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

    To request a new public certificate, see Request a public certificate in the AWS Certificate Manager User Guide .

    To import an existing certificate into ACM, see Importing certificates into ACM in the AWS Certificate Manager User Guide .

    To request a private certificate to use FTPS through private IP addresses, see Request a private certificate in the AWS Certificate Manager User Guide .

    Certificates with the following cryptographic algorithms and key sizes are supported:

    • 2048-bit RSA (RSA_2048)
    • 4096-bit RSA (RSA_4096)
    • Elliptic Prime Curve 256 bit (EC_prime256v1)
    • Elliptic Prime Curve 384 bit (EC_secp384r1)
    • Elliptic Prime Curve 521 bit (EC_secp521r1)

    The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP address specified and information about the issuer.

    Domain Pulumi.AwsNative.Transfer.ServerDomain
    Specifies the domain of the storage system that is used for file transfers. There are two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon Elastic File System (Amazon EFS). The default value is S3.
    EndpointDetails Pulumi.AwsNative.Transfer.Inputs.ServerEndpointDetails
    The virtual private cloud (VPC) endpoint settings that are configured for your server. 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.
    EndpointType Pulumi.AwsNative.Transfer.ServerEndpointType

    The type of endpoint that you want your server to use. You can choose to make your server's endpoint publicly accessible (PUBLIC) or host it inside your VPC. With an endpoint that is hosted in a VPC, you can restrict access to your server and resources only within your VPC or choose to make it internet facing by attaching Elastic IP addresses directly to it.

    After May 19, 2021, you won't be able to create a server using EndpointType=VPC_ENDPOINT in your AWS account if your account hasn't already done so before May 19, 2021. If you have already created servers with EndpointType=VPC_ENDPOINT in your AWS account on or before May 19, 2021, you will not be affected. After this date, use EndpointType = VPC .

    For more information, see Discontinuing the use of VPC_ENDPOINT .

    It is recommended that you use VPC as the EndpointType . With this endpoint type, you have the option to directly associate up to three Elastic IPv4 addresses (BYO IP included) with your server's endpoint and use VPC security groups to restrict traffic by the client's public IP address. This is not possible with EndpointType set to VPC_ENDPOINT .

    IdentityProviderDetails Pulumi.AwsNative.Transfer.Inputs.ServerIdentityProviderDetails
    Required when IdentityProviderType is set to AWS_DIRECTORY_SERVICE , AWS _LAMBDA or API_GATEWAY . Accepts an array containing all of the information required to use a directory in AWS_DIRECTORY_SERVICE or invoke a customer-supplied authentication API, including the API Gateway URL. Cannot be specified when IdentityProviderType is set to SERVICE_MANAGED .
    IdentityProviderType Pulumi.AwsNative.Transfer.ServerIdentityProviderType

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

    Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in AWS Directory Service for Microsoft Active Directory or Microsoft Active Directory in your on-premises environment or in AWS 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 AWS 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.

    LoggingRole string
    The Amazon Resource Name (ARN) of the AWS 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.
    PostAuthenticationLoginBanner string

    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.

    PreAuthenticationLoginBanner string

    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 system personnel.

    ProtocolDetails Pulumi.AwsNative.Transfer.Inputs.ServerProtocolDetails

    The protocol settings that are configured for your server.

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

    The Protocols parameter is an array of strings.

    Allowed values : One or more of SFTP , FTPS , FTP , AS2

    Protocols List<Pulumi.AwsNative.Transfer.ServerProtocol>

    Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are:

    • SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over SSH
    • FTPS (File Transfer Protocol Secure): File transfer with TLS encryption
    • 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 AWS 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 either AWS_DIRECTORY_SERVICE , AWS_LAMBDA , 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 any of the supported identity types: SERVICE_MANAGED , AWS_DIRECTORY_SERVICE , AWS_LAMBDA , or API_GATEWAY .
    • If Protocol includes AS2 , then the EndpointType must be VPC , and domain must be Amazon S3.

    The Protocols parameter is an array of strings.

    Allowed values : One or more of SFTP , FTPS , FTP , AS2

    S3StorageOptions Pulumi.AwsNative.Transfer.Inputs.ServerS3StorageOptions

    Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default.

    By default, home directory mappings have a TYPE of DIRECTORY . If you enable this option, you would then need to explicitly set the HomeDirectoryMapEntry Type to FILE if you want a mapping to have a file target.

    SecurityPolicyName string
    Specifies the name of the security policy for the server.
    StructuredLogDestinations List<string>

    Specifies the log groups to which your server logs are sent.

    To specify a log group, you must provide the ARN for an existing log group. In this case, the format of the log group is as follows:

    arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:*

    For example, arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*

    If you have previously specified a log group for a server, you can clear it, and in effect turn off structured logging, by providing an empty value for this parameter in an update-server call. For example:

    update-server --server-id s-1234567890abcdef0 --structured-log-destinations

    Tags List<Pulumi.AwsNative.Inputs.Tag>
    Key-value pairs that can be used to group and search for servers.
    WorkflowDetails Pulumi.AwsNative.Transfer.Inputs.ServerWorkflowDetails

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

    In addition to a workflow to execute when a file is uploaded completely, WorkflowDetails can also contain a workflow ID (and execution role) for a workflow to execute on partial upload. A partial upload occurs when a file is open when the session disconnects.

    Certificate string

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

    To request a new public certificate, see Request a public certificate in the AWS Certificate Manager User Guide .

    To import an existing certificate into ACM, see Importing certificates into ACM in the AWS Certificate Manager User Guide .

    To request a private certificate to use FTPS through private IP addresses, see Request a private certificate in the AWS Certificate Manager User Guide .

    Certificates with the following cryptographic algorithms and key sizes are supported:

    • 2048-bit RSA (RSA_2048)
    • 4096-bit RSA (RSA_4096)
    • Elliptic Prime Curve 256 bit (EC_prime256v1)
    • Elliptic Prime Curve 384 bit (EC_secp384r1)
    • Elliptic Prime Curve 521 bit (EC_secp521r1)

    The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP address specified and information about the issuer.

    Domain ServerDomain
    Specifies the domain of the storage system that is used for file transfers. There are two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon Elastic File System (Amazon EFS). The default value is S3.
    EndpointDetails ServerEndpointDetailsArgs
    The virtual private cloud (VPC) endpoint settings that are configured for your server. 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.
    EndpointType ServerEndpointType

    The type of endpoint that you want your server to use. You can choose to make your server's endpoint publicly accessible (PUBLIC) or host it inside your VPC. With an endpoint that is hosted in a VPC, you can restrict access to your server and resources only within your VPC or choose to make it internet facing by attaching Elastic IP addresses directly to it.

    After May 19, 2021, you won't be able to create a server using EndpointType=VPC_ENDPOINT in your AWS account if your account hasn't already done so before May 19, 2021. If you have already created servers with EndpointType=VPC_ENDPOINT in your AWS account on or before May 19, 2021, you will not be affected. After this date, use EndpointType = VPC .

    For more information, see Discontinuing the use of VPC_ENDPOINT .

    It is recommended that you use VPC as the EndpointType . With this endpoint type, you have the option to directly associate up to three Elastic IPv4 addresses (BYO IP included) with your server's endpoint and use VPC security groups to restrict traffic by the client's public IP address. This is not possible with EndpointType set to VPC_ENDPOINT .

    IdentityProviderDetails ServerIdentityProviderDetailsArgs
    Required when IdentityProviderType is set to AWS_DIRECTORY_SERVICE , AWS _LAMBDA or API_GATEWAY . Accepts an array containing all of the information required to use a directory in AWS_DIRECTORY_SERVICE or invoke a customer-supplied authentication API, including the API Gateway URL. Cannot be specified when IdentityProviderType is set to SERVICE_MANAGED .
    IdentityProviderType ServerIdentityProviderType

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

    Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in AWS Directory Service for Microsoft Active Directory or Microsoft Active Directory in your on-premises environment or in AWS 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 AWS 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.

    LoggingRole string
    The Amazon Resource Name (ARN) of the AWS 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.
    PostAuthenticationLoginBanner string

    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.

    PreAuthenticationLoginBanner string

    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 system personnel.

    ProtocolDetails ServerProtocolDetailsArgs

    The protocol settings that are configured for your server.

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

    The Protocols parameter is an array of strings.

    Allowed values : One or more of SFTP , FTPS , FTP , AS2

    Protocols []ServerProtocol

    Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are:

    • SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over SSH
    • FTPS (File Transfer Protocol Secure): File transfer with TLS encryption
    • 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 AWS 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 either AWS_DIRECTORY_SERVICE , AWS_LAMBDA , 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 any of the supported identity types: SERVICE_MANAGED , AWS_DIRECTORY_SERVICE , AWS_LAMBDA , or API_GATEWAY .
    • If Protocol includes AS2 , then the EndpointType must be VPC , and domain must be Amazon S3.

    The Protocols parameter is an array of strings.

    Allowed values : One or more of SFTP , FTPS , FTP , AS2

    S3StorageOptions ServerS3StorageOptionsArgs

    Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default.

    By default, home directory mappings have a TYPE of DIRECTORY . If you enable this option, you would then need to explicitly set the HomeDirectoryMapEntry Type to FILE if you want a mapping to have a file target.

    SecurityPolicyName string
    Specifies the name of the security policy for the server.
    StructuredLogDestinations []string

    Specifies the log groups to which your server logs are sent.

    To specify a log group, you must provide the ARN for an existing log group. In this case, the format of the log group is as follows:

    arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:*

    For example, arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*

    If you have previously specified a log group for a server, you can clear it, and in effect turn off structured logging, by providing an empty value for this parameter in an update-server call. For example:

    update-server --server-id s-1234567890abcdef0 --structured-log-destinations

    Tags TagArgs
    Key-value pairs that can be used to group and search for servers.
    WorkflowDetails ServerWorkflowDetailsArgs

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

    In addition to a workflow to execute when a file is uploaded completely, WorkflowDetails can also contain a workflow ID (and execution role) for a workflow to execute on partial upload. A partial upload occurs when a file is open when the session disconnects.

    certificate String

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

    To request a new public certificate, see Request a public certificate in the AWS Certificate Manager User Guide .

    To import an existing certificate into ACM, see Importing certificates into ACM in the AWS Certificate Manager User Guide .

    To request a private certificate to use FTPS through private IP addresses, see Request a private certificate in the AWS Certificate Manager User Guide .

    Certificates with the following cryptographic algorithms and key sizes are supported:

    • 2048-bit RSA (RSA_2048)
    • 4096-bit RSA (RSA_4096)
    • Elliptic Prime Curve 256 bit (EC_prime256v1)
    • Elliptic Prime Curve 384 bit (EC_secp384r1)
    • Elliptic Prime Curve 521 bit (EC_secp521r1)

    The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP address specified and information about the issuer.

    domain ServerDomain
    Specifies the domain of the storage system that is used for file transfers. There are two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon Elastic File System (Amazon EFS). The default value is S3.
    endpointDetails ServerEndpointDetails
    The virtual private cloud (VPC) endpoint settings that are configured for your server. 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.
    endpointType ServerEndpointType

    The type of endpoint that you want your server to use. You can choose to make your server's endpoint publicly accessible (PUBLIC) or host it inside your VPC. With an endpoint that is hosted in a VPC, you can restrict access to your server and resources only within your VPC or choose to make it internet facing by attaching Elastic IP addresses directly to it.

    After May 19, 2021, you won't be able to create a server using EndpointType=VPC_ENDPOINT in your AWS account if your account hasn't already done so before May 19, 2021. If you have already created servers with EndpointType=VPC_ENDPOINT in your AWS account on or before May 19, 2021, you will not be affected. After this date, use EndpointType = VPC .

    For more information, see Discontinuing the use of VPC_ENDPOINT .

    It is recommended that you use VPC as the EndpointType . With this endpoint type, you have the option to directly associate up to three Elastic IPv4 addresses (BYO IP included) with your server's endpoint and use VPC security groups to restrict traffic by the client's public IP address. This is not possible with EndpointType set to VPC_ENDPOINT .

    identityProviderDetails ServerIdentityProviderDetails
    Required when IdentityProviderType is set to AWS_DIRECTORY_SERVICE , AWS _LAMBDA or API_GATEWAY . Accepts an array containing all of the information required to use a directory in AWS_DIRECTORY_SERVICE or invoke a customer-supplied authentication API, including the API Gateway URL. Cannot be specified when IdentityProviderType is set to SERVICE_MANAGED .
    identityProviderType ServerIdentityProviderType

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

    Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in AWS Directory Service for Microsoft Active Directory or Microsoft Active Directory in your on-premises environment or in AWS 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 AWS 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.

    loggingRole String
    The Amazon Resource Name (ARN) of the AWS 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.
    postAuthenticationLoginBanner String

    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.

    preAuthenticationLoginBanner String

    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 system personnel.

    protocolDetails ServerProtocolDetails

    The protocol settings that are configured for your server.

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

    The Protocols parameter is an array of strings.

    Allowed values : One or more of SFTP , FTPS , FTP , AS2

    protocols List<ServerProtocol>

    Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are:

    • SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over SSH
    • FTPS (File Transfer Protocol Secure): File transfer with TLS encryption
    • 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 AWS 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 either AWS_DIRECTORY_SERVICE , AWS_LAMBDA , 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 any of the supported identity types: SERVICE_MANAGED , AWS_DIRECTORY_SERVICE , AWS_LAMBDA , or API_GATEWAY .
    • If Protocol includes AS2 , then the EndpointType must be VPC , and domain must be Amazon S3.

    The Protocols parameter is an array of strings.

    Allowed values : One or more of SFTP , FTPS , FTP , AS2

    s3StorageOptions ServerS3StorageOptions

    Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default.

    By default, home directory mappings have a TYPE of DIRECTORY . If you enable this option, you would then need to explicitly set the HomeDirectoryMapEntry Type to FILE if you want a mapping to have a file target.

    securityPolicyName String
    Specifies the name of the security policy for the server.
    structuredLogDestinations List<String>

    Specifies the log groups to which your server logs are sent.

    To specify a log group, you must provide the ARN for an existing log group. In this case, the format of the log group is as follows:

    arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:*

    For example, arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*

    If you have previously specified a log group for a server, you can clear it, and in effect turn off structured logging, by providing an empty value for this parameter in an update-server call. For example:

    update-server --server-id s-1234567890abcdef0 --structured-log-destinations

    tags List<Tag>
    Key-value pairs that can be used to group and search for servers.
    workflowDetails ServerWorkflowDetails

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

    In addition to a workflow to execute when a file is uploaded completely, WorkflowDetails can also contain a workflow ID (and execution role) for a workflow to execute on partial upload. A partial upload occurs when a file is open when the session disconnects.

    certificate string

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

    To request a new public certificate, see Request a public certificate in the AWS Certificate Manager User Guide .

    To import an existing certificate into ACM, see Importing certificates into ACM in the AWS Certificate Manager User Guide .

    To request a private certificate to use FTPS through private IP addresses, see Request a private certificate in the AWS Certificate Manager User Guide .

    Certificates with the following cryptographic algorithms and key sizes are supported:

    • 2048-bit RSA (RSA_2048)
    • 4096-bit RSA (RSA_4096)
    • Elliptic Prime Curve 256 bit (EC_prime256v1)
    • Elliptic Prime Curve 384 bit (EC_secp384r1)
    • Elliptic Prime Curve 521 bit (EC_secp521r1)

    The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP address specified and information about the issuer.

    domain ServerDomain
    Specifies the domain of the storage system that is used for file transfers. There are two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon Elastic File System (Amazon EFS). The default value is S3.
    endpointDetails ServerEndpointDetails
    The virtual private cloud (VPC) endpoint settings that are configured for your server. 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.
    endpointType ServerEndpointType

    The type of endpoint that you want your server to use. You can choose to make your server's endpoint publicly accessible (PUBLIC) or host it inside your VPC. With an endpoint that is hosted in a VPC, you can restrict access to your server and resources only within your VPC or choose to make it internet facing by attaching Elastic IP addresses directly to it.

    After May 19, 2021, you won't be able to create a server using EndpointType=VPC_ENDPOINT in your AWS account if your account hasn't already done so before May 19, 2021. If you have already created servers with EndpointType=VPC_ENDPOINT in your AWS account on or before May 19, 2021, you will not be affected. After this date, use EndpointType = VPC .

    For more information, see Discontinuing the use of VPC_ENDPOINT .

    It is recommended that you use VPC as the EndpointType . With this endpoint type, you have the option to directly associate up to three Elastic IPv4 addresses (BYO IP included) with your server's endpoint and use VPC security groups to restrict traffic by the client's public IP address. This is not possible with EndpointType set to VPC_ENDPOINT .

    identityProviderDetails ServerIdentityProviderDetails
    Required when IdentityProviderType is set to AWS_DIRECTORY_SERVICE , AWS _LAMBDA or API_GATEWAY . Accepts an array containing all of the information required to use a directory in AWS_DIRECTORY_SERVICE or invoke a customer-supplied authentication API, including the API Gateway URL. Cannot be specified when IdentityProviderType is set to SERVICE_MANAGED .
    identityProviderType ServerIdentityProviderType

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

    Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in AWS Directory Service for Microsoft Active Directory or Microsoft Active Directory in your on-premises environment or in AWS 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 AWS 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.

    loggingRole string
    The Amazon Resource Name (ARN) of the AWS 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.
    postAuthenticationLoginBanner string

    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.

    preAuthenticationLoginBanner string

    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 system personnel.

    protocolDetails ServerProtocolDetails

    The protocol settings that are configured for your server.

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

    The Protocols parameter is an array of strings.

    Allowed values : One or more of SFTP , FTPS , FTP , AS2

    protocols ServerProtocol[]

    Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are:

    • SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over SSH
    • FTPS (File Transfer Protocol Secure): File transfer with TLS encryption
    • 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 AWS 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 either AWS_DIRECTORY_SERVICE , AWS_LAMBDA , 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 any of the supported identity types: SERVICE_MANAGED , AWS_DIRECTORY_SERVICE , AWS_LAMBDA , or API_GATEWAY .
    • If Protocol includes AS2 , then the EndpointType must be VPC , and domain must be Amazon S3.

    The Protocols parameter is an array of strings.

    Allowed values : One or more of SFTP , FTPS , FTP , AS2

    s3StorageOptions ServerS3StorageOptions

    Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default.

    By default, home directory mappings have a TYPE of DIRECTORY . If you enable this option, you would then need to explicitly set the HomeDirectoryMapEntry Type to FILE if you want a mapping to have a file target.

    securityPolicyName string
    Specifies the name of the security policy for the server.
    structuredLogDestinations string[]

    Specifies the log groups to which your server logs are sent.

    To specify a log group, you must provide the ARN for an existing log group. In this case, the format of the log group is as follows:

    arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:*

    For example, arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*

    If you have previously specified a log group for a server, you can clear it, and in effect turn off structured logging, by providing an empty value for this parameter in an update-server call. For example:

    update-server --server-id s-1234567890abcdef0 --structured-log-destinations

    tags Tag[]
    Key-value pairs that can be used to group and search for servers.
    workflowDetails ServerWorkflowDetails

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

    In addition to a workflow to execute when a file is uploaded completely, WorkflowDetails can also contain a workflow ID (and execution role) for a workflow to execute on partial upload. A partial upload occurs when a file is open when the session disconnects.

    certificate str

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

    To request a new public certificate, see Request a public certificate in the AWS Certificate Manager User Guide .

    To import an existing certificate into ACM, see Importing certificates into ACM in the AWS Certificate Manager User Guide .

    To request a private certificate to use FTPS through private IP addresses, see Request a private certificate in the AWS Certificate Manager User Guide .

    Certificates with the following cryptographic algorithms and key sizes are supported:

    • 2048-bit RSA (RSA_2048)
    • 4096-bit RSA (RSA_4096)
    • Elliptic Prime Curve 256 bit (EC_prime256v1)
    • Elliptic Prime Curve 384 bit (EC_secp384r1)
    • Elliptic Prime Curve 521 bit (EC_secp521r1)

    The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP address specified and information about the issuer.

    domain ServerDomain
    Specifies the domain of the storage system that is used for file transfers. There are two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon Elastic File System (Amazon EFS). The default value is S3.
    endpoint_details ServerEndpointDetailsArgs
    The virtual private cloud (VPC) endpoint settings that are configured for your server. 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.
    endpoint_type ServerEndpointType

    The type of endpoint that you want your server to use. You can choose to make your server's endpoint publicly accessible (PUBLIC) or host it inside your VPC. With an endpoint that is hosted in a VPC, you can restrict access to your server and resources only within your VPC or choose to make it internet facing by attaching Elastic IP addresses directly to it.

    After May 19, 2021, you won't be able to create a server using EndpointType=VPC_ENDPOINT in your AWS account if your account hasn't already done so before May 19, 2021. If you have already created servers with EndpointType=VPC_ENDPOINT in your AWS account on or before May 19, 2021, you will not be affected. After this date, use EndpointType = VPC .

    For more information, see Discontinuing the use of VPC_ENDPOINT .

    It is recommended that you use VPC as the EndpointType . With this endpoint type, you have the option to directly associate up to three Elastic IPv4 addresses (BYO IP included) with your server's endpoint and use VPC security groups to restrict traffic by the client's public IP address. This is not possible with EndpointType set to VPC_ENDPOINT .

    identity_provider_details ServerIdentityProviderDetailsArgs
    Required when IdentityProviderType is set to AWS_DIRECTORY_SERVICE , AWS _LAMBDA or API_GATEWAY . Accepts an array containing all of the information required to use a directory in AWS_DIRECTORY_SERVICE or invoke a customer-supplied authentication API, including the API Gateway URL. Cannot be specified when IdentityProviderType is set to SERVICE_MANAGED .
    identity_provider_type ServerIdentityProviderType

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

    Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in AWS Directory Service for Microsoft Active Directory or Microsoft Active Directory in your on-premises environment or in AWS 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 AWS 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.

    logging_role str
    The Amazon Resource Name (ARN) of the AWS 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.
    post_authentication_login_banner str

    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.

    pre_authentication_login_banner str

    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 system personnel.

    protocol_details ServerProtocolDetailsArgs

    The protocol settings that are configured for your server.

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

    The Protocols parameter is an array of strings.

    Allowed values : One or more of SFTP , FTPS , FTP , AS2

    protocols Sequence[ServerProtocol]

    Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are:

    • SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over SSH
    • FTPS (File Transfer Protocol Secure): File transfer with TLS encryption
    • 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 AWS 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 either AWS_DIRECTORY_SERVICE , AWS_LAMBDA , 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 any of the supported identity types: SERVICE_MANAGED , AWS_DIRECTORY_SERVICE , AWS_LAMBDA , or API_GATEWAY .
    • If Protocol includes AS2 , then the EndpointType must be VPC , and domain must be Amazon S3.

    The Protocols parameter is an array of strings.

    Allowed values : One or more of SFTP , FTPS , FTP , AS2

    s3_storage_options ServerS3StorageOptionsArgs

    Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default.

    By default, home directory mappings have a TYPE of DIRECTORY . If you enable this option, you would then need to explicitly set the HomeDirectoryMapEntry Type to FILE if you want a mapping to have a file target.

    security_policy_name str
    Specifies the name of the security policy for the server.
    structured_log_destinations Sequence[str]

    Specifies the log groups to which your server logs are sent.

    To specify a log group, you must provide the ARN for an existing log group. In this case, the format of the log group is as follows:

    arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:*

    For example, arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*

    If you have previously specified a log group for a server, you can clear it, and in effect turn off structured logging, by providing an empty value for this parameter in an update-server call. For example:

    update-server --server-id s-1234567890abcdef0 --structured-log-destinations

    tags Sequence[TagArgs]
    Key-value pairs that can be used to group and search for servers.
    workflow_details ServerWorkflowDetailsArgs

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

    In addition to a workflow to execute when a file is uploaded completely, WorkflowDetails can also contain a workflow ID (and execution role) for a workflow to execute on partial upload. A partial upload occurs when a file is open when the session disconnects.

    certificate String

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

    To request a new public certificate, see Request a public certificate in the AWS Certificate Manager User Guide .

    To import an existing certificate into ACM, see Importing certificates into ACM in the AWS Certificate Manager User Guide .

    To request a private certificate to use FTPS through private IP addresses, see Request a private certificate in the AWS Certificate Manager User Guide .

    Certificates with the following cryptographic algorithms and key sizes are supported:

    • 2048-bit RSA (RSA_2048)
    • 4096-bit RSA (RSA_4096)
    • Elliptic Prime Curve 256 bit (EC_prime256v1)
    • Elliptic Prime Curve 384 bit (EC_secp384r1)
    • Elliptic Prime Curve 521 bit (EC_secp521r1)

    The certificate must be a valid SSL/TLS X.509 version 3 certificate with FQDN or IP address specified and information about the issuer.

    domain "S3" | "EFS"
    Specifies the domain of the storage system that is used for file transfers. There are two domains available: Amazon Simple Storage Service (Amazon S3) and Amazon Elastic File System (Amazon EFS). The default value is S3.
    endpointDetails Property Map
    The virtual private cloud (VPC) endpoint settings that are configured for your server. 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.
    endpointType "PUBLIC" | "VPC" | "VPC_ENDPOINT"

    The type of endpoint that you want your server to use. You can choose to make your server's endpoint publicly accessible (PUBLIC) or host it inside your VPC. With an endpoint that is hosted in a VPC, you can restrict access to your server and resources only within your VPC or choose to make it internet facing by attaching Elastic IP addresses directly to it.

    After May 19, 2021, you won't be able to create a server using EndpointType=VPC_ENDPOINT in your AWS account if your account hasn't already done so before May 19, 2021. If you have already created servers with EndpointType=VPC_ENDPOINT in your AWS account on or before May 19, 2021, you will not be affected. After this date, use EndpointType = VPC .

    For more information, see Discontinuing the use of VPC_ENDPOINT .

    It is recommended that you use VPC as the EndpointType . With this endpoint type, you have the option to directly associate up to three Elastic IPv4 addresses (BYO IP included) with your server's endpoint and use VPC security groups to restrict traffic by the client's public IP address. This is not possible with EndpointType set to VPC_ENDPOINT .

    identityProviderDetails Property Map
    Required when IdentityProviderType is set to AWS_DIRECTORY_SERVICE , AWS _LAMBDA or API_GATEWAY . Accepts an array containing all of the information required to use a directory in AWS_DIRECTORY_SERVICE or invoke a customer-supplied authentication API, including the API Gateway URL. Cannot be specified when IdentityProviderType is set to SERVICE_MANAGED .
    identityProviderType "SERVICE_MANAGED" | "API_GATEWAY" | "AWS_DIRECTORY_SERVICE" | "AWS_LAMBDA"

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

    Use AWS_DIRECTORY_SERVICE to provide access to Active Directory groups in AWS Directory Service for Microsoft Active Directory or Microsoft Active Directory in your on-premises environment or in AWS 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 AWS 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.

    loggingRole String
    The Amazon Resource Name (ARN) of the AWS 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.
    postAuthenticationLoginBanner String

    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.

    preAuthenticationLoginBanner String

    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 system personnel.

    protocolDetails Property Map

    The protocol settings that are configured for your server.

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

    The Protocols parameter is an array of strings.

    Allowed values : One or more of SFTP , FTPS , FTP , AS2

    protocols List<"SFTP" | "FTP" | "FTPS" | "AS2">

    Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. The available protocols are:

    • SFTP (Secure Shell (SSH) File Transfer Protocol): File transfer over SSH
    • FTPS (File Transfer Protocol Secure): File transfer with TLS encryption
    • 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 AWS 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 either AWS_DIRECTORY_SERVICE , AWS_LAMBDA , 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 any of the supported identity types: SERVICE_MANAGED , AWS_DIRECTORY_SERVICE , AWS_LAMBDA , or API_GATEWAY .
    • If Protocol includes AS2 , then the EndpointType must be VPC , and domain must be Amazon S3.

    The Protocols parameter is an array of strings.

    Allowed values : One or more of SFTP , FTPS , FTP , AS2

    s3StorageOptions Property Map

    Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default.

    By default, home directory mappings have a TYPE of DIRECTORY . If you enable this option, you would then need to explicitly set the HomeDirectoryMapEntry Type to FILE if you want a mapping to have a file target.

    securityPolicyName String
    Specifies the name of the security policy for the server.
    structuredLogDestinations List<String>

    Specifies the log groups to which your server logs are sent.

    To specify a log group, you must provide the ARN for an existing log group. In this case, the format of the log group is as follows:

    arn:aws:logs:region-name:amazon-account-id:log-group:log-group-name:*

    For example, arn:aws:logs:us-east-1:111122223333:log-group:mytestgroup:*

    If you have previously specified a log group for a server, you can clear it, and in effect turn off structured logging, by providing an empty value for this parameter in an update-server call. For example:

    update-server --server-id s-1234567890abcdef0 --structured-log-destinations

    tags List<Property Map>
    Key-value pairs that can be used to group and search for servers.
    workflowDetails Property Map

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

    In addition to a workflow to execute when a file is uploaded completely, WorkflowDetails can also contain a workflow ID (and execution role) for a workflow to execute on partial upload. A partial upload occurs when a file is open when the session disconnects.

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Server resource produces the following output properties:

    Arn string

    The Amazon Resource Name associated with the server, in the form arn:aws:transfer:region: *account-id* :server/ *server-id* / .

    An example of a server ARN is: arn:aws:transfer:us-east-1:123456789012:server/s-01234567890abcdef .

    As2ServiceManagedEgressIpAddresses List<string>
    The list of egress IP addresses of this server. These IP addresses are only relevant for servers that use the AS2 protocol. They are used for sending asynchronous MDNs. These IP addresses are assigned automatically when you create an AS2 server. Additionally, if you update an existing server and add the AS2 protocol, static IP addresses are assigned as well.
    Id string
    The provider-assigned unique ID for this managed resource.
    ServerId string

    The service-assigned ID of the server that is created.

    An example ServerId is s-01234567890abcdef .

    Arn string

    The Amazon Resource Name associated with the server, in the form arn:aws:transfer:region: *account-id* :server/ *server-id* / .

    An example of a server ARN is: arn:aws:transfer:us-east-1:123456789012:server/s-01234567890abcdef .

    As2ServiceManagedEgressIpAddresses []string
    The list of egress IP addresses of this server. These IP addresses are only relevant for servers that use the AS2 protocol. They are used for sending asynchronous MDNs. These IP addresses are assigned automatically when you create an AS2 server. Additionally, if you update an existing server and add the AS2 protocol, static IP addresses are assigned as well.
    Id string
    The provider-assigned unique ID for this managed resource.
    ServerId string

    The service-assigned ID of the server that is created.

    An example ServerId is s-01234567890abcdef .

    arn String

    The Amazon Resource Name associated with the server, in the form arn:aws:transfer:region: *account-id* :server/ *server-id* / .

    An example of a server ARN is: arn:aws:transfer:us-east-1:123456789012:server/s-01234567890abcdef .

    as2ServiceManagedEgressIpAddresses List<String>
    The list of egress IP addresses of this server. These IP addresses are only relevant for servers that use the AS2 protocol. They are used for sending asynchronous MDNs. These IP addresses are assigned automatically when you create an AS2 server. Additionally, if you update an existing server and add the AS2 protocol, static IP addresses are assigned as well.
    id String
    The provider-assigned unique ID for this managed resource.
    serverId String

    The service-assigned ID of the server that is created.

    An example ServerId is s-01234567890abcdef .

    arn string

    The Amazon Resource Name associated with the server, in the form arn:aws:transfer:region: *account-id* :server/ *server-id* / .

    An example of a server ARN is: arn:aws:transfer:us-east-1:123456789012:server/s-01234567890abcdef .

    as2ServiceManagedEgressIpAddresses string[]
    The list of egress IP addresses of this server. These IP addresses are only relevant for servers that use the AS2 protocol. They are used for sending asynchronous MDNs. These IP addresses are assigned automatically when you create an AS2 server. Additionally, if you update an existing server and add the AS2 protocol, static IP addresses are assigned as well.
    id string
    The provider-assigned unique ID for this managed resource.
    serverId string

    The service-assigned ID of the server that is created.

    An example ServerId is s-01234567890abcdef .

    arn str

    The Amazon Resource Name associated with the server, in the form arn:aws:transfer:region: *account-id* :server/ *server-id* / .

    An example of a server ARN is: arn:aws:transfer:us-east-1:123456789012:server/s-01234567890abcdef .

    as2_service_managed_egress_ip_addresses Sequence[str]
    The list of egress IP addresses of this server. These IP addresses are only relevant for servers that use the AS2 protocol. They are used for sending asynchronous MDNs. These IP addresses are assigned automatically when you create an AS2 server. Additionally, if you update an existing server and add the AS2 protocol, static IP addresses are assigned as well.
    id str
    The provider-assigned unique ID for this managed resource.
    server_id str

    The service-assigned ID of the server that is created.

    An example ServerId is s-01234567890abcdef .

    arn String

    The Amazon Resource Name associated with the server, in the form arn:aws:transfer:region: *account-id* :server/ *server-id* / .

    An example of a server ARN is: arn:aws:transfer:us-east-1:123456789012:server/s-01234567890abcdef .

    as2ServiceManagedEgressIpAddresses List<String>
    The list of egress IP addresses of this server. These IP addresses are only relevant for servers that use the AS2 protocol. They are used for sending asynchronous MDNs. These IP addresses are assigned automatically when you create an AS2 server. Additionally, if you update an existing server and add the AS2 protocol, static IP addresses are assigned as well.
    id String
    The provider-assigned unique ID for this managed resource.
    serverId String

    The service-assigned ID of the server that is created.

    An example ServerId is s-01234567890abcdef .

    Supporting Types

    ServerAs2Transport, ServerAs2TransportArgs

    Http
    HTTP
    ServerAs2TransportHttp
    HTTP
    Http
    HTTP
    Http
    HTTP
    HTTP
    HTTP
    "HTTP"
    HTTP

    ServerDirectoryListingOptimization, ServerDirectoryListingOptimizationArgs

    Enabled
    ENABLED
    Disabled
    DISABLED
    ServerDirectoryListingOptimizationEnabled
    ENABLED
    ServerDirectoryListingOptimizationDisabled
    DISABLED
    Enabled
    ENABLED
    Disabled
    DISABLED
    Enabled
    ENABLED
    Disabled
    DISABLED
    ENABLED
    ENABLED
    DISABLED
    DISABLED
    "ENABLED"
    ENABLED
    "DISABLED"
    DISABLED

    ServerDomain, ServerDomainArgs

    S3
    S3
    Efs
    EFS
    ServerDomainS3
    S3
    ServerDomainEfs
    EFS
    S3
    S3
    Efs
    EFS
    S3
    S3
    Efs
    EFS
    S3
    S3
    EFS
    EFS
    "S3"
    S3
    "EFS"
    EFS

    ServerEndpointDetails, ServerEndpointDetailsArgs

    AddressAllocationIds List<string>

    A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint.

    An address allocation ID corresponds to the allocation ID of an Elastic IP address. This value can be retrieved from the allocationId field from the Amazon EC2 Address data type. One way to retrieve this value is by calling the EC2 DescribeAddresses API.

    This parameter is optional. Set this parameter if you want to make your VPC endpoint public-facing. For details, see Create an internet-facing endpoint for your server .

    This property can only be set as follows:

    • EndpointType must be set to VPC
    • The Transfer Family server must be offline.
    • You cannot set this parameter for Transfer Family servers that use the FTP protocol.
    • The server must already have SubnetIds populated ( SubnetIds and AddressAllocationIds cannot be updated simultaneously).
    • AddressAllocationIds can't contain duplicates, and must be equal in length to SubnetIds . For example, if you have three subnet IDs, you must also specify three address allocation IDs.
    • Call the UpdateServer API to set or change this parameter.
    SecurityGroupIds List<string>

    A list of security groups IDs that are available to attach to your server's endpoint.

    This property can only be set when EndpointType is set to VPC .

    You can edit the SecurityGroupIds property in the UpdateServer API only if you are changing the EndpointType from PUBLIC or VPC_ENDPOINT to VPC . To change security groups associated with your server's VPC endpoint after creation, use the Amazon EC2 ModifyVpcEndpoint API.

    SubnetIds List<string>

    A list of subnet IDs that are required to host your server endpoint in your VPC.

    This property can only be set when EndpointType is set to VPC .

    VpcEndpointId string

    The ID of the VPC endpoint.

    This property can only be set when EndpointType is set to VPC_ENDPOINT .

    VpcId string

    The VPC ID of the virtual private cloud in which the server's endpoint will be hosted.

    This property can only be set when EndpointType is set to VPC .

    AddressAllocationIds []string

    A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint.

    An address allocation ID corresponds to the allocation ID of an Elastic IP address. This value can be retrieved from the allocationId field from the Amazon EC2 Address data type. One way to retrieve this value is by calling the EC2 DescribeAddresses API.

    This parameter is optional. Set this parameter if you want to make your VPC endpoint public-facing. For details, see Create an internet-facing endpoint for your server .

    This property can only be set as follows:

    • EndpointType must be set to VPC
    • The Transfer Family server must be offline.
    • You cannot set this parameter for Transfer Family servers that use the FTP protocol.
    • The server must already have SubnetIds populated ( SubnetIds and AddressAllocationIds cannot be updated simultaneously).
    • AddressAllocationIds can't contain duplicates, and must be equal in length to SubnetIds . For example, if you have three subnet IDs, you must also specify three address allocation IDs.
    • Call the UpdateServer API to set or change this parameter.
    SecurityGroupIds []string

    A list of security groups IDs that are available to attach to your server's endpoint.

    This property can only be set when EndpointType is set to VPC .

    You can edit the SecurityGroupIds property in the UpdateServer API only if you are changing the EndpointType from PUBLIC or VPC_ENDPOINT to VPC . To change security groups associated with your server's VPC endpoint after creation, use the Amazon EC2 ModifyVpcEndpoint API.

    SubnetIds []string

    A list of subnet IDs that are required to host your server endpoint in your VPC.

    This property can only be set when EndpointType is set to VPC .

    VpcEndpointId string

    The ID of the VPC endpoint.

    This property can only be set when EndpointType is set to VPC_ENDPOINT .

    VpcId string

    The VPC ID of the virtual private cloud in which the server's endpoint will be hosted.

    This property can only be set when EndpointType is set to VPC .

    addressAllocationIds List<String>

    A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint.

    An address allocation ID corresponds to the allocation ID of an Elastic IP address. This value can be retrieved from the allocationId field from the Amazon EC2 Address data type. One way to retrieve this value is by calling the EC2 DescribeAddresses API.

    This parameter is optional. Set this parameter if you want to make your VPC endpoint public-facing. For details, see Create an internet-facing endpoint for your server .

    This property can only be set as follows:

    • EndpointType must be set to VPC
    • The Transfer Family server must be offline.
    • You cannot set this parameter for Transfer Family servers that use the FTP protocol.
    • The server must already have SubnetIds populated ( SubnetIds and AddressAllocationIds cannot be updated simultaneously).
    • AddressAllocationIds can't contain duplicates, and must be equal in length to SubnetIds . For example, if you have three subnet IDs, you must also specify three address allocation IDs.
    • Call the UpdateServer API to set or change this parameter.
    securityGroupIds List<String>

    A list of security groups IDs that are available to attach to your server's endpoint.

    This property can only be set when EndpointType is set to VPC .

    You can edit the SecurityGroupIds property in the UpdateServer API only if you are changing the EndpointType from PUBLIC or VPC_ENDPOINT to VPC . To change security groups associated with your server's VPC endpoint after creation, use the Amazon EC2 ModifyVpcEndpoint API.

    subnetIds List<String>

    A list of subnet IDs that are required to host your server endpoint in your VPC.

    This property can only be set when EndpointType is set to VPC .

    vpcEndpointId String

    The ID of the VPC endpoint.

    This property can only be set when EndpointType is set to VPC_ENDPOINT .

    vpcId String

    The VPC ID of the virtual private cloud in which the server's endpoint will be hosted.

    This property can only be set when EndpointType is set to VPC .

    addressAllocationIds string[]

    A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint.

    An address allocation ID corresponds to the allocation ID of an Elastic IP address. This value can be retrieved from the allocationId field from the Amazon EC2 Address data type. One way to retrieve this value is by calling the EC2 DescribeAddresses API.

    This parameter is optional. Set this parameter if you want to make your VPC endpoint public-facing. For details, see Create an internet-facing endpoint for your server .

    This property can only be set as follows:

    • EndpointType must be set to VPC
    • The Transfer Family server must be offline.
    • You cannot set this parameter for Transfer Family servers that use the FTP protocol.
    • The server must already have SubnetIds populated ( SubnetIds and AddressAllocationIds cannot be updated simultaneously).
    • AddressAllocationIds can't contain duplicates, and must be equal in length to SubnetIds . For example, if you have three subnet IDs, you must also specify three address allocation IDs.
    • Call the UpdateServer API to set or change this parameter.
    securityGroupIds string[]

    A list of security groups IDs that are available to attach to your server's endpoint.

    This property can only be set when EndpointType is set to VPC .

    You can edit the SecurityGroupIds property in the UpdateServer API only if you are changing the EndpointType from PUBLIC or VPC_ENDPOINT to VPC . To change security groups associated with your server's VPC endpoint after creation, use the Amazon EC2 ModifyVpcEndpoint API.

    subnetIds string[]

    A list of subnet IDs that are required to host your server endpoint in your VPC.

    This property can only be set when EndpointType is set to VPC .

    vpcEndpointId string

    The ID of the VPC endpoint.

    This property can only be set when EndpointType is set to VPC_ENDPOINT .

    vpcId string

    The VPC ID of the virtual private cloud in which the server's endpoint will be hosted.

    This property can only be set when EndpointType is set to VPC .

    address_allocation_ids Sequence[str]

    A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint.

    An address allocation ID corresponds to the allocation ID of an Elastic IP address. This value can be retrieved from the allocationId field from the Amazon EC2 Address data type. One way to retrieve this value is by calling the EC2 DescribeAddresses API.

    This parameter is optional. Set this parameter if you want to make your VPC endpoint public-facing. For details, see Create an internet-facing endpoint for your server .

    This property can only be set as follows:

    • EndpointType must be set to VPC
    • The Transfer Family server must be offline.
    • You cannot set this parameter for Transfer Family servers that use the FTP protocol.
    • The server must already have SubnetIds populated ( SubnetIds and AddressAllocationIds cannot be updated simultaneously).
    • AddressAllocationIds can't contain duplicates, and must be equal in length to SubnetIds . For example, if you have three subnet IDs, you must also specify three address allocation IDs.
    • Call the UpdateServer API to set or change this parameter.
    security_group_ids Sequence[str]

    A list of security groups IDs that are available to attach to your server's endpoint.

    This property can only be set when EndpointType is set to VPC .

    You can edit the SecurityGroupIds property in the UpdateServer API only if you are changing the EndpointType from PUBLIC or VPC_ENDPOINT to VPC . To change security groups associated with your server's VPC endpoint after creation, use the Amazon EC2 ModifyVpcEndpoint API.

    subnet_ids Sequence[str]

    A list of subnet IDs that are required to host your server endpoint in your VPC.

    This property can only be set when EndpointType is set to VPC .

    vpc_endpoint_id str

    The ID of the VPC endpoint.

    This property can only be set when EndpointType is set to VPC_ENDPOINT .

    vpc_id str

    The VPC ID of the virtual private cloud in which the server's endpoint will be hosted.

    This property can only be set when EndpointType is set to VPC .

    addressAllocationIds List<String>

    A list of address allocation IDs that are required to attach an Elastic IP address to your server's endpoint.

    An address allocation ID corresponds to the allocation ID of an Elastic IP address. This value can be retrieved from the allocationId field from the Amazon EC2 Address data type. One way to retrieve this value is by calling the EC2 DescribeAddresses API.

    This parameter is optional. Set this parameter if you want to make your VPC endpoint public-facing. For details, see Create an internet-facing endpoint for your server .

    This property can only be set as follows:

    • EndpointType must be set to VPC
    • The Transfer Family server must be offline.
    • You cannot set this parameter for Transfer Family servers that use the FTP protocol.
    • The server must already have SubnetIds populated ( SubnetIds and AddressAllocationIds cannot be updated simultaneously).
    • AddressAllocationIds can't contain duplicates, and must be equal in length to SubnetIds . For example, if you have three subnet IDs, you must also specify three address allocation IDs.
    • Call the UpdateServer API to set or change this parameter.
    securityGroupIds List<String>

    A list of security groups IDs that are available to attach to your server's endpoint.

    This property can only be set when EndpointType is set to VPC .

    You can edit the SecurityGroupIds property in the UpdateServer API only if you are changing the EndpointType from PUBLIC or VPC_ENDPOINT to VPC . To change security groups associated with your server's VPC endpoint after creation, use the Amazon EC2 ModifyVpcEndpoint API.

    subnetIds List<String>

    A list of subnet IDs that are required to host your server endpoint in your VPC.

    This property can only be set when EndpointType is set to VPC .

    vpcEndpointId String

    The ID of the VPC endpoint.

    This property can only be set when EndpointType is set to VPC_ENDPOINT .

    vpcId String

    The VPC ID of the virtual private cloud in which the server's endpoint will be hosted.

    This property can only be set when EndpointType is set to VPC .

    ServerEndpointType, ServerEndpointTypeArgs

    Public
    PUBLIC
    Vpc
    VPC
    VpcEndpoint
    VPC_ENDPOINT
    ServerEndpointTypePublic
    PUBLIC
    ServerEndpointTypeVpc
    VPC
    ServerEndpointTypeVpcEndpoint
    VPC_ENDPOINT
    Public
    PUBLIC
    Vpc
    VPC
    VpcEndpoint
    VPC_ENDPOINT
    Public
    PUBLIC
    Vpc
    VPC
    VpcEndpoint
    VPC_ENDPOINT
    PUBLIC
    PUBLIC
    VPC
    VPC
    VPC_ENDPOINT
    VPC_ENDPOINT
    "PUBLIC"
    PUBLIC
    "VPC"
    VPC
    "VPC_ENDPOINT"
    VPC_ENDPOINT

    ServerIdentityProviderDetails, ServerIdentityProviderDetailsArgs

    DirectoryId string
    The identifier of the AWS Directory Service directory that you want to use as your identity provider.
    Function string
    The ARN for a Lambda function to use for the Identity provider.
    InvocationRole string
    This parameter is only applicable if your IdentityProviderType is API_GATEWAY . Provides the type of InvocationRole used to authenticate the user account.
    SftpAuthenticationMethods Pulumi.AwsNative.Transfer.ServerSftpAuthenticationMethods
    For SFTP-enabled servers, and for custom identity providers only , you can specify whether to authenticate using a password, SSH key pair, or both.

    • PASSWORD - users must provide their password to connect.
    • PUBLIC_KEY - users must provide their private key to connect.
    • PUBLIC_KEY_OR_PASSWORD - users can authenticate with either their password or their key. This is the default value.
    • PUBLIC_KEY_AND_PASSWORD - users must provide both their private key and their password to connect. The server checks the key first, and then if the key is valid, the system prompts for a password. If the private key provided does not match the public key that is stored, authentication fails.
    Url string
    Provides the location of the service endpoint used to authenticate users.
    DirectoryId string
    The identifier of the AWS Directory Service directory that you want to use as your identity provider.
    Function string
    The ARN for a Lambda function to use for the Identity provider.
    InvocationRole string
    This parameter is only applicable if your IdentityProviderType is API_GATEWAY . Provides the type of InvocationRole used to authenticate the user account.
    SftpAuthenticationMethods ServerSftpAuthenticationMethods
    For SFTP-enabled servers, and for custom identity providers only , you can specify whether to authenticate using a password, SSH key pair, or both.

    • PASSWORD - users must provide their password to connect.
    • PUBLIC_KEY - users must provide their private key to connect.
    • PUBLIC_KEY_OR_PASSWORD - users can authenticate with either their password or their key. This is the default value.
    • PUBLIC_KEY_AND_PASSWORD - users must provide both their private key and their password to connect. The server checks the key first, and then if the key is valid, the system prompts for a password. If the private key provided does not match the public key that is stored, authentication fails.
    Url string
    Provides the location of the service endpoint used to authenticate users.
    directoryId String
    The identifier of the AWS Directory Service directory that you want to use as your identity provider.
    function String
    The ARN for a Lambda function to use for the Identity provider.
    invocationRole String
    This parameter is only applicable if your IdentityProviderType is API_GATEWAY . Provides the type of InvocationRole used to authenticate the user account.
    sftpAuthenticationMethods ServerSftpAuthenticationMethods
    For SFTP-enabled servers, and for custom identity providers only , you can specify whether to authenticate using a password, SSH key pair, or both.

    • PASSWORD - users must provide their password to connect.
    • PUBLIC_KEY - users must provide their private key to connect.
    • PUBLIC_KEY_OR_PASSWORD - users can authenticate with either their password or their key. This is the default value.
    • PUBLIC_KEY_AND_PASSWORD - users must provide both their private key and their password to connect. The server checks the key first, and then if the key is valid, the system prompts for a password. If the private key provided does not match the public key that is stored, authentication fails.
    url String
    Provides the location of the service endpoint used to authenticate users.
    directoryId string
    The identifier of the AWS Directory Service directory that you want to use as your identity provider.
    function string
    The ARN for a Lambda function to use for the Identity provider.
    invocationRole string
    This parameter is only applicable if your IdentityProviderType is API_GATEWAY . Provides the type of InvocationRole used to authenticate the user account.
    sftpAuthenticationMethods ServerSftpAuthenticationMethods
    For SFTP-enabled servers, and for custom identity providers only , you can specify whether to authenticate using a password, SSH key pair, or both.

    • PASSWORD - users must provide their password to connect.
    • PUBLIC_KEY - users must provide their private key to connect.
    • PUBLIC_KEY_OR_PASSWORD - users can authenticate with either their password or their key. This is the default value.
    • PUBLIC_KEY_AND_PASSWORD - users must provide both their private key and their password to connect. The server checks the key first, and then if the key is valid, the system prompts for a password. If the private key provided does not match the public key that is stored, authentication fails.
    url string
    Provides the location of the service endpoint used to authenticate users.
    directory_id str
    The identifier of the AWS Directory Service directory that you want to use as your identity provider.
    function str
    The ARN for a Lambda function to use for the Identity provider.
    invocation_role str
    This parameter is only applicable if your IdentityProviderType is API_GATEWAY . Provides the type of InvocationRole used to authenticate the user account.
    sftp_authentication_methods ServerSftpAuthenticationMethods
    For SFTP-enabled servers, and for custom identity providers only , you can specify whether to authenticate using a password, SSH key pair, or both.

    • PASSWORD - users must provide their password to connect.
    • PUBLIC_KEY - users must provide their private key to connect.
    • PUBLIC_KEY_OR_PASSWORD - users can authenticate with either their password or their key. This is the default value.
    • PUBLIC_KEY_AND_PASSWORD - users must provide both their private key and their password to connect. The server checks the key first, and then if the key is valid, the system prompts for a password. If the private key provided does not match the public key that is stored, authentication fails.
    url str
    Provides the location of the service endpoint used to authenticate users.
    directoryId String
    The identifier of the AWS Directory Service directory that you want to use as your identity provider.
    function String
    The ARN for a Lambda function to use for the Identity provider.
    invocationRole String
    This parameter is only applicable if your IdentityProviderType is API_GATEWAY . Provides the type of InvocationRole used to authenticate the user account.
    sftpAuthenticationMethods "PASSWORD" | "PUBLIC_KEY" | "PUBLIC_KEY_OR_PASSWORD" | "PUBLIC_KEY_AND_PASSWORD"
    For SFTP-enabled servers, and for custom identity providers only , you can specify whether to authenticate using a password, SSH key pair, or both.

    • PASSWORD - users must provide their password to connect.
    • PUBLIC_KEY - users must provide their private key to connect.
    • PUBLIC_KEY_OR_PASSWORD - users can authenticate with either their password or their key. This is the default value.
    • PUBLIC_KEY_AND_PASSWORD - users must provide both their private key and their password to connect. The server checks the key first, and then if the key is valid, the system prompts for a password. If the private key provided does not match the public key that is stored, authentication fails.
    url String
    Provides the location of the service endpoint used to authenticate users.

    ServerIdentityProviderType, ServerIdentityProviderTypeArgs

    ServiceManaged
    SERVICE_MANAGED
    ApiGateway
    API_GATEWAY
    AwsDirectoryService
    AWS_DIRECTORY_SERVICE
    AwsLambda
    AWS_LAMBDA
    ServerIdentityProviderTypeServiceManaged
    SERVICE_MANAGED
    ServerIdentityProviderTypeApiGateway
    API_GATEWAY
    ServerIdentityProviderTypeAwsDirectoryService
    AWS_DIRECTORY_SERVICE
    ServerIdentityProviderTypeAwsLambda
    AWS_LAMBDA
    ServiceManaged
    SERVICE_MANAGED
    ApiGateway
    API_GATEWAY
    AwsDirectoryService
    AWS_DIRECTORY_SERVICE
    AwsLambda
    AWS_LAMBDA
    ServiceManaged
    SERVICE_MANAGED
    ApiGateway
    API_GATEWAY
    AwsDirectoryService
    AWS_DIRECTORY_SERVICE
    AwsLambda
    AWS_LAMBDA
    SERVICE_MANAGED
    SERVICE_MANAGED
    API_GATEWAY
    API_GATEWAY
    AWS_DIRECTORY_SERVICE
    AWS_DIRECTORY_SERVICE
    AWS_LAMBDA
    AWS_LAMBDA
    "SERVICE_MANAGED"
    SERVICE_MANAGED
    "API_GATEWAY"
    API_GATEWAY
    "AWS_DIRECTORY_SERVICE"
    AWS_DIRECTORY_SERVICE
    "AWS_LAMBDA"
    AWS_LAMBDA

    ServerProtocol, ServerProtocolArgs

    Sftp
    SFTP
    Ftp
    FTP
    Ftps
    FTPS
    As2
    AS2
    ServerProtocolSftp
    SFTP
    ServerProtocolFtp
    FTP
    ServerProtocolFtps
    FTPS
    ServerProtocolAs2
    AS2
    Sftp
    SFTP
    Ftp
    FTP
    Ftps
    FTPS
    As2
    AS2
    Sftp
    SFTP
    Ftp
    FTP
    Ftps
    FTPS
    As2
    AS2
    SFTP
    SFTP
    FTP
    FTP
    FTPS
    FTPS
    AS2
    AS2
    "SFTP"
    SFTP
    "FTP"
    FTP
    "FTPS"
    FTPS
    "AS2"
    AS2

    ServerProtocolDetails, ServerProtocolDetailsArgs

    As2Transports List<Pulumi.AwsNative.Transfer.ServerAs2Transport>
    List of As2Transport objects.
    PassiveIp string

    Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 address, such as the public IP address of a firewall, router, or load balancer. For example:

    aws transfer update-server --protocol-details PassiveIp=0.0.0.0

    Replace 0.0.0.0 in the example above with the actual IP address you want to use.

    If you change the PassiveIp value, you must stop and then restart your Transfer Family server for the change to take effect. For details on using passive mode (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with AWS Transfer Family .

    Special values

    The AUTO and 0.0.0.0 are special values for the PassiveIp parameter. The value PassiveIp=AUTO is assigned by default to FTP and FTPS type servers. In this case, the server automatically responds with one of the endpoint IPs within the PASV response. PassiveIp=0.0.0.0 has a more unique application for its usage. For example, if you have a High Availability (HA) Network Load Balancer (NLB) environment, where you have 3 subnets, you can only specify a single IP address using the PassiveIp parameter. This reduces the effectiveness of having High Availability. In this case, you can specify PassiveIp=0.0.0.0 . This tells the client to use the same IP address as the Control connection and utilize all AZs for their connections. Note, however, that not all FTP clients support the PassiveIp=0.0.0.0 response. FileZilla and WinSCP do support it. If you are using other clients, check to see if your client supports the PassiveIp=0.0.0.0 response.

    SetStatOption Pulumi.AwsNative.Transfer.ServerSetStatOption

    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.

    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. 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 the file is otherwise successfully uploaded.

    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. While the SetStatOption 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.

    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.

    TlsSessionResumptionMode Pulumi.AwsNative.Transfer.ServerTlsSessionResumptionMode

    A property used with Transfer Family servers that use the FTPS protocol. TLS Session Resumption provides a mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session. TlsSessionResumptionMode determines whether or not the server resumes recent, negotiated sessions through a unique session ID. This property is available during CreateServer and UpdateServer calls. If a TlsSessionResumptionMode value is not specified during CreateServer , it is set to ENFORCED by default.

    • DISABLED : the server does not process TLS session resumption client requests and creates a new TLS session for each request.
    • ENABLED : the server processes and accepts clients that are performing TLS session resumption. The server doesn't reject client data connections that do not perform the TLS session resumption client processing.
    • ENFORCED : the server processes and accepts clients that are performing TLS session resumption. The server rejects client data connections that do not perform the TLS session resumption client processing. Before you set the value to ENFORCED , test your clients.

    Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption, you prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine whether or not you can use the ENFORCED value, you need to test your clients.

    As2Transports []ServerAs2Transport
    List of As2Transport objects.
    PassiveIp string

    Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 address, such as the public IP address of a firewall, router, or load balancer. For example:

    aws transfer update-server --protocol-details PassiveIp=0.0.0.0

    Replace 0.0.0.0 in the example above with the actual IP address you want to use.

    If you change the PassiveIp value, you must stop and then restart your Transfer Family server for the change to take effect. For details on using passive mode (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with AWS Transfer Family .

    Special values

    The AUTO and 0.0.0.0 are special values for the PassiveIp parameter. The value PassiveIp=AUTO is assigned by default to FTP and FTPS type servers. In this case, the server automatically responds with one of the endpoint IPs within the PASV response. PassiveIp=0.0.0.0 has a more unique application for its usage. For example, if you have a High Availability (HA) Network Load Balancer (NLB) environment, where you have 3 subnets, you can only specify a single IP address using the PassiveIp parameter. This reduces the effectiveness of having High Availability. In this case, you can specify PassiveIp=0.0.0.0 . This tells the client to use the same IP address as the Control connection and utilize all AZs for their connections. Note, however, that not all FTP clients support the PassiveIp=0.0.0.0 response. FileZilla and WinSCP do support it. If you are using other clients, check to see if your client supports the PassiveIp=0.0.0.0 response.

    SetStatOption ServerSetStatOption

    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.

    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. 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 the file is otherwise successfully uploaded.

    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. While the SetStatOption 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.

    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.

    TlsSessionResumptionMode ServerTlsSessionResumptionMode

    A property used with Transfer Family servers that use the FTPS protocol. TLS Session Resumption provides a mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session. TlsSessionResumptionMode determines whether or not the server resumes recent, negotiated sessions through a unique session ID. This property is available during CreateServer and UpdateServer calls. If a TlsSessionResumptionMode value is not specified during CreateServer , it is set to ENFORCED by default.

    • DISABLED : the server does not process TLS session resumption client requests and creates a new TLS session for each request.
    • ENABLED : the server processes and accepts clients that are performing TLS session resumption. The server doesn't reject client data connections that do not perform the TLS session resumption client processing.
    • ENFORCED : the server processes and accepts clients that are performing TLS session resumption. The server rejects client data connections that do not perform the TLS session resumption client processing. Before you set the value to ENFORCED , test your clients.

    Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption, you prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine whether or not you can use the ENFORCED value, you need to test your clients.

    as2Transports List<ServerAs2Transport>
    List of As2Transport objects.
    passiveIp String

    Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 address, such as the public IP address of a firewall, router, or load balancer. For example:

    aws transfer update-server --protocol-details PassiveIp=0.0.0.0

    Replace 0.0.0.0 in the example above with the actual IP address you want to use.

    If you change the PassiveIp value, you must stop and then restart your Transfer Family server for the change to take effect. For details on using passive mode (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with AWS Transfer Family .

    Special values

    The AUTO and 0.0.0.0 are special values for the PassiveIp parameter. The value PassiveIp=AUTO is assigned by default to FTP and FTPS type servers. In this case, the server automatically responds with one of the endpoint IPs within the PASV response. PassiveIp=0.0.0.0 has a more unique application for its usage. For example, if you have a High Availability (HA) Network Load Balancer (NLB) environment, where you have 3 subnets, you can only specify a single IP address using the PassiveIp parameter. This reduces the effectiveness of having High Availability. In this case, you can specify PassiveIp=0.0.0.0 . This tells the client to use the same IP address as the Control connection and utilize all AZs for their connections. Note, however, that not all FTP clients support the PassiveIp=0.0.0.0 response. FileZilla and WinSCP do support it. If you are using other clients, check to see if your client supports the PassiveIp=0.0.0.0 response.

    setStatOption ServerSetStatOption

    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.

    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. 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 the file is otherwise successfully uploaded.

    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. While the SetStatOption 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.

    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.

    tlsSessionResumptionMode ServerTlsSessionResumptionMode

    A property used with Transfer Family servers that use the FTPS protocol. TLS Session Resumption provides a mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session. TlsSessionResumptionMode determines whether or not the server resumes recent, negotiated sessions through a unique session ID. This property is available during CreateServer and UpdateServer calls. If a TlsSessionResumptionMode value is not specified during CreateServer , it is set to ENFORCED by default.

    • DISABLED : the server does not process TLS session resumption client requests and creates a new TLS session for each request.
    • ENABLED : the server processes and accepts clients that are performing TLS session resumption. The server doesn't reject client data connections that do not perform the TLS session resumption client processing.
    • ENFORCED : the server processes and accepts clients that are performing TLS session resumption. The server rejects client data connections that do not perform the TLS session resumption client processing. Before you set the value to ENFORCED , test your clients.

    Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption, you prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine whether or not you can use the ENFORCED value, you need to test your clients.

    as2Transports ServerAs2Transport[]
    List of As2Transport objects.
    passiveIp string

    Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 address, such as the public IP address of a firewall, router, or load balancer. For example:

    aws transfer update-server --protocol-details PassiveIp=0.0.0.0

    Replace 0.0.0.0 in the example above with the actual IP address you want to use.

    If you change the PassiveIp value, you must stop and then restart your Transfer Family server for the change to take effect. For details on using passive mode (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with AWS Transfer Family .

    Special values

    The AUTO and 0.0.0.0 are special values for the PassiveIp parameter. The value PassiveIp=AUTO is assigned by default to FTP and FTPS type servers. In this case, the server automatically responds with one of the endpoint IPs within the PASV response. PassiveIp=0.0.0.0 has a more unique application for its usage. For example, if you have a High Availability (HA) Network Load Balancer (NLB) environment, where you have 3 subnets, you can only specify a single IP address using the PassiveIp parameter. This reduces the effectiveness of having High Availability. In this case, you can specify PassiveIp=0.0.0.0 . This tells the client to use the same IP address as the Control connection and utilize all AZs for their connections. Note, however, that not all FTP clients support the PassiveIp=0.0.0.0 response. FileZilla and WinSCP do support it. If you are using other clients, check to see if your client supports the PassiveIp=0.0.0.0 response.

    setStatOption ServerSetStatOption

    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.

    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. 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 the file is otherwise successfully uploaded.

    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. While the SetStatOption 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.

    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.

    tlsSessionResumptionMode ServerTlsSessionResumptionMode

    A property used with Transfer Family servers that use the FTPS protocol. TLS Session Resumption provides a mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session. TlsSessionResumptionMode determines whether or not the server resumes recent, negotiated sessions through a unique session ID. This property is available during CreateServer and UpdateServer calls. If a TlsSessionResumptionMode value is not specified during CreateServer , it is set to ENFORCED by default.

    • DISABLED : the server does not process TLS session resumption client requests and creates a new TLS session for each request.
    • ENABLED : the server processes and accepts clients that are performing TLS session resumption. The server doesn't reject client data connections that do not perform the TLS session resumption client processing.
    • ENFORCED : the server processes and accepts clients that are performing TLS session resumption. The server rejects client data connections that do not perform the TLS session resumption client processing. Before you set the value to ENFORCED , test your clients.

    Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption, you prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine whether or not you can use the ENFORCED value, you need to test your clients.

    as2_transports Sequence[ServerAs2Transport]
    List of As2Transport objects.
    passive_ip str

    Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 address, such as the public IP address of a firewall, router, or load balancer. For example:

    aws transfer update-server --protocol-details PassiveIp=0.0.0.0

    Replace 0.0.0.0 in the example above with the actual IP address you want to use.

    If you change the PassiveIp value, you must stop and then restart your Transfer Family server for the change to take effect. For details on using passive mode (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with AWS Transfer Family .

    Special values

    The AUTO and 0.0.0.0 are special values for the PassiveIp parameter. The value PassiveIp=AUTO is assigned by default to FTP and FTPS type servers. In this case, the server automatically responds with one of the endpoint IPs within the PASV response. PassiveIp=0.0.0.0 has a more unique application for its usage. For example, if you have a High Availability (HA) Network Load Balancer (NLB) environment, where you have 3 subnets, you can only specify a single IP address using the PassiveIp parameter. This reduces the effectiveness of having High Availability. In this case, you can specify PassiveIp=0.0.0.0 . This tells the client to use the same IP address as the Control connection and utilize all AZs for their connections. Note, however, that not all FTP clients support the PassiveIp=0.0.0.0 response. FileZilla and WinSCP do support it. If you are using other clients, check to see if your client supports the PassiveIp=0.0.0.0 response.

    set_stat_option ServerSetStatOption

    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.

    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. 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 the file is otherwise successfully uploaded.

    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. While the SetStatOption 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.

    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.

    tls_session_resumption_mode ServerTlsSessionResumptionMode

    A property used with Transfer Family servers that use the FTPS protocol. TLS Session Resumption provides a mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session. TlsSessionResumptionMode determines whether or not the server resumes recent, negotiated sessions through a unique session ID. This property is available during CreateServer and UpdateServer calls. If a TlsSessionResumptionMode value is not specified during CreateServer , it is set to ENFORCED by default.

    • DISABLED : the server does not process TLS session resumption client requests and creates a new TLS session for each request.
    • ENABLED : the server processes and accepts clients that are performing TLS session resumption. The server doesn't reject client data connections that do not perform the TLS session resumption client processing.
    • ENFORCED : the server processes and accepts clients that are performing TLS session resumption. The server rejects client data connections that do not perform the TLS session resumption client processing. Before you set the value to ENFORCED , test your clients.

    Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption, you prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine whether or not you can use the ENFORCED value, you need to test your clients.

    as2Transports List<"HTTP">
    List of As2Transport objects.
    passiveIp String

    Indicates passive mode, for FTP and FTPS protocols. Enter a single IPv4 address, such as the public IP address of a firewall, router, or load balancer. For example:

    aws transfer update-server --protocol-details PassiveIp=0.0.0.0

    Replace 0.0.0.0 in the example above with the actual IP address you want to use.

    If you change the PassiveIp value, you must stop and then restart your Transfer Family server for the change to take effect. For details on using passive mode (PASV) in a NAT environment, see Configuring your FTPS server behind a firewall or NAT with AWS Transfer Family .

    Special values

    The AUTO and 0.0.0.0 are special values for the PassiveIp parameter. The value PassiveIp=AUTO is assigned by default to FTP and FTPS type servers. In this case, the server automatically responds with one of the endpoint IPs within the PASV response. PassiveIp=0.0.0.0 has a more unique application for its usage. For example, if you have a High Availability (HA) Network Load Balancer (NLB) environment, where you have 3 subnets, you can only specify a single IP address using the PassiveIp parameter. This reduces the effectiveness of having High Availability. In this case, you can specify PassiveIp=0.0.0.0 . This tells the client to use the same IP address as the Control connection and utilize all AZs for their connections. Note, however, that not all FTP clients support the PassiveIp=0.0.0.0 response. FileZilla and WinSCP do support it. If you are using other clients, check to see if your client supports the PassiveIp=0.0.0.0 response.

    setStatOption "DEFAULT" | "ENABLE_NO_OP"

    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.

    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. 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 the file is otherwise successfully uploaded.

    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. While the SetStatOption 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.

    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.

    tlsSessionResumptionMode "DISABLED" | "ENABLED" | "ENFORCED"

    A property used with Transfer Family servers that use the FTPS protocol. TLS Session Resumption provides a mechanism to resume or share a negotiated secret key between the control and data connection for an FTPS session. TlsSessionResumptionMode determines whether or not the server resumes recent, negotiated sessions through a unique session ID. This property is available during CreateServer and UpdateServer calls. If a TlsSessionResumptionMode value is not specified during CreateServer , it is set to ENFORCED by default.

    • DISABLED : the server does not process TLS session resumption client requests and creates a new TLS session for each request.
    • ENABLED : the server processes and accepts clients that are performing TLS session resumption. The server doesn't reject client data connections that do not perform the TLS session resumption client processing.
    • ENFORCED : the server processes and accepts clients that are performing TLS session resumption. The server rejects client data connections that do not perform the TLS session resumption client processing. Before you set the value to ENFORCED , test your clients.

    Not all FTPS clients perform TLS session resumption. So, if you choose to enforce TLS session resumption, you prevent any connections from FTPS clients that don't perform the protocol negotiation. To determine whether or not you can use the ENFORCED value, you need to test your clients.

    ServerS3StorageOptions, ServerS3StorageOptionsArgs

    DirectoryListingOptimization Pulumi.AwsNative.Transfer.ServerDirectoryListingOptimization

    Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default.

    By default, home directory mappings have a TYPE of DIRECTORY . If you enable this option, you would then need to explicitly set the HomeDirectoryMapEntry Type to FILE if you want a mapping to have a file target.

    DirectoryListingOptimization ServerDirectoryListingOptimization

    Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default.

    By default, home directory mappings have a TYPE of DIRECTORY . If you enable this option, you would then need to explicitly set the HomeDirectoryMapEntry Type to FILE if you want a mapping to have a file target.

    directoryListingOptimization ServerDirectoryListingOptimization

    Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default.

    By default, home directory mappings have a TYPE of DIRECTORY . If you enable this option, you would then need to explicitly set the HomeDirectoryMapEntry Type to FILE if you want a mapping to have a file target.

    directoryListingOptimization ServerDirectoryListingOptimization

    Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default.

    By default, home directory mappings have a TYPE of DIRECTORY . If you enable this option, you would then need to explicitly set the HomeDirectoryMapEntry Type to FILE if you want a mapping to have a file target.

    directory_listing_optimization ServerDirectoryListingOptimization

    Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default.

    By default, home directory mappings have a TYPE of DIRECTORY . If you enable this option, you would then need to explicitly set the HomeDirectoryMapEntry Type to FILE if you want a mapping to have a file target.

    directoryListingOptimization "ENABLED" | "DISABLED"

    Specifies whether or not performance for your Amazon S3 directories is optimized. This is disabled by default.

    By default, home directory mappings have a TYPE of DIRECTORY . If you enable this option, you would then need to explicitly set the HomeDirectoryMapEntry Type to FILE if you want a mapping to have a file target.

    ServerSetStatOption, ServerSetStatOptionArgs

    Default
    DEFAULT
    EnableNoOp
    ENABLE_NO_OP
    ServerSetStatOptionDefault
    DEFAULT
    ServerSetStatOptionEnableNoOp
    ENABLE_NO_OP
    Default
    DEFAULT
    EnableNoOp
    ENABLE_NO_OP
    Default
    DEFAULT
    EnableNoOp
    ENABLE_NO_OP
    DEFAULT
    DEFAULT
    ENABLE_NO_OP
    ENABLE_NO_OP
    "DEFAULT"
    DEFAULT
    "ENABLE_NO_OP"
    ENABLE_NO_OP

    ServerSftpAuthenticationMethods, ServerSftpAuthenticationMethodsArgs

    Password
    PASSWORD
    PublicKey
    PUBLIC_KEY
    PublicKeyOrPassword
    PUBLIC_KEY_OR_PASSWORD
    PublicKeyAndPassword
    PUBLIC_KEY_AND_PASSWORD
    ServerSftpAuthenticationMethodsPassword
    PASSWORD
    ServerSftpAuthenticationMethodsPublicKey
    PUBLIC_KEY
    ServerSftpAuthenticationMethodsPublicKeyOrPassword
    PUBLIC_KEY_OR_PASSWORD
    ServerSftpAuthenticationMethodsPublicKeyAndPassword
    PUBLIC_KEY_AND_PASSWORD
    Password
    PASSWORD
    PublicKey
    PUBLIC_KEY
    PublicKeyOrPassword
    PUBLIC_KEY_OR_PASSWORD
    PublicKeyAndPassword
    PUBLIC_KEY_AND_PASSWORD
    Password
    PASSWORD
    PublicKey
    PUBLIC_KEY
    PublicKeyOrPassword
    PUBLIC_KEY_OR_PASSWORD
    PublicKeyAndPassword
    PUBLIC_KEY_AND_PASSWORD
    PASSWORD
    PASSWORD
    PUBLIC_KEY
    PUBLIC_KEY
    PUBLIC_KEY_OR_PASSWORD
    PUBLIC_KEY_OR_PASSWORD
    PUBLIC_KEY_AND_PASSWORD
    PUBLIC_KEY_AND_PASSWORD
    "PASSWORD"
    PASSWORD
    "PUBLIC_KEY"
    PUBLIC_KEY
    "PUBLIC_KEY_OR_PASSWORD"
    PUBLIC_KEY_OR_PASSWORD
    "PUBLIC_KEY_AND_PASSWORD"
    PUBLIC_KEY_AND_PASSWORD

    ServerTlsSessionResumptionMode, ServerTlsSessionResumptionModeArgs

    Disabled
    DISABLED
    Enabled
    ENABLED
    Enforced
    ENFORCED
    ServerTlsSessionResumptionModeDisabled
    DISABLED
    ServerTlsSessionResumptionModeEnabled
    ENABLED
    ServerTlsSessionResumptionModeEnforced
    ENFORCED
    Disabled
    DISABLED
    Enabled
    ENABLED
    Enforced
    ENFORCED
    Disabled
    DISABLED
    Enabled
    ENABLED
    Enforced
    ENFORCED
    DISABLED
    DISABLED
    ENABLED
    ENABLED
    ENFORCED
    ENFORCED
    "DISABLED"
    DISABLED
    "ENABLED"
    ENABLED
    "ENFORCED"
    ENFORCED

    ServerWorkflowDetail, ServerWorkflowDetailArgs

    ExecutionRole string
    Includes the necessary permissions for S3, EFS, and Lambda operations that Transfer can assume, so that all workflow steps can operate on the required resources
    WorkflowId string
    A unique identifier for the workflow.
    ExecutionRole string
    Includes the necessary permissions for S3, EFS, and Lambda operations that Transfer can assume, so that all workflow steps can operate on the required resources
    WorkflowId string
    A unique identifier for the workflow.
    executionRole String
    Includes the necessary permissions for S3, EFS, and Lambda operations that Transfer can assume, so that all workflow steps can operate on the required resources
    workflowId String
    A unique identifier for the workflow.
    executionRole string
    Includes the necessary permissions for S3, EFS, and Lambda operations that Transfer can assume, so that all workflow steps can operate on the required resources
    workflowId string
    A unique identifier for the workflow.
    execution_role str
    Includes the necessary permissions for S3, EFS, and Lambda operations that Transfer can assume, so that all workflow steps can operate on the required resources
    workflow_id str
    A unique identifier for the workflow.
    executionRole String
    Includes the necessary permissions for S3, EFS, and Lambda operations that Transfer can assume, so that all workflow steps can operate on the required resources
    workflowId String
    A unique identifier for the workflow.

    ServerWorkflowDetails, ServerWorkflowDetailsArgs

    OnPartialUpload List<Pulumi.AwsNative.Transfer.Inputs.ServerWorkflowDetail>

    A trigger that starts a workflow if a file is only partially uploaded. You can attach a workflow to a server that executes whenever there is a partial upload.

    A partial upload occurs when a file is open when the session disconnects.

    OnPartialUpload can contain a maximum of one WorkflowDetail object.

    OnUpload List<Pulumi.AwsNative.Transfer.Inputs.ServerWorkflowDetail>

    A trigger that starts a workflow: the workflow begins to execute after a file is uploaded.

    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":[]}'

    OnUpload can contain a maximum of one WorkflowDetail object.

    OnPartialUpload []ServerWorkflowDetail

    A trigger that starts a workflow if a file is only partially uploaded. You can attach a workflow to a server that executes whenever there is a partial upload.

    A partial upload occurs when a file is open when the session disconnects.

    OnPartialUpload can contain a maximum of one WorkflowDetail object.

    OnUpload []ServerWorkflowDetail

    A trigger that starts a workflow: the workflow begins to execute after a file is uploaded.

    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":[]}'

    OnUpload can contain a maximum of one WorkflowDetail object.

    onPartialUpload List<ServerWorkflowDetail>

    A trigger that starts a workflow if a file is only partially uploaded. You can attach a workflow to a server that executes whenever there is a partial upload.

    A partial upload occurs when a file is open when the session disconnects.

    OnPartialUpload can contain a maximum of one WorkflowDetail object.

    onUpload List<ServerWorkflowDetail>

    A trigger that starts a workflow: the workflow begins to execute after a file is uploaded.

    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":[]}'

    OnUpload can contain a maximum of one WorkflowDetail object.

    onPartialUpload ServerWorkflowDetail[]

    A trigger that starts a workflow if a file is only partially uploaded. You can attach a workflow to a server that executes whenever there is a partial upload.

    A partial upload occurs when a file is open when the session disconnects.

    OnPartialUpload can contain a maximum of one WorkflowDetail object.

    onUpload ServerWorkflowDetail[]

    A trigger that starts a workflow: the workflow begins to execute after a file is uploaded.

    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":[]}'

    OnUpload can contain a maximum of one WorkflowDetail object.

    on_partial_upload Sequence[ServerWorkflowDetail]

    A trigger that starts a workflow if a file is only partially uploaded. You can attach a workflow to a server that executes whenever there is a partial upload.

    A partial upload occurs when a file is open when the session disconnects.

    OnPartialUpload can contain a maximum of one WorkflowDetail object.

    on_upload Sequence[ServerWorkflowDetail]

    A trigger that starts a workflow: the workflow begins to execute after a file is uploaded.

    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":[]}'

    OnUpload can contain a maximum of one WorkflowDetail object.

    onPartialUpload List<Property Map>

    A trigger that starts a workflow if a file is only partially uploaded. You can attach a workflow to a server that executes whenever there is a partial upload.

    A partial upload occurs when a file is open when the session disconnects.

    OnPartialUpload can contain a maximum of one WorkflowDetail object.

    onUpload List<Property Map>

    A trigger that starts a workflow: the workflow begins to execute after a file is uploaded.

    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":[]}'

    OnUpload can contain a maximum of one WorkflowDetail object.

    Tag, TagArgs

    Key string
    The key name of the tag
    Value string
    The value of the tag
    Key string
    The key name of the tag
    Value string
    The value of the tag
    key String
    The key name of the tag
    value String
    The value of the tag
    key string
    The key name of the tag
    value string
    The value of the tag
    key str
    The key name of the tag
    value str
    The value of the tag
    key String
    The key name of the tag
    value String
    The value of the tag

    Package Details

    Repository
    AWS Native pulumi/pulumi-aws-native
    License
    Apache-2.0
    aws-native logo

    We recommend new projects start with resources from the AWS provider.

    AWS Cloud Control v1.9.0 published on Monday, Nov 18, 2024 by Pulumi