{-# 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.MediaLive.Types.AudioDescriptionAudioTypeControl
-- 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.MediaLive.Types.AudioDescriptionAudioTypeControl
  ( AudioDescriptionAudioTypeControl
      ( ..,
        AudioDescriptionAudioTypeControl_FOLLOW_INPUT,
        AudioDescriptionAudioTypeControl_USE_CONFIGURED
      ),
  )
where

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

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

pattern AudioDescriptionAudioTypeControl_FOLLOW_INPUT :: AudioDescriptionAudioTypeControl
pattern $bAudioDescriptionAudioTypeControl_FOLLOW_INPUT :: AudioDescriptionAudioTypeControl
$mAudioDescriptionAudioTypeControl_FOLLOW_INPUT :: forall r.
AudioDescriptionAudioTypeControl
-> (Void# -> r) -> (Void# -> r) -> r
AudioDescriptionAudioTypeControl_FOLLOW_INPUT = AudioDescriptionAudioTypeControl' "FOLLOW_INPUT"

pattern AudioDescriptionAudioTypeControl_USE_CONFIGURED :: AudioDescriptionAudioTypeControl
pattern $bAudioDescriptionAudioTypeControl_USE_CONFIGURED :: AudioDescriptionAudioTypeControl
$mAudioDescriptionAudioTypeControl_USE_CONFIGURED :: forall r.
AudioDescriptionAudioTypeControl
-> (Void# -> r) -> (Void# -> r) -> r
AudioDescriptionAudioTypeControl_USE_CONFIGURED = AudioDescriptionAudioTypeControl' "USE_CONFIGURED"

{-# COMPLETE
  AudioDescriptionAudioTypeControl_FOLLOW_INPUT,
  AudioDescriptionAudioTypeControl_USE_CONFIGURED,
  AudioDescriptionAudioTypeControl'
  #-}