transfer

package
v1.7.0 Latest Latest
Warning

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

Go to latest
Published: Oct 6, 2026 License: MIT Imports: 32 Imported by: 0

README

Transfer Family

Parity grade: A · SDK aws-sdk-go-v2/service/transfer@v1.75.4 · last audited 2026-09-20 (1940758f8)

Coverage

Metric Value
Feature families 20 (20 ok)
Known gaps 1
Deferred items 0
Resource leaks clean
Known gaps
  • StartFileTransfer.CustomHttpHeaders is accepted but not applied: the emulator never sends AS2 messages and no SDK output (ListFileTransferResults) echoes request headers, so there is nothing observable to model.

More

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrServerNotFound is returned when a Transfer server is not found.
	ErrServerNotFound = awserr.New("ResourceNotFoundException", awserr.ErrNotFound)
	// ErrUserNotFound is returned when a Transfer user is not found.
	ErrUserNotFound = awserr.New("ResourceNotFoundException", awserr.ErrNotFound)
	// ErrUserAlreadyExists is returned when a Transfer user already exists.
	ErrUserAlreadyExists = awserr.New("ResourceExistsException", awserr.ErrConflict)
	// ErrInvalidProtocol is returned when an unsupported protocol is specified.
	ErrInvalidProtocol = awserr.New(
		"InvalidRequestException: unsupported protocol",
		awserr.ErrInvalidParameter,
	)
	// ErrServerStateConflict is returned when a state transition is invalid.
	ErrServerStateConflict = awserr.New(
		"ConflictException: server is already in the requested state",
		awserr.ErrConflict,
	)
	// ErrAccessNotFound is returned when a Transfer access is not found.
	ErrAccessNotFound = awserr.New("ResourceNotFoundException", awserr.ErrNotFound)
	// ErrAccessAlreadyExists is returned when an access with the same ExternalId already exists.
	ErrAccessAlreadyExists = awserr.New("ResourceExistsException", awserr.ErrConflict)
	// ErrAgreementNotFound is returned when a Transfer agreement is not found.
	ErrAgreementNotFound = awserr.New("ResourceNotFoundException", awserr.ErrNotFound)
	// ErrConnectorNotFound is returned when a Transfer connector is not found.
	ErrConnectorNotFound = awserr.New("ResourceNotFoundException", awserr.ErrNotFound)
	// ErrProfileNotFound is returned when a Transfer profile is not found.
	ErrProfileNotFound = awserr.New("ResourceNotFoundException", awserr.ErrNotFound)
	// ErrWebAppNotFound is returned when a Transfer web app is not found.
	ErrWebAppNotFound = awserr.New("ResourceNotFoundException", awserr.ErrNotFound)
	// ErrWorkflowNotFound is returned when a Transfer workflow is not found.
	ErrWorkflowNotFound = awserr.New("ResourceNotFoundException", awserr.ErrNotFound)
	// ErrCertificateNotFound is returned when a Transfer certificate is not found.
	ErrCertificateNotFound = awserr.New("ResourceNotFoundException", awserr.ErrNotFound)
	// ErrHostKeyNotFound is returned when a Transfer host key is not found.
	ErrHostKeyNotFound = awserr.New("ResourceNotFoundException", awserr.ErrNotFound)
	// ErrSSHPublicKeyNotFound is returned when a Transfer SSH public key is not found.
	ErrSSHPublicKeyNotFound = awserr.New("ResourceNotFoundException", awserr.ErrNotFound)
	// ErrValidation is returned when a required parameter is missing or invalid.
	ErrValidation = awserr.New("InvalidRequestException", awserr.ErrInvalidParameter)
)
View Source
var ErrNilAppContext = errors.New("transfer: nil app context")

ErrNilAppContext is returned when Init is called with a nil AppContext.

View Source
var ErrSSHPublicKeyDuplicate = awserr.New("ResourceExistsException", awserr.ErrConflict)

ErrSSHPublicKeyDuplicate is returned when an SSH public key body already exists for the user.

View Source
var ErrSecurityPolicyNotFound = awserr.New("ResourceNotFoundException", awserr.ErrNotFound)

ErrSecurityPolicyNotFound is returned when a named security policy is not found.

Functions

This section is empty.

Types

type Access

type Access struct {
	CreatedAt             time.Time               `json:"created_at"`
	PosixProfile          *PosixProfile           `json:"posix_profile,omitempty"`
	Tags                  map[string]string       `json:"tags"`
	ExternalID            string                  `json:"external_id"`
	ServerID              string                  `json:"server_id"`
	Role                  string                  `json:"role"`
	HomeDir               string                  `json:"home_dir"`
	AccountID             string                  `json:"account_id"`
	Region                string                  `json:"region"`
	HomeDirectoryType     string                  `json:"home_directory_type,omitempty"`
	Policy                string                  `json:"policy,omitempty"`
	HomeDirectoryMappings []HomeDirectoryMapEntry `json:"home_directory_mappings,omitempty"`
}

Access represents an AWS Transfer access policy entry for a server.

type Agreement

type Agreement struct {
	CustomDirectories     *CustomDirectories `json:"custom_directories,omitempty"`
	CreatedAt             time.Time          `json:"created_at"`
	Tags                  map[string]string  `json:"tags"`
	AgreementID           string             `json:"agreement_id"`
	ServerID              string             `json:"server_id"`
	Description           string             `json:"description"`
	LocalProfileID        string             `json:"local_profile_id"`
	PartnerProfileID      string             `json:"partner_profile_id"`
	BaseDirectory         string             `json:"base_directory"`
	AccessRole            string             `json:"access_role"`
	AccountID             string             `json:"account_id"`
	Region                string             `json:"region"`
	Status                string             `json:"status"`
	EnforceMessageSigning string             `json:"enforce_message_signing,omitempty"`
	PreserveFilename      string             `json:"preserve_filename,omitempty"`
}

Agreement represents an AWS Transfer AS2 agreement.

type AgreementCreateExtras

type AgreementCreateExtras struct {
	CustomDirectories     *CustomDirectories
	EnforceMessageSigning string
	PreserveFilename      string
}

AgreementCreateExtras holds optional CreateAgreement fields that don't fit CreateAgreementFull's positional parameter list.

type AgreementUpdateExtras

type AgreementUpdateExtras struct {
	CustomDirectories     *CustomDirectories
	LocalProfileID        string
	PartnerProfileID      string
	BaseDirectory         string
	AccessRole            string
	EnforceMessageSigning string
	PreserveFilename      string
}

AgreementUpdateExtras holds optional UpdateAgreement fields that don't fit UpdateAgreement's positional parameter list.

type AsyncOperationRecord

type AsyncOperationRecord struct {
	CreatedAt   time.Time `json:"created_at"`
	ID          string    `json:"id"`
	ConnectorID string    `json:"connector_id"`
	Status      string    `json:"status"`
	Type        string    `json:"type"`
}

AsyncOperationRecord stores state for async connector operations (directory listing, delete, move).

type Certificate

type Certificate struct {
	NotBeforeDate    time.Time         `json:"not_before_date,omitzero"`
	NotAfterDate     time.Time         `json:"not_after_date,omitzero"`
	ActiveDate       time.Time         `json:"active_date,omitzero"`
	InactiveDate     time.Time         `json:"inactive_date,omitzero"`
	CreatedAt        time.Time         `json:"created_at"`
	Tags             map[string]string `json:"tags"`
	CertificateID    string            `json:"certificate_id"`
	Description      string            `json:"description"`
	Usage            string            `json:"usage"`
	Body             string            `json:"body"`
	CertificateChain string            `json:"certificate_chain,omitempty"`
	Serial           string            `json:"serial,omitempty"`
	Status           string            `json:"status"`
	AccountID        string            `json:"account_id"`
	Region           string            `json:"region"`
	HasPrivateKey    bool              `json:"has_private_key,omitempty"`
}

