transfer

package
v4.27.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 10, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Access added in v4.21.0

type Access struct {
	pulumi.CustomResourceState

	// The SID of a group in the directory connected to the Transfer Server (e.g., `S-1-1-12-1234567890-123456789-1234567890-1234`)
	ExternalId pulumi.StringOutput `pulumi:"externalId"`
	// The landing directory (folder) for a user when they log in to the server using their SFTP client.  It should begin with a `/`.  The first item in the path is the name of the home bucket (accessible as `${Transfer:HomeBucket}` in the policy) and the rest is the home directory (accessible as `${Transfer:HomeDirectory}` in the policy). For example, `/example-bucket-1234/username` would set the home bucket to `example-bucket-1234` and the home directory to `username`.
	HomeDirectory pulumi.StringPtrOutput `pulumi:"homeDirectory"`
	// Logical directory mappings that specify what S3 paths and keys should be visible to your user and how you want to make them visible. See Home Directory Mappings below.
	HomeDirectoryMappings AccessHomeDirectoryMappingArrayOutput `pulumi:"homeDirectoryMappings"`
	// The type of landing directory (folder) you mapped for your users' home directory. Valid values are `PATH` and `LOGICAL`.
	HomeDirectoryType pulumi.StringPtrOutput `pulumi:"homeDirectoryType"`
	Policy            pulumi.StringPtrOutput `pulumi:"policy"`
	// Specifies the full POSIX identity, including user ID (Uid), group ID (Gid), and any secondary groups IDs (SecondaryGids), that controls your users' access to your Amazon EFS file systems. See Posix Profile below.
	PosixProfile AccessPosixProfilePtrOutput `pulumi:"posixProfile"`
	// Amazon Resource Name (ARN) of an IAM role that allows the service to controls your user’s access to your Amazon S3 bucket.
	Role pulumi.StringPtrOutput `pulumi:"role"`
	// The Server ID of the Transfer Server (e.g., `s-12345678`)
	ServerId pulumi.StringOutput `pulumi:"serverId"`
}

Provides a AWS Transfer Access resource.

