{-# 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.InputDenoiseFilter
-- 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.InputDenoiseFilter
  ( InputDenoiseFilter
      ( ..,
        InputDenoiseFilter_DISABLED,
        InputDenoiseFilter_ENABLED
      ),
  )
where

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

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

pattern InputDenoiseFilter_DISABLED :: InputDenoiseFilter
pattern $bInputDenoiseFilter_DISABLED :: InputDenoiseFilter
$mInputDenoiseFilter_DISABLED :: forall r. InputDenoiseFilter -> (Void# -> r) -> (Void# -> r) -> r
InputDenoiseFilter_DISABLED = InputDenoiseFilter' "DISABLED"

pattern InputDenoiseFilter_ENABLED :: InputDenoiseFilter
pattern $bInputDenoiseFilter_ENABLED :: InputDenoiseFilter
$mInputDenoiseFilter_ENABLED :: forall r. InputDenoiseFilter -> (Void# -> r) -> (Void# -> r) -> r
InputDenoiseFilter_ENABLED = InputDenoiseFilter' "ENABLED"

{-# COMPLETE
  InputDenoiseFilter_DISABLED,
  InputDenoiseFilter_ENABLED,
  InputDenoiseFilter'
  #-}