{-# 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.ProresParControl
-- 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.ProresParControl
  ( ProresParControl
      ( ..,
        ProresParControl_INITIALIZE_FROM_SOURCE,
        ProresParControl_SPECIFIED
      ),
  )
where

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

-- | Optional. Specify how the service determines the pixel aspect ratio
-- (PAR) for this output. The default behavior, Follow source
-- (INITIALIZE_FROM_SOURCE), uses the PAR from your input video for your
-- output. To specify a different PAR in the console, choose any value
-- other than Follow source. To specify a different PAR by editing the JSON
-- job specification, choose SPECIFIED. When you choose SPECIFIED for this
-- setting, you must also specify values for the parNumerator and
-- parDenominator settings.
newtype ProresParControl = ProresParControl'
  { ProresParControl -> Text
fromProresParControl ::
      Core.Text
  }
  deriving stock
    ( Int -> ProresParControl -> ShowS
[ProresParControl] -> ShowS
ProresParControl -> String
(Int -> ProresParControl -> ShowS)
-> (ProresParControl -> String)
-> ([ProresParControl] -> ShowS)
-> Show ProresParControl
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [ProresParControl] -> ShowS
$cshowList :: [ProresParControl] -> ShowS
show :: ProresParControl -> String
$cshow :: ProresParControl -> String
showsPrec :: Int -> ProresParControl -> ShowS
$cshowsPrec :: Int -> ProresParControl -> ShowS
Prelude.Show,
      ReadPrec [ProresParControl]
ReadPrec ProresParControl
Int -> ReadS ProresParControl
ReadS [ProresParControl]
(Int -> ReadS ProresParControl)
-> ReadS [ProresParControl]
-> ReadPrec ProresParControl
-> ReadPrec [ProresParControl]
-> Read ProresParControl
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [ProresParControl]
$creadListPrec :: ReadPrec [ProresParControl]
readPrec :: ReadPrec ProresParControl
$creadPrec :: ReadPrec ProresParControl
readList :: ReadS [ProresParControl]
$creadList :: ReadS [ProresParControl]
readsPrec :: Int -> ReadS ProresParControl
$creadsPrec :: Int -> ReadS ProresParControl
Prelude.Read,
      ProresParControl -> ProresParControl -> Bool
(ProresParControl -> ProresParControl -> Bool)
-> (ProresParControl -> ProresParControl -> Bool)
-> Eq ProresParControl
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: ProresParControl -> ProresParControl -> Bool
$c/= :: ProresParControl -> ProresParControl -> Bool
== :: ProresParControl -> ProresParControl -> Bool
$c== :: ProresParControl -> ProresParControl -> Bool
Prelude.Eq,
      Eq ProresParControl
Eq ProresParControl
-> (ProresParControl -> ProresParControl -> Ordering)
-> (ProresParControl -> ProresParControl -> Bool)
-> (ProresParControl -> ProresParControl -> Bool)
-> (ProresParControl -> ProresParControl -> Bool)
-> (ProresParControl -> ProresParControl -> Bool)
-> (ProresParControl -> ProresParControl -> ProresParControl)
-> (ProresParControl -> ProresParControl -> ProresParControl)
-> Ord ProresParControl
ProresParControl -> ProresParControl -> Bool
ProresParControl -> ProresParControl -> Ordering
ProresParControl -> ProresParControl -> ProresParControl
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 :: ProresParControl -> ProresParControl -> ProresParControl
$cmin :: ProresParControl -> ProresParControl -> ProresParControl
max :: ProresParControl -> ProresParControl -> ProresParControl
$cmax :: ProresParControl -> ProresParControl -> ProresParControl
>= :: ProresParControl -> ProresParControl -> Bool
$c>= :: ProresParControl -> ProresParControl -> Bool
> :: ProresParControl -> ProresParControl -> Bool
$c> :: ProresParControl -> ProresParControl -> Bool
<= :: ProresParControl -> ProresParControl -> Bool
$c<= :: ProresParControl -> ProresParControl -> Bool
< :: ProresParControl -> ProresParControl -> Bool
$c< :: ProresParControl -> ProresParControl -> Bool
compare :: ProresParControl -> ProresParControl -> Ordering
$ccompare :: ProresParControl -> ProresParControl -> Ordering
$cp1Ord :: Eq ProresParControl
Prelude.Ord,
      (forall x. ProresParControl -> Rep ProresParControl x)
-> (forall x. Rep ProresParControl x -> ProresParControl)
-> Generic ProresParControl
forall x. Rep ProresParControl x -> ProresParControl
forall x. ProresParControl -> Rep ProresParControl x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep ProresParControl x -> ProresParControl
$cfrom :: forall x. ProresParControl -> Rep ProresParControl x
Prelude.Generic
    )
  deriving newtype
    ( Int -> ProresParControl -> Int
ProresParControl -> Int
(Int -> ProresParControl -> Int)
-> (ProresParControl -> Int) -> Hashable ProresParControl
forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: ProresParControl -> Int
$chash :: ProresParControl -> Int
hashWithSalt :: Int -> ProresParControl -> Int
$chashWithSalt :: Int -> ProresParControl -> Int
Prelude.Hashable,
      ProresParControl -> ()
(ProresParControl -> ()) -> NFData ProresParControl
forall a. (a -> ()) -> NFData a
rnf :: ProresParControl -> ()
$crnf :: ProresParControl -> ()
Prelude.NFData,
      Text -> Either String ProresParControl
(Text -> Either String ProresParControl)
-> FromText ProresParControl
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String ProresParControl
$cfromText :: Text -> Either String ProresParControl
Core.FromText,
      ProresParControl -> Text
(ProresParControl -> Text) -> ToText ProresParControl
forall a. (a -> Text) -> ToText a
toText :: ProresParControl -> Text
$ctoText :: ProresParControl -> Text
Core.ToText,
      ProresParControl -> ByteString
(ProresParControl -> ByteString) -> ToByteString ProresParControl
forall a. (a -> ByteString) -> ToByteString a
toBS :: ProresParControl -> ByteString
$ctoBS :: ProresParControl -> ByteString
Core.ToByteString,
      ProresParControl -> ByteStringBuilder
(ProresParControl -> ByteStringBuilder) -> ToLog ProresParControl
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: ProresParControl -> ByteStringBuilder
$cbuild :: ProresParControl -> ByteStringBuilder
Core.ToLog,
      HeaderName -> ProresParControl -> [Header]
(HeaderName -> ProresParControl -> [Header])
-> ToHeader ProresParControl
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> ProresParControl -> [Header]
$ctoHeader :: HeaderName -> ProresParControl -> [Header]
Core.ToHeader,
      ProresParControl -> QueryString
(ProresParControl -> QueryString) -> ToQuery ProresParControl
forall a. (a -> QueryString) -> ToQuery a
toQuery :: ProresParControl -> QueryString
$ctoQuery :: ProresParControl -> QueryString
Core.ToQuery,
      Value -> Parser [ProresParControl]
Value -> Parser ProresParControl
(Value -> Parser ProresParControl)
-> (Value -> Parser [ProresParControl])
-> FromJSON ProresParControl
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [ProresParControl]
$cparseJSONList :: Value -> Parser [ProresParControl]
parseJSON :: Value -> Parser ProresParControl
$cparseJSON :: Value -> Parser ProresParControl
Core.FromJSON,
      FromJSONKeyFunction [ProresParControl]
FromJSONKeyFunction ProresParControl
FromJSONKeyFunction ProresParControl
-> FromJSONKeyFunction [ProresParControl]
-> FromJSONKey ProresParControl
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [ProresParControl]
$cfromJSONKeyList :: FromJSONKeyFunction [ProresParControl]
fromJSONKey :: FromJSONKeyFunction ProresParControl
$cfromJSONKey :: FromJSONKeyFunction ProresParControl
Core.FromJSONKey,
      [ProresParControl] -> Encoding
[ProresParControl] -> Value
ProresParControl -> Encoding
ProresParControl -> Value
(ProresParControl -> Value)
-> (ProresParControl -> Encoding)
-> ([ProresParControl] -> Value)
-> ([ProresParControl] -> Encoding)
-> ToJSON ProresParControl
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [ProresParControl] -> Encoding
$ctoEncodingList :: [ProresParControl] -> Encoding
toJSONList :: [ProresParControl] -> Value
$ctoJSONList :: [ProresParControl] -> Value
toEncoding :: ProresParControl -> Encoding
$ctoEncoding :: ProresParControl -> Encoding
toJSON :: ProresParControl -> Value
$ctoJSON :: ProresParControl -> Value
Core.ToJSON,
      ToJSONKeyFunction [ProresParControl]
ToJSONKeyFunction ProresParControl
ToJSONKeyFunction ProresParControl
-> ToJSONKeyFunction [ProresParControl]
-> ToJSONKey ProresParControl
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [ProresParControl]
$ctoJSONKeyList :: ToJSONKeyFunction [ProresParControl]
toJSONKey :: ToJSONKeyFunction ProresParControl
$ctoJSONKey :: ToJSONKeyFunction ProresParControl
Core.ToJSONKey,
      [Node] -> Either String ProresParControl
([Node] -> Either String ProresParControl)
-> FromXML ProresParControl
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String ProresParControl
$cparseXML :: [Node] -> Either String ProresParControl
Core.FromXML,
      ProresParControl -> XML
(ProresParControl -> XML) -> ToXML ProresParControl
forall a. (a -> XML) -> ToXML a
toXML :: ProresParControl -> XML
$ctoXML :: ProresParControl -> XML
Core.ToXML
    )

pattern ProresParControl_INITIALIZE_FROM_SOURCE :: ProresParControl
pattern $bProresParControl_INITIALIZE_FROM_SOURCE :: ProresParControl
$mProresParControl_INITIALIZE_FROM_SOURCE :: forall r. ProresParControl -> (Void# -> r) -> (Void# -> r) -> r
ProresParControl_INITIALIZE_FROM_SOURCE = ProresParControl' "INITIALIZE_FROM_SOURCE"

pattern ProresParControl_SPECIFIED :: ProresParControl
pattern $bProresParControl_SPECIFIED :: ProresParControl
$mProresParControl_SPECIFIED :: forall r. ProresParControl -> (Void# -> r) -> (Void# -> r) -> r
ProresParControl_SPECIFIED = ProresParControl' "SPECIFIED"

{-# COMPLETE
  ProresParControl_INITIALIZE_FROM_SOURCE,
  ProresParControl_SPECIFIED,
  ProresParControl'
  #-}