## Example Usage ### Basic S3

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/transfer"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := transfer.NewAccess(ctx, "example", &transfer.AccessArgs{
			ExternalId:    pulumi.String("S-1-1-12-1234567890-123456789-1234567890-1234"),
			ServerId:      pulumi.Any(aws_transfer_server.Example.Id),
			Role:          pulumi.Any(aws_iam_role.Example.Arn),
			HomeDirectory: pulumi.String(fmt.Sprintf("%v%v%v", "/", aws_s3_bucket.Example.Id, "/")),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Basic EFS

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/transfer"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := transfer.NewAccess(ctx, "test", &transfer.AccessArgs{
			ExternalId:    pulumi.String("S-1-1-12-1234567890-123456789-1234567890-1234"),
			ServerId:      pulumi.Any(aws_transfer_server.Test.Id),
			Role:          pulumi.Any(aws_iam_role.Test.Arn),
			HomeDirectory: pulumi.String(fmt.Sprintf("%v%v%v", "/", aws_efs_file_system.Test.Id, "/")),
			PosixProfile: &transfer.AccessPosixProfileArgs{
				Gid: pulumi.Int(1000),
				Uid: pulumi.Int(1000),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Transfer Accesses can be imported using the `server_id` and `external_id`, e.g.,

```sh

$ pulumi import aws:transfer/access:Access example s-12345678/S-1-1-12-1234567890-123456789-1234567890-1234

```

func GetAccess added in v4.21.0

func GetAccess(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *AccessState, opts ...pulumi.ResourceOption) (*Access, error)

GetAccess gets an existing Access resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewAccess added in v4.21.0

func NewAccess(ctx *pulumi.Context,
	name string, args *AccessArgs, opts ...pulumi.ResourceOption) (*Access, error)

NewAccess registers a new resource with the given unique name, arguments, and options.

func (*Access) ElementType added in v4.21.0

func (*Access) ElementType() reflect.Type

func (*Access) ToAccessOutput added in v4.21.0

func (i *Access) ToAccessOutput() AccessOutput

func (*Access) ToAccessOutputWithContext added in v4.21.0

func (i *Access) ToAccessOutputWithContext(ctx context.Context) AccessOutput

func (*Access) ToAccessPtrOutput added in v4.21.0

func (i *Access) ToAccessPtrOutput() AccessPtrOutput

func (*Access) ToAccessPtrOutputWithContext added in v4.21.0

func (i *Access) ToAccessPtrOutputWithContext(ctx context.Context) AccessPtrOutput

type AccessArgs added in v4.21.0

type AccessArgs struct {
	// The SID of a group in the directory connected to the Transfer Server (e.g., `S-1-1-12-1234567890-123456789-1234567890-1234`)
	ExternalId pulumi.StringInput
	// The landing directory (folder) for a user when they log in to the server using their SFTP client.  It should begin with a `/`.  The first item in the path is the name of the home bucket (accessible as `${Transfer:HomeBucket}` in the policy) and the rest is the home directory (accessible as `${Transfer:HomeDirectory}` in the policy). For example, `/example-bucket-1234/username` would set the home bucket to `example-bucket-1234` and the home directory to `username`.
	HomeDirectory pulumi.StringPtrInput
	// Logical directory mappings that specify what S3 paths and keys should be visible to your user and how you want to make them visible. See Home Directory Mappings below.
	HomeDirectoryMappings AccessHomeDirectoryMappingArrayInput
	// The type of landing directory (folder) you mapped for your users' home directory. Valid values are `PATH` and `LOGICAL`.
	HomeDirectoryType pulumi.StringPtrInput
	Policy            pulumi.StringPtrInput
	// Specifies the full POSIX identity, including user ID (Uid), group ID (Gid), and any secondary groups IDs (SecondaryGids), that controls your users' access to your Amazon EFS file systems. See Posix Profile below.
	PosixProfile AccessPosixProfilePtrInput
	// Amazon Resource Name (ARN) of an IAM role that allows the service to controls your user’s access to your Amazon S3 bucket.
	Role pulumi.StringPtrInput
	// The Server ID of the Transfer Server (e.g., `s-12345678`)
	ServerId pulumi.StringInput
}

The set of arguments for constructing a Access resource.

func (AccessArgs) ElementType added in v4.21.0

func (AccessArgs) ElementType() reflect.Type

type AccessArray added in v4.21.0

type AccessArray []AccessInput

func (AccessArray) ElementType added in v4.21.0

func (AccessArray) ElementType() reflect.Type

func (AccessArray) ToAccessArrayOutput added in v4.21.0

func (i AccessArray) ToAccessArrayOutput() AccessArrayOutput

func (AccessArray) ToAccessArrayOutputWithContext added in v4.21.0

func (i AccessArray) ToAccessArrayOutputWithContext(ctx context.Context) AccessArrayOutput

type AccessArrayInput added in v4.21.0

type AccessArrayInput interface {
	pulumi.Input

	ToAccessArrayOutput() AccessArrayOutput
	ToAccessArrayOutputWithContext(context.Context) AccessArrayOutput
}

AccessArrayInput is an input type that accepts AccessArray and AccessArrayOutput values. You can construct a concrete instance of `AccessArrayInput` via:

AccessArray{ AccessArgs{...} }

type AccessArrayOutput added in v4.21.0

type AccessArrayOutput struct{ *pulumi.OutputState }

func (AccessArrayOutput) ElementType added in v4.21.0

func (AccessArrayOutput) ElementType() reflect.Type

func (AccessArrayOutput) Index added in v4.21.0

func (AccessArrayOutput) ToAccessArrayOutput added in v4.21.0

func (o AccessArrayOutput) ToAccessArrayOutput() AccessArrayOutput

func (AccessArrayOutput) ToAccessArrayOutputWithContext added in v4.21.0

func (o AccessArrayOutput) ToAccessArrayOutputWithContext(ctx context.Context) AccessArrayOutput

type AccessHomeDirectoryMapping added in v4.21.0

type AccessHomeDirectoryMapping struct {
	// Represents an entry and a target.
	Entry string `pulumi:"entry"`
	// Represents the map target.
	Target string `pulumi:"target"`
}

type AccessHomeDirectoryMappingArgs added in v4.21.0

type AccessHomeDirectoryMappingArgs struct {
	// Represents an entry and a target.
	Entry pulumi.StringInput `pulumi:"entry"`
	// Represents the map target.
	Target pulumi.StringInput `pulumi:"target"`
}

func (AccessHomeDirectoryMappingArgs) ElementType added in v4.21.0

func (AccessHomeDirectoryMappingArgs) ToAccessHomeDirectoryMappingOutput added in v4.21.0

func (i AccessHomeDirectoryMappingArgs) ToAccessHomeDirectoryMappingOutput() AccessHomeDirectoryMappingOutput

func (AccessHomeDirectoryMappingArgs) ToAccessHomeDirectoryMappingOutputWithContext added in v4.21.0

func (i AccessHomeDirectoryMappingArgs) ToAccessHomeDirectoryMappingOutputWithContext(ctx context.Context) AccessHomeDirectoryMappingOutput

type AccessHomeDirectoryMappingArray added in v4.21.0

type AccessHomeDirectoryMappingArray []AccessHomeDirectoryMappingInput

func (AccessHomeDirectoryMappingArray) ElementType added in v4.21.0

func (AccessHomeDirectoryMappingArray) ToAccessHomeDirectoryMappingArrayOutput added in v4.21.0

func (i AccessHomeDirectoryMappingArray) ToAccessHomeDirectoryMappingArrayOutput() AccessHomeDirectoryMappingArrayOutput

func (AccessHomeDirectoryMappingArray) ToAccessHomeDirectoryMappingArrayOutputWithContext added in v4.21.0

func (i AccessHomeDirectoryMappingArray) ToAccessHomeDirectoryMappingArrayOutputWithContext(ctx context.Context) AccessHomeDirectoryMappingArrayOutput

type AccessHomeDirectoryMappingArrayInput added in v4.21.0

type AccessHomeDirectoryMappingArrayInput interface {
	pulumi.Input

	ToAccessHomeDirectoryMappingArrayOutput() AccessHomeDirectoryMappingArrayOutput
	ToAccessHomeDirectoryMappingArrayOutputWithContext(context.Context) AccessHomeDirectoryMappingArrayOutput
}

AccessHomeDirectoryMappingArrayInput is an input type that accepts AccessHomeDirectoryMappingArray and AccessHomeDirectoryMappingArrayOutput values. You can construct a concrete instance of `AccessHomeDirectoryMappingArrayInput` via:

AccessHomeDirectoryMappingArray{ AccessHomeDirectoryMappingArgs{...} }

type AccessHomeDirectoryMappingArrayOutput added in v4.21.0

type AccessHomeDirectoryMappingArrayOutput struct{ *pulumi.OutputState }

func (AccessHomeDirectoryMappingArrayOutput) ElementType added in v4.21.0

func (AccessHomeDirectoryMappingArrayOutput) Index added in v4.21.0

func (AccessHomeDirectoryMappingArrayOutput) ToAccessHomeDirectoryMappingArrayOutput added in v4.21.0

func (o AccessHomeDirectoryMappingArrayOutput) ToAccessHomeDirectoryMappingArrayOutput() AccessHomeDirectoryMappingArrayOutput

func (AccessHomeDirectoryMappingArrayOutput) ToAccessHomeDirectoryMappingArrayOutputWithContext added in v4.21.0

func (o AccessHomeDirectoryMappingArrayOutput) ToAccessHomeDirectoryMappingArrayOutputWithContext(ctx context.Context) AccessHomeDirectoryMappingArrayOutput

type AccessHomeDirectoryMappingInput added in v4.21.0

type AccessHomeDirectoryMappingInput interface {
	pulumi.Input

	ToAccessHomeDirectoryMappingOutput() AccessHomeDirectoryMappingOutput
	ToAccessHomeDirectoryMappingOutputWithContext(context.Context) AccessHomeDirectoryMappingOutput
}

AccessHomeDirectoryMappingInput is an input type that accepts AccessHomeDirectoryMappingArgs and AccessHomeDirectoryMappingOutput values. You can construct a concrete instance of `AccessHomeDirectoryMappingInput` via:

AccessHomeDirectoryMappingArgs{...}

type AccessHomeDirectoryMappingOutput added in v4.21.0

type AccessHomeDirectoryMappingOutput struct{ *pulumi.OutputState }

func (AccessHomeDirectoryMappingOutput) ElementType added in v4.21.0

func (AccessHomeDirectoryMappingOutput) Entry added in v4.21.0

Represents an entry and a target.

func (AccessHomeDirectoryMappingOutput) Target added in v4.21.0

Represents the map target.

func (AccessHomeDirectoryMappingOutput) ToAccessHomeDirectoryMappingOutput added in v4.21.0

func (o AccessHomeDirectoryMappingOutput) ToAccessHomeDirectoryMappingOutput() AccessHomeDirectoryMappingOutput

func (AccessHomeDirectoryMappingOutput) ToAccessHomeDirectoryMappingOutputWithContext added in v4.21.0

func (o AccessHomeDirectoryMappingOutput) ToAccessHomeDirectoryMappingOutputWithContext(ctx context.Context) AccessHomeDirectoryMappingOutput

type AccessInput added in v4.21.0

type AccessInput interface {
	pulumi.Input

	ToAccessOutput() AccessOutput
	ToAccessOutputWithContext(ctx context.Context) AccessOutput
}

type AccessMap added in v4.21.0

type AccessMap map[string]AccessInput

func (AccessMap) ElementType added in v4.21.0

func (AccessMap) ElementType() reflect.Type

func (AccessMap) ToAccessMapOutput added in v4.21.0

func (i AccessMap) ToAccessMapOutput() AccessMapOutput

func (AccessMap) ToAccessMapOutputWithContext added in v4.21.0

func (i AccessMap) ToAccessMapOutputWithContext(ctx context.Context) AccessMapOutput

type AccessMapInput added in v4.21.0

type AccessMapInput interface {
	pulumi.Input

	ToAccessMapOutput() AccessMapOutput
	ToAccessMapOutputWithContext(context.Context) AccessMapOutput
}

AccessMapInput is an input type that accepts AccessMap and AccessMapOutput values. You can construct a concrete instance of `AccessMapInput` via:

AccessMap{ "key": AccessArgs{...} }

type AccessMapOutput added in v4.21.0

type AccessMapOutput struct{ *pulumi.OutputState }

func (AccessMapOutput) ElementType added in v4.21.0

func (AccessMapOutput) ElementType() reflect.Type

func (AccessMapOutput) MapIndex added in v4.21.0

func (AccessMapOutput) ToAccessMapOutput added in v4.21.0

func (o AccessMapOutput) ToAccessMapOutput() AccessMapOutput

func (AccessMapOutput) ToAccessMapOutputWithContext added in v4.21.0

func (o AccessMapOutput) ToAccessMapOutputWithContext(ctx context.Context) AccessMapOutput

type AccessOutput added in v4.21.0

type AccessOutput struct{ *pulumi.OutputState }

func (AccessOutput) ElementType added in v4.21.0

func (AccessOutput) ElementType() reflect.Type

func (AccessOutput) ToAccessOutput added in v4.21.0

func (o AccessOutput) ToAccessOutput() AccessOutput

func (AccessOutput) ToAccessOutputWithContext added in v4.21.0

func (o AccessOutput) ToAccessOutputWithContext(ctx context.Context) AccessOutput

func (AccessOutput) ToAccessPtrOutput added in v4.21.0

func (o AccessOutput) ToAccessPtrOutput() AccessPtrOutput

func (AccessOutput) ToAccessPtrOutputWithContext added in v4.21.0

func (o AccessOutput) ToAccessPtrOutputWithContext(ctx context.Context) AccessPtrOutput

type AccessPosixProfile added in v4.21.0

type AccessPosixProfile struct {
	// The POSIX group ID used for all EFS operations by this user.
	Gid int `pulumi:"gid"`
	// The secondary POSIX group IDs used for all EFS operations by this user.
	SecondaryGids []int `pulumi:"secondaryGids"`
	// The POSIX user ID used for all EFS operations by this user.
	Uid int `pulumi:"uid"`
}

type AccessPosixProfileArgs added in v4.21.0

type AccessPosixProfileArgs struct {
	// The POSIX group ID used for all EFS operations by this user.
	Gid pulumi.IntInput `pulumi:"gid"`
	// The secondary POSIX group IDs used for all EFS operations by this user.
	SecondaryGids pulumi.IntArrayInput `pulumi:"secondaryGids"`
	// The POSIX user ID used for all EFS operations by this user.
	Uid pulumi.IntInput `pulumi:"uid"`
}

func (AccessPosixProfileArgs) ElementType added in v4.21.0

func (AccessPosixProfileArgs) ElementType() reflect.Type

func (AccessPosixProfileArgs) ToAccessPosixProfileOutput added in v4.21.0

func (i AccessPosixProfileArgs) ToAccessPosixProfileOutput() AccessPosixProfileOutput

func (AccessPosixProfileArgs) ToAccessPosixProfileOutputWithContext added in v4.21.0

func (i AccessPosixProfileArgs) ToAccessPosixProfileOutputWithContext(ctx context.Context) AccessPosixProfileOutput

func (AccessPosixProfileArgs) ToAccessPosixProfilePtrOutput added in v4.21.0

func (i AccessPosixProfileArgs) ToAccessPosixProfilePtrOutput() AccessPosixProfilePtrOutput

func (AccessPosixProfileArgs) ToAccessPosixProfilePtrOutputWithContext added in v4.21.0

func (i AccessPosixProfileArgs) ToAccessPosixProfilePtrOutputWithContext(ctx context.Context) AccessPosixProfilePtrOutput

type AccessPosixProfileInput added in v4.21.0

type AccessPosixProfileInput interface {
	pulumi.Input

	ToAccessPosixProfileOutput() AccessPosixProfileOutput
	ToAccessPosixProfileOutputWithContext(context.Context) AccessPosixProfileOutput
}

AccessPosixProfileInput is an input type that accepts AccessPosixProfileArgs and AccessPosixProfileOutput values. You can construct a concrete instance of `AccessPosixProfileInput` via:

AccessPosixProfileArgs{...}

type AccessPosixProfileOutput added in v4.21.0

type AccessPosixProfileOutput struct{ *pulumi.OutputState }

func (AccessPosixProfileOutput) ElementType added in v4.21.0

func (AccessPosixProfileOutput) ElementType() reflect.Type

func (AccessPosixProfileOutput) Gid added in v4.21.0

The POSIX group ID used for all EFS operations by this user.

func (AccessPosixProfileOutput) SecondaryGids added in v4.21.0

The secondary POSIX group IDs used for all EFS operations by this user.

func (AccessPosixProfileOutput) ToAccessPosixProfileOutput added in v4.21.0

func (o AccessPosixProfileOutput) ToAccessPosixProfileOutput() AccessPosixProfileOutput

func (AccessPosixProfileOutput) ToAccessPosixProfileOutputWithContext added in v4.21.0

func (o AccessPosixProfileOutput) ToAccessPosixProfileOutputWithContext(ctx context.Context) AccessPosixProfileOutput

func (AccessPosixProfileOutput) ToAccessPosixProfilePtrOutput added in v4.21.0

func (o AccessPosixProfileOutput) ToAccessPosixProfilePtrOutput() AccessPosixProfilePtrOutput

func (AccessPosixProfileOutput) ToAccessPosixProfilePtrOutputWithContext added in v4.21.0

func (o AccessPosixProfileOutput) ToAccessPosixProfilePtrOutputWithContext(ctx context.Context) AccessPosixProfilePtrOutput

func (AccessPosixProfileOutput) Uid added in v4.21.0

The POSIX user ID used for all EFS operations by this user.

type AccessPosixProfilePtrInput added in v4.21.0

type AccessPosixProfilePtrInput interface {
	pulumi.Input

	ToAccessPosixProfilePtrOutput() AccessPosixProfilePtrOutput
	ToAccessPosixProfilePtrOutputWithContext(context.Context) AccessPosixProfilePtrOutput
}

AccessPosixProfilePtrInput is an input type that accepts AccessPosixProfileArgs, AccessPosixProfilePtr and AccessPosixProfilePtrOutput values. You can construct a concrete instance of `AccessPosixProfilePtrInput` via:

        AccessPosixProfileArgs{...}

or:

        nil

func AccessPosixProfilePtr added in v4.21.0

func AccessPosixProfilePtr(v *AccessPosixProfileArgs) AccessPosixProfilePtrInput

type AccessPosixProfilePtrOutput added in v4.21.0

type AccessPosixProfilePtrOutput struct{ *pulumi.OutputState }

func (AccessPosixProfilePtrOutput) Elem added in v4.21.0

func (AccessPosixProfilePtrOutput) ElementType added in v4.21.0

func (AccessPosixProfilePtrOutput) Gid added in v4.21.0

The POSIX group ID used for all EFS operations by this user.

func (AccessPosixProfilePtrOutput) SecondaryGids added in v4.21.0

The secondary POSIX group IDs used for all EFS operations by this user.

func (AccessPosixProfilePtrOutput) ToAccessPosixProfilePtrOutput added in v4.21.0

func (o AccessPosixProfilePtrOutput) ToAccessPosixProfilePtrOutput() AccessPosixProfilePtrOutput

func (AccessPosixProfilePtrOutput) ToAccessPosixProfilePtrOutputWithContext added in v4.21.0

func (o AccessPosixProfilePtrOutput) ToAccessPosixProfilePtrOutputWithContext(ctx context.Context) AccessPosixProfilePtrOutput

func (AccessPosixProfilePtrOutput) Uid added in v4.21.0

The POSIX user ID used for all EFS operations by this user.

type AccessPtrInput added in v4.21.0

type AccessPtrInput interface {
	pulumi.Input

	ToAccessPtrOutput() AccessPtrOutput
	ToAccessPtrOutputWithContext(ctx context.Context) AccessPtrOutput
}

type AccessPtrOutput added in v4.21.0

type AccessPtrOutput struct{ *pulumi.OutputState }

func (AccessPtrOutput) Elem added in v4.21.0

func (o AccessPtrOutput) Elem() AccessOutput

func (AccessPtrOutput) ElementType added in v4.21.0

func (AccessPtrOutput) ElementType() reflect.Type

func (AccessPtrOutput) ToAccessPtrOutput added in v4.21.0

func (o AccessPtrOutput) ToAccessPtrOutput() AccessPtrOutput

func (AccessPtrOutput) ToAccessPtrOutputWithContext added in v4.21.0

func (o AccessPtrOutput) ToAccessPtrOutputWithContext(ctx context.Context) AccessPtrOutput

type AccessState added in v4.21.0

type AccessState struct {
	// The SID of a group in the directory connected to the Transfer Server (e.g., `S-1-1-12-1234567890-123456789-1234567890-1234`)
	ExternalId pulumi.StringPtrInput
	// The landing directory (folder) for a user when they log in to the server using their SFTP client.  It should begin with a `/`.  The first item in the path is the name of the home bucket (accessible as `${Transfer:HomeBucket}` in the policy) and the rest is the home directory (accessible as `${Transfer:HomeDirectory}` in the policy). For example, `/example-bucket-1234/username` would set the home bucket to `example-bucket-1234` and the home directory to `username`.
	HomeDirectory pulumi.StringPtrInput
	// Logical directory mappings that specify what S3 paths and keys should be visible to your user and how you want to make them visible. See Home Directory Mappings below.
	HomeDirectoryMappings AccessHomeDirectoryMappingArrayInput
	// The type of landing directory (folder) you mapped for your users' home directory. Valid values are `PATH` and `LOGICAL`.
	HomeDirectoryType pulumi.StringPtrInput
	Policy            pulumi.StringPtrInput
	// Specifies the full POSIX identity, including user ID (Uid), group ID (Gid), and any secondary groups IDs (SecondaryGids), that controls your users' access to your Amazon EFS file systems. See Posix Profile below.
	PosixProfile AccessPosixProfilePtrInput
	// Amazon Resource Name (ARN) of an IAM role that allows the service to controls your user’s access to your Amazon S3 bucket.
	Role pulumi.StringPtrInput
	// The Server ID of the Transfer Server (e.g., `s-12345678`)
	ServerId pulumi.StringPtrInput
}

func (AccessState) ElementType added in v4.21.0

func (AccessState) ElementType() reflect.Type

type LookupServerArgs

type LookupServerArgs struct {
	// ID for an SFTP server.
	ServerId string `pulumi:"serverId"`
}

A collection of arguments for invoking getServer.

type LookupServerOutputArgs added in v4.21.0

type LookupServerOutputArgs struct {
	// ID for an SFTP server.
	ServerId pulumi.StringInput `pulumi:"serverId"`
}

A collection of arguments for invoking getServer.

func (LookupServerOutputArgs) ElementType added in v4.21.0

func (LookupServerOutputArgs) ElementType() reflect.Type

type LookupServerResult

type LookupServerResult struct {
	// Amazon Resource Name (ARN) of Transfer Server.
	Arn string `pulumi:"arn"`
	// The ARN of any certificate.
	Certificate string `pulumi:"certificate"`
	// The domain of the storage system that is used for file transfers.
	Domain string `pulumi:"domain"`
	// The endpoint of the Transfer Server (e.g., `s-12345678.server.transfer.REGION.amazonaws.com`).
	Endpoint string `pulumi:"endpoint"`
	// The type of endpoint that the server is connected to.
	EndpointType string `pulumi:"endpointType"`
	// The provider-assigned unique ID for this managed resource.
	Id string `pulumi:"id"`
	// The mode of authentication enabled for this service. The default value is `SERVICE_MANAGED`, which allows you to store and access SFTP user credentials within the service. `API_GATEWAY` indicates that user authentication requires a call to an API Gateway endpoint URL provided by you to integrate an identity provider of your choice.
	IdentityProviderType string `pulumi:"identityProviderType"`
	// Amazon Resource Name (ARN) of the IAM role used to authenticate the user account with an `identityProviderType` of `API_GATEWAY`.
	InvocationRole string `pulumi:"invocationRole"`
	// Amazon Resource Name (ARN) of an IAM role that allows the service to write your SFTP users’ activity to your Amazon CloudWatch logs for monitoring and auditing purposes.
	LoggingRole string `pulumi:"loggingRole"`
	// The file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint.
	Protocols []string `pulumi:"protocols"`
	// The name of the security policy that is attached to the server.
	SecurityPolicyName string `pulumi:"securityPolicyName"`
	ServerId           string `pulumi:"serverId"`
	// URL of the service endpoint used to authenticate users with an `identityProviderType` of `API_GATEWAY`.
	Url string `pulumi:"url"`
}

A collection of values returned by getServer.

func LookupServer

func LookupServer(ctx *pulumi.Context, args *LookupServerArgs, opts ...pulumi.InvokeOption) (*LookupServerResult, error)

Use this data source to get the ARN of an AWS Transfer Server for use in other resources.

## Example Usage

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/transfer"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := transfer.LookupServer(ctx, &transfer.LookupServerArgs{
			ServerId: "s-1234567",
		}, nil)
		if err != nil {
			return err
		}
		return nil
	})
}

