{-# 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.Transcribe.Types.CallAnalyticsJob
-- 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.Transcribe.Types.CallAnalyticsJob where

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
import Amazonka.Transcribe.Types.CallAnalyticsJobSettings
import Amazonka.Transcribe.Types.CallAnalyticsJobStatus
import Amazonka.Transcribe.Types.ChannelDefinition
import Amazonka.Transcribe.Types.LanguageCode
import Amazonka.Transcribe.Types.Media
import Amazonka.Transcribe.Types.MediaFormat
import Amazonka.Transcribe.Types.Transcript

-- | Provides detailed information about a 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 the
-- @RedactedMediaFileUri@ field of your response.
--
-- /See:/ 'newCallAnalyticsJob' smart constructor.
data CallAnalyticsJob = CallAnalyticsJob'
  { -- | The name of the Call Analytics job. Job names are case sensitive and
    -- must be unique within an Amazon Web Services account.
    CallAnalyticsJob -> Maybe Text
callAnalyticsJobName :: Prelude.Maybe Prelude.Text,
    -- | Provides the status of the specified Call Analytics job.
    --
    -- If the status is @COMPLETED@, the job is finished and you can find the
    -- results at the location specified in @TranscriptFileUri@ (or
    -- @RedactedTranscriptFileUri@, if you requested transcript redaction). If
    -- the status is @FAILED@, @FailureReason@ provides details on why your
    -- transcription job failed.
    CallAnalyticsJob -> Maybe CallAnalyticsJobStatus
callAnalyticsJobStatus :: Prelude.Maybe CallAnalyticsJobStatus,
    -- | Indicates which speaker is on which channel.
    CallAnalyticsJob -> Maybe (NonEmpty ChannelDefinition)
channelDefinitions :: Prelude.Maybe (Prelude.NonEmpty ChannelDefinition),
    -- | The date and time the specified Call Analytics job finished processing.
    --
    -- Timestamps are in the format @YYYY-MM-DD\'T\'HH:MM:SS.SSSSSS-UTC@. For
    -- example, @2022-05-04T12:33:13.922000-07:00@ represents a transcription
    -- job that started processing at 12:33 PM UTC-7 on May 4, 2022.
    CallAnalyticsJob -> Maybe POSIX
completionTime :: Prelude.Maybe Data.POSIX,
    -- | The date and time the specified Call Analytics job request was made.
    --
    -- Timestamps are in the format @YYYY-MM-DD\'T\'HH:MM:SS.SSSSSS-UTC@. For
    -- example, @2022-05-04T12:32:58.761000-07:00@ represents a transcription
    -- job that started processing at 12:32 PM UTC-7 on May 4, 2022.
    CallAnalyticsJob -> Maybe POSIX
creationTime :: Prelude.Maybe Data.POSIX,
    -- | The Amazon Resource Name (ARN) you included in your request.
    CallAnalyticsJob -> Maybe Text
dataAccessRoleArn :: Prelude.Maybe Prelude.Text,
    -- | If @CallAnalyticsJobStatus@ is @FAILED@, @FailureReason@ contains
    -- information about why the Call Analytics job request failed.
    --
    -- The @FailureReason@ field contains one of the following values:
    --
    -- -   @Unsupported media format@.
    --
    --     The media format specified in @MediaFormat@ isn\'t valid. Refer to
    --     __MediaFormat__ for a list of supported formats.
    --
    -- -   @The media format provided does not match the detected media format@.
    --
    --     The media format specified in @MediaFormat@ doesn\'t match the
    --     format of the input file. Check the media format of your media file
    --     and correct the specified value.
    --
    -- -   @Invalid sample rate for audio file@.
    --
    --     The sample rate specified in @MediaSampleRateHertz@ isn\'t valid.
    --     The sample rate must be between 8,000 and 48,000 hertz.
    --
    -- -   @The sample rate provided does not match the detected sample rate@.
    --
    --     The sample rate specified in @MediaSampleRateHertz@ doesn\'t match
    --     the sample rate detected in your input media file. Check the sample
    --     rate of your media file and correct the specified value.
    --
    -- -   @Invalid file size: file size too large@.
    --
    --     The size of your media file is larger than what Amazon Transcribe
    --     can process. For more information, refer to
    --     <https://docs.aws.amazon.com/transcribe/latest/dg/limits-guidelines.html#limits Guidelines and quotas>.
    --
    -- -   @Invalid number of channels: number of channels too large@.
    --
    --     Your audio contains more channels than Amazon Transcribe is able to
    --     process. For more information, refer to
    --     <https://docs.aws.amazon.com/transcribe/latest/dg/limits-guidelines.html#limits Guidelines and quotas>.
    CallAnalyticsJob -> Maybe Text
failureReason :: Prelude.Maybe Prelude.Text,
    -- | The confidence score associated with the language identified in your
    -- media file.
    --
    -- Confidence scores are values between 0 and 1; a larger value indicates a
    -- higher probability that the identified language correctly matches the
    -- language spoken in your media.
    CallAnalyticsJob -> Maybe Double
identifiedLanguageScore :: Prelude.Maybe Prelude.Double,
    -- | The language code used to create your Call Analytics job. For a list of
    -- supported languages and their associated language codes, refer to the
    -- <https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html Supported languages>
    -- table.
    --
    -- If you don\'t know the language spoken in your media file, you can omit
    -- this field and let Amazon Transcribe automatically identify the language
    -- of your media. To improve the accuracy of language identification, you
    -- can include several language codes and Amazon Transcribe chooses the
    -- closest match for your transcription.
    CallAnalyticsJob -> Maybe LanguageCode
languageCode :: Prelude.Maybe LanguageCode,
    -- | Provides the Amazon S3 location of the media file you used in your Call
    -- Analytics request.
    CallAnalyticsJob -> Maybe Media
media :: Prelude.Maybe Media,
    -- | The format of the input media file.
    CallAnalyticsJob -> Maybe MediaFormat
mediaFormat :: Prelude.Maybe MediaFormat,
    -- | The sample rate, in hertz, of the audio track in your input media file.
    CallAnalyticsJob -> Maybe Natural
mediaSampleRateHertz :: Prelude.Maybe Prelude.Natural,
    -- | Provides information on any additional settings that were included in
    -- your request. Additional settings include content redaction and language
    -- identification settings.
    CallAnalyticsJob -> Maybe CallAnalyticsJobSettings
settings :: Prelude.Maybe CallAnalyticsJobSettings,
    -- | The date and time the specified Call Analytics job began processing.
    --
    -- Timestamps are in the format @YYYY-MM-DD\'T\'HH:MM:SS.SSSSSS-UTC@. For
    -- example, @2022-05-04T12:32:58.789000-07:00@ represents a transcription
    -- job that started processing at 12:32 PM UTC-7 on May 4, 2022.
    CallAnalyticsJob -> Maybe POSIX
startTime :: Prelude.Maybe Data.POSIX,
    CallAnalyticsJob -> Maybe Transcript
transcript :: Prelude.Maybe Transcript
  }
  deriving (CallAnalyticsJob -> CallAnalyticsJob -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: CallAnalyticsJob -> CallAnalyticsJob -> Bool
$c/= :: CallAnalyticsJob -> CallAnalyticsJob -> Bool
== :: CallAnalyticsJob -> CallAnalyticsJob -> Bool
$c== :: CallAnalyticsJob -> CallAnalyticsJob -> Bool
Prelude.Eq, ReadPrec [CallAnalyticsJob]
ReadPrec CallAnalyticsJob
Int -> ReadS CallAnalyticsJob
ReadS [CallAnalyticsJob]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [CallAnalyticsJob]
$creadListPrec :: ReadPrec [CallAnalyticsJob]
readPrec :: ReadPrec CallAnalyticsJob
$creadPrec :: ReadPrec CallAnalyticsJob
readList :: ReadS [CallAnalyticsJob]
$creadList :: ReadS [CallAnalyticsJob]
readsPrec :: Int -> ReadS CallAnalyticsJob
$creadsPrec :: Int -> ReadS CallAnalyticsJob
Prelude.Read, Int -> CallAnalyticsJob -> ShowS
[CallAnalyticsJob] -> ShowS
CallAnalyticsJob -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [CallAnalyticsJob] -> ShowS
$cshowList :: [CallAnalyticsJob] -> ShowS
show :: CallAnalyticsJob -> String
$cshow :: CallAnalyticsJob -> String
showsPrec :: Int -> CallAnalyticsJob -> ShowS
$cshowsPrec :: Int -> CallAnalyticsJob -> ShowS
Prelude.Show, forall x. Rep CallAnalyticsJob x -> CallAnalyticsJob
forall x. CallAnalyticsJob -> Rep CallAnalyticsJob x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep CallAnalyticsJob x -> CallAnalyticsJob
$cfrom :: forall x. CallAnalyticsJob -> Rep CallAnalyticsJob x
Prelude.Generic)

-- |
-- Create a value of 'CallAnalyticsJob' 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:
--
-- 'callAnalyticsJobName', 'callAnalyticsJob_callAnalyticsJobName' - The name of the Call Analytics job. Job names are case sensitive and
-- must be unique within an Amazon Web Services account.
--
-- 'callAnalyticsJobStatus', 'callAnalyticsJob_callAnalyticsJobStatus' - Provides the status of the specified Call Analytics job.
--
-- If the status is @COMPLETED@, the job is finished and you can find the
-- results at the location specified in @TranscriptFileUri@ (or
-- @RedactedTranscriptFileUri@, if you requested transcript redaction). If
-- the status is @FAILED@, @FailureReason@ provides details on why your
-- transcription job failed.
--
-- 'channelDefinitions', 'callAnalyticsJob_channelDefinitions' - Indicates which speaker is on which channel.
--
-- 'completionTime', 'callAnalyticsJob_completionTime' - The date and time the specified Call Analytics job finished processing.
--
-- Timestamps are in the format @YYYY-MM-DD\'T\'HH:MM:SS.SSSSSS-UTC@. For
-- example, @2022-05-04T12:33:13.922000-07:00@ represents a transcription
-- job that started processing at 12:33 PM UTC-7 on May 4, 2022.
--
-- 'creationTime', 'callAnalyticsJob_creationTime' - The date and time the specified Call Analytics job request was made.
--
-- Timestamps are in the format @YYYY-MM-DD\'T\'HH:MM:SS.SSSSSS-UTC@. For
-- example, @2022-05-04T12:32:58.761000-07:00@ represents a transcription
-- job that started processing at 12:32 PM UTC-7 on May 4, 2022.
--
-- 'dataAccessRoleArn', 'callAnalyticsJob_dataAccessRoleArn' - The Amazon Resource Name (ARN) you included in your request.
--
-- 'failureReason', 'callAnalyticsJob_failureReason' - If @CallAnalyticsJobStatus@ is @FAILED@, @FailureReason@ contains
-- information about why the Call Analytics job request failed.
--
-- The @FailureReason@ field contains one of the following values:
--
-- -   @Unsupported media format@.
--
--     The media format specified in @MediaFormat@ isn\'t valid. Refer to
--     __MediaFormat__ for a list of supported formats.
--
-- -   @The media format provided does not match the detected media format@.
--
--     The media format specified in @MediaFormat@ doesn\'t match the
--     format of the input file. Check the media format of your media file
--     and correct the specified value.
--
-- -   @Invalid sample rate for audio file@.
--
--     The sample rate specified in @MediaSampleRateHertz@ isn\'t valid.
--     The sample rate must be between 8,000 and 48,000 hertz.
--
-- -   @The sample rate provided does not match the detected sample rate@.
--
--     The sample rate specified in @MediaSampleRateHertz@ doesn\'t match
--     the sample rate detected in your input media file. Check the sample
--     rate of your media file and correct the specified value.
--
-- -   @Invalid file size: file size too large@.
--
--     The size of your media file is larger than what Amazon Transcribe
--     can process. For more information, refer to
--     <https://docs.aws.amazon.com/transcribe/latest/dg/limits-guidelines.html#limits Guidelines and quotas>.
--
-- -   @Invalid number of channels: number of channels too large@.
--
--     Your audio contains more channels than Amazon Transcribe is able to
--     process. For more information, refer to
--     <https://docs.aws.amazon.com/transcribe/latest/dg/limits-guidelines.html#limits Guidelines and quotas>.
--
-- 'identifiedLanguageScore', 'callAnalyticsJob_identifiedLanguageScore' - The confidence score associated with the language identified in your
-- media file.
--
-- Confidence scores are values between 0 and 1; a larger value indicates a
-- higher probability that the identified language correctly matches the
-- language spoken in your media.
--
-- 'languageCode', 'callAnalyticsJob_languageCode' - The language code used to create your Call Analytics job. For a list of
-- supported languages and their associated language codes, refer to the
-- <https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html Supported languages>
-- table.
--
-- If you don\'t know the language spoken in your media file, you can omit
-- this field and let Amazon Transcribe automatically identify the language
-- of your media. To improve the accuracy of language identification, you
-- can include several language codes and Amazon Transcribe chooses the
-- closest match for your transcription.
--
-- 'media', 'callAnalyticsJob_media' - Provides the Amazon S3 location of the media file you used in your Call
-- Analytics request.
--
-- 'mediaFormat', 'callAnalyticsJob_mediaFormat' - The format of the input media file.
--
-- 'mediaSampleRateHertz', 'callAnalyticsJob_mediaSampleRateHertz' - The sample rate, in hertz, of the audio track in your input media file.
--
-- 'settings', 'callAnalyticsJob_settings' - Provides information on any additional settings that were included in
-- your request. Additional settings include content redaction and language
-- identification settings.
--
-- 'startTime', 'callAnalyticsJob_startTime' - The date and time the specified Call Analytics job began processing.
--
-- Timestamps are in the format @YYYY-MM-DD\'T\'HH:MM:SS.SSSSSS-UTC@. For
-- example, @2022-05-04T12:32:58.789000-07:00@ represents a transcription
-- job that started processing at 12:32 PM UTC-7 on May 4, 2022.
--
-- 'transcript', 'callAnalyticsJob_transcript' - Undocumented member.
newCallAnalyticsJob ::
  CallAnalyticsJob
newCallAnalyticsJob :: CallAnalyticsJob
newCallAnalyticsJob =
  CallAnalyticsJob'
    { $sel:callAnalyticsJobName:CallAnalyticsJob' :: Maybe Text
callAnalyticsJobName =
        forall a. Maybe a
Prelude.Nothing,
      $sel:callAnalyticsJobStatus:CallAnalyticsJob' :: Maybe CallAnalyticsJobStatus
callAnalyticsJobStatus = forall a. Maybe a
Prelude.Nothing,
      $sel:channelDefinitions:CallAnalyticsJob' :: Maybe (NonEmpty ChannelDefinition)
channelDefinitions = forall a. Maybe a
Prelude.Nothing,
      $sel:completionTime:CallAnalyticsJob' :: Maybe POSIX
completionTime = forall a. Maybe a
Prelude.Nothing,
      $sel:creationTime:CallAnalyticsJob' :: Maybe POSIX
creationTime = forall a. Maybe a
Prelude.Nothing,
      $sel:dataAccessRoleArn:CallAnalyticsJob' :: Maybe Text
dataAccessRoleArn = forall a. Maybe a
Prelude.Nothing,
      $sel:failureReason:CallAnalyticsJob' :: Maybe Text
failureReason = forall a. Maybe a
Prelude.Nothing,
      $sel:identifiedLanguageScore:CallAnalyticsJob' :: Maybe Double
identifiedLanguageScore = forall a. Maybe a
Prelude.Nothing,
      $sel:languageCode:CallAnalyticsJob' :: Maybe LanguageCode
languageCode = forall a. Maybe a
Prelude.Nothing,
      $sel:media:CallAnalyticsJob' :: Maybe Media
media = forall a. Maybe a
Prelude.Nothing,
      $sel:mediaFormat:CallAnalyticsJob' :: Maybe MediaFormat
mediaFormat = forall a. Maybe a
Prelude.Nothing,
      $sel:mediaSampleRateHertz:CallAnalyticsJob' :: Maybe Natural
mediaSampleRateHertz = forall a. Maybe a
Prelude.Nothing,
      $sel:settings:CallAnalyticsJob' :: Maybe CallAnalyticsJobSettings
settings = forall a. Maybe a
Prelude.Nothing,
      $sel:startTime:CallAnalyticsJob' :: Maybe POSIX
startTime = forall a. Maybe a
Prelude.Nothing,
      $sel:transcript:CallAnalyticsJob' :: Maybe Transcript
transcript = forall a. Maybe a
Prelude.Nothing
    }

-- | The name of the Call Analytics job. Job names are case sensitive and
-- must be unique within an Amazon Web Services account.
callAnalyticsJob_callAnalyticsJobName :: Lens.Lens' CallAnalyticsJob (Prelude.Maybe Prelude.Text)
callAnalyticsJob_callAnalyticsJobName :: Lens' CallAnalyticsJob (Maybe Text)
callAnalyticsJob_callAnalyticsJobName = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CallAnalyticsJob' {Maybe Text
callAnalyticsJobName :: Maybe Text
$sel:callAnalyticsJobName:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Text
callAnalyticsJobName} -> Maybe Text
callAnalyticsJobName) (\s :: CallAnalyticsJob
s@CallAnalyticsJob' {} Maybe Text
a -> CallAnalyticsJob
s {$sel:callAnalyticsJobName:CallAnalyticsJob' :: Maybe Text
callAnalyticsJobName = Maybe Text
a} :: CallAnalyticsJob)

