{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}
{-# OPTIONS_GHC -fno-warn-unused-matches #-}

-- Derived from AWS service descriptions, licensed under Apache 2.0.

-- |
-- Module      : Amazonka.ChimeSdkMeetings.Types.EngineTranscribeSettings
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.ChimeSdkMeetings.Types.EngineTranscribeSettings where

import Amazonka.ChimeSdkMeetings.Types.TranscribeContentIdentificationType
import Amazonka.ChimeSdkMeetings.Types.TranscribeContentRedactionType
import Amazonka.ChimeSdkMeetings.Types.TranscribeLanguageCode
import Amazonka.ChimeSdkMeetings.Types.TranscribePartialResultsStability
import Amazonka.ChimeSdkMeetings.Types.TranscribeRegion
import Amazonka.ChimeSdkMeetings.Types.TranscribeVocabularyFilterMethod
import qualified Amazonka.Core as Core
import qualified Amazonka.Core.Lens.Internal as Lens
import qualified Amazonka.Data as Data
import qualified Amazonka.Prelude as Prelude

-- | Settings specific to the Amazon Transcribe engine.
--
-- /See:/ 'newEngineTranscribeSettings' smart constructor.
data EngineTranscribeSettings = EngineTranscribeSettings'
  { -- | Set this field to @PII@ to identify personally identifiable information
    -- in the transcription output.
    EngineTranscribeSettings
-> Maybe TranscribeContentIdentificationType
contentIdentificationType :: Prelude.Maybe TranscribeContentIdentificationType,
    -- | Set this field to @PII@ to redact personally identifiable information in
    -- the transcription output. Content redaction is performed only upon
    -- complete transcription of the audio segments.
    --
    -- You can’t set @ContentRedactionType@ and @ContentIdentificationType@ in
    -- the same request. If you set both, your request returns a
    -- @BadRequestException@.
    EngineTranscribeSettings -> Maybe TranscribeContentRedactionType
contentRedactionType :: Prelude.Maybe TranscribeContentRedactionType,
    -- | Generates partial transcription results that are less likely to change
    -- as meeting attendees speak. It does so by only allowing the last few
    -- words from the partial results to change.
    EngineTranscribeSettings -> Maybe Bool
enablePartialResultsStabilization :: Prelude.Maybe Prelude.Bool,
    -- | Automatically identifies the language spoken in media files.
    EngineTranscribeSettings -> Maybe Bool
identifyLanguage :: Prelude.Maybe Prelude.Bool,
    -- | The language code specified for the Amazon Transcribe engine.
    EngineTranscribeSettings -> Maybe TranscribeLanguageCode
languageCode :: Prelude.Maybe TranscribeLanguageCode,
    -- | The name of the language model used during transcription.
    EngineTranscribeSettings -> Maybe Text
languageModelName :: Prelude.Maybe Prelude.Text,
    -- | Language codes for the languages that you want to identify. You must
    -- provide at least 2 codes.
    EngineTranscribeSettings -> Maybe Text
languageOptions :: Prelude.Maybe Prelude.Text,
    -- | The stabity level of a partial results transcription. Determines how
    -- stable you want the transcription results to be. A higher level means
    -- the transcription results are less likely to change.
    EngineTranscribeSettings -> Maybe TranscribePartialResultsStability
partialResultsStability :: Prelude.Maybe TranscribePartialResultsStability,
    -- | Lists the PII entity types you want to identify or redact. To specify
    -- entity types, you must enable @ContentIdentificationType@ or
    -- @ContentRedactionType@.
    --
    -- @PIIEntityTypes@ must be comma-separated. The available values are:
    -- @BANK_ACCOUNT_NUMBER@, @BANK_ROUTING, CREDIT_DEBIT_NUMBER@,
    -- @CREDIT_DEBIT_CVV@, @CREDIT_DEBIT_EXPIRY@, @PIN@, @EMAIL@, @ADDRESS@,
    -- @NAME@, @PHONE@, @SSN@, and @ALL@.
    --
    -- @PiiEntityTypes@ is an optional parameter with a default value of @ALL@.
    EngineTranscribeSettings -> Maybe Text
piiEntityTypes :: Prelude.Maybe Prelude.Text,
    -- | Language code for the preferred language.
    EngineTranscribeSettings -> Maybe TranscribeLanguageCode
preferredLanguage :: Prelude.Maybe TranscribeLanguageCode,
    -- | The AWS Region passed to Amazon Transcribe. If you don\'t specify a
    -- Region, Amazon Chime uses the meeting\'s Region.
    EngineTranscribeSettings -> Maybe TranscribeRegion
region :: Prelude.Maybe TranscribeRegion,
    -- | The filtering method passed to Amazon Transcribe.
    EngineTranscribeSettings -> Maybe TranscribeVocabularyFilterMethod
vocabularyFilterMethod :: Prelude.Maybe TranscribeVocabularyFilterMethod,
    -- | The name of the vocabulary filter passed to Amazon Transcribe.
    EngineTranscribeSettings -> Maybe Text
vocabularyFilterName :: Prelude.Maybe Prelude.Text,
    -- | The name of the vocabulary passed to Amazon Transcribe.
    EngineTranscribeSettings -> Maybe Text
vocabularyName :: Prelude.Maybe Prelude.Text
  }
  deriving (EngineTranscribeSettings -> EngineTranscribeSettings -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: EngineTranscribeSettings -> EngineTranscribeSettings -> Bool
$c/= :: EngineTranscribeSettings -> EngineTranscribeSettings -> Bool
== :: EngineTranscribeSettings -> EngineTranscribeSettings -> Bool
$c== :: EngineTranscribeSettings -> EngineTranscribeSettings -> Bool
Prelude.Eq, ReadPrec [EngineTranscribeSettings]
ReadPrec EngineTranscribeSettings
Int -> ReadS EngineTranscribeSettings
ReadS [EngineTranscribeSettings]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [EngineTranscribeSettings]
$creadListPrec :: ReadPrec [EngineTranscribeSettings]
readPrec :: ReadPrec EngineTranscribeSettings
$creadPrec :: ReadPrec EngineTranscribeSettings
readList :: ReadS [EngineTranscribeSettings]
$creadList :: ReadS [EngineTranscribeSettings]
readsPrec :: Int -> ReadS EngineTranscribeSettings
$creadsPrec :: Int -> ReadS EngineTranscribeSettings
Prelude.Read, Int -> EngineTranscribeSettings -> ShowS
[EngineTranscribeSettings] -> ShowS
EngineTranscribeSettings -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [EngineTranscribeSettings] -> ShowS
$cshowList :: [EngineTranscribeSettings] -> ShowS
show :: EngineTranscribeSettings -> String
$cshow :: EngineTranscribeSettings -> String
showsPrec :: Int -> EngineTranscribeSettings -> ShowS
$cshowsPrec :: Int -> EngineTranscribeSettings -> ShowS
Prelude.Show, forall x.
Rep EngineTranscribeSettings x -> EngineTranscribeSettings
forall x.
EngineTranscribeSettings -> Rep EngineTranscribeSettings x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep EngineTranscribeSettings x -> EngineTranscribeSettings
$cfrom :: forall x.
EngineTranscribeSettings -> Rep EngineTranscribeSettings x
Prelude.Generic)

-- |
-- Create a value of 'EngineTranscribeSettings' with all optional fields omitted.
--
-- Use <https://hackage.haskell.org/package/generic-lens generic-lens> or <https://hackage.haskell.org/package/optics optics> to modify other optional fields.
--
-- The following record fields are available, with the corresponding lenses provided
-- for backwards compatibility:
--
-- 'contentIdentificationType', 'engineTranscribeSettings_contentIdentificationType' - Set this field to @PII@ to identify personally identifiable information
-- in the transcription output.
--
-- 'contentRedactionType', 'engineTranscribeSettings_contentRedactionType' - Set this field to @PII@ to redact personally identifiable information in
-- the transcription output. Content redaction is performed only upon
-- complete transcription of the audio segments.
--
-- You can’t set @ContentRedactionType@ and @ContentIdentificationType@ in
-- the same request. If you set both, your request returns a
-- @BadRequestException@.
--
-- 'enablePartialResultsStabilization', 'engineTranscribeSettings_enablePartialResultsStabilization' - Generates partial transcription results that are less likely to change
-- as meeting attendees speak. It does so by only allowing the last few
-- words from the partial results to change.
--
-- 'identifyLanguage', 'engineTranscribeSettings_identifyLanguage' - Automatically identifies the language spoken in media files.
--
-- 'languageCode', 'engineTranscribeSettings_languageCode' - The language code specified for the Amazon Transcribe engine.
--
-- 'languageModelName', 'engineTranscribeSettings_languageModelName' - The name of the language model used during transcription.
--
-- 'languageOptions', 'engineTranscribeSettings_languageOptions' - Language codes for the languages that you want to identify. You must
-- provide at least 2 codes.
--
-- 'partialResultsStability', 'engineTranscribeSettings_partialResultsStability' - The stabity level of a partial results transcription. Determines how
-- stable you want the transcription results to be. A higher level means
-- the transcription results are less likely to change.
--
-- 'piiEntityTypes', 'engineTranscribeSettings_piiEntityTypes' - Lists the PII entity types you want to identify or redact. To specify
-- entity types, you must enable @ContentIdentificationType@ or
-- @ContentRedactionType@.
--
-- @PIIEntityTypes@ must be comma-separated. The available values are:
-- @BANK_ACCOUNT_NUMBER@, @BANK_ROUTING, CREDIT_DEBIT_NUMBER@,
-- @CREDIT_DEBIT_CVV@, @CREDIT_DEBIT_EXPIRY@, @PIN@, @EMAIL@, @ADDRESS@,
-- @NAME@, @PHONE@, @SSN@, and @ALL@.
--
-- @PiiEntityTypes@ is an optional parameter with a default value of @ALL@.
--
-- 'preferredLanguage', 'engineTranscribeSettings_preferredLanguage' - Language code for the preferred language.
--
-- 'region', 'engineTranscribeSettings_region' - The AWS Region passed to Amazon Transcribe. If you don\'t specify a
-- Region, Amazon Chime uses the meeting\'s Region.
--
-- 'vocabularyFilterMethod', 'engineTranscribeSettings_vocabularyFilterMethod' - The filtering method passed to Amazon Transcribe.
--
-- 'vocabularyFilterName', 'engineTranscribeSettings_vocabularyFilterName' - The name of the vocabulary filter passed to Amazon Transcribe.
--
-- 'vocabularyName', 'engineTranscribeSettings_vocabularyName' - The name of the vocabulary passed to Amazon Transcribe.
newEngineTranscribeSettings ::
  EngineTranscribeSettings
newEngineTranscribeSettings :: EngineTranscribeSettings
newEngineTranscribeSettings =
  EngineTranscribeSettings'
    { $sel:contentIdentificationType:EngineTranscribeSettings' :: Maybe TranscribeContentIdentificationType
contentIdentificationType =
        forall a. Maybe a
Prelude.Nothing,
      $sel:contentRedactionType:EngineTranscribeSettings' :: Maybe TranscribeContentRedactionType
contentRedactionType = forall a. Maybe a
Prelude.Nothing,
      $sel:enablePartialResultsStabilization:EngineTranscribeSettings' :: Maybe Bool
enablePartialResultsStabilization =
        forall a. Maybe a
Prelude.Nothing,
      $sel:identifyLanguage:EngineTranscribeSettings' :: Maybe Bool
identifyLanguage = forall a. Maybe a
Prelude.Nothing,
      $sel:languageCode:EngineTranscribeSettings' :: Maybe TranscribeLanguageCode
languageCode = forall a. Maybe a
Prelude.Nothing,
      $sel:languageModelName:EngineTranscribeSettings' :: Maybe Text
languageModelName = forall a. Maybe a
Prelude.Nothing,
      $sel:languageOptions:EngineTranscribeSettings' :: Maybe Text
languageOptions = forall a. Maybe a
Prelude.Nothing,
      $sel:partialResultsStability:EngineTranscribeSettings' :: Maybe TranscribePartialResultsStability
partialResultsStability = forall a. Maybe a
Prelude.Nothing,
      $sel:piiEntityTypes:EngineTranscribeSettings' :: Maybe Text
piiEntityTypes = forall a. Maybe a
Prelude.Nothing,
      $sel:preferredLanguage:EngineTranscribeSettings' :: Maybe TranscribeLanguageCode
preferredLanguage = forall a. Maybe a
Prelude.Nothing,
      $sel:region:EngineTranscribeSettings' :: Maybe TranscribeRegion
region = forall a. Maybe a
Prelude.Nothing,
      $sel:vocabularyFilterMethod:EngineTranscribeSettings' :: Maybe TranscribeVocabularyFilterMethod
vocabularyFilterMethod = forall a. Maybe a
Prelude.Nothing,
      $sel:vocabularyFilterName:EngineTranscribeSettings' :: Maybe Text
vocabularyFilterName = forall a. Maybe a
Prelude.Nothing,
      $sel:vocabularyName:EngineTranscribeSettings' :: Maybe Text
vocabularyName = forall a. Maybe a
Prelude.Nothing
    }

-- | Set this field to @PII@ to identify personally identifiable information
-- in the transcription output.
engineTranscribeSettings_contentIdentificationType :: Lens.Lens' EngineTranscribeSettings (Prelude.Maybe TranscribeContentIdentificationType)
engineTranscribeSettings_contentIdentificationType :: Lens'
  EngineTranscribeSettings
  (Maybe TranscribeContentIdentificationType)
engineTranscribeSettings_contentIdentificationType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EngineTranscribeSettings' {Maybe TranscribeContentIdentificationType
contentIdentificationType :: Maybe TranscribeContentIdentificationType
$sel:contentIdentificationType:EngineTranscribeSettings' :: EngineTranscribeSettings
-> Maybe TranscribeContentIdentificationType
contentIdentificationType} -> Maybe TranscribeContentIdentificationType
contentIdentificationType) (\s :: EngineTranscribeSettings
s@EngineTranscribeSettings' {} Maybe TranscribeContentIdentificationType
a -> EngineTranscribeSettings
s {$sel:contentIdentificationType:EngineTranscribeSettings' :: Maybe TranscribeContentIdentificationType
contentIdentificationType = Maybe TranscribeContentIdentificationType
a} :: EngineTranscribeSettings)