Certificate represents an imported AWS Transfer certificate.

type Connector

type Connector struct {
	SftpConfig         *ConnectorSftpConfig   `json:"sftp_config,omitempty"`
	As2Config          *ConnectorAs2Config    `json:"as2_config,omitempty"`
	EgressConfig       *ConnectorEgressConfig `json:"egress_config,omitempty"`
	CreatedAt          time.Time              `json:"created_at"`
	Tags               map[string]string      `json:"tags"`
	ConnectorID        string                 `json:"connector_id"`
	URL                string                 `json:"url"`
	AccessRole         string                 `json:"access_role"`
	AccountID          string                 `json:"account_id"`
	Region             string                 `json:"region"`
	LoggingRole        string                 `json:"logging_role,omitempty"`
	SecurityPolicyName string                 `json:"security_policy_name,omitempty"`
	IPAddressType      string                 `json:"ip_address_type,omitempty"`
}

Connector represents an AWS Transfer connector used to initiate file transfers.

type ConnectorAs2Config

type ConnectorAs2Config struct {
	LocalProfileID      string `json:"local_profile_id,omitempty"`
	PartnerProfileID    string `json:"partner_profile_id,omitempty"`
	SigningAlgorithm    string `json:"signing_algorithm,omitempty"`
	EncryptionAlgorithm string `json:"encryption_algorithm,omitempty"`
	MdnSigningAlgorithm string `json:"mdn_signing_algorithm,omitempty"`
	MdnResponse         string `json:"mdn_response,omitempty"`
	MessageSubject      string `json:"message_subject,omitempty"`
	Compression         string `json:"compression,omitempty"`
}

ConnectorAs2Config holds AS2-specific connector configuration.

type ConnectorEgressConfig

type ConnectorEgressConfig struct {
	VpcLattice *ConnectorVpcLatticeEgress `json:"VpcLattice,omitempty"`
}

ConnectorEgressConfig is the egress union of a connector.

type ConnectorSftpConfig

type ConnectorSftpConfig struct {
	UserSecretID    string   `json:"user_secret_id,omitempty"`
	TrustedHostKeys []string `json:"trusted_host_keys,omitempty"`
}

ConnectorSftpConfig holds SFTP-specific connector configuration.

type ConnectorVpcLatticeEgress

type ConnectorVpcLatticeEgress struct {
	ResourceConfigurationArn string `json:"ResourceConfigurationArn"`
	PortNumber               int32  `json:"PortNumber,omitempty"`
}

ConnectorVpcLatticeEgress is the VPC_LATTICE egress configuration of a connector.

type CopyStepDetails

type CopyStepDetails struct {
	DestinationFileLocation map[string]any `json:"destination_file_location,omitempty"`
	Name                    string         `json:"name,omitempty"`
	SourceFileLocation      string         `json:"source_file_location,omitempty"`
	OverwriteExisting       string         `json:"overwrite_existing,omitempty"`
}

CopyStepDetails holds details for a Copy workflow step.

type CreateAccessInput

type CreateAccessInput struct {
	PosixProfile          *PosixProfile
	Tags                  map[string]string
	ServerID              string
	ExternalID            string
	Role                  string
	HomeDir               string
	HomeDirectoryType     string
	Policy                string
	HomeDirectoryMappings []HomeDirectoryMapEntry
}

CreateAccessInput holds all optional fields for CreateAccess.

type CreateConnectorInput

type CreateConnectorInput struct {
	SftpConfig         *ConnectorSftpConfig
	As2Config          *ConnectorAs2Config
	EgressConfig       *ConnectorEgressConfig
	Tags               map[string]string
	URL                string
	AccessRole         string
	LoggingRole        string
	SecurityPolicyName string
	IPAddressType      string
}

CreateConnectorInput holds all fields for CreateConnector.

type CreateProfileInput

type CreateProfileInput struct {
	Tags           map[string]string
	ProfileType    string
	As2ID          string
	CertificateIDs []string
}

CreateProfileInput holds the CreateProfile members.

type CreateServerInput

type CreateServerInput struct {
	IdentityProviderDetails       *IdentityProviderDetails
	EndpointDetails               *EndpointDetails
	ProtocolDetails               *ProtocolDetails
	WorkflowDetails               *WorkflowDetails
	S3StorageOptions              *S3StorageOptions
	Protocols                     []string
	Tags                          map[string]string
	IdentityProviderType          string
	EndpointType                  string
	LoggingRole                   string
	PreAuthenticationLoginBanner  string
	PostAuthenticationLoginBanner string
	HostKey                       string
	Certificate                   string
	Domain                        string
	SecurityPolicyName            string
	IPAddressType                 string
	StructuredLogDestinations     []string
}

CreateServerInput holds all optional fields for CreateServer.

type CreateUserInput

type CreateUserInput struct {
	PosixProfile          *PosixProfile
	Tags                  map[string]string
	ServerID              string
	UserName              string
	HomeDir               string
	Role                  string
	HomeDirectoryType     string
	Policy                string
	HomeDirectoryMappings []HomeDirectoryMapEntry
}

CreateUserInput holds all optional fields for CreateUser.

type CreateWebAppInput added in v1.2.0

type CreateWebAppInput struct {
	IdentityCenterConfig *WebAppIdentityCenterConfig
	VpcConfig            *WebAppVpcConfig
	Tags                 map[string]string
	AccessEndpoint       string
	WebAppEndpointPolicy string
	WebAppUnits          int32
}

CreateWebAppInput holds all fields for CreateWebApp.

type CustomDirectories

type CustomDirectories struct {
	FailedFilesDirectory    string `json:"FailedFilesDirectory"`
	MdnFilesDirectory       string `json:"MdnFilesDirectory"`
	PayloadFilesDirectory   string `json:"PayloadFilesDirectory"`
	StatusFilesDirectory    string `json:"StatusFilesDirectory"`
	TemporaryFilesDirectory string `json:"TemporaryFilesDirectory"`
}

CustomDirectories holds the S3 locations for AS2 message file types.

type CustomStepDetails

type CustomStepDetails struct {
	Name               string `json:"name,omitempty"`
	Target             string `json:"target,omitempty"`
	SourceFileLocation string `json:"source_file_location,omitempty"`
	Timeout            int32  `json:"timeout,omitempty"`
}

CustomStepDetails holds details for a Custom workflow step.

type DecryptStepDetails

type DecryptStepDetails struct {
	DestinationFileLocation map[string]any `json:"destination_file_location,omitempty"`
	Name                    string         `json:"name,omitempty"`
	Type                    string         `json:"type,omitempty"`
	SourceFileLocation      string         `json:"source_file_location,omitempty"`
	OverwriteExisting       string         `json:"overwrite_existing,omitempty"`
}

DecryptStepDetails holds details for a Decrypt workflow step.

type DeleteStepDetails

type DeleteStepDetails struct {
	Name               string `json:"name,omitempty"`
	SourceFileLocation string `json:"source_file_location,omitempty"`
}

DeleteStepDetails holds details for a Delete workflow step.

type EndpointDetails

type EndpointDetails struct {
	VpcEndpointID        string   `json:"vpc_endpoint_id,omitempty"`
	VpcID                string   `json:"vpc_id,omitempty"`
	AddressAllocationIDs []string `json:"address_allocation_ids,omitempty"`
	SubnetIDs            []string `json:"subnet_ids,omitempty"`
	SecurityGroupIDs     []string `json:"security_group_ids,omitempty"`
}

EndpointDetails holds VPC endpoint configuration for a Transfer server.

type Execution

