Class: Aws::Transfer::Client

Inherits:
Seahorse::Client::Base
  • Object
show all
Includes:
ClientStubs
Defined in:
lib/aws-sdk-transfer/client.rb

Overview

An API client for Transfer. To construct a client, you need to configure a ‘:region` and `:credentials`.

client = Aws::Transfer::Client.new(
  region: region_name,
  credentials: credentials,
  # ...
)

For details on configuring region and credentials see the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).

See #initialize for a full list of supported configuration options.

Class Attribute Summary collapse

API Operations collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Client

Returns a new instance of Client.

Parameters:

  • options (Hash)

Options Hash (options):

  • :credentials (required, Aws::CredentialProvider)

    Your AWS credentials. This can be an instance of any one of the following classes:

    • ‘Aws::Credentials` - Used for configuring static, non-refreshing credentials.

    • ‘Aws::InstanceProfileCredentials` - Used for loading credentials from an EC2 IMDS on an EC2 instance.

    • ‘Aws::SharedCredentials` - Used for loading credentials from a shared file, such as `~/.aws/config`.

    • ‘Aws::AssumeRoleCredentials` - Used when you need to assume a role.

    When ‘:credentials` are not configured directly, the following locations will be searched for credentials:

    • Aws.config`

    • The ‘:access_key_id`, `:secret_access_key`, and `:session_token` options.

    • ENV, ENV

    • ‘~/.aws/credentials`

    • ‘~/.aws/config`

    • EC2 IMDS instance profile - When used by default, the timeouts are very aggressive. Construct and pass an instance of ‘Aws::InstanceProfileCredentails` to enable retries and extended timeouts.

  • :region (required, String)

    The AWS region to connect to. The configured ‘:region` is used to determine the service `:endpoint`. When not passed, a default `:region` is search for in the following locations:

  • :access_key_id (String)
  • :active_endpoint_cache (Boolean) — default: false

    When set to ‘true`, a thread polling for endpoints will be running in the background every 60 secs (default). Defaults to `false`.

  • :adaptive_retry_wait_to_fill (Boolean) — default: true

    Used only in ‘adaptive` retry mode. When true, the request will sleep until there is sufficent client side capacity to retry the request. When false, the request will raise a `RetryCapacityNotAvailableError` and will not retry instead of sleeping.

  • :client_side_monitoring (Boolean) — default: false

    When ‘true`, client-side metrics will be collected for all API requests from this client.

  • :client_side_monitoring_client_id (String) — default: ""

    Allows you to provide an identifier for this client which will be attached to all generated client side metrics. Defaults to an empty string.

  • :client_side_monitoring_host (String) — default: "127.0.0.1"

    Allows you to specify the DNS hostname or IPv4 or IPv6 address that the client side monitoring agent is running on, where client metrics will be published via UDP.

  • :client_side_monitoring_port (Integer) — default: 31000

    Required for publishing client metrics. The port that the client side monitoring agent is running on, where client metrics will be published via UDP.

  • :client_side_monitoring_publisher (Aws::ClientSideMonitoring::Publisher) — default: Aws::ClientSideMonitoring::Publisher

    Allows you to provide a custom client-side monitoring publisher class. By default, will use the Client Side Monitoring Agent Publisher.

  • :convert_params (Boolean) — default: true

    When ‘true`, an attempt is made to coerce request parameters into the required types.

  • :correct_clock_skew (Boolean) — default: true

    Used only in ‘standard` and adaptive retry modes. Specifies whether to apply a clock skew correction and retry requests with skewed client clocks.

  • :disable_host_prefix_injection (Boolean) — default: false

    Set to true to disable SDK automatically adding host prefix to default service endpoint when available.

  • :endpoint (String)

    The client endpoint is normally constructed from the ‘:region` option. You should only configure an `:endpoint` when connecting to test endpoints. This should be avalid HTTP(S) URI.

  • :endpoint_cache_max_entries (Integer) — default: 1000

    Used for the maximum size limit of the LRU cache storing endpoints data for endpoint discovery enabled operations. Defaults to 1000.

  • :endpoint_cache_max_threads (Integer) — default: 10

    Used for the maximum threads in use for polling endpoints to be cached, defaults to 10.

  • :endpoint_cache_poll_interval (Integer) — default: 60

    When :endpoint_discovery and :active_endpoint_cache is enabled, Use this option to config the time interval in seconds for making requests fetching endpoints information. Defaults to 60 sec.

  • :endpoint_discovery (Boolean) — default: false

    When set to ‘true`, endpoint discovery will be enabled for operations when available. Defaults to `false`.

  • :log_formatter (Aws::Log::Formatter) — default: Aws::Log::Formatter.default

    The log formatter.

  • :log_level (Symbol) — default: :info

    The log level to send messages to the ‘:logger` at.

  • :logger (Logger)

    The Logger instance to send log messages to. If this option is not set, logging will be disabled.

  • :max_attempts (Integer) — default: 3

    An integer representing the maximum number attempts that will be made for a single request, including the initial attempt. For example, setting this value to 5 will result in a request being retried up to 4 times. Used in ‘standard` and `adaptive` retry modes.

  • :profile (String) — default: "default"

    Used when loading credentials from the shared credentials file at HOME/.aws/credentials. When not specified, ‘default’ is used.

  • :retry_backoff (Proc)

    A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay. This option is only used in the ‘legacy` retry mode.

  • :retry_base_delay (Float) — default: 0.3

    The base delay in seconds used by the default backoff function. This option is only used in the ‘legacy` retry mode.

  • :retry_jitter (Symbol) — default: :none

    A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number. This option is only used in the ‘legacy` retry mode.

    @see www.awsarchitectureblog.com/2015/03/backoff.html

  • :retry_limit (Integer) — default: 3

    The maximum number of times to retry failed requests. Only ~ 500 level server errors and certain ~ 400 level client errors are retried. Generally, these are throttling errors, data checksum errors, networking errors, timeout errors, auth errors, endpoint discovery, and errors from expired credentials. This option is only used in the ‘legacy` retry mode.

  • :retry_max_delay (Integer) — default: 0

    The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function. This option is only used in the ‘legacy` retry mode.

  • :retry_mode (String) — default: "legacy"

    Specifies which retry algorithm to use. Values are:

    • ‘legacy` - The pre-existing retry behavior. This is default value if no retry mode is provided.

    • ‘standard` - A standardized set of retry rules across the AWS SDKs. This includes support for retry quotas, which limit the number of unsuccessful retries a client can make.

    • ‘adaptive` - An experimental retry mode that includes all the functionality of `standard` mode along with automatic client side throttling. This is a provisional mode that may change behavior in the future.

  • :secret_access_key (String)
  • :session_token (String)
  • :simple_json (Boolean) — default: false

    Disables request parameter conversion, validation, and formatting. Also disable response data type conversions. This option is useful when you want to ensure the highest level of performance by avoiding overhead of walking request parameters and response data structures.

    When ‘:simple_json` is enabled, the request parameters hash must be formatted exactly as the DynamoDB API expects.

  • :stub_responses (Boolean) — default: false

    Causes the client to return stubbed responses. By default fake responses are generated and returned. You can specify the response data to return or errors to raise by calling ClientStubs#stub_responses. See ClientStubs for more information.

    ** Please note ** When response stubbing is enabled, no HTTP requests are made, and retries are disabled.

  • :validate_params (Boolean) — default: true

    When ‘true`, request parameters are validated before sending the request.

  • :http_proxy (URI::HTTP, String)

    A proxy to send requests through. Formatted like ‘proxy.com:123’.

  • :http_open_timeout (Float) — default: 15

    The number of seconds to wait when opening a HTTP session before raising a ‘Timeout::Error`.

  • :http_read_timeout (Integer) — default: 60

    The default number of seconds to wait for response data. This value can safely be set per-request on the session yielded by #session_for.

  • :http_idle_timeout (Float) — default: 5

    The number of seconds a connection is allowed to sit idle before it is considered stale. Stale connections are closed and removed from the pool before making a request.

  • :http_continue_timeout (Float) — default: 1

    The number of seconds to wait for a 100-continue response before sending the request body. This option has no effect unless the request has “Expect” header set to “100-continue”. Defaults to ‘nil` which disables this behaviour. This value can safely be set per request on the session yielded by #session_for.

  • :http_wire_trace (Boolean) — default: false

    When ‘true`, HTTP debug output will be sent to the `:logger`.

  • :ssl_verify_peer (Boolean) — default: true

    When ‘true`, SSL peer certificates are verified when establishing a connection.

  • :ssl_ca_bundle (String)

    Full path to the SSL certificate authority bundle file that should be used when verifying peer certificates. If you do not pass ‘:ssl_ca_bundle` or `:ssl_ca_directory` the the system default will be used if available.

  • :ssl_ca_directory (String)

    Full path of the directory that contains the unbundled SSL certificate authority files for verifying peer certificates. If you do not pass ‘:ssl_ca_bundle` or `:ssl_ca_directory` the the system default will be used if available.



316
317
318
# File 'lib/aws-sdk-transfer/client.rb', line 316

def initialize(*args)
  super
end

Class Attribute Details

.identifierObject (readonly)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



1371
1372
1373
# File 'lib/aws-sdk-transfer/client.rb', line 1371

def identifier
  @identifier
end

Class Method Details

.errors_moduleObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.



1374
1375
1376
# File 'lib/aws-sdk-transfer/client.rb', line 1374

def errors_module
  Errors
end

Instance Method Details

#build_request(operation_name, params = {}) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • params ({}) (defaults to: {})


1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
# File 'lib/aws-sdk-transfer/client.rb', line 1349

def build_request(operation_name, params = {})
  handlers = @handlers.for(operation_name)
  context = Seahorse::Client::RequestContext.new(
    operation_name: operation_name,
    operation: config.api.operation(operation_name),
    client: self,
    params: params,
    config: config)
  context[:gem_name] = 'aws-sdk-transfer'
  context[:gem_version] = '1.17.0'
  Seahorse::Client::Request.new(handlers, context)
end

#create_server(params = {}) ⇒ Types::CreateServerResponse

Instantiates an autoscaling virtual server based on Secure File Transfer Protocol (SFTP) in AWS. When you make updates to your server or when you work with users, use the service-generated ‘ServerId` property that is assigned to the newly created server.

Examples:

Request syntax with placeholder values


resp = client.create_server({
  endpoint_details: {
    address_allocation_ids: ["AddressAllocationId"],
    subnet_ids: ["SubnetId"],
    vpc_endpoint_id: "VpcEndpointId",
    vpc_id: "VpcId",
  },
  endpoint_type: "PUBLIC", # accepts PUBLIC, VPC, VPC_ENDPOINT
  host_key: "HostKey",
  identity_provider_details: {
    url: "Url",
    invocation_role: "Role",
  },
  identity_provider_type: "SERVICE_MANAGED", # accepts SERVICE_MANAGED, API_GATEWAY
  logging_role: "Role",
  tags: [
    {
      key: "TagKey", # required
      value: "TagValue", # required
    },
  ],
})

Response structure


resp.server_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :endpoint_details (Types::EndpointDetails)

    The virtual private cloud (VPC) endpoint settings that are configured for your SFTP server. With a VPC endpoint, you can restrict access to your SFTP server to resources only within your VPC. To control incoming internet traffic, you will need to invoke the ‘UpdateServer` API and attach an Elastic IP to your server’s endpoint.

  • :endpoint_type (String)

    The type of VPC endpoint that you want your SFTP server to connect to. You can choose to connect to the public internet or a virtual private cloud (VPC) endpoint. With a VPC endpoint, you can restrict access to your SFTP server and resources only within your VPC.

  • :host_key (String)

    The RSA private key as generated by the ‘ssh-keygen -N “” -f my-new-server-key` command.

    If you aren’t planning to migrate existing users from an existing SFTP server to a new AWS SFTP server, don’t update the host key. Accidentally changing a server’s host key can be disruptive.

    For more information, see “alpha-docs-aws.amazon.com/transfer/latest/userguide/configuring-servers.html#change-host-key” in the *AWS SFTP User Guide.*

  • :identity_provider_details (Types::IdentityProviderDetails)

    This parameter is required when the ‘IdentityProviderType` is set to `API_GATEWAY`. Accepts an array containing all of the information required to call a customer-supplied authentication API, including the API Gateway URL. This property is not required when the `IdentityProviderType` is set to `SERVICE_MANAGED`.

  • :identity_provider_type (String)

    Specifies the mode of authentication for the SFTP server. The default value is ‘SERVICE_MANAGED`, which allows you to store and access SFTP user credentials within the AWS Transfer for SFTP service. Use the `API_GATEWAY` value to integrate with an identity provider of your choosing. The `API_GATEWAY` setting requires you to provide an API Gateway endpoint URL to call for authentication using the `IdentityProviderDetails` parameter.

  • :logging_role (String)

    A value that allows the service to write your SFTP users’ activity to your Amazon CloudWatch logs for monitoring and auditing purposes.

  • :tags (Array<Types::Tag>)

    Key-value pairs that can be used to group and search for servers.

Returns:

See Also:



412
413
414
415
# File 'lib/aws-sdk-transfer/client.rb', line 412

def create_server(params = {}, options = {})
  req = build_request(:create_server, params)
  req.send_request(options)
end

#create_user(params = {}) ⇒ Types::CreateUserResponse

Creates a user and associates them with an existing Secure File Transfer Protocol (SFTP) server. You can only create and associate users with SFTP servers that have the ‘IdentityProviderType` set to `SERVICE_MANAGED`. Using parameters for `CreateUser`, you can specify the user name, set the home directory, store the user’s public key, and assign the user’s AWS Identity and Access Management (IAM) role. You can also optionally add a scope-down policy, and assign metadata with tags that can be used to group and search for users.

Examples:

Request syntax with placeholder values


resp = client.create_user({
  home_directory: "HomeDirectory",
  home_directory_type: "PATH", # accepts PATH, LOGICAL
  home_directory_mappings: [
    {
      entry: "MapEntry", # required
      target: "MapTarget", # required
    },
  ],
  policy: "Policy",
  role: "Role", # required
  server_id: "ServerId", # required
  ssh_public_key_body: "SshPublicKeyBody",
  tags: [
    {
      key: "TagKey", # required
      value: "TagValue", # required
    },
  ],
  user_name: "UserName", # required
})

Response structure


resp.server_id #=> String
resp.user_name #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :home_directory (String)

    The landing directory (folder) for a user when they log in to the server using their SFTP client.

    An example is &lt;‘your-Amazon-S3-bucket-name>/home/username`.

  • :home_directory_type (String)

    The type of landing directory (folder) you want your users’ home directory to be when they log into the SFTP server. If you set it to ‘PATH`, the user will see the absolute Amazon S3 bucket paths as is in their SFTP clients. If you set it `LOGICAL`, you will need to provide mappings in the `HomeDirectoryMappings` for how you want to make S3 paths visible to your user.

  • :home_directory_mappings (Array<Types::HomeDirectoryMapEntry>)

    Logical directory mappings that specify what S3 paths and keys should be visible to your user and how you want to make them visible. You will need to specify the “‘Entry`” and “`Target`” pair, where `Entry` shows how the path is made visible and `Target` is the actual S3 path. If you only specify a target, it will be displayed as is. You will need to also make sure that your AWS IAM Role provides access to paths in `Target`. The following is an example.

    ‘’[ “/bucket2/documentation”, { “Entry”: “your-personal-report.pdf”, “Target”: “/bucket3/customized-reports/$transfer:UserName.pdf” } ]‘`

    In most cases, you can use this value instead of the scope down policy to lock your user down to the designated home directory (“chroot”). To do this, you can set ‘Entry` to ’/‘ and set `Target` to the HomeDirectory parameter value.

    <note markdown=“1”> If the target of a logical directory entry does not exist in S3, the entry will be ignored. As a workaround, you can use the S3 api to create 0 byte objects as place holders for your directory. If using the CLI, use the s3api call instead of s3 so you can use the put-object operation. For example, you use the following: ‘aws s3api put-object –bucket bucketname –key path/to/folder/`. Make sure that the end of the key name ends in a / for it to be considered a folder.

    </note>
    
  • :policy (String)

    A scope-down policy for your user so you can use the same IAM role across multiple users. This policy scopes down user access to portions of their Amazon S3 bucket. Variables that you can use inside this policy include ‘$Transfer:UserName`, `$Transfer:HomeDirectory`, and `$Transfer:HomeBucket`.

    <note markdown=“1”> For scope-down policies, AWS Transfer for SFTP stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the ‘Policy` argument.

    For an example of a scope-down policy, see
    

    docs.aws.amazon.com/transfer/latest/userguide/users.html#users-policies-scope-down”&gt;Creating a Scope-Down Policy.

    For more information, see
    

    docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html” in the *AWS Security Token Service API Reference*.

    </note>
    
  • :role (required, String)

    The IAM role that controls your user’s access to your Amazon S3 bucket. The policies attached to this role will determine the level of access you want to provide your users when transferring files into and out of your Amazon S3 bucket or buckets. The IAM role should also contain a trust relationship that allows the SFTP server to access your resources when servicing your SFTP user’s transfer requests.

  • :server_id (required, String)

    A system-assigned unique identifier for an SFTP server instance. This is the specific SFTP server that you added your user to.

  • :ssh_public_key_body (String)

    The public portion of the Secure Shell (SSH) key used to authenticate the user to the SFTP server.

  • :tags (Array<Types::Tag>)

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

  • :user_name (required, String)

    A unique string that identifies a user and is associated with a server as specified by the ‘ServerId`. This user name must be a minimum of 3 and a maximum of 32 characters long. The following are valid characters: a-z, A-Z, 0-9, underscore, and hyphen. The user name can’t start with a hyphen.

Returns:

See Also:



555
556
557
558
# File 'lib/aws-sdk-transfer/client.rb', line 555

def create_user(params = {}, options = {})
  req = build_request(:create_user, params)
  req.send_request(options)
end

#delete_server(params = {}) ⇒ Struct

Deletes the Secure File Transfer Protocol (SFTP) server that you specify.

No response returns from this operation.

Examples:

Request syntax with placeholder values


resp = client.delete_server({
  server_id: "ServerId", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :server_id (required, String)

    A unique system-assigned identifier for an SFTP server instance.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



580
581
582
583
# File 'lib/aws-sdk-transfer/client.rb', line 580

def delete_server(params = {}, options = {})
  req = build_request(:delete_server, params)
  req.send_request(options)
end

#delete_ssh_public_key(params = {}) ⇒ Struct

Deletes a user’s Secure Shell (SSH) public key.

No response is returned from this operation.

Examples:

Request syntax with placeholder values


resp = client.delete_ssh_public_key({
  server_id: "ServerId", # required
  ssh_public_key_id: "SshPublicKeyId", # required
  user_name: "UserName", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :server_id (required, String)

    A system-assigned unique identifier for a Secure File Transfer Protocol (SFTP) server instance that has the user assigned to it.

  • :ssh_public_key_id (required, String)

    A unique identifier used to reference your user’s specific SSH key.

  • :user_name (required, String)

    A unique string that identifies a user whose public key is being deleted.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



614
615
616
617
# File 'lib/aws-sdk-transfer/client.rb', line 614

def delete_ssh_public_key(params = {}, options = {})
  req = build_request(:delete_ssh_public_key, params)
  req.send_request(options)
end

#delete_user(params = {}) ⇒ Struct

Deletes the user belonging to the server you specify.

No response returns from this operation.

<note markdown=“1”> When you delete a user from a server, the user’s information is lost.

</note>

Examples:

Request syntax with placeholder values


resp = client.delete_user({
  server_id: "ServerId", # required
  user_name: "UserName", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :server_id (required, String)

    A system-assigned unique identifier for an SFTP server instance that has the user assigned to it.

  • :user_name (required, String)

    A unique string that identifies a user that is being deleted from the server.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



648
649
650
651
# File 'lib/aws-sdk-transfer/client.rb', line 648

def delete_user(params = {}, options = {})
  req = build_request(:delete_user, params)
  req.send_request(options)
end

#describe_server(params = {}) ⇒ Types::DescribeServerResponse

Describes the server that you specify by passing the ‘ServerId` parameter.

The response contains a description of the server’s properties. When you set ‘EndpointType` to VPC, the response will contain the `EndpointDetails`.

Examples:

Request syntax with placeholder values


resp = client.describe_server({
  server_id: "ServerId", # required
})

Response structure


resp.server.arn #=> String
resp.server.endpoint_details.address_allocation_ids #=> Array
resp.server.endpoint_details.address_allocation_ids[0] #=> String
resp.server.endpoint_details.subnet_ids #=> Array
resp.server.endpoint_details.subnet_ids[0] #=> String
resp.server.endpoint_details.vpc_endpoint_id #=> String
resp.server.endpoint_details.vpc_id #=> String
resp.server.endpoint_type #=> String, one of "PUBLIC", "VPC", "VPC_ENDPOINT"
resp.server.host_key_fingerprint #=> String
resp.server.identity_provider_details.url #=> String
resp.server.identity_provider_details.invocation_role #=> String
resp.server.identity_provider_type #=> String, one of "SERVICE_MANAGED", "API_GATEWAY"
resp.server.logging_role #=> String
resp.server.server_id #=> String
resp.server.state #=> String, one of "OFFLINE", "ONLINE", "STARTING", "STOPPING", "START_FAILED", "STOP_FAILED"
resp.server.tags #=> Array
resp.server.tags[0].key #=> String
resp.server.tags[0].value #=> String
resp.server.user_count #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :server_id (required, String)

    A system-assigned unique identifier for an SFTP server.

Returns:

See Also:



699
700
701
702
# File 'lib/aws-sdk-transfer/client.rb', line 699

def describe_server(params = {}, options = {})
  req = build_request(:describe_server, params)
  req.send_request(options)
end

#describe_user(params = {}) ⇒ Types::DescribeUserResponse

Describes the user assigned to a specific server, as identified by its ‘ServerId` property.

The response from this call returns the properties of the user associated with the ‘ServerId` value that was specified.

Examples:

Request syntax with placeholder values


resp = client.describe_user({
  server_id: "ServerId", # required
  user_name: "UserName", # required
})

Response structure


resp.server_id #=> String
resp.user.arn #=> String
resp.user.home_directory #=> String
resp.user.home_directory_mappings #=> Array
resp.user.home_directory_mappings[0].entry #=> String
resp.user.home_directory_mappings[0].target #=> String
resp.user.home_directory_type #=> String, one of "PATH", "LOGICAL"
resp.user.policy #=> String
resp.user.role #=> String
resp.user.ssh_public_keys #=> Array
resp.user.ssh_public_keys[0].date_imported #=> Time
resp.user.ssh_public_keys[0].ssh_public_key_body #=> String
resp.user.ssh_public_keys[0].ssh_public_key_id #=> String
resp.user.tags #=> Array
resp.user.tags[0].key #=> String
resp.user.tags[0].value #=> String
resp.user.user_name #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :server_id (required, String)

    A system-assigned unique identifier for an SFTP server that has this user assigned.

  • :user_name (required, String)

    The name of the user assigned to one or more servers. User names are part of the sign-in credentials to use the AWS Transfer for SFTP service and perform file transfer tasks.

Returns:

See Also:



755
756
757
758
# File 'lib/aws-sdk-transfer/client.rb', line 755

def describe_user(params = {}, options = {})
  req = build_request(:describe_user, params)
  req.send_request(options)
end

#import_ssh_public_key(params = {}) ⇒ Types::ImportSshPublicKeyResponse

Adds a Secure Shell (SSH) public key to a user account identified by a ‘UserName` value assigned to a specific server, identified by `ServerId`.

The response returns the ‘UserName` value, the `ServerId` value, and the name of the `SshPublicKeyId`.

Examples:

Request syntax with placeholder values


resp = client.import_ssh_public_key({
  server_id: "ServerId", # required
  ssh_public_key_body: "SshPublicKeyBody", # required
  user_name: "UserName", # required
})

Response structure


resp.server_id #=> String
resp.ssh_public_key_id #=> String
resp.user_name #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :server_id (required, String)

    A system-assigned unique identifier for an SFTP server.

  • :ssh_public_key_body (required, String)

    The public key portion of an SSH key pair.

  • :user_name (required, String)

    The name of the user account that is assigned to one or more servers.

Returns:

See Also:



800
801
802
803
# File 'lib/aws-sdk-transfer/client.rb', line 800

def import_ssh_public_key(params = {}, options = {})
  req = build_request(:import_ssh_public_key, params)
  req.send_request(options)
end

#list_servers(params = {}) ⇒ Types::ListServersResponse

Lists the Secure File Transfer Protocol (SFTP) servers that are associated with your AWS account.

Examples:

Request syntax with placeholder values


resp = client.list_servers({
  max_results: 1,
  next_token: "NextToken",
})

Response structure


resp.next_token #=> String
resp.servers #=> Array
resp.servers[0].arn #=> String
resp.servers[0].identity_provider_type #=> String, one of "SERVICE_MANAGED", "API_GATEWAY"
resp.servers[0].endpoint_type #=> String, one of "PUBLIC", "VPC", "VPC_ENDPOINT"
resp.servers[0].logging_role #=> String
resp.servers[0].server_id #=> String
resp.servers[0].state #=> String, one of "OFFLINE", "ONLINE", "STARTING", "STOPPING", "START_FAILED", "STOP_FAILED"
resp.servers[0].user_count #=> Integer

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :max_results (Integer)

    Specifies the number of servers to return as a response to the ‘ListServers` query.

  • :next_token (String)

    When additional results are obtained from the ‘ListServers` command, a `NextToken` parameter is returned in the output. You can then pass the `NextToken` parameter in a subsequent command to continue listing additional servers.

Returns:

See Also:



846
847
848
849
# File 'lib/aws-sdk-transfer/client.rb', line 846

def list_servers(params = {}, options = {})
  req = build_request(:list_servers, params)
  req.send_request(options)
end

#list_tags_for_resource(params = {}) ⇒ Types::ListTagsForResourceResponse

Lists all of the tags associated with the Amazon Resource Number (ARN) you specify. The resource can be a user, server, or role.

Examples:

Request syntax with placeholder values


resp = client.list_tags_for_resource({
  arn: "Arn", # required
  max_results: 1,
  next_token: "NextToken",
})

Response structure


resp.arn #=> String
resp.next_token #=> String
resp.tags #=> Array
resp.tags[0].key #=> String
resp.tags[0].value #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    Requests the tags associated with a particular Amazon Resource Name (ARN). An ARN is an identifier for a specific AWS resource, such as a server, user, or role.

  • :max_results (Integer)

    Specifies the number of tags to return as a response to the ‘ListTagsForResource` request.

  • :next_token (String)

    When you request additional results from the ‘ListTagsForResource` operation, a `NextToken` parameter is returned in the input. You can then pass in a subsequent command to the `NextToken` parameter to continue listing additional tags.

Returns:

See Also:



895
896
897
898
# File 'lib/aws-sdk-transfer/client.rb', line 895

def list_tags_for_resource(params = {}, options = {})
  req = build_request(:list_tags_for_resource, params)
  req.send_request(options)
end

#list_users(params = {}) ⇒ Types::ListUsersResponse

Lists the users for the server that you specify by passing the ‘ServerId` parameter.

Examples:

Request syntax with placeholder values


resp = client.list_users({
  max_results: 1,
  next_token: "NextToken",
  server_id: "ServerId", # required
})

Response structure


resp.next_token #=> String
resp.server_id #=> String
resp.users #=> Array
resp.users[0].arn #=> String
resp.users[0].home_directory #=> String
resp.users[0].home_directory_type #=> String, one of "PATH", "LOGICAL"
resp.users[0].role #=> String
resp.users[0].ssh_public_key_count #=> Integer
resp.users[0].user_name #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :max_results (Integer)

    Specifies the number of users to return as a response to the ‘ListUsers` request.

  • :next_token (String)

    When you can get additional results from the ‘ListUsers` call, a `NextToken` parameter is returned in the output. You can then pass in a subsequent command to the `NextToken` parameter to continue listing additional users.

  • :server_id (required, String)

    A system-assigned unique identifier for a Secure File Transfer Protocol (SFTP) server that has users assigned to it.

Returns:

See Also:



947
948
949
950
# File 'lib/aws-sdk-transfer/client.rb', line 947

def list_users(params = {}, options = {})
  req = build_request(:list_users, params)
  req.send_request(options)
end

#start_server(params = {}) ⇒ Struct

Changes the state of a Secure File Transfer Protocol (SFTP) server from ‘OFFLINE` to `ONLINE`. It has no impact on an SFTP server that is already `ONLINE`. An `ONLINE` server can accept and process file transfer jobs.

The state of ‘STARTING` indicates that the server is in an intermediate state, either not fully able to respond, or not fully online. The values of `START_FAILED` can indicate an error condition.

No response is returned from this call.

Examples:

Request syntax with placeholder values


resp = client.start_server({
  server_id: "ServerId", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :server_id (required, String)

    A system-assigned unique identifier for an SFTP server that you start.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



978
979
980
981
# File 'lib/aws-sdk-transfer/client.rb', line 978

def start_server(params = {}, options = {})
  req = build_request(:start_server, params)
  req.send_request(options)
end

#stop_server(params = {}) ⇒ Struct

Changes the state of an SFTP server from ‘ONLINE` to `OFFLINE`. An `OFFLINE` server cannot accept and process file transfer jobs. Information tied to your server such as server and user properties are not affected by stopping your server. Stopping a server will not reduce or impact your Secure File Transfer Protocol (SFTP) endpoint billing.

The state of ‘STOPPING` indicates that the server is in an intermediate state, either not fully able to respond, or not fully offline. The values of `STOP_FAILED` can indicate an error condition.

No response is returned from this call.

Examples:

Request syntax with placeholder values


resp = client.stop_server({
  server_id: "ServerId", # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :server_id (required, String)

    A system-assigned unique identifier for an SFTP server that you stopped.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1012
1013
1014
1015
# File 'lib/aws-sdk-transfer/client.rb', line 1012

def stop_server(params = {}, options = {})
  req = build_request(:stop_server, params)
  req.send_request(options)
end

#tag_resource(params = {}) ⇒ Struct

Attaches a key-value pair to a resource, as identified by its Amazon Resource Name (ARN). Resources are users, servers, roles, and other entities.

There is no response returned from this call.

Examples:

Request syntax with placeholder values


resp = client.tag_resource({
  arn: "Arn", # required
  tags: [ # required
    {
      key: "TagKey", # required
      value: "TagValue", # required
    },
  ],
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    An Amazon Resource Name (ARN) for a specific AWS resource, such as a server, user, or role.

  • :tags (required, Array<Types::Tag>)

    Key-value pairs assigned to ARNs that you can use to group and search for resources by type. You can attach this metadata to user accounts for any purpose.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1050
1051
1052
1053
# File 'lib/aws-sdk-transfer/client.rb', line 1050

def tag_resource(params = {}, options = {})
  req = build_request(:tag_resource, params)
  req.send_request(options)
end

#test_identity_provider(params = {}) ⇒ Types::TestIdentityProviderResponse

If the ‘IdentityProviderType` of the server is `API_Gateway`, tests whether your API Gateway is set up successfully. We highly recommend that you call this operation to test your authentication method as soon as you create your server. By doing so, you can troubleshoot issues with the API Gateway integration to ensure that your users can successfully use the service.

Examples:

Request syntax with placeholder values


resp = client.test_identity_provider({
  server_id: "ServerId", # required
  user_name: "UserName", # required
  user_password: "UserPassword",
})

Response structure


resp.response #=> String
resp.status_code #=> Integer
resp.message #=> String
resp.url #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :server_id (required, String)

    A system-assigned identifier for a specific server. That server’s user authentication method is tested with a user name and password.

  • :user_name (required, String)

    This request parameter is the name of the user account to be tested.

  • :user_password (String)

    The password of the user account to be tested.

Returns:

See Also:



1098
1099
1100
1101
# File 'lib/aws-sdk-transfer/client.rb', line 1098

def test_identity_provider(params = {}, options = {})
  req = build_request(:test_identity_provider, params)
  req.send_request(options)
end

#untag_resource(params = {}) ⇒ Struct

Detaches a key-value pair from a resource, as identified by its Amazon Resource Name (ARN). Resources are users, servers, roles, and other entities.

No response is returned from this call.

Examples:

Request syntax with placeholder values


resp = client.untag_resource({
  arn: "Arn", # required
  tag_keys: ["TagKey"], # required
})

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :arn (required, String)

    This is the value of the resource that will have the tag removed. An Amazon Resource Name (ARN) is an identifier for a specific AWS resource, such as a server, user, or role.

  • :tag_keys (required, Array<String>)

    TagKeys are key-value pairs assigned to ARNs that can be used to group and search for resources by type. This metadata can be attached to resources for any purpose.

Returns:

  • (Struct)

    Returns an empty response.

See Also:



1132
1133
1134
1135
# File 'lib/aws-sdk-transfer/client.rb', line 1132

def untag_resource(params = {}, options = {})
  req = build_request(:untag_resource, params)
  req.send_request(options)
end

#update_server(params = {}) ⇒ Types::UpdateServerResponse

Updates the server properties after that server has been created.

The ‘UpdateServer` call returns the `ServerId` of the Secure File Transfer Protocol (SFTP) server you updated.

Examples:

Request syntax with placeholder values


resp = client.update_server({
  endpoint_details: {
    address_allocation_ids: ["AddressAllocationId"],
    subnet_ids: ["SubnetId"],
    vpc_endpoint_id: "VpcEndpointId",
    vpc_id: "VpcId",
  },
  endpoint_type: "PUBLIC", # accepts PUBLIC, VPC, VPC_ENDPOINT
  host_key: "HostKey",
  identity_provider_details: {
    url: "Url",
    invocation_role: "Role",
  },
  logging_role: "NullableRole",
  server_id: "ServerId", # required
})

Response structure


resp.server_id #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :endpoint_details (Types::EndpointDetails)

    The virtual private cloud (VPC) endpoint settings that are configured for your SFTP server. With a VPC endpoint, you can restrict access to your SFTP server to resources only within your VPC. To control incoming internet traffic, you will need to associate one or more Elastic IP addresses with your server’s endpoint.

  • :endpoint_type (String)

    The type of endpoint that you want your SFTP server to connect to. You can choose to connect to the public internet or a virtual private cloud (VPC) endpoint. With a VPC endpoint, your SFTP server isn’t accessible over the public internet.

  • :host_key (String)

    The RSA private key as generated by ‘ssh-keygen -N “” -f my-new-server-key`.

    If you aren’t planning to migrate existing users from an existing SFTP server to a new AWS SFTP server, don’t update the host key. Accidentally changing a server’s host key can be disruptive.

    For more information, see “docs.aws.amazon.com/transfer/latest/userguide/configuring-servers.html#change-host-key” in the *AWS SFTP User Guide.*

  • :identity_provider_details (Types::IdentityProviderDetails)

    This response parameter is an array containing all of the information required to call a customer’s authentication API method.

  • :logging_role (String)

    A value that changes the AWS Identity and Access Management (IAM) role that allows Amazon S3 events to be logged in Amazon CloudWatch, turning logging on or off.

  • :server_id (required, String)

    A system-assigned unique identifier for an SFTP server instance that the user account is assigned to.

Returns:

See Also:



1211
1212
1213
1214
# File 'lib/aws-sdk-transfer/client.rb', line 1211

def update_server(params = {}, options = {})
  req = build_request(:update_server, params)
  req.send_request(options)
end

#update_user(params = {}) ⇒ Types::UpdateUserResponse

Assigns new properties to a user. Parameters you pass modify any or all of the following: the home directory, role, and policy for the ‘UserName` and `ServerId` you specify.

The response returns the ‘ServerId` and the `UserName` for the updated user.

Examples:

Request syntax with placeholder values


resp = client.update_user({
  home_directory: "HomeDirectory",
  home_directory_type: "PATH", # accepts PATH, LOGICAL
  home_directory_mappings: [
    {
      entry: "MapEntry", # required
      target: "MapTarget", # required
    },
  ],
  policy: "Policy",
  role: "Role",
  server_id: "ServerId", # required
  user_name: "UserName", # required
})

Response structure


resp.server_id #=> String
resp.user_name #=> String

Parameters:

  • params (Hash) (defaults to: {})

    ({})

Options Hash (params):

  • :home_directory (String)

    A parameter that specifies the landing directory (folder) for a user when they log in to the server using their client.

    An example is ‘<your-Amazon-S3-bucket-name>/home/username`.

  • :home_directory_type (String)

    The type of landing directory (folder) you want your users’ home directory to be when they log into the SFTP serve. If you set it to ‘PATH`, the user will see the absolute Amazon S3 bucket paths as is in their SFTP clients. If you set it `LOGICAL`, you will need to provide mappings in the `HomeDirectoryMappings` for how you want to make S3 paths visible to your user.

  • :home_directory_mappings (Array<Types::HomeDirectoryMapEntry>)

    Logical directory mappings that specify what S3 paths and keys should be visible to your user and how you want to make them visible. You will need to specify the “‘Entry`” and “`Target`” pair, where `Entry` shows how the path is made visible and `Target` is the actual S3 path. If you only specify a target, it will be displayed as is. You will need to also make sure that your AWS IAM Role provides access to paths in `Target`. The following is an example.

    ‘’[ “/bucket2/documentation”, { “Entry”: “your-personal-report.pdf”, “Target”: “/bucket3/customized-reports/$transfer:UserName.pdf” } ]‘`

    In most cases, you can use this value instead of the scope down policy to lock your user down to the designated home directory (“chroot”). To do this, you can set ‘Entry` to ’/‘ and set `Target` to the HomeDirectory parameter value.

    <note markdown=“1”> If the target of a logical directory entry does not exist in S3, the entry will be ignored. As a workaround, you can use the S3 api to create 0 byte objects as place holders for your directory. If using the CLI, use the s3api call instead of s3 so you can use the put-object operation. For example, you use the following: ‘aws s3api put-object –bucket bucketname –key path/to/folder/`. Make sure that the end of the key name ends in a / for it to be considered a folder.

    </note>
    
  • :policy (String)

    Allows you to supply a scope-down policy for your user so you can use the same AWS Identity and Access Management (IAM) role across multiple users. The policy scopes down user access to portions of your Amazon S3 bucket. Variables you can use inside this policy include ‘$Transfer:UserName`, `$Transfer:HomeDirectory`, and `$Transfer:HomeBucket`.

    <note markdown=“1”> For scope-down policies, AWS Transfer for SFTP stores the policy as a JSON blob, instead of the Amazon Resource Name (ARN) of the policy. You save the policy as a JSON blob and pass it in the ‘Policy` argument.

    For an example of a scope-down policy, see
    

    docs.aws.amazon.com/transfer/latest/userguide/users.html#users-policies-scope-down”&gt;Creating a Scope-Down Policy.

    For more information, see
    

    docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html” in the *AWS Security Token Service API Reference*.

    </note>
    
  • :role (String)

    The IAM role that controls your user’s access to your Amazon S3 bucket. The policies attached to this role will determine the level of access you want to provide your users when transferring files into and out of your Amazon S3 bucket or buckets. The IAM role should also contain a trust relationship that allows the Secure File Transfer Protocol (SFTP) server to access your resources when servicing your SFTP user’s transfer requests.

  • :server_id (required, String)

    A system-assigned unique identifier for an SFTP server instance that the user account is assigned to.

  • :user_name (required, String)

    A unique string that identifies a user and is associated with a server as specified by the ‘ServerId`. This is the string that will be used by your user when they log in to your SFTP server. This user name is a minimum of 3 and a maximum of 32 characters long. The following are valid characters: a-z, A-Z, 0-9, underscore, and hyphen. The user name can’t start with a hyphen.

Returns:

See Also:



1340
1341
1342
1343
# File 'lib/aws-sdk-transfer/client.rb', line 1340

def update_user(params = {}, options = {})
  req = build_request(:update_user, params)
  req.send_request(options)
end

#waiter_namesObject

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Deprecated.


1364
1365
1366
# File 'lib/aws-sdk-transfer/client.rb', line 1364

def waiter_names
  []
end