-- | Provides the status of the specified Call Analytics job.
--
-- If the status is @COMPLETED@, the job is finished and you can find the
-- results at the location specified in @TranscriptFileUri@ (or
-- @RedactedTranscriptFileUri@, if you requested transcript redaction). If
-- the status is @FAILED@, @FailureReason@ provides details on why your
-- transcription job failed.
callAnalyticsJob_callAnalyticsJobStatus :: Lens.Lens' CallAnalyticsJob (Prelude.Maybe CallAnalyticsJobStatus)
callAnalyticsJob_callAnalyticsJobStatus :: Lens' CallAnalyticsJob (Maybe CallAnalyticsJobStatus)
callAnalyticsJob_callAnalyticsJobStatus = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CallAnalyticsJob' {Maybe CallAnalyticsJobStatus
callAnalyticsJobStatus :: Maybe CallAnalyticsJobStatus
$sel:callAnalyticsJobStatus:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe CallAnalyticsJobStatus
callAnalyticsJobStatus} -> Maybe CallAnalyticsJobStatus
callAnalyticsJobStatus) (\s :: CallAnalyticsJob
s@CallAnalyticsJob' {} Maybe CallAnalyticsJobStatus
a -> CallAnalyticsJob
s {$sel:callAnalyticsJobStatus:CallAnalyticsJob' :: Maybe CallAnalyticsJobStatus
callAnalyticsJobStatus = Maybe CallAnalyticsJobStatus
a} :: CallAnalyticsJob)