```

type LookupServerResultOutput added in v4.21.0

type LookupServerResultOutput struct{ *pulumi.OutputState }

A collection of values returned by getServer.

func LookupServerOutput added in v4.21.0

func LookupServerOutput(ctx *pulumi.Context, args LookupServerOutputArgs, opts ...pulumi.InvokeOption) LookupServerResultOutput

func (LookupServerResultOutput) Arn added in v4.21.0

Amazon Resource Name (ARN) of Transfer Server.

func (LookupServerResultOutput) Certificate added in v4.21.0

The ARN of any certificate.

func (LookupServerResultOutput) Domain added in v4.21.0

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

func (LookupServerResultOutput) ElementType added in v4.21.0

func (LookupServerResultOutput) ElementType() reflect.Type

func (LookupServerResultOutput) Endpoint added in v4.21.0

The endpoint of the Transfer Server (e.g., `s-12345678.server.transfer.REGION.amazonaws.com`).

func (LookupServerResultOutput) EndpointType added in v4.21.0

func (o LookupServerResultOutput) EndpointType() pulumi.StringOutput

The type of endpoint that the server is connected to.

func (LookupServerResultOutput) Id added in v4.21.0

The provider-assigned unique ID for this managed resource.

func (LookupServerResultOutput) IdentityProviderType added in v4.21.0

func (o LookupServerResultOutput) IdentityProviderType() pulumi.StringOutput

The mode of authentication enabled for this service. The default value is `SERVICE_MANAGED`, which allows you to store and access SFTP user credentials within the service. `API_GATEWAY` indicates that user authentication requires a call to an API Gateway endpoint URL provided by you to integrate an identity provider of your choice.

func (LookupServerResultOutput) InvocationRole added in v4.21.0

func (o LookupServerResultOutput) InvocationRole() pulumi.StringOutput

Amazon Resource Name (ARN) of the IAM role used to authenticate the user account with an `identityProviderType` of `API_GATEWAY`.

func (LookupServerResultOutput) LoggingRole added in v4.21.0

Amazon Resource Name (ARN) of an IAM role that allows the service to write your SFTP users’ activity to your Amazon CloudWatch logs for monitoring and auditing purposes.

func (LookupServerResultOutput) Protocols added in v4.21.0

The file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint.

func (LookupServerResultOutput) SecurityPolicyName added in v4.21.0

func (o LookupServerResultOutput) SecurityPolicyName() pulumi.StringOutput

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

func (LookupServerResultOutput) ServerId added in v4.21.0

func (LookupServerResultOutput) ToLookupServerResultOutput added in v4.21.0

func (o LookupServerResultOutput) ToLookupServerResultOutput() LookupServerResultOutput

func (LookupServerResultOutput) ToLookupServerResultOutputWithContext added in v4.21.0

func (o LookupServerResultOutput) ToLookupServerResultOutputWithContext(ctx context.Context) LookupServerResultOutput

func (LookupServerResultOutput) Url added in v4.21.0

URL of the service endpoint used to authenticate users with an `identityProviderType` of `API_GATEWAY`.

type Server

type Server struct {
	pulumi.CustomResourceState

	// Amazon Resource Name (ARN) of Transfer Server
	Arn pulumi.StringOutput `pulumi:"arn"`
	// The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate. This is required when `protocols` is set to `FTPS`
	Certificate pulumi.StringPtrOutput `pulumi:"certificate"`
	// The directory service ID of the directory service you want to connect to with an `identityProviderType` of `AWS_DIRECTORY_SERVICE`.
	DirectoryId pulumi.StringPtrOutput `pulumi:"directoryId"`
	// The domain of the storage system that is used for file transfers. Valid values are: `S3` and `EFS`. The default value is `S3`.
	Domain pulumi.StringPtrOutput `pulumi:"domain"`
	// The endpoint of the Transfer Server (e.g., `s-12345678.server.transfer.REGION.amazonaws.com`)
	Endpoint pulumi.StringOutput `pulumi:"endpoint"`
	// The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. Fields documented below.
	EndpointDetails ServerEndpointDetailsPtrOutput `pulumi:"endpointDetails"`
	// The type of endpoint that you want your SFTP server connect to. If you connect to a `VPC` (or `VPC_ENDPOINT`), your SFTP server isn't accessible over the public internet. If you want to connect your SFTP server via public internet, set `PUBLIC`.  Defaults to `PUBLIC`.
	EndpointType pulumi.StringPtrOutput `pulumi:"endpointType"`
	// A boolean that indicates all users associated with the server should be deleted so that the Server can be destroyed without error. The default value is `false`. This option only applies to servers configured with a `SERVICE_MANAGED` `identityProviderType`.
	ForceDestroy pulumi.BoolPtrOutput `pulumi:"forceDestroy"`
	// RSA private key (e.g., as generated by the `ssh-keygen -N "" -m PEM -f my-new-server-key` command).
	HostKey pulumi.StringPtrOutput `pulumi:"hostKey"`
	// This value contains the message-digest algorithm (MD5) hash of the server's host key. This value is equivalent to the output of the `ssh-keygen -l -E md5 -f my-new-server-key` command.
	HostKeyFingerprint pulumi.StringOutput `pulumi:"hostKeyFingerprint"`
	// The mode of authentication enabled for this service. The default value is `SERVICE_MANAGED`, which allows you to store and access SFTP user credentials within the service. `API_GATEWAY` indicates that user authentication requires a call to an API Gateway endpoint URL provided by you to integrate an identity provider of your choice. Using `AWS_DIRECTORY_SERVICE` will allow for authentication against AWS Managed Active Directory or Microsoft Active Directory in your on-premises environment, or in AWS using AD Connectors.
	IdentityProviderType pulumi.StringPtrOutput `pulumi:"identityProviderType"`
	// Amazon Resource Name (ARN) of the IAM role used to authenticate the user account with an `identityProviderType` of `API_GATEWAY`.
	InvocationRole pulumi.StringPtrOutput `pulumi:"invocationRole"`
	// Amazon Resource Name (ARN) of an IAM role that allows the service to write your SFTP users’ activity to your Amazon CloudWatch logs for monitoring and auditing purposes.
	LoggingRole pulumi.StringPtrOutput `pulumi:"loggingRole"`
	// Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. This defaults to `SFTP` . The available protocols are:
	// * `SFTP`: File transfer over SSH
	// * `FTPS`: File transfer with TLS encryption
	// * `FTP`: Unencrypted file transfer
	Protocols pulumi.StringArrayOutput `pulumi:"protocols"`
	// Specifies the name of the security policy that is attached to the server. Possible values are `TransferSecurityPolicy-2018-11`, `TransferSecurityPolicy-2020-06`, and  `TransferSecurityPolicy-FIPS-2020-06`. Default value is: `TransferSecurityPolicy-2018-11`.
	SecurityPolicyName pulumi.StringPtrOutput `pulumi:"securityPolicyName"`
	Tags               pulumi.StringMapOutput `pulumi:"tags"`
	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
	// - URL of the service endpoint used to authenticate users with an `identityProviderType` of `API_GATEWAY`.
	Url pulumi.StringPtrOutput `pulumi:"url"`
}

Provides a AWS Transfer Server resource.

> **NOTE on AWS IAM permissions:** If the `endpointType` is set to `VPC`, the `ec2:DescribeVpcEndpoints` and `ec2:ModifyVpcEndpoint` [actions](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonec2.html#amazonec2-actions-as-permissions) are used.

## Example Usage ### Basic

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/transfer"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := transfer.NewServer(ctx, "example", &transfer.ServerArgs{
			Tags: pulumi.StringMap{
				"Name": pulumi.String("Example"),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Security Policy Name

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/transfer"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := transfer.NewServer(ctx, "example", &transfer.ServerArgs{
			SecurityPolicyName: pulumi.String("TransferSecurityPolicy-2020-06"),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### VPC Endpoint

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/transfer"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := transfer.NewServer(ctx, "example", &transfer.ServerArgs{
			EndpointType: pulumi.String("VPC"),
			EndpointDetails: &transfer.ServerEndpointDetailsArgs{
				AddressAllocationIds: pulumi.StringArray{
					pulumi.Any(aws_eip.Example.Id),
				},
				SubnetIds: pulumi.StringArray{
					pulumi.Any(aws_subnet.Example.Id),
				},
				VpcId: pulumi.Any(aws_vpc.Example.Id),
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### AWS Directory authentication

```go package main