-- | Set this field to @PII@ to redact personally identifiable information in
-- the transcription output. Content redaction is performed only upon
-- complete transcription of the audio segments.
--
-- You can’t set @ContentRedactionType@ and @ContentIdentificationType@ in
-- the same request. If you set both, your request returns a
-- @BadRequestException@.
engineTranscribeSettings_contentRedactionType :: Lens.Lens' EngineTranscribeSettings (Prelude.Maybe TranscribeContentRedactionType)
engineTranscribeSettings_contentRedactionType :: Lens'
  EngineTranscribeSettings (Maybe TranscribeContentRedactionType)
engineTranscribeSettings_contentRedactionType = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EngineTranscribeSettings' {Maybe TranscribeContentRedactionType
contentRedactionType :: Maybe TranscribeContentRedactionType
$sel:contentRedactionType:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeContentRedactionType
contentRedactionType} -> Maybe TranscribeContentRedactionType
contentRedactionType) (\s :: EngineTranscribeSettings
s@EngineTranscribeSettings' {} Maybe TranscribeContentRedactionType
a -> EngineTranscribeSettings
s {$sel:contentRedactionType:EngineTranscribeSettings' :: Maybe TranscribeContentRedactionType
contentRedactionType = Maybe TranscribeContentRedactionType
a} :: EngineTranscribeSettings)