-- | Indicates which speaker is on which channel.
callAnalyticsJob_channelDefinitions :: Lens.Lens' CallAnalyticsJob (Prelude.Maybe (Prelude.NonEmpty ChannelDefinition))
callAnalyticsJob_channelDefinitions :: Lens' CallAnalyticsJob (Maybe (NonEmpty ChannelDefinition))
callAnalyticsJob_channelDefinitions = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CallAnalyticsJob' {Maybe (NonEmpty ChannelDefinition)
channelDefinitions :: Maybe (NonEmpty ChannelDefinition)
$sel:channelDefinitions:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe (NonEmpty ChannelDefinition)
channelDefinitions} -> Maybe (NonEmpty ChannelDefinition)
channelDefinitions) (\s :: CallAnalyticsJob
s@CallAnalyticsJob' {} Maybe (NonEmpty ChannelDefinition)
a -> CallAnalyticsJob
s {$sel:channelDefinitions:CallAnalyticsJob' :: Maybe (NonEmpty ChannelDefinition)
channelDefinitions = Maybe (NonEmpty ChannelDefinition)
a} :: CallAnalyticsJob) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall s t a b. (Coercible s a, Coercible t b) => Iso s t a b
Lens.coerced

-- | The date and time the specified Call Analytics job finished processing.
--
-- Timestamps are in the format @YYYY-MM-DD\'T\'HH:MM:SS.SSSSSS-UTC@. For
-- example, @2022-05-04T12:33:13.922000-07:00@ represents a transcription
-- job that started processing at 12:33 PM UTC-7 on May 4, 2022.
callAnalyticsJob_completionTime :: Lens.Lens' CallAnalyticsJob (Prelude.Maybe Prelude.UTCTime)
callAnalyticsJob_completionTime :: Lens' CallAnalyticsJob (Maybe UTCTime)
callAnalyticsJob_completionTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CallAnalyticsJob' {Maybe POSIX
completionTime :: Maybe POSIX
$sel:completionTime:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe POSIX
completionTime} -> Maybe POSIX
completionTime) (\s :: CallAnalyticsJob
s@CallAnalyticsJob' {} Maybe POSIX
a -> CallAnalyticsJob
s {$sel:completionTime:CallAnalyticsJob' :: Maybe POSIX
completionTime = Maybe POSIX
a} :: CallAnalyticsJob) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The date and time the specified Call Analytics job request was made.
--
-- Timestamps are in the format @YYYY-MM-DD\'T\'HH:MM:SS.SSSSSS-UTC@. For
-- example, @2022-05-04T12:32:58.761000-07:00@ represents a transcription
-- job that started processing at 12:32 PM UTC-7 on May 4, 2022.
callAnalyticsJob_creationTime :: Lens.Lens' CallAnalyticsJob (Prelude.Maybe Prelude.UTCTime)
callAnalyticsJob_creationTime :: Lens' CallAnalyticsJob (Maybe UTCTime)
callAnalyticsJob_creationTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CallAnalyticsJob' {Maybe POSIX
creationTime :: Maybe POSIX
$sel:creationTime:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe POSIX
creationTime} -> Maybe POSIX
creationTime) (\s :: CallAnalyticsJob
s@CallAnalyticsJob' {} Maybe POSIX
a -> CallAnalyticsJob
s {$sel:creationTime:CallAnalyticsJob' :: Maybe POSIX
creationTime = Maybe POSIX
a} :: CallAnalyticsJob) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | The Amazon Resource Name (ARN) you included in your request.
callAnalyticsJob_dataAccessRoleArn :: Lens.Lens' CallAnalyticsJob (Prelude.Maybe Prelude.Text)
callAnalyticsJob_dataAccessRoleArn :: Lens' CallAnalyticsJob (Maybe Text)
callAnalyticsJob_dataAccessRoleArn = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CallAnalyticsJob' {Maybe Text
dataAccessRoleArn :: Maybe Text
$sel:dataAccessRoleArn:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Text
dataAccessRoleArn} -> Maybe Text
dataAccessRoleArn) (\s :: CallAnalyticsJob
s@CallAnalyticsJob' {} Maybe Text
a -> CallAnalyticsJob
s {$sel:dataAccessRoleArn:CallAnalyticsJob' :: Maybe Text
dataAccessRoleArn = Maybe Text
a} :: CallAnalyticsJob)