import (

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/transfer"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := transfer.NewServer(ctx, "example", &transfer.ServerArgs{
			IdentityProviderType: pulumi.String("AWS_DIRECTORY_SERVICE"),
			DirectoryId:          pulumi.Any(aws_directory_service_directory.Example.Id),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

``` ### Protocols

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/transfer"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		_, err := transfer.NewServer(ctx, "example", &transfer.ServerArgs{
			EndpointType: pulumi.String("VPC"),
			EndpointDetails: &transfer.ServerEndpointDetailsArgs{
				SubnetIds: pulumi.StringArray{
					pulumi.Any(aws_subnet.Example.Id),
				},
				VpcId: pulumi.Any(aws_vpc.Example.Id),
			},
			Protocols: pulumi.StringArray{
				pulumi.String("FTP"),
				pulumi.String("FTPS"),
			},
			Certificate:          pulumi.Any(aws_acm_certificate.Example.Arn),
			IdentityProviderType: pulumi.String("API_GATEWAY"),
			Url:                  pulumi.String(fmt.Sprintf("%v%v", aws_api_gateway_deployment.Example.Invoke_url, aws_api_gateway_resource.Example.Path)),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Transfer Servers can be imported using the `server id`, e.g.,

```sh

$ pulumi import aws:transfer/server:Server example s-12345678

```

Certain resource arguments, such as `host_key`, cannot be read via the API and imported into the provider. This provider will display a difference for these arguments the first run after import if declared in the provider configuration for an imported resource.

func GetServer

func GetServer(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *ServerState, opts ...pulumi.ResourceOption) (*Server, error)

GetServer gets an existing Server resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewServer

func NewServer(ctx *pulumi.Context,
	name string, args *ServerArgs, opts ...pulumi.ResourceOption) (*Server, error)

NewServer registers a new resource with the given unique name, arguments, and options.

func (*Server) ElementType

func (*Server) ElementType() reflect.Type

func (*Server) ToServerOutput

func (i *Server) ToServerOutput() ServerOutput

func (*Server) ToServerOutputWithContext

func (i *Server) ToServerOutputWithContext(ctx context.Context) ServerOutput

func (*Server) ToServerPtrOutput

func (i *Server) ToServerPtrOutput() ServerPtrOutput

func (*Server) ToServerPtrOutputWithContext

func (i *Server) ToServerPtrOutputWithContext(ctx context.Context) ServerPtrOutput

type ServerArgs

type ServerArgs struct {
	// The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate. This is required when `protocols` is set to `FTPS`
	Certificate pulumi.StringPtrInput
	// The directory service ID of the directory service you want to connect to with an `identityProviderType` of `AWS_DIRECTORY_SERVICE`.
	DirectoryId pulumi.StringPtrInput
	// The domain of the storage system that is used for file transfers. Valid values are: `S3` and `EFS`. The default value is `S3`.
	Domain pulumi.StringPtrInput
	// The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. Fields documented below.
	EndpointDetails ServerEndpointDetailsPtrInput
	// The type of endpoint that you want your SFTP server connect to. If you connect to a `VPC` (or `VPC_ENDPOINT`), your SFTP server isn't accessible over the public internet. If you want to connect your SFTP server via public internet, set `PUBLIC`.  Defaults to `PUBLIC`.
	EndpointType pulumi.StringPtrInput
	// A boolean that indicates all users associated with the server should be deleted so that the Server can be destroyed without error. The default value is `false`. This option only applies to servers configured with a `SERVICE_MANAGED` `identityProviderType`.
	ForceDestroy pulumi.BoolPtrInput
	// RSA private key (e.g., as generated by the `ssh-keygen -N "" -m PEM -f my-new-server-key` command).
	HostKey pulumi.StringPtrInput
	// The mode of authentication enabled for this service. The default value is `SERVICE_MANAGED`, which allows you to store and access SFTP user credentials within the service. `API_GATEWAY` indicates that user authentication requires a call to an API Gateway endpoint URL provided by you to integrate an identity provider of your choice. Using `AWS_DIRECTORY_SERVICE` will allow for authentication against AWS Managed Active Directory or Microsoft Active Directory in your on-premises environment, or in AWS using AD Connectors.
	IdentityProviderType pulumi.StringPtrInput
	// Amazon Resource Name (ARN) of the IAM role used to authenticate the user account with an `identityProviderType` of `API_GATEWAY`.
	InvocationRole pulumi.StringPtrInput
	// Amazon Resource Name (ARN) of an IAM role that allows the service to write your SFTP users’ activity to your Amazon CloudWatch logs for monitoring and auditing purposes.
	LoggingRole pulumi.StringPtrInput
	// Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. This defaults to `SFTP` . The available protocols are:
	// * `SFTP`: File transfer over SSH
	// * `FTPS`: File transfer with TLS encryption
	// * `FTP`: Unencrypted file transfer
	Protocols pulumi.StringArrayInput
	// Specifies the name of the security policy that is attached to the server. Possible values are `TransferSecurityPolicy-2018-11`, `TransferSecurityPolicy-2020-06`, and  `TransferSecurityPolicy-FIPS-2020-06`. Default value is: `TransferSecurityPolicy-2018-11`.
	SecurityPolicyName pulumi.StringPtrInput
	Tags               pulumi.StringMapInput
	// - URL of the service endpoint used to authenticate users with an `identityProviderType` of `API_GATEWAY`.
	Url pulumi.StringPtrInput
}

The set of arguments for constructing a Server resource.

func (ServerArgs) ElementType

func (ServerArgs) ElementType() reflect.Type

type ServerArray

type ServerArray []ServerInput

func (ServerArray) ElementType

func (ServerArray) ElementType() reflect.Type

func (ServerArray) ToServerArrayOutput

func (i ServerArray) ToServerArrayOutput() ServerArrayOutput

func (ServerArray) ToServerArrayOutputWithContext

func (i ServerArray) ToServerArrayOutputWithContext(ctx context.Context) ServerArrayOutput

type ServerArrayInput

type ServerArrayInput interface {
	pulumi.Input

	ToServerArrayOutput() ServerArrayOutput
	ToServerArrayOutputWithContext(context.Context) ServerArrayOutput
}

ServerArrayInput is an input type that accepts ServerArray and ServerArrayOutput values. You can construct a concrete instance of `ServerArrayInput` via:

ServerArray{ ServerArgs{...} }

type ServerArrayOutput

type ServerArrayOutput struct{ *pulumi.OutputState }

func (ServerArrayOutput) ElementType

func (ServerArrayOutput) ElementType() reflect.Type

func (ServerArrayOutput) Index

func (ServerArrayOutput) ToServerArrayOutput

func (o ServerArrayOutput) ToServerArrayOutput() ServerArrayOutput

func (ServerArrayOutput) ToServerArrayOutputWithContext

func (o ServerArrayOutput) ToServerArrayOutputWithContext(ctx context.Context) ServerArrayOutput

type ServerEndpointDetails

type ServerEndpointDetails struct {
	// A list of address allocation IDs that are required to attach an Elastic IP address to your SFTP server's endpoint. This property can only be used when `endpointType` is set to `VPC`.
	AddressAllocationIds []string `pulumi:"addressAllocationIds"`
	// A list of security groups IDs that are available to attach to your server's endpoint. If no security groups are specified, the VPC's default security groups are automatically assigned to your endpoint. This property can only be used when `endpointType` is set to `VPC`.
	SecurityGroupIds []string `pulumi:"securityGroupIds"`
	// A list of subnet IDs that are required to host your SFTP server endpoint in your VPC. This property can only be used when `endpointType` is set to `VPC`.
	SubnetIds []string `pulumi:"subnetIds"`
	// The ID of the VPC endpoint. This property can only be used when `endpointType` is set to `VPC_ENDPOINT`
	VpcEndpointId *string `pulumi:"vpcEndpointId"`
	// The VPC ID of the virtual private cloud in which the SFTP server's endpoint will be hosted. This property can only be used when `endpointType` is set to `VPC`.
	VpcId *string `pulumi:"vpcId"`
}

type ServerEndpointDetailsArgs

type ServerEndpointDetailsArgs struct {
	// A list of address allocation IDs that are required to attach an Elastic IP address to your SFTP server's endpoint. This property can only be used when `endpointType` is set to `VPC`.
	AddressAllocationIds pulumi.StringArrayInput `pulumi:"addressAllocationIds"`
	// A list of security groups IDs that are available to attach to your server's endpoint. If no security groups are specified, the VPC's default security groups are automatically assigned to your endpoint. This property can only be used when `endpointType` is set to `VPC`.
	SecurityGroupIds pulumi.StringArrayInput `pulumi:"securityGroupIds"`
	// A list of subnet IDs that are required to host your SFTP server endpoint in your VPC. This property can only be used when `endpointType` is set to `VPC`.
	SubnetIds pulumi.StringArrayInput `pulumi:"subnetIds"`
	// The ID of the VPC endpoint. This property can only be used when `endpointType` is set to `VPC_ENDPOINT`
	VpcEndpointId pulumi.StringPtrInput `pulumi:"vpcEndpointId"`
	// The VPC ID of the virtual private cloud in which the SFTP server's endpoint will be hosted. This property can only be used when `endpointType` is set to `VPC`.
	VpcId pulumi.StringPtrInput `pulumi:"vpcId"`
}

func (ServerEndpointDetailsArgs) ElementType

func (ServerEndpointDetailsArgs) ElementType() reflect.Type

func (ServerEndpointDetailsArgs) ToServerEndpointDetailsOutput

func (i ServerEndpointDetailsArgs) ToServerEndpointDetailsOutput() ServerEndpointDetailsOutput

func (ServerEndpointDetailsArgs) ToServerEndpointDetailsOutputWithContext

func (i ServerEndpointDetailsArgs) ToServerEndpointDetailsOutputWithContext(ctx context.Context) ServerEndpointDetailsOutput

func (ServerEndpointDetailsArgs) ToServerEndpointDetailsPtrOutput

func (i ServerEndpointDetailsArgs) ToServerEndpointDetailsPtrOutput() ServerEndpointDetailsPtrOutput

func (ServerEndpointDetailsArgs) ToServerEndpointDetailsPtrOutputWithContext

func (i ServerEndpointDetailsArgs) ToServerEndpointDetailsPtrOutputWithContext(ctx context.Context) ServerEndpointDetailsPtrOutput

type ServerEndpointDetailsInput

type ServerEndpointDetailsInput interface {
	pulumi.Input

	ToServerEndpointDetailsOutput() ServerEndpointDetailsOutput
	ToServerEndpointDetailsOutputWithContext(context.Context) ServerEndpointDetailsOutput
}

ServerEndpointDetailsInput is an input type that accepts ServerEndpointDetailsArgs and ServerEndpointDetailsOutput values. You can construct a concrete instance of `ServerEndpointDetailsInput` via:

ServerEndpointDetailsArgs{...}

type ServerEndpointDetailsOutput

type ServerEndpointDetailsOutput struct{ *pulumi.OutputState }

func (ServerEndpointDetailsOutput) AddressAllocationIds

func (o ServerEndpointDetailsOutput) AddressAllocationIds() pulumi.StringArrayOutput

A list of address allocation IDs that are required to attach an Elastic IP address to your SFTP server's endpoint. This property can only be used when `endpointType` is set to `VPC`.

func (ServerEndpointDetailsOutput) ElementType

func (ServerEndpointDetailsOutput) SecurityGroupIds added in v4.12.0

A list of security groups IDs that are available to attach to your server's endpoint. If no security groups are specified, the VPC's default security groups are automatically assigned to your endpoint. This property can only be used when `endpointType` is set to `VPC`.

func (ServerEndpointDetailsOutput) SubnetIds

A list of subnet IDs that are required to host your SFTP server endpoint in your VPC. This property can only be used when `endpointType` is set to `VPC`.

func (ServerEndpointDetailsOutput) ToServerEndpointDetailsOutput

func (o ServerEndpointDetailsOutput) ToServerEndpointDetailsOutput() ServerEndpointDetailsOutput

func (ServerEndpointDetailsOutput) ToServerEndpointDetailsOutputWithContext

func (o ServerEndpointDetailsOutput) ToServerEndpointDetailsOutputWithContext(ctx context.Context) ServerEndpointDetailsOutput

func (ServerEndpointDetailsOutput) ToServerEndpointDetailsPtrOutput

func (o ServerEndpointDetailsOutput) ToServerEndpointDetailsPtrOutput() ServerEndpointDetailsPtrOutput

func (ServerEndpointDetailsOutput) ToServerEndpointDetailsPtrOutputWithContext

func (o ServerEndpointDetailsOutput) ToServerEndpointDetailsPtrOutputWithContext(ctx context.Context) ServerEndpointDetailsPtrOutput

func (ServerEndpointDetailsOutput) VpcEndpointId

The ID of the VPC endpoint. This property can only be used when `endpointType` is set to `VPC_ENDPOINT`

func (ServerEndpointDetailsOutput) VpcId

The VPC ID of the virtual private cloud in which the SFTP server's endpoint will be hosted. This property can only be used when `endpointType` is set to `VPC`.

type ServerEndpointDetailsPtrInput

type ServerEndpointDetailsPtrInput interface {
	pulumi.Input

	ToServerEndpointDetailsPtrOutput() ServerEndpointDetailsPtrOutput
	ToServerEndpointDetailsPtrOutputWithContext(context.Context) ServerEndpointDetailsPtrOutput
}

ServerEndpointDetailsPtrInput is an input type that accepts ServerEndpointDetailsArgs, ServerEndpointDetailsPtr and ServerEndpointDetailsPtrOutput values. You can construct a concrete instance of `ServerEndpointDetailsPtrInput` via:

        ServerEndpointDetailsArgs{...}

or:

        nil

type ServerEndpointDetailsPtrOutput

type ServerEndpointDetailsPtrOutput struct{ *pulumi.OutputState }

func (ServerEndpointDetailsPtrOutput) AddressAllocationIds

func (o ServerEndpointDetailsPtrOutput) AddressAllocationIds() pulumi.StringArrayOutput

A list of address allocation IDs that are required to attach an Elastic IP address to your SFTP server's endpoint. This property can only be used when `endpointType` is set to `VPC`.

func (ServerEndpointDetailsPtrOutput) Elem

func (ServerEndpointDetailsPtrOutput) ElementType

func (ServerEndpointDetailsPtrOutput) SecurityGroupIds added in v4.12.0

A list of security groups IDs that are available to attach to your server's endpoint. If no security groups are specified, the VPC's default security groups are automatically assigned to your endpoint. This property can only be used when `endpointType` is set to `VPC`.

func (ServerEndpointDetailsPtrOutput) SubnetIds

A list of subnet IDs that are required to host your SFTP server endpoint in your VPC. This property can only be used when `endpointType` is set to `VPC`.

func (ServerEndpointDetailsPtrOutput) ToServerEndpointDetailsPtrOutput

func (o ServerEndpointDetailsPtrOutput) ToServerEndpointDetailsPtrOutput() ServerEndpointDetailsPtrOutput

func (ServerEndpointDetailsPtrOutput) ToServerEndpointDetailsPtrOutputWithContext

func (o ServerEndpointDetailsPtrOutput) ToServerEndpointDetailsPtrOutputWithContext(ctx context.Context) ServerEndpointDetailsPtrOutput

func (ServerEndpointDetailsPtrOutput) VpcEndpointId

The ID of the VPC endpoint. This property can only be used when `endpointType` is set to `VPC_ENDPOINT`

func (ServerEndpointDetailsPtrOutput) VpcId

The VPC ID of the virtual private cloud in which the SFTP server's endpoint will be hosted. This property can only be used when `endpointType` is set to `VPC`.

type ServerInput

type ServerInput interface {
	pulumi.Input

	ToServerOutput() ServerOutput
	ToServerOutputWithContext(ctx context.Context) ServerOutput
}

type ServerMap

type ServerMap map[string]ServerInput

func (ServerMap) ElementType

func (ServerMap) ElementType() reflect.Type

func (ServerMap) ToServerMapOutput

func (i ServerMap) ToServerMapOutput() ServerMapOutput

func (ServerMap) ToServerMapOutputWithContext

func (i ServerMap) ToServerMapOutputWithContext(ctx context.Context) ServerMapOutput

type ServerMapInput

type ServerMapInput interface {
	pulumi.Input

	ToServerMapOutput() ServerMapOutput
	ToServerMapOutputWithContext(context.Context) ServerMapOutput
}

ServerMapInput is an input type that accepts ServerMap and ServerMapOutput values. You can construct a concrete instance of `ServerMapInput` via:

ServerMap{ "key": ServerArgs{...} }

type ServerMapOutput

type ServerMapOutput struct{ *pulumi.OutputState }

func (ServerMapOutput) ElementType

func (ServerMapOutput) ElementType() reflect.Type

func (ServerMapOutput) MapIndex

func (ServerMapOutput) ToServerMapOutput

func (o ServerMapOutput) ToServerMapOutput() ServerMapOutput

func (ServerMapOutput) ToServerMapOutputWithContext

func (o ServerMapOutput) ToServerMapOutputWithContext(ctx context.Context) ServerMapOutput

type ServerOutput

type ServerOutput struct{ *pulumi.OutputState }

func (ServerOutput) ElementType

func (ServerOutput) ElementType() reflect.Type

func (ServerOutput) ToServerOutput

func (o ServerOutput) ToServerOutput() ServerOutput

func (ServerOutput) ToServerOutputWithContext

func (o ServerOutput) ToServerOutputWithContext(ctx context.Context) ServerOutput

func (ServerOutput) ToServerPtrOutput

func (o ServerOutput) ToServerPtrOutput() ServerPtrOutput

func (ServerOutput) ToServerPtrOutputWithContext

func (o ServerOutput) ToServerPtrOutputWithContext(ctx context.Context) ServerPtrOutput

type ServerPtrInput

type ServerPtrInput interface {
	pulumi.Input

	ToServerPtrOutput() ServerPtrOutput
	ToServerPtrOutputWithContext(ctx context.Context) ServerPtrOutput
}

type ServerPtrOutput

type ServerPtrOutput struct{ *pulumi.OutputState }

func (ServerPtrOutput) Elem added in v4.15.0

func (o ServerPtrOutput) Elem() ServerOutput

func (ServerPtrOutput) ElementType

func (ServerPtrOutput) ElementType() reflect.Type

func (ServerPtrOutput) ToServerPtrOutput

func (o ServerPtrOutput) ToServerPtrOutput() ServerPtrOutput

func (ServerPtrOutput) ToServerPtrOutputWithContext

func (o ServerPtrOutput) ToServerPtrOutputWithContext(ctx context.Context) ServerPtrOutput

type ServerState

type ServerState struct {
	// Amazon Resource Name (ARN) of Transfer Server
	Arn pulumi.StringPtrInput
	// The Amazon Resource Name (ARN) of the AWS Certificate Manager (ACM) certificate. This is required when `protocols` is set to `FTPS`
	Certificate pulumi.StringPtrInput
	// The directory service ID of the directory service you want to connect to with an `identityProviderType` of `AWS_DIRECTORY_SERVICE`.
	DirectoryId pulumi.StringPtrInput
	// The domain of the storage system that is used for file transfers. Valid values are: `S3` and `EFS`. The default value is `S3`.
	Domain pulumi.StringPtrInput
	// The endpoint of the Transfer Server (e.g., `s-12345678.server.transfer.REGION.amazonaws.com`)
	Endpoint pulumi.StringPtrInput
	// The virtual private cloud (VPC) endpoint settings that you want to configure for your SFTP server. Fields documented below.
	EndpointDetails ServerEndpointDetailsPtrInput
	// The type of endpoint that you want your SFTP server connect to. If you connect to a `VPC` (or `VPC_ENDPOINT`), your SFTP server isn't accessible over the public internet. If you want to connect your SFTP server via public internet, set `PUBLIC`.  Defaults to `PUBLIC`.
	EndpointType pulumi.StringPtrInput
	// A boolean that indicates all users associated with the server should be deleted so that the Server can be destroyed without error. The default value is `false`. This option only applies to servers configured with a `SERVICE_MANAGED` `identityProviderType`.
	ForceDestroy pulumi.BoolPtrInput
	// RSA private key (e.g., as generated by the `ssh-keygen -N "" -m PEM -f my-new-server-key` command).
	HostKey pulumi.StringPtrInput
	// This value contains the message-digest algorithm (MD5) hash of the server's host key. This value is equivalent to the output of the `ssh-keygen -l -E md5 -f my-new-server-key` command.
	HostKeyFingerprint pulumi.StringPtrInput
	// The mode of authentication enabled for this service. The default value is `SERVICE_MANAGED`, which allows you to store and access SFTP user credentials within the service. `API_GATEWAY` indicates that user authentication requires a call to an API Gateway endpoint URL provided by you to integrate an identity provider of your choice. Using `AWS_DIRECTORY_SERVICE` will allow for authentication against AWS Managed Active Directory or Microsoft Active Directory in your on-premises environment, or in AWS using AD Connectors.
	IdentityProviderType pulumi.StringPtrInput
	// Amazon Resource Name (ARN) of the IAM role used to authenticate the user account with an `identityProviderType` of `API_GATEWAY`.
	InvocationRole pulumi.StringPtrInput
	// Amazon Resource Name (ARN) of an IAM role that allows the service to write your SFTP users’ activity to your Amazon CloudWatch logs for monitoring and auditing purposes.
	LoggingRole pulumi.StringPtrInput
	// Specifies the file transfer protocol or protocols over which your file transfer protocol client can connect to your server's endpoint. This defaults to `SFTP` . The available protocols are:
	// * `SFTP`: File transfer over SSH
	// * `FTPS`: File transfer with TLS encryption
	// * `FTP`: Unencrypted file transfer
	Protocols pulumi.StringArrayInput
	// Specifies the name of the security policy that is attached to the server. Possible values are `TransferSecurityPolicy-2018-11`, `TransferSecurityPolicy-2020-06`, and  `TransferSecurityPolicy-FIPS-2020-06`. Default value is: `TransferSecurityPolicy-2018-11`.
	SecurityPolicyName pulumi.StringPtrInput
	Tags               pulumi.StringMapInput
	// A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
	TagsAll pulumi.StringMapInput
	// - URL of the service endpoint used to authenticate users with an `identityProviderType` of `API_GATEWAY`.
	Url pulumi.StringPtrInput
}

func (ServerState) ElementType

func (ServerState) ElementType() reflect.Type

type SshKey

type SshKey struct {
	pulumi.CustomResourceState

	// The public key portion of an SSH key pair.
	Body pulumi.StringOutput `pulumi:"body"`
	// The Server ID of the Transfer Server (e.g., `s-12345678`)
	ServerId pulumi.StringOutput `pulumi:"serverId"`
	// The name of the user account that is assigned to one or more servers.
	UserName pulumi.StringOutput `pulumi:"userName"`
}

Provides a AWS Transfer User SSH Key resource.

## Example Usage

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/iam"
"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/transfer"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		exampleServer, err := transfer.NewServer(ctx, "exampleServer", &transfer.ServerArgs{
			IdentityProviderType: pulumi.String("SERVICE_MANAGED"),
			Tags: pulumi.StringMap{
				"NAME": pulumi.String("tf-acc-test-transfer-server"),
			},
		})
		if err != nil {
			return err
		}
		exampleRole, err := iam.NewRole(ctx, "exampleRole", &iam.RoleArgs{
			AssumeRolePolicy: pulumi.Any(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v", "{\n", "	\"Version\": \"2012-10-17\",\n", "	\"Statement\": [\n", "		{\n", "		\"Effect\": \"Allow\",\n", "		\"Principal\": {\n", "			\"Service\": \"transfer.amazonaws.com\"\n", "		},\n", "		\"Action\": \"sts:AssumeRole\"\n", "		}\n", "	]\n", "}\n")),
		})
		if err != nil {
			return err
		}
		exampleUser, err := transfer.NewUser(ctx, "exampleUser", &transfer.UserArgs{
			ServerId: exampleServer.ID(),
			UserName: pulumi.String("tftestuser"),
			Role:     exampleRole.Arn,
			Tags: pulumi.StringMap{
				"NAME": pulumi.String("tftestuser"),
			},
		})
		if err != nil {
			return err
		}
		_, err = transfer.NewSshKey(ctx, "exampleSshKey", &transfer.SshKeyArgs{
			ServerId: exampleServer.ID(),
			UserName: exampleUser.UserName,
			Body:     pulumi.String("... SSH key ..."),
		})
		if err != nil {
			return err
		}
		_, err = iam.NewRolePolicy(ctx, "exampleRolePolicy", &iam.RolePolicyArgs{
			Role: exampleRole.ID(),
			Policy: pulumi.Any(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v", "{\n", "	\"Version\": \"2012-10-17\",\n", "	\"Statement\": [\n", "		{\n", "			\"Sid\": \"AllowFullAccesstoS3\",\n", "			\"Effect\": \"Allow\",\n", "			\"Action\": [\n", "				\"s3:*\"\n", "			],\n", "			\"Resource\": \"*\"\n", "		}\n", "	]\n", "}\n")),
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Transfer SSH Public Key can be imported using the `server_id` and `user_name` and `ssh_public_key_id` separated by `/`.

```sh

$ pulumi import aws:transfer/sshKey:SshKey bar s-12345678/test-username/key-12345

```

func GetSshKey

func GetSshKey(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *SshKeyState, opts ...pulumi.ResourceOption) (*SshKey, error)

GetSshKey gets an existing SshKey resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewSshKey

func NewSshKey(ctx *pulumi.Context,
	name string, args *SshKeyArgs, opts ...pulumi.ResourceOption) (*SshKey, error)

NewSshKey registers a new resource with the given unique name, arguments, and options.

func (*SshKey) ElementType

func (*SshKey) ElementType() reflect.Type

func (*SshKey) ToSshKeyOutput

func (i *SshKey) ToSshKeyOutput() SshKeyOutput

func (*SshKey) ToSshKeyOutputWithContext

func (i *SshKey) ToSshKeyOutputWithContext(ctx context.Context) SshKeyOutput

func (*SshKey) ToSshKeyPtrOutput

func (i *SshKey) ToSshKeyPtrOutput() SshKeyPtrOutput

func (*SshKey) ToSshKeyPtrOutputWithContext

func (i *SshKey) ToSshKeyPtrOutputWithContext(ctx context.Context) SshKeyPtrOutput

type SshKeyArgs

type SshKeyArgs struct {
	// The public key portion of an SSH key pair.
	Body pulumi.StringInput
	// The Server ID of the Transfer Server (e.g., `s-12345678`)
	ServerId pulumi.StringInput
	// The name of the user account that is assigned to one or more servers.
	UserName pulumi.StringInput
}

The set of arguments for constructing a SshKey resource.

func (SshKeyArgs) ElementType

func (SshKeyArgs) ElementType() reflect.Type

type SshKeyArray

type SshKeyArray []SshKeyInput

func (SshKeyArray) ElementType

func (SshKeyArray) ElementType() reflect.Type

func (SshKeyArray) ToSshKeyArrayOutput

func (i SshKeyArray) ToSshKeyArrayOutput() SshKeyArrayOutput

func (SshKeyArray) ToSshKeyArrayOutputWithContext

func (i SshKeyArray) ToSshKeyArrayOutputWithContext(ctx context.Context) SshKeyArrayOutput

type SshKeyArrayInput

type SshKeyArrayInput interface {
	pulumi.Input

	ToSshKeyArrayOutput() SshKeyArrayOutput
	ToSshKeyArrayOutputWithContext(context.Context) SshKeyArrayOutput
}

SshKeyArrayInput is an input type that accepts SshKeyArray and SshKeyArrayOutput values. You can construct a concrete instance of `SshKeyArrayInput` via:

SshKeyArray{ SshKeyArgs{...} }

type SshKeyArrayOutput

type SshKeyArrayOutput struct{ *pulumi.OutputState }

func (SshKeyArrayOutput) ElementType

func (SshKeyArrayOutput) ElementType() reflect.Type

func (SshKeyArrayOutput) Index

func (SshKeyArrayOutput) ToSshKeyArrayOutput

func (o SshKeyArrayOutput) ToSshKeyArrayOutput() SshKeyArrayOutput

func (SshKeyArrayOutput) ToSshKeyArrayOutputWithContext

func (o SshKeyArrayOutput) ToSshKeyArrayOutputWithContext(ctx context.Context) SshKeyArrayOutput

type SshKeyInput

type SshKeyInput interface {
	pulumi.Input

	ToSshKeyOutput() SshKeyOutput
	ToSshKeyOutputWithContext(ctx context.Context) SshKeyOutput
}

type SshKeyMap

type SshKeyMap map[string]SshKeyInput

func (SshKeyMap) ElementType

func (SshKeyMap) ElementType() reflect.Type

func (SshKeyMap) ToSshKeyMapOutput

func (i SshKeyMap) ToSshKeyMapOutput() SshKeyMapOutput

func (SshKeyMap) ToSshKeyMapOutputWithContext

func (i SshKeyMap) ToSshKeyMapOutputWithContext(ctx context.Context) SshKeyMapOutput

type SshKeyMapInput

type SshKeyMapInput interface {
	pulumi.Input

	ToSshKeyMapOutput() SshKeyMapOutput
	ToSshKeyMapOutputWithContext(context.Context) SshKeyMapOutput
}

SshKeyMapInput is an input type that accepts SshKeyMap and SshKeyMapOutput values. You can construct a concrete instance of `SshKeyMapInput` via:

SshKeyMap{ "key": SshKeyArgs{...} }

type SshKeyMapOutput

type SshKeyMapOutput struct{ *pulumi.OutputState }

func (SshKeyMapOutput) ElementType

func (SshKeyMapOutput) ElementType() reflect.Type

func (SshKeyMapOutput) MapIndex

func (SshKeyMapOutput) ToSshKeyMapOutput

func (o SshKeyMapOutput) ToSshKeyMapOutput() SshKeyMapOutput

func (SshKeyMapOutput) ToSshKeyMapOutputWithContext

func (o SshKeyMapOutput) ToSshKeyMapOutputWithContext(ctx context.Context) SshKeyMapOutput

type SshKeyOutput

type SshKeyOutput struct{ *pulumi.OutputState }

func (SshKeyOutput) ElementType

func (SshKeyOutput) ElementType() reflect.Type

func (SshKeyOutput) ToSshKeyOutput

func (o SshKeyOutput) ToSshKeyOutput() SshKeyOutput

func (SshKeyOutput) ToSshKeyOutputWithContext

func (o SshKeyOutput) ToSshKeyOutputWithContext(ctx context.Context) SshKeyOutput

func (SshKeyOutput) ToSshKeyPtrOutput

func (o SshKeyOutput) ToSshKeyPtrOutput() SshKeyPtrOutput

func (SshKeyOutput) ToSshKeyPtrOutputWithContext

func (o SshKeyOutput) ToSshKeyPtrOutputWithContext(ctx context.Context) SshKeyPtrOutput

type SshKeyPtrInput

type SshKeyPtrInput interface {
	pulumi.Input

	ToSshKeyPtrOutput() SshKeyPtrOutput
	ToSshKeyPtrOutputWithContext(ctx context.Context) SshKeyPtrOutput
}

type SshKeyPtrOutput

type SshKeyPtrOutput struct{ *pulumi.OutputState }

func (SshKeyPtrOutput) Elem added in v4.15.0

func (o SshKeyPtrOutput) Elem() SshKeyOutput

func (SshKeyPtrOutput) ElementType

func (SshKeyPtrOutput) ElementType() reflect.Type

func (SshKeyPtrOutput) ToSshKeyPtrOutput

func (o SshKeyPtrOutput) ToSshKeyPtrOutput() SshKeyPtrOutput

func (SshKeyPtrOutput) ToSshKeyPtrOutputWithContext

func (o SshKeyPtrOutput) ToSshKeyPtrOutputWithContext(ctx context.Context) SshKeyPtrOutput

type SshKeyState

type SshKeyState struct {
	// The public key portion of an SSH key pair.
	Body pulumi.StringPtrInput
	// The Server ID of the Transfer Server (e.g., `s-12345678`)
	ServerId pulumi.StringPtrInput
	// The name of the user account that is assigned to one or more servers.
	UserName pulumi.StringPtrInput
}

func (SshKeyState) ElementType

func (SshKeyState) ElementType() reflect.Type

type User

type User struct {
	pulumi.CustomResourceState

	// Amazon Resource Name (ARN) of Transfer User
	Arn pulumi.StringOutput `pulumi:"arn"`
	// The landing directory (folder) for a user when they log in to the server using their SFTP client.  It should begin with a `/`.  The first item in the path is the name of the home bucket (accessible as `${Transfer:HomeBucket}` in the policy) and the rest is the home directory (accessible as `${Transfer:HomeDirectory}` in the policy). For example, `/example-bucket-1234/username` would set the home bucket to `example-bucket-1234` and the home directory to `username`.
	HomeDirectory pulumi.StringPtrOutput `pulumi:"homeDirectory"`
	// Logical directory mappings that specify what S3 paths and keys should be visible to your user and how you want to make them visible. See Home Directory Mappings below.
	HomeDirectoryMappings UserHomeDirectoryMappingArrayOutput `pulumi:"homeDirectoryMappings"`
	// The type of landing directory (folder) you mapped for your users' home directory. Valid values are `PATH` and `LOGICAL`.
	HomeDirectoryType pulumi.StringPtrOutput `pulumi:"homeDirectoryType"`
	// An IAM JSON policy document that scopes down user access to portions of their Amazon S3 bucket. IAM variables you can use inside this policy include `${Transfer:UserName}`, `${Transfer:HomeDirectory}`, and `${Transfer:HomeBucket}`. These are evaluated on-the-fly when navigating the bucket.
	Policy pulumi.StringPtrOutput `pulumi:"policy"`
	// Specifies the full POSIX identity, including user ID (Uid), group ID (Gid), and any secondary groups IDs (SecondaryGids), that controls your users' access to your Amazon EFS file systems. See Posix Profile below.
	PosixProfile UserPosixProfilePtrOutput `pulumi:"posixProfile"`
	// Amazon Resource Name (ARN) of an IAM role that allows the service to controls your user’s access to your Amazon S3 bucket.
	Role pulumi.StringOutput `pulumi:"role"`
	// The Server ID of the Transfer Server (e.g., `s-12345678`)
	ServerId pulumi.StringOutput `pulumi:"serverId"`
	// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapOutput `pulumi:"tags"`
	// A map of tags assigned to the resource, including those inherited from the provider.
	TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"`
	// The name used for log in to your SFTP server.
	UserName pulumi.StringOutput `pulumi:"userName"`
}