-- | Generates partial transcription results that are less likely to change
-- as meeting attendees speak. It does so by only allowing the last few
-- words from the partial results to change.
engineTranscribeSettings_enablePartialResultsStabilization :: Lens.Lens' EngineTranscribeSettings (Prelude.Maybe Prelude.Bool)
engineTranscribeSettings_enablePartialResultsStabilization :: Lens' EngineTranscribeSettings (Maybe Bool)
engineTranscribeSettings_enablePartialResultsStabilization = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EngineTranscribeSettings' {Maybe Bool
enablePartialResultsStabilization :: Maybe Bool
$sel:enablePartialResultsStabilization:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Bool
enablePartialResultsStabilization} -> Maybe Bool
enablePartialResultsStabilization) (\s :: EngineTranscribeSettings
s@EngineTranscribeSettings' {} Maybe Bool
a -> EngineTranscribeSettings
s {$sel:enablePartialResultsStabilization:EngineTranscribeSettings' :: Maybe Bool
enablePartialResultsStabilization = Maybe Bool
a} :: EngineTranscribeSettings)

-- | Automatically identifies the language spoken in media files.
engineTranscribeSettings_identifyLanguage :: Lens.Lens' EngineTranscribeSettings (Prelude.Maybe Prelude.Bool)
engineTranscribeSettings_identifyLanguage :: Lens' EngineTranscribeSettings (Maybe Bool)
engineTranscribeSettings_identifyLanguage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EngineTranscribeSettings' {Maybe Bool
identifyLanguage :: Maybe Bool
$sel:identifyLanguage:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Bool
identifyLanguage} -> Maybe Bool
identifyLanguage) (\s :: EngineTranscribeSettings
s@EngineTranscribeSettings' {} Maybe Bool
a -> EngineTranscribeSettings
s {$sel:identifyLanguage:EngineTranscribeSettings' :: Maybe Bool
identifyLanguage = Maybe Bool
a} :: EngineTranscribeSettings)