-- | If @CallAnalyticsJobStatus@ is @FAILED@, @FailureReason@ contains
-- information about why the Call Analytics job request failed.
--
-- The @FailureReason@ field contains one of the following values:
--
-- -   @Unsupported media format@.
--
--     The media format specified in @MediaFormat@ isn\'t valid. Refer to
--     __MediaFormat__ for a list of supported formats.
--
-- -   @The media format provided does not match the detected media format@.
--
--     The media format specified in @MediaFormat@ doesn\'t match the
--     format of the input file. Check the media format of your media file
--     and correct the specified value.
--
-- -   @Invalid sample rate for audio file@.
--
--     The sample rate specified in @MediaSampleRateHertz@ isn\'t valid.
--     The sample rate must be between 8,000 and 48,000 hertz.
--
-- -   @The sample rate provided does not match the detected sample rate@.
--
--     The sample rate specified in @MediaSampleRateHertz@ doesn\'t match
--     the sample rate detected in your input media file. Check the sample
--     rate of your media file and correct the specified value.
--
-- -   @Invalid file size: file size too large@.
--
--     The size of your media file is larger than what Amazon Transcribe
--     can process. For more information, refer to
--     <https://docs.aws.amazon.com/transcribe/latest/dg/limits-guidelines.html#limits Guidelines and quotas>.
--
-- -   @Invalid number of channels: number of channels too large@.
--
--     Your audio contains more channels than Amazon Transcribe is able to
--     process. For more information, refer to
--     <https://docs.aws.amazon.com/transcribe/latest/dg/limits-guidelines.html#limits Guidelines and quotas>.
callAnalyticsJob_failureReason :: Lens.Lens' CallAnalyticsJob (Prelude.Maybe Prelude.Text)
callAnalyticsJob_failureReason :: Lens' CallAnalyticsJob (Maybe Text)
callAnalyticsJob_failureReason = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CallAnalyticsJob' {Maybe Text
failureReason :: Maybe Text
$sel:failureReason:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Text
failureReason} -> Maybe Text
failureReason) (\s :: CallAnalyticsJob
s@CallAnalyticsJob' {} Maybe Text
a -> CallAnalyticsJob
s {$sel:failureReason:CallAnalyticsJob' :: Maybe Text
failureReason = Maybe Text
a} :: CallAnalyticsJob)