Provides a AWS Transfer User resource. Managing SSH keys can be accomplished with the `transfer.SshKey` resource.

## Example Usage

```go package main

import (

"fmt"

"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/iam"
"github.com/pulumi/pulumi-aws/sdk/v4/go/aws/transfer"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"

)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		fooServer, err := transfer.NewServer(ctx, "fooServer", &transfer.ServerArgs{
			IdentityProviderType: pulumi.String("SERVICE_MANAGED"),
			Tags: pulumi.StringMap{
				"NAME": pulumi.String("tf-acc-test-transfer-server"),
			},
		})
		if err != nil {
			return err
		}
		fooRole, err := iam.NewRole(ctx, "fooRole", &iam.RoleArgs{
			AssumeRolePolicy: pulumi.Any(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v", "{\n", "	\"Version\": \"2012-10-17\",\n", "	\"Statement\": [\n", "		{\n", "		\"Effect\": \"Allow\",\n", "		\"Principal\": {\n", "			\"Service\": \"transfer.amazonaws.com\"\n", "		},\n", "		\"Action\": \"sts:AssumeRole\"\n", "		}\n", "	]\n", "}\n")),
		})
		if err != nil {
			return err
		}
		_, err = iam.NewRolePolicy(ctx, "fooRolePolicy", &iam.RolePolicyArgs{
			Role: fooRole.ID(),
			Policy: pulumi.Any(fmt.Sprintf("%v%v%v%v%v%v%v%v%v%v%v%v%v", "{\n", "	\"Version\": \"2012-10-17\",\n", "	\"Statement\": [\n", "		{\n", "			\"Sid\": \"AllowFullAccesstoS3\",\n", "			\"Effect\": \"Allow\",\n", "			\"Action\": [\n", "				\"s3:*\"\n", "			],\n", "			\"Resource\": \"*\"\n", "		}\n", "	]\n", "}\n")),
		})
		if err != nil {
			return err
		}
		_, err = transfer.NewUser(ctx, "fooUser", &transfer.UserArgs{
			ServerId:          fooServer.ID(),
			UserName:          pulumi.String("tftestuser"),
			Role:              fooRole.Arn,
			HomeDirectoryType: pulumi.String("LOGICAL"),
			HomeDirectoryMappings: transfer.UserHomeDirectoryMappingArray{
				&transfer.UserHomeDirectoryMappingArgs{
					Entry:  pulumi.String("/test.pdf"),
					Target: pulumi.String("/bucket3/test-path/tftestuser.pdf"),
				},
			},
		})
		if err != nil {
			return err
		}
		return nil
	})
}

```

