text:
package com.amazonaws.services.transcribe.model;

import java.io.Serializable;
import javax.annotation.Generated;

import com.amazonaws.AmazonWebServiceRequest;

/**
 *
 * @see AWS API Documentation
 */
@Generated("com.amazonaws:aws-java-sdk-code-generator")
public class StartMedicalTranscriptionJobRequest extends com.amazonaws.AmazonWebServiceRequest implements Serializable, Cloneable {

    /**
     *

     * A unique name, chosen by you, for your medical transcription job. The name 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.
     *

     */
    private String medicalTranscriptionJobName;
    /**
     *

     * The language code that represents the language spoken in the input media file. US English (en-US) is
     * the only valid value for medical transcription jobs. Any other value you enter for language code results in a
     * BadRequestException error.
     *

     */
    private String languageCode;
    /**
     *

     * 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 Medical determines it for you. If you specify the
     * sample rate, it must match the rate detected by Amazon Transcribe Medical; if there's a mismatch between the
     * value you specify and the value detected, your job fails. Therefore, in most cases, it's advised to omit
     * MediaSampleRateHertz and let Amazon Transcribe Medical determine the sample rate.
     *

     */
    private Integer mediaSampleRateHertz;
    /**
     *

     * Specify the format of your input media file.
     *

     */
    private String mediaFormat;

    private Media media;
    /**
     *

     * The name of the Amazon S3 bucket where you want your medical 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.
     *

     */
    private String outputBucketName;
    /**
     *

     * 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 medical transcription job (MedicalTranscriptionJobName).
     *

     *

     * 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 MedicalTranscriptionJobName, '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 MedicalTranscriptionJobName, '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.
     *

     */
    private String outputKey;
    /**
     *

     * The KMS key you want to use to encrypt your medical 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 user making the request must have permission to use the specified KMS key.
     *

     */
    private String outputEncryptionKMSKeyId;
    /**
     *

     * 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.
     *

     */
    private java.util.Map<String, String> kMSEncryptionContext;
    /**
     *

     * Specify additional optional settings in your request, including channel identification, alternative
     * transcriptions, and speaker labeling; allows you to apply custom vocabularies to your transcription job.
     *

     */
    private MedicalTranscriptionSetting settings;
    /**
     *

     * Labels all personal health information (PHI) identified in your transcript. For more information, see Identifying personal health information (PHI)
     * in a transcription.
     *

     */
    private String contentIdentificationType;
    /**
     *

     * Specify the predominant medical specialty represented in your media. For batch transcriptions,
     * PRIMARYCARE is the only valid value. If you require additional specialties, refer to .
     *

     */
    private String specialty;
    /**
     *

     * Specify whether your input media contains only one person (DICTATION) or contains a conversation
     * between two people (CONVERSATION).
     *

     *

     * For example, DICTATION could be used for a medical professional wanting to transcribe voice memos;
     * CONVERSATION could be used for transcribing the doctor-patient dialogue during the patient's office
     * visit.
     *

     */
    private String type;
    /**
     *

     * Adds one or more custom tags, each in the form of a key:value pair, to a new medical transcription job at the
     * time you start this new job.
     *

     *

     * To learn more about using tags with Amazon Transcribe, refer to Tagging resources.
     *

     */
    private java.util.List<Tag> tags;

    /**
     *

     * A unique name, chosen by you, for your medical transcription job. The name 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.
     *

     *
     * @param medicalTranscriptionJobName
     *        A unique name, chosen by you, for your medical transcription job. The name 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.
     */

    public void setMedicalTranscriptionJobName(String medicalTranscriptionJobName) {
        this.medicalTranscriptionJobName = medicalTranscriptionJobName;
    }

    /**
     *

     * A unique name, chosen by you, for your medical transcription job. The name 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.
     *

     *
     * @return A unique name, chosen by you, for your medical transcription job. The name 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.
     */

    public String getMedicalTranscriptionJobName() {
        return this.medicalTranscriptionJobName;
    }

    /**
     *

     * A unique name, chosen by you, for your medical transcription job. The name 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.
     *

     *
     * @param medicalTranscriptionJobName
     *        A unique name, chosen by you, for your medical transcription job. The name 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.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StartMedicalTranscriptionJobRequest withMedicalTranscriptionJobName(String medicalTranscriptionJobName) {
        setMedicalTranscriptionJobName(medicalTranscriptionJobName);
        return this;
    }

    /**
     *

     * The language code that represents the language spoken in the input media file. US English (en-US) is
     * the only valid value for medical transcription jobs. Any other value you enter for language code results in a
     * BadRequestException error.
     *

     *
     * @param languageCode
     *        The language code that represents the language spoken in the input media file. US English (
     *        en-US) is the only valid value for medical transcription jobs. Any other value you enter for
     *        language code results in a BadRequestException error.
     * @see LanguageCode
     */

    public void setLanguageCode(String languageCode) {
        this.languageCode = languageCode;
    }

    /**
     *

     * The language code that represents the language spoken in the input media file. US English (en-US) is
     * the only valid value for medical transcription jobs. Any other value you enter for language code results in a
     * BadRequestException error.
     *

     *
     * @return The language code that represents the language spoken in the input media file. US English (
     *         en-US) is the only valid value for medical transcription jobs. Any other value you enter for
     *         language code results in a BadRequestException error.
     * @see LanguageCode
     */

    public String getLanguageCode() {
        return this.languageCode;
    }

    /**
     *

     * The language code that represents the language spoken in the input media file. US English (en-US) is
     * the only valid value for medical transcription jobs. Any other value you enter for language code results in a
     * BadRequestException error.
     *

     *
     * @param languageCode
     *        The language code that represents the language spoken in the input media file. US English (
     *        en-US) is the only valid value for medical transcription jobs. Any other value you enter for
     *        language code results in a BadRequestException error.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see LanguageCode
     */

    public StartMedicalTranscriptionJobRequest withLanguageCode(String languageCode) {
        setLanguageCode(languageCode);
        return this;
    }

    /**
     *

     * The language code that represents the language spoken in the input media file. US English (en-US) is
     * the only valid value for medical transcription jobs. Any other value you enter for language code results in a
     * BadRequestException error.
     *

     *
     * @param languageCode
     *        The language code that represents the language spoken in the input media file. US English (
     *        en-US) is the only valid value for medical transcription jobs. Any other value you enter for
     *        language code results in a BadRequestException error.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see LanguageCode
     */

    public StartMedicalTranscriptionJobRequest withLanguageCode(LanguageCode languageCode) {
        this.languageCode = languageCode.toString();
        return this;
    }

    /**
     *

     * 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 Medical determines it for you. If you specify the
     * sample rate, it must match the rate detected by Amazon Transcribe Medical; if there's a mismatch between the
     * value you specify and the value detected, your job fails. Therefore, in most cases, it's advised to omit
     * MediaSampleRateHertz and let Amazon Transcribe Medical determine the sample rate.
     *

     *
     * @param 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 Medical determines it for you. If you
     *        specify the sample rate, it must match the rate detected by Amazon Transcribe Medical; if there's a
     *        mismatch between the value you specify and the value detected, your job fails. Therefore, in most cases,
     *        it's advised to omit MediaSampleRateHertz and let Amazon Transcribe Medical determine the
     *        sample rate.
     */

    public void setMediaSampleRateHertz(Integer mediaSampleRateHertz) {
        this.mediaSampleRateHertz = 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 Medical determines it for you. If you specify the
     * sample rate, it must match the rate detected by Amazon Transcribe Medical; if there's a mismatch between the
     * value you specify and the value detected, your job fails. Therefore, in most cases, it's advised to omit
     * MediaSampleRateHertz and let Amazon Transcribe Medical determine the sample rate.
     *

     *
     * @return 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 Medical determines it for you. If you
     *         specify the sample rate, it must match the rate detected by Amazon Transcribe Medical; if there's a
     *         mismatch between the value you specify and the value detected, your job fails. Therefore, in most cases,
     *         it's advised to omit MediaSampleRateHertz and let Amazon Transcribe Medical determine the
     *         sample rate.
     */

    public Integer getMediaSampleRateHertz() {
        return this.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 Medical determines it for you. If you specify the
     * sample rate, it must match the rate detected by Amazon Transcribe Medical; if there's a mismatch between the
     * value you specify and the value detected, your job fails. Therefore, in most cases, it's advised to omit
     * MediaSampleRateHertz and let Amazon Transcribe Medical determine the sample rate.
     *

     *
     * @param 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 Medical determines it for you. If you
     *        specify the sample rate, it must match the rate detected by Amazon Transcribe Medical; if there's a
     *        mismatch between the value you specify and the value detected, your job fails. Therefore, in most cases,
     *        it's advised to omit MediaSampleRateHertz and let Amazon Transcribe Medical determine the
     *        sample rate.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StartMedicalTranscriptionJobRequest withMediaSampleRateHertz(Integer mediaSampleRateHertz) {
        setMediaSampleRateHertz(mediaSampleRateHertz);
        return this;
    }

    /**
     *

     * Specify the format of your input media file.
     *

     *
     * @param mediaFormat
     *        Specify the format of your input media file.
     * @see MediaFormat
     */

    public void setMediaFormat(String mediaFormat) {
        this.mediaFormat = mediaFormat;
    }

    /**
     *

     * Specify the format of your input media file.
     *

     *
     * @return Specify the format of your input media file.
     * @see MediaFormat
     */

    public String getMediaFormat() {
        return this.mediaFormat;
    }

    /**
     *

     * Specify the format of your input media file.
     *

     *
     * @param mediaFormat
     *        Specify the format of your input media file.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MediaFormat
     */

    public StartMedicalTranscriptionJobRequest withMediaFormat(String mediaFormat) {
        setMediaFormat(mediaFormat);
        return this;
    }

    /**
     *

     * Specify the format of your input media file.
     *

     *
     * @param mediaFormat
     *        Specify the format of your input media file.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MediaFormat
     */

    public StartMedicalTranscriptionJobRequest withMediaFormat(MediaFormat mediaFormat) {
        this.mediaFormat = mediaFormat.toString();
        return this;
    }

    /**
     * @param media
     */

    public void setMedia(Media media) {
        this.media = media;
    }

    /**
     * @return
     */

    public Media getMedia() {
        return this.media;
    }

    /**
     * @param media
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StartMedicalTranscriptionJobRequest withMedia(Media media) {
        setMedia(media);
        return this;
    }

    /**
     *

     * The name of the Amazon S3 bucket where you want your medical 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.
     *

     *
     * @param outputBucketName
     *        The name of the Amazon S3 bucket where you want your medical 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.
     */

    public void setOutputBucketName(String outputBucketName) {
        this.outputBucketName = outputBucketName;
    }

    /**
     *

     * The name of the Amazon S3 bucket where you want your medical 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.
     *

     *
     * @return The name of the Amazon S3 bucket where you want your medical 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.
     */

    public String getOutputBucketName() {
        return this.outputBucketName;
    }

    /**
     *

     * The name of the Amazon S3 bucket where you want your medical 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.
     *

     *
     * @param outputBucketName
     *        The name of the Amazon S3 bucket where you want your medical 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.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StartMedicalTranscriptionJobRequest withOutputBucketName(String outputBucketName) {
        setOutputBucketName(outputBucketName);
        return this;
    }

    /**
     *

     * 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 medical transcription job (MedicalTranscriptionJobName).
     *

     *

     * 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 MedicalTranscriptionJobName, '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 MedicalTranscriptionJobName, '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.
     *

     *
     * @param 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 medical transcription job (
     *        MedicalTranscriptionJobName).

     *

     *        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 MedicalTranscriptionJobName,
     *        '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 MedicalTranscriptionJobName,
     *        '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.
     */

    public void setOutputKey(String outputKey) {
        this.outputKey = 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 medical transcription job (MedicalTranscriptionJobName).
     *

     *

     * 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 MedicalTranscriptionJobName, '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 MedicalTranscriptionJobName, '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.
     *

     *
     * @return 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 medical transcription job (
     *         MedicalTranscriptionJobName).

     *

     *         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 MedicalTranscriptionJobName,
     *         '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 MedicalTranscriptionJobName,
     *         '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.
     */

    public String getOutputKey() {
        return this.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 medical transcription job (MedicalTranscriptionJobName).
     *

     *

     * 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 MedicalTranscriptionJobName, '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 MedicalTranscriptionJobName, '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.
     *

     *
     * @param 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 medical transcription job (
     *        MedicalTranscriptionJobName).

     *

     *        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 MedicalTranscriptionJobName,
     *        '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 MedicalTranscriptionJobName,
     *        '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.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StartMedicalTranscriptionJobRequest withOutputKey(String outputKey) {
        setOutputKey(outputKey);
        return this;
    }

    /**
     *

     * The KMS key you want to use to encrypt your medical 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 user making the request must have permission to use the specified KMS key.
     *

     *
     * @param outputEncryptionKMSKeyId
     *        The KMS key you want to use to encrypt your medical 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 user making the request must have permission to use the specified KMS key.
     */

    public void setOutputEncryptionKMSKeyId(String outputEncryptionKMSKeyId) {
        this.outputEncryptionKMSKeyId = outputEncryptionKMSKeyId;
    }

    /**
     *

     * The KMS key you want to use to encrypt your medical 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 user making the request must have permission to use the specified KMS key.
     *

     *
     * @return The KMS key you want to use to encrypt your medical 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 user making the request must have permission to use the specified KMS key.
     */

    public String getOutputEncryptionKMSKeyId() {
        return this.outputEncryptionKMSKeyId;
    }

    /**
     *

     * The KMS key you want to use to encrypt your medical 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 user making the request must have permission to use the specified KMS key.
     *

     *
     * @param outputEncryptionKMSKeyId
     *        The KMS key you want to use to encrypt your medical 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 user making the request must have permission to use the specified KMS key.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StartMedicalTranscriptionJobRequest withOutputEncryptionKMSKeyId(String outputEncryptionKMSKeyId) {
        setOutputEncryptionKMSKeyId(outputEncryptionKMSKeyId);
        return this;
    }

    /**
     *

     * 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.
     *

     *
     * @return 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.
     */

    public java.util.Map<String, String> getKMSEncryptionContext() {
        return 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.
     *

     *
     * @param 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.
     */

    public void setKMSEncryptionContext(java.util.Map<String, String> kMSEncryptionContext) {
        this.kMSEncryptionContext = 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.
     *

     *
     * @param 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.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StartMedicalTranscriptionJobRequest withKMSEncryptionContext(java.util.Map<String, String> kMSEncryptionContext) {
        setKMSEncryptionContext(kMSEncryptionContext);
        return this;
    }

    /**
     * Add a single KMSEncryptionContext entry
     *
     * @see StartMedicalTranscriptionJobRequest#withKMSEncryptionContext
     * @returns a reference to this object so that method calls can be chained together.
     */

    public StartMedicalTranscriptionJobRequest addKMSEncryptionContextEntry(String key, String value) {
        if (null == this.kMSEncryptionContext) {
            this.kMSEncryptionContext = new java.util.HashMap<String, String>();
        }
        if (this.kMSEncryptionContext.containsKey(key))
            throw new IllegalArgumentException("Duplicated keys (" + key.toString() + ") are provided.");
        this.kMSEncryptionContext.put(key, value);
        return this;
    }

    /**
     * Removes all the entries added into KMSEncryptionContext.
     *
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StartMedicalTranscriptionJobRequest clearKMSEncryptionContextEntries() {
        this.kMSEncryptionContext = null;
        return this;
    }

    /**
     *

     * Specify additional optional settings in your request, including channel identification, alternative
     * transcriptions, and speaker labeling; allows you to apply custom vocabularies to your transcription job.
     *

     *
     * @param settings
     *        Specify additional optional settings in your request, including channel identification, alternative
     *        transcriptions, and speaker labeling; allows you to apply custom vocabularies to your transcription job.
     */

    public void setSettings(MedicalTranscriptionSetting settings) {
        this.settings = settings;
    }

    /**
     *

     * Specify additional optional settings in your request, including channel identification, alternative
     * transcriptions, and speaker labeling; allows you to apply custom vocabularies to your transcription job.
     *

     *
     * @return Specify additional optional settings in your request, including channel identification, alternative
     *         transcriptions, and speaker labeling; allows you to apply custom vocabularies to your transcription job.
     */

    public MedicalTranscriptionSetting getSettings() {
        return this.settings;
    }

    /**
     *

     * Specify additional optional settings in your request, including channel identification, alternative
     * transcriptions, and speaker labeling; allows you to apply custom vocabularies to your transcription job.
     *

     *
     * @param settings
     *        Specify additional optional settings in your request, including channel identification, alternative
     *        transcriptions, and speaker labeling; allows you to apply custom vocabularies to your transcription job.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StartMedicalTranscriptionJobRequest withSettings(MedicalTranscriptionSetting settings) {
        setSettings(settings);
        return this;
    }

    /**
     *

     * Labels all personal health information (PHI) identified in your transcript. For more information, see Identifying personal health information (PHI)
     * in a transcription.
     *

     *
     * @param contentIdentificationType
     *        Labels all personal health information (PHI) identified in your transcript. For more information, see Identifying personal health
     *        information (PHI) in a transcription.
     * @see MedicalContentIdentificationType
     */

    public void setContentIdentificationType(String contentIdentificationType) {
        this.contentIdentificationType = contentIdentificationType;
    }

    /**
     *

     * Labels all personal health information (PHI) identified in your transcript. For more information, see Identifying personal health information (PHI)
     * in a transcription.
     *

     *
     * @return Labels all personal health information (PHI) identified in your transcript. For more information, see Identifying personal health
     *         information (PHI) in a transcription.
     * @see MedicalContentIdentificationType
     */

    public String getContentIdentificationType() {
        return this.contentIdentificationType;
    }

    /**
     *

     * Labels all personal health information (PHI) identified in your transcript. For more information, see Identifying personal health information (PHI)
     * in a transcription.
     *

     *
     * @param contentIdentificationType
     *        Labels all personal health information (PHI) identified in your transcript. For more information, see Identifying personal health
     *        information (PHI) in a transcription.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MedicalContentIdentificationType
     */

    public StartMedicalTranscriptionJobRequest withContentIdentificationType(String contentIdentificationType) {
        setContentIdentificationType(contentIdentificationType);
        return this;
    }

    /**
     *

     * Labels all personal health information (PHI) identified in your transcript. For more information, see Identifying personal health information (PHI)
     * in a transcription.
     *

     *
     * @param contentIdentificationType
     *        Labels all personal health information (PHI) identified in your transcript. For more information, see Identifying personal health
     *        information (PHI) in a transcription.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see MedicalContentIdentificationType
     */

    public StartMedicalTranscriptionJobRequest withContentIdentificationType(MedicalContentIdentificationType contentIdentificationType) {
        this.contentIdentificationType = contentIdentificationType.toString();
        return this;
    }

    /**
     *

     * Specify the predominant medical specialty represented in your media. For batch transcriptions,
     * PRIMARYCARE is the only valid value. If you require additional specialties, refer to .
     *

     *
     * @param specialty
     *        Specify the predominant medical specialty represented in your media. For batch transcriptions,
     *        PRIMARYCARE is the only valid value. If you require additional specialties, refer to .
     * @see Specialty
     */

    public void setSpecialty(String specialty) {
        this.specialty = specialty;
    }

    /**
     *

     * Specify the predominant medical specialty represented in your media. For batch transcriptions,
     * PRIMARYCARE is the only valid value. If you require additional specialties, refer to .
     *

     *
     * @return Specify the predominant medical specialty represented in your media. For batch transcriptions,
     *         PRIMARYCARE is the only valid value. If you require additional specialties, refer to .
     * @see Specialty
     */

    public String getSpecialty() {
        return this.specialty;
    }

    /**
     *

     * Specify the predominant medical specialty represented in your media. For batch transcriptions,
     * PRIMARYCARE is the only valid value. If you require additional specialties, refer to .
     *

     *
     * @param specialty
     *        Specify the predominant medical specialty represented in your media. For batch transcriptions,
     *        PRIMARYCARE is the only valid value. If you require additional specialties, refer to .
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see Specialty
     */

    public StartMedicalTranscriptionJobRequest withSpecialty(String specialty) {
        setSpecialty(specialty);
        return this;
    }

    /**
     *

     * Specify the predominant medical specialty represented in your media. For batch transcriptions,
     * PRIMARYCARE is the only valid value. If you require additional specialties, refer to .
     *

     *
     * @param specialty
     *        Specify the predominant medical specialty represented in your media. For batch transcriptions,
     *        PRIMARYCARE is the only valid value. If you require additional specialties, refer to .
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see Specialty
     */

    public StartMedicalTranscriptionJobRequest withSpecialty(Specialty specialty) {
        this.specialty = specialty.toString();
        return this;
    }

    /**
     *

     * Specify whether your input media contains only one person (DICTATION) or contains a conversation
     * between two people (CONVERSATION).
     *

     *

     * For example, DICTATION could be used for a medical professional wanting to transcribe voice memos;
     * CONVERSATION could be used for transcribing the doctor-patient dialogue during the patient's office
     * visit.
     *

     *
     * @param type
     *        Specify whether your input media contains only one person (DICTATION) or contains a
     *        conversation between two people (CONVERSATION).

     *

     *        For example, DICTATION could be used for a medical professional wanting to transcribe voice
     *        memos; CONVERSATION could be used for transcribing the doctor-patient dialogue during the
     *        patient's office visit.
     * @see Type
     */

    public void setType(String type) {
        this.type = type;
    }

    /**
     *

     * Specify whether your input media contains only one person (DICTATION) or contains a conversation
     * between two people (CONVERSATION).
     *

     *

     * For example, DICTATION could be used for a medical professional wanting to transcribe voice memos;
     * CONVERSATION could be used for transcribing the doctor-patient dialogue during the patient's office
     * visit.
     *

     *
     * @return Specify whether your input media contains only one person (DICTATION) or contains a
     *         conversation between two people (CONVERSATION).

     *

     *         For example, DICTATION could be used for a medical professional wanting to transcribe voice
     *         memos; CONVERSATION could be used for transcribing the doctor-patient dialogue during the
     *         patient's office visit.
     * @see Type
     */

    public String getType() {
        return this.type;
    }

    /**
     *

     * Specify whether your input media contains only one person (DICTATION) or contains a conversation
     * between two people (CONVERSATION).
     *

     *

     * For example, DICTATION could be used for a medical professional wanting to transcribe voice memos;
     * CONVERSATION could be used for transcribing the doctor-patient dialogue during the patient's office
     * visit.
     *

     *
     * @param type
     *        Specify whether your input media contains only one person (DICTATION) or contains a
     *        conversation between two people (CONVERSATION).

     *

     *        For example, DICTATION could be used for a medical professional wanting to transcribe voice
     *        memos; CONVERSATION could be used for transcribing the doctor-patient dialogue during the
     *        patient's office visit.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see Type
     */

    public StartMedicalTranscriptionJobRequest withType(String type) {
        setType(type);
        return this;
    }

    /**
     *

     * Specify whether your input media contains only one person (DICTATION) or contains a conversation
     * between two people (CONVERSATION).
     *

     *

     * For example, DICTATION could be used for a medical professional wanting to transcribe voice memos;
     * CONVERSATION could be used for transcribing the doctor-patient dialogue during the patient's office
     * visit.
     *

     *
     * @param type
     *        Specify whether your input media contains only one person (DICTATION) or contains a
     *        conversation between two people (CONVERSATION).

     *

     *        For example, DICTATION could be used for a medical professional wanting to transcribe voice
     *        memos; CONVERSATION could be used for transcribing the doctor-patient dialogue during the
     *        patient's office visit.
     * @return Returns a reference to this object so that method calls can be chained together.
     * @see Type
     */

    public StartMedicalTranscriptionJobRequest withType(Type type) {
        this.type = type.toString();
        return this;
    }

    /**
     *

     * Adds one or more custom tags, each in the form of a key:value pair, to a new medical transcription job at the
     * time you start this new job.
     *

     *

     * To learn more about using tags with Amazon Transcribe, refer to Tagging resources.
     *

     *
     * @return Adds one or more custom tags, each in the form of a key:value pair, to a new medical transcription job at
     *         the time you start this new job.

     *

     *         To learn more about using tags with Amazon Transcribe, refer to Tagging resources.
     */

    public java.util.List<Tag> getTags() {
        return tags;
    }

    /**
     *

     * Adds one or more custom tags, each in the form of a key:value pair, to a new medical transcription job at the
     * time you start this new job.
     *

     *

     * To learn more about using tags with Amazon Transcribe, refer to Tagging resources.
     *

     *
     * @param tags
     *        Adds one or more custom tags, each in the form of a key:value pair, to a new medical transcription job at
     *        the time you start this new job.

     *

     *        To learn more about using tags with Amazon Transcribe, refer to Tagging resources.
     */

    public void setTags(java.util.Collection<Tag> tags) {
        if (tags == null) {
            this.tags = null;
            return;
        }

        this.tags = new java.util.ArrayList<Tag>(tags);
    }

    /**
     *

     * Adds one or more custom tags, each in the form of a key:value pair, to a new medical transcription job at the
     * time you start this new job.
     *

     *

     * To learn more about using tags with Amazon Transcribe, refer to Tagging resources.
     *

     *

     * NOTE: This method appends the values to the existing list (if any). Use
     * {@link #setTags(java.util.Collection)} or {@link #withTags(java.util.Collection)} if you want to override the
     * existing values.
     *

     *
     * @param tags
     *        Adds one or more custom tags, each in the form of a key:value pair, to a new medical transcription job at
     *        the time you start this new job.

     *

     *        To learn more about using tags with Amazon Transcribe, refer to Tagging resources.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StartMedicalTranscriptionJobRequest withTags(Tag... tags) {
        if (this.tags == null) {
            setTags(new java.util.ArrayList<Tag>(tags.length));
        }
        for (Tag ele : tags) {
            this.tags.add(ele);
        }
        return this;
    }

    /**
     *

     * Adds one or more custom tags, each in the form of a key:value pair, to a new medical transcription job at the
     * time you start this new job.
     *

     *

     * To learn more about using tags with Amazon Transcribe, refer to Tagging resources.
     *

     *
     * @param tags
     *        Adds one or more custom tags, each in the form of a key:value pair, to a new medical transcription job at
     *        the time you start this new job.

     *

     *        To learn more about using tags with Amazon Transcribe, refer to Tagging resources.
     * @return Returns a reference to this object so that method calls can be chained together.
     */

    public StartMedicalTranscriptionJobRequest withTags(java.util.Collection<Tag> tags) {
        setTags(tags);
        return this;
    }

    /**
     * Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be
     * redacted from this string using a placeholder value.
     *
     * @return A string representation of this object.
     *
     * @see java.lang.Object#toString()
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("{");
        if (getMedicalTranscriptionJobName() != null)
            sb.append("MedicalTranscriptionJobName: ").append(getMedicalTranscriptionJobName()).append(",");
        if (getLanguageCode() != null)
            sb.append("LanguageCode: ").append(getLanguageCode()).append(",");
        if (getMediaSampleRateHertz() != null)
            sb.append("MediaSampleRateHertz: ").append(getMediaSampleRateHertz()).append(",");
        if (getMediaFormat() != null)
            sb.append("MediaFormat: ").append(getMediaFormat()).append(",");
        if (getMedia() != null)
            sb.append("Media: ").append(getMedia()).append(",");
        if (getOutputBucketName() != null)
            sb.append("OutputBucketName: ").append(getOutputBucketName()).append(",");
        if (getOutputKey() != null)
            sb.append("OutputKey: ").append(getOutputKey()).append(",");
        if (getOutputEncryptionKMSKeyId() != null)
            sb.append("OutputEncryptionKMSKeyId: ").append(getOutputEncryptionKMSKeyId()).append(",");
        if (getKMSEncryptionContext() != null)
            sb.append("KMSEncryptionContext: ").append(getKMSEncryptionContext()).append(",");
        if (getSettings() != null)
            sb.append("Settings: ").append(getSettings()).append(",");
        if (getContentIdentificationType() != null)
            sb.append("ContentIdentificationType: ").append(getContentIdentificationType()).append(",");
        if (getSpecialty() != null)
            sb.append("Specialty: ").append(getSpecialty()).append(",");
        if (getType() != null)
            sb.append("Type: ").append(getType()).append(",");
        if (getTags() != null)
            sb.append("Tags: ").append(getTags());
        sb.append("}");
        return sb.toString();
    }

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;

        if (obj instanceof StartMedicalTranscriptionJobRequest == false)
            return false;
        StartMedicalTranscriptionJobRequest other = (StartMedicalTranscriptionJobRequest) obj;
        if (other.getMedicalTranscriptionJobName() == null ^ this.getMedicalTranscriptionJobName() == null)
            return false;
        if (other.getMedicalTranscriptionJobName() != null && other.getMedicalTranscriptionJobName().equals(this.getMedicalTranscriptionJobName()) == false)
            return false;
        if (other.getLanguageCode() == null ^ this.getLanguageCode() == null)
            return false;
        if (other.getLanguageCode() != null && other.getLanguageCode().equals(this.getLanguageCode()) == false)
            return false;
        if (other.getMediaSampleRateHertz() == null ^ this.getMediaSampleRateHertz() == null)
            return false;
        if (other.getMediaSampleRateHertz() != null && other.getMediaSampleRateHertz().equals(this.getMediaSampleRateHertz()) == false)
            return false;
        if (other.getMediaFormat() == null ^ this.getMediaFormat() == null)
            return false;
        if (other.getMediaFormat() != null && other.getMediaFormat().equals(this.getMediaFormat()) == false)
            return false;
        if (other.getMedia() == null ^ this.getMedia() == null)
            return false;
        if (other.getMedia() != null && other.getMedia().equals(this.getMedia()) == false)
            return false;
        if (other.getOutputBucketName() == null ^ this.getOutputBucketName() == null)
            return false;
        if (other.getOutputBucketName() != null && other.getOutputBucketName().equals(this.getOutputBucketName()) == false)
            return false;
        if (other.getOutputKey() == null ^ this.getOutputKey() == null)
            return false;
        if (other.getOutputKey() != null && other.getOutputKey().equals(this.getOutputKey()) == false)
            return false;
        if (other.getOutputEncryptionKMSKeyId() == null ^ this.getOutputEncryptionKMSKeyId() == null)
            return false;
        if (other.getOutputEncryptionKMSKeyId() != null && other.getOutputEncryptionKMSKeyId().equals(this.getOutputEncryptionKMSKeyId()) == false)
            return false;
        if (other.getKMSEncryptionContext() == null ^ this.getKMSEncryptionContext() == null)
            return false;
        if (other.getKMSEncryptionContext() != null && other.getKMSEncryptionContext().equals(this.getKMSEncryptionContext()) == false)
            return false;
        if (other.getSettings() == null ^ this.getSettings() == null)
            return false;
        if (other.getSettings() != null && other.getSettings().equals(this.getSettings()) == false)
            return false;
        if (other.getContentIdentificationType() == null ^ this.getContentIdentificationType() == null)
            return false;
        if (other.getContentIdentificationType() != null && other.getContentIdentificationType().equals(this.getContentIdentificationType()) == false)
            return false;
        if (other.getSpecialty() == null ^ this.getSpecialty() == null)
            return false;
        if (other.getSpecialty() != null && other.getSpecialty().equals(this.getSpecialty()) == false)
            return false;
        if (other.getType() == null ^ this.getType() == null)
            return false;
        if (other.getType() != null && other.getType().equals(this.getType()) == false)
            return false;
        if (other.getTags() == null ^ this.getTags() == null)
            return false;
        if (other.getTags() != null && other.getTags().equals(this.getTags()) == false)
            return false;
        return true;
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int hashCode = 1;

        hashCode = prime * hashCode + ((getMedicalTranscriptionJobName() == null) ? 0 : getMedicalTranscriptionJobName().hashCode());
        hashCode = prime * hashCode + ((getLanguageCode() == null) ? 0 : getLanguageCode().hashCode());
        hashCode = prime * hashCode + ((getMediaSampleRateHertz() == null) ? 0 : getMediaSampleRateHertz().hashCode());
        hashCode = prime * hashCode + ((getMediaFormat() == null) ? 0 : getMediaFormat().hashCode());
        hashCode = prime * hashCode + ((getMedia() == null) ? 0 : getMedia().hashCode());
        hashCode = prime * hashCode + ((getOutputBucketName() == null) ? 0 : getOutputBucketName().hashCode());
        hashCode = prime * hashCode + ((getOutputKey() == null) ? 0 : getOutputKey().hashCode());
        hashCode = prime * hashCode + ((getOutputEncryptionKMSKeyId() == null) ? 0 : getOutputEncryptionKMSKeyId().hashCode());
        hashCode = prime * hashCode + ((getKMSEncryptionContext() == null) ? 0 : getKMSEncryptionContext().hashCode());
        hashCode = prime * hashCode + ((getSettings() == null) ? 0 : getSettings().hashCode());
        hashCode = prime * hashCode + ((getContentIdentificationType() == null) ? 0 : getContentIdentificationType().hashCode());
        hashCode = prime * hashCode + ((getSpecialty() == null) ? 0 : getSpecialty().hashCode());
        hashCode = prime * hashCode + ((getType() == null) ? 0 : getType().hashCode());
        hashCode = prime * hashCode + ((getTags() == null) ? 0 : getTags().hashCode());
        return hashCode;
    }

    @Override
    public StartMedicalTranscriptionJobRequest clone() {
        return (StartMedicalTranscriptionJobRequest) super.clone();
    }

}


text:
<?php
require_once dirname(__FILE__) . "/../vendor/autoload.php";

use Inspekt\Inspekt;

$superCage = Inspekt::makeSuperCage();

echo "<pre>";
var_dump($superCage);
echo "</pre>\n";

echo 'Digits:' . $superCage->server->getDigits('SERVER_SOFTWARE') . '<p/>';
echo 'Alpha:' . $superCage->server->getAlpha('SERVER_SOFTWARE') . '<p/>';
echo 'Alnum:' . $superCage->server->getAlnum('SERVER_SOFTWARE') . '<p/>';
echo 'Raw:' . $superCage->server->getRaw('SERVER_SOFTWARE') . '<p/>';

redpajama_set_name: RedPajamaGithub


text:
from setuptools import setup

setup(
    name='g1.devtools.buildtools',
    packages=[
        'g1.devtools.buildtools',
    ],
    zip_safe=False,
)


text:
package com.parse;

import android.net.SSLCertificateSocketFactory;
import android.net.SSLSessionCache;
import android.net.http.AndroidHttpClient;

import com.parse.http.ParseHttpBody;
import com.parse.http.ParseHttpRequest;
import com.parse.http.ParseHttpResponse;

import org.apache.http.Header;
import org.apache.http.HttpEntity;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpDelete;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpPut;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.client.params.HttpClientParams;
import org.apache.http.conn.ClientConnectionManager;
import org.apache.http.conn.params.ConnManagerParams;
import org.apache.http.conn.params.ConnPerRouteBean;
import org.apache.http.conn.params.ConnRoutePNames;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.entity.InputStreamEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.DefaultHttpRequestRetryHandler;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.HashMap;
import java.util.Map;

/**
 * An implementation of ParseHttpClient using Apache httpclient library
 */
@SuppressWarnings("deprecation")
/** package */ class ParseApacheHttpClient extends ParseHttpClient<HttpUriRequest, HttpResponse> {
  private DefaultHttpClient apacheClient;

  public ParseApacheHttpClient(int socketOperationTimeout, SSLSessionCache sslSessionCache) {
    // Most of this is from AndroidHttpClient#newInstance() except [1] and [2]
    HttpParams params = new BasicHttpParams();

    // Turn off stale checking.  Our connections break all the time anyway,
    // and it's not worth it to pay the penalty of checking every time.
    HttpConnectionParams.setStaleCheckingEnabled(params, false);

    HttpConnectionParams.setConnectionTimeout(params, socketOperationTimeout);
    HttpConnectionParams.setSoTimeout(params, socketOperationTimeout);
    HttpConnectionParams.setSocketBufferSize(params, 8192);

    // Don't handle redirects. We copy the setting from AndroidHttpClient.
    // For detail, check https://quip.com/Px8jAxnaun2r
    HttpClientParams.setRedirecting(params, false);

    // Register standard protocols.
    SchemeRegistry schemeRegistry = new SchemeRegistry();
    schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80));
    schemeRegistry.register(new Scheme("https", SSLCertificateSocketFactory.getHttpSocketFactory(
        socketOperationTimeout, sslSessionCache), 443));

    // [1] AndroidHttpClient defaults to 2 connections per route. Not fun. AND you can't set these
    // properties after AndroidHttpClient#newInstance(context)
    String maxConnectionsStr = System.getProperty("http.maxConnections");
    if (maxConnectionsStr != null) {
      int maxConnections = Integer.parseInt(maxConnectionsStr);
      ConnManagerParams.setMaxConnectionsPerRoute(params, new ConnPerRouteBean(maxConnections));
      ConnManagerParams.setMaxTotalConnections(params, maxConnections);
    }

    // [2] Originally from ParseCommand, check proxy
    String host = System.getProperty("http.proxyHost");
    String portString = System.getProperty("http.proxyPort");
    if (host != null && host.length() != 0 && portString != null && portString.length() != 0) {
      int port = Integer.parseInt(portString);
      HttpHost proxy = new HttpHost(host, port, "http");
      params.setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
    }

    ClientConnectionManager manager = new ThreadSafeClientConnManager(params, schemeRegistry);
    apacheClient = new DefaultHttpClient(manager, params);

    // Disable retry logic by ApacheHttpClient. When we leave the app idle for 3 - 5 min, the next
    // request will always fail with NoHttpResponseException: The target server failed to respond,
    // in this situation, the Apache httpClient will try to retry the request,
    // however, since we use InputStreamEntity which is non-repeatable, we will see the
    // NonRepeatableRequestException: Cannot retry request with a non-repeatable request entity.
    // We disable the retry logic by ApacheHttpClient to expose the real issue
    apacheClient.setHttpRequestRetryHandler(new DefaultHttpRequestRetryHandler(0, false));
  }

  @Override
  /* package */ ParseHttpResponse executeInternal(ParseHttpRequest parseRequest) throws IOException {
    HttpUriRequest apacheRequest = getRequest(parseRequest);

    HttpResponse apacheResponse = apacheClient.execute(apacheRequest);

    return getResponse(apacheResponse);
  }

  @Override
  /* package */ ParseHttpResponse getResponse(HttpResponse apacheResponse)
      throws IOException {
    if (apacheResponse == null) {
      throw new IllegalArgumentException(
          "HttpResponse passed to getResponse should not be null."
      );
    }

    // Status code
    int statusCode = apacheResponse.getStatusLine().getStatusCode();

    // Content
    InputStream content = disableHttpLibraryAutoDecompress() ?
        apacheResponse.getEntity().getContent() :
        AndroidHttpClient.getUngzippedContent(apacheResponse.getEntity());

    // Total size
    int totalSize = -1;
    Header[] contentLengthHeader = apacheResponse.getHeaders("Content-Length");
    // Some encodings, such as chunked encoding, forbid the
    // content-length header.
    if (contentLengthHeader.length > 0) {
      totalSize = Integer.parseInt(contentLengthHeader[0].getValue());
    }

    // Reason phrase
    String reasonPhrase = apacheResponse.getStatusLine().getReasonPhrase();

    // Headers
    Map<String, String> headers = new HashMap<>();
    for (Header header : apacheResponse.getAllHeaders()) {
      headers.put(header.getName(), header.getValue());
    }

    // Content type
    String contentType = null;
    HttpEntity entity = apacheResponse.getEntity();
    if (entity != null && entity.getContentType() != null) {
      contentType = entity.getContentType().getValue();
    }

    return new ParseHttpResponse.Builder()
        .setStatusCode(statusCode)
        .setContent(content)
        .setTotalSize(totalSize)
        .setReasonPhrase(reasonPhrase)
        .setHeaders(headers)
        .setContentType(contentType)
        .build();
  }

  @Override
  /* package */ HttpUriRequest getRequest(ParseHttpRequest parseRequest)
      throws IOException {
    if (parseRequest == null) {
      throw new IllegalArgumentException(
          "ParseHttpRequest passed to getApacheRequest should not be null."
      );
    }

    HttpUriRequest apacheRequest;
    ParseHttpRequest.Method method = parseRequest.getMethod();
    String url = parseRequest.getUrl();
    switch (method) {
      case GET:
        apacheRequest = new HttpGet(url);
        break;
      case DELETE:
        apacheRequest = new HttpDelete(url);
        break;
      case POST:
        apacheRequest = new HttpPost(url);
        break;
      case PUT:
        apacheRequest = new HttpPut(url);
        break;
      default:
        // This case will never be reached since we have already handled this case in
        // ParseRequest.newRequest().
        throw new IllegalStateException("Unsupported http method " + method.toString());
    }

    // Set header
    for (Map.Entry<String, String> entry : parseRequest.getAllHeaders().entrySet()) {
      apacheRequest.setHeader(entry.getKey(), entry.getValue());
    }
    AndroidHttpClient.modifyRequestToAcceptGzipResponse(apacheRequest);

    // Set entity
    ParseHttpBody body = parseRequest.getBody();
    switch (method) {
      case POST:
        ((HttpPost) apacheRequest).setEntity(new ParseApacheHttpEntity(body));
        break;
      case PUT:
        ((HttpPut) apacheRequest).setEntity(new ParseApacheHttpEntity(body));
        break;
      default:
        break;
    }
    return apacheRequest;
  }

  /**
   * An wrapper of Apache InputStreamEntity. It takes a ParseHttpBody
   * and transfer it to a HttpEntity
   */
  private static class ParseApacheHttpEntity extends InputStreamEntity {
    private ParseHttpBody parseBody;

    public ParseApacheHttpEntity(ParseHttpBody parseBody) throws IOException {
      super(parseBody.getContent(), parseBody.getContentLength());
      super.setContentType(parseBody.getContentType());
      this.parseBody = parseBody;
    }

    @Override
    public void writeTo(OutputStream out) throws IOException {
      parseBody.writeTo(out);
    }
  }
}


text:
namespace ios_feed {

void RegisterProfilePrefs(PrefRegistrySimple* registry) {
  feed::RegisterProfilePrefs(registry);
  feed::prefs::RegisterFeedSharedProfilePrefs(registry);
}

}  // namespace ios_feed


text:
import { ModuleWithProviders } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { ProfileResolver, UserResolver } from '../core';
import { PhoneRequiredGuard } from '../interfaces';

import { SafeComponent } from './safe.component';
import { SetHeadComponent } from './head.component';
import { BindPhoneComponent } from './phone.component';
import { SetPaykeyComponent } from './paykey.component';

export const routes: Routes = [
  {
    path: 'safe',
    children: [
      {
        path: '',
        component: SafeComponent,
        resolve: {
          profile: ProfileResolver,
          user: UserResolver,
        },
      },
      {
        path: 'head',
        component: SetHeadComponent,
        resolve: {
          profile: ProfileResolver,
          user: UserResolver,
        },
      },
      {
        path: 'phone',
        component: BindPhoneComponent,
      },
      {
        path: 'paykey',
        component: SetPaykeyComponent,
        canActivate: [PhoneRequiredGuard],
      },
    ]
  },
];

export const safeRouting: ModuleWithProviders = RouterModule.forChild(routes);


text:
[![Build Status](https://travis-ci.org/mattbasta/breezeblock.svg?branch=master)](https://travis-ci.org/mattbasta/breezeblock)

An experimental templating language for JS that can compile directly to DOM.

Compatible with all modern browsers and IE9+.

```bash
npm install breezeblock --save
```

Using Breezeblock in Express:

```js
var express = require('express');
var app = express();

app.engine('brz', require('breezeblock').renderTemplate);
app.set('view engine', 'brz');

app.get('/', function(req, res) {
    // This will render myTemplate.brz
    res.render('myTemplate', {foo: 'bar', my: 'variables'});
});
```

Using Breezeblock elsewhere:

```js
var breezeblock = require('breezeblock');

// On the fly
breezeblock.renderTemplate(
    'templates/myTemplate.brz', // Path to template
    {my: 'variables'}, // Data to render template with
    function(err, output) {
        console.log(output);
    }
)

// Compiled
var compiledTemplate = breezeblock.compileTemplate('templates/myTemplate.brz');
console.log(compiledTemplate({my: 'variables'}));

```

Compiling your templates:

```bash
breeze-compile path/to/template.brz
```

## Technique

BreezeBlock templates can compile to a number of different formats:

- HTML, like most other templating engines
- Precompiled HTML generator
- Precompiled DOM generator

The HTML format simply outputs a string of markup when the template is rendered. The Precompiled HTML generator format outputs the template as JavaScript, preventing unnecessary overhead from parsing the template and traversing its AST. This feature is implemented in many templating engines. The DOM generator is unique: the template is output as JavaScript that directly generates DOM using `createElement` and `createTextNode`.

```html
<!-- This: -->
<img src={{foo}}>

<!-- becomes this: -->
<script>
  function template(document, elem, scope) {
    var elem1 = document.createElement("img");

    elem1.setAttribute("src".toLowerCase(), scope["foo"]);
    elem.appendChild(elem1);
    elem.appendChild(document.createTextNode("\n"));
  }
</script>
```

## Benefits

1. **Safety**: Because `innerHTML` is never used and markup is never concatenated with user-provided data, there is virtually no risk of XSS.
2. **Performance**: Because DOM is directly manipulated, there is no overhead of concatenating large strings or parsing the generated markup (if rendered on the client).
3. **Hygiene**: Breezeblock gives you a great deal of freedom with your templates while preventing you from using many common template antipatterns, like dynamically naming nodes. This keeps templates simple and maintainable.
4. **Support**: Using custom elements? Breezeblock should "just work". Using something custom? Pass your own `document` object to the DOM generation function.

## Documentation

Write HTML as you normally would. Self-closing tags that are not [void elements](http://www.w3.org/html/wg/drafts/html/master/single-page.html#void-elements) must use a closing slash (`<foo />`).

```html
<div>
  Text nodes can be included inline
  <br>
  <!-- HTML comments are welcome -->
  <b class="really-bold">Mix and match tags</b>

  <my-custom-element />
</div>
```

Attribute names and values may be variable:

```mustache
<div {{foo}}="bar"></div>
<div data-foo={{bar}}></div>

<!--
`fieldChecked` and `fieldReadonly` should contain "checked" and "readonly respectively"
-->
<input type="text" {{fieldChecked}} {{fieldReadonly}}>

<!-- Attributes may be conditional -->
<img src="foo.jpg" alt="" {% if imageTitle %}title={{imageTitle}}{%/ if %}>
<input type="checkbox" {% if checkboxChecked %}checked{%/ if %}>
```

Node contents can be variable:

```mustache
<div>Here is my {{value}}</div>
<aside>{{value}}</aside>
```

Expressions can use dot notation and subscripts:

```mustache
<img src={{images[index].src}} alt={{images[index]["alt"]}}>
<img src={{images[0].src}} alt={{images[0]["alt"]}}>
```

If you absolutely *must* output some unsanitized markup (you shouldn't), you can use Mustache's triple brace syntax:

```mustache
<div class="abandon-all-hope">
  {{{myCompletelySanitizedValue}}}
</div>
```

## Work to Be Done

- Decide which language constructs to make available
  - `{% loop ... %}`
  - ...
- Figure out where each language construct should be usable
  - Conditional attribute values
  - Loops to define attributes


text:
package procontroll.test;

import java.util.ArrayList;

import processing.core.PApplet;
import procontroll.ControllDevice;
import procontroll.ControllIO;

public class MultipleMouse extends PApplet {

    private ControllIO controll;

    private ArrayList devices;

    private float[] _myDeltas;

    public void setup() {
        size(1024, 768);
        smooth();
        noFill();

        controll = ControllIO.getInstance(this);
        controll.printDevices();

        devices = new ArrayList ();

        for (int i = 0; i < controll.getNumberOfDevices(); i++) {
            controll.getDevice(i).getName();
            if (controll.getDevice(i).getName().contains("Mouse")) {
                try {
                    devices.add(controll.getDevice(i));
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
        }

        _myDeltas = new float[devices.size()];

        System.out.println("FOUND " + devices.size() + " DEVICES.");
    }

    public void draw() {
        background(255);

        for (int i = 0; i < devices.size(); i++) {
            _myDeltas[i] = ((ControllDevice)devices.get(i)).getSlider(0).getValue();
        }

        for (int i = 0; i < devices.size(); i++) {
            final float myOffset = (float) (i + 1) / (float) (devices.size() + 1);
            ellipse(width * myOffset, height / 2, _myDeltas[i] * 10, _myDeltas[i] * 10);
        }
    }

    public static void main(String[] args) {
        PApplet.main(new String[] {MultipleMouse.class.getName()});
    }
}


text:
"use strict";

exports.__esModule = true;

var _react = require("react");

var _react2 = _interopRequireDefault(_react);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var PaneSeparator = function PaneSeparator() {
  return _react2.default.createElement("div", { className: "auth0-lock-pane-separator" });
};

exports.default = PaneSeparator;


text:
<!DOCTYPE html>

		<meta charset="UTF-8">
		<title>Testing Lib</title>

Show / hide paragraph

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Proin at tempus dolor. Nam tempus suscipit libero quis auctor. Pellentesque in posuere nunc. Nam eu felis tempor, finibus purus vel, pharetra ligula. Curabitur ut iaculis turpis. Fusce facilisis accumsan interdum. Proin in condimentum dui. Etiam rhoncus dapibus tincidunt. Praesent commodo enim ante, vel convallis nisi porttitor in. Curabitur tortor metus, posuere in feugiat et, euismod quis ante. Praesent id feugiat risus. Nunc vitae mollis dui. Vivamus libero mauris, blandit id lorem vitae, hendrerit luctus magna. Duis quis mattis leo. Praesent venenatis elit vel urna mattis sollicitudin.


text:
<?php

session_start();
$_SESSION = [];
session_destroy();

if (isset($_COOKIE['linkify'])) {
    setcookie('linkify', '', time(), '/');
}

header('Location: /');
exit();


text:
require "test_helper"

# Single controller test.
class NameNewRowRouteTest < ActionController::TestCase
  tests NamesController
  test "should route to names new row for a other type" do
    assert_routing "/names/new_row/other",
                   controller: "names",
                   action: "new_row",
                   type: "other"
  end
end


text:
namespace Restract.Core.DependencyResolver.InstanceResolvers
{
    using System;
    using System.Reflection;

    public class FactoryInstaceResolver : BaseInstaceResolver
    {
        private readonly Func<IDependencyResolver, object> _factory;
        private readonly IDependencyResolver _dependencyResolver;
        public FactoryInstaceResolver(Func<IDependencyResolver, object> factory, IDependencyResolver dependencyResolver)
        {
            _factory = factory;
            _dependencyResolver = dependencyResolver;
        }

        public override object Resolve()
        {
            return _factory(_dependencyResolver);
        }

        public override Type GetObjectType()
        {
            return _factory.GetMethodInfo().ReturnType;
        }
    }
}


text:
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>

	<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
		<!-- encoders are assigned by default the type ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
		<encoder>
			<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
		</encoder>
	</appender>

	<logger name="com.crawljax.plugins.crawloverview" level="DEBUG" />
	<logger name="com.crawljax.test" level="DEBUG" />

	<root level="WARN">
		<appender-ref ref="STDOUT" />
	</root>

</configuration>