{-# 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.EMR.Types.ExecutionEngineType
-- 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.EMR.Types.ExecutionEngineType
  ( ExecutionEngineType
      ( ..,
        ExecutionEngineType_EMR
      ),
  )
where

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

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

pattern ExecutionEngineType_EMR :: ExecutionEngineType
pattern $bExecutionEngineType_EMR :: ExecutionEngineType
$mExecutionEngineType_EMR :: forall r. ExecutionEngineType -> (Void# -> r) -> (Void# -> r) -> r
ExecutionEngineType_EMR = ExecutionEngineType' "EMR"

{-# COMPLETE
  ExecutionEngineType_EMR,
  ExecutionEngineType'
  #-}