You are viewing documentation for version 2 of the AWS SDK for Ruby. Version 3 documentation can be found here.

Class: Aws::Translate::Client

Inherits:
Seahorse::Client::Base show all
Defined in:
(unknown)

Overview

An API client for Amazon Translate. To construct a client, you need to configure a :region and :credentials.

translate = Aws::Translate::Client.new(
  region: region_name,
  credentials: credentials,
  # ...
)

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

Region

You can configure a default region in the following locations:

  • ENV['AWS_REGION']
  • Aws.config[:region]

Go here for a list of supported regions.

Credentials

Default credentials are loaded automatically from the following locations:

  • ENV['AWS_ACCESS_KEY_ID'] and ENV['AWS_SECRET_ACCESS_KEY']
  • Aws.config[:credentials]
  • The shared credentials ini file at ~/.aws/credentials (more information)
  • From an instance profile when running on EC2

You can also construct a credentials object from one of the following classes:

Alternatively, you configure credentials with :access_key_id and :secret_access_key:

# load credentials from disk
creds = YAML.load(File.read('/path/to/secrets'))

Aws::Translate::Client.new(
  access_key_id: creds['access_key_id'],
  secret_access_key: creds['secret_access_key']
)

Always load your credentials from outside your application. Avoid configuring credentials statically and never commit them to source control.

Instance Attribute Summary

Attributes inherited from Seahorse::Client::Base

#config, #handlers

Constructor collapse

API Operations collapse

Instance Method Summary collapse

Methods inherited from Seahorse::Client::Base

add_plugin, api, #build_request, clear_plugins, define, new, #operation, #operation_names, plugins, remove_plugin, set_api, set_plugins

Methods included from Seahorse::Client::HandlerBuilder

#handle, #handle_request, #handle_response

Constructor Details

#initialize(options = {}) ⇒ Aws::Translate::Client

Constructs an API client.

Options Hash (options):

  • :access_key_id (String)

    Used to set credentials statically. See Plugins::RequestSigner for more details.

  • :active_endpoint_cache (Boolean)

    When set to true, a thread polling for endpoints will be running in the background every 60 secs (default). Defaults to false. See Plugins::EndpointDiscovery for more details.

  • :convert_params (Boolean) — default: true

    When true, an attempt is made to coerce request parameters into the required types. See Plugins::ParamConverter for more details.

  • :credentials (required, Credentials)

    Your AWS credentials. The following locations will be searched in order for credentials:

    • :access_key_id, :secret_access_key, and :session_token options
    • ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
    • HOME/.aws/credentials shared credentials file
    • EC2 instance profile credentials See Plugins::RequestSigner for more details.
  • :disable_host_prefix_injection (Boolean)

    Set to true to disable SDK automatically adding host prefix to default service endpoint when available. See Plugins::EndpointPattern for more details.

  • :endpoint (String)

    A default endpoint is constructed from the :region. See Plugins::RegionalEndpoint for more details.

  • :endpoint_cache_max_entries (Integer)

    Used for the maximum size limit of the LRU cache storing endpoints data for endpoint discovery enabled operations. Defaults to 1000. See Plugins::EndpointDiscovery for more details.

  • :endpoint_cache_max_threads (Integer)

    Used for the maximum threads in use for polling endpoints to be cached, defaults to 10. See Plugins::EndpointDiscovery for more details.

  • :endpoint_cache_poll_interval (Integer)

    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. See Plugins::EndpointDiscovery for more details.

  • :endpoint_discovery (Boolean)

    When set to true, endpoint discovery will be enabled for operations when available. Defaults to false. See Plugins::EndpointDiscovery for more details.

  • :http_continue_timeout (Float) — default: 1

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :http_idle_timeout (Integer) — default: 5

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :http_open_timeout (Integer) — default: 15

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :http_proxy (String)

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :http_read_timeout (Integer) — default: 60

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :http_wire_trace (Boolean) — default: false

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :log_level (Symbol) — default: :info

    The log level to send messages to the logger at. See Plugins::Logging for more details.

  • :log_formatter (Logging::LogFormatter)

    The log formatter. Defaults to Seahorse::Client::Logging::Formatter.default. See Plugins::Logging for more details.

  • :logger (Logger) — default: nil

    The Logger instance to send log messages to. If this option is not set, logging will be disabled. See Plugins::Logging for more details.

  • :profile (String)

    Used when loading credentials from the shared credentials file at HOME/.aws/credentials. When not specified, 'default' is used. See Plugins::RequestSigner for more details.

  • :raise_response_errors (Boolean) — default: true

    When true, response errors are raised. See Seahorse::Client::Plugins::RaiseResponseErrors for more details.

  • :region (required, String)

    The AWS region to connect to. The region is used to construct the client endpoint. Defaults to ENV['AWS_REGION']. Also checks AMAZON_REGION and AWS_DEFAULT_REGION. See Plugins::RegionalEndpoint for more details.

  • :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 and auth errors from expired credentials. See Plugins::RetryErrors for more details.

  • :secret_access_key (String)

    Used to set credentials statically. See Plugins::RequestSigner for more details.

  • :session_token (String)

    Used to set credentials statically. See Plugins::RequestSigner for more details.

  • :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. See Plugins::Protocols::JsonRpc for more details.

  • :ssl_ca_bundle (String)

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :ssl_ca_directory (String)

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :ssl_ca_store (String)

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :ssl_verify_peer (Boolean) — default: true

    See Seahorse::Client::Plugins::NetHttp for more details.

  • :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. See Plugins::StubResponses for more details.

  • :validate_params (Boolean) — default: true

    When true, request parameters are validated before sending the request. See Plugins::ParamValidator for more details.