-- | The language code specified for the Amazon Transcribe engine.
engineTranscribeSettings_languageCode :: Lens.Lens' EngineTranscribeSettings (Prelude.Maybe TranscribeLanguageCode)
engineTranscribeSettings_languageCode :: Lens' EngineTranscribeSettings (Maybe TranscribeLanguageCode)
engineTranscribeSettings_languageCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EngineTranscribeSettings' {Maybe TranscribeLanguageCode
languageCode :: Maybe TranscribeLanguageCode
$sel:languageCode:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeLanguageCode
languageCode} -> Maybe TranscribeLanguageCode
languageCode) (\s :: EngineTranscribeSettings
s@EngineTranscribeSettings' {} Maybe TranscribeLanguageCode
a -> EngineTranscribeSettings
s {$sel:languageCode:EngineTranscribeSettings' :: Maybe TranscribeLanguageCode
languageCode = Maybe TranscribeLanguageCode
a} :: EngineTranscribeSettings)

-- | The name of the language model used during transcription.
engineTranscribeSettings_languageModelName :: Lens.Lens' EngineTranscribeSettings (Prelude.Maybe Prelude.Text)
engineTranscribeSettings_languageModelName :: Lens' EngineTranscribeSettings (Maybe Text)
engineTranscribeSettings_languageModelName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EngineTranscribeSettings' {Maybe Text
languageModelName :: Maybe Text
$sel:languageModelName:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
languageModelName} -> Maybe Text
languageModelName) (\s :: EngineTranscribeSettings
s@EngineTranscribeSettings' {} Maybe Text
a -> EngineTranscribeSettings
s {$sel:languageModelName:EngineTranscribeSettings' :: Maybe Text
languageModelName = Maybe Text
a} :: EngineTranscribeSettings)