-- | The confidence score associated with the language identified in your
-- media file.
--
-- Confidence scores are values between 0 and 1; a larger value indicates a
-- higher probability that the identified language correctly matches the
-- language spoken in your media.
callAnalyticsJob_identifiedLanguageScore :: Lens.Lens' CallAnalyticsJob (Prelude.Maybe Prelude.Double)
callAnalyticsJob_identifiedLanguageScore :: Lens' CallAnalyticsJob (Maybe Double)
callAnalyticsJob_identifiedLanguageScore = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CallAnalyticsJob' {Maybe Double
identifiedLanguageScore :: Maybe Double
$sel:identifiedLanguageScore:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Double
identifiedLanguageScore} -> Maybe Double
identifiedLanguageScore) (\s :: CallAnalyticsJob
s@CallAnalyticsJob' {} Maybe Double
a -> CallAnalyticsJob
s {$sel:identifiedLanguageScore:CallAnalyticsJob' :: Maybe Double
identifiedLanguageScore = Maybe Double
a} :: CallAnalyticsJob)

-- | The language code used to create your Call Analytics job. For a list of
-- supported languages and their associated language codes, refer to the
-- <https://docs.aws.amazon.com/transcribe/latest/dg/supported-languages.html Supported languages>
-- table.
--
-- If you don\'t know the language spoken in your media file, you can omit
-- this field and let Amazon Transcribe automatically identify the language
-- of your media. To improve the accuracy of language identification, you
-- can include several language codes and Amazon Transcribe chooses the
-- closest match for your transcription.
callAnalyticsJob_languageCode :: Lens.Lens' CallAnalyticsJob (Prelude.Maybe LanguageCode)
callAnalyticsJob_languageCode :: Lens' CallAnalyticsJob (Maybe LanguageCode)
callAnalyticsJob_languageCode = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CallAnalyticsJob' {Maybe LanguageCode
languageCode :: Maybe LanguageCode
$sel:languageCode:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe LanguageCode
languageCode} -> Maybe LanguageCode
languageCode) (\s :: CallAnalyticsJob
s@CallAnalyticsJob' {} Maybe LanguageCode
a -> CallAnalyticsJob
s {$sel:languageCode:CallAnalyticsJob' :: Maybe LanguageCode
languageCode = Maybe LanguageCode
a} :: CallAnalyticsJob)