type Execution struct {
	InitialFileLocation map[string]any    `json:"initial_file_location,omitempty"`
	CurrentStep         *WorkflowStep     `json:"current_step,omitempty"`
	PendingTokens       map[string]string `json:"pending_tokens,omitempty"` // token -> stepName
	CreatedAt           time.Time         `json:"created_at"`
	ExecutionID         string            `json:"execution_id"`
	WorkflowID          string            `json:"workflow_id"`
	Status              string            `json:"status"` // "IN_PROGRESS", "COMPLETED", "EXCEPTION", "HANDLING_EXCEPTION"
}

Execution represents the lifecycle of a workflow execution.

type FileTransferResult

type FileTransferResult struct {
	CreatedAt   time.Time `json:"created_at"`
	TransferID  string    `json:"transfer_id"`
	ConnectorID string    `json:"connector_id"`
	Status      string    `json:"status"`
	Files       []string  `json:"files,omitempty"`
}

FileTransferResult stores state for a file transfer operation started via StartFileTransfer.

type Handler

type Handler struct {
	Backend StorageBackend
	// contains filtered or unexported fields
}

Handler is the Echo HTTP handler for AWS Transfer Family operations.

func NewHandler

func NewHandler(backend StorageBackend) *Handler

NewHandler creates a new Transfer handler.

func (*Handler) BackendFor

func (h *Handler) BackendFor(region string) StorageBackend

BackendFor returns the backend serving region: the home backend, or the sibling built on first use.

func (*Handler) ChaosOperations

func (h *Handler) ChaosOperations() []string

ChaosOperations returns all operations that can be fault-injected.

func (*Handler) ChaosRegions

func (h *Handler) ChaosRegions() []string

ChaosRegions returns all regions this Transfer instance handles.

func (*Handler) ChaosServiceName

func (h *Handler) ChaosServiceName() string

ChaosServiceName returns the lowercase AWS service name for fault rule matching.

func (*Handler) EnableRegions

func (h *Handler) EnableRegions(ctx context.Context)

EnableRegions makes h serve every other region through lazily built per-region siblings whose timers run under ctx.

func (*Handler) ExtractOperation

func (h *Handler) ExtractOperation(c *echo.Context) string

ExtractOperation extracts the Transfer action from the X-Amz-Target header.

func (*Handler) ExtractResource

func (h *Handler) ExtractResource(c *echo.Context) string

ExtractResource extracts the resource identifier from the request body.

func (*Handler) GetSupportedOperations

func (h *Handler) GetSupportedOperations() []string

GetSupportedOperations returns the list of supported Transfer operations.

func (*Handler) Handler

func (h *Handler) Handler() echo.HandlerFunc

Handler returns the Echo handler function for Transfer requests.

func (*Handler) MatchPriority

func (h *Handler) MatchPriority() int

MatchPriority returns the routing priority.

func (*Handler) Name

func (h *Handler) Name() string

Name returns the service name.

func (*Handler) RegionBackends

func (h *Handler) RegionBackends() []StorageBackend

RegionBackends returns the home backend followed by every sibling built so far.

func (*Handler) RegionHandler

func (h *Handler) RegionHandler(region string) *Handler

RegionHandler returns the handler serving region: h itself for the home region, else its sibling.

func (*Handler) Reset

func (h *Handler) Reset()

Reset clears the handler state and rebuilds the dispatch table.

func (*Handler) Restore

func (h *Handler) Restore(ctx context.Context, data []byte) error

Restore implements persistence.Persistable.

func (*Handler) RouteMatcher

func (h *Handler) RouteMatcher() service.Matcher

RouteMatcher returns a function that matches Transfer API requests.

func (*Handler) Shutdown

func (h *Handler) Shutdown(_ context.Context)

Shutdown stops the backend's scheduled server state-transition timers so no timer goroutine outlives the service. Invoked on server shutdown via service.Shutdowner.

func (*Handler) Snapshot

func (h *Handler) Snapshot(ctx context.Context) []byte

Snapshot implements persistence.Persistable; other regions ride in an additive "regions" key.

type HomeDirectoryMapEntry

type HomeDirectoryMapEntry struct {
	Entry  string `json:"entry"`
	Target string `json:"target"`
	Type   string `json:"type,omitempty"`
}

HomeDirectoryMapEntry holds a single logical directory mapping.

type HostKey

type HostKey struct {
	CreatedAt   time.Time         `json:"created_at"`
	Tags        map[string]string `json:"tags"`
	HostKeyID   string            `json:"host_key_id"`
	ServerID    string            `json:"server_id"`
	Description string            `json:"description"`
	Fingerprint string            `json:"fingerprint,omitempty"`
	Type        string            `json:"type"`
	Value       string            `json:"value"`
	AccountID   string            `json:"account_id"`
	Region      string            `json:"region"`
}

HostKey represents an SSH host key associated with a Transfer server.

type IdentityProviderDetails

type IdentityProviderDetails struct {
	URL                       string `json:"url,omitempty"`
	InvocationRole            string `json:"invocation_role,omitempty"`
	DirectoryID               string `json:"directory_id,omitempty"`
	Function                  string `json:"function,omitempty"`
	SftpAuthenticationMethods string `json:"sftp_authentication_methods,omitempty"`
}

IdentityProviderDetails holds identity provider configuration for a Transfer server.

type ImportCertificateInput added in v1.2.0

type ImportCertificateInput struct {
	NotBefore        time.Time
	NotAfter         time.Time
	ActiveDate       time.Time
	InactiveDate     time.Time
	Tags             map[string]string
	Usage            string
	Body             string
	Description      string
	CertificateChain string
	PrivateKey       string
}

ImportCertificateInput holds all fields for ImportCertificate.

type InMemoryBackend

type InMemoryBackend struct {
	// contains filtered or unexported fields
}

InMemoryBackend is the in-memory store for Transfer resources.

func NewInMemoryBackend

func NewInMemoryBackend(ctx context.Context, accountID, region string) *InMemoryBackend

NewInMemoryBackend creates a new InMemoryBackend.

func (*InMemoryBackend) AccountID

func (b *InMemoryBackend) AccountID() string

AccountID returns the AWS account ID for this backend.

func (*InMemoryBackend) AddCertificateInternal

func (b *InMemoryBackend) AddCertificateInternal(certID string)

AddCertificateInternal seeds a certificate for testing purposes.

func (*InMemoryBackend) AddConnectorInternal

func (b *InMemoryBackend) AddConnectorInternal(connectorID, url string)

AddConnectorInternal seeds a connector for testing purposes.

func (*InMemoryBackend) AddProfileInternal

func (b *InMemoryBackend) AddProfileInternal(profileID, profileType string)

AddProfileInternal seeds a profile for testing purposes.

func (*InMemoryBackend) AddServerInternal

func (b *InMemoryBackend) AddServerInternal(serverID string)

AddServerInternal seeds a server for testing purposes.

func (*InMemoryBackend) AddWebAppInternal

func (b *InMemoryBackend) AddWebAppInternal(webAppID string)

AddWebAppInternal seeds a web app for testing purposes.

func (*InMemoryBackend) AddWorkflowInternal

func (b *InMemoryBackend) AddWorkflowInternal(workflowID string)

AddWorkflowInternal seeds a workflow for testing purposes.

func (*InMemoryBackend) Close

func (b *InMemoryBackend) Close()

Close stops all scheduled server state-transition timers so none outlives the backend. It is safe to call multiple times.

func (*InMemoryBackend) CountUserSSHPublicKeys

func (b *InMemoryBackend) CountUserSSHPublicKeys(serverID, userName string) int

CountUserSSHPublicKeys returns the number of SSH public keys for the given user on a server.

func (*InMemoryBackend) CreateAccess

func (b *InMemoryBackend) CreateAccess(
	serverID, externalID, role, homeDir string,
	tags map[string]string,
) (*Access, error)

CreateAccess creates an access policy entry on an existing server.

func (*InMemoryBackend) CreateAccessFull

func (b *InMemoryBackend) CreateAccessFull(in *CreateAccessInput) (*Access, error)

