{-# 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.Glue.Types.LogicalOperator
-- 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.Glue.Types.LogicalOperator
  ( LogicalOperator
      ( ..,
        LogicalOperator_EQUALS
      ),
  )
where

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

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

pattern LogicalOperator_EQUALS :: LogicalOperator
pattern $bLogicalOperator_EQUALS :: LogicalOperator
$mLogicalOperator_EQUALS :: forall r. LogicalOperator -> (Void# -> r) -> (Void# -> r) -> r
LogicalOperator_EQUALS = LogicalOperator' "EQUALS"

{-# COMPLETE
  LogicalOperator_EQUALS,
  LogicalOperator'
  #-}