{-# 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.WorkSpaces.Types.WorkspaceState
-- 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.WorkSpaces.Types.WorkspaceState
  ( WorkspaceState
      ( ..,
        WorkspaceState_ADMIN_MAINTENANCE,
        WorkspaceState_AVAILABLE,
        WorkspaceState_ERROR,
        WorkspaceState_IMPAIRED,
        WorkspaceState_MAINTENANCE,
        WorkspaceState_PENDING,
        WorkspaceState_REBOOTING,
        WorkspaceState_REBUILDING,
        WorkspaceState_RESTORING,
        WorkspaceState_STARTING,
        WorkspaceState_STOPPED,
        WorkspaceState_STOPPING,
        WorkspaceState_SUSPENDED,
        WorkspaceState_TERMINATED,
        WorkspaceState_TERMINATING,
        WorkspaceState_UNHEALTHY,
        WorkspaceState_UPDATING
      ),
  )
where

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

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

pattern WorkspaceState_ADMIN_MAINTENANCE :: WorkspaceState
pattern $bWorkspaceState_ADMIN_MAINTENANCE :: WorkspaceState
$mWorkspaceState_ADMIN_MAINTENANCE :: forall r. WorkspaceState -> (Void# -> r) -> (Void# -> r) -> r
WorkspaceState_ADMIN_MAINTENANCE = WorkspaceState' "ADMIN_MAINTENANCE"

pattern WorkspaceState_AVAILABLE :: WorkspaceState
pattern $bWorkspaceState_AVAILABLE :: WorkspaceState
$mWorkspaceState_AVAILABLE :: forall r. WorkspaceState -> (Void# -> r) -> (Void# -> r) -> r
WorkspaceState_AVAILABLE = WorkspaceState' "AVAILABLE"

pattern WorkspaceState_ERROR :: WorkspaceState
pattern $bWorkspaceState_ERROR :: WorkspaceState
$mWorkspaceState_ERROR :: forall r. WorkspaceState -> (Void# -> r) -> (Void# -> r) -> r
WorkspaceState_ERROR = WorkspaceState' "ERROR"

pattern WorkspaceState_IMPAIRED :: WorkspaceState
pattern $bWorkspaceState_IMPAIRED :: WorkspaceState
$mWorkspaceState_IMPAIRED :: forall r. WorkspaceState -> (Void# -> r) -> (Void# -> r) -> r
WorkspaceState_IMPAIRED = WorkspaceState' "IMPAIRED"

pattern WorkspaceState_MAINTENANCE :: WorkspaceState
pattern $bWorkspaceState_MAINTENANCE :: WorkspaceState
$mWorkspaceState_MAINTENANCE :: forall r. WorkspaceState -> (Void# -> r) -> (Void# -> r) -> r
WorkspaceState_MAINTENANCE = WorkspaceState' "MAINTENANCE"

pattern WorkspaceState_PENDING :: WorkspaceState
pattern $bWorkspaceState_PENDING :: WorkspaceState
$mWorkspaceState_PENDING :: forall r. WorkspaceState -> (Void# -> r) -> (Void# -> r) -> r
WorkspaceState_PENDING = WorkspaceState' "PENDING"

pattern WorkspaceState_REBOOTING :: WorkspaceState
pattern $bWorkspaceState_REBOOTING :: WorkspaceState
$mWorkspaceState_REBOOTING :: forall r. WorkspaceState -> (Void# -> r) -> (Void# -> r) -> r
WorkspaceState_REBOOTING = WorkspaceState' "REBOOTING"

pattern WorkspaceState_REBUILDING :: WorkspaceState
pattern $bWorkspaceState_REBUILDING :: WorkspaceState
$mWorkspaceState_REBUILDING :: forall r. WorkspaceState -> (Void# -> r) -> (Void# -> r) -> r
WorkspaceState_REBUILDING = WorkspaceState' "REBUILDING"

pattern WorkspaceState_RESTORING :: WorkspaceState
pattern $bWorkspaceState_RESTORING :: WorkspaceState
$mWorkspaceState_RESTORING :: forall r. WorkspaceState -> (Void# -> r) -> (Void# -> r) -> r
WorkspaceState_RESTORING = WorkspaceState' "RESTORING"

pattern WorkspaceState_STARTING :: WorkspaceState
pattern $bWorkspaceState_STARTING :: WorkspaceState
$mWorkspaceState_STARTING :: forall r. WorkspaceState -> (Void# -> r) -> (Void# -> r) -> r
WorkspaceState_STARTING = WorkspaceState' "STARTING"

pattern WorkspaceState_STOPPED :: WorkspaceState
pattern $bWorkspaceState_STOPPED :: WorkspaceState
$mWorkspaceState_STOPPED :: forall r. WorkspaceState -> (Void# -> r) -> (Void# -> r) -> r
WorkspaceState_STOPPED = WorkspaceState' "STOPPED"

pattern WorkspaceState_STOPPING :: WorkspaceState
pattern $bWorkspaceState_STOPPING :: WorkspaceState
$mWorkspaceState_STOPPING :: forall r. WorkspaceState -> (Void# -> r) -> (Void# -> r) -> r
WorkspaceState_STOPPING = WorkspaceState' "STOPPING"

pattern WorkspaceState_SUSPENDED :: WorkspaceState
pattern $bWorkspaceState_SUSPENDED :: WorkspaceState
$mWorkspaceState_SUSPENDED :: forall r. WorkspaceState -> (Void# -> r) -> (Void# -> r) -> r
WorkspaceState_SUSPENDED = WorkspaceState' "SUSPENDED"

pattern WorkspaceState_TERMINATED :: WorkspaceState
pattern $bWorkspaceState_TERMINATED :: WorkspaceState
$mWorkspaceState_TERMINATED :: forall r. WorkspaceState -> (Void# -> r) -> (Void# -> r) -> r
WorkspaceState_TERMINATED = WorkspaceState' "TERMINATED"

pattern WorkspaceState_TERMINATING :: WorkspaceState
pattern $bWorkspaceState_TERMINATING :: WorkspaceState
$mWorkspaceState_TERMINATING :: forall r. WorkspaceState -> (Void# -> r) -> (Void# -> r) -> r
WorkspaceState_TERMINATING = WorkspaceState' "TERMINATING"

pattern WorkspaceState_UNHEALTHY :: WorkspaceState
pattern $bWorkspaceState_UNHEALTHY :: WorkspaceState
$mWorkspaceState_UNHEALTHY :: forall r. WorkspaceState -> (Void# -> r) -> (Void# -> r) -> r
WorkspaceState_UNHEALTHY = WorkspaceState' "UNHEALTHY"

pattern WorkspaceState_UPDATING :: WorkspaceState
pattern $bWorkspaceState_UPDATING :: WorkspaceState
$mWorkspaceState_UPDATING :: forall r. WorkspaceState -> (Void# -> r) -> (Void# -> r) -> r
WorkspaceState_UPDATING = WorkspaceState' "UPDATING"

{-# COMPLETE
  WorkspaceState_ADMIN_MAINTENANCE,
  WorkspaceState_AVAILABLE,
  WorkspaceState_ERROR,
  WorkspaceState_IMPAIRED,
  WorkspaceState_MAINTENANCE,
  WorkspaceState_PENDING,
  WorkspaceState_REBOOTING,
  WorkspaceState_REBUILDING,
  WorkspaceState_RESTORING,
  WorkspaceState_STARTING,
  WorkspaceState_STOPPED,
  WorkspaceState_STOPPING,
  WorkspaceState_SUSPENDED,
  WorkspaceState_TERMINATED,
  WorkspaceState_TERMINATING,
  WorkspaceState_UNHEALTHY,
  WorkspaceState_UPDATING,
  WorkspaceState'
  #-}