-- | Language codes for the languages that you want to identify. You must
-- provide at least 2 codes.
engineTranscribeSettings_languageOptions :: Lens.Lens' EngineTranscribeSettings (Prelude.Maybe Prelude.Text)
engineTranscribeSettings_languageOptions :: Lens' EngineTranscribeSettings (Maybe Text)
engineTranscribeSettings_languageOptions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EngineTranscribeSettings' {Maybe Text
languageOptions :: Maybe Text
$sel:languageOptions:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
languageOptions} -> Maybe Text
languageOptions) (\s :: EngineTranscribeSettings
s@EngineTranscribeSettings' {} Maybe Text
a -> EngineTranscribeSettings
s {$sel:languageOptions:EngineTranscribeSettings' :: Maybe Text
languageOptions = Maybe Text
a} :: EngineTranscribeSettings)

-- | The stabity level of a partial results transcription. Determines how
-- stable you want the transcription results to be. A higher level means
-- the transcription results are less likely to change.
engineTranscribeSettings_partialResultsStability :: Lens.Lens' EngineTranscribeSettings (Prelude.Maybe TranscribePartialResultsStability)
engineTranscribeSettings_partialResultsStability :: Lens'
  EngineTranscribeSettings (Maybe TranscribePartialResultsStability)
engineTranscribeSettings_partialResultsStability = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EngineTranscribeSettings' {Maybe TranscribePartialResultsStability
partialResultsStability :: Maybe TranscribePartialResultsStability
$sel:partialResultsStability:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribePartialResultsStability
partialResultsStability} -> Maybe TranscribePartialResultsStability
partialResultsStability) (\s :: EngineTranscribeSettings
s@EngineTranscribeSettings' {} Maybe TranscribePartialResultsStability
a -> EngineTranscribeSettings
s {$sel:partialResultsStability:EngineTranscribeSettings' :: Maybe TranscribePartialResultsStability
partialResultsStability = Maybe TranscribePartialResultsStability
a} :: EngineTranscribeSettings)

-- | Lists the PII entity types you want to identify or redact. To specify
-- entity types, you must enable @ContentIdentificationType@ or
-- @ContentRedactionType@.
--
-- @PIIEntityTypes@ must be comma-separated. The available values are:
-- @BANK_ACCOUNT_NUMBER@, @BANK_ROUTING, CREDIT_DEBIT_NUMBER@,
-- @CREDIT_DEBIT_CVV@, @CREDIT_DEBIT_EXPIRY@, @PIN@, @EMAIL@, @ADDRESS@,
-- @NAME@, @PHONE@, @SSN@, and @ALL@.
--
-- @PiiEntityTypes@ is an optional parameter with a default value of @ALL@.
engineTranscribeSettings_piiEntityTypes :: Lens.Lens' EngineTranscribeSettings (Prelude.Maybe Prelude.Text)
engineTranscribeSettings_piiEntityTypes :: Lens' EngineTranscribeSettings (Maybe Text)
engineTranscribeSettings_piiEntityTypes = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EngineTranscribeSettings' {Maybe Text
piiEntityTypes :: Maybe Text
$sel:piiEntityTypes:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
piiEntityTypes} -> Maybe Text
piiEntityTypes) (\s :: EngineTranscribeSettings
s@EngineTranscribeSettings' {} Maybe Text
a -> EngineTranscribeSettings
s {$sel:piiEntityTypes:EngineTranscribeSettings' :: Maybe Text
piiEntityTypes = Maybe Text
a} :: EngineTranscribeSettings)

