{-# 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.ComputeOptimizer.Types.Status
-- 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.ComputeOptimizer.Types.Status
  ( Status
      ( ..,
        Status_Active,
        Status_Failed,
        Status_Inactive,
        Status_Pending
      ),
  )
where

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

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

pattern Status_Active :: Status
pattern $bStatus_Active :: Status
$mStatus_Active :: forall r. Status -> (Void# -> r) -> (Void# -> r) -> r
Status_Active = Status' "Active"

pattern Status_Failed :: Status
pattern $bStatus_Failed :: Status
$mStatus_Failed :: forall r. Status -> (Void# -> r) -> (Void# -> r) -> r
Status_Failed = Status' "Failed"

pattern Status_Inactive :: Status
pattern $bStatus_Inactive :: Status
$mStatus_Inactive :: forall r. Status -> (Void# -> r) -> (Void# -> r) -> r
Status_Inactive = Status' "Inactive"

pattern Status_Pending :: Status
pattern $bStatus_Pending :: Status
$mStatus_Pending :: forall r. Status -> (Void# -> r) -> (Void# -> r) -> r
Status_Pending = Status' "Pending"

{-# COMPLETE
  Status_Active,
  Status_Failed,
  Status_Inactive,
  Status_Pending,
  Status'
  #-}