-- | Provides the Amazon S3 location of the media file you used in your Call
-- Analytics request.
callAnalyticsJob_media :: Lens.Lens' CallAnalyticsJob (Prelude.Maybe Media)
callAnalyticsJob_media :: Lens' CallAnalyticsJob (Maybe Media)
callAnalyticsJob_media = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CallAnalyticsJob' {Maybe Media
media :: Maybe Media
$sel:media:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Media
media} -> Maybe Media
media) (\s :: CallAnalyticsJob
s@CallAnalyticsJob' {} Maybe Media
a -> CallAnalyticsJob
s {$sel:media:CallAnalyticsJob' :: Maybe Media
media = Maybe Media
a} :: CallAnalyticsJob)

-- | The format of the input media file.
callAnalyticsJob_mediaFormat :: Lens.Lens' CallAnalyticsJob (Prelude.Maybe MediaFormat)
callAnalyticsJob_mediaFormat :: Lens' CallAnalyticsJob (Maybe MediaFormat)
callAnalyticsJob_mediaFormat = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CallAnalyticsJob' {Maybe MediaFormat
mediaFormat :: Maybe MediaFormat
$sel:mediaFormat:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe MediaFormat
mediaFormat} -> Maybe MediaFormat
mediaFormat) (\s :: CallAnalyticsJob
s@CallAnalyticsJob' {} Maybe MediaFormat
a -> CallAnalyticsJob
s {$sel:mediaFormat:CallAnalyticsJob' :: Maybe MediaFormat
mediaFormat = Maybe MediaFormat
a} :: CallAnalyticsJob)

-- | The sample rate, in hertz, of the audio track in your input media file.
callAnalyticsJob_mediaSampleRateHertz :: Lens.Lens' CallAnalyticsJob (Prelude.Maybe Prelude.Natural)
callAnalyticsJob_mediaSampleRateHertz :: Lens' CallAnalyticsJob (Maybe Natural)
callAnalyticsJob_mediaSampleRateHertz = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CallAnalyticsJob' {Maybe Natural
mediaSampleRateHertz :: Maybe Natural
$sel:mediaSampleRateHertz:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Natural
mediaSampleRateHertz} -> Maybe Natural
mediaSampleRateHertz) (\s :: CallAnalyticsJob
s@CallAnalyticsJob' {} Maybe Natural
a -> CallAnalyticsJob
s {$sel:mediaSampleRateHertz:CallAnalyticsJob' :: Maybe Natural
mediaSampleRateHertz = Maybe Natural
a} :: CallAnalyticsJob)