Instance Method Details

#delete_terminology(options = {}) ⇒ Struct

A synchronous action that deletes a custom terminology.

Examples:

Request syntax with placeholder values


resp = client.delete_terminology({
  name: "ResourceName", # required
})

Options Hash (options):

  • :name (required, String)

    The name of the custom terminology being deleted.

Returns:

  • (Struct)

    Returns an empty response.

See Also:

#describe_text_translation_job(options = {}) ⇒ Types::DescribeTextTranslationJobResponse

Gets the properties associated with an asycnhronous batch translation job including name, ID, status, source and target languages, input/output S3 buckets, and so on.

Examples:

Request syntax with placeholder values


resp = client.describe_text_translation_job({
  job_id: "JobId", # required
})

Response structure


resp.text_translation_job_properties.job_id #=> String
resp.text_translation_job_properties.job_name #=> String
resp.text_translation_job_properties.job_status #=> String, one of "SUBMITTED", "IN_PROGRESS", "COMPLETED", "COMPLETED_WITH_ERROR", "FAILED", "STOP_REQUESTED", "STOPPED"
resp.text_translation_job_properties.job_details.translated_documents_count #=> Integer
resp.text_translation_job_properties.job_details.documents_with_errors_count #=> Integer
resp.text_translation_job_properties.job_details.input_documents_count #=> Integer
resp.text_translation_job_properties.source_language_code #=> String
resp.text_translation_job_properties.target_language_codes #=> Array
resp.text_translation_job_properties.target_language_codes[0] #=> String
resp.text_translation_job_properties.terminology_names #=> Array
resp.text_translation_job_properties.terminology_names[0] #=> String
resp.text_translation_job_properties.message #=> String
resp.text_translation_job_properties. #=> Time
resp.text_translation_job_properties.end_time #=> Time
resp.text_translation_job_properties.input_data_config.s3_uri #=> String
resp.text_translation_job_properties.input_data_config.content_type #=> String
resp.text_translation_job_properties.output_data_config.s3_uri #=> String
resp.text_translation_job_properties.data_access_role_arn #=> String

Options Hash (options):

  • :job_id (required, String)

    The identifier that Amazon Translate generated for the job. The StartTextTranslationJob operation returns this identifier in its response.

Returns:

See Also:

#get_terminology(options = {}) ⇒ Types::GetTerminologyResponse

Retrieves a custom terminology.

Examples:

Request syntax with placeholder values


resp = client.get_terminology({
  name: "ResourceName", # required
  terminology_data_format: "CSV", # required, accepts CSV, TMX
})

Response structure


resp.terminology_properties.name #=> String
resp.terminology_properties.description #=> String
resp.terminology_properties.arn #=> String
resp.terminology_properties.source_language_code #=> String
resp.terminology_properties.target_language_codes #=> Array
resp.terminology_properties.target_language_codes[0] #=> String
resp.terminology_properties.encryption_key.type #=> String, one of "KMS"
resp.terminology_properties.encryption_key.id #=> String
resp.terminology_properties.size_bytes #=> Integer
resp.terminology_properties.term_count #=> Integer
resp.terminology_properties.created_at #=> Time
resp.terminology_properties.last_updated_at #=> Time
resp.terminology_data_location.repository_type #=> String
resp.terminology_data_location.location #=> String

Options Hash (options):

  • :name (required, String)

    The name of the custom terminology being retrieved.

  • :terminology_data_format (required, String)

    The data format of the custom terminology being retrieved, either CSV or TMX.

Returns:

See Also:

#import_terminology(options = {}) ⇒ Types::ImportTerminologyResponse

Creates or updates a custom terminology, depending on whether or not one already exists for the given terminology name. Importing a terminology with the same name as an existing one will merge the terminologies based on the chosen merge strategy. Currently, the only supported merge strategy is OVERWRITE, and so the imported terminology will overwrite an existing terminology of the same name.

If you import a terminology that overwrites an existing one, the new terminology take up to 10 minutes to fully propagate and be available for use in a translation due to cache policies with the DataPlane service that performs the translations.

Examples:

Request syntax with placeholder values


resp = client.import_terminology({
  name: "ResourceName", # required
  merge_strategy: "OVERWRITE", # required, accepts OVERWRITE
  description: "Description",
  terminology_data: { # required
    file: "data", # required
    format: "CSV", # required, accepts CSV, TMX
  },
  encryption_key: {
    type: "KMS", # required, accepts KMS
    id: "EncryptionKeyID", # required
  },
})

Response structure


resp.terminology_properties.name #=> String
resp.terminology_properties.description #=> String
resp.terminology_properties.arn #=> String
resp.terminology_properties.source_language_code #=> String
resp.terminology_properties.target_language_codes #=> Array
resp.terminology_properties.target_language_codes[0] #=> String
resp.terminology_properties.encryption_key.type #=> String, one of "KMS"
resp.terminology_properties.encryption_key.id #=> String
resp.terminology_properties.size_bytes #=> Integer
resp.terminology_properties.term_count #=> Integer
resp.terminology_properties.created_at #=> Time
resp.terminology_properties.last_updated_at #=> Time

Options Hash (options):

  • :name (required, String)

    The name of the custom terminology being imported.

  • :merge_strategy (required, String)

    The merge strategy of the custom terminology being imported. Currently, only the OVERWRITE merge strategy is supported. In this case, the imported terminology will overwrite an existing terminology of the same name.

  • :description (String)

    The description of the custom terminology being imported.

  • :terminology_data (required, Types::TerminologyData)

    The terminology data for the custom terminology being imported.

  • :encryption_key (Types::EncryptionKey)

    The encryption key for the custom terminology being imported.

Returns:

See Also:

#list_terminologies(options = {}) ⇒ Types::ListTerminologiesResponse

Provides a list of custom terminologies associated with your account.

Examples:

Request syntax with placeholder values


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

Response structure


resp.terminology_properties_list #=> Array
resp.terminology_properties_list[0].name #=> String
resp.terminology_properties_list[0].description #=> String
resp.terminology_properties_list[0].arn #=> String
resp.terminology_properties_list[0].source_language_code #=> String
resp.terminology_properties_list[0].target_language_codes #=> Array
resp.terminology_properties_list[0].target_language_codes[0] #=> String
resp.terminology_properties_list[0].encryption_key.type #=> String, one of "KMS"
resp.terminology_properties_list[0].encryption_key.id #=> String
resp.terminology_properties_list[0].size_bytes #=> Integer
resp.terminology_properties_list[0].term_count #=> Integer
resp.terminology_properties_list[0].created_at #=> Time
resp.terminology_properties_list[0].last_updated_at #=> Time
resp.next_token #=> String

Options Hash (options):

  • :next_token (String)

    If the result of the request to ListTerminologies was truncated, include the NextToken to fetch the next group of custom terminologies.

  • :max_results (Integer)

    The maximum number of custom terminologies returned per list request.

Returns:

See Also:

#list_text_translation_jobs(options = {}) ⇒ Types::ListTextTranslationJobsResponse

Gets a list of the batch translation jobs that you have submitted.

Examples:

Request syntax with placeholder values


resp = client.list_text_translation_jobs({
  filter: {
    job_name: "JobName",
    job_status: "SUBMITTED", # accepts SUBMITTED, IN_PROGRESS, COMPLETED, COMPLETED_WITH_ERROR, FAILED, STOP_REQUESTED, STOPPED
    submitted_before_time: Time.now,
    submitted_after_time: Time.now,
  },
  next_token: "NextToken",
  max_results: 1,
})

Response structure


resp.text_translation_job_properties_list #=> Array
resp.text_translation_job_properties_list[0].job_id #=> String
resp.text_translation_job_properties_list[0].job_name #=> String
resp.text_translation_job_properties_list[0].job_status #=> String, one of "SUBMITTED", "IN_PROGRESS", "COMPLETED", "COMPLETED_WITH_ERROR", "FAILED", "STOP_REQUESTED", "STOPPED"
resp.text_translation_job_properties_list[0].job_details.translated_documents_count #=> Integer
resp.text_translation_job_properties_list[0].job_details.documents_with_errors_count #=> Integer
resp.text_translation_job_properties_list[0].job_details.input_documents_count #=> Integer
resp.text_translation_job_properties_list[0].source_language_code #=> String
resp.text_translation_job_properties_list[0].target_language_codes #=> Array
resp.text_translation_job_properties_list[0].target_language_codes[0] #=> String
resp.text_translation_job_properties_list[0].terminology_names #=> Array
resp.text_translation_job_properties_list[0].terminology_names[0] #=> String
resp.text_translation_job_properties_list[0].message #=> String
resp.text_translation_job_properties_list[0]. #=> Time
resp.text_translation_job_properties_list[0].end_time #=> Time
resp.text_translation_job_properties_list[0].input_data_config.s3_uri #=> String
resp.text_translation_job_properties_list[0].input_data_config.content_type #=> String
resp.text_translation_job_properties_list[0].output_data_config.s3_uri #=> String
resp.text_translation_job_properties_list[0].data_access_role_arn #=> String
resp.next_token #=> String

Options Hash (options):

  • :filter (Types::TextTranslationJobFilter)

    The parameters that specify which batch translation jobs to retrieve. Filters include job name, job status, and submission time. You can only set one filter at a time.

  • :next_token (String)

    The token to request the next page of results.

  • :max_results (Integer)

    The maximum number of results to return in each page. The default value is 100.

Returns:

See Also:

#start_text_translation_job(options = {}) ⇒ Types::StartTextTranslationJobResponse

Starts an asynchronous batch translation job. Batch translation jobs can be used to translate large volumes of text across multiple documents at once. For more information, see async.

Batch translation jobs can be described with the DescribeTextTranslationJob operation, listed with the ListTextTranslationJobs operation, and stopped with the StopTextTranslationJob operation.

Amazon Translate does not support batch translation of multiple source languages at once.

Examples:

Request syntax with placeholder values


resp = client.start_text_translation_job({
  job_name: "JobName",
  input_data_config: { # required
    s3_uri: "S3Uri", # required
    content_type: "ContentType", # required
  },
  output_data_config: { # required
    s3_uri: "S3Uri", # required
  },
  data_access_role_arn: "IamRoleArn", # required
  source_language_code: "LanguageCodeString", # required
  target_language_codes: ["LanguageCodeString"], # required
  terminology_names: ["ResourceName"],
  client_token: "ClientTokenString", # required
})

Response structure


resp.job_id #=> String
resp.job_status #=> String, one of "SUBMITTED", "IN_PROGRESS", "COMPLETED", "COMPLETED_WITH_ERROR", "FAILED", "STOP_REQUESTED", "STOPPED"

Options Hash (options):

  • :job_name (String)

    The name of the batch translation job to be performed.

  • :input_data_config (required, Types::InputDataConfig)

    Specifies the format and S3 location of the input documents for the translation job.

  • :output_data_config (required, Types::OutputDataConfig)

    Specifies the S3 folder to which your job output will be saved.

  • :data_access_role_arn (required, String)

    The Amazon Resource Name (ARN) of an AWS Identity Access and Management (IAM) role that grants Amazon Translate read access to your input data. For more nformation, see identity-and-access-management.

  • :source_language_code (required, String)

    The language code of the input language. For a list of language codes, see what-is-languages.

    Amazon Translate does not automatically detect a source language during batch translation jobs.

  • :target_language_codes (required, Array<String>)

    The language code of the output language.

  • :terminology_names (Array<String>)

    The name of the terminology to use in the batch translation job. For a list of available terminologies, use the ListTerminologies operation.

  • :client_token (required, String)

    This parameter will be auto-filled on your behalf with a random UUIDv4 when no value is provided. The client token of the EC2 instance calling the request. This token is auto-generated when using the Amazon Translate SDK. Otherwise, use the DescribeInstances EC2 operation to retreive an instance\'s client token. For more information, see Client Tokens in the EC2 User Guide.

Returns:

See Also:

#stop_text_translation_job(options = {}) ⇒ Types::StopTextTranslationJobResponse

Stops an asynchronous batch translation job that is in progress.

If the job's state is IN_PROGRESS, the job will be marked for termination and put into the STOP_REQUESTED state. If the job completes before it can be stopped, it is put into the COMPLETED state. Otherwise, the job is put into the STOPPED state.

Asynchronous batch translation jobs are started with the StartTextTranslationJob operation. You can use the DescribeTextTranslationJob or ListTextTranslationJobs operations to get a batch translation job's JobId.

Examples:

Request syntax with placeholder values


resp = client.stop_text_translation_job({
  job_id: "JobId", # required
})

Response structure


resp.job_id #=> String
resp.job_status #=> String, one of "SUBMITTED", "IN_PROGRESS", "COMPLETED", "COMPLETED_WITH_ERROR", "FAILED", "STOP_REQUESTED", "STOPPED"

Options Hash (options):

  • :job_id (required, String)

    The job ID of the job to be stopped.

Returns:

See Also:

#translate_text(options = {}) ⇒ Types::TranslateTextResponse

Translates input text from the source language to the target language. For a list of available languages and language codes, see what-is-languages.

Examples:

Request syntax with placeholder values


resp = client.translate_text({
  text: "BoundedLengthString", # required
  terminology_names: ["ResourceName"],
  source_language_code: "LanguageCodeString", # required
  target_language_code: "LanguageCodeString", # required
})

Response structure


resp.translated_text #=> String
resp.source_language_code #=> String
resp.target_language_code #=> String
resp.applied_terminologies #=> Array
resp.applied_terminologies[0].name #=> String
resp.applied_terminologies[0].terms #=> Array
resp.applied_terminologies[0].terms[0].source_text #=> String
resp.applied_terminologies[0].terms[0].target_text #=> String

Options Hash (options):

  • :text (required, String)

    The text to translate. The text string can be a maximum of 5,000 bytes long. Depending on your character set, this may be fewer than 5,000 characters.

  • :terminology_names (Array<String>)

    The name of the terminology list file to be used in the TranslateText request. You can use 1 terminology list at most in a TranslateText request. Terminology lists can contain a maximum of 256 terms.

  • :source_language_code (required, String)

    The language code for the language of the source text. The language must be a language supported by Amazon Translate. For a list of language codes, see what-is-languages.

    To have Amazon Translate determine the source language of your text, you can specify auto in the SourceLanguageCode field. If you specify auto, Amazon Translate will call Amazon Comprehend to determine the source language.

  • :target_language_code (required, String)

    The language code requested for the language of the target text. The language must be a language supported by Amazon Translate.

Returns:

See Also:

#wait_until(waiter_name, params = {}) {|waiter| ... } ⇒ Boolean

Waiters polls an API operation until a resource enters a desired state.

Basic Usage

Waiters will poll until they are succesful, they fail by entering a terminal state, or until a maximum number of attempts are made.

# polls in a loop, sleeping between attempts client.waiter_until(waiter_name, params)

Configuration

You can configure the maximum number of polling attempts, and the delay (in seconds) between each polling attempt. You configure waiters by passing a block to #wait_until:

# poll for ~25 seconds
client.wait_until(...) do |w|
  w.max_attempts = 5
  w.delay = 5
end

Callbacks

You can be notified before each polling attempt and before each delay. If you throw :success or :failure from these callbacks, it will terminate the waiter.

started_at = Time.now
client.wait_until(...) do |w|

  # disable max attempts
  w.max_attempts = nil

  # poll for 1 hour, instead of a number of attempts
  w.before_wait do |attempts, response|
    throw :failure if Time.now - started_at > 3600
  end

end

Handling Errors

When a waiter is successful, it returns true. When a waiter fails, it raises an error. All errors raised extend from Waiters::Errors::WaiterFailed.

begin
  client.wait_until(...)
rescue Aws::Waiters::Errors::WaiterFailed
  # resource did not enter the desired state in time
end

Parameters:

  • waiter_name (Symbol)

    The name of the waiter. See #waiter_names for a full list of supported waiters.

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

    Additional request parameters. See the #waiter_names for a list of supported waiters and what request they call. The called request determines the list of accepted parameters.

Yield Parameters:

Returns:

  • (Boolean)

    Returns true if the waiter was successful.

Raises:

  • (Errors::FailureStateError)

    Raised when the waiter terminates because the waiter has entered a state that it will not transition out of, preventing success.

  • (Errors::TooManyAttemptsError)

    Raised when the configured maximum number of attempts have been made, and the waiter is not yet successful.

  • (Errors::UnexpectedError)

    Raised when an error is encounted while polling for a resource that is not expected.

  • (Errors::NoSuchWaiterError)

    Raised when you request to wait for an unknown state.

#waiter_namesArray<Symbol>

Returns the list of supported waiters. The following table lists the supported waiters and the client method they call:

Waiter NameClient MethodDefault Delay:Default Max Attempts:

Returns:

  • (Array<Symbol>)

    the list of supported waiters.