-- | Language code for the preferred language.
engineTranscribeSettings_preferredLanguage :: Lens.Lens' EngineTranscribeSettings (Prelude.Maybe TranscribeLanguageCode)
engineTranscribeSettings_preferredLanguage :: Lens' EngineTranscribeSettings (Maybe TranscribeLanguageCode)
engineTranscribeSettings_preferredLanguage = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EngineTranscribeSettings' {Maybe TranscribeLanguageCode
preferredLanguage :: Maybe TranscribeLanguageCode
$sel:preferredLanguage:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeLanguageCode
preferredLanguage} -> Maybe TranscribeLanguageCode
preferredLanguage) (\s :: EngineTranscribeSettings
s@EngineTranscribeSettings' {} Maybe TranscribeLanguageCode
a -> EngineTranscribeSettings
s {$sel:preferredLanguage:EngineTranscribeSettings' :: Maybe TranscribeLanguageCode
preferredLanguage = Maybe TranscribeLanguageCode
a} :: EngineTranscribeSettings)

-- | The AWS Region passed to Amazon Transcribe. If you don\'t specify a
-- Region, Amazon Chime uses the meeting\'s Region.
engineTranscribeSettings_region :: Lens.Lens' EngineTranscribeSettings (Prelude.Maybe TranscribeRegion)
engineTranscribeSettings_region :: Lens' EngineTranscribeSettings (Maybe TranscribeRegion)
engineTranscribeSettings_region = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EngineTranscribeSettings' {Maybe TranscribeRegion
region :: Maybe TranscribeRegion
$sel:region:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeRegion
region} -> Maybe TranscribeRegion
region) (\s :: EngineTranscribeSettings
s@EngineTranscribeSettings' {} Maybe TranscribeRegion
a -> EngineTranscribeSettings
s {$sel:region:EngineTranscribeSettings' :: Maybe TranscribeRegion
region = Maybe TranscribeRegion
a} :: EngineTranscribeSettings)

-- | The filtering method passed to Amazon Transcribe.
engineTranscribeSettings_vocabularyFilterMethod :: Lens.Lens' EngineTranscribeSettings (Prelude.Maybe TranscribeVocabularyFilterMethod)
engineTranscribeSettings_vocabularyFilterMethod :: Lens'
  EngineTranscribeSettings (Maybe TranscribeVocabularyFilterMethod)
engineTranscribeSettings_vocabularyFilterMethod = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EngineTranscribeSettings' {Maybe TranscribeVocabularyFilterMethod
vocabularyFilterMethod :: Maybe TranscribeVocabularyFilterMethod
$sel:vocabularyFilterMethod:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeVocabularyFilterMethod
vocabularyFilterMethod} -> Maybe TranscribeVocabularyFilterMethod
vocabularyFilterMethod) (\s :: EngineTranscribeSettings
s@EngineTranscribeSettings' {} Maybe TranscribeVocabularyFilterMethod
a -> EngineTranscribeSettings
s {$sel:vocabularyFilterMethod:EngineTranscribeSettings' :: Maybe TranscribeVocabularyFilterMethod
vocabularyFilterMethod = Maybe TranscribeVocabularyFilterMethod
a} :: EngineTranscribeSettings)

-- | The name of the vocabulary filter passed to Amazon Transcribe.
engineTranscribeSettings_vocabularyFilterName :: Lens.Lens' EngineTranscribeSettings (Prelude.Maybe Prelude.Text)
engineTranscribeSettings_vocabularyFilterName :: Lens' EngineTranscribeSettings (Maybe Text)
engineTranscribeSettings_vocabularyFilterName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EngineTranscribeSettings' {Maybe Text
vocabularyFilterName :: Maybe Text
$sel:vocabularyFilterName:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
vocabularyFilterName} -> Maybe Text
vocabularyFilterName) (\s :: EngineTranscribeSettings
s@EngineTranscribeSettings' {} Maybe Text
a -> EngineTranscribeSettings
s {$sel:vocabularyFilterName:EngineTranscribeSettings' :: Maybe Text
vocabularyFilterName = Maybe Text
a} :: EngineTranscribeSettings)