-- | Provides information on any additional settings that were included in
-- your request. Additional settings include content redaction and language
-- identification settings.
callAnalyticsJob_settings :: Lens.Lens' CallAnalyticsJob (Prelude.Maybe CallAnalyticsJobSettings)
callAnalyticsJob_settings :: Lens' CallAnalyticsJob (Maybe CallAnalyticsJobSettings)
callAnalyticsJob_settings = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CallAnalyticsJob' {Maybe CallAnalyticsJobSettings
settings :: Maybe CallAnalyticsJobSettings
$sel:settings:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe CallAnalyticsJobSettings
settings} -> Maybe CallAnalyticsJobSettings
settings) (\s :: CallAnalyticsJob
s@CallAnalyticsJob' {} Maybe CallAnalyticsJobSettings
a -> CallAnalyticsJob
s {$sel:settings:CallAnalyticsJob' :: Maybe CallAnalyticsJobSettings
settings = Maybe CallAnalyticsJobSettings
a} :: CallAnalyticsJob)

-- | The date and time the specified Call Analytics job began processing.
--
-- Timestamps are in the format @YYYY-MM-DD\'T\'HH:MM:SS.SSSSSS-UTC@. For
-- example, @2022-05-04T12:32:58.789000-07:00@ represents a transcription
-- job that started processing at 12:32 PM UTC-7 on May 4, 2022.
callAnalyticsJob_startTime :: Lens.Lens' CallAnalyticsJob (Prelude.Maybe Prelude.UTCTime)
callAnalyticsJob_startTime :: Lens' CallAnalyticsJob (Maybe UTCTime)
callAnalyticsJob_startTime = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CallAnalyticsJob' {Maybe POSIX
startTime :: Maybe POSIX
$sel:startTime:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe POSIX
startTime} -> Maybe POSIX
startTime) (\s :: CallAnalyticsJob
s@CallAnalyticsJob' {} Maybe POSIX
a -> CallAnalyticsJob
s {$sel:startTime:CallAnalyticsJob' :: Maybe POSIX
startTime = Maybe POSIX
a} :: CallAnalyticsJob) forall b c a. (b -> c) -> (a -> b) -> a -> c
Prelude.. forall (f :: * -> *) (g :: * -> *) s t a b.
(Functor f, Functor g) =>
AnIso s t a b -> Iso (f s) (g t) (f a) (g b)
Lens.mapping forall (a :: Format). Iso' (Time a) UTCTime
Data._Time

-- | Undocumented member.
callAnalyticsJob_transcript :: Lens.Lens' CallAnalyticsJob (Prelude.Maybe Transcript)
callAnalyticsJob_transcript :: Lens' CallAnalyticsJob (Maybe Transcript)
callAnalyticsJob_transcript = forall s a b t. (s -> a) -> (s -> b -> t) -> Lens s t a b
Lens.lens (\CallAnalyticsJob' {Maybe Transcript
transcript :: Maybe Transcript
$sel:transcript:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Transcript
transcript} -> Maybe Transcript
transcript) (\s :: CallAnalyticsJob
s@CallAnalyticsJob' {} Maybe Transcript
a -> CallAnalyticsJob
s {$sel:transcript:CallAnalyticsJob' :: Maybe Transcript
transcript = Maybe Transcript
a} :: CallAnalyticsJob)

instance Data.FromJSON CallAnalyticsJob where
  parseJSON :: Value -> Parser CallAnalyticsJob
parseJSON =
    forall a. String -> (Object -> Parser a) -> Value -> Parser a
Data.withObject
      String
"CallAnalyticsJob"
      ( \Object
x ->
          Maybe Text
-> Maybe CallAnalyticsJobStatus
-> Maybe (NonEmpty ChannelDefinition)
-> Maybe POSIX
-> Maybe POSIX
-> Maybe Text
-> Maybe Text
-> Maybe Double
-> Maybe LanguageCode
-> Maybe Media
-> Maybe MediaFormat
-> Maybe Natural
-> Maybe CallAnalyticsJobSettings
-> Maybe POSIX
-> Maybe Transcript
-> CallAnalyticsJob
CallAnalyticsJob'
            forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
Prelude.<$> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CallAnalyticsJobName")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CallAnalyticsJobStatus")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"ChannelDefinitions")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CompletionTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"CreationTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"DataAccessRoleArn")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"FailureReason")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"IdentifiedLanguageScore")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"LanguageCode")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Media")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"MediaFormat")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"MediaSampleRateHertz")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Settings")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"StartTime")
            forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
Prelude.<*> (Object
x forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
Data..:? Key
"Transcript")
      )

instance Prelude.Hashable CallAnalyticsJob where
  hashWithSalt :: Int -> CallAnalyticsJob -> Int
