{-# 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.AppFlow.Types.VeevaConnectorOperator
-- 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.AppFlow.Types.VeevaConnectorOperator
  ( VeevaConnectorOperator
      ( ..,
        VeevaConnectorOperator_ADDITION,
        VeevaConnectorOperator_BETWEEN,
        VeevaConnectorOperator_CONTAINS,
        VeevaConnectorOperator_DIVISION,
        VeevaConnectorOperator_EQUAL_TO,
        VeevaConnectorOperator_GREATER_THAN,
        VeevaConnectorOperator_GREATER_THAN_OR_EQUAL_TO,
        VeevaConnectorOperator_LESS_THAN,
        VeevaConnectorOperator_LESS_THAN_OR_EQUAL_TO,
        VeevaConnectorOperator_MASK_ALL,
        VeevaConnectorOperator_MASK_FIRST_N,
        VeevaConnectorOperator_MASK_LAST_N,
        VeevaConnectorOperator_MULTIPLICATION,
        VeevaConnectorOperator_NOT_EQUAL_TO,
        VeevaConnectorOperator_NO_OP,
        VeevaConnectorOperator_PROJECTION,
        VeevaConnectorOperator_SUBTRACTION,
        VeevaConnectorOperator_VALIDATE_NON_NEGATIVE,
        VeevaConnectorOperator_VALIDATE_NON_NULL,
        VeevaConnectorOperator_VALIDATE_NON_ZERO,
        VeevaConnectorOperator_VALIDATE_NUMERIC
      ),
  )
where

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

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

pattern VeevaConnectorOperator_ADDITION :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_ADDITION :: VeevaConnectorOperator
$mVeevaConnectorOperator_ADDITION :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_ADDITION = VeevaConnectorOperator' "ADDITION"

pattern VeevaConnectorOperator_BETWEEN :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_BETWEEN :: VeevaConnectorOperator
$mVeevaConnectorOperator_BETWEEN :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_BETWEEN = VeevaConnectorOperator' "BETWEEN"

pattern VeevaConnectorOperator_CONTAINS :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_CONTAINS :: VeevaConnectorOperator
$mVeevaConnectorOperator_CONTAINS :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_CONTAINS = VeevaConnectorOperator' "CONTAINS"

pattern VeevaConnectorOperator_DIVISION :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_DIVISION :: VeevaConnectorOperator
$mVeevaConnectorOperator_DIVISION :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_DIVISION = VeevaConnectorOperator' "DIVISION"

pattern VeevaConnectorOperator_EQUAL_TO :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_EQUAL_TO :: VeevaConnectorOperator
$mVeevaConnectorOperator_EQUAL_TO :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_EQUAL_TO = VeevaConnectorOperator' "EQUAL_TO"

pattern VeevaConnectorOperator_GREATER_THAN :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_GREATER_THAN :: VeevaConnectorOperator
$mVeevaConnectorOperator_GREATER_THAN :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_GREATER_THAN = VeevaConnectorOperator' "GREATER_THAN"

pattern VeevaConnectorOperator_GREATER_THAN_OR_EQUAL_TO :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_GREATER_THAN_OR_EQUAL_TO :: VeevaConnectorOperator
$mVeevaConnectorOperator_GREATER_THAN_OR_EQUAL_TO :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_GREATER_THAN_OR_EQUAL_TO = VeevaConnectorOperator' "GREATER_THAN_OR_EQUAL_TO"

pattern VeevaConnectorOperator_LESS_THAN :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_LESS_THAN :: VeevaConnectorOperator
$mVeevaConnectorOperator_LESS_THAN :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_LESS_THAN = VeevaConnectorOperator' "LESS_THAN"

pattern VeevaConnectorOperator_LESS_THAN_OR_EQUAL_TO :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_LESS_THAN_OR_EQUAL_TO :: VeevaConnectorOperator
$mVeevaConnectorOperator_LESS_THAN_OR_EQUAL_TO :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_LESS_THAN_OR_EQUAL_TO = VeevaConnectorOperator' "LESS_THAN_OR_EQUAL_TO"

pattern VeevaConnectorOperator_MASK_ALL :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_MASK_ALL :: VeevaConnectorOperator
$mVeevaConnectorOperator_MASK_ALL :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_MASK_ALL = VeevaConnectorOperator' "MASK_ALL"

pattern VeevaConnectorOperator_MASK_FIRST_N :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_MASK_FIRST_N :: VeevaConnectorOperator
$mVeevaConnectorOperator_MASK_FIRST_N :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_MASK_FIRST_N = VeevaConnectorOperator' "MASK_FIRST_N"

pattern VeevaConnectorOperator_MASK_LAST_N :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_MASK_LAST_N :: VeevaConnectorOperator
$mVeevaConnectorOperator_MASK_LAST_N :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_MASK_LAST_N = VeevaConnectorOperator' "MASK_LAST_N"

pattern VeevaConnectorOperator_MULTIPLICATION :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_MULTIPLICATION :: VeevaConnectorOperator
$mVeevaConnectorOperator_MULTIPLICATION :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_MULTIPLICATION = VeevaConnectorOperator' "MULTIPLICATION"

pattern VeevaConnectorOperator_NOT_EQUAL_TO :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_NOT_EQUAL_TO :: VeevaConnectorOperator
$mVeevaConnectorOperator_NOT_EQUAL_TO :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_NOT_EQUAL_TO = VeevaConnectorOperator' "NOT_EQUAL_TO"

pattern VeevaConnectorOperator_NO_OP :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_NO_OP :: VeevaConnectorOperator
$mVeevaConnectorOperator_NO_OP :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_NO_OP = VeevaConnectorOperator' "NO_OP"

pattern VeevaConnectorOperator_PROJECTION :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_PROJECTION :: VeevaConnectorOperator
$mVeevaConnectorOperator_PROJECTION :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_PROJECTION = VeevaConnectorOperator' "PROJECTION"

pattern VeevaConnectorOperator_SUBTRACTION :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_SUBTRACTION :: VeevaConnectorOperator
$mVeevaConnectorOperator_SUBTRACTION :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_SUBTRACTION = VeevaConnectorOperator' "SUBTRACTION"

pattern VeevaConnectorOperator_VALIDATE_NON_NEGATIVE :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_VALIDATE_NON_NEGATIVE :: VeevaConnectorOperator
$mVeevaConnectorOperator_VALIDATE_NON_NEGATIVE :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_VALIDATE_NON_NEGATIVE = VeevaConnectorOperator' "VALIDATE_NON_NEGATIVE"

pattern VeevaConnectorOperator_VALIDATE_NON_NULL :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_VALIDATE_NON_NULL :: VeevaConnectorOperator
$mVeevaConnectorOperator_VALIDATE_NON_NULL :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_VALIDATE_NON_NULL = VeevaConnectorOperator' "VALIDATE_NON_NULL"

pattern VeevaConnectorOperator_VALIDATE_NON_ZERO :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_VALIDATE_NON_ZERO :: VeevaConnectorOperator
$mVeevaConnectorOperator_VALIDATE_NON_ZERO :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_VALIDATE_NON_ZERO = VeevaConnectorOperator' "VALIDATE_NON_ZERO"

pattern VeevaConnectorOperator_VALIDATE_NUMERIC :: VeevaConnectorOperator
pattern $bVeevaConnectorOperator_VALIDATE_NUMERIC :: VeevaConnectorOperator
$mVeevaConnectorOperator_VALIDATE_NUMERIC :: forall {r}.
VeevaConnectorOperator -> ((# #) -> r) -> ((# #) -> r) -> r
VeevaConnectorOperator_VALIDATE_NUMERIC = VeevaConnectorOperator' "VALIDATE_NUMERIC"

{-# COMPLETE
  VeevaConnectorOperator_ADDITION,
  VeevaConnectorOperator_BETWEEN,
  VeevaConnectorOperator_CONTAINS,
  VeevaConnectorOperator_DIVISION,
  VeevaConnectorOperator_EQUAL_TO,
  VeevaConnectorOperator_GREATER_THAN,
  VeevaConnectorOperator_GREATER_THAN_OR_EQUAL_TO,
  VeevaConnectorOperator_LESS_THAN,
  VeevaConnectorOperator_LESS_THAN_OR_EQUAL_TO,
  VeevaConnectorOperator_MASK_ALL,
  VeevaConnectorOperator_MASK_FIRST_N,
  VeevaConnectorOperator_MASK_LAST_N,
  VeevaConnectorOperator_MULTIPLICATION,
  VeevaConnectorOperator_NOT_EQUAL_TO,
  VeevaConnectorOperator_NO_OP,
  VeevaConnectorOperator_PROJECTION,
  VeevaConnectorOperator_SUBTRACTION,
  VeevaConnectorOperator_VALIDATE_NON_NEGATIVE,
  VeevaConnectorOperator_VALIDATE_NON_NULL,
  VeevaConnectorOperator_VALIDATE_NON_ZERO,
  VeevaConnectorOperator_VALIDATE_NUMERIC,
  VeevaConnectorOperator'
  #-}