## Import

Transfer Users can be imported using the `server_id` and `user_name` separated by `/`.

```sh

$ pulumi import aws:transfer/user:User bar s-12345678/test-username

```

func GetUser

func GetUser(ctx *pulumi.Context,
	name string, id pulumi.IDInput, state *UserState, opts ...pulumi.ResourceOption) (*User, error)

GetUser gets an existing User resource's state with the given name, ID, and optional state properties that are used to uniquely qualify the lookup (nil if not required).

func NewUser

func NewUser(ctx *pulumi.Context,
	name string, args *UserArgs, opts ...pulumi.ResourceOption) (*User, error)

NewUser registers a new resource with the given unique name, arguments, and options.

func (*User) ElementType

func (*User) ElementType() reflect.Type

func (*User) ToUserOutput

func (i *User) ToUserOutput() UserOutput

func (*User) ToUserOutputWithContext

func (i *User) ToUserOutputWithContext(ctx context.Context) UserOutput

func (*User) ToUserPtrOutput

func (i *User) ToUserPtrOutput() UserPtrOutput

func (*User) ToUserPtrOutputWithContext

func (i *User) ToUserPtrOutputWithContext(ctx context.Context) UserPtrOutput

type UserArgs

type UserArgs struct {
	// The landing directory (folder) for a user when they log in to the server using their SFTP client.  It should begin with a `/`.  The first item in the path is the name of the home bucket (accessible as `${Transfer:HomeBucket}` in the policy) and the rest is the home directory (accessible as `${Transfer:HomeDirectory}` in the policy). For example, `/example-bucket-1234/username` would set the home bucket to `example-bucket-1234` and the home directory to `username`.
	HomeDirectory pulumi.StringPtrInput
	// Logical directory mappings that specify what S3 paths and keys should be visible to your user and how you want to make them visible. See Home Directory Mappings below.
	HomeDirectoryMappings UserHomeDirectoryMappingArrayInput
	// The type of landing directory (folder) you mapped for your users' home directory. Valid values are `PATH` and `LOGICAL`.
	HomeDirectoryType pulumi.StringPtrInput
	// An IAM JSON policy document that scopes down user access to portions of their Amazon S3 bucket. IAM variables you can use inside this policy include `${Transfer:UserName}`, `${Transfer:HomeDirectory}`, and `${Transfer:HomeBucket}`. These are evaluated on-the-fly when navigating the bucket.
	Policy pulumi.StringPtrInput
	// Specifies the full POSIX identity, including user ID (Uid), group ID (Gid), and any secondary groups IDs (SecondaryGids), that controls your users' access to your Amazon EFS file systems. See Posix Profile below.
	PosixProfile UserPosixProfilePtrInput
	// Amazon Resource Name (ARN) of an IAM role that allows the service to controls your user’s access to your Amazon S3 bucket.
	Role pulumi.StringInput
	// The Server ID of the Transfer Server (e.g., `s-12345678`)
	ServerId pulumi.StringInput
	// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// The name used for log in to your SFTP server.
	UserName pulumi.StringInput
}

