/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the transcribe-2017-10-26.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.TranscribeService.Model
{
///
/// Container for the parameters to the StartTranscriptionJob operation.
/// Transcribes the audio from a media file and applies any additional Request Parameters
/// you choose to include in your request.
///
///
///
/// To make a StartTranscriptionJob
request, you must first upload your media
/// file into an Amazon S3 bucket; you can then specify the Amazon S3 location of the
/// file using the Media
parameter.
///
///
///
/// You must include the following parameters in your StartTranscriptionJob
/// request:
///
/// -
///
///
region
: The Amazon Web Services Region where you are making your request.
/// For a list of Amazon Web Services Regions supported with Amazon Transcribe, refer
/// to Amazon
/// Transcribe endpoints and quotas.
///
/// -
///
///
TranscriptionJobName
: A custom name you create for your transcription
/// job that is unique within your Amazon Web Services account.
///
/// -
///
///
Media
(MediaFileUri
): The Amazon S3 location of your media
/// file.
///
/// -
///
/// One of
LanguageCode
, IdentifyLanguage
, or IdentifyMultipleLanguages
:
/// If you know the language of your media file, specify it using the LanguageCode
/// parameter; you can find all valid language codes in the Supported
/// languages table. If you don't know the languages spoken in your media, use either
/// IdentifyLanguage
or IdentifyMultipleLanguages
and let Amazon
/// Transcribe identify the languages for you.
///
///
///
public partial class StartTranscriptionJobRequest : AmazonTranscribeServiceRequest
{
private ContentRedaction _contentRedaction;
private bool? _identifyLanguage;
private bool? _identifyMultipleLanguages;
private JobExecutionSettings _jobExecutionSettings;
private Dictionary _kmsEncryptionContext = new Dictionary();
private LanguageCode _languageCode;
private Dictionary _languageIdSettings = new Dictionary();
private List _languageOptions = new List();
private Media _media;
private MediaFormat _mediaFormat;
private int? _mediaSampleRateHertz;
private ModelSettings _modelSettings;
private string _outputBucketName;
private string _outputEncryptionKMSKeyId;
private string _outputKey;
private Settings _settings;
private Subtitles _subtitles;
private List _tags = new List();
private List _toxicityDetection = new List();
private string _transcriptionJobName;
///
/// Gets and sets the property ContentRedaction.
///
/// Makes it possible to redact or flag specified personally identifiable information
/// (PII) in your transcript. If you use ContentRedaction
, you must also
/// include the sub-parameters: PiiEntityTypes
, RedactionOutput
,
/// and RedactionType
.
///
///
public ContentRedaction ContentRedaction
{
get { return this._contentRedaction; }
set { this._contentRedaction = value; }
}
// Check to see if ContentRedaction property is set
internal bool IsSetContentRedaction()
{
return this._contentRedaction != null;
}
///
/// Gets and sets the property IdentifyLanguage.
///
/// Enables automatic language identification in your transcription job request. Use this
/// parameter if your media file contains only one language. If your media contains multiple
/// languages, use IdentifyMultipleLanguages
instead.
///
///
///
/// If you include IdentifyLanguage
, you can optionally include a list of
/// language codes, using LanguageOptions
, that you think may be present
/// in your media file. Including LanguageOptions
restricts IdentifyLanguage
/// to only the language options that you specify, which can improve transcription accuracy.
///
///
///
/// If you want to apply a custom language model, a custom vocabulary, or a custom vocabulary
/// filter to your automatic language identification request, include LanguageIdSettings
/// with the relevant sub-parameters (VocabularyName
, LanguageModelName
,
/// and VocabularyFilterName
). If you include LanguageIdSettings
,
/// also include LanguageOptions
.
///
///
///
/// Note that you must include one of LanguageCode
, IdentifyLanguage
,
/// or IdentifyMultipleLanguages
in your request. If you include more than
/// one of these parameters, your transcription job fails.
///
///
public bool IdentifyLanguage
{
get { return this._identifyLanguage.GetValueOrDefault(); }
set { this._identifyLanguage = value; }
}
// Check to see if IdentifyLanguage property is set
internal bool IsSetIdentifyLanguage()
{
return this._identifyLanguage.HasValue;
}
///
/// Gets and sets the property IdentifyMultipleLanguages.
///
/// Enables automatic multi-language identification in your transcription job request.
/// Use this parameter if your media file contains more than one language. If your media
/// contains only one language, use IdentifyLanguage
instead.
///
///
///
/// If you include IdentifyMultipleLanguages
, you can optionally include
/// a list of language codes, using LanguageOptions
, that you think may be
/// present in your media file. Including LanguageOptions
restricts IdentifyLanguage
/// to only the language options that you specify, which can improve transcription accuracy.
///
///
///
/// If you want to apply a custom vocabulary or a custom vocabulary filter to your automatic
/// language identification request, include LanguageIdSettings
with the
/// relevant sub-parameters (VocabularyName
and VocabularyFilterName
).
/// If you include LanguageIdSettings
, also include LanguageOptions
.
///
///
///
/// Note that you must include one of LanguageCode
, IdentifyLanguage
,
/// or IdentifyMultipleLanguages
in your request. If you include more than
/// one of these parameters, your transcription job fails.
///
///
public bool IdentifyMultipleLanguages
{
get { return this._identifyMultipleLanguages.GetValueOrDefault(); }
set { this._identifyMultipleLanguages = value; }
}
// Check to see if IdentifyMultipleLanguages property is set
internal bool IsSetIdentifyMultipleLanguages()
{
return this._identifyMultipleLanguages.HasValue;
}
///
/// Gets and sets the property JobExecutionSettings.
///
/// Makes it possible to control how your transcription job is processed. Currently, the
/// only JobExecutionSettings
modification you can choose is enabling job
/// queueing using the AllowDeferredExecution
sub-parameter.
///
///
///
/// If you include JobExecutionSettings
in your request, you must also include
/// the sub-parameters: AllowDeferredExecution
and DataAccessRoleArn
.
///
///
public JobExecutionSettings JobExecutionSettings
{
get { return this._jobExecutionSettings; }
set { this._jobExecutionSettings = value; }
}
// Check to see if JobExecutionSettings property is set
internal bool IsSetJobExecutionSettings()
{
return this._jobExecutionSettings != null;
}
///
/// Gets and sets the property KMSEncryptionContext.
///
/// A map of plain text, non-secret key:value pairs, known as encryption context pairs,
/// that provide an added layer of security for your data. For more information, see KMS
/// encryption context and Asymmetric
/// keys in KMS.
///
///
[AWSProperty(Min=1, Max=10)]
public Dictionary KMSEncryptionContext
{
get { return this._kmsEncryptionContext; }
set { this._kmsEncryptionContext = value; }
}
// Check to see if KMSEncryptionContext property is set
internal bool IsSetKMSEncryptionContext()
{
return this._kmsEncryptionContext != null && this._kmsEncryptionContext.Count > 0;
}
///
/// Gets and sets the property LanguageCode.
///
/// The language code that represents the language spoken in the input media file.
///
///
///
/// If you're unsure of the language spoken in your media file, consider using IdentifyLanguage
/// or IdentifyMultipleLanguages
to enable automatic language identification.
///
///
///
/// Note that you must include one of LanguageCode
, IdentifyLanguage
,
/// or IdentifyMultipleLanguages
in your request. If you include more than
/// one of these parameters, your transcription job fails.
///
///
///
/// For a list of supported languages and their associated language codes, refer to the
/// Supported
/// languages table.
///
///
///
/// To transcribe speech in Modern Standard Arabic (ar-SA
), your media file
/// must be encoded at a sample rate of 16,000 Hz or higher.
///
///
///
public LanguageCode LanguageCode
{
get { return this._languageCode; }
set { this._languageCode = value; }
}
// Check to see if LanguageCode property is set
internal bool IsSetLanguageCode()
{
return this._languageCode != null;
}
///
/// Gets and sets the property LanguageIdSettings.
///
/// If using automatic language identification in your request and you want to apply a
/// custom language model, a custom vocabulary, or a custom vocabulary filter, include
/// LanguageIdSettings
with the relevant sub-parameters (VocabularyName
,
/// LanguageModelName
, and VocabularyFilterName
). Note that
/// multi-language identification (IdentifyMultipleLanguages
) doesn't support
/// custom language models.
///
///
///
/// LanguageIdSettings
supports two to five language codes. Each language
/// code you include can have an associated custom language model, custom vocabulary,
/// and custom vocabulary filter. The language codes that you specify must match the languages
/// of the associated custom language models, custom vocabularies, and custom vocabulary
/// filters.
///
///
///
/// It's recommended that you include LanguageOptions
when using LanguageIdSettings
/// to ensure that the correct language dialect is identified. For example, if you specify
/// a custom vocabulary that is in en-US
but Amazon Transcribe determines
/// that the language spoken in your media is en-AU
, your custom vocabulary
/// is not applied to your transcription. If you include LanguageOptions
/// and include en-US
as the only English language dialect, your custom vocabulary
/// is applied to your transcription.
///
///
///
/// If you want to include a custom language model with your request but do not
/// want to use automatic language identification, use instead the
parameter with
/// the LanguageModelName
sub-parameter. If you want to include a custom
/// vocabulary or a custom vocabulary filter (or both) with your request but do not
/// want to use automatic language identification, use instead the
parameter with
/// the VocabularyName
or VocabularyFilterName
(or both) sub-parameter.
///
///
[AWSProperty(Min=1, Max=5)]
public Dictionary LanguageIdSettings
{
get { return this._languageIdSettings; }
set { this._languageIdSettings = value; }
}
// Check to see if LanguageIdSettings property is set
internal bool IsSetLanguageIdSettings()
{
return this._languageIdSettings != null && this._languageIdSettings.Count > 0;
}
///
/// Gets and sets the property LanguageOptions.
///
/// You can specify two or more language codes that represent the languages you think
/// may be present in your media. Including more than five is not recommended. If you're
/// unsure what languages are present, do not include this parameter.
///
///
///
/// If you include LanguageOptions
in your request, you must also include
/// IdentifyLanguage
.
///
///
///
/// For more information, refer to Supported
/// languages.
///
///
///
/// To transcribe speech in Modern Standard Arabic (ar-SA
), your media file
/// must be encoded at a sample rate of 16,000 Hz or higher.
///
///
[AWSProperty(Min=1)]
public List LanguageOptions
{
get { return this._languageOptions; }
set { this._languageOptions = value; }
}
// Check to see if LanguageOptions property is set
internal bool IsSetLanguageOptions()
{
return this._languageOptions != null && this._languageOptions.Count > 0;
}
///
/// Gets and sets the property Media.
///
/// Describes the Amazon S3 location of the media file you want to use in your request.
///
///
[AWSProperty(Required=true)]
public Media Media
{
get { return this._media; }
set { this._media = value; }
}
// Check to see if Media property is set
internal bool IsSetMedia()
{
return this._media != null;
}
///
/// Gets and sets the property MediaFormat.
///
/// Specify the format of your input media file.
///
///
public MediaFormat MediaFormat
{
get { return this._mediaFormat; }
set { this._mediaFormat = value; }
}
// Check to see if MediaFormat property is set
internal bool IsSetMediaFormat()
{
return this._mediaFormat != null;
}
///
/// Gets and sets the property MediaSampleRateHertz.
///
/// The sample rate, in hertz, of the audio track in your input media file.
///
///
///
/// If you don't specify the media sample rate, Amazon Transcribe determines it for you.
/// If you specify the sample rate, it must match the rate detected by Amazon Transcribe.
/// If there's a mismatch between the value that you specify and the value detected, your
/// job fails. In most cases, you can omit MediaSampleRateHertz
and let Amazon
/// Transcribe determine the sample rate.
///
///
[AWSProperty(Min=8000, Max=48000)]
public int MediaSampleRateHertz
{
get { return this._mediaSampleRateHertz.GetValueOrDefault(); }
set { this._mediaSampleRateHertz = value; }
}
// Check to see if MediaSampleRateHertz property is set
internal bool IsSetMediaSampleRateHertz()
{
return this._mediaSampleRateHertz.HasValue;
}
///
/// Gets and sets the property ModelSettings.
///
/// Specify the custom language model you want to include with your transcription job.
/// If you include ModelSettings
in your request, you must include the LanguageModelName
/// sub-parameter.
///
///
///
/// For more information, see Custom
/// language models.
///
///
public ModelSettings ModelSettings
{
get { return this._modelSettings; }
set { this._modelSettings = value; }
}
// Check to see if ModelSettings property is set
internal bool IsSetModelSettings()
{
return this._modelSettings != null;
}
///
/// Gets and sets the property OutputBucketName.
///
/// The name of the Amazon S3 bucket where you want your transcription output stored.
/// Do not include the S3://
prefix of the specified bucket.
///
///
///
/// If you want your output to go to a sub-folder of this bucket, specify it using the
/// OutputKey
parameter; OutputBucketName
only accepts the name
/// of a bucket.
///
///
///
/// For example, if you want your output stored in S3://DOC-EXAMPLE-BUCKET
,
/// set OutputBucketName
to DOC-EXAMPLE-BUCKET
. However, if
/// you want your output stored in S3://DOC-EXAMPLE-BUCKET/test-files/
, set
/// OutputBucketName
to DOC-EXAMPLE-BUCKET
and OutputKey
/// to test-files/
.
///
///
///
/// Note that Amazon Transcribe must have permission to use the specified location. You
/// can change Amazon S3 permissions using the Amazon
/// Web Services Management Console. See also Permissions
/// Required for IAM User Roles.
///
///
///
/// If you don't specify OutputBucketName
, your transcript is placed in a
/// service-managed Amazon S3 bucket and you are provided with a URI to access your transcript.
///
///
[AWSProperty(Max=64)]
public string OutputBucketName
{
get { return this._outputBucketName; }
set { this._outputBucketName = value; }
}
// Check to see if OutputBucketName property is set
internal bool IsSetOutputBucketName()
{
return this._outputBucketName != null;
}
///
/// Gets and sets the property OutputEncryptionKMSKeyId.
///
/// The KMS key you want to use to encrypt your transcription output.
///
///
///
/// If using a key located in the current Amazon Web Services account, you can
/// specify your KMS key in one of four ways:
///
/// -
///
/// Use the KMS key ID itself. For example,
1234abcd-12ab-34cd-56ef-1234567890ab
.
///
/// -
///
/// Use an alias for the KMS key ID. For example,
alias/ExampleAlias
.
///
/// -
///
/// Use the Amazon Resource Name (ARN) for the KMS key ID. For example,
arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab
.
///
/// -
///
/// Use the ARN for the KMS key alias. For example,
arn:aws:kms:region:account-ID:alias/ExampleAlias
.
///
///
///
/// If using a key located in a different Amazon Web Services account than the
/// current Amazon Web Services account, you can specify your KMS key in one of two ways:
///
/// -
///
/// Use the ARN for the KMS key ID. For example,
arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab
.
///
/// -
///
/// Use the ARN for the KMS key alias. For example,
arn:aws:kms:region:account-ID:alias/ExampleAlias
.
///
///
///
/// If you don't specify an encryption key, your output is encrypted with the default
/// Amazon S3 key (SSE-S3).
///
///
///
/// If you specify a KMS key to encrypt your output, you must also specify an output location
/// using the OutputLocation
parameter.
///
///
///
/// Note that the role making the request must have permission to use the specified KMS
/// key.
///
///
[AWSProperty(Min=1, Max=2048)]
public string OutputEncryptionKMSKeyId
{
get { return this._outputEncryptionKMSKeyId; }
set { this._outputEncryptionKMSKeyId = value; }
}
// Check to see if OutputEncryptionKMSKeyId property is set
internal bool IsSetOutputEncryptionKMSKeyId()
{
return this._outputEncryptionKMSKeyId != null;
}
///
/// Gets and sets the property OutputKey.
///
/// Use in combination with OutputBucketName
to specify the output location
/// of your transcript and, optionally, a unique name for your output file. The default
/// name for your transcription output is the same as the name you specified for your
/// transcription job (TranscriptionJobName
).
///
///
///
/// Here are some examples of how you can use OutputKey
:
///
/// -
///
/// If you specify 'DOC-EXAMPLE-BUCKET' as the
OutputBucketName
and 'my-transcript.json'
/// as the OutputKey
, your transcription output path is s3://DOC-EXAMPLE-BUCKET/my-transcript.json
.
///
/// -
///
/// If you specify 'my-first-transcription' as the
TranscriptionJobName
,
/// 'DOC-EXAMPLE-BUCKET' as the OutputBucketName
, and 'my-transcript' as
/// the OutputKey
, your transcription output path is s3://DOC-EXAMPLE-BUCKET/my-transcript/my-first-transcription.json
.
///
/// -
///
/// If you specify 'DOC-EXAMPLE-BUCKET' as the
OutputBucketName
and 'test-files/my-transcript.json'
/// as the OutputKey
, your transcription output path is s3://DOC-EXAMPLE-BUCKET/test-files/my-transcript.json
.
///
/// -
///
/// If you specify 'my-first-transcription' as the
TranscriptionJobName
,
/// 'DOC-EXAMPLE-BUCKET' as the OutputBucketName
, and 'test-files/my-transcript'
/// as the OutputKey
, your transcription output path is s3://DOC-EXAMPLE-BUCKET/test-files/my-transcript/my-first-transcription.json
.
///
///
///
/// If you specify the name of an Amazon S3 bucket sub-folder that doesn't exist, one
/// is created for you.
///
///
[AWSProperty(Min=1, Max=1024)]
public string OutputKey
{
get { return this._outputKey; }
set { this._outputKey = value; }
}
// Check to see if OutputKey property is set
internal bool IsSetOutputKey()
{
return this._outputKey != null;
}
///
/// Gets and sets the property Settings.
///
/// Specify additional optional settings in your request, including channel identification,
/// alternative transcriptions, speaker partitioning. You can use that to apply custom
/// vocabularies and vocabulary filters.
///
///
///
/// If you want to include a custom vocabulary or a custom vocabulary filter (or both)
/// with your request but do not want to use automatic language identification,
/// use Settings
with the VocabularyName
or VocabularyFilterName
/// (or both) sub-parameter.
///
///
///
/// If you're using automatic language identification with your request and want to include
/// a custom language model, a custom vocabulary, or a custom vocabulary filter, use instead
/// the
parameter with the LanguageModelName
, VocabularyName
/// or VocabularyFilterName
sub-parameters.
///
///
public Settings Settings
{
get { return this._settings; }
set { this._settings = value; }
}
// Check to see if Settings property is set
internal bool IsSetSettings()
{
return this._settings != null;
}
///
/// Gets and sets the property Subtitles.
///
/// Produces subtitle files for your input media. You can specify WebVTT (*.vtt) and SubRip
/// (*.srt) formats.
///
///
public Subtitles Subtitles
{
get { return this._subtitles; }
set { this._subtitles = value; }
}
// Check to see if Subtitles property is set
internal bool IsSetSubtitles()
{
return this._subtitles != null;
}
///
/// Gets and sets the property Tags.
///
/// Adds one or more custom tags, each in the form of a key:value pair, to a new transcription
/// job at the time you start this new job.
///
///
///
/// To learn more about using tags with Amazon Transcribe, refer to Tagging
/// resources.
///
///
[AWSProperty(Min=1, Max=200)]
public List Tags
{
get { return this._tags; }
set { this._tags = value; }
}
// Check to see if Tags property is set
internal bool IsSetTags()
{
return this._tags != null && this._tags.Count > 0;
}
///
/// Gets and sets the property ToxicityDetection.
///
/// Enables toxic speech detection in your transcript. If you include ToxicityDetection
/// in your request, you must also include ToxicityCategories
.
///
///
///
/// For information on the types of toxic speech Amazon Transcribe can detect, see Detecting
/// toxic speech.
///
///
[AWSProperty(Min=1, Max=1)]
public List ToxicityDetection
{
get { return this._toxicityDetection; }
set { this._toxicityDetection = value; }
}
// Check to see if ToxicityDetection property is set
internal bool IsSetToxicityDetection()
{
return this._toxicityDetection != null && this._toxicityDetection.Count > 0;
}
///
/// Gets and sets the property TranscriptionJobName.
///
/// A unique name, chosen by you, for your transcription job. The name that you specify
/// is also used as the default name of your transcription output file. If you want to
/// specify a different name for your transcription output, use the OutputKey
/// parameter.
///
///
///
/// This name is case sensitive, cannot contain spaces, and must be unique within an Amazon
/// Web Services account. If you try to create a new job with the same name as an existing
/// job, you get a ConflictException
error.
///
///
[AWSProperty(Required=true, Min=1, Max=200)]
public string TranscriptionJobName
{
get { return this._transcriptionJobName; }
set { this._transcriptionJobName = value; }
}
// Check to see if TranscriptionJobName property is set
internal bool IsSetTranscriptionJobName()
{
return this._transcriptionJobName != null;
}
}
}