{-# 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.MGN.Types.LaunchStatus
-- 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.MGN.Types.LaunchStatus
  ( LaunchStatus
      ( ..,
        LaunchStatus_FAILED,
        LaunchStatus_IN_PROGRESS,
        LaunchStatus_LAUNCHED,
        LaunchStatus_PENDING,
        LaunchStatus_TERMINATED
      ),
  )
where

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

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

pattern LaunchStatus_FAILED :: LaunchStatus
pattern $bLaunchStatus_FAILED :: LaunchStatus
$mLaunchStatus_FAILED :: forall r. LaunchStatus -> (Void# -> r) -> (Void# -> r) -> r
LaunchStatus_FAILED = LaunchStatus' "FAILED"

pattern LaunchStatus_IN_PROGRESS :: LaunchStatus
pattern $bLaunchStatus_IN_PROGRESS :: LaunchStatus
$mLaunchStatus_IN_PROGRESS :: forall r. LaunchStatus -> (Void# -> r) -> (Void# -> r) -> r
LaunchStatus_IN_PROGRESS = LaunchStatus' "IN_PROGRESS"

pattern LaunchStatus_LAUNCHED :: LaunchStatus
pattern $bLaunchStatus_LAUNCHED :: LaunchStatus
$mLaunchStatus_LAUNCHED :: forall r. LaunchStatus -> (Void# -> r) -> (Void# -> r) -> r
LaunchStatus_LAUNCHED = LaunchStatus' "LAUNCHED"

pattern LaunchStatus_PENDING :: LaunchStatus
pattern $bLaunchStatus_PENDING :: LaunchStatus
$mLaunchStatus_PENDING :: forall r. LaunchStatus -> (Void# -> r) -> (Void# -> r) -> r
LaunchStatus_PENDING = LaunchStatus' "PENDING"

pattern LaunchStatus_TERMINATED :: LaunchStatus
pattern $bLaunchStatus_TERMINATED :: LaunchStatus
$mLaunchStatus_TERMINATED :: forall r. LaunchStatus -> (Void# -> r) -> (Void# -> r) -> r
LaunchStatus_TERMINATED = LaunchStatus' "TERMINATED"

{-# COMPLETE
  LaunchStatus_FAILED,
  LaunchStatus_IN_PROGRESS,
  LaunchStatus_LAUNCHED,
  LaunchStatus_PENDING,
  LaunchStatus_TERMINATED,
  LaunchStatus'
  #-}