The set of arguments for constructing a User resource.

func (UserArgs) ElementType

func (UserArgs) ElementType() reflect.Type

type UserArray

type UserArray []UserInput

func (UserArray) ElementType

func (UserArray) ElementType() reflect.Type

func (UserArray) ToUserArrayOutput

func (i UserArray) ToUserArrayOutput() UserArrayOutput

func (UserArray) ToUserArrayOutputWithContext

func (i UserArray) ToUserArrayOutputWithContext(ctx context.Context) UserArrayOutput

type UserArrayInput

type UserArrayInput interface {
	pulumi.Input

	ToUserArrayOutput() UserArrayOutput
	ToUserArrayOutputWithContext(context.Context) UserArrayOutput
}

UserArrayInput is an input type that accepts UserArray and UserArrayOutput values. You can construct a concrete instance of `UserArrayInput` via:

UserArray{ UserArgs{...} }

type UserArrayOutput

type UserArrayOutput struct{ *pulumi.OutputState }

func (UserArrayOutput) ElementType

func (UserArrayOutput) ElementType() reflect.Type

func (UserArrayOutput) Index

func (UserArrayOutput) ToUserArrayOutput

func (o UserArrayOutput) ToUserArrayOutput() UserArrayOutput

func (UserArrayOutput) ToUserArrayOutputWithContext

func (o UserArrayOutput) ToUserArrayOutputWithContext(ctx context.Context) UserArrayOutput

type UserHomeDirectoryMapping

type UserHomeDirectoryMapping struct {
	// Represents an entry and a target.
	Entry string `pulumi:"entry"`
	// Represents the map target.
	Target string `pulumi:"target"`
}

type UserHomeDirectoryMappingArgs

type UserHomeDirectoryMappingArgs struct {
	// Represents an entry and a target.
	Entry pulumi.StringInput `pulumi:"entry"`
	// Represents the map target.
	Target pulumi.StringInput `pulumi:"target"`
}

func (UserHomeDirectoryMappingArgs) ElementType

func (UserHomeDirectoryMappingArgs) ToUserHomeDirectoryMappingOutput

func (i UserHomeDirectoryMappingArgs) ToUserHomeDirectoryMappingOutput() UserHomeDirectoryMappingOutput

func (UserHomeDirectoryMappingArgs) ToUserHomeDirectoryMappingOutputWithContext

func (i UserHomeDirectoryMappingArgs) ToUserHomeDirectoryMappingOutputWithContext(ctx context.Context) UserHomeDirectoryMappingOutput

type UserHomeDirectoryMappingArray

type UserHomeDirectoryMappingArray []UserHomeDirectoryMappingInput

func (UserHomeDirectoryMappingArray) ElementType

func (UserHomeDirectoryMappingArray) ToUserHomeDirectoryMappingArrayOutput

func (i UserHomeDirectoryMappingArray) ToUserHomeDirectoryMappingArrayOutput() UserHomeDirectoryMappingArrayOutput

func (UserHomeDirectoryMappingArray) ToUserHomeDirectoryMappingArrayOutputWithContext

func (i UserHomeDirectoryMappingArray) ToUserHomeDirectoryMappingArrayOutputWithContext(ctx context.Context) UserHomeDirectoryMappingArrayOutput

type UserHomeDirectoryMappingArrayInput

type UserHomeDirectoryMappingArrayInput interface {
	pulumi.Input

	ToUserHomeDirectoryMappingArrayOutput() UserHomeDirectoryMappingArrayOutput
	ToUserHomeDirectoryMappingArrayOutputWithContext(context.Context) UserHomeDirectoryMappingArrayOutput
}

UserHomeDirectoryMappingArrayInput is an input type that accepts UserHomeDirectoryMappingArray and UserHomeDirectoryMappingArrayOutput values. You can construct a concrete instance of `UserHomeDirectoryMappingArrayInput` via:

UserHomeDirectoryMappingArray{ UserHomeDirectoryMappingArgs{...} }

type UserHomeDirectoryMappingArrayOutput

type UserHomeDirectoryMappingArrayOutput struct{ *pulumi.OutputState }

func (UserHomeDirectoryMappingArrayOutput) ElementType

func (UserHomeDirectoryMappingArrayOutput) Index

func (UserHomeDirectoryMappingArrayOutput) ToUserHomeDirectoryMappingArrayOutput

func (o UserHomeDirectoryMappingArrayOutput) ToUserHomeDirectoryMappingArrayOutput() UserHomeDirectoryMappingArrayOutput

func (UserHomeDirectoryMappingArrayOutput) ToUserHomeDirectoryMappingArrayOutputWithContext

func (o UserHomeDirectoryMappingArrayOutput) ToUserHomeDirectoryMappingArrayOutputWithContext(ctx context.Context) UserHomeDirectoryMappingArrayOutput

type UserHomeDirectoryMappingInput

type UserHomeDirectoryMappingInput interface {
	pulumi.Input

	ToUserHomeDirectoryMappingOutput() UserHomeDirectoryMappingOutput
	ToUserHomeDirectoryMappingOutputWithContext(context.Context) UserHomeDirectoryMappingOutput
}

UserHomeDirectoryMappingInput is an input type that accepts UserHomeDirectoryMappingArgs and UserHomeDirectoryMappingOutput values. You can construct a concrete instance of `UserHomeDirectoryMappingInput` via:

UserHomeDirectoryMappingArgs{...}

type UserHomeDirectoryMappingOutput

type UserHomeDirectoryMappingOutput struct{ *pulumi.OutputState }

func (UserHomeDirectoryMappingOutput) ElementType

func (UserHomeDirectoryMappingOutput) Entry

