{-# 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.MediaConnect.Types.EncoderProfile
-- 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.MediaConnect.Types.EncoderProfile
  ( EncoderProfile
      ( ..,
        EncoderProfile_High,
        EncoderProfile_Main
      ),
  )
where

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

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

pattern EncoderProfile_High :: EncoderProfile
pattern $bEncoderProfile_High :: EncoderProfile
$mEncoderProfile_High :: forall r. EncoderProfile -> (Void# -> r) -> (Void# -> r) -> r
EncoderProfile_High = EncoderProfile' "high"

pattern EncoderProfile_Main :: EncoderProfile
pattern $bEncoderProfile_Main :: EncoderProfile
$mEncoderProfile_Main :: forall r. EncoderProfile -> (Void# -> r) -> (Void# -> r) -> r
EncoderProfile_Main = EncoderProfile' "main"

{-# COMPLETE
  EncoderProfile_High,
  EncoderProfile_Main,
  EncoderProfile'
  #-}