{-# 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.MediaConvert.Types.XavcProfile
-- 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.MediaConvert.Types.XavcProfile
  ( XavcProfile
      ( ..,
        XavcProfile_XAVC_4K,
        XavcProfile_XAVC_4K_INTRA_CBG,
        XavcProfile_XAVC_4K_INTRA_VBR,
        XavcProfile_XAVC_HD,
        XavcProfile_XAVC_HD_INTRA_CBG
      ),
  )
where

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

-- | Specify the XAVC profile for this output. For more information, see the
-- Sony documentation at https:\/\/www.xavc-info.org\/. Note that
-- MediaConvert doesn\'t support the interlaced video XAVC operating points
-- for XAVC_HD_INTRA_CBG. To create an interlaced XAVC output, choose the
-- profile XAVC_HD.
newtype XavcProfile = XavcProfile'
  { XavcProfile -> Text
fromXavcProfile ::
      Core.Text
  }
  deriving stock
    ( Int -> XavcProfile -> ShowS
[XavcProfile] -> ShowS
XavcProfile -> String
(Int -> XavcProfile -> ShowS)
-> (XavcProfile -> String)
-> ([XavcProfile] -> ShowS)
-> Show XavcProfile
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [XavcProfile] -> ShowS
$cshowList :: [XavcProfile] -> ShowS
show :: XavcProfile -> String
$cshow :: XavcProfile -> String
showsPrec :: Int -> XavcProfile -> ShowS
$cshowsPrec :: Int -> XavcProfile -> ShowS
Prelude.Show,
      ReadPrec [XavcProfile]
ReadPrec XavcProfile
Int -> ReadS XavcProfile
ReadS [XavcProfile]
(Int -> ReadS XavcProfile)
-> ReadS [XavcProfile]
-> ReadPrec XavcProfile
-> ReadPrec [XavcProfile]
-> Read XavcProfile
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [XavcProfile]
$creadListPrec :: ReadPrec [XavcProfile]
readPrec :: ReadPrec XavcProfile
$creadPrec :: ReadPrec XavcProfile
readList :: ReadS [XavcProfile]
$creadList :: ReadS [XavcProfile]
readsPrec :: Int -> ReadS XavcProfile
$creadsPrec :: Int -> ReadS XavcProfile
Prelude.Read,
      XavcProfile -> XavcProfile -> Bool
(XavcProfile -> XavcProfile -> Bool)
-> (XavcProfile -> XavcProfile -> Bool) -> Eq XavcProfile
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: XavcProfile -> XavcProfile -> Bool
$c/= :: XavcProfile -> XavcProfile -> Bool
== :: XavcProfile -> XavcProfile -> Bool
$c== :: XavcProfile -> XavcProfile -> Bool
Prelude.Eq,
      Eq XavcProfile
Eq XavcProfile
-> (XavcProfile -> XavcProfile -> Ordering)
-> (XavcProfile -> XavcProfile -> Bool)
-> (XavcProfile -> XavcProfile -> Bool)
-> (XavcProfile -> XavcProfile -> Bool)
-> (XavcProfile -> XavcProfile -> Bool)
-> (XavcProfile -> XavcProfile -> XavcProfile)
-> (XavcProfile -> XavcProfile -> XavcProfile)
-> Ord XavcProfile
XavcProfile -> XavcProfile -> Bool
XavcProfile -> XavcProfile -> Ordering
XavcProfile -> XavcProfile -> XavcProfile
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 :: XavcProfile -> XavcProfile -> XavcProfile
$cmin :: XavcProfile -> XavcProfile -> XavcProfile
max :: XavcProfile -> XavcProfile -> XavcProfile
$cmax :: XavcProfile -> XavcProfile -> XavcProfile
>= :: XavcProfile -> XavcProfile -> Bool
$c>= :: XavcProfile -> XavcProfile -> Bool
> :: XavcProfile -> XavcProfile -> Bool
$c> :: XavcProfile -> XavcProfile -> Bool
<= :: XavcProfile -> XavcProfile -> Bool
$c<= :: XavcProfile -> XavcProfile -> Bool
< :: XavcProfile -> XavcProfile -> Bool
$c< :: XavcProfile -> XavcProfile -> Bool
compare :: XavcProfile -> XavcProfile -> Ordering
$ccompare :: XavcProfile -> XavcProfile -> Ordering
$cp1Ord :: Eq XavcProfile
Prelude.Ord,
      (forall x. XavcProfile -> Rep XavcProfile x)
-> (forall x. Rep XavcProfile x -> XavcProfile)
-> Generic XavcProfile
forall x. Rep XavcProfile x -> XavcProfile
forall x. XavcProfile -> Rep XavcProfile x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep XavcProfile x -> XavcProfile
$cfrom :: forall x. XavcProfile -> Rep XavcProfile x
Prelude.Generic
    )
  deriving newtype
    ( Int -> XavcProfile -> Int
XavcProfile -> Int
(Int -> XavcProfile -> Int)
-> (XavcProfile -> Int) -> Hashable XavcProfile
forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: XavcProfile -> Int
$chash :: XavcProfile -> Int
hashWithSalt :: Int -> XavcProfile -> Int
$chashWithSalt :: Int -> XavcProfile -> Int
Prelude.Hashable,
      XavcProfile -> ()
(XavcProfile -> ()) -> NFData XavcProfile
forall a. (a -> ()) -> NFData a
rnf :: XavcProfile -> ()
$crnf :: XavcProfile -> ()
Prelude.NFData,
      Text -> Either String XavcProfile
(Text -> Either String XavcProfile) -> FromText XavcProfile
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String XavcProfile
$cfromText :: Text -> Either String XavcProfile
Core.FromText,
      XavcProfile -> Text
(XavcProfile -> Text) -> ToText XavcProfile
forall a. (a -> Text) -> ToText a
toText :: XavcProfile -> Text
$ctoText :: XavcProfile -> Text
Core.ToText,
      XavcProfile -> ByteString
(XavcProfile -> ByteString) -> ToByteString XavcProfile
forall a. (a -> ByteString) -> ToByteString a
toBS :: XavcProfile -> ByteString
$ctoBS :: XavcProfile -> ByteString
Core.ToByteString,
      XavcProfile -> ByteStringBuilder
(XavcProfile -> ByteStringBuilder) -> ToLog XavcProfile
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: XavcProfile -> ByteStringBuilder
$cbuild :: XavcProfile -> ByteStringBuilder
Core.ToLog,
      HeaderName -> XavcProfile -> [Header]
(HeaderName -> XavcProfile -> [Header]) -> ToHeader XavcProfile
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> XavcProfile -> [Header]
$ctoHeader :: HeaderName -> XavcProfile -> [Header]
Core.ToHeader,
      XavcProfile -> QueryString
(XavcProfile -> QueryString) -> ToQuery XavcProfile
forall a. (a -> QueryString) -> ToQuery a
toQuery :: XavcProfile -> QueryString
$ctoQuery :: XavcProfile -> QueryString
Core.ToQuery,
      Value -> Parser [XavcProfile]
Value -> Parser XavcProfile
(Value -> Parser XavcProfile)
-> (Value -> Parser [XavcProfile]) -> FromJSON XavcProfile
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [XavcProfile]
$cparseJSONList :: Value -> Parser [XavcProfile]
parseJSON :: Value -> Parser XavcProfile
$cparseJSON :: Value -> Parser XavcProfile
Core.FromJSON,
      FromJSONKeyFunction [XavcProfile]
FromJSONKeyFunction XavcProfile
FromJSONKeyFunction XavcProfile
-> FromJSONKeyFunction [XavcProfile] -> FromJSONKey XavcProfile
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [XavcProfile]
$cfromJSONKeyList :: FromJSONKeyFunction [XavcProfile]
fromJSONKey :: FromJSONKeyFunction XavcProfile
$cfromJSONKey :: FromJSONKeyFunction XavcProfile
Core.FromJSONKey,
      [XavcProfile] -> Encoding
[XavcProfile] -> Value
XavcProfile -> Encoding
XavcProfile -> Value
(XavcProfile -> Value)
-> (XavcProfile -> Encoding)
-> ([XavcProfile] -> Value)
-> ([XavcProfile] -> Encoding)
-> ToJSON XavcProfile
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [XavcProfile] -> Encoding
$ctoEncodingList :: [XavcProfile] -> Encoding
toJSONList :: [XavcProfile] -> Value
$ctoJSONList :: [XavcProfile] -> Value
toEncoding :: XavcProfile -> Encoding
$ctoEncoding :: XavcProfile -> Encoding
toJSON :: XavcProfile -> Value
$ctoJSON :: XavcProfile -> Value
Core.ToJSON,
      ToJSONKeyFunction [XavcProfile]
ToJSONKeyFunction XavcProfile
ToJSONKeyFunction XavcProfile
-> ToJSONKeyFunction [XavcProfile] -> ToJSONKey XavcProfile
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [XavcProfile]
$ctoJSONKeyList :: ToJSONKeyFunction [XavcProfile]
toJSONKey :: ToJSONKeyFunction XavcProfile
$ctoJSONKey :: ToJSONKeyFunction XavcProfile
Core.ToJSONKey,
      [Node] -> Either String XavcProfile
([Node] -> Either String XavcProfile) -> FromXML XavcProfile
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String XavcProfile
$cparseXML :: [Node] -> Either String XavcProfile
Core.FromXML,
      XavcProfile -> XML
(XavcProfile -> XML) -> ToXML XavcProfile
forall a. (a -> XML) -> ToXML a
toXML :: XavcProfile -> XML
$ctoXML :: XavcProfile -> XML
Core.ToXML
    )

pattern XavcProfile_XAVC_4K :: XavcProfile
pattern $bXavcProfile_XAVC_4K :: XavcProfile
$mXavcProfile_XAVC_4K :: forall r. XavcProfile -> (Void# -> r) -> (Void# -> r) -> r
XavcProfile_XAVC_4K = XavcProfile' "XAVC_4K"

pattern XavcProfile_XAVC_4K_INTRA_CBG :: XavcProfile
pattern $bXavcProfile_XAVC_4K_INTRA_CBG :: XavcProfile
$mXavcProfile_XAVC_4K_INTRA_CBG :: forall r. XavcProfile -> (Void# -> r) -> (Void# -> r) -> r
XavcProfile_XAVC_4K_INTRA_CBG = XavcProfile' "XAVC_4K_INTRA_CBG"

pattern XavcProfile_XAVC_4K_INTRA_VBR :: XavcProfile
pattern $bXavcProfile_XAVC_4K_INTRA_VBR :: XavcProfile
$mXavcProfile_XAVC_4K_INTRA_VBR :: forall r. XavcProfile -> (Void# -> r) -> (Void# -> r) -> r
XavcProfile_XAVC_4K_INTRA_VBR = XavcProfile' "XAVC_4K_INTRA_VBR"

pattern XavcProfile_XAVC_HD :: XavcProfile
pattern $bXavcProfile_XAVC_HD :: XavcProfile
$mXavcProfile_XAVC_HD :: forall r. XavcProfile -> (Void# -> r) -> (Void# -> r) -> r
XavcProfile_XAVC_HD = XavcProfile' "XAVC_HD"

pattern XavcProfile_XAVC_HD_INTRA_CBG :: XavcProfile
pattern $bXavcProfile_XAVC_HD_INTRA_CBG :: XavcProfile
$mXavcProfile_XAVC_HD_INTRA_CBG :: forall r. XavcProfile -> (Void# -> r) -> (Void# -> r) -> r
XavcProfile_XAVC_HD_INTRA_CBG = XavcProfile' "XAVC_HD_INTRA_CBG"

{-# COMPLETE
  XavcProfile_XAVC_4K,
  XavcProfile_XAVC_4K_INTRA_CBG,
  XavcProfile_XAVC_4K_INTRA_VBR,
  XavcProfile_XAVC_HD,
  XavcProfile_XAVC_HD_INTRA_CBG,
  XavcProfile'
  #-}