Represents an entry and a target.

func (UserHomeDirectoryMappingOutput) Target

Represents the map target.

func (UserHomeDirectoryMappingOutput) ToUserHomeDirectoryMappingOutput

func (o UserHomeDirectoryMappingOutput) ToUserHomeDirectoryMappingOutput() UserHomeDirectoryMappingOutput

func (UserHomeDirectoryMappingOutput) ToUserHomeDirectoryMappingOutputWithContext

func (o UserHomeDirectoryMappingOutput) ToUserHomeDirectoryMappingOutputWithContext(ctx context.Context) UserHomeDirectoryMappingOutput

type UserInput

type UserInput interface {
	pulumi.Input

	ToUserOutput() UserOutput
	ToUserOutputWithContext(ctx context.Context) UserOutput
}

type UserMap

type UserMap map[string]UserInput

func (UserMap) ElementType

func (UserMap) ElementType() reflect.Type

func (UserMap) ToUserMapOutput

func (i UserMap) ToUserMapOutput() UserMapOutput

func (UserMap) ToUserMapOutputWithContext

func (i UserMap) ToUserMapOutputWithContext(ctx context.Context) UserMapOutput

type UserMapInput

type UserMapInput interface {
	pulumi.Input

	ToUserMapOutput() UserMapOutput
	ToUserMapOutputWithContext(context.Context) UserMapOutput
}

UserMapInput is an input type that accepts UserMap and UserMapOutput values. You can construct a concrete instance of `UserMapInput` via:

UserMap{ "key": UserArgs{...} }

type UserMapOutput

type UserMapOutput struct{ *pulumi.OutputState }

func (UserMapOutput) ElementType

func (UserMapOutput) ElementType() reflect.Type

func (UserMapOutput) MapIndex

func (UserMapOutput) ToUserMapOutput

func (o UserMapOutput) ToUserMapOutput() UserMapOutput

func (UserMapOutput) ToUserMapOutputWithContext

func (o UserMapOutput) ToUserMapOutputWithContext(ctx context.Context) UserMapOutput

type UserOutput

type UserOutput struct{ *pulumi.OutputState }

func (UserOutput) ElementType

func (UserOutput) ElementType() reflect.Type

func (UserOutput) ToUserOutput

func (o UserOutput) ToUserOutput() UserOutput

func (UserOutput) ToUserOutputWithContext

func (o UserOutput) ToUserOutputWithContext(ctx context.Context) UserOutput

func (UserOutput) ToUserPtrOutput

func (o UserOutput) ToUserPtrOutput() UserPtrOutput

func (UserOutput) ToUserPtrOutputWithContext

func (o UserOutput) ToUserPtrOutputWithContext(ctx context.Context) UserPtrOutput

type UserPosixProfile added in v4.8.0

type UserPosixProfile struct {
	// The POSIX group ID used for all EFS operations by this user.
	Gid int `pulumi:"gid"`
	// The secondary POSIX group IDs used for all EFS operations by this user.
	SecondaryGids []int `pulumi:"secondaryGids"`
	// The POSIX user ID used for all EFS operations by this user.
	Uid int `pulumi:"uid"`
}

type UserPosixProfileArgs added in v4.8.0

type UserPosixProfileArgs struct {
	// The POSIX group ID used for all EFS operations by this user.
	Gid pulumi.IntInput `pulumi:"gid"`
	// The secondary POSIX group IDs used for all EFS operations by this user.
	SecondaryGids pulumi.IntArrayInput `pulumi:"secondaryGids"`
	// The POSIX user ID used for all EFS operations by this user.
	Uid pulumi.IntInput `pulumi:"uid"`
}

func (UserPosixProfileArgs) ElementType added in v4.8.0

func (UserPosixProfileArgs) ElementType() reflect.Type

func (UserPosixProfileArgs) ToUserPosixProfileOutput added in v4.8.0

func (i UserPosixProfileArgs) ToUserPosixProfileOutput() UserPosixProfileOutput

func (UserPosixProfileArgs) ToUserPosixProfileOutputWithContext added in v4.8.0

func (i UserPosixProfileArgs) ToUserPosixProfileOutputWithContext(ctx context.Context) UserPosixProfileOutput

func (UserPosixProfileArgs) ToUserPosixProfilePtrOutput added in v4.8.0

func (i UserPosixProfileArgs) ToUserPosixProfilePtrOutput() UserPosixProfilePtrOutput

func (UserPosixProfileArgs) ToUserPosixProfilePtrOutputWithContext added in v4.8.0

func (i UserPosixProfileArgs) ToUserPosixProfilePtrOutputWithContext(ctx context.Context) UserPosixProfilePtrOutput

type UserPosixProfileInput added in v4.8.0

type UserPosixProfileInput interface {
	pulumi.Input

	ToUserPosixProfileOutput() UserPosixProfileOutput
	ToUserPosixProfileOutputWithContext(context.Context) UserPosixProfileOutput
}

UserPosixProfileInput is an input type that accepts UserPosixProfileArgs and UserPosixProfileOutput values. You can construct a concrete instance of `UserPosixProfileInput` via:

UserPosixProfileArgs{...}

type UserPosixProfileOutput added in v4.8.0

type UserPosixProfileOutput struct{ *pulumi.OutputState }

func (UserPosixProfileOutput) ElementType added in v4.8.0

func (UserPosixProfileOutput) ElementType() reflect.Type

func (UserPosixProfileOutput) Gid added in v4.8.0

The POSIX group ID used for all EFS operations by this user.

func (UserPosixProfileOutput) SecondaryGids added in v4.8.0

func (o UserPosixProfileOutput) SecondaryGids() pulumi.IntArrayOutput

The secondary POSIX group IDs used for all EFS operations by this user.

func (UserPosixProfileOutput) ToUserPosixProfileOutput added in v4.8.0

func (o UserPosixProfileOutput) ToUserPosixProfileOutput() UserPosixProfileOutput

func (UserPosixProfileOutput) ToUserPosixProfileOutputWithContext added in v4.8.0

func (o UserPosixProfileOutput) ToUserPosixProfileOutputWithContext(ctx context.Context) UserPosixProfileOutput

func (UserPosixProfileOutput) ToUserPosixProfilePtrOutput added in v4.8.0

func (o UserPosixProfileOutput) ToUserPosixProfilePtrOutput() UserPosixProfilePtrOutput

func (UserPosixProfileOutput) ToUserPosixProfilePtrOutputWithContext added in v4.8.0

func (o UserPosixProfileOutput) ToUserPosixProfilePtrOutputWithContext(ctx context.Context) UserPosixProfilePtrOutput

func (UserPosixProfileOutput) Uid added in v4.8.0

The POSIX user ID used for all EFS operations by this user.

type UserPosixProfilePtrInput added in v4.8.0

type UserPosixProfilePtrInput interface {
	pulumi.Input

	ToUserPosixProfilePtrOutput() UserPosixProfilePtrOutput
	ToUserPosixProfilePtrOutputWithContext(context.Context) UserPosixProfilePtrOutput
}

UserPosixProfilePtrInput is an input type that accepts UserPosixProfileArgs, UserPosixProfilePtr and UserPosixProfilePtrOutput values. You can construct a concrete instance of `UserPosixProfilePtrInput` via:

        UserPosixProfileArgs{...}

or:

        nil

func UserPosixProfilePtr added in v4.8.0

func UserPosixProfilePtr(v *UserPosixProfileArgs) UserPosixProfilePtrInput

type UserPosixProfilePtrOutput added in v4.8.0

type UserPosixProfilePtrOutput struct{ *pulumi.OutputState }

func (UserPosixProfilePtrOutput) Elem added in v4.8.0

func (UserPosixProfilePtrOutput) ElementType added in v4.8.0

func (UserPosixProfilePtrOutput) ElementType() reflect.Type

func (UserPosixProfilePtrOutput) Gid added in v4.8.0

The POSIX group ID used for all EFS operations by this user.

func (UserPosixProfilePtrOutput) SecondaryGids added in v4.8.0

The secondary POSIX group IDs used for all EFS operations by this user.

func (UserPosixProfilePtrOutput) ToUserPosixProfilePtrOutput added in v4.8.0

func (o UserPosixProfilePtrOutput) ToUserPosixProfilePtrOutput() UserPosixProfilePtrOutput

func (UserPosixProfilePtrOutput) ToUserPosixProfilePtrOutputWithContext added in v4.8.0

func (o UserPosixProfilePtrOutput) ToUserPosixProfilePtrOutputWithContext(ctx context.Context) UserPosixProfilePtrOutput

func (UserPosixProfilePtrOutput) Uid added in v4.8.0

The POSIX user ID used for all EFS operations by this user.

type UserPtrInput

type UserPtrInput interface {
	pulumi.Input

	ToUserPtrOutput() UserPtrOutput
	ToUserPtrOutputWithContext(ctx context.Context) UserPtrOutput
}

type UserPtrOutput

type UserPtrOutput struct{ *pulumi.OutputState }

func (UserPtrOutput) Elem added in v4.15.0

func (o UserPtrOutput) Elem() UserOutput

func (UserPtrOutput) ElementType

func (UserPtrOutput) ElementType() reflect.Type

func (UserPtrOutput) ToUserPtrOutput

func (o UserPtrOutput) ToUserPtrOutput() UserPtrOutput

func (UserPtrOutput) ToUserPtrOutputWithContext

func (o UserPtrOutput) ToUserPtrOutputWithContext(ctx context.Context) UserPtrOutput

type UserState

type UserState struct {
	// Amazon Resource Name (ARN) of Transfer User
	Arn pulumi.StringPtrInput
	// The landing directory (folder) for a user when they log in to the server using their SFTP client.  It should begin with a `/`.  The first item in the path is the name of the home bucket (accessible as `${Transfer:HomeBucket}` in the policy) and the rest is the home directory (accessible as `${Transfer:HomeDirectory}` in the policy). For example, `/example-bucket-1234/username` would set the home bucket to `example-bucket-1234` and the home directory to `username`.
	HomeDirectory pulumi.StringPtrInput
	// Logical directory mappings that specify what S3 paths and keys should be visible to your user and how you want to make them visible. See Home Directory Mappings below.
	HomeDirectoryMappings UserHomeDirectoryMappingArrayInput
	// The type of landing directory (folder) you mapped for your users' home directory. Valid values are `PATH` and `LOGICAL`.
	HomeDirectoryType pulumi.StringPtrInput
	// An IAM JSON policy document that scopes down user access to portions of their Amazon S3 bucket. IAM variables you can use inside this policy include `${Transfer:UserName}`, `${Transfer:HomeDirectory}`, and `${Transfer:HomeBucket}`. These are evaluated on-the-fly when navigating the bucket.
	Policy pulumi.StringPtrInput
	// Specifies the full POSIX identity, including user ID (Uid), group ID (Gid), and any secondary groups IDs (SecondaryGids), that controls your users' access to your Amazon EFS file systems. See Posix Profile below.
	PosixProfile UserPosixProfilePtrInput
	// Amazon Resource Name (ARN) of an IAM role that allows the service to controls your user’s access to your Amazon S3 bucket.
	Role pulumi.StringPtrInput
	// The Server ID of the Transfer Server (e.g., `s-12345678`)
	ServerId pulumi.StringPtrInput
	// A map of tags to assign to the resource. If configured with a provider `defaultTags` configuration block, tags with matching keys will overwrite those defined at the provider-level.
	Tags pulumi.StringMapInput
	// A map of tags assigned to the resource, including those inherited from the provider.
	TagsAll pulumi.StringMapInput
	// The name used for log in to your SFTP server.
	UserName pulumi.StringPtrInput
}

func (UserState) ElementType

func (UserState) ElementType() reflect.Type

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL