# This file is auto-generated by AWSMetadata.jl
using AWS
using AWS.AWSServices: translate
using AWS.Compat
using AWS.UUIDs

"""
    CreateParallelData()

Creates a parallel data resource in Amazon Translate by importing an input file from Amazon S3. Parallel data files contain examples of source phrases and their translations from your translation memory. By adding parallel data, you can influence the style, tone, and word choice in your translation output.

# Required Parameters
- `ClientToken`: A unique identifier for the request. This token is automatically generated when you use Amazon Translate through an AWS SDK.
- `Name`: A custom name for the parallel data resource in Amazon Translate. You must assign a name that is unique in the account and region.
- `ParallelDataConfig`: Specifies the format and S3 location of the parallel data input file.

# Optional Parameters
- `Description`: A custom description for the parallel data resource in Amazon Translate.
- `EncryptionKey`: 
"""
create_parallel_data(ClientToken, Name, ParallelDataConfig; aws_config::AWSConfig=global_aws_config()) = translate("CreateParallelData", Dict{String, Any}("ClientToken"=>ClientToken, "Name"=>Name, "ParallelDataConfig"=>ParallelDataConfig); aws_config=aws_config)
create_parallel_data(ClientToken, Name, ParallelDataConfig, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = translate("CreateParallelData", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ClientToken"=>ClientToken, "Name"=>Name, "ParallelDataConfig"=>ParallelDataConfig), args)); aws_config=aws_config)

"""
    DeleteParallelData()

Deletes a parallel data resource in Amazon Translate.

# Required Parameters
- `Name`: The name of the parallel data resource that is being deleted.

"""
delete_parallel_data(Name; aws_config::AWSConfig=global_aws_config()) = translate("DeleteParallelData", Dict{String, Any}("Name"=>Name); aws_config=aws_config)
delete_parallel_data(Name, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = translate("DeleteParallelData", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Name"=>Name), args)); aws_config=aws_config)

"""
    DeleteTerminology()

A synchronous action that deletes a custom terminology.

# Required Parameters
- `Name`: The name of the custom terminology being deleted. 

"""
delete_terminology(Name; aws_config::AWSConfig=global_aws_config()) = translate("DeleteTerminology", Dict{String, Any}("Name"=>Name); aws_config=aws_config)
delete_terminology(Name, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = translate("DeleteTerminology", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Name"=>Name), args)); aws_config=aws_config)

"""
    DescribeTextTranslationJob()

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.

# Required Parameters
- `JobId`: The identifier that Amazon Translate generated for the job. The StartTextTranslationJob operation returns this identifier in its response.

"""
describe_text_translation_job(JobId; aws_config::AWSConfig=global_aws_config()) = translate("DescribeTextTranslationJob", Dict{String, Any}("JobId"=>JobId); aws_config=aws_config)
describe_text_translation_job(JobId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = translate("DescribeTextTranslationJob", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("JobId"=>JobId), args)); aws_config=aws_config)

"""
    GetParallelData()

Provides information about a parallel data resource.

# Required Parameters
- `Name`: The name of the parallel data resource that is being retrieved.

"""
get_parallel_data(Name; aws_config::AWSConfig=global_aws_config()) = translate("GetParallelData", Dict{String, Any}("Name"=>Name); aws_config=aws_config)
get_parallel_data(Name, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = translate("GetParallelData", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Name"=>Name), args)); aws_config=aws_config)

"""
    GetTerminology()

Retrieves a custom terminology.

# Required Parameters
- `Name`: The name of the custom terminology being retrieved.
- `TerminologyDataFormat`: The data format of the custom terminology being retrieved, either CSV or TMX.

"""
get_terminology(Name, TerminologyDataFormat; aws_config::AWSConfig=global_aws_config()) = translate("GetTerminology", Dict{String, Any}("Name"=>Name, "TerminologyDataFormat"=>TerminologyDataFormat); aws_config=aws_config)
get_terminology(Name, TerminologyDataFormat, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = translate("GetTerminology", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("Name"=>Name, "TerminologyDataFormat"=>TerminologyDataFormat), args)); aws_config=aws_config)

"""
    ImportTerminology()

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.

# Required Parameters
- `MergeStrategy`: 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.
- `Name`: The name of the custom terminology being imported.
- `TerminologyData`: The terminology data for the custom terminology being imported.

# Optional Parameters
- `Description`: The description of the custom terminology being imported.
- `EncryptionKey`: The encryption key for the custom terminology being imported.
"""
import_terminology(MergeStrategy, Name, TerminologyData; aws_config::AWSConfig=global_aws_config()) = translate("ImportTerminology", Dict{String, Any}("MergeStrategy"=>MergeStrategy, "Name"=>Name, "TerminologyData"=>TerminologyData); aws_config=aws_config)
import_terminology(MergeStrategy, Name, TerminologyData, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = translate("ImportTerminology", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("MergeStrategy"=>MergeStrategy, "Name"=>Name, "TerminologyData"=>TerminologyData), args)); aws_config=aws_config)

"""
    ListParallelData()

Provides a list of your parallel data resources in Amazon Translate.

# Optional Parameters
- `MaxResults`: The maximum number of parallel data resources returned for each request.
- `NextToken`: A string that specifies the next page of results to return in a paginated response.
"""
list_parallel_data(; aws_config::AWSConfig=global_aws_config()) = translate("ListParallelData"; aws_config=aws_config)
list_parallel_data(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = translate("ListParallelData", args; aws_config=aws_config)

"""
    ListTerminologies()

Provides a list of custom terminologies associated with your account.

# Optional Parameters
- `MaxResults`: The maximum number of custom terminologies returned per list request.
- `NextToken`: If the result of the request to ListTerminologies was truncated, include the NextToken to fetch the next group of custom terminologies. 
"""
list_terminologies(; aws_config::AWSConfig=global_aws_config()) = translate("ListTerminologies"; aws_config=aws_config)
list_terminologies(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = translate("ListTerminologies", args; aws_config=aws_config)

"""
    ListTextTranslationJobs()

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

# Optional Parameters
- `Filter`: 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.
- `MaxResults`: The maximum number of results to return in each page. The default value is 100.
- `NextToken`: The token to request the next page of results.
"""
list_text_translation_jobs(; aws_config::AWSConfig=global_aws_config()) = translate("ListTextTranslationJobs"; aws_config=aws_config)
list_text_translation_jobs(args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = translate("ListTextTranslationJobs", args; aws_config=aws_config)

"""
    StartTextTranslationJob()

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. 

# Required Parameters
- `ClientToken`: A unique identifier for the request. This token is auto-generated when using the Amazon Translate SDK.
- `DataAccessRoleArn`: 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.
- `InputDataConfig`: Specifies the format and S3 location of the input documents for the translation job.
- `OutputDataConfig`: Specifies the S3 folder to which your job output will be saved. 
- `SourceLanguageCode`: 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.
- `TargetLanguageCodes`: The language code of the output language.

# Optional Parameters
- `JobName`: The name of the batch translation job to be performed.
- `ParallelDataNames`: The names of the parallel data resources to use in the batch translation job. For a list of available parallel data resources, use the ListParallelData operation.
- `TerminologyNames`: The name of the terminology to use in the batch translation job. For a list of available terminologies, use the ListTerminologies operation.
"""
start_text_translation_job(ClientToken, DataAccessRoleArn, InputDataConfig, OutputDataConfig, SourceLanguageCode, TargetLanguageCodes; aws_config::AWSConfig=global_aws_config()) = translate("StartTextTranslationJob", Dict{String, Any}("ClientToken"=>ClientToken, "DataAccessRoleArn"=>DataAccessRoleArn, "InputDataConfig"=>InputDataConfig, "OutputDataConfig"=>OutputDataConfig, "SourceLanguageCode"=>SourceLanguageCode, "TargetLanguageCodes"=>TargetLanguageCodes); aws_config=aws_config)
start_text_translation_job(ClientToken, DataAccessRoleArn, InputDataConfig, OutputDataConfig, SourceLanguageCode, TargetLanguageCodes, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = translate("StartTextTranslationJob", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ClientToken"=>ClientToken, "DataAccessRoleArn"=>DataAccessRoleArn, "InputDataConfig"=>InputDataConfig, "OutputDataConfig"=>OutputDataConfig, "SourceLanguageCode"=>SourceLanguageCode, "TargetLanguageCodes"=>TargetLanguageCodes), args)); aws_config=aws_config)

"""
    StopTextTranslationJob()

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.

# Required Parameters
- `JobId`: The job ID of the job to be stopped.

"""
stop_text_translation_job(JobId; aws_config::AWSConfig=global_aws_config()) = translate("StopTextTranslationJob", Dict{String, Any}("JobId"=>JobId); aws_config=aws_config)
stop_text_translation_job(JobId, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = translate("StopTextTranslationJob", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("JobId"=>JobId), args)); aws_config=aws_config)

"""
    TranslateText()

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

# Required Parameters
- `SourceLanguageCode`: 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.
- `TargetLanguageCode`: The language code requested for the language of the target text. The language must be a language supported by Amazon Translate.
- `Text`: 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.

# Optional Parameters
- `TerminologyNames`: 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.
"""
translate_text(SourceLanguageCode, TargetLanguageCode, Text; aws_config::AWSConfig=global_aws_config()) = translate("TranslateText", Dict{String, Any}("SourceLanguageCode"=>SourceLanguageCode, "TargetLanguageCode"=>TargetLanguageCode, "Text"=>Text); aws_config=aws_config)
translate_text(SourceLanguageCode, TargetLanguageCode, Text, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = translate("TranslateText", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("SourceLanguageCode"=>SourceLanguageCode, "TargetLanguageCode"=>TargetLanguageCode, "Text"=>Text), args)); aws_config=aws_config)

"""
    UpdateParallelData()

Updates a previously created parallel data resource by importing a new input file from Amazon S3.

# Required Parameters
- `ClientToken`: A unique identifier for the request. This token is automatically generated when you use Amazon Translate through an AWS SDK.
- `Name`: The name of the parallel data resource being updated.
- `ParallelDataConfig`: Specifies the format and S3 location of the parallel data input file.

# Optional Parameters
- `Description`: A custom description for the parallel data resource in Amazon Translate.
"""
update_parallel_data(ClientToken, Name, ParallelDataConfig; aws_config::AWSConfig=global_aws_config()) = translate("UpdateParallelData", Dict{String, Any}("ClientToken"=>ClientToken, "Name"=>Name, "ParallelDataConfig"=>ParallelDataConfig); aws_config=aws_config)
update_parallel_data(ClientToken, Name, ParallelDataConfig, args::AbstractDict{String, <:Any}; aws_config::AWSConfig=global_aws_config()) = translate("UpdateParallelData", Dict{String, Any}(mergewith(_merge, Dict{String, Any}("ClientToken"=>ClientToken, "Name"=>Name, "ParallelDataConfig"=>ParallelDataConfig), args)); aws_config=aws_config)
