{-# 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.WatermarkingStrength
-- 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.WatermarkingStrength
  ( WatermarkingStrength
      ( ..,
        WatermarkingStrength_DEFAULT,
        WatermarkingStrength_LIGHTER,
        WatermarkingStrength_LIGHTEST,
        WatermarkingStrength_STRONGER,
        WatermarkingStrength_STRONGEST
      ),
  )
where

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

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

pattern WatermarkingStrength_DEFAULT :: WatermarkingStrength
pattern $bWatermarkingStrength_DEFAULT :: WatermarkingStrength
$mWatermarkingStrength_DEFAULT :: forall r. WatermarkingStrength -> (Void# -> r) -> (Void# -> r) -> r
WatermarkingStrength_DEFAULT = WatermarkingStrength' "DEFAULT"

pattern WatermarkingStrength_LIGHTER :: WatermarkingStrength
pattern $bWatermarkingStrength_LIGHTER :: WatermarkingStrength
$mWatermarkingStrength_LIGHTER :: forall r. WatermarkingStrength -> (Void# -> r) -> (Void# -> r) -> r
WatermarkingStrength_LIGHTER = WatermarkingStrength' "LIGHTER"

pattern WatermarkingStrength_LIGHTEST :: WatermarkingStrength
pattern $bWatermarkingStrength_LIGHTEST :: WatermarkingStrength
$mWatermarkingStrength_LIGHTEST :: forall r. WatermarkingStrength -> (Void# -> r) -> (Void# -> r) -> r
WatermarkingStrength_LIGHTEST = WatermarkingStrength' "LIGHTEST"

pattern WatermarkingStrength_STRONGER :: WatermarkingStrength
pattern $bWatermarkingStrength_STRONGER :: WatermarkingStrength
$mWatermarkingStrength_STRONGER :: forall r. WatermarkingStrength -> (Void# -> r) -> (Void# -> r) -> r
WatermarkingStrength_STRONGER = WatermarkingStrength' "STRONGER"

pattern WatermarkingStrength_STRONGEST :: WatermarkingStrength
pattern $bWatermarkingStrength_STRONGEST :: WatermarkingStrength
$mWatermarkingStrength_STRONGEST :: forall r. WatermarkingStrength -> (Void# -> r) -> (Void# -> r) -> r
WatermarkingStrength_STRONGEST = WatermarkingStrength' "STRONGEST"

{-# COMPLETE
  WatermarkingStrength_DEFAULT,
  WatermarkingStrength_LIGHTER,
  WatermarkingStrength_LIGHTEST,
  WatermarkingStrength_STRONGER,
  WatermarkingStrength_STRONGEST,
  WatermarkingStrength'
  #-}