CreateAccessFull creates an access entry with full configuration.

func (*InMemoryBackend) CreateAgreement

func (b *InMemoryBackend) CreateAgreement(
	serverID, description, localProfileID, partnerProfileID, baseDirectory, accessRole string,
	tags map[string]string,
) (*Agreement, error)

CreateAgreement creates an AS2 agreement on an existing server.

func (*InMemoryBackend) CreateAgreementFull

func (b *InMemoryBackend) CreateAgreementFull(
	serverID, description, localProfileID, partnerProfileID, baseDirectory, accessRole, status string,
	tags map[string]string,
	extras ...AgreementCreateExtras,
) (*Agreement, error)

CreateAgreementFull creates an AS2 agreement with an explicit initial status.

func (*InMemoryBackend) CreateConnector

func (b *InMemoryBackend) CreateConnector(
	url, accessRole string,
	sftpConfig *ConnectorSftpConfig,
	as2Config *ConnectorAs2Config,
	tags map[string]string,
) (*Connector, error)

CreateConnector creates a Transfer connector. URL is required.

func (*InMemoryBackend) CreateConnectorFull

func (b *InMemoryBackend) CreateConnectorFull(in *CreateConnectorInput) (*Connector, error)

CreateConnectorFull creates a Transfer connector with full configuration.

func (*InMemoryBackend) CreateExecution

func (b *InMemoryBackend) CreateExecution(workflowID string) (*Execution, error)

CreateExecution creates a new execution for a workflow.

func (*InMemoryBackend) CreateProfile

func (b *InMemoryBackend) CreateProfile(
	profileType, as2ID string,
	tags map[string]string,
) (*Profile, error)

CreateProfile creates an AS2 profile. ProfileType must be LOCAL or PARTNER.

func (*InMemoryBackend) CreateProfileFull

func (b *InMemoryBackend) CreateProfileFull(in *CreateProfileInput) (*Profile, error)

CreateProfileFull creates an AS2 profile with certificates.

func (*InMemoryBackend) CreateServer

func (b *InMemoryBackend) CreateServer(
	protocols []string,
	tags map[string]string,
) (*Server, error)

CreateServer creates a new Transfer Family server.

func (*InMemoryBackend) CreateServerFull

func (b *InMemoryBackend) CreateServerFull(in *CreateServerInput) (*Server, error)

func (*InMemoryBackend) CreateUser

func (b *InMemoryBackend) CreateUser(
	serverID, userName, homeDir, role string,
	tags map[string]string,
) (*User, error)

CreateUser creates a user on the given server.

func (*InMemoryBackend) CreateUserFull

func (b *InMemoryBackend) CreateUserFull(in *CreateUserInput) (*User, error)

CreateUserFull creates a user on the given server with full configuration.

func (*InMemoryBackend) CreateWebApp

func (b *InMemoryBackend) CreateWebApp(in *CreateWebAppInput) (*WebApp, error)

CreateWebApp creates a Transfer web application. IdentityCenterConfig is required by real AWS (CreateWebAppInput.IdentityProviderDetails is a required member, and IdentityCenterConfig is the only identity-provider type web apps support).

func (*InMemoryBackend) CreateWorkflow

func (b *InMemoryBackend) CreateWorkflow(
	description string,
	steps []WorkflowStep,
	onExceptionSteps []WorkflowStep,
	tags map[string]string,
) (*Workflow, error)

CreateWorkflow creates a Transfer workflow.

func (*InMemoryBackend) DeleteAccess

func (b *InMemoryBackend) DeleteAccess(serverID, externalID string) error

DeleteAccess removes an access entry from a server.

func (*InMemoryBackend) DeleteAgreement

func (b *InMemoryBackend) DeleteAgreement(serverID, agreementID string) error

DeleteAgreement removes an AS2 agreement from a server.

func (*InMemoryBackend) DeleteCertificate

func (b *InMemoryBackend) DeleteCertificate(certificateID string) error

DeleteCertificate removes a certificate by ID.

func (*InMemoryBackend) DeleteConnector

func (b *InMemoryBackend) DeleteConnector(connectorID string) error

DeleteConnector removes a connector by ID.

func (*InMemoryBackend) DeleteHostKey

func (b *InMemoryBackend) DeleteHostKey(serverID, hostKeyID string) error

DeleteHostKey removes a host key from a server.

func (*InMemoryBackend) DeleteProfile

func (b *InMemoryBackend) DeleteProfile(profileID string) error

DeleteProfile removes a profile by ID.

func (*InMemoryBackend) DeleteSSHPublicKey

func (b *InMemoryBackend) DeleteSSHPublicKey(serverID, userName, sshPublicKeyID string) error

DeleteSSHPublicKey removes an SSH public key from a user on a server.

func (*InMemoryBackend) DeleteServer

func (b *InMemoryBackend) DeleteServer(serverID string) error

DeleteServer removes a server and all of its associated resources (users, accesses, agreements, SSH keys, and host keys). Real DeleteServer has no state precondition -- terraform-provider-aws destroys aws_transfer_server by calling only DescribeServer then DeleteServer (confirmed via TF_LOG=trace on an actual apply/destroy), never StopServer, and would never be able to destroy a normal (ONLINE) server if AWS required OFFLINE first. A prior version of this backend invented that requirement; removed.

func (*InMemoryBackend) DeleteUser

func (b *InMemoryBackend) DeleteUser(serverID, userName string) error

DeleteUser removes a user from the given server and also deletes all SSH public keys for that user.

func (*InMemoryBackend) DeleteWebApp

func (b *InMemoryBackend) DeleteWebApp(webAppID string) error

DeleteWebApp removes a web app by ID.

func (*InMemoryBackend) DeleteWebAppCustomization

func (b *InMemoryBackend) DeleteWebAppCustomization(webAppID string) error

DeleteWebAppCustomization clears the customization for a web app.

func (*InMemoryBackend) DeleteWorkflow

func (b *InMemoryBackend) DeleteWorkflow(workflowID string) error

DeleteWorkflow removes a workflow by ID.

func (*InMemoryBackend) DescribeAccess

func (b *InMemoryBackend) DescribeAccess(serverID, externalID string) (*Access, error)

DescribeAccess returns an access entry from a server.

func (*InMemoryBackend) DescribeAgreement

func (b *InMemoryBackend) DescribeAgreement(serverID, agreementID string) (*Agreement, error)

DescribeAgreement returns an agreement from a server.

func (*InMemoryBackend) DescribeCertificate

func (b *InMemoryBackend) DescribeCertificate(certificateID string) (*Certificate, error)

DescribeCertificate returns a certificate by ID.

func (*InMemoryBackend) DescribeConnector

func (b *InMemoryBackend) DescribeConnector(connectorID string) (*Connector, error)

DescribeConnector returns a connector by ID.

func (*InMemoryBackend) DescribeExecution

func (b *InMemoryBackend) DescribeExecution(workflowID, executionID string) (*Execution, error)

DescribeExecution returns an execution for a workflow.

func (*InMemoryBackend) DescribeHostKey

func (b *InMemoryBackend) DescribeHostKey(serverID, hostKeyID string) (*HostKey, error)

DescribeHostKey returns a host key from a server.

func (*InMemoryBackend) DescribeProfile

func (b *InMemoryBackend) DescribeProfile(profileID string) (*Profile, error)

DescribeProfile returns a profile by ID.

func (*InMemoryBackend) DescribeServer

func (b *InMemoryBackend) DescribeServer(serverID string) (*Server, error)

DescribeServer returns the server with the given ID.

func (*InMemoryBackend) DescribeUser

func (b *InMemoryBackend) DescribeUser(serverID, userName string) (*User, error)

DescribeUser returns the user with the given name on the given server.

func (*InMemoryBackend) DescribeWebApp

func (b *InMemoryBackend) DescribeWebApp(webAppID string) (*WebApp, error)

