{-# 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.Transcribe.Types.VocabularyFilterMethod
-- 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.Transcribe.Types.VocabularyFilterMethod
  ( VocabularyFilterMethod
      ( ..,
        VocabularyFilterMethod_Mask,
        VocabularyFilterMethod_Remove,
        VocabularyFilterMethod_Tag
      ),
  )
where

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

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

pattern VocabularyFilterMethod_Mask :: VocabularyFilterMethod
pattern $bVocabularyFilterMethod_Mask :: VocabularyFilterMethod
$mVocabularyFilterMethod_Mask :: forall r.
VocabularyFilterMethod -> (Void# -> r) -> (Void# -> r) -> r
VocabularyFilterMethod_Mask = VocabularyFilterMethod' "mask"

pattern VocabularyFilterMethod_Remove :: VocabularyFilterMethod
pattern $bVocabularyFilterMethod_Remove :: VocabularyFilterMethod
$mVocabularyFilterMethod_Remove :: forall r.
VocabularyFilterMethod -> (Void# -> r) -> (Void# -> r) -> r
VocabularyFilterMethod_Remove = VocabularyFilterMethod' "remove"

pattern VocabularyFilterMethod_Tag :: VocabularyFilterMethod
pattern $bVocabularyFilterMethod_Tag :: VocabularyFilterMethod
$mVocabularyFilterMethod_Tag :: forall r.
VocabularyFilterMethod -> (Void# -> r) -> (Void# -> r) -> r
VocabularyFilterMethod_Tag = VocabularyFilterMethod' "tag"

{-# COMPLETE
  VocabularyFilterMethod_Mask,
  VocabularyFilterMethod_Remove,
  VocabularyFilterMethod_Tag,
  VocabularyFilterMethod'
  #-}