hashWithSalt Int
_salt CallAnalyticsJob' {Maybe Double
Maybe Natural
Maybe (NonEmpty ChannelDefinition)
Maybe Text
Maybe POSIX
Maybe CallAnalyticsJobStatus
Maybe LanguageCode
Maybe Media
Maybe MediaFormat
Maybe Transcript
Maybe CallAnalyticsJobSettings
transcript :: Maybe Transcript
startTime :: Maybe POSIX
settings :: Maybe CallAnalyticsJobSettings
mediaSampleRateHertz :: Maybe Natural
mediaFormat :: Maybe MediaFormat
media :: Maybe Media
languageCode :: Maybe LanguageCode
identifiedLanguageScore :: Maybe Double
failureReason :: Maybe Text
dataAccessRoleArn :: Maybe Text
creationTime :: Maybe POSIX
completionTime :: Maybe POSIX
channelDefinitions :: Maybe (NonEmpty ChannelDefinition)
callAnalyticsJobStatus :: Maybe CallAnalyticsJobStatus
callAnalyticsJobName :: Maybe Text
$sel:transcript:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Transcript
$sel:startTime:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe POSIX
$sel:settings:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe CallAnalyticsJobSettings
$sel:mediaSampleRateHertz:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Natural
$sel:mediaFormat:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe MediaFormat
$sel:media:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Media
$sel:languageCode:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe LanguageCode
$sel:identifiedLanguageScore:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Double
$sel:failureReason:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Text
$sel:dataAccessRoleArn:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Text
$sel:creationTime:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe POSIX
$sel:completionTime:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe POSIX
$sel:channelDefinitions:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe (NonEmpty ChannelDefinition)
$sel:callAnalyticsJobStatus:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe CallAnalyticsJobStatus
$sel:callAnalyticsJobName:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Text
..} =
    Int
_salt
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
callAnalyticsJobName
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CallAnalyticsJobStatus
callAnalyticsJobStatus
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe (NonEmpty ChannelDefinition)
channelDefinitions
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
completionTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
creationTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
dataAccessRoleArn
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Text
failureReason
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Double
identifiedLanguageScore
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe LanguageCode
languageCode
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Media
media
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe MediaFormat
mediaFormat
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Natural
mediaSampleRateHertz
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe CallAnalyticsJobSettings
settings
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe POSIX
startTime
      forall a. Hashable a => Int -> a -> Int
`Prelude.hashWithSalt` Maybe Transcript
transcript

instance Prelude.NFData CallAnalyticsJob where
  rnf :: CallAnalyticsJob -> ()
rnf CallAnalyticsJob' {Maybe Double
Maybe Natural
Maybe (NonEmpty ChannelDefinition)
Maybe Text
Maybe POSIX
Maybe CallAnalyticsJobStatus
Maybe LanguageCode
Maybe Media
Maybe MediaFormat
Maybe Transcript
Maybe CallAnalyticsJobSettings
transcript :: Maybe Transcript
startTime :: Maybe POSIX
settings :: Maybe CallAnalyticsJobSettings
mediaSampleRateHertz :: Maybe Natural
mediaFormat :: Maybe MediaFormat
media :: Maybe Media
languageCode :: Maybe LanguageCode
identifiedLanguageScore :: Maybe Double
failureReason :: Maybe Text
dataAccessRoleArn :: Maybe Text
creationTime :: Maybe POSIX
completionTime :: Maybe POSIX
channelDefinitions :: Maybe (NonEmpty ChannelDefinition)
callAnalyticsJobStatus :: Maybe CallAnalyticsJobStatus
callAnalyticsJobName :: Maybe Text
$sel:transcript:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Transcript
$sel:startTime:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe POSIX
$sel:settings:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe CallAnalyticsJobSettings
$sel:mediaSampleRateHertz:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Natural
$sel:mediaFormat:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe MediaFormat
$sel:media:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Media
$sel:languageCode:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe LanguageCode
$sel:identifiedLanguageScore:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Double
$sel:failureReason:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Text
$sel:dataAccessRoleArn:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Text
$sel:creationTime:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe POSIX
$sel:completionTime:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe POSIX
$sel:channelDefinitions:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe (NonEmpty ChannelDefinition)
$sel:callAnalyticsJobStatus:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe CallAnalyticsJobStatus
$sel:callAnalyticsJobName:CallAnalyticsJob' :: CallAnalyticsJob -> Maybe Text
..} =
    forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
callAnalyticsJobName
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CallAnalyticsJobStatus
callAnalyticsJobStatus
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe (NonEmpty ChannelDefinition)
channelDefinitions
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
completionTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
creationTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
dataAccessRoleArn
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Text
failureReason
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Double
identifiedLanguageScore
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe LanguageCode
languageCode
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Media
media
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe MediaFormat
mediaFormat
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Natural
mediaSampleRateHertz
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe CallAnalyticsJobSettings
settings
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe POSIX
startTime
      seq :: forall a b. a -> b -> b
`Prelude.seq` forall a. NFData a => a -> ()
Prelude.rnf Maybe Transcript
transcript