{-# 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.InputFilterEnable
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.MediaConvert.Types.InputFilterEnable
  ( InputFilterEnable
      ( ..,
        InputFilterEnable_AUTO,
        InputFilterEnable_DISABLE,
        InputFilterEnable_FORCE
      ),
  )
where

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

-- | Specify how the transcoding service applies the denoise and deblock
-- filters. You must also enable the filters separately, with Denoise
-- (InputDenoiseFilter) and Deblock (InputDeblockFilter). * Auto - The
-- transcoding service determines whether to apply filtering, depending on
-- input type and quality. * Disable - The input is not filtered. This is
-- true even if you use the API to enable them in (InputDeblockFilter) and
-- (InputDeblockFilter). * Force - The input is filtered regardless of
-- input type.
newtype InputFilterEnable = InputFilterEnable'
  { InputFilterEnable -> Text
fromInputFilterEnable ::
      Data.Text
  }
  deriving stock
    ( Int -> InputFilterEnable -> ShowS
[InputFilterEnable] -> ShowS
InputFilterEnable -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [InputFilterEnable] -> ShowS
$cshowList :: [InputFilterEnable] -> ShowS
show :: InputFilterEnable -> String
$cshow :: InputFilterEnable -> String
showsPrec :: Int -> InputFilterEnable -> ShowS
$cshowsPrec :: Int -> InputFilterEnable -> ShowS
Prelude.Show,
      ReadPrec [InputFilterEnable]
ReadPrec InputFilterEnable
Int -> ReadS InputFilterEnable
ReadS [InputFilterEnable]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [InputFilterEnable]
$creadListPrec :: ReadPrec [InputFilterEnable]
readPrec :: ReadPrec InputFilterEnable
$creadPrec :: ReadPrec InputFilterEnable
readList :: ReadS [InputFilterEnable]
$creadList :: ReadS [InputFilterEnable]
readsPrec :: Int -> ReadS InputFilterEnable
$creadsPrec :: Int -> ReadS InputFilterEnable
Prelude.Read,
      InputFilterEnable -> InputFilterEnable -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: InputFilterEnable -> InputFilterEnable -> Bool
$c/= :: InputFilterEnable -> InputFilterEnable -> Bool
== :: InputFilterEnable -> InputFilterEnable -> Bool
$c== :: InputFilterEnable -> InputFilterEnable -> Bool
Prelude.Eq,
      Eq InputFilterEnable
InputFilterEnable -> InputFilterEnable -> Bool
InputFilterEnable -> InputFilterEnable -> Ordering
InputFilterEnable -> InputFilterEnable -> InputFilterEnable
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 :: InputFilterEnable -> InputFilterEnable -> InputFilterEnable
$cmin :: InputFilterEnable -> InputFilterEnable -> InputFilterEnable
max :: InputFilterEnable -> InputFilterEnable -> InputFilterEnable
$cmax :: InputFilterEnable -> InputFilterEnable -> InputFilterEnable
>= :: InputFilterEnable -> InputFilterEnable -> Bool
$c>= :: InputFilterEnable -> InputFilterEnable -> Bool
> :: InputFilterEnable -> InputFilterEnable -> Bool
$c> :: InputFilterEnable -> InputFilterEnable -> Bool
<= :: InputFilterEnable -> InputFilterEnable -> Bool
$c<= :: InputFilterEnable -> InputFilterEnable -> Bool
< :: InputFilterEnable -> InputFilterEnable -> Bool
$c< :: InputFilterEnable -> InputFilterEnable -> Bool
compare :: InputFilterEnable -> InputFilterEnable -> Ordering
$ccompare :: InputFilterEnable -> InputFilterEnable -> Ordering
Prelude.Ord,
      forall x. Rep InputFilterEnable x -> InputFilterEnable
forall x. InputFilterEnable -> Rep InputFilterEnable x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep InputFilterEnable x -> InputFilterEnable
$cfrom :: forall x. InputFilterEnable -> Rep InputFilterEnable x
Prelude.Generic
    )
  deriving newtype
    ( Eq InputFilterEnable
Int -> InputFilterEnable -> Int
InputFilterEnable -> Int
forall a. Eq a -> (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: InputFilterEnable -> Int
$chash :: InputFilterEnable -> Int
hashWithSalt :: Int -> InputFilterEnable -> Int
$chashWithSalt :: Int -> InputFilterEnable -> Int
Prelude.Hashable,
      InputFilterEnable -> ()
forall a. (a -> ()) -> NFData a
rnf :: InputFilterEnable -> ()
$crnf :: InputFilterEnable -> ()
Prelude.NFData,
      Text -> Either String InputFilterEnable
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String InputFilterEnable
$cfromText :: Text -> Either String InputFilterEnable
Data.FromText,
      InputFilterEnable -> Text
forall a. (a -> Text) -> ToText a
toText :: InputFilterEnable -> Text
$ctoText :: InputFilterEnable -> Text
Data.ToText,
      InputFilterEnable -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: InputFilterEnable -> ByteString
$ctoBS :: InputFilterEnable -> ByteString
Data.ToByteString,
      InputFilterEnable -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: InputFilterEnable -> ByteStringBuilder
$cbuild :: InputFilterEnable -> ByteStringBuilder
Data.ToLog,
      HeaderName -> InputFilterEnable -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> InputFilterEnable -> [Header]
$ctoHeader :: HeaderName -> InputFilterEnable -> [Header]
Data.ToHeader,
      InputFilterEnable -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: InputFilterEnable -> QueryString
$ctoQuery :: InputFilterEnable -> QueryString
Data.ToQuery,
      Value -> Parser [InputFilterEnable]
Value -> Parser InputFilterEnable
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [InputFilterEnable]
$cparseJSONList :: Value -> Parser [InputFilterEnable]
parseJSON :: Value -> Parser InputFilterEnable
$cparseJSON :: Value -> Parser InputFilterEnable
Data.FromJSON,
      FromJSONKeyFunction [InputFilterEnable]
FromJSONKeyFunction InputFilterEnable
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [InputFilterEnable]
$cfromJSONKeyList :: FromJSONKeyFunction [InputFilterEnable]
fromJSONKey :: FromJSONKeyFunction InputFilterEnable
$cfromJSONKey :: FromJSONKeyFunction InputFilterEnable
Data.FromJSONKey,
      [InputFilterEnable] -> Encoding
[InputFilterEnable] -> Value
InputFilterEnable -> Encoding
InputFilterEnable -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [InputFilterEnable] -> Encoding
$ctoEncodingList :: [InputFilterEnable] -> Encoding
toJSONList :: [InputFilterEnable] -> Value
$ctoJSONList :: [InputFilterEnable] -> Value
toEncoding :: InputFilterEnable -> Encoding
$ctoEncoding :: InputFilterEnable -> Encoding
toJSON :: InputFilterEnable -> Value
$ctoJSON :: InputFilterEnable -> Value
Data.ToJSON,
      ToJSONKeyFunction [InputFilterEnable]
ToJSONKeyFunction InputFilterEnable
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [InputFilterEnable]
$ctoJSONKeyList :: ToJSONKeyFunction [InputFilterEnable]
toJSONKey :: ToJSONKeyFunction InputFilterEnable
$ctoJSONKey :: ToJSONKeyFunction InputFilterEnable
Data.ToJSONKey,
      [Node] -> Either String InputFilterEnable
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String InputFilterEnable
$cparseXML :: [Node] -> Either String InputFilterEnable
Data.FromXML,
      InputFilterEnable -> XML
forall a. (a -> XML) -> ToXML a
toXML :: InputFilterEnable -> XML
$ctoXML :: InputFilterEnable -> XML
Data.ToXML
    )

pattern InputFilterEnable_AUTO :: InputFilterEnable
pattern $bInputFilterEnable_AUTO :: InputFilterEnable
$mInputFilterEnable_AUTO :: forall {r}. InputFilterEnable -> ((# #) -> r) -> ((# #) -> r) -> r
InputFilterEnable_AUTO = InputFilterEnable' "AUTO"

pattern InputFilterEnable_DISABLE :: InputFilterEnable
pattern $bInputFilterEnable_DISABLE :: InputFilterEnable
$mInputFilterEnable_DISABLE :: forall {r}. InputFilterEnable -> ((# #) -> r) -> ((# #) -> r) -> r
InputFilterEnable_DISABLE = InputFilterEnable' "DISABLE"

pattern InputFilterEnable_FORCE :: InputFilterEnable
pattern $bInputFilterEnable_FORCE :: InputFilterEnable
$mInputFilterEnable_FORCE :: forall {r}. InputFilterEnable -> ((# #) -> r) -> ((# #) -> r) -> r
InputFilterEnable_FORCE = InputFilterEnable' "FORCE"

{-# COMPLETE
  InputFilterEnable_AUTO,
  InputFilterEnable_DISABLE,
  InputFilterEnable_FORCE,
  InputFilterEnable'
  #-}