/* * 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: /// /// /// 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: /// ///
  1. /// /// Use the KMS key ID itself. For example, 1234abcd-12ab-34cd-56ef-1234567890ab. /// ///
  2. /// /// Use an alias for the KMS key ID. For example, alias/ExampleAlias. /// ///
  3. /// /// 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. /// ///
  4. /// /// 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: /// ///
  1. /// /// Use the ARN for the KMS key ID. For example, arn:aws:kms:region:account-ID:key/1234abcd-12ab-34cd-56ef-1234567890ab. /// ///
  2. /// /// 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; } } }