{-# 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.Transcribe.Types.MediaFormat
-- 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.Transcribe.Types.MediaFormat
  ( MediaFormat
      ( ..,
        MediaFormat_Amr,
        MediaFormat_Flac,
        MediaFormat_Mp3,
        MediaFormat_Mp4,
        MediaFormat_Ogg,
        MediaFormat_Wav,
        MediaFormat_Webm
      ),
  )
where

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

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

pattern MediaFormat_Amr :: MediaFormat
pattern $bMediaFormat_Amr :: MediaFormat
$mMediaFormat_Amr :: forall r. MediaFormat -> (Void# -> r) -> (Void# -> r) -> r
MediaFormat_Amr = MediaFormat' "amr"

pattern MediaFormat_Flac :: MediaFormat
pattern $bMediaFormat_Flac :: MediaFormat
$mMediaFormat_Flac :: forall r. MediaFormat -> (Void# -> r) -> (Void# -> r) -> r
MediaFormat_Flac = MediaFormat' "flac"

pattern MediaFormat_Mp3 :: MediaFormat
pattern $bMediaFormat_Mp3 :: MediaFormat
$mMediaFormat_Mp3 :: forall r. MediaFormat -> (Void# -> r) -> (Void# -> r) -> r
MediaFormat_Mp3 = MediaFormat' "mp3"

pattern MediaFormat_Mp4 :: MediaFormat
pattern $bMediaFormat_Mp4 :: MediaFormat
$mMediaFormat_Mp4 :: forall r. MediaFormat -> (Void# -> r) -> (Void# -> r) -> r
MediaFormat_Mp4 = MediaFormat' "mp4"

pattern MediaFormat_Ogg :: MediaFormat
pattern $bMediaFormat_Ogg :: MediaFormat
$mMediaFormat_Ogg :: forall r. MediaFormat -> (Void# -> r) -> (Void# -> r) -> r
MediaFormat_Ogg = MediaFormat' "ogg"

pattern MediaFormat_Wav :: MediaFormat
pattern $bMediaFormat_Wav :: MediaFormat
$mMediaFormat_Wav :: forall r. MediaFormat -> (Void# -> r) -> (Void# -> r) -> r
MediaFormat_Wav = MediaFormat' "wav"

pattern MediaFormat_Webm :: MediaFormat
pattern $bMediaFormat_Webm :: MediaFormat
$mMediaFormat_Webm :: forall r. MediaFormat -> (Void# -> r) -> (Void# -> r) -> r
MediaFormat_Webm = MediaFormat' "webm"

{-# COMPLETE
  MediaFormat_Amr,
  MediaFormat_Flac,
  MediaFormat_Mp3,
  MediaFormat_Mp4,
  MediaFormat_Ogg,
  MediaFormat_Wav,
  MediaFormat_Webm,
  MediaFormat'
  #-}