{-# 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.MechanicalTurk.Types.Comparator
-- 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.MechanicalTurk.Types.Comparator
  ( Comparator
      ( ..,
        Comparator_DoesNotExist,
        Comparator_EqualTo,
        Comparator_Exists,
        Comparator_GreaterThan,
        Comparator_GreaterThanOrEqualTo,
        Comparator_In,
        Comparator_LessThan,
        Comparator_LessThanOrEqualTo,
        Comparator_NotEqualTo,
        Comparator_NotIn
      ),
  )
where

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

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

pattern Comparator_DoesNotExist :: Comparator
pattern $bComparator_DoesNotExist :: Comparator
$mComparator_DoesNotExist :: forall r. Comparator -> (Void# -> r) -> (Void# -> r) -> r
Comparator_DoesNotExist = Comparator' "DoesNotExist"

pattern Comparator_EqualTo :: Comparator
pattern $bComparator_EqualTo :: Comparator
$mComparator_EqualTo :: forall r. Comparator -> (Void# -> r) -> (Void# -> r) -> r
Comparator_EqualTo = Comparator' "EqualTo"

pattern Comparator_Exists :: Comparator
pattern $bComparator_Exists :: Comparator
$mComparator_Exists :: forall r. Comparator -> (Void# -> r) -> (Void# -> r) -> r
Comparator_Exists = Comparator' "Exists"

pattern Comparator_GreaterThan :: Comparator
pattern $bComparator_GreaterThan :: Comparator
$mComparator_GreaterThan :: forall r. Comparator -> (Void# -> r) -> (Void# -> r) -> r
Comparator_GreaterThan = Comparator' "GreaterThan"

pattern Comparator_GreaterThanOrEqualTo :: Comparator
pattern $bComparator_GreaterThanOrEqualTo :: Comparator
$mComparator_GreaterThanOrEqualTo :: forall r. Comparator -> (Void# -> r) -> (Void# -> r) -> r
Comparator_GreaterThanOrEqualTo = Comparator' "GreaterThanOrEqualTo"

pattern Comparator_In :: Comparator
pattern $bComparator_In :: Comparator
$mComparator_In :: forall r. Comparator -> (Void# -> r) -> (Void# -> r) -> r
Comparator_In = Comparator' "In"

pattern Comparator_LessThan :: Comparator
pattern $bComparator_LessThan :: Comparator
$mComparator_LessThan :: forall r. Comparator -> (Void# -> r) -> (Void# -> r) -> r
Comparator_LessThan = Comparator' "LessThan"

pattern Comparator_LessThanOrEqualTo :: Comparator
pattern $bComparator_LessThanOrEqualTo :: Comparator
$mComparator_LessThanOrEqualTo :: forall r. Comparator -> (Void# -> r) -> (Void# -> r) -> r
Comparator_LessThanOrEqualTo = Comparator' "LessThanOrEqualTo"

pattern Comparator_NotEqualTo :: Comparator
pattern $bComparator_NotEqualTo :: Comparator
$mComparator_NotEqualTo :: forall r. Comparator -> (Void# -> r) -> (Void# -> r) -> r
Comparator_NotEqualTo = Comparator' "NotEqualTo"

pattern Comparator_NotIn :: Comparator
pattern $bComparator_NotIn :: Comparator
$mComparator_NotIn :: forall r. Comparator -> (Void# -> r) -> (Void# -> r) -> r
Comparator_NotIn = Comparator' "NotIn"

{-# COMPLETE
  Comparator_DoesNotExist,
  Comparator_EqualTo,
  Comparator_Exists,
  Comparator_GreaterThan,
  Comparator_GreaterThanOrEqualTo,
  Comparator_In,
  Comparator_LessThan,
  Comparator_LessThanOrEqualTo,
  Comparator_NotEqualTo,
  Comparator_NotIn,
  Comparator'
  #-}