-- | The name of the vocabulary passed to Amazon Transcribe.
engineTranscribeSettings_vocabularyName :: Lens.Lens' EngineTranscribeSettings (Prelude.Maybe Prelude.Text)
engineTranscribeSettings_vocabularyName :: Lens' EngineTranscribeSettings (Maybe Text)
engineTranscribeSettings_vocabularyName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\EngineTranscribeSettings' {Maybe Text
vocabularyName :: Maybe Text
$sel:vocabularyName:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
vocabularyName} -> Maybe Text
vocabularyName) (\s :: EngineTranscribeSettings
s@EngineTranscribeSettings' {} Maybe Text
a -> EngineTranscribeSettings
s {$sel:vocabularyName:EngineTranscribeSettings' :: Maybe Text
vocabularyName = Maybe Text
a} :: EngineTranscribeSettings)

instance Prelude.Hashable EngineTranscribeSettings where
  hashWithSalt :: Int -> EngineTranscribeSettings -> Int
hashWithSalt Int
_salt EngineTranscribeSettings' {Maybe Bool
Maybe Text
Maybe TranscribeContentIdentificationType
Maybe TranscribeContentRedactionType
Maybe TranscribeLanguageCode
Maybe TranscribePartialResultsStability
Maybe TranscribeRegion
Maybe TranscribeVocabularyFilterMethod
vocabularyName :: Maybe Text
vocabularyFilterName :: Maybe Text
vocabularyFilterMethod :: Maybe TranscribeVocabularyFilterMethod
region :: Maybe TranscribeRegion
preferredLanguage :: Maybe TranscribeLanguageCode
piiEntityTypes :: Maybe Text
partialResultsStability :: Maybe TranscribePartialResultsStability
languageOptions :: Maybe Text
languageModelName :: Maybe Text
languageCode :: Maybe TranscribeLanguageCode
identifyLanguage :: Maybe Bool
enablePartialResultsStabilization :: Maybe Bool
contentRedactionType :: Maybe TranscribeContentRedactionType
contentIdentificationType :: Maybe TranscribeContentIdentificationType
$sel:vocabularyName:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
$sel:vocabularyFilterName:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
$sel:vocabularyFilterMethod:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeVocabularyFilterMethod
$sel:region:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeRegion
$sel:preferredLanguage:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeLanguageCode
$sel:piiEntityTypes:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
$sel:partialResultsStability:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribePartialResultsStability
$sel:languageOptions:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
$sel:languageModelName:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
$sel:languageCode:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeLanguageCode
$sel:identifyLanguage:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Bool
$sel:enablePartialResultsStabilization:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Bool
$sel:contentRedactionType:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeContentRedactionType
$sel:contentIdentificationType:EngineTranscribeSettings' :: EngineTranscribeSettings
-> Maybe TranscribeContentIdentificationType
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TranscribeContentIdentificationType
contentIdentificationType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TranscribeContentRedactionType
contentRedactionType
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
enablePartialResultsStabilization
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Bool
identifyLanguage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TranscribeLanguageCode
languageCode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
languageModelName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
languageOptions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TranscribePartialResultsStability
partialResultsStability
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
piiEntityTypes
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TranscribeLanguageCode
preferredLanguage
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TranscribeRegion
region
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe TranscribeVocabularyFilterMethod
vocabularyFilterMethod
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
vocabularyFilterName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
vocabularyName

instance Prelude.NFData EngineTranscribeSettings where
  rnf :: EngineTranscribeSettings -> ()
rnf EngineTranscribeSettings' {Maybe Bool
Maybe Text
Maybe TranscribeContentIdentificationType
Maybe TranscribeContentRedactionType
Maybe TranscribeLanguageCode
Maybe TranscribePartialResultsStability
Maybe TranscribeRegion
Maybe TranscribeVocabularyFilterMethod
vocabularyName :: Maybe Text
vocabularyFilterName :: Maybe Text
vocabularyFilterMethod :: Maybe TranscribeVocabularyFilterMethod
region :: Maybe TranscribeRegion
preferredLanguage :: Maybe TranscribeLanguageCode
piiEntityTypes :: Maybe Text
partialResultsStability :: Maybe TranscribePartialResultsStability
languageOptions :: Maybe Text
languageModelName :: Maybe Text
languageCode :: Maybe TranscribeLanguageCode
identifyLanguage :: Maybe Bool
enablePartialResultsStabilization :: Maybe Bool
contentRedactionType :: Maybe TranscribeContentRedactionType
contentIdentificationType :: Maybe TranscribeContentIdentificationType
$sel:vocabularyName:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
$sel:vocabularyFilterName:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
$sel:vocabularyFilterMethod:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeVocabularyFilterMethod
$sel:region:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeRegion
$sel:preferredLanguage:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeLanguageCode
$sel:piiEntityTypes:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
$sel:partialResultsStability:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribePartialResultsStability
$sel:languageOptions:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
$sel:languageModelName:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
$sel:languageCode:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeLanguageCode
$sel:identifyLanguage:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Bool
$sel:enablePartialResultsStabilization:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Bool
$sel:contentRedactionType:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeContentRedactionType
$sel:contentIdentificationType:EngineTranscribeSettings' :: EngineTranscribeSettings
-> Maybe TranscribeContentIdentificationType
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe TranscribeContentIdentificationType
contentIdentificationType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TranscribeContentRedactionType
contentRedactionType
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
enablePartialResultsStabilization
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Bool
identifyLanguage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TranscribeLanguageCode
languageCode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
languageModelName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
languageOptions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TranscribePartialResultsStability
partialResultsStability
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
piiEntityTypes
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TranscribeLanguageCode
preferredLanguage
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TranscribeRegion
region
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe TranscribeVocabularyFilterMethod
vocabularyFilterMethod
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
vocabularyFilterName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
vocabularyName

