{-# 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.ElasticSearch.Types.ESWarmPartitionInstanceType
-- 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.ElasticSearch.Types.ESWarmPartitionInstanceType
  ( ESWarmPartitionInstanceType
      ( ..,
        ESWarmPartitionInstanceType_Ultrawarm1_large_elasticsearch,
        ESWarmPartitionInstanceType_Ultrawarm1_medium_elasticsearch
      ),
  )
where

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

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

pattern ESWarmPartitionInstanceType_Ultrawarm1_large_elasticsearch :: ESWarmPartitionInstanceType
pattern $bESWarmPartitionInstanceType_Ultrawarm1_large_elasticsearch :: ESWarmPartitionInstanceType
$mESWarmPartitionInstanceType_Ultrawarm1_large_elasticsearch :: forall r.
ESWarmPartitionInstanceType -> (Void# -> r) -> (Void# -> r) -> r
ESWarmPartitionInstanceType_Ultrawarm1_large_elasticsearch = ESWarmPartitionInstanceType' "ultrawarm1.large.elasticsearch"

pattern ESWarmPartitionInstanceType_Ultrawarm1_medium_elasticsearch :: ESWarmPartitionInstanceType
pattern $bESWarmPartitionInstanceType_Ultrawarm1_medium_elasticsearch :: ESWarmPartitionInstanceType
$mESWarmPartitionInstanceType_Ultrawarm1_medium_elasticsearch :: forall r.
ESWarmPartitionInstanceType -> (Void# -> r) -> (Void# -> r) -> r
ESWarmPartitionInstanceType_Ultrawarm1_medium_elasticsearch = ESWarmPartitionInstanceType' "ultrawarm1.medium.elasticsearch"

{-# COMPLETE
  ESWarmPartitionInstanceType_Ultrawarm1_large_elasticsearch,
  ESWarmPartitionInstanceType_Ultrawarm1_medium_elasticsearch,
  ESWarmPartitionInstanceType'
  #-}