{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DerivingStrategies #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# OPTIONS_GHC -fno-warn-unused-imports #-}

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

-- |
-- Module      : Amazonka.Connect.Types.VoiceRecordingTrack
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.Connect.Types.VoiceRecordingTrack
  ( VoiceRecordingTrack
      ( ..,
        VoiceRecordingTrack_ALL,
        VoiceRecordingTrack_FROM_AGENT,
        VoiceRecordingTrack_TO_AGENT
      ),
  )
where

import qualified Amazonka.Core as Core
import qualified Amazonka.Prelude as Prelude

newtype VoiceRecordingTrack = VoiceRecordingTrack'
  { VoiceRecordingTrack -> Text
fromVoiceRecordingTrack ::
      Core.Text
  }
  deriving stock
    ( Int -> VoiceRecordingTrack -> ShowS
[VoiceRecordingTrack] -> ShowS
VoiceRecordingTrack -> String
(Int -> VoiceRecordingTrack -> ShowS)
-> (VoiceRecordingTrack -> String)
-> ([VoiceRecordingTrack] -> ShowS)
-> Show VoiceRecordingTrack
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [VoiceRecordingTrack] -> ShowS
$cshowList :: [VoiceRecordingTrack] -> ShowS
show :: VoiceRecordingTrack -> String
$cshow :: VoiceRecordingTrack -> String
showsPrec :: Int -> VoiceRecordingTrack -> ShowS
$cshowsPrec :: Int -> VoiceRecordingTrack -> ShowS
Prelude.Show,
      ReadPrec [VoiceRecordingTrack]
ReadPrec VoiceRecordingTrack
Int -> ReadS VoiceRecordingTrack
ReadS [VoiceRecordingTrack]
(Int -> ReadS VoiceRecordingTrack)
-> ReadS [VoiceRecordingTrack]
-> ReadPrec VoiceRecordingTrack
-> ReadPrec [VoiceRecordingTrack]
-> Read VoiceRecordingTrack
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [VoiceRecordingTrack]
$creadListPrec :: ReadPrec [VoiceRecordingTrack]
readPrec :: ReadPrec VoiceRecordingTrack
$creadPrec :: ReadPrec VoiceRecordingTrack
readList :: ReadS [VoiceRecordingTrack]
$creadList :: ReadS [VoiceRecordingTrack]
readsPrec :: Int -> ReadS VoiceRecordingTrack
$creadsPrec :: Int -> ReadS VoiceRecordingTrack
Prelude.Read,
      VoiceRecordingTrack -> VoiceRecordingTrack -> Bool
(VoiceRecordingTrack -> VoiceRecordingTrack -> Bool)
-> (VoiceRecordingTrack -> VoiceRecordingTrack -> Bool)
-> Eq VoiceRecordingTrack
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: VoiceRecordingTrack -> VoiceRecordingTrack -> Bool
$c/= :: VoiceRecordingTrack -> VoiceRecordingTrack -> Bool
== :: VoiceRecordingTrack -> VoiceRecordingTrack -> Bool
$c== :: VoiceRecordingTrack -> VoiceRecordingTrack -> Bool
Prelude.Eq,
      Eq VoiceRecordingTrack
Eq VoiceRecordingTrack
-> (VoiceRecordingTrack -> VoiceRecordingTrack -> Ordering)
-> (VoiceRecordingTrack -> VoiceRecordingTrack -> Bool)
-> (VoiceRecordingTrack -> VoiceRecordingTrack -> Bool)
-> (VoiceRecordingTrack -> VoiceRecordingTrack -> Bool)
-> (VoiceRecordingTrack -> VoiceRecordingTrack -> Bool)
-> (VoiceRecordingTrack
    -> VoiceRecordingTrack -> VoiceRecordingTrack)
-> (VoiceRecordingTrack
    -> VoiceRecordingTrack -> VoiceRecordingTrack)
-> Ord VoiceRecordingTrack
VoiceRecordingTrack -> VoiceRecordingTrack -> Bool
VoiceRecordingTrack -> VoiceRecordingTrack -> Ordering
VoiceRecordingTrack -> VoiceRecordingTrack -> VoiceRecordingTrack
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: VoiceRecordingTrack -> VoiceRecordingTrack -> VoiceRecordingTrack
$cmin :: VoiceRecordingTrack -> VoiceRecordingTrack -> VoiceRecordingTrack
max :: VoiceRecordingTrack -> VoiceRecordingTrack -> VoiceRecordingTrack
$cmax :: VoiceRecordingTrack -> VoiceRecordingTrack -> VoiceRecordingTrack
>= :: VoiceRecordingTrack -> VoiceRecordingTrack -> Bool
$c>= :: VoiceRecordingTrack -> VoiceRecordingTrack -> Bool
> :: VoiceRecordingTrack -> VoiceRecordingTrack -> Bool
$c> :: VoiceRecordingTrack -> VoiceRecordingTrack -> Bool
<= :: VoiceRecordingTrack -> VoiceRecordingTrack -> Bool
$c<= :: VoiceRecordingTrack -> VoiceRecordingTrack -> Bool
< :: VoiceRecordingTrack -> VoiceRecordingTrack -> Bool
$c< :: VoiceRecordingTrack -> VoiceRecordingTrack -> Bool
compare :: VoiceRecordingTrack -> VoiceRecordingTrack -> Ordering
$ccompare :: VoiceRecordingTrack -> VoiceRecordingTrack -> Ordering
$cp1Ord :: Eq VoiceRecordingTrack
Prelude.Ord,
      (forall x. VoiceRecordingTrack -> Rep VoiceRecordingTrack x)
-> (forall x. Rep VoiceRecordingTrack x -> VoiceRecordingTrack)
-> Generic VoiceRecordingTrack
forall x. Rep VoiceRecordingTrack x -> VoiceRecordingTrack
forall x. VoiceRecordingTrack -> Rep VoiceRecordingTrack x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep VoiceRecordingTrack x -> VoiceRecordingTrack
$cfrom :: forall x. VoiceRecordingTrack -> Rep VoiceRecordingTrack x
Prelude.Generic
    )
  deriving newtype
    ( Int -> VoiceRecordingTrack -> Int
VoiceRecordingTrack -> Int
(Int -> VoiceRecordingTrack -> Int)
-> (VoiceRecordingTrack -> Int) -> Hashable VoiceRecordingTrack
forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: VoiceRecordingTrack -> Int
$chash :: VoiceRecordingTrack -> Int
hashWithSalt :: Int -> VoiceRecordingTrack -> Int
$chashWithSalt :: Int -> VoiceRecordingTrack -> Int
Prelude.Hashable,
      VoiceRecordingTrack -> ()
(VoiceRecordingTrack -> ()) -> NFData VoiceRecordingTrack
forall a. (a -> ()) -> NFData a
rnf :: VoiceRecordingTrack -> ()
$crnf :: VoiceRecordingTrack -> ()
Prelude.NFData,
      Text -> Either String VoiceRecordingTrack
(Text -> Either String VoiceRecordingTrack)
-> FromText VoiceRecordingTrack
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String VoiceRecordingTrack
$cfromText :: Text -> Either String VoiceRecordingTrack
Core.FromText,
      VoiceRecordingTrack -> Text
(VoiceRecordingTrack -> Text) -> ToText VoiceRecordingTrack
forall a. (a -> Text) -> ToText a
toText :: VoiceRecordingTrack -> Text
$ctoText :: VoiceRecordingTrack -> Text
Core.ToText,
      VoiceRecordingTrack -> ByteString
(VoiceRecordingTrack -> ByteString)
-> ToByteString VoiceRecordingTrack
forall a. (a -> ByteString) -> ToByteString a
toBS :: VoiceRecordingTrack -> ByteString
$ctoBS :: VoiceRecordingTrack -> ByteString
Core.ToByteString,
      VoiceRecordingTrack -> ByteStringBuilder
(VoiceRecordingTrack -> ByteStringBuilder)
-> ToLog VoiceRecordingTrack
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: VoiceRecordingTrack -> ByteStringBuilder
$cbuild :: VoiceRecordingTrack -> ByteStringBuilder
Core.ToLog,
      HeaderName -> VoiceRecordingTrack -> [Header]
(HeaderName -> VoiceRecordingTrack -> [Header])
-> ToHeader VoiceRecordingTrack
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> VoiceRecordingTrack -> [Header]
$ctoHeader :: HeaderName -> VoiceRecordingTrack -> [Header]
Core.ToHeader,
      VoiceRecordingTrack -> QueryString
(VoiceRecordingTrack -> QueryString) -> ToQuery VoiceRecordingTrack
forall a. (a -> QueryString) -> ToQuery a
toQuery :: VoiceRecordingTrack -> QueryString
$ctoQuery :: VoiceRecordingTrack -> QueryString
Core.ToQuery,
      Value -> Parser [VoiceRecordingTrack]
Value -> Parser VoiceRecordingTrack
(Value -> Parser VoiceRecordingTrack)
-> (Value -> Parser [VoiceRecordingTrack])
-> FromJSON VoiceRecordingTrack
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [VoiceRecordingTrack]
$cparseJSONList :: Value -> Parser [VoiceRecordingTrack]
parseJSON :: Value -> Parser VoiceRecordingTrack
$cparseJSON :: Value -> Parser VoiceRecordingTrack
Core.FromJSON,
      FromJSONKeyFunction [VoiceRecordingTrack]
FromJSONKeyFunction VoiceRecordingTrack
FromJSONKeyFunction VoiceRecordingTrack
-> FromJSONKeyFunction [VoiceRecordingTrack]
-> FromJSONKey VoiceRecordingTrack
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [VoiceRecordingTrack]
$cfromJSONKeyList :: FromJSONKeyFunction [VoiceRecordingTrack]
fromJSONKey :: FromJSONKeyFunction VoiceRecordingTrack
$cfromJSONKey :: FromJSONKeyFunction VoiceRecordingTrack
Core.FromJSONKey,
      [VoiceRecordingTrack] -> Encoding
[VoiceRecordingTrack] -> Value
VoiceRecordingTrack -> Encoding
VoiceRecordingTrack -> Value
(VoiceRecordingTrack -> Value)
-> (VoiceRecordingTrack -> Encoding)
-> ([VoiceRecordingTrack] -> Value)
-> ([VoiceRecordingTrack] -> Encoding)
-> ToJSON VoiceRecordingTrack
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [VoiceRecordingTrack] -> Encoding
$ctoEncodingList :: [VoiceRecordingTrack] -> Encoding
toJSONList :: [VoiceRecordingTrack] -> Value
$ctoJSONList :: [VoiceRecordingTrack] -> Value
toEncoding :: VoiceRecordingTrack -> Encoding
$ctoEncoding :: VoiceRecordingTrack -> Encoding
toJSON :: VoiceRecordingTrack -> Value
$ctoJSON :: VoiceRecordingTrack -> Value
Core.ToJSON,
      ToJSONKeyFunction [VoiceRecordingTrack]
ToJSONKeyFunction VoiceRecordingTrack
ToJSONKeyFunction VoiceRecordingTrack
-> ToJSONKeyFunction [VoiceRecordingTrack]
-> ToJSONKey VoiceRecordingTrack
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [VoiceRecordingTrack]
$ctoJSONKeyList :: ToJSONKeyFunction [VoiceRecordingTrack]
toJSONKey :: ToJSONKeyFunction VoiceRecordingTrack
$ctoJSONKey :: ToJSONKeyFunction VoiceRecordingTrack
Core.ToJSONKey,
      [Node] -> Either String VoiceRecordingTrack
([Node] -> Either String VoiceRecordingTrack)
-> FromXML VoiceRecordingTrack
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String VoiceRecordingTrack
$cparseXML :: [Node] -> Either String VoiceRecordingTrack
Core.FromXML,
      VoiceRecordingTrack -> XML
(VoiceRecordingTrack -> XML) -> ToXML VoiceRecordingTrack
forall a. (a -> XML) -> ToXML a
toXML :: VoiceRecordingTrack -> XML
$ctoXML :: VoiceRecordingTrack -> XML
Core.ToXML
    )

pattern VoiceRecordingTrack_ALL :: VoiceRecordingTrack
pattern $bVoiceRecordingTrack_ALL :: VoiceRecordingTrack
$mVoiceRecordingTrack_ALL :: forall r. VoiceRecordingTrack -> (Void# -> r) -> (Void# -> r) -> r
VoiceRecordingTrack_ALL = VoiceRecordingTrack' "ALL"

pattern VoiceRecordingTrack_FROM_AGENT :: VoiceRecordingTrack
pattern $bVoiceRecordingTrack_FROM_AGENT :: VoiceRecordingTrack
$mVoiceRecordingTrack_FROM_AGENT :: forall r. VoiceRecordingTrack -> (Void# -> r) -> (Void# -> r) -> r
VoiceRecordingTrack_FROM_AGENT = VoiceRecordingTrack' "FROM_AGENT"

pattern VoiceRecordingTrack_TO_AGENT :: VoiceRecordingTrack
pattern $bVoiceRecordingTrack_TO_AGENT :: VoiceRecordingTrack
$mVoiceRecordingTrack_TO_AGENT :: forall r. VoiceRecordingTrack -> (Void# -> r) -> (Void# -> r) -> r
VoiceRecordingTrack_TO_AGENT = VoiceRecordingTrack' "TO_AGENT"

{-# COMPLETE
  VoiceRecordingTrack_ALL,
  VoiceRecordingTrack_FROM_AGENT,
  VoiceRecordingTrack_TO_AGENT,
  VoiceRecordingTrack'
  #-}