instance Data.ToJSON EngineTranscribeSettings where
  toJSON :: EngineTranscribeSettings -> Value
toJSON EngineTranscribeSettings' {Maybe Bool
Maybe Text
Maybe TranscribeContentIdentificationType
Maybe TranscribeContentRedactionType
Maybe TranscribeLanguageCode
Maybe TranscribePartialResultsStability
Maybe TranscribeRegion
Maybe TranscribeVocabularyFilterMethod
vocabularyName :: Maybe Text
vocabularyFilterName :: Maybe Text
vocabularyFilterMethod :: Maybe TranscribeVocabularyFilterMethod
region :: Maybe TranscribeRegion
preferredLanguage :: Maybe TranscribeLanguageCode
piiEntityTypes :: Maybe Text
partialResultsStability :: Maybe TranscribePartialResultsStability
languageOptions :: Maybe Text
languageModelName :: Maybe Text
languageCode :: Maybe TranscribeLanguageCode
identifyLanguage :: Maybe Bool
enablePartialResultsStabilization :: Maybe Bool
contentRedactionType :: Maybe TranscribeContentRedactionType
contentIdentificationType :: Maybe TranscribeContentIdentificationType
$sel:vocabularyName:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
$sel:vocabularyFilterName:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
$sel:vocabularyFilterMethod:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeVocabularyFilterMethod
$sel:region:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeRegion
$sel:preferredLanguage:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeLanguageCode
$sel:piiEntityTypes:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
$sel:partialResultsStability:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribePartialResultsStability
$sel:languageOptions:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
$sel:languageModelName:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Text
$sel:languageCode:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeLanguageCode
$sel:identifyLanguage:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Bool
$sel:enablePartialResultsStabilization:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe Bool
$sel:contentRedactionType:EngineTranscribeSettings' :: EngineTranscribeSettings -> Maybe TranscribeContentRedactionType
$sel:contentIdentificationType:EngineTranscribeSettings' :: EngineTranscribeSettings
-> Maybe TranscribeContentIdentificationType
..} =
    [Pair] -> Value
Data.object
      ( forall a. [Maybe a] -> [a]
Prelude.catMaybes
          [ (Key
"ContentIdentificationType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TranscribeContentIdentificationType
contentIdentificationType,
            (Key
"ContentRedactionType" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TranscribeContentRedactionType
contentRedactionType,
            (Key
"EnablePartialResultsStabilization" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
enablePartialResultsStabilization,
            (Key
"IdentifyLanguage" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Bool
identifyLanguage,
            (Key
"LanguageCode" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TranscribeLanguageCode
languageCode,
            (Key
"LanguageModelName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
languageModelName,
            (Key
"LanguageOptions" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
languageOptions,
            (Key
"PartialResultsStability" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TranscribePartialResultsStability
partialResultsStability,
            (Key
"PiiEntityTypes" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
piiEntityTypes,
            (Key
"PreferredLanguage" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TranscribeLanguageCode
preferredLanguage,
            (Key
"Region" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TranscribeRegion
region,
            (Key
"VocabularyFilterMethod" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe TranscribeVocabularyFilterMethod
vocabularyFilterMethod,
            (Key
"VocabularyFilterName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
vocabularyFilterName,
            (Key
"VocabularyName" forall kv v. (KeyValue kv, ToJSON v) => Key -> v -> kv
Data..=)
              forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> Maybe Text
vocabularyName
          ]
      )