import * as HttpClient from "effect/unstable/http/HttpClient";
import * as S from "effect/Schema";
import * as stream from "effect/Stream";
import * as API from "../client/api.js";
import * as T from "../traits.js";
import * as C from "../category.js";
const svc = T.AwsApiService({
    sdkId: "Transcribe",
    serviceShapeName: "Transcribe",
});
const auth = T.AwsAuthSigv4({ name: "transcribe" });
const ver = T.ServiceVersion("2017-10-26");
const proto = T.AwsProtocolsAwsJson1_1();
const rules = T.EndpointResolver((p, _) => {
    const { Region, UseDualStack = false, UseFIPS = false, Endpoint } = p;
    const e = (u, p = {}, h = {}) => ({
        type: "endpoint",
        endpoint: { url: u, properties: p, headers: h },
    });
    const err = (m) => ({
        type: "error",
        message: m,
    });
    if (Endpoint != null) {
        if (UseFIPS === true) {
            return err("Invalid Configuration: FIPS and custom endpoint are not supported");
        }
        if (UseDualStack === true) {
            return err("Invalid Configuration: Dualstack and custom endpoint are not supported");
        }
        return e(Endpoint);
    }
    if (Region != null) {
        {
            const PartitionResult = _.partition(Region);
            if (PartitionResult != null && PartitionResult !== false) {
                if (UseFIPS === true && UseDualStack === true) {
                    if (true === _.getAttr(PartitionResult, "supportsFIPS") &&
                        true === _.getAttr(PartitionResult, "supportsDualStack")) {
                        return e(`https://transcribe-fips.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                    }
                    return err("FIPS and DualStack are enabled, but this partition does not support one or both");
                }
                if (UseFIPS === true) {
                    if (_.getAttr(PartitionResult, "supportsFIPS") === true) {
                        if (_.getAttr(PartitionResult, "name") === "aws") {
                            return e(`https://fips.transcribe.${Region}.amazonaws.com`);
                        }
                        if (_.getAttr(PartitionResult, "name") === "aws-us-gov") {
                            return e(`https://fips.transcribe.${Region}.amazonaws.com`);
                        }
                        return e(`https://transcribe-fips.${Region}.${_.getAttr(PartitionResult, "dnsSuffix")}`);
                    }
                    return err("FIPS is enabled but this partition does not support FIPS");
                }
                if (UseDualStack === true) {
                    if (true === _.getAttr(PartitionResult, "supportsDualStack")) {
                        return e(`https://transcribe.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                    }
                    return err("DualStack is enabled but this partition does not support DualStack");
                }
                if (Region === "cn-north-1") {
                    return e("https://cn.transcribe.cn-north-1.amazonaws.com.cn");
                }
                if (Region === "cn-northwest-1") {
                    return e("https://cn.transcribe.cn-northwest-1.amazonaws.com.cn");
                }
                return e(`https://transcribe.${Region}.${_.getAttr(PartitionResult, "dnsSuffix")}`);
            }
        }
    }
    return err("Invalid Configuration: Missing Region");
});
export const AbsoluteTimeRange = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    StartTime: S.optional(S.Number),
    EndTime: S.optional(S.Number),
    First: S.optional(S.Number),
    Last: S.optional(S.Number),
})).annotate({
    identifier: "AbsoluteTimeRange",
});
export const RelativeTimeRange = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    StartPercentage: S.optional(S.Number),
    EndPercentage: S.optional(S.Number),
    First: S.optional(S.Number),
    Last: S.optional(S.Number),
})).annotate({
    identifier: "RelativeTimeRange",
});
export const NonTalkTimeFilter = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Threshold: S.optional(S.Number),
    AbsoluteTimeRange: S.optional(AbsoluteTimeRange),
    RelativeTimeRange: S.optional(RelativeTimeRange),
    Negate: S.optional(S.Boolean),
})).annotate({
    identifier: "NonTalkTimeFilter",
});
export const ParticipantRole = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const InterruptionFilter = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Threshold: S.optional(S.Number),
    ParticipantRole: S.optional(ParticipantRole),
    AbsoluteTimeRange: S.optional(AbsoluteTimeRange),
    RelativeTimeRange: S.optional(RelativeTimeRange),
    Negate: S.optional(S.Boolean),
})).annotate({
    identifier: "InterruptionFilter",
});
export const TranscriptFilterType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const StringTargetList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const TranscriptFilter = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    TranscriptFilterType: TranscriptFilterType,
    AbsoluteTimeRange: S.optional(AbsoluteTimeRange),
    RelativeTimeRange: S.optional(RelativeTimeRange),
    ParticipantRole: S.optional(ParticipantRole),
    Negate: S.optional(S.Boolean),
    Targets: StringTargetList,
})).annotate({
    identifier: "TranscriptFilter",
});
export const SentimentValue = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const SentimentValueList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(SentimentValue);
export const SentimentFilter = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Sentiments: SentimentValueList,
    AbsoluteTimeRange: S.optional(AbsoluteTimeRange),
    RelativeTimeRange: S.optional(RelativeTimeRange),
    ParticipantRole: S.optional(ParticipantRole),
    Negate: S.optional(S.Boolean),
})).annotate({
    identifier: "SentimentFilter",
});
export const Rule = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ NonTalkTimeFilter: NonTalkTimeFilter }),
    S.Struct({ InterruptionFilter: InterruptionFilter }),
    S.Struct({ TranscriptFilter: TranscriptFilter }),
    S.Struct({ SentimentFilter: SentimentFilter }),
]);
export const RuleList = /*@__PURE__*/ /*#__PURE__*/ S.Array(Rule);
export const Tag = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Key: S.String, Value: S.String })).annotate({ identifier: "Tag" });
export const TagList = /*@__PURE__*/ /*#__PURE__*/ S.Array(Tag);
export const InputType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const CreateCallAnalyticsCategoryRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    CategoryName: S.String.pipe(T.HttpLabel("CategoryName")),
    Rules: RuleList,
    Tags: S.optional(TagList),
    InputType: S.optional(InputType),
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/callanalyticscategories/{CategoryName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateCallAnalyticsCategoryRequest",
});
export const CategoryProperties = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    CategoryName: S.optional(S.String),
    Rules: S.optional(RuleList),
    CreateTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    LastUpdateTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    Tags: S.optional(TagList),
    InputType: S.optional(InputType),
})).annotate({
    identifier: "CategoryProperties",
});
export const CreateCallAnalyticsCategoryResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ CategoryProperties: S.optional(CategoryProperties) })).annotate({
    identifier: "CreateCallAnalyticsCategoryResponse",
});
export const CLMLanguageCode = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const BaseModelName = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const InputDataConfig = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    S3Uri: S.String,
    TuningDataS3Uri: S.optional(S.String),
    DataAccessRoleArn: S.String,
})).annotate({
    identifier: "InputDataConfig",
});
export const CreateLanguageModelRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    LanguageCode: CLMLanguageCode,
    BaseModelName: BaseModelName,
    ModelName: S.String.pipe(T.HttpLabel("ModelName")),
    InputDataConfig: InputDataConfig,
    Tags: S.optional(TagList),
}).pipe(T.all(T.Http({ method: "PUT", uri: "/languagemodels/{ModelName}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateLanguageModelRequest",
});
export const ModelStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const CreateLanguageModelResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    LanguageCode: S.optional(CLMLanguageCode),
    BaseModelName: S.optional(BaseModelName),
    ModelName: S.optional(S.String),
    InputDataConfig: S.optional(InputDataConfig),
    ModelStatus: S.optional(ModelStatus),
})).annotate({
    identifier: "CreateLanguageModelResponse",
});
export const LanguageCode = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const CreateMedicalVocabularyRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.String.pipe(T.HttpLabel("VocabularyName")),
    LanguageCode: LanguageCode,
    VocabularyFileUri: S.String,
    Tags: S.optional(TagList),
}).pipe(T.all(T.Http({ method: "PUT", uri: "/medicalvocabularies/{VocabularyName}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateMedicalVocabularyRequest",
});
export const VocabularyState = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const CreateMedicalVocabularyResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.optional(S.String),
    LanguageCode: S.optional(LanguageCode),
    VocabularyState: S.optional(VocabularyState),
    LastModifiedTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    FailureReason: S.optional(S.String),
})).annotate({
    identifier: "CreateMedicalVocabularyResponse",
});
export const Phrases = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const CreateVocabularyRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.String.pipe(T.HttpLabel("VocabularyName")),
    LanguageCode: LanguageCode,
    Phrases: S.optional(Phrases),
    VocabularyFileUri: S.optional(S.String),
    Tags: S.optional(TagList),
    DataAccessRoleArn: S.optional(S.String),
}).pipe(T.all(T.Http({ method: "PUT", uri: "/vocabularies/{VocabularyName}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateVocabularyRequest",
});
export const CreateVocabularyResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.optional(S.String),
    LanguageCode: S.optional(LanguageCode),
    VocabularyState: S.optional(VocabularyState),
    LastModifiedTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    FailureReason: S.optional(S.String),
})).annotate({
    identifier: "CreateVocabularyResponse",
});
export const Words = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const CreateVocabularyFilterRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyFilterName: S.String.pipe(T.HttpLabel("VocabularyFilterName")),
    LanguageCode: LanguageCode,
    Words: S.optional(Words),
    VocabularyFilterFileUri: S.optional(S.String),
    Tags: S.optional(TagList),
    DataAccessRoleArn: S.optional(S.String),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/vocabularyFilters/{VocabularyFilterName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateVocabularyFilterRequest",
});
export const CreateVocabularyFilterResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyFilterName: S.optional(S.String),
    LanguageCode: S.optional(LanguageCode),
    LastModifiedTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
})).annotate({
    identifier: "CreateVocabularyFilterResponse",
});
export const DeleteCallAnalyticsCategoryRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ CategoryName: S.String.pipe(T.HttpLabel("CategoryName")) }).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/callanalyticscategories/{CategoryName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteCallAnalyticsCategoryRequest",
});
export const DeleteCallAnalyticsCategoryResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteCallAnalyticsCategoryResponse",
});
export const DeleteCallAnalyticsJobRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    CallAnalyticsJobName: S.String.pipe(T.HttpLabel("CallAnalyticsJobName")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/callanalyticsjobs/{CallAnalyticsJobName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteCallAnalyticsJobRequest",
});
export const DeleteCallAnalyticsJobResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteCallAnalyticsJobResponse",
});
export const DeleteLanguageModelRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ModelName: S.String.pipe(T.HttpLabel("ModelName")) }).pipe(T.all(T.Http({ method: "DELETE", uri: "/languagemodels/{ModelName}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteLanguageModelRequest",
});
export const DeleteLanguageModelResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteLanguageModelResponse",
});
export const DeleteMedicalScribeJobRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MedicalScribeJobName: S.String.pipe(T.HttpLabel("MedicalScribeJobName")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/medicalscribejobs/{MedicalScribeJobName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteMedicalScribeJobRequest",
});
export const DeleteMedicalScribeJobResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteMedicalScribeJobResponse",
});
export const DeleteMedicalTranscriptionJobRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MedicalTranscriptionJobName: S.String.pipe(T.HttpLabel("MedicalTranscriptionJobName")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/medicaltranscriptionjobs/{MedicalTranscriptionJobName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteMedicalTranscriptionJobRequest",
});
export const DeleteMedicalTranscriptionJobResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteMedicalTranscriptionJobResponse",
});
export const DeleteMedicalVocabularyRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.String.pipe(T.HttpLabel("VocabularyName")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/medicalvocabularies/{VocabularyName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteMedicalVocabularyRequest",
});
export const DeleteMedicalVocabularyResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteMedicalVocabularyResponse",
});
export const DeleteTranscriptionJobRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    TranscriptionJobName: S.String.pipe(T.HttpLabel("TranscriptionJobName")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/transcriptionjobs/{TranscriptionJobName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteTranscriptionJobRequest",
});
export const DeleteTranscriptionJobResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteTranscriptionJobResponse",
});
export const DeleteVocabularyRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.String.pipe(T.HttpLabel("VocabularyName")),
}).pipe(T.all(T.Http({ method: "DELETE", uri: "/vocabularies/{VocabularyName}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteVocabularyRequest",
});
export const DeleteVocabularyResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteVocabularyResponse",
});
export const DeleteVocabularyFilterRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyFilterName: S.String.pipe(T.HttpLabel("VocabularyFilterName")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/vocabularyFilters/{VocabularyFilterName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteVocabularyFilterRequest",
});
export const DeleteVocabularyFilterResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteVocabularyFilterResponse",
});
export const DescribeLanguageModelRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ModelName: S.String.pipe(T.HttpLabel("ModelName")) }).pipe(T.all(T.Http({ method: "GET", uri: "/languagemodels/{ModelName}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DescribeLanguageModelRequest",
});
export const LanguageModel = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ModelName: S.optional(S.String),
    CreateTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    LastModifiedTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    LanguageCode: S.optional(CLMLanguageCode),
    BaseModelName: S.optional(BaseModelName),
    ModelStatus: S.optional(ModelStatus),
    UpgradeAvailability: S.optional(S.Boolean),
    FailureReason: S.optional(S.String),
    InputDataConfig: S.optional(InputDataConfig),
})).annotate({ identifier: "LanguageModel" });
export const DescribeLanguageModelResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ LanguageModel: S.optional(LanguageModel) })).annotate({
    identifier: "DescribeLanguageModelResponse",
});
export const GetCallAnalyticsCategoryRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ CategoryName: S.String.pipe(T.HttpLabel("CategoryName")) }).pipe(T.all(T.Http({
    method: "GET",
    uri: "/callanalyticscategories/{CategoryName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetCallAnalyticsCategoryRequest",
});
export const GetCallAnalyticsCategoryResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ CategoryProperties: S.optional(CategoryProperties) })).annotate({
    identifier: "GetCallAnalyticsCategoryResponse",
});
export const GetCallAnalyticsJobRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    CallAnalyticsJobName: S.String.pipe(T.HttpLabel("CallAnalyticsJobName")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/callanalyticsjobs/{CallAnalyticsJobName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetCallAnalyticsJobRequest",
});
export const CallAnalyticsJobStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const CallAnalyticsFeature = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const CallAnalyticsSkippedReasonCode = 
/*@__PURE__*/ /*#__PURE__*/ S.String;
export const CallAnalyticsSkippedFeature = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Feature: S.optional(CallAnalyticsFeature),
    ReasonCode: S.optional(CallAnalyticsSkippedReasonCode),
    Message: S.optional(S.String),
})).annotate({
    identifier: "CallAnalyticsSkippedFeature",
});
export const CallAnalyticsSkippedFeatureList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(CallAnalyticsSkippedFeature);
export const CallAnalyticsJobDetails = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Skipped: S.optional(CallAnalyticsSkippedFeatureList) })).annotate({
    identifier: "CallAnalyticsJobDetails",
});
export const MediaFormat = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const Media = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MediaFileUri: S.optional(S.String),
    RedactedMediaFileUri: S.optional(S.String),
})).annotate({ identifier: "Media" });
export const Transcript = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    TranscriptFileUri: S.optional(S.String),
    RedactedTranscriptFileUri: S.optional(S.String),
})).annotate({ identifier: "Transcript" });
export const VocabularyFilterMethod = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const RedactionType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const RedactionOutput = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const PiiEntityType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const PiiEntityTypes = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(PiiEntityType);
export const ContentRedaction = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    RedactionType: RedactionType,
    RedactionOutput: RedactionOutput,
    PiiEntityTypes: S.optional(PiiEntityTypes),
})).annotate({
    identifier: "ContentRedaction",
});
export const LanguageOptions = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(LanguageCode);
export const LanguageIdSettings = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.optional(S.String),
    VocabularyFilterName: S.optional(S.String),
    LanguageModelName: S.optional(S.String),
})).annotate({
    identifier: "LanguageIdSettings",
});
export const LanguageIdSettingsMap = /*@__PURE__*/ /*#__PURE__*/ S.Record(LanguageCode, LanguageIdSettings.pipe(S.optional));
export const Summarization = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ GenerateAbstractiveSummary: S.Boolean })).annotate({ identifier: "Summarization" });
export const CallAnalyticsJobSettings = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.optional(S.String),
    VocabularyFilterName: S.optional(S.String),
    VocabularyFilterMethod: S.optional(VocabularyFilterMethod),
    LanguageModelName: S.optional(S.String),
    ContentRedaction: S.optional(ContentRedaction),
    LanguageOptions: S.optional(LanguageOptions),
    LanguageIdSettings: S.optional(LanguageIdSettingsMap),
    Summarization: S.optional(Summarization),
})).annotate({
    identifier: "CallAnalyticsJobSettings",
});
export const ChannelDefinition = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChannelId: S.optional(S.Number),
    ParticipantRole: S.optional(ParticipantRole),
})).annotate({
    identifier: "ChannelDefinition",
});
export const ChannelDefinitions = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ChannelDefinition);
export const CallAnalyticsJob = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    CallAnalyticsJobName: S.optional(S.String),
    CallAnalyticsJobStatus: S.optional(CallAnalyticsJobStatus),
    CallAnalyticsJobDetails: S.optional(CallAnalyticsJobDetails),
    LanguageCode: S.optional(LanguageCode),
    MediaSampleRateHertz: S.optional(S.Number),
    MediaFormat: S.optional(MediaFormat),
    Media: S.optional(Media),
    Transcript: S.optional(Transcript),
    StartTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    CreationTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    CompletionTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    FailureReason: S.optional(S.String),
    DataAccessRoleArn: S.optional(S.String),
    IdentifiedLanguageScore: S.optional(S.Number),
    Settings: S.optional(CallAnalyticsJobSettings),
    ChannelDefinitions: S.optional(ChannelDefinitions),
    Tags: S.optional(TagList),
})).annotate({
    identifier: "CallAnalyticsJob",
});
export const GetCallAnalyticsJobResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ CallAnalyticsJob: S.optional(CallAnalyticsJob) })).annotate({
    identifier: "GetCallAnalyticsJobResponse",
});
export const GetMedicalScribeJobRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MedicalScribeJobName: S.String.pipe(T.HttpLabel("MedicalScribeJobName")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/medicalscribejobs/{MedicalScribeJobName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetMedicalScribeJobRequest",
});
export const MedicalScribeJobStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const MedicalScribeLanguageCode = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const MedicalScribeOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ TranscriptFileUri: S.String, ClinicalDocumentUri: S.String })).annotate({
    identifier: "MedicalScribeOutput",
});
export const MedicalScribeNoteTemplate = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const ClinicalNoteGenerationSettings = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ NoteTemplate: S.optional(MedicalScribeNoteTemplate) })).annotate({
    identifier: "ClinicalNoteGenerationSettings",
});
export const MedicalScribeSettings = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ShowSpeakerLabels: S.optional(S.Boolean),
    MaxSpeakerLabels: S.optional(S.Number),
    ChannelIdentification: S.optional(S.Boolean),
    VocabularyName: S.optional(S.String),
    VocabularyFilterName: S.optional(S.String),
    VocabularyFilterMethod: S.optional(VocabularyFilterMethod),
    ClinicalNoteGenerationSettings: S.optional(ClinicalNoteGenerationSettings),
})).annotate({
    identifier: "MedicalScribeSettings",
});
export const MedicalScribeParticipantRole = 
/*@__PURE__*/ /*#__PURE__*/ S.String;
export const MedicalScribeChannelDefinition = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ChannelId: S.Number,
    ParticipantRole: MedicalScribeParticipantRole,
})).annotate({
    identifier: "MedicalScribeChannelDefinition",
});
export const MedicalScribeChannelDefinitions = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(MedicalScribeChannelDefinition);
export const MedicalScribeJob = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MedicalScribeJobName: S.optional(S.String),
    MedicalScribeJobStatus: S.optional(MedicalScribeJobStatus),
    LanguageCode: S.optional(MedicalScribeLanguageCode),
    Media: S.optional(Media),
    MedicalScribeOutput: S.optional(MedicalScribeOutput),
    StartTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    CreationTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    CompletionTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    FailureReason: S.optional(S.String),
    Settings: S.optional(MedicalScribeSettings),
    DataAccessRoleArn: S.optional(S.String),
    ChannelDefinitions: S.optional(MedicalScribeChannelDefinitions),
    MedicalScribeContextProvided: S.optional(S.Boolean),
    Tags: S.optional(TagList),
})).annotate({
    identifier: "MedicalScribeJob",
});
export const GetMedicalScribeJobResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ MedicalScribeJob: S.optional(MedicalScribeJob) })).annotate({
    identifier: "GetMedicalScribeJobResponse",
});
export const GetMedicalTranscriptionJobRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MedicalTranscriptionJobName: S.String.pipe(T.HttpLabel("MedicalTranscriptionJobName")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/medicaltranscriptionjobs/{MedicalTranscriptionJobName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetMedicalTranscriptionJobRequest",
});
export const TranscriptionJobStatus = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const MedicalTranscript = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ TranscriptFileUri: S.optional(S.String) })).annotate({
    identifier: "MedicalTranscript",
});
export const MedicalTranscriptionSetting = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ShowSpeakerLabels: S.optional(S.Boolean),
    MaxSpeakerLabels: S.optional(S.Number),
    ChannelIdentification: S.optional(S.Boolean),
    ShowAlternatives: S.optional(S.Boolean),
    MaxAlternatives: S.optional(S.Number),
    VocabularyName: S.optional(S.String),
})).annotate({
    identifier: "MedicalTranscriptionSetting",
});
export const MedicalContentIdentificationType = 
/*@__PURE__*/ /*#__PURE__*/ S.String;
export const Specialty = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const Type = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const MedicalTranscriptionJob = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MedicalTranscriptionJobName: S.optional(S.String),
    TranscriptionJobStatus: S.optional(TranscriptionJobStatus),
    LanguageCode: S.optional(LanguageCode),
    MediaSampleRateHertz: S.optional(S.Number),
    MediaFormat: S.optional(MediaFormat),
    Media: S.optional(Media),
    Transcript: S.optional(MedicalTranscript),
    StartTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    CreationTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    CompletionTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    FailureReason: S.optional(S.String),
    Settings: S.optional(MedicalTranscriptionSetting),
    ContentIdentificationType: S.optional(MedicalContentIdentificationType),
    Specialty: S.optional(Specialty),
    Type: S.optional(Type),
    Tags: S.optional(TagList),
})).annotate({
    identifier: "MedicalTranscriptionJob",
});
export const GetMedicalTranscriptionJobResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ MedicalTranscriptionJob: S.optional(MedicalTranscriptionJob) })).annotate({
    identifier: "GetMedicalTranscriptionJobResponse",
});
export const GetMedicalVocabularyRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.String.pipe(T.HttpLabel("VocabularyName")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/medicalvocabularies/{VocabularyName}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetMedicalVocabularyRequest",
});
export const GetMedicalVocabularyResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.optional(S.String),
    LanguageCode: S.optional(LanguageCode),
    VocabularyState: S.optional(VocabularyState),
    LastModifiedTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    FailureReason: S.optional(S.String),
    DownloadUri: S.optional(S.String),
})).annotate({
    identifier: "GetMedicalVocabularyResponse",
});
export const GetTranscriptionJobRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    TranscriptionJobName: S.String.pipe(T.HttpLabel("TranscriptionJobName")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/transcriptionjobs/{TranscriptionJobName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetTranscriptionJobRequest",
});
export const Settings = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.optional(S.String),
    ShowSpeakerLabels: S.optional(S.Boolean),
    MaxSpeakerLabels: S.optional(S.Number),
    ChannelIdentification: S.optional(S.Boolean),
    ShowAlternatives: S.optional(S.Boolean),
    MaxAlternatives: S.optional(S.Number),
    VocabularyFilterName: S.optional(S.String),
    VocabularyFilterMethod: S.optional(VocabularyFilterMethod),
})).annotate({ identifier: "Settings" });
export const ModelSettings = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ LanguageModelName: S.optional(S.String) })).annotate({ identifier: "ModelSettings" });
export const JobExecutionSettings = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    AllowDeferredExecution: S.optional(S.Boolean),
    DataAccessRoleArn: S.optional(S.String),
})).annotate({
    identifier: "JobExecutionSettings",
});
export const LanguageCodeItem = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    LanguageCode: S.optional(LanguageCode),
    DurationInSeconds: S.optional(S.Number),
})).annotate({
    identifier: "LanguageCodeItem",
});
export const LanguageCodeList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(LanguageCodeItem);
export const SubtitleFormat = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const SubtitleFormats = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(SubtitleFormat);
export const SubtitleFileUris = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const SubtitlesOutput = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Formats: S.optional(SubtitleFormats),
    SubtitleFileUris: S.optional(SubtitleFileUris),
    OutputStartIndex: S.optional(S.Number),
})).annotate({
    identifier: "SubtitlesOutput",
});
export const ToxicityCategory = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const ToxicityCategories = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ToxicityCategory);
export const ToxicityDetectionSettings = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ToxicityCategories: ToxicityCategories })).annotate({
    identifier: "ToxicityDetectionSettings",
});
export const ToxicityDetection = /*@__PURE__*/ /*#__PURE__*/ S.Array(ToxicityDetectionSettings);
export const TranscriptionJob = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    TranscriptionJobName: S.optional(S.String),
    TranscriptionJobStatus: S.optional(TranscriptionJobStatus),
    LanguageCode: S.optional(LanguageCode),
    MediaSampleRateHertz: S.optional(S.Number),
    MediaFormat: S.optional(MediaFormat),
    Media: S.optional(Media),
    Transcript: S.optional(Transcript),
    StartTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    CreationTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    CompletionTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    FailureReason: S.optional(S.String),
    Settings: S.optional(Settings),
    ModelSettings: S.optional(ModelSettings),
    JobExecutionSettings: S.optional(JobExecutionSettings),
    ContentRedaction: S.optional(ContentRedaction),
    IdentifyLanguage: S.optional(S.Boolean),
    IdentifyMultipleLanguages: S.optional(S.Boolean),
    LanguageOptions: S.optional(LanguageOptions),
    IdentifiedLanguageScore: S.optional(S.Number),
    LanguageCodes: S.optional(LanguageCodeList),
    Tags: S.optional(TagList),
    Subtitles: S.optional(SubtitlesOutput),
    LanguageIdSettings: S.optional(LanguageIdSettingsMap),
    ToxicityDetection: S.optional(ToxicityDetection),
})).annotate({
    identifier: "TranscriptionJob",
});
export const GetTranscriptionJobResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ TranscriptionJob: S.optional(TranscriptionJob) })).annotate({
    identifier: "GetTranscriptionJobResponse",
});
export const GetVocabularyRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.String.pipe(T.HttpLabel("VocabularyName")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/vocabularies/{VocabularyName}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetVocabularyRequest",
});
export const GetVocabularyResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.optional(S.String),
    LanguageCode: S.optional(LanguageCode),
    VocabularyState: S.optional(VocabularyState),
    LastModifiedTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    FailureReason: S.optional(S.String),
    DownloadUri: S.optional(S.String),
})).annotate({
    identifier: "GetVocabularyResponse",
});
export const GetVocabularyFilterRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyFilterName: S.String.pipe(T.HttpLabel("VocabularyFilterName")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/vocabularyFilters/{VocabularyFilterName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetVocabularyFilterRequest",
});
export const GetVocabularyFilterResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyFilterName: S.optional(S.String),
    LanguageCode: S.optional(LanguageCode),
    LastModifiedTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    DownloadUri: S.optional(S.String),
})).annotate({
    identifier: "GetVocabularyFilterResponse",
});
export const ListCallAnalyticsCategoriesRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NextToken: S.optional(S.String).pipe(T.HttpQuery("NextToken")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("MaxResults")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/callanalyticscategories" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListCallAnalyticsCategoriesRequest",
});
export const CategoryPropertiesList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(CategoryProperties);
export const ListCallAnalyticsCategoriesResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NextToken: S.optional(S.String),
    Categories: S.optional(CategoryPropertiesList),
})).annotate({
    identifier: "ListCallAnalyticsCategoriesResponse",
});
export const ListCallAnalyticsJobsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Status: S.optional(CallAnalyticsJobStatus).pipe(T.HttpQuery("Status")),
    JobNameContains: S.optional(S.String).pipe(T.HttpQuery("JobNameContains")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("NextToken")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("MaxResults")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/callanalyticsjobs" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListCallAnalyticsJobsRequest",
});
export const CallAnalyticsJobSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    CallAnalyticsJobName: S.optional(S.String),
    CreationTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    StartTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    CompletionTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    LanguageCode: S.optional(LanguageCode),
    CallAnalyticsJobStatus: S.optional(CallAnalyticsJobStatus),
    CallAnalyticsJobDetails: S.optional(CallAnalyticsJobDetails),
    FailureReason: S.optional(S.String),
})).annotate({
    identifier: "CallAnalyticsJobSummary",
});
export const CallAnalyticsJobSummaries = /*@__PURE__*/ /*#__PURE__*/ S.Array(CallAnalyticsJobSummary);
export const ListCallAnalyticsJobsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Status: S.optional(CallAnalyticsJobStatus),
    NextToken: S.optional(S.String),
    CallAnalyticsJobSummaries: S.optional(CallAnalyticsJobSummaries),
})).annotate({
    identifier: "ListCallAnalyticsJobsResponse",
});
export const ListLanguageModelsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    StatusEquals: S.optional(ModelStatus).pipe(T.HttpQuery("         StatusEquals")),
    NameContains: S.optional(S.String).pipe(T.HttpQuery("NameContains")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("NextToken")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("MaxResults")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/languagemodels" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListLanguageModelsRequest",
});
export const Models = /*@__PURE__*/ /*#__PURE__*/ S.Array(LanguageModel);
export const ListLanguageModelsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ NextToken: S.optional(S.String), Models: S.optional(Models) })).annotate({
    identifier: "ListLanguageModelsResponse",
});
export const ListMedicalScribeJobsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Status: S.optional(MedicalScribeJobStatus).pipe(T.HttpQuery("Status")),
    JobNameContains: S.optional(S.String).pipe(T.HttpQuery("JobNameContains")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("NextToken")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("MaxResults")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/medicalscribejobs" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListMedicalScribeJobsRequest",
});
export const MedicalScribeJobSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MedicalScribeJobName: S.optional(S.String),
    CreationTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    StartTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    CompletionTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    LanguageCode: S.optional(MedicalScribeLanguageCode),
    MedicalScribeJobStatus: S.optional(MedicalScribeJobStatus),
    FailureReason: S.optional(S.String),
})).annotate({
    identifier: "MedicalScribeJobSummary",
});
export const MedicalScribeJobSummaries = /*@__PURE__*/ /*#__PURE__*/ S.Array(MedicalScribeJobSummary);
export const ListMedicalScribeJobsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Status: S.optional(MedicalScribeJobStatus),
    NextToken: S.optional(S.String),
    MedicalScribeJobSummaries: S.optional(MedicalScribeJobSummaries),
})).annotate({
    identifier: "ListMedicalScribeJobsResponse",
});
export const ListMedicalTranscriptionJobsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Status: S.optional(TranscriptionJobStatus).pipe(T.HttpQuery("Status")),
    JobNameContains: S.optional(S.String).pipe(T.HttpQuery("JobNameContains")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("NextToken")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("MaxResults")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/medicaltranscriptionjobs" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListMedicalTranscriptionJobsRequest",
});
export const OutputLocationType = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const MedicalTranscriptionJobSummary = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MedicalTranscriptionJobName: S.optional(S.String),
    CreationTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    StartTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    CompletionTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    LanguageCode: S.optional(LanguageCode),
    TranscriptionJobStatus: S.optional(TranscriptionJobStatus),
    FailureReason: S.optional(S.String),
    OutputLocationType: S.optional(OutputLocationType),
    Specialty: S.optional(Specialty),
    ContentIdentificationType: S.optional(MedicalContentIdentificationType),
    Type: S.optional(Type),
})).annotate({
    identifier: "MedicalTranscriptionJobSummary",
});
export const MedicalTranscriptionJobSummaries = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(MedicalTranscriptionJobSummary);
export const ListMedicalTranscriptionJobsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Status: S.optional(TranscriptionJobStatus),
    NextToken: S.optional(S.String),
    MedicalTranscriptionJobSummaries: S.optional(MedicalTranscriptionJobSummaries),
})).annotate({
    identifier: "ListMedicalTranscriptionJobsResponse",
});
export const ListMedicalVocabulariesRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NextToken: S.optional(S.String).pipe(T.HttpQuery("NextToken")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("MaxResults")),
    StateEquals: S.optional(VocabularyState).pipe(T.HttpQuery("StateEquals")),
    NameContains: S.optional(S.String).pipe(T.HttpQuery("NameContains")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/medicalvocabularies" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListMedicalVocabulariesRequest",
});
export const VocabularyInfo = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.optional(S.String),
    LanguageCode: S.optional(LanguageCode),
    LastModifiedTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    VocabularyState: S.optional(VocabularyState),
})).annotate({ identifier: "VocabularyInfo" });
export const Vocabularies = /*@__PURE__*/ /*#__PURE__*/ S.Array(VocabularyInfo);
export const ListMedicalVocabulariesResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Status: S.optional(VocabularyState),
    NextToken: S.optional(S.String),
    Vocabularies: S.optional(Vocabularies),
})).annotate({
    identifier: "ListMedicalVocabulariesResponse",
});
export const ListTagsForResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ResourceArn: S.String.pipe(T.HttpLabel("ResourceArn")) }).pipe(T.all(T.Http({ method: "GET", uri: "/tags/{ResourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListTagsForResourceRequest",
});
export const ListTagsForResourceResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ ResourceArn: S.optional(S.String), Tags: S.optional(TagList) })).annotate({
    identifier: "ListTagsForResourceResponse",
});
export const ListTranscriptionJobsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Status: S.optional(TranscriptionJobStatus).pipe(T.HttpQuery("Status")),
    JobNameContains: S.optional(S.String).pipe(T.HttpQuery("JobNameContains")),
    NextToken: S.optional(S.String).pipe(T.HttpQuery("NextToken")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("MaxResults")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/transcriptionjobs" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListTranscriptionJobsRequest",
});
export const TranscriptionJobSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    TranscriptionJobName: S.optional(S.String),
    CreationTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    StartTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    CompletionTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    LanguageCode: S.optional(LanguageCode),
    TranscriptionJobStatus: S.optional(TranscriptionJobStatus),
    FailureReason: S.optional(S.String),
    OutputLocationType: S.optional(OutputLocationType),
    ContentRedaction: S.optional(ContentRedaction),
    ModelSettings: S.optional(ModelSettings),
    IdentifyLanguage: S.optional(S.Boolean),
    IdentifyMultipleLanguages: S.optional(S.Boolean),
    IdentifiedLanguageScore: S.optional(S.Number),
    LanguageCodes: S.optional(LanguageCodeList),
    ToxicityDetection: S.optional(ToxicityDetection),
})).annotate({
    identifier: "TranscriptionJobSummary",
});
export const TranscriptionJobSummaries = /*@__PURE__*/ /*#__PURE__*/ S.Array(TranscriptionJobSummary);
export const ListTranscriptionJobsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Status: S.optional(TranscriptionJobStatus),
    NextToken: S.optional(S.String),
    TranscriptionJobSummaries: S.optional(TranscriptionJobSummaries),
})).annotate({
    identifier: "ListTranscriptionJobsResponse",
});
export const ListVocabulariesRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NextToken: S.optional(S.String).pipe(T.HttpQuery("NextToken")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("MaxResults")),
    StateEquals: S.optional(VocabularyState).pipe(T.HttpQuery("StateEquals")),
    NameContains: S.optional(S.String).pipe(T.HttpQuery("NameContains")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/vocabularies" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListVocabulariesRequest",
});
export const ListVocabulariesResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Status: S.optional(VocabularyState),
    NextToken: S.optional(S.String),
    Vocabularies: S.optional(Vocabularies),
})).annotate({
    identifier: "ListVocabulariesResponse",
});
export const ListVocabularyFiltersRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NextToken: S.optional(S.String).pipe(T.HttpQuery("NextToken")),
    MaxResults: S.optional(S.Number).pipe(T.HttpQuery("MaxResults")),
    NameContains: S.optional(S.String).pipe(T.HttpQuery("NameContains")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/vocabularyFilters" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListVocabularyFiltersRequest",
});
export const VocabularyFilterInfo = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyFilterName: S.optional(S.String),
    LanguageCode: S.optional(LanguageCode),
    LastModifiedTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
})).annotate({
    identifier: "VocabularyFilterInfo",
});
export const VocabularyFilters = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(VocabularyFilterInfo);
export const ListVocabularyFiltersResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    NextToken: S.optional(S.String),
    VocabularyFilters: S.optional(VocabularyFilters),
})).annotate({
    identifier: "ListVocabularyFiltersResponse",
});
export const StartCallAnalyticsJobRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    CallAnalyticsJobName: S.String.pipe(T.HttpLabel("CallAnalyticsJobName")),
    Media: Media,
    OutputLocation: S.optional(S.String),
    OutputEncryptionKMSKeyId: S.optional(S.String),
    DataAccessRoleArn: S.optional(S.String),
    Settings: S.optional(CallAnalyticsJobSettings),
    Tags: S.optional(TagList),
    ChannelDefinitions: S.optional(ChannelDefinitions),
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/callanalyticsjobs/{CallAnalyticsJobName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "StartCallAnalyticsJobRequest",
});
export const StartCallAnalyticsJobResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ CallAnalyticsJob: S.optional(CallAnalyticsJob) })).annotate({
    identifier: "StartCallAnalyticsJobResponse",
});
export const KMSEncryptionContextMap = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const Pronouns = /*@__PURE__*/ /*#__PURE__*/ S.String;
export const MedicalScribePatientContext = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ Pronouns: S.optional(Pronouns) })).annotate({
    identifier: "MedicalScribePatientContext",
});
export const MedicalScribeContext = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ PatientContext: S.optional(MedicalScribePatientContext) })).annotate({
    identifier: "MedicalScribeContext",
});
export const StartMedicalScribeJobRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MedicalScribeJobName: S.String.pipe(T.HttpLabel("MedicalScribeJobName")),
    Media: Media,
    OutputBucketName: S.String,
    OutputEncryptionKMSKeyId: S.optional(S.String),
    KMSEncryptionContext: S.optional(KMSEncryptionContextMap),
    DataAccessRoleArn: S.String,
    Settings: MedicalScribeSettings,
    ChannelDefinitions: S.optional(MedicalScribeChannelDefinitions),
    Tags: S.optional(TagList),
    MedicalScribeContext: S.optional(MedicalScribeContext),
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/medicalscribejobs/{MedicalScribeJobName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "StartMedicalScribeJobRequest",
});
export const StartMedicalScribeJobResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ MedicalScribeJob: S.optional(MedicalScribeJob) })).annotate({
    identifier: "StartMedicalScribeJobResponse",
});
export const StartMedicalTranscriptionJobRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    MedicalTranscriptionJobName: S.String.pipe(T.HttpLabel("MedicalTranscriptionJobName")),
    LanguageCode: LanguageCode,
    MediaSampleRateHertz: S.optional(S.Number),
    MediaFormat: S.optional(MediaFormat),
    Media: Media,
    OutputBucketName: S.String,
    OutputKey: S.optional(S.String),
    OutputEncryptionKMSKeyId: S.optional(S.String),
    KMSEncryptionContext: S.optional(KMSEncryptionContextMap),
    Settings: S.optional(MedicalTranscriptionSetting),
    ContentIdentificationType: S.optional(MedicalContentIdentificationType),
    Specialty: Specialty,
    Type: Type,
    Tags: S.optional(TagList),
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/medicaltranscriptionjobs/{MedicalTranscriptionJobName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "StartMedicalTranscriptionJobRequest",
});
export const StartMedicalTranscriptionJobResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ MedicalTranscriptionJob: S.optional(MedicalTranscriptionJob) })).annotate({
    identifier: "StartMedicalTranscriptionJobResponse",
});
export const Subtitles = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    Formats: S.optional(SubtitleFormats),
    OutputStartIndex: S.optional(S.Number),
})).annotate({ identifier: "Subtitles" });
export const StartTranscriptionJobRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    TranscriptionJobName: S.String.pipe(T.HttpLabel("TranscriptionJobName")),
    LanguageCode: S.optional(LanguageCode),
    MediaSampleRateHertz: S.optional(S.Number),
    MediaFormat: S.optional(MediaFormat),
    Media: Media,
    OutputBucketName: S.optional(S.String),
    OutputKey: S.optional(S.String),
    OutputEncryptionKMSKeyId: S.optional(S.String),
    KMSEncryptionContext: S.optional(KMSEncryptionContextMap),
    Settings: S.optional(Settings),
    ModelSettings: S.optional(ModelSettings),
    JobExecutionSettings: S.optional(JobExecutionSettings),
    ContentRedaction: S.optional(ContentRedaction),
    IdentifyLanguage: S.optional(S.Boolean),
    IdentifyMultipleLanguages: S.optional(S.Boolean),
    LanguageOptions: S.optional(LanguageOptions),
    Subtitles: S.optional(Subtitles),
    Tags: S.optional(TagList),
    LanguageIdSettings: S.optional(LanguageIdSettingsMap),
    ToxicityDetection: S.optional(ToxicityDetection),
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/transcriptionjobs/{TranscriptionJobName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "StartTranscriptionJobRequest",
});
export const StartTranscriptionJobResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ TranscriptionJob: S.optional(TranscriptionJob) })).annotate({
    identifier: "StartTranscriptionJobResponse",
});
export const TagResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ResourceArn: S.String.pipe(T.HttpLabel("ResourceArn")),
    Tags: TagList,
}).pipe(T.all(T.Http({ method: "PUT", uri: "/tags/{ResourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "TagResourceRequest",
});
export const TagResourceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "TagResourceResponse",
});
export const TagKeyList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const UntagResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    ResourceArn: S.String.pipe(T.HttpLabel("ResourceArn")),
    TagKeys: TagKeyList.pipe(T.HttpQuery("tagKeys")),
}).pipe(T.all(T.Http({ method: "DELETE", uri: "/tags/{ResourceArn}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UntagResourceRequest",
});
export const UntagResourceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "UntagResourceResponse",
});
export const UpdateCallAnalyticsCategoryRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    CategoryName: S.String.pipe(T.HttpLabel("CategoryName")),
    Rules: RuleList,
    InputType: S.optional(InputType),
}).pipe(T.all(T.Http({
    method: "PATCH",
    uri: "/callanalyticscategories/{CategoryName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateCallAnalyticsCategoryRequest",
});
export const UpdateCallAnalyticsCategoryResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ CategoryProperties: S.optional(CategoryProperties) })).annotate({
    identifier: "UpdateCallAnalyticsCategoryResponse",
});
export const UpdateMedicalVocabularyRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.String.pipe(T.HttpLabel("VocabularyName")),
    LanguageCode: LanguageCode,
    VocabularyFileUri: S.String,
}).pipe(T.all(T.Http({
    method: "PATCH",
    uri: "/medicalvocabularies/{VocabularyName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateMedicalVocabularyRequest",
});
export const UpdateMedicalVocabularyResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.optional(S.String),
    LanguageCode: S.optional(LanguageCode),
    LastModifiedTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    VocabularyState: S.optional(VocabularyState),
})).annotate({
    identifier: "UpdateMedicalVocabularyResponse",
});
export const UpdateVocabularyRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.String.pipe(T.HttpLabel("VocabularyName")),
    LanguageCode: LanguageCode,
    Phrases: S.optional(Phrases),
    VocabularyFileUri: S.optional(S.String),
    DataAccessRoleArn: S.optional(S.String),
}).pipe(T.all(T.Http({ method: "PATCH", uri: "/vocabularies/{VocabularyName}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateVocabularyRequest",
});
export const UpdateVocabularyResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyName: S.optional(S.String),
    LanguageCode: S.optional(LanguageCode),
    LastModifiedTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    VocabularyState: S.optional(VocabularyState),
})).annotate({
    identifier: "UpdateVocabularyResponse",
});
export const UpdateVocabularyFilterRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyFilterName: S.String.pipe(T.HttpLabel("VocabularyFilterName")),
    Words: S.optional(Words),
    VocabularyFilterFileUri: S.optional(S.String),
    DataAccessRoleArn: S.optional(S.String),
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/vocabularyFilters/{VocabularyFilterName}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateVocabularyFilterRequest",
});
export const UpdateVocabularyFilterResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    VocabularyFilterName: S.optional(S.String),
    LanguageCode: S.optional(LanguageCode),
    LastModifiedTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
})).annotate({
    identifier: "UpdateVocabularyFilterResponse",
});
//# Errors
export class BadRequestException extends S.TaggedErrorClass()("BadRequestException", { Message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
export class ConflictException extends S.TaggedErrorClass()("ConflictException", { Message: S.optional(S.String) }).pipe(C.withConflictError) {
}
export class InternalFailureException extends S.TaggedErrorClass()("InternalFailureException", { Message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class LimitExceededException extends S.TaggedErrorClass()("LimitExceededException", { Message: S.optional(S.String) }).pipe(C.withThrottlingError) {
}
export class NotFoundException extends S.TaggedErrorClass()("NotFoundException", { Message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
/**
 * Creates a new Call Analytics category.
 *
 * All categories are automatically applied to your Call Analytics transcriptions. Note that in
 * order to apply categories to your transcriptions, you must create them before submitting your
 * transcription request, as categories cannot be applied retroactively.
 *
 * When creating a new category, you can use the `InputType` parameter to
 * label the category as a `POST_CALL` or a `REAL_TIME` category.
 * `POST_CALL` categories can only be applied to post-call transcriptions and
 * `REAL_TIME` categories can only be applied to real-time transcriptions. If you
 * do not include `InputType`, your category is created as a
 * `POST_CALL` category by default.
 *
 * Call Analytics categories are composed of rules. For each category, you must create
 * between 1 and 20 rules. Rules can include these parameters: , , , and .
 *
 * To update an existing category, see .
 *
 * To learn more about Call Analytics categories, see Creating categories for post-call
 * transcriptions and Creating categories for
 * real-time transcriptions.
 */
export const createCallAnalyticsCategory = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateCallAnalyticsCategoryRequest,
    output: CreateCallAnalyticsCategoryResponse,
    errors: [
        BadRequestException,
        ConflictException,
        InternalFailureException,
        LimitExceededException,
    ],
}));
/**
 * Creates a new custom language model.
 *
 * When creating a new custom language model, you must specify:
 *
 * - If you want a Wideband (audio sample rates over 16,000 Hz) or Narrowband
 * (audio sample rates under 16,000 Hz) base model
 *
 * - The location of your training and tuning files (this must be an Amazon S3 URI)
 *
 * - The language of your model
 *
 * - A unique name for your model
 */
export const createLanguageModel = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateLanguageModelRequest,
    output: CreateLanguageModelResponse,
    errors: [
        BadRequestException,
        ConflictException,
        InternalFailureException,
        LimitExceededException,
    ],
}));
/**
 * Creates a new custom medical vocabulary.
 *
 * Before creating a new custom medical vocabulary, you must first upload a text file
 * that contains your vocabulary table into an Amazon S3 bucket.
 * Note that this differs from , where you can
 * include a list of terms within your request using the `Phrases` flag;
 * `CreateMedicalVocabulary` does not support the `Phrases`
 * flag and only accepts vocabularies in table format.
 *
 * Each language has a character set that contains all allowed characters for that
 * specific language. If you use unsupported characters, your custom vocabulary request
 * fails. Refer to Character Sets for Custom Vocabularies to get the character set for your
 * language.
 *
 * For more information, see Custom
 * vocabularies.
 */
export const createMedicalVocabulary = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateMedicalVocabularyRequest,
    output: CreateMedicalVocabularyResponse,
    errors: [
        BadRequestException,
        ConflictException,
        InternalFailureException,
        LimitExceededException,
    ],
}));
/**
 * Creates a new custom vocabulary.
 *
 * When creating a new custom vocabulary, you can either upload a text file that contains
 * your new entries, phrases, and terms into an Amazon S3 bucket and include the
 * URI in your request. Or you can include a list of terms directly in your request using
 * the `Phrases` flag.
 *
 * Each language has a character set that contains all allowed characters for that
 * specific language. If you use unsupported characters, your custom vocabulary request
 * fails. Refer to Character Sets for Custom Vocabularies to get the character set for your
 * language.
 *
 * For more information, see Custom
 * vocabularies.
 */
export const createVocabulary = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateVocabularyRequest,
    output: CreateVocabularyResponse,
    errors: [
        BadRequestException,
        ConflictException,
        InternalFailureException,
        LimitExceededException,
    ],
}));
/**
 * Creates a new custom vocabulary filter.
 *
 * You can use custom vocabulary filters to mask, delete, or flag specific words from
 * your transcript. Custom vocabulary filters are commonly used to mask profanity in
 * transcripts.
 *
 * Each language has a character set that contains all allowed characters for that
 * specific language. If you use unsupported characters, your custom vocabulary filter
 * request fails. Refer to Character Sets for Custom
 * Vocabularies to get the character set for your language.
 *
 * For more information, see Vocabulary
 * filtering.
 */
export const createVocabularyFilter = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateVocabularyFilterRequest,
    output: CreateVocabularyFilterResponse,
    errors: [
        BadRequestException,
        ConflictException,
        InternalFailureException,
        LimitExceededException,
    ],
}));
/**
 * Deletes a Call Analytics category. To use this operation, specify the name of the
 * category you want to delete using `CategoryName`. Category names are case
 * sensitive.
 */
export const deleteCallAnalyticsCategory = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteCallAnalyticsCategoryRequest,
    output: DeleteCallAnalyticsCategoryResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Deletes a Call Analytics job. To use this operation, specify the name of the job you
 * want to delete using `CallAnalyticsJobName`. Job names are case
 * sensitive.
 */
export const deleteCallAnalyticsJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteCallAnalyticsJobRequest,
    output: DeleteCallAnalyticsJobResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
    ],
}));
/**
 * Deletes a custom language model. To use this operation, specify the name of the
 * language model you want to delete using `ModelName`. custom language model
 * names are case sensitive.
 */
export const deleteLanguageModel = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteLanguageModelRequest,
    output: DeleteLanguageModelResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
    ],
}));
/**
 * Deletes a Medical Scribe job. To use this operation, specify the name of the
 * job you want to delete using `MedicalScribeJobName`. Job names are
 * case sensitive.
 */
export const deleteMedicalScribeJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteMedicalScribeJobRequest,
    output: DeleteMedicalScribeJobResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
    ],
}));
/**
 * Deletes a medical transcription job. To use this operation, specify the name of the
 * job you want to delete using `MedicalTranscriptionJobName`. Job names are
 * case sensitive.
 */
export const deleteMedicalTranscriptionJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteMedicalTranscriptionJobRequest,
    output: DeleteMedicalTranscriptionJobResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
    ],
}));
/**
 * Deletes a custom medical vocabulary. To use this operation, specify the name of the
 * custom vocabulary you want to delete using `VocabularyName`. Custom
 * vocabulary names are case sensitive.
 */
export const deleteMedicalVocabulary = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteMedicalVocabularyRequest,
    output: DeleteMedicalVocabularyResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Deletes a transcription job. To use this operation, specify the name of the job you
 * want to delete using `TranscriptionJobName`. Job names are case
 * sensitive.
 */
export const deleteTranscriptionJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteTranscriptionJobRequest,
    output: DeleteTranscriptionJobResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
    ],
}));
/**
 * Deletes a custom vocabulary. To use this operation, specify the name of the custom
 * vocabulary you want to delete using `VocabularyName`. Custom vocabulary names
 * are case sensitive.
 */
export const deleteVocabulary = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteVocabularyRequest,
    output: DeleteVocabularyResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Deletes a custom vocabulary filter. To use this operation, specify the name of the
 * custom vocabulary filter you want to delete using `VocabularyFilterName`.
 * Custom vocabulary filter names are case sensitive.
 */
export const deleteVocabularyFilter = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteVocabularyFilterRequest,
    output: DeleteVocabularyFilterResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Provides information about the specified custom language model.
 *
 * This operation also shows if the base language model that you used to create your
 * custom language model has been updated. If Amazon Transcribe has updated the base
 * model, you can create a new custom language model using the updated base model.
 *
 * If you tried to create a new custom language model and the request wasn't successful,
 * you can use `DescribeLanguageModel` to help identify the reason for this
 * failure.
 */
export const describeLanguageModel = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DescribeLanguageModelRequest,
    output: DescribeLanguageModelResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Provides information about the specified Call Analytics category.
 *
 * To get a list of your Call Analytics categories, use the operation.
 */
export const getCallAnalyticsCategory = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetCallAnalyticsCategoryRequest,
    output: GetCallAnalyticsCategoryResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Provides information about the specified Call Analytics job.
 *
 * To view the job's status, refer to `CallAnalyticsJobStatus`. If the status
 * is `COMPLETED`, the job is finished. You can find your completed transcript
 * at the URI specified in `TranscriptFileUri`. If the status is
 * `FAILED`, `FailureReason` provides details on why your
 * transcription job failed.
 *
 * If you enabled personally identifiable information (PII) redaction, the redacted
 * transcript appears at the location specified in
 * `RedactedTranscriptFileUri`.
 *
 * If you chose to redact the audio in your media file, you can find your redacted media
 * file at the location specified in `RedactedMediaFileUri`.
 *
 * To get a list of your Call Analytics jobs, use the operation.
 */
export const getCallAnalyticsJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetCallAnalyticsJobRequest,
    output: GetCallAnalyticsJobResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Provides information about the specified Medical Scribe job.
 *
 * To view the status of the specified medical transcription job, check the
 * `MedicalScribeJobStatus` field. If the status is `COMPLETED`,
 * the job is finished. You can find the results at the location specified in
 * `MedicalScribeOutput`.
 * If the status is `FAILED`, `FailureReason` provides details on why your Medical Scribe job
 * failed.
 *
 * To get a list of your Medical Scribe jobs, use the operation.
 */
export const getMedicalScribeJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetMedicalScribeJobRequest,
    output: GetMedicalScribeJobResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Provides information about the specified medical transcription job.
 *
 * To view the status of the specified medical transcription job, check the
 * `TranscriptionJobStatus` field. If the status is `COMPLETED`,
 * the job is finished. You can find the results at the location specified in
 * `TranscriptFileUri`. If the status is `FAILED`,
 * `FailureReason` provides details on why your transcription job
 * failed.
 *
 * To get a list of your medical transcription jobs, use the operation.
 */
export const getMedicalTranscriptionJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetMedicalTranscriptionJobRequest,
    output: GetMedicalTranscriptionJobResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Provides information about the specified custom medical vocabulary.
 *
 * To view the status of the specified custom medical vocabulary, check the
 * `VocabularyState` field. If the status is `READY`, your custom
 * vocabulary is available to use. If the status is `FAILED`,
 * `FailureReason` provides details on why your vocabulary failed.
 *
 * To get a list of your custom medical vocabularies, use the operation.
 */
export const getMedicalVocabulary = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetMedicalVocabularyRequest,
    output: GetMedicalVocabularyResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Provides information about the specified transcription job.
 *
 * To view the status of the specified transcription job, check the
 * `TranscriptionJobStatus` field. If the status is `COMPLETED`,
 * the job is finished. You can find the results at the location specified in
 * `TranscriptFileUri`. If the status is `FAILED`,
 * `FailureReason` provides details on why your transcription job
 * failed.
 *
 * If you enabled content redaction, the redacted transcript can be found at the location
 * specified in `RedactedTranscriptFileUri`.
 *
 * To get a list of your transcription jobs, use the operation.
 */
export const getTranscriptionJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetTranscriptionJobRequest,
    output: GetTranscriptionJobResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Provides information about the specified custom vocabulary.
 *
 * To view the status of the specified custom vocabulary, check the
 * `VocabularyState` field. If the status is `READY`, your custom
 * vocabulary is available to use. If the status is `FAILED`,
 * `FailureReason` provides details on why your custom vocabulary
 * failed.
 *
 * To get a list of your custom vocabularies, use the operation.
 */
export const getVocabulary = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetVocabularyRequest,
    output: GetVocabularyResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Provides information about the specified custom vocabulary filter.
 *
 * To get a list of your custom vocabulary filters, use the operation.
 */
export const getVocabularyFilter = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetVocabularyFilterRequest,
    output: GetVocabularyFilterResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Provides a list of Call Analytics categories, including all rules that make up each
 * category.
 *
 * To get detailed information about a specific Call Analytics category, use the operation.
 */
export const listCallAnalyticsCategories = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListCallAnalyticsCategoriesRequest,
    output: ListCallAnalyticsCategoriesResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Provides a list of Call Analytics jobs that match the specified criteria. If no
 * criteria are specified, all Call Analytics jobs are returned.
 *
 * To get detailed information about a specific Call Analytics job, use the operation.
 */
export const listCallAnalyticsJobs = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListCallAnalyticsJobsRequest,
    output: ListCallAnalyticsJobsResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Provides a list of custom language models that match the specified criteria. If no
 * criteria are specified, all custom language models are returned.
 *
 * To get detailed information about a specific custom language model, use the operation.
 */
export const listLanguageModels = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListLanguageModelsRequest,
    output: ListLanguageModelsResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Provides a list of Medical Scribe jobs that match the specified criteria. If no
 * criteria are specified, all Medical Scribe jobs are returned.
 *
 * To get detailed information about a specific Medical Scribe job, use the operation.
 */
export const listMedicalScribeJobs = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListMedicalScribeJobsRequest,
    output: ListMedicalScribeJobsResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Provides a list of medical transcription jobs that match the specified criteria. If no
 * criteria are specified, all medical transcription jobs are returned.
 *
 * To get detailed information about a specific medical transcription job, use the operation.
 */
export const listMedicalTranscriptionJobs = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListMedicalTranscriptionJobsRequest,
    output: ListMedicalTranscriptionJobsResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Provides a list of custom medical vocabularies that match the specified criteria. If
 * no criteria are specified, all custom medical vocabularies are returned.
 *
 * To get detailed information about a specific custom medical vocabulary, use the operation.
 */
export const listMedicalVocabularies = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListMedicalVocabulariesRequest,
    output: ListMedicalVocabulariesResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Lists all tags associated with the specified transcription job, vocabulary, model, or
 * resource.
 *
 * To learn more about using tags with Amazon Transcribe, refer to Tagging
 * resources.
 */
export const listTagsForResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: ListTagsForResourceRequest,
    output: ListTagsForResourceResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Provides a list of transcription jobs that match the specified criteria. If no
 * criteria are specified, all transcription jobs are returned.
 *
 * To get detailed information about a specific transcription job, use the operation.
 */
export const listTranscriptionJobs = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListTranscriptionJobsRequest,
    output: ListTranscriptionJobsResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Provides a list of custom vocabularies that match the specified criteria. If no
 * criteria are specified, all custom vocabularies are returned.
 *
 * To get detailed information about a specific custom vocabulary, use the operation.
 */
export const listVocabularies = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListVocabulariesRequest,
    output: ListVocabulariesResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Provides a list of custom vocabulary filters that match the specified criteria. If no
 * criteria are specified, all custom vocabularies are returned.
 *
 * To get detailed information about a specific custom vocabulary filter, use the operation.
 */
export const listVocabularyFilters = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListVocabularyFiltersRequest,
    output: ListVocabularyFiltersResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
    ],
    pagination: {
        inputToken: "NextToken",
        outputToken: "NextToken",
        pageSize: "MaxResults",
    },
}));
/**
 * Transcribes the audio from a customer service call and applies any additional Request
 * Parameters you choose to include in your request.
 *
 * In addition to many standard transcription features, Call Analytics provides you with
 * call characteristics, call summarization, speaker sentiment, and optional redaction of
 * your text transcript and your audio file. You can also apply custom categories to flag
 * specified conditions. To learn more about these features and insights, refer to Analyzing call
 * center audio with Call Analytics.
 *
 * If you want to apply categories to your Call Analytics job, you must create them
 * before submitting your job request. Categories cannot be retroactively applied to a job.
 * To create a new category, use the
 * operation. To learn more about Call Analytics categories, see Creating categories for post-call
 * transcriptions and Creating categories for
 * real-time transcriptions.
 *
 * To make a `StartCallAnalyticsJob` request, you must first upload your media
 * file into an Amazon S3 bucket; you can then specify the Amazon S3
 * location of the file using the `Media` parameter.
 *
 * Job queuing is available for Call Analytics jobs. If you pass a `DataAccessRoleArn`
 * in your request and you exceed your Concurrent Job Limit, your job will automatically be
 * added to a queue to be processed once your concurrent job count is below the limit.
 *
 * You must include the following parameters in your `StartCallAnalyticsJob`
 * request:
 *
 * - `region`: The Amazon Web Services Region where you are making your
 * request. For a list of Amazon Web Services Regions supported with Amazon Transcribe, refer to Amazon Transcribe endpoints and
 * quotas.
 *
 * - `CallAnalyticsJobName`: A custom name that you create for your
 * transcription job that's unique within your Amazon Web Services account.
 *
 * - `Media` (`MediaFileUri` or
 * `RedactedMediaFileUri`): The Amazon S3 location of your
 * media file.
 *
 * With Call Analytics, you can redact the audio contained in your media file by
 * including `RedactedMediaFileUri`, instead of `MediaFileUri`,
 * to specify the location of your input audio. If you choose to redact your audio, you
 * can find your redacted media at the location specified in the
 * `RedactedMediaFileUri` field of your response.
 */
export const startCallAnalyticsJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: StartCallAnalyticsJobRequest,
    output: StartCallAnalyticsJobResponse,
    errors: [
        BadRequestException,
        ConflictException,
        InternalFailureException,
        LimitExceededException,
    ],
}));
/**
 * Transcribes patient-clinician conversations and generates clinical notes.
 *
 * Amazon Web Services HealthScribe automatically provides rich conversation transcripts, identifies speaker roles,
 * classifies dialogues, extracts medical terms, and generates preliminary clinical notes.
 * To learn more about these features, refer to Amazon Web Services HealthScribe.
 *
 * To make a `StartMedicalScribeJob` request, you must first upload
 * your media file into an Amazon S3 bucket; you can then specify the Amazon S3 location
 * of the file using the `Media` parameter.
 *
 * You must include the following parameters in your
 * `StartMedicalTranscriptionJob` request:
 *
 * - `DataAccessRoleArn`: The ARN of an IAM role with the these minimum permissions: read permission on input file Amazon S3 bucket specified in `Media`,
 * write permission on the Amazon S3 bucket specified in `OutputBucketName`, and full permissions on the KMS key specified in `OutputEncryptionKMSKeyId` (if set).
 * The role should also allow `transcribe.amazonaws.com` to assume it.
 *
 * - `Media` (`MediaFileUri`): The Amazon S3 location
 * of your media file.
 *
 * - `MedicalScribeJobName`: A custom name you create for your
 * MedicalScribe job that is unique within your Amazon Web Services account.
 *
 * - `OutputBucketName`: The Amazon S3 bucket where you want
 * your output files stored.
 *
 * - `Settings`: A `MedicalScribeSettings` object
 * that must set exactly one of `ShowSpeakerLabels` or `ChannelIdentification` to true.
 * If `ShowSpeakerLabels` is true, `MaxSpeakerLabels` must also be set.
 *
 * - `ChannelDefinitions`: A `MedicalScribeChannelDefinitions` array should be set if and only if the `ChannelIdentification`
 * value of `Settings` is set to true.
 */
export const startMedicalScribeJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: StartMedicalScribeJobRequest,
    output: StartMedicalScribeJobResponse,
    errors: [
        BadRequestException,
        ConflictException,
        InternalFailureException,
        LimitExceededException,
    ],
}));
/**
 * Transcribes the audio from a medical dictation or conversation and applies any
 * additional Request Parameters you choose to include in your request.
 *
 * In addition to many standard transcription features, Amazon Transcribe Medical
 * provides you with a robust medical vocabulary and, optionally, content identification,
 * which adds flags to personal health information (PHI). To learn more about these
 * features, refer to How Amazon Transcribe Medical
 * works.
 *
 * To make a `StartMedicalTranscriptionJob` request, you must first upload
 * your media file into an Amazon S3 bucket; you can then specify the Amazon S3 location
 * of the file using the `Media` parameter.
 *
 * You must include the following parameters in your
 * `StartMedicalTranscriptionJob` request:
 *
 * - `region`: The Amazon Web Services Region where you are making your
 * request. For a list of Amazon Web Services Regions supported with Amazon Transcribe, refer to Amazon Transcribe endpoints and
 * quotas.
 *
 * - `MedicalTranscriptionJobName`: A custom name you create for your
 * transcription job that is unique within your Amazon Web Services account.
 *
 * - `Media` (`MediaFileUri`): The Amazon S3 location
 * of your media file.
 *
 * - `LanguageCode`: This must be `en-US`.
 *
 * - `OutputBucketName`: The Amazon S3 bucket where you want
 * your transcript stored. If you want your output stored in a sub-folder of this
 * bucket, you must also include `OutputKey`.
 *
 * - `Specialty`: This must be `PRIMARYCARE`.
 *
 * - `Type`: Choose whether your audio is a conversation or a
 * dictation.
 */
export const startMedicalTranscriptionJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: StartMedicalTranscriptionJobRequest,
    output: StartMedicalTranscriptionJobResponse,
    errors: [
        BadRequestException,
        ConflictException,
        InternalFailureException,
        LimitExceededException,
    ],
}));
/**
 * Transcribes the audio from a media file and applies any additional Request Parameters
 * you choose to include in your request.
 *
 * To make a `StartTranscriptionJob` request, you must first upload your media
 * file into an Amazon S3 bucket; you can then specify the Amazon S3
 * location of the file using the `Media` parameter.
 *
 * You must include the following parameters in your `StartTranscriptionJob`
 * request:
 *
 * - `region`: The Amazon Web Services Region where you are making your
 * request. For a list of Amazon Web Services Regions supported with Amazon Transcribe, refer to Amazon Transcribe endpoints and
 * quotas.
 *
 * - `TranscriptionJobName`: A custom name you create for your
 * transcription job that is unique within your Amazon Web Services account.
 *
 * - `Media` (`MediaFileUri`): The Amazon S3 location
 * of your media file.
 *
 * - One of `LanguageCode`, `IdentifyLanguage`, or
 * `IdentifyMultipleLanguages`: If you know the language of your
 * media file, specify it using the `LanguageCode` parameter; you can
 * find all valid language codes in the Supported
 * languages table. If you do not know the languages spoken in your
 * media, use either `IdentifyLanguage` or
 * `IdentifyMultipleLanguages` and let Amazon Transcribe identify
 * the languages for you.
 */
export const startTranscriptionJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: StartTranscriptionJobRequest,
    output: StartTranscriptionJobResponse,
    errors: [
        BadRequestException,
        ConflictException,
        InternalFailureException,
        LimitExceededException,
    ],
}));
/**
 * Adds one or more custom tags, each in the form of a key:value pair, to the specified
 * resource.
 *
 * To learn more about using tags with Amazon Transcribe, refer to Tagging
 * resources.
 */
export const tagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: TagResourceRequest,
    output: TagResourceResponse,
    errors: [
        BadRequestException,
        ConflictException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Removes the specified tags from the specified Amazon Transcribe resource.
 *
 * If you include `UntagResource` in your request, you must also include
 * `ResourceArn` and `TagKeys`.
 */
export const untagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UntagResourceRequest,
    output: UntagResourceResponse,
    errors: [
        BadRequestException,
        ConflictException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Updates the specified Call Analytics category with new rules. Note that the
 * `UpdateCallAnalyticsCategory` operation overwrites all existing rules
 * contained in the specified category. You cannot append additional rules onto an existing
 * category.
 *
 * To create a new category, see .
 */
export const updateCallAnalyticsCategory = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateCallAnalyticsCategoryRequest,
    output: UpdateCallAnalyticsCategoryResponse,
    errors: [
        BadRequestException,
        ConflictException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Updates an existing custom medical vocabulary with new values. This operation
 * overwrites all existing information with your new values; you cannot append new terms
 * onto an existing custom vocabulary.
 */
export const updateMedicalVocabulary = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateMedicalVocabularyRequest,
    output: UpdateMedicalVocabularyResponse,
    errors: [
        BadRequestException,
        ConflictException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Updates an existing custom vocabulary with new values. This operation overwrites all
 * existing information with your new values; you cannot append new terms onto an existing
 * custom vocabulary.
 */
export const updateVocabulary = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateVocabularyRequest,
    output: UpdateVocabularyResponse,
    errors: [
        BadRequestException,
        ConflictException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
/**
 * Updates an existing custom vocabulary filter with a new list of words. The new list
 * you provide overwrites all previous entries; you cannot append new terms onto an
 * existing custom vocabulary filter.
 */
export const updateVocabularyFilter = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateVocabularyFilterRequest,
    output: UpdateVocabularyFilterResponse,
    errors: [
        BadRequestException,
        InternalFailureException,
        LimitExceededException,
        NotFoundException,
    ],
}));
//# sourceMappingURL=transcribe.js.map