{-# 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-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- 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.Data as Data
import qualified Amazonka.Prelude as Prelude

newtype RuleOperator = RuleOperator'
  { RuleOperator -> Text
fromRuleOperator ::
      Data.Text
  }
  deriving stock
    ( Int -> RuleOperator -> ShowS
[RuleOperator] -> ShowS
RuleOperator -> String
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]
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
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
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
Prelude.Ord,
      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
    ( Eq RuleOperator
Int -> RuleOperator -> Int
RuleOperator -> Int
forall a. Eq 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 -> ()
forall a. (a -> ()) -> NFData a
rnf :: RuleOperator -> ()
$crnf :: RuleOperator -> ()
Prelude.NFData,
      Text -> Either String RuleOperator
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String RuleOperator
$cfromText :: Text -> Either String RuleOperator
Data.FromText,
      RuleOperator -> Text
forall a. (a -> Text) -> ToText a
toText :: RuleOperator -> Text
$ctoText :: RuleOperator -> Text
Data.ToText,
      RuleOperator -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: RuleOperator -> ByteString
$ctoBS :: RuleOperator -> ByteString
Data.ToByteString,
      RuleOperator -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: RuleOperator -> ByteStringBuilder
$cbuild :: RuleOperator -> ByteStringBuilder
Data.ToLog,
      HeaderName -> RuleOperator -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> RuleOperator -> [Header]
$ctoHeader :: HeaderName -> RuleOperator -> [Header]
Data.ToHeader,
      RuleOperator -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: RuleOperator -> QueryString
$ctoQuery :: RuleOperator -> QueryString
Data.ToQuery,
      Value -> Parser [RuleOperator]
Value -> Parser 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
Data.FromJSON,
      FromJSONKeyFunction [RuleOperator]
FromJSONKeyFunction RuleOperator
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [RuleOperator]
$cfromJSONKeyList :: FromJSONKeyFunction [RuleOperator]
fromJSONKey :: FromJSONKeyFunction RuleOperator
$cfromJSONKey :: FromJSONKeyFunction RuleOperator
Data.FromJSONKey,
      [RuleOperator] -> Encoding
[RuleOperator] -> Value
RuleOperator -> Encoding
RuleOperator -> Value
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
Data.ToJSON,
      ToJSONKeyFunction [RuleOperator]
ToJSONKeyFunction RuleOperator
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [RuleOperator]
$ctoJSONKeyList :: ToJSONKeyFunction [RuleOperator]
toJSONKey :: ToJSONKeyFunction RuleOperator
$ctoJSONKey :: ToJSONKeyFunction RuleOperator
Data.ToJSONKey,
      [Node] -> Either String RuleOperator
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String RuleOperator
$cparseXML :: [Node] -> Either String RuleOperator
Data.FromXML,
      RuleOperator -> XML
forall a. (a -> XML) -> ToXML a
toXML :: RuleOperator -> XML
$ctoXML :: RuleOperator -> XML
Data.ToXML
    )

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

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

pattern RuleOperator_GREATER_THAN :: RuleOperator
pattern $bRuleOperator_GREATER_THAN :: RuleOperator
$mRuleOperator_GREATER_THAN :: forall {r}. RuleOperator -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> r) -> r
RuleOperator_IN = RuleOperator' "IN"

pattern RuleOperator_LESS_THAN :: RuleOperator
pattern $bRuleOperator_LESS_THAN :: RuleOperator
$mRuleOperator_LESS_THAN :: forall {r}. RuleOperator -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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 -> ((# #) -> r) -> ((# #) -> 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'
  #-}