{-# 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.IoTEvents.Types.EvaluationMethod
-- 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.IoTEvents.Types.EvaluationMethod
  ( EvaluationMethod
      ( ..,
        EvaluationMethod_BATCH,
        EvaluationMethod_SERIAL
      ),
  )
where

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

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

pattern EvaluationMethod_BATCH :: EvaluationMethod
pattern $bEvaluationMethod_BATCH :: EvaluationMethod
$mEvaluationMethod_BATCH :: forall r. EvaluationMethod -> (Void# -> r) -> (Void# -> r) -> r
EvaluationMethod_BATCH = EvaluationMethod' "BATCH"

pattern EvaluationMethod_SERIAL :: EvaluationMethod
pattern $bEvaluationMethod_SERIAL :: EvaluationMethod
$mEvaluationMethod_SERIAL :: forall r. EvaluationMethod -> (Void# -> r) -> (Void# -> r) -> r
EvaluationMethod_SERIAL = EvaluationMethod' "SERIAL"

{-# COMPLETE
  EvaluationMethod_BATCH,
  EvaluationMethod_SERIAL,
  EvaluationMethod'
  #-}