{-# 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.GameLift.Types.ComparisonOperatorType
-- 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.GameLift.Types.ComparisonOperatorType
  ( ComparisonOperatorType
      ( ..,
        ComparisonOperatorType_GreaterThanOrEqualToThreshold,
        ComparisonOperatorType_GreaterThanThreshold,
        ComparisonOperatorType_LessThanOrEqualToThreshold,
        ComparisonOperatorType_LessThanThreshold
      ),
  )
where

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

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

pattern ComparisonOperatorType_GreaterThanOrEqualToThreshold :: ComparisonOperatorType
pattern $bComparisonOperatorType_GreaterThanOrEqualToThreshold :: ComparisonOperatorType
$mComparisonOperatorType_GreaterThanOrEqualToThreshold :: forall r.
ComparisonOperatorType -> (Void# -> r) -> (Void# -> r) -> r
ComparisonOperatorType_GreaterThanOrEqualToThreshold = ComparisonOperatorType' "GreaterThanOrEqualToThreshold"

pattern ComparisonOperatorType_GreaterThanThreshold :: ComparisonOperatorType
pattern $bComparisonOperatorType_GreaterThanThreshold :: ComparisonOperatorType
$mComparisonOperatorType_GreaterThanThreshold :: forall r.
ComparisonOperatorType -> (Void# -> r) -> (Void# -> r) -> r
ComparisonOperatorType_GreaterThanThreshold = ComparisonOperatorType' "GreaterThanThreshold"

pattern ComparisonOperatorType_LessThanOrEqualToThreshold :: ComparisonOperatorType
pattern $bComparisonOperatorType_LessThanOrEqualToThreshold :: ComparisonOperatorType
$mComparisonOperatorType_LessThanOrEqualToThreshold :: forall r.
ComparisonOperatorType -> (Void# -> r) -> (Void# -> r) -> r
ComparisonOperatorType_LessThanOrEqualToThreshold = ComparisonOperatorType' "LessThanOrEqualToThreshold"

pattern ComparisonOperatorType_LessThanThreshold :: ComparisonOperatorType
pattern $bComparisonOperatorType_LessThanThreshold :: ComparisonOperatorType
$mComparisonOperatorType_LessThanThreshold :: forall r.
ComparisonOperatorType -> (Void# -> r) -> (Void# -> r) -> r
ComparisonOperatorType_LessThanThreshold = ComparisonOperatorType' "LessThanThreshold"

{-# COMPLETE
  ComparisonOperatorType_GreaterThanOrEqualToThreshold,
  ComparisonOperatorType_GreaterThanThreshold,
  ComparisonOperatorType_LessThanOrEqualToThreshold,
  ComparisonOperatorType_LessThanThreshold,
  ComparisonOperatorType'
  #-}