{-# 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.DeviceFarm.Types.RuleOperator
-- 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.DeviceFarm.Types.RuleOperator
  ( RuleOperator
      ( ..,
        RuleOperator_CONTAINS,
        RuleOperator_EQUALS,
        RuleOperator_GREATER_THAN,
        RuleOperator_GREATER_THAN_OR_EQUALS,
        RuleOperator_IN,
        RuleOperator_LESS_THAN,
        RuleOperator_LESS_THAN_OR_EQUALS,
        RuleOperator_NOT_IN
      ),
  )
where

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

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

pattern RuleOperator_CONTAINS :: RuleOperator
pattern $bRuleOperator_CONTAINS :: RuleOperator
$mRuleOperator_CONTAINS :: forall r. RuleOperator -> (Void# -> r) -> (Void# -> r) -> r
RuleOperator_CONTAINS = RuleOperator' "CONTAINS"

pattern RuleOperator_EQUALS :: RuleOperator
pattern $bRuleOperator_EQUALS :: RuleOperator
$mRuleOperator_EQUALS :: forall r. RuleOperator -> (Void# -> r) -> (Void# -> r) -> r
RuleOperator_EQUALS = RuleOperator' "EQUALS"

pattern RuleOperator_GREATER_THAN :: RuleOperator
pattern $bRuleOperator_GREATER_THAN :: RuleOperator
$mRuleOperator_GREATER_THAN :: forall r. RuleOperator -> (Void# -> r) -> (Void# -> r) -> r
RuleOperator_GREATER_THAN = RuleOperator' "GREATER_THAN"

pattern RuleOperator_GREATER_THAN_OR_EQUALS :: RuleOperator
pattern $bRuleOperator_GREATER_THAN_OR_EQUALS :: RuleOperator
$mRuleOperator_GREATER_THAN_OR_EQUALS :: forall r. RuleOperator -> (Void# -> r) -> (Void# -> r) -> r
RuleOperator_GREATER_THAN_OR_EQUALS = RuleOperator' "GREATER_THAN_OR_EQUALS"

pattern RuleOperator_IN :: RuleOperator
pattern $bRuleOperator_IN :: RuleOperator
$mRuleOperator_IN :: forall r. RuleOperator -> (Void# -> r) -> (Void# -> r) -> r
RuleOperator_IN = RuleOperator' "IN"

pattern RuleOperator_LESS_THAN :: RuleOperator
pattern $bRuleOperator_LESS_THAN :: RuleOperator
$mRuleOperator_LESS_THAN :: forall r. RuleOperator -> (Void# -> r) -> (Void# -> r) -> r
RuleOperator_LESS_THAN = RuleOperator' "LESS_THAN"

pattern RuleOperator_LESS_THAN_OR_EQUALS :: RuleOperator
pattern $bRuleOperator_LESS_THAN_OR_EQUALS :: RuleOperator
$mRuleOperator_LESS_THAN_OR_EQUALS :: forall r. RuleOperator -> (Void# -> r) -> (Void# -> r) -> r
RuleOperator_LESS_THAN_OR_EQUALS = RuleOperator' "LESS_THAN_OR_EQUALS"

pattern RuleOperator_NOT_IN :: RuleOperator
pattern $bRuleOperator_NOT_IN :: RuleOperator
$mRuleOperator_NOT_IN :: forall r. RuleOperator -> (Void# -> r) -> (Void# -> r) -> r
RuleOperator_NOT_IN = RuleOperator' "NOT_IN"

{-# COMPLETE
  RuleOperator_CONTAINS,
  RuleOperator_EQUALS,
  RuleOperator_GREATER_THAN,
  RuleOperator_GREATER_THAN_OR_EQUALS,
  RuleOperator_IN,
  RuleOperator_LESS_THAN,
  RuleOperator_LESS_THAN_OR_EQUALS,
  RuleOperator_NOT_IN,
  RuleOperator'
  #-}