DescribeWebApp returns a web app by ID.

func (*InMemoryBackend) DescribeWebAppCustomization

func (b *InMemoryBackend) DescribeWebAppCustomization(webAppID string) (*WebAppCustomization, error)

DescribeWebAppCustomization returns the customization for a web app. Returns empty customization (not an error) when none has been set.

func (*InMemoryBackend) DescribeWorkflow

func (b *InMemoryBackend) DescribeWorkflow(workflowID string) (*Workflow, error)

DescribeWorkflow returns a workflow by ID.

func (*InMemoryBackend) GetFileTransferResult added in v1.5.0

func (b *InMemoryBackend) GetFileTransferResult(connectorID, transferID string) *FileTransferResult

GetFileTransferResult returns the transfer record identified by connectorID and transferID, or nil if no such transfer exists. ListFileTransferResults (the real op) is scoped to exactly one transfer -- both ConnectorId and TransferId are required members -- unlike ListFileFileTransferResults above, which lists every transfer for a connector for internal/persistence use.

func (*InMemoryBackend) ImportCertificate

func (b *InMemoryBackend) ImportCertificate(
	usage, body, description string,
	notBefore, notAfter time.Time,
	tags map[string]string,
) (*Certificate, error)

ImportCertificate imports a certificate. NotBefore/NotAfter are optional; zero values use defaults (now and +1 year). If Body is a valid PEM certificate, NotBefore/NotAfter/Serial are extracted from it.

func (*InMemoryBackend) ImportCertificateFull added in v1.2.0

func (b *InMemoryBackend) ImportCertificateFull(in *ImportCertificateInput) (*Certificate, error)

ImportCertificateFull imports a certificate with full configuration, including the real-AWS ActiveDate/InactiveDate/CertificateChain fields.

func (*InMemoryBackend) ImportHostKey

func (b *InMemoryBackend) ImportHostKey(
	serverID, hostKeyBody, description string,
	tags map[string]string,
) (*HostKey, error)

ImportHostKey imports a host key onto a server.

func (*InMemoryBackend) ImportSSHPublicKey

func (b *InMemoryBackend) ImportSSHPublicKey(
	serverID, userName, sshPublicKeyBody string,
) (*SSHPublicKey, error)

ImportSSHPublicKey imports an SSH public key for a user on a server.

func (*InMemoryBackend) ListAccesses

func (b *InMemoryBackend) ListAccesses(serverID string) ([]*Access, error)

ListAccesses returns all accesses on a server sorted by externalID.

func (*InMemoryBackend) ListAgreements

func (b *InMemoryBackend) ListAgreements(serverID string) ([]*Agreement, error)

ListAgreements returns all agreements on a server sorted by agreementID.

func (*InMemoryBackend) ListCertificates

func (b *InMemoryBackend) ListCertificates() []*Certificate

ListCertificates returns all certificates sorted by certificateID.

func (*InMemoryBackend) ListConnectors

func (b *InMemoryBackend) ListConnectors() []*Connector

ListConnectors returns all connectors sorted by connectorID.

func (*InMemoryBackend) ListExecutions

func (b *InMemoryBackend) ListExecutions(workflowID string) ([]*Execution, error)

ListExecutions returns all executions for a workflow sorted by executionID.

func (*InMemoryBackend) ListFileFileTransferResults

func (b *InMemoryBackend) ListFileFileTransferResults(connectorID string) []*FileTransferResult

ListFileFileTransferResults returns all transfer records for a connector.

func (*InMemoryBackend) ListHostKeys

func (b *InMemoryBackend) ListHostKeys(serverID string) ([]*HostKey, error)

ListHostKeys returns all host keys on a server sorted by hostKeyID.

func (*InMemoryBackend) ListProfiles

func (b *InMemoryBackend) ListProfiles() []*Profile

ListProfiles returns all profiles sorted by profileID.

func (*InMemoryBackend) ListSSHPublicKeys

func (b *InMemoryBackend) ListSSHPublicKeys(serverID, userName string) []*SSHPublicKey

ListSSHPublicKeys returns all SSH public keys for a user on a server.

func (*InMemoryBackend) ListServers

func (b *InMemoryBackend) ListServers() []Server

ListServers returns all servers sorted by ServerId (ascending, deterministic).

func (*InMemoryBackend) ListTagsForResource

func (b *InMemoryBackend) ListTagsForResource(resourceARN string) map[string]string

ListTagsForResource returns tags for a resource identified by its ARN.

func (*InMemoryBackend) ListUsers

func (b *InMemoryBackend) ListUsers(serverID string) ([]User, error)

ListUsers returns all users on a server sorted by username.

func (*InMemoryBackend) ListWebApps

func (b *InMemoryBackend) ListWebApps() []*WebApp

ListWebApps returns all web apps sorted by webAppID.

func (*InMemoryBackend) ListWorkflows

func (b *InMemoryBackend) ListWorkflows() []*Workflow

ListWorkflows returns all workflows sorted by workflowID.

func (*InMemoryBackend) Region

func (b *InMemoryBackend) Region() string

Region returns the AWS region for this backend.

func (*InMemoryBackend) Reset

func (b *InMemoryBackend) Reset()

Reset clears all stored resources, returning the backend to a clean state.

func (*InMemoryBackend) Restore

func (b *InMemoryBackend) Restore(ctx context.Context, data []byte) error

Restore loads backend state from a JSON snapshot. It implements persistence.Persistable.

func (*InMemoryBackend) SendWorkflowStepStateRecord

func (b *InMemoryBackend) SendWorkflowStepStateRecord(workflowID, executionID, token, status string) error

SendWorkflowStepStateRecord advances an execution by matching a token. Status must be "SUCCESS" or "FAILURE" per AWS API contract (types.CustomStepStatus).

func (*InMemoryBackend) ServerUserCount

func (b *InMemoryBackend) ServerUserCount(serverID string) int

ServerUserCount returns the number of users on the given server. Returns 0 if the server does not exist.

func (*InMemoryBackend) Snapshot

func (b *InMemoryBackend) Snapshot(ctx context.Context) []byte

Snapshot serialises the backend state to JSON. It implements persistence.Persistable.

func (*InMemoryBackend) StartAsyncOperationRecord

func (b *InMemoryBackend) StartAsyncOperationRecord(connectorID, opType string) string

StartAsyncOperationRecord persists an async operation record and returns the operationID.

func (*InMemoryBackend) StartFileFileTransferResult

func (b *InMemoryBackend) StartFileFileTransferResult(connectorID string, files []string) string

StartFileFileTransferResult persists a transfer record and returns the transferID.

func (*InMemoryBackend) StartServer

func (b *InMemoryBackend) StartServer(serverID string) error

StartServer transitions a server to ONLINE state (via STARTING). Calling StartServer on an already-ONLINE server is idempotent (no-op, no error).

func (*InMemoryBackend) StopServer

func (b *InMemoryBackend) StopServer(serverID string) error

StopServer transitions a server to OFFLINE state (via STOPPING). Calling StopServer on an already-OFFLINE server is idempotent (no-op, no error).

func (*InMemoryBackend) TagResource

func (b *InMemoryBackend) TagResource(resourceARN string, tags map[string]string) error

TagResource applies tags to a resource identified by its ARN.

func (*InMemoryBackend) TaggedResources added in v1.3.1

func (b *InMemoryBackend) TaggedResources() []TaggedEntry

TaggedResources returns every Transfer Family resource ARN (servers, users, connectors, certificates, profiles, web apps, workflows, agreements, host keys) that currently has at least one tag applied via TagResource.

func (*InMemoryBackend) TestIdentityProvider

func (b *InMemoryBackend) TestIdentityProvider(serverID, userName string) (int, string)

TestIdentityProvider tests the identity provider for a server.

func (*InMemoryBackend) UntagResource

