{-# 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.EC2.Types.ReservedInstanceState
-- 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.EC2.Types.ReservedInstanceState
  ( ReservedInstanceState
      ( ..,
        ReservedInstanceState_Active,
        ReservedInstanceState_Payment_failed,
        ReservedInstanceState_Payment_pending,
        ReservedInstanceState_Queued,
        ReservedInstanceState_Queued_deleted,
        ReservedInstanceState_Retired
      ),
  )
where

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

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

pattern ReservedInstanceState_Active :: ReservedInstanceState
pattern $bReservedInstanceState_Active :: ReservedInstanceState
$mReservedInstanceState_Active :: forall {r}.
ReservedInstanceState -> ((# #) -> r) -> ((# #) -> r) -> r
ReservedInstanceState_Active = ReservedInstanceState' "active"

pattern ReservedInstanceState_Payment_failed :: ReservedInstanceState
pattern $bReservedInstanceState_Payment_failed :: ReservedInstanceState
$mReservedInstanceState_Payment_failed :: forall {r}.
ReservedInstanceState -> ((# #) -> r) -> ((# #) -> r) -> r
ReservedInstanceState_Payment_failed = ReservedInstanceState' "payment-failed"

pattern ReservedInstanceState_Payment_pending :: ReservedInstanceState
pattern $bReservedInstanceState_Payment_pending :: ReservedInstanceState
$mReservedInstanceState_Payment_pending :: forall {r}.
ReservedInstanceState -> ((# #) -> r) -> ((# #) -> r) -> r
ReservedInstanceState_Payment_pending = ReservedInstanceState' "payment-pending"

pattern ReservedInstanceState_Queued :: ReservedInstanceState
pattern $bReservedInstanceState_Queued :: ReservedInstanceState
$mReservedInstanceState_Queued :: forall {r}.
ReservedInstanceState -> ((# #) -> r) -> ((# #) -> r) -> r
ReservedInstanceState_Queued = ReservedInstanceState' "queued"

pattern ReservedInstanceState_Queued_deleted :: ReservedInstanceState
pattern $bReservedInstanceState_Queued_deleted :: ReservedInstanceState
$mReservedInstanceState_Queued_deleted :: forall {r}.
ReservedInstanceState -> ((# #) -> r) -> ((# #) -> r) -> r
ReservedInstanceState_Queued_deleted = ReservedInstanceState' "queued-deleted"

pattern ReservedInstanceState_Retired :: ReservedInstanceState
pattern $bReservedInstanceState_Retired :: ReservedInstanceState
$mReservedInstanceState_Retired :: forall {r}.
ReservedInstanceState -> ((# #) -> r) -> ((# #) -> r) -> r
ReservedInstanceState_Retired = ReservedInstanceState' "retired"

{-# COMPLETE
  ReservedInstanceState_Active,
  ReservedInstanceState_Payment_failed,
  ReservedInstanceState_Payment_pending,
  ReservedInstanceState_Queued,
  ReservedInstanceState_Queued_deleted,
  ReservedInstanceState_Retired,
  ReservedInstanceState'
  #-}