{-# 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.AutoScaling.Types.InstanceRefreshStatus
-- 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.AutoScaling.Types.InstanceRefreshStatus
  ( InstanceRefreshStatus
      ( ..,
        InstanceRefreshStatus_Cancelled,
        InstanceRefreshStatus_Cancelling,
        InstanceRefreshStatus_Failed,
        InstanceRefreshStatus_InProgress,
        InstanceRefreshStatus_Pending,
        InstanceRefreshStatus_Successful
      ),
  )
where

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

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

pattern InstanceRefreshStatus_Cancelled :: InstanceRefreshStatus
pattern $bInstanceRefreshStatus_Cancelled :: InstanceRefreshStatus
$mInstanceRefreshStatus_Cancelled :: forall r.
InstanceRefreshStatus -> (Void# -> r) -> (Void# -> r) -> r
InstanceRefreshStatus_Cancelled = InstanceRefreshStatus' "Cancelled"

pattern InstanceRefreshStatus_Cancelling :: InstanceRefreshStatus
pattern $bInstanceRefreshStatus_Cancelling :: InstanceRefreshStatus
$mInstanceRefreshStatus_Cancelling :: forall r.
InstanceRefreshStatus -> (Void# -> r) -> (Void# -> r) -> r
InstanceRefreshStatus_Cancelling = InstanceRefreshStatus' "Cancelling"

pattern InstanceRefreshStatus_Failed :: InstanceRefreshStatus
pattern $bInstanceRefreshStatus_Failed :: InstanceRefreshStatus
$mInstanceRefreshStatus_Failed :: forall r.
InstanceRefreshStatus -> (Void# -> r) -> (Void# -> r) -> r
InstanceRefreshStatus_Failed = InstanceRefreshStatus' "Failed"

pattern InstanceRefreshStatus_InProgress :: InstanceRefreshStatus
pattern $bInstanceRefreshStatus_InProgress :: InstanceRefreshStatus
$mInstanceRefreshStatus_InProgress :: forall r.
InstanceRefreshStatus -> (Void# -> r) -> (Void# -> r) -> r
InstanceRefreshStatus_InProgress = InstanceRefreshStatus' "InProgress"

pattern InstanceRefreshStatus_Pending :: InstanceRefreshStatus
pattern $bInstanceRefreshStatus_Pending :: InstanceRefreshStatus
$mInstanceRefreshStatus_Pending :: forall r.
InstanceRefreshStatus -> (Void# -> r) -> (Void# -> r) -> r
InstanceRefreshStatus_Pending = InstanceRefreshStatus' "Pending"

pattern InstanceRefreshStatus_Successful :: InstanceRefreshStatus
pattern $bInstanceRefreshStatus_Successful :: InstanceRefreshStatus
$mInstanceRefreshStatus_Successful :: forall r.
InstanceRefreshStatus -> (Void# -> r) -> (Void# -> r) -> r
InstanceRefreshStatus_Successful = InstanceRefreshStatus' "Successful"

{-# COMPLETE
  InstanceRefreshStatus_Cancelled,
  InstanceRefreshStatus_Cancelling,
  InstanceRefreshStatus_Failed,
  InstanceRefreshStatus_InProgress,
  InstanceRefreshStatus_Pending,
  InstanceRefreshStatus_Successful,
  InstanceRefreshStatus'
  #-}