func (b *InMemoryBackend) UntagResource(resourceARN string, tagKeys []string) error

UntagResource removes tag keys from a resource identified by its ARN.

func (*InMemoryBackend) UpdateAccess

func (b *InMemoryBackend) UpdateAccess(
	serverID, externalID, role, homeDir string,
) (*Access, error)

UpdateAccess updates mutable fields on an access entry.

func (*InMemoryBackend) UpdateAccessFull

func (b *InMemoryBackend) UpdateAccessFull(in *UpdateAccessInput) (*Access, error)

UpdateAccessFull updates all mutable fields on an access entry.

func (*InMemoryBackend) UpdateAgreement

func (b *InMemoryBackend) UpdateAgreement(
	serverID, agreementID, description, status string,
	extras ...AgreementUpdateExtras,
) (*Agreement, error)

UpdateAgreement updates mutable fields on an agreement.

func (*InMemoryBackend) UpdateCertificate

func (b *InMemoryBackend) UpdateCertificate(
	certificateID, description string,
) (*Certificate, error)

UpdateCertificate updates mutable fields on a certificate.

func (*InMemoryBackend) UpdateCertificateFull added in v1.2.0

func (b *InMemoryBackend) UpdateCertificateFull(in *UpdateCertificateInput) (*Certificate, error)

UpdateCertificateFull updates all mutable fields on a certificate, including the real-AWS ActiveDate/InactiveDate fields (recomputes Status when either changes).

func (*InMemoryBackend) UpdateConnector

func (b *InMemoryBackend) UpdateConnector(
	connectorID, url, accessRole string,
	sftpConfig *ConnectorSftpConfig,
	as2Config *ConnectorAs2Config,
) (*Connector, error)

UpdateConnector updates mutable fields on a connector.

func (*InMemoryBackend) UpdateConnectorFull

func (b *InMemoryBackend) UpdateConnectorFull(in *UpdateConnectorInput) (*Connector, error)

UpdateConnectorFull updates all mutable fields on a connector.

func (*InMemoryBackend) UpdateHostKey

func (b *InMemoryBackend) UpdateHostKey(serverID, hostKeyID, description string) (*HostKey, error)

UpdateHostKey updates mutable fields on a host key.

func (*InMemoryBackend) UpdateProfile

func (b *InMemoryBackend) UpdateProfile(profileID, as2ID string) (*Profile, error)

UpdateProfile updates mutable fields on a profile (simplified, single-arg form).

func (*InMemoryBackend) UpdateProfileFull

func (b *InMemoryBackend) UpdateProfileFull(in *UpdateProfileInput) (*Profile, error)

UpdateProfileFull updates all mutable fields on a profile.

func (*InMemoryBackend) UpdateServer

func (b *InMemoryBackend) UpdateServer(serverID string, protocols []string) (*Server, error)

UpdateServer updates mutable fields on an existing server.

func (*InMemoryBackend) UpdateServerFull

func (b *InMemoryBackend) UpdateServerFull(in *UpdateServerInput) (*Server, error)

UpdateServerFull updates all mutable fields on an existing server.

func (*InMemoryBackend) UpdateUser

func (b *InMemoryBackend) UpdateUser(serverID, userName, homeDir, role string) (*User, error)

UpdateUser updates mutable fields on a user.

func (*InMemoryBackend) UpdateUserFull

func (b *InMemoryBackend) UpdateUserFull(in *UpdateUserInput) (*User, error)

UpdateUserFull updates all mutable fields on a user.

func (*InMemoryBackend) UpdateWebApp

func (b *InMemoryBackend) UpdateWebApp(in *UpdateWebAppInput) (*WebApp, error)

UpdateWebApp updates mutable fields on a web app.

func (*InMemoryBackend) UpdateWebAppCustomization

func (b *InMemoryBackend) UpdateWebAppCustomization(
	webAppID, title, logoFile, faviconFile string,
) (*WebAppCustomization, error)

UpdateWebAppCustomization sets or overwrites the customization for a web app.

type PosixProfile

type PosixProfile struct {
	SecondaryGids []int64 `json:"secondary_gids,omitempty"`
	UID           int64   `json:"uid"`
	GID           int64   `json:"gid"`
}

PosixProfile holds POSIX profile configuration for a Transfer user or access.

type Profile

type Profile struct {
	CreatedAt      time.Time         `json:"created_at"`
	Tags           map[string]string `json:"tags"`
	ProfileID      string            `json:"profile_id"`
	ProfileType    string            `json:"profile_type"`
	As2ID          string            `json:"as2_id"`
	AccountID      string            `json:"account_id"`
	Region         string            `json:"region"`
	CertificateIDs []string          `json:"certificate_ids,omitempty"`
}

Profile represents an AWS Transfer AS2 profile.

type ProtocolDetails

type ProtocolDetails struct {
	PassiveIP                string   `json:"passive_ip,omitempty"`
	TLSSessionResumptionMode string   `json:"tls_session_resumption_mode,omitempty"`
	SetStatOption            string   `json:"set_stat_option,omitempty"`
	As2Transports            []string `json:"as2_transports,omitempty"`
}

ProtocolDetails holds protocol-specific configuration for a Transfer server.

type Provider

type Provider struct{}

Provider implements service.Provider for AWS Transfer Family.

func (*Provider) Init

Init initializes the Transfer service backend and handler.

func (*Provider) Name

func (p *Provider) Name() string

Name returns the provider name.

type S3StorageOptions

type S3StorageOptions struct {
	DirectoryListingOptimization string `json:"directory_listing_optimization,omitempty"`
}

S3StorageOptions holds S3 storage configuration for a Transfer server.

type SSHPublicKey

type SSHPublicKey struct {
	DateImported     time.Time `json:"date_imported"`
	SSHPublicKeyID   string    `json:"ssh_public_key_id"`
	SSHPublicKeyBody string    `json:"ssh_public_key_body"`
	Fingerprint      string    `json:"fingerprint,omitempty"`
	KeyType          string    `json:"key_type,omitempty"`
	UserName         string    `json:"user_name"`
	ServerID         string    `json:"server_id"`
}

SSHPublicKey represents an SSH public key attached to a Transfer user.

type Server

type Server struct {
	IdentityProviderDetails       *IdentityProviderDetails `json:"identity_provider_details,omitempty"`
	EndpointDetails               *EndpointDetails         `json:"endpoint_details,omitempty"`
	ProtocolDetails               *ProtocolDetails         `json:"protocol_details,omitempty"`
	WorkflowDetails               *WorkflowDetails         `json:"workflow_details,omitempty"`
	S3StorageOptions              *S3StorageOptions        `json:"s3_storage_options,omitempty"`
	CreatedAt                     time.Time                `json:"created_at"`
	Tags                          map[string]string        `json:"tags"`
	ServerID                      string                   `json:"server_id"`
	State                         string                   `json:"state"`
	Endpoint                      string                   `json:"endpoint"`
	Domain                        string                   `json:"domain"`
	Region                        string                   `json:"region"`
	AccountID                     string                   `json:"account_id"`
	IdentityProviderType          string                   `json:"identity_provider_type,omitempty"`
	EndpointType                  string                   `json:"endpoint_type,omitempty"`
	LoggingRole                   string                   `json:"logging_role,omitempty"`
	PreAuthenticationLoginBanner  string                   `json:"pre_authentication_login_banner,omitempty"`
	PostAuthenticationLoginBanner string                   `json:"post_authentication_login_banner,omitempty"`
	HostKey                       string                   `json:"host_key,omitempty"`
	Certificate                   string                   `json:"certificate,omitempty"`
	SecurityPolicyName            string                   `json:"security_policy_name,omitempty"`
	IPAddressType                 string                   `json:"ip_address_type,omitempty"`
	StructuredLogDestinations     []string                 `json:"structured_log_destinations,omitempty"`
	Protocols                     []string                 `json:"protocols"`
}

Server represents an AWS Transfer Family server.

type StorageBackend

type StorageBackend interface {
	AccountID() string
	Region() string
	Reset()
	CreateServer(protocols []string, tags map[string]string) (*Server, error)
	CreateServerFull(in *CreateServerInput) (*Server, error)
	DescribeServer(serverID string) (*Server, error)
	ServerUserCount(serverID string) int
	ListServers() []Server
	StartServer(serverID string) error
	StopServer(serverID string) error
	DeleteServer(serverID string) error
	UpdateServer(serverID string, protocols []string) (*Server, error)
	UpdateServerFull(in *UpdateServerInput) (*Server, error)
	CreateUser(serverID, userName, homeDir, role string, tags map[string]string) (*User, error)
	CreateUserFull(in *CreateUserInput) (*User, error)
	DescribeUser(serverID, userName string) (*User, error)
	ListUsers(serverID string) ([]User, error)
	DeleteUser(serverID, userName string) error
	UpdateUser(serverID, userName, homeDir, role string) (*User, error)
	UpdateUserFull(in *UpdateUserInput) (*User, error)
	ListSSHPublicKeys(serverID, userName string) []*SSHPublicKey
	CreateAccess(
		serverID, externalID, role, homeDir string,
		tags map[string]string,
	) (*Access, error)
	CreateAccessFull(in *CreateAccessInput) (*Access, error)
	DeleteAccess(serverID, externalID string) error
	DescribeAccess(serverID, externalID string) (*Access, error)
	ListAccesses(serverID string) ([]*Access, error)
	UpdateAccess(serverID, externalID, role, homeDir string) (*Access, error)
	UpdateAccessFull(in *UpdateAccessInput) (*Access, error)
	CountUserSSHPublicKeys(serverID, userName string) int
	CreateAgreement(
		serverID, description, localProfileID, partnerProfileID, baseDirectory, accessRole string,
		tags map[string]string,
	) (*Agreement, error)
	CreateAgreementFull(
		serverID, description, localProfileID, partnerProfileID, baseDirectory, accessRole, status string,
		tags map[string]string,
		extras ...AgreementCreateExtras,
	) (*Agreement, error)
	DeleteAgreement(serverID, agreementID string) error
	DescribeAgreement(serverID, agreementID string) (*Agreement, error)
	ListAgreements(serverID string) ([]*Agreement, error)
	UpdateAgreement(
		serverID, agreementID, description, status string,
		extras ...AgreementUpdateExtras,
	) (*Agreement, error)
	CreateConnector(
		url, accessRole string,
		sftpConfig *ConnectorSftpConfig,
		as2Config *ConnectorAs2Config,
		tags map[string]string,
	) (*Connector, error)
	CreateConnectorFull(in *CreateConnectorInput) (*Connector, error)
	DeleteConnector(connectorID string) error
	DescribeConnector(connectorID string) (*Connector, error)
	ListConnectors() []*Connector
	UpdateConnector(
		connectorID, url, accessRole string,
		sftpConfig *ConnectorSftpConfig,
		as2Config *ConnectorAs2Config,
	) (*Connector, error)
	UpdateConnectorFull(in *UpdateConnectorInput) (*Connector, error)
	CreateProfile(profileType, as2ID string, tags map[string]string) (*Profile, error)
	CreateProfileFull(in *CreateProfileInput) (*Profile, error)
	DeleteProfile(profileID string) error
	DescribeProfile(profileID string) (*Profile, error)
	ListProfiles() []*Profile
	UpdateProfile(profileID, as2ID string) (*Profile, error)
	UpdateProfileFull(in *UpdateProfileInput) (*Profile, error)
	CreateWebApp(in *CreateWebAppInput) (*WebApp, error)
	DeleteWebApp(webAppID string) error
	DescribeWebApp(webAppID string) (*WebApp, error)
	ListWebApps() []*WebApp
	UpdateWebApp(in *UpdateWebAppInput) (*WebApp, error)
	DeleteWebAppCustomization(webAppID string) error
	DescribeWebAppCustomization(webAppID string) (*WebAppCustomization, error)
	UpdateWebAppCustomization(webAppID, title, logoFile, faviconFile string) (*WebAppCustomization, error)
	CreateWorkflow(
		description string,
		steps []WorkflowStep,
		onExceptionSteps []WorkflowStep,
		tags map[string]string,
	) (*Workflow, error)
	DeleteWorkflow(workflowID string) error
	DescribeWorkflow(workflowID string) (*Workflow, error)
	ListWorkflows() []*Workflow
	DeleteCertificate(certificateID string) error
	ImportCertificate(
		usage, body, description string,
		notBefore, notAfter time.Time,
		tags map[string]string,
	) (*Certificate, error)
	ImportCertificateFull(in *ImportCertificateInput) (*Certificate, error)
	DescribeCertificate(certificateID string) (*Certificate, error)
	ListCertificates() []*Certificate
	UpdateCertificate(certificateID, description string) (*Certificate, error)
	UpdateCertificateFull(in *UpdateCertificateInput) (*Certificate, error)
	ImportHostKey(
		serverID, hostKeyBody, description string,
		tags map[string]string,
	) (*HostKey, error)
	DeleteHostKey(serverID, hostKeyID string) error
	DescribeHostKey(serverID, hostKeyID string) (*HostKey, error)
	ListHostKeys(serverID string) ([]*HostKey, error)
	UpdateHostKey(serverID, hostKeyID, description string) (*HostKey, error)
	ImportSSHPublicKey(serverID, userName, sshPublicKeyBody string) (*SSHPublicKey, error)
	DeleteSSHPublicKey(serverID, userName, sshPublicKeyID string) error
	TagResource(resourceARN string, tags map[string]string) error
	UntagResource(resourceARN string, tagKeys []string) error
	ListTagsForResource(resourceARN string) map[string]string
	CreateExecution(workflowID string) (*Execution, error)
	DescribeExecution(workflowID, executionID string) (*Execution, error)
	ListExecutions(workflowID string) ([]*Execution, error)
	StartFileFileTransferResult(connectorID string, files []string) string
	ListFileFileTransferResults(connectorID string) []*FileTransferResult
	GetFileTransferResult(connectorID, transferID string) *FileTransferResult
	StartAsyncOperationRecord(connectorID, opType string) string
	TestIdentityProvider(serverID, userName string) (int, string)
	SendWorkflowStepStateRecord(workflowID, executionID, token, status string) error
}

StorageBackend defines the interface for Transfer backend implementations. All mutating methods must be safe for concurrent use.

type TagStepDetails

type TagStepDetails struct {
	Name               string           `json:"name,omitempty"`
	SourceFileLocation string           `json:"source_file_location,omitempty"`
	Tags               []map[string]any `json:"tags,omitempty"`
}

TagStepDetails holds details for a Tag workflow step.

type TaggedEntry added in v1.3.1

type TaggedEntry struct {
	Tags map[string]string
	ARN  string
}

TaggedEntry pairs a resource ARN with its tag map, for cross-service tag enumeration by the Resource Groups Tagging API (see cli.go's wireTaggingTransfer).

type UpdateAccessInput

type UpdateAccessInput struct {
	PosixProfile             *PosixProfile
	Role                     *string
	HomeDir                  *string
	Policy                   *string
	ServerID                 string
	ExternalID               string
	HomeDirectoryType        string
	HomeDirectoryMappings    []HomeDirectoryMapEntry
	SetPosixProfile          bool
	SetHomeDirectoryType     bool
	SetHomeDirectoryMappings bool
}

UpdateAccessInput holds all mutable fields for UpdateAccessFull.

type UpdateCertificateInput added in v1.2.0

type UpdateCertificateInput struct {
	ActiveDate    time.Time
	InactiveDate  time.Time
	Description   *string
	CertificateID string
}

UpdateCertificateInput holds all optional fields for UpdateCertificate.

type UpdateConnectorInput

type UpdateConnectorInput struct {
	SftpConfig         *ConnectorSftpConfig
	As2Config          *ConnectorAs2Config
	EgressConfig       *ConnectorEgressConfig
	URL                *string
	AccessRole         *string
	LoggingRole        *string
	SecurityPolicyName *string
	ConnectorID        string
	IPAddressType      string
	SetIPAddressType   bool
}

UpdateConnectorInput holds all optional fields for UpdateConnector.

type UpdateProfileInput

type UpdateProfileInput struct {
	ProfileID         string
	As2ID             string
	CertificateIDs    []string
	SetCertificateIDs bool
}

UpdateProfileInput holds mutable fields for UpdateProfile.

type UpdateServerInput

type UpdateServerInput struct {
	IdentityProviderDetails       *IdentityProviderDetails
	EndpointDetails               *EndpointDetails
	ProtocolDetails               *ProtocolDetails
	WorkflowDetails               *WorkflowDetails
	S3StorageOptions              *S3StorageOptions
	SecurityPolicyName            *string
	Certificate                   *string
	HostKey                       *string
	LoggingRole                   *string
	PreAuthenticationLoginBanner  *string
	PostAuthenticationLoginBanner *string
	ServerID                      string
	EndpointType                  string
	IPAddressType                 string
	IdentityProviderType          string
	StructuredLogDestinations     []string
	Protocols                     []string
	SetIdentityProviderDetails    bool
	SetIdentityProviderType       bool
	SetIPAddressType              bool
	SetEndpointType               bool
	SetEndpointDetails            bool
	SetProtocolDetails            bool
	SetWorkflowDetails            bool
	SetS3StorageOptions           bool
	SetStructuredLogDestinations  bool
}

UpdateServerInput holds all optional fields for UpdateServer.

type UpdateUserInput

type UpdateUserInput struct {
	PosixProfile             *PosixProfile
	HomeDir                  *string
	Role                     *string
	Policy                   *string
	ServerID                 string
	UserName                 string
	HomeDirectoryType        string
	HomeDirectoryMappings    []HomeDirectoryMapEntry
	SetPosixProfile          bool
	SetHomeDirectoryMappings bool
	SetHomeDirectoryType     bool
}

UpdateUserInput holds all optional fields for UpdateUser.

type UpdateWebAppInput added in v1.2.0

type UpdateWebAppInput struct {
	IdentityCenterRole *string
	WebAppUnits        *int32
	VpcIPAddressType   *string
	AccessEndpoint     *string
	WebAppID           string
	VpcSubnetIDs       []string
}

UpdateWebAppInput holds all optional fields for UpdateWebApp. Real AWS only allows updating a subset of fields set at creation: AccessEndpoint, the VPC subnet list (not VpcId/SecurityGroupIds -- those are immutable after creation), the IAM Identity Center Role (not InstanceArn), and WebAppUnits.

type User

type User struct {
	CreatedAt             time.Time               `json:"created_at"`
	PosixProfile          *PosixProfile           `json:"posix_profile,omitempty"`
	Tags                  map[string]string       `json:"tags"`
	UserName              string                  `json:"user_name"`
	ServerID              string                  `json:"server_id"`
	HomeDir               string                  `json:"home_dir"`
	Role                  string                  `json:"role"`
	AccountID             string                  `json:"account_id"`
	Region                string                  `json:"region"`
	HomeDirectoryType     string                  `json:"home_directory_type,omitempty"`
	Policy                string                  `json:"policy,omitempty"`
	HomeDirectoryMappings []HomeDirectoryMapEntry `json:"home_directory_mappings,omitempty"`
}

User represents a user on an AWS Transfer Family server.

type WebApp

type WebApp struct {
	CreatedAt            time.Time                   `json:"created_at"`
	IdentityCenterConfig *WebAppIdentityCenterConfig `json:"identity_center_config,omitempty"`
	VpcConfig            *WebAppVpcConfig            `json:"vpc_config,omitempty"`
	Tags                 map[string]string           `json:"tags"`
	WebAppID             string                      `json:"web_app_id"`
	AccessEndpoint       string                      `json:"access_endpoint,omitempty"`
	WebAppEndpoint       string                      `json:"web_app_endpoint,omitempty"`
	WebAppEndpointPolicy string                      `json:"web_app_endpoint_policy,omitempty"`
	AccountID            string                      `json:"account_id"`
	Region               string                      `json:"region"`
	WebAppUnits          int32                       `json:"web_app_units,omitempty"`
}

WebApp represents an AWS Transfer web application.

type WebAppCustomization

type WebAppCustomization struct {
	WebAppID    string
	Title       string
	LogoFile    string
	FaviconFile string
}

WebAppCustomization holds per-web-app branding customization.

type WebAppIdentityCenterConfig added in v1.2.0

type WebAppIdentityCenterConfig struct {
	// ApplicationArn is assigned automatically by AWS when the web app is created;
	// it is not settable by the caller.
	ApplicationArn string `json:"application_arn,omitempty"`
	InstanceArn    string `json:"instance_arn,omitempty"`
	Role           string `json:"role,omitempty"`
}

WebAppIdentityCenterConfig holds IAM Identity Center configuration for a web app's identity provider. Real AWS web apps support ONLY IdentityCenterConfig as an identity provider (unlike Transfer servers, which additionally support SERVICE_MANAGED / AWS_DIRECTORY_SERVICE / AWS_LAMBDA / API_GATEWAY).

type WebAppVpcConfig added in v1.2.0

type WebAppVpcConfig struct {
	VpcID            string   `json:"vpc_id,omitempty"`
	VpcEndpointID    string   `json:"vpc_endpoint_id,omitempty"`
	IPAddressType    string   `json:"ip_address_type,omitempty"`
	SecurityGroupIDs []string `json:"security_group_ids,omitempty"`
	SubnetIDs        []string `json:"subnet_ids,omitempty"`
}

WebAppVpcConfig holds the VPC configuration for a web app endpoint hosted within a VPC.

type Workflow

type Workflow struct {
	CreatedAt        time.Time         `json:"created_at"`
	Tags             map[string]string `json:"tags"`
	WorkflowID       string            `json:"workflow_id"`
	Description      string            `json:"description"`
	AccountID        string            `json:"account_id"`
	Region           string            `json:"region"`
	Steps            []WorkflowStep    `json:"steps,omitempty"`
	OnExceptionSteps []WorkflowStep    `json:"on_exception_steps,omitempty"`
}

Workflow represents an AWS Transfer workflow for file processing.

type WorkflowDetail

type WorkflowDetail struct {
	WorkflowID    string `json:"workflow_id"`
	ExecutionRole string `json:"execution_role"`
}

WorkflowDetail holds a single workflow ID + execution role pair.

type WorkflowDetails

type WorkflowDetails struct {
	OnUpload        []WorkflowDetail `json:"on_upload,omitempty"`
	OnPartialUpload []WorkflowDetail `json:"on_partial_upload,omitempty"`
}

WorkflowDetails holds workflow trigger configuration for a Transfer server.

type WorkflowStep

type WorkflowStep struct {
	CopyStepDetails    *CopyStepDetails    `json:"copy_step_details,omitempty"`
	CustomStepDetails  *CustomStepDetails  `json:"custom_step_details,omitempty"`
	DeleteStepDetails  *DeleteStepDetails  `json:"delete_step_details,omitempty"`
	TagStepDetails     *TagStepDetails     `json:"tag_step_details,omitempty"`
	DecryptStepDetails *DecryptStepDetails `json:"decrypt_step_details,omitempty"`
	Type               string              `json:"type"`
}

WorkflowStep represents a single step in an AWS Transfer workflow.

Jump to

Keyboard shortcuts

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