{-# 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.Nimble.Types.StudioComponentStatusCode
-- 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.Nimble.Types.StudioComponentStatusCode
  ( StudioComponentStatusCode
      ( ..,
        StudioComponentStatusCode_ACTIVE_DIRECTORY_ALREADY_EXISTS,
        StudioComponentStatusCode_ENCRYPTION_KEY_ACCESS_DENIED,
        StudioComponentStatusCode_ENCRYPTION_KEY_NOT_FOUND,
        StudioComponentStatusCode_INTERNAL_ERROR,
        StudioComponentStatusCode_STUDIO_COMPONENT_CREATED,
        StudioComponentStatusCode_STUDIO_COMPONENT_CREATE_IN_PROGRESS,
        StudioComponentStatusCode_STUDIO_COMPONENT_DELETED,
        StudioComponentStatusCode_STUDIO_COMPONENT_DELETE_IN_PROGRESS,
        StudioComponentStatusCode_STUDIO_COMPONENT_UPDATED,
        StudioComponentStatusCode_STUDIO_COMPONENT_UPDATE_IN_PROGRESS
      ),
  )
where

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

-- | The current status of the studio component resource.
--
-- When the resource is in the \'READY\' state, the status code signals
-- what the last mutation made to the resource was.
--
-- When the resource is in a CREATE_FAILED\/UPDATE_FAILED\/DELETE_FAILED
-- state, the status code signals what went wrong and why the mutation
-- failed.
newtype StudioComponentStatusCode = StudioComponentStatusCode'
  { StudioComponentStatusCode -> Text
fromStudioComponentStatusCode ::
      Core.Text
  }
  deriving stock
    ( Int -> StudioComponentStatusCode -> ShowS
[StudioComponentStatusCode] -> ShowS
StudioComponentStatusCode -> String
(Int -> StudioComponentStatusCode -> ShowS)
-> (StudioComponentStatusCode -> String)
-> ([StudioComponentStatusCode] -> ShowS)
-> Show StudioComponentStatusCode
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StudioComponentStatusCode] -> ShowS
$cshowList :: [StudioComponentStatusCode] -> ShowS
show :: StudioComponentStatusCode -> String
$cshow :: StudioComponentStatusCode -> String
showsPrec :: Int -> StudioComponentStatusCode -> ShowS
$cshowsPrec :: Int -> StudioComponentStatusCode -> ShowS
Prelude.Show,
      ReadPrec [StudioComponentStatusCode]
ReadPrec StudioComponentStatusCode
Int -> ReadS StudioComponentStatusCode
ReadS [StudioComponentStatusCode]
(Int -> ReadS StudioComponentStatusCode)
-> ReadS [StudioComponentStatusCode]
-> ReadPrec StudioComponentStatusCode
-> ReadPrec [StudioComponentStatusCode]
-> Read StudioComponentStatusCode
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StudioComponentStatusCode]
$creadListPrec :: ReadPrec [StudioComponentStatusCode]
readPrec :: ReadPrec StudioComponentStatusCode
$creadPrec :: ReadPrec StudioComponentStatusCode
readList :: ReadS [StudioComponentStatusCode]
$creadList :: ReadS [StudioComponentStatusCode]
readsPrec :: Int -> ReadS StudioComponentStatusCode
$creadsPrec :: Int -> ReadS StudioComponentStatusCode
Prelude.Read,
      StudioComponentStatusCode -> StudioComponentStatusCode -> Bool
(StudioComponentStatusCode -> StudioComponentStatusCode -> Bool)
-> (StudioComponentStatusCode -> StudioComponentStatusCode -> Bool)
-> Eq StudioComponentStatusCode
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StudioComponentStatusCode -> StudioComponentStatusCode -> Bool
$c/= :: StudioComponentStatusCode -> StudioComponentStatusCode -> Bool
== :: StudioComponentStatusCode -> StudioComponentStatusCode -> Bool
$c== :: StudioComponentStatusCode -> StudioComponentStatusCode -> Bool
Prelude.Eq,
      Eq StudioComponentStatusCode
Eq StudioComponentStatusCode
-> (StudioComponentStatusCode
    -> StudioComponentStatusCode -> Ordering)
-> (StudioComponentStatusCode -> StudioComponentStatusCode -> Bool)
-> (StudioComponentStatusCode -> StudioComponentStatusCode -> Bool)
-> (StudioComponentStatusCode -> StudioComponentStatusCode -> Bool)
-> (StudioComponentStatusCode -> StudioComponentStatusCode -> Bool)
-> (StudioComponentStatusCode
    -> StudioComponentStatusCode -> StudioComponentStatusCode)
-> (StudioComponentStatusCode
    -> StudioComponentStatusCode -> StudioComponentStatusCode)
-> Ord StudioComponentStatusCode
StudioComponentStatusCode -> StudioComponentStatusCode -> Bool
StudioComponentStatusCode -> StudioComponentStatusCode -> Ordering
StudioComponentStatusCode
-> StudioComponentStatusCode -> StudioComponentStatusCode
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 :: StudioComponentStatusCode
-> StudioComponentStatusCode -> StudioComponentStatusCode
$cmin :: StudioComponentStatusCode
-> StudioComponentStatusCode -> StudioComponentStatusCode
max :: StudioComponentStatusCode
-> StudioComponentStatusCode -> StudioComponentStatusCode
$cmax :: StudioComponentStatusCode
-> StudioComponentStatusCode -> StudioComponentStatusCode
>= :: StudioComponentStatusCode -> StudioComponentStatusCode -> Bool
$c>= :: StudioComponentStatusCode -> StudioComponentStatusCode -> Bool
> :: StudioComponentStatusCode -> StudioComponentStatusCode -> Bool
$c> :: StudioComponentStatusCode -> StudioComponentStatusCode -> Bool
<= :: StudioComponentStatusCode -> StudioComponentStatusCode -> Bool
$c<= :: StudioComponentStatusCode -> StudioComponentStatusCode -> Bool
< :: StudioComponentStatusCode -> StudioComponentStatusCode -> Bool
$c< :: StudioComponentStatusCode -> StudioComponentStatusCode -> Bool
compare :: StudioComponentStatusCode -> StudioComponentStatusCode -> Ordering
$ccompare :: StudioComponentStatusCode -> StudioComponentStatusCode -> Ordering
$cp1Ord :: Eq StudioComponentStatusCode
Prelude.Ord,
      (forall x.
 StudioComponentStatusCode -> Rep StudioComponentStatusCode x)
-> (forall x.
    Rep StudioComponentStatusCode x -> StudioComponentStatusCode)
-> Generic StudioComponentStatusCode
forall x.
Rep StudioComponentStatusCode x -> StudioComponentStatusCode
forall x.
StudioComponentStatusCode -> Rep StudioComponentStatusCode x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x.
Rep StudioComponentStatusCode x -> StudioComponentStatusCode
$cfrom :: forall x.
StudioComponentStatusCode -> Rep StudioComponentStatusCode x
Prelude.Generic
    )
  deriving newtype
    ( Int -> StudioComponentStatusCode -> Int
StudioComponentStatusCode -> Int
(Int -> StudioComponentStatusCode -> Int)
-> (StudioComponentStatusCode -> Int)
-> Hashable StudioComponentStatusCode
forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: StudioComponentStatusCode -> Int
$chash :: StudioComponentStatusCode -> Int
hashWithSalt :: Int -> StudioComponentStatusCode -> Int
$chashWithSalt :: Int -> StudioComponentStatusCode -> Int
Prelude.Hashable,
      StudioComponentStatusCode -> ()
(StudioComponentStatusCode -> ())
-> NFData StudioComponentStatusCode
forall a. (a -> ()) -> NFData a
rnf :: StudioComponentStatusCode -> ()
$crnf :: StudioComponentStatusCode -> ()
Prelude.NFData,
      Text -> Either String StudioComponentStatusCode
(Text -> Either String StudioComponentStatusCode)
-> FromText StudioComponentStatusCode
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String StudioComponentStatusCode
$cfromText :: Text -> Either String StudioComponentStatusCode
Core.FromText,
      StudioComponentStatusCode -> Text
(StudioComponentStatusCode -> Text)
-> ToText StudioComponentStatusCode
forall a. (a -> Text) -> ToText a
toText :: StudioComponentStatusCode -> Text
$ctoText :: StudioComponentStatusCode -> Text
Core.ToText,
      StudioComponentStatusCode -> ByteString
(StudioComponentStatusCode -> ByteString)
-> ToByteString StudioComponentStatusCode
forall a. (a -> ByteString) -> ToByteString a
toBS :: StudioComponentStatusCode -> ByteString
$ctoBS :: StudioComponentStatusCode -> ByteString
Core.ToByteString,
      StudioComponentStatusCode -> ByteStringBuilder
(StudioComponentStatusCode -> ByteStringBuilder)
-> ToLog StudioComponentStatusCode
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: StudioComponentStatusCode -> ByteStringBuilder
$cbuild :: StudioComponentStatusCode -> ByteStringBuilder
Core.ToLog,
      HeaderName -> StudioComponentStatusCode -> [Header]
(HeaderName -> StudioComponentStatusCode -> [Header])
-> ToHeader StudioComponentStatusCode
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> StudioComponentStatusCode -> [Header]
$ctoHeader :: HeaderName -> StudioComponentStatusCode -> [Header]
Core.ToHeader,
      StudioComponentStatusCode -> QueryString
(StudioComponentStatusCode -> QueryString)
-> ToQuery StudioComponentStatusCode
forall a. (a -> QueryString) -> ToQuery a
toQuery :: StudioComponentStatusCode -> QueryString
$ctoQuery :: StudioComponentStatusCode -> QueryString
Core.ToQuery,
      Value -> Parser [StudioComponentStatusCode]
Value -> Parser StudioComponentStatusCode
(Value -> Parser StudioComponentStatusCode)
-> (Value -> Parser [StudioComponentStatusCode])
-> FromJSON StudioComponentStatusCode
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [StudioComponentStatusCode]
$cparseJSONList :: Value -> Parser [StudioComponentStatusCode]
parseJSON :: Value -> Parser StudioComponentStatusCode
$cparseJSON :: Value -> Parser StudioComponentStatusCode
Core.FromJSON,
      FromJSONKeyFunction [StudioComponentStatusCode]
FromJSONKeyFunction StudioComponentStatusCode
FromJSONKeyFunction StudioComponentStatusCode
-> FromJSONKeyFunction [StudioComponentStatusCode]
-> FromJSONKey StudioComponentStatusCode
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [StudioComponentStatusCode]
$cfromJSONKeyList :: FromJSONKeyFunction [StudioComponentStatusCode]
fromJSONKey :: FromJSONKeyFunction StudioComponentStatusCode
$cfromJSONKey :: FromJSONKeyFunction StudioComponentStatusCode
Core.FromJSONKey,
      [StudioComponentStatusCode] -> Encoding
[StudioComponentStatusCode] -> Value
StudioComponentStatusCode -> Encoding
StudioComponentStatusCode -> Value
(StudioComponentStatusCode -> Value)
-> (StudioComponentStatusCode -> Encoding)
-> ([StudioComponentStatusCode] -> Value)
-> ([StudioComponentStatusCode] -> Encoding)
-> ToJSON StudioComponentStatusCode
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [StudioComponentStatusCode] -> Encoding
$ctoEncodingList :: [StudioComponentStatusCode] -> Encoding
toJSONList :: [StudioComponentStatusCode] -> Value
$ctoJSONList :: [StudioComponentStatusCode] -> Value
toEncoding :: StudioComponentStatusCode -> Encoding
$ctoEncoding :: StudioComponentStatusCode -> Encoding
toJSON :: StudioComponentStatusCode -> Value
$ctoJSON :: StudioComponentStatusCode -> Value
Core.ToJSON,
      ToJSONKeyFunction [StudioComponentStatusCode]
ToJSONKeyFunction StudioComponentStatusCode
ToJSONKeyFunction StudioComponentStatusCode
-> ToJSONKeyFunction [StudioComponentStatusCode]
-> ToJSONKey StudioComponentStatusCode
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [StudioComponentStatusCode]
$ctoJSONKeyList :: ToJSONKeyFunction [StudioComponentStatusCode]
toJSONKey :: ToJSONKeyFunction StudioComponentStatusCode
$ctoJSONKey :: ToJSONKeyFunction StudioComponentStatusCode
Core.ToJSONKey,
      [Node] -> Either String StudioComponentStatusCode
([Node] -> Either String StudioComponentStatusCode)
-> FromXML StudioComponentStatusCode
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String StudioComponentStatusCode
$cparseXML :: [Node] -> Either String StudioComponentStatusCode
Core.FromXML,
      StudioComponentStatusCode -> XML
(StudioComponentStatusCode -> XML)
-> ToXML StudioComponentStatusCode
forall a. (a -> XML) -> ToXML a
toXML :: StudioComponentStatusCode -> XML
$ctoXML :: StudioComponentStatusCode -> XML
Core.ToXML
    )

pattern StudioComponentStatusCode_ACTIVE_DIRECTORY_ALREADY_EXISTS :: StudioComponentStatusCode
pattern $bStudioComponentStatusCode_ACTIVE_DIRECTORY_ALREADY_EXISTS :: StudioComponentStatusCode
$mStudioComponentStatusCode_ACTIVE_DIRECTORY_ALREADY_EXISTS :: forall r.
StudioComponentStatusCode -> (Void# -> r) -> (Void# -> r) -> r
StudioComponentStatusCode_ACTIVE_DIRECTORY_ALREADY_EXISTS = StudioComponentStatusCode' "ACTIVE_DIRECTORY_ALREADY_EXISTS"

pattern StudioComponentStatusCode_ENCRYPTION_KEY_ACCESS_DENIED :: StudioComponentStatusCode
pattern $bStudioComponentStatusCode_ENCRYPTION_KEY_ACCESS_DENIED :: StudioComponentStatusCode
$mStudioComponentStatusCode_ENCRYPTION_KEY_ACCESS_DENIED :: forall r.
StudioComponentStatusCode -> (Void# -> r) -> (Void# -> r) -> r
StudioComponentStatusCode_ENCRYPTION_KEY_ACCESS_DENIED = StudioComponentStatusCode' "ENCRYPTION_KEY_ACCESS_DENIED"

pattern StudioComponentStatusCode_ENCRYPTION_KEY_NOT_FOUND :: StudioComponentStatusCode
pattern $bStudioComponentStatusCode_ENCRYPTION_KEY_NOT_FOUND :: StudioComponentStatusCode
$mStudioComponentStatusCode_ENCRYPTION_KEY_NOT_FOUND :: forall r.
StudioComponentStatusCode -> (Void# -> r) -> (Void# -> r) -> r
StudioComponentStatusCode_ENCRYPTION_KEY_NOT_FOUND = StudioComponentStatusCode' "ENCRYPTION_KEY_NOT_FOUND"

pattern StudioComponentStatusCode_INTERNAL_ERROR :: StudioComponentStatusCode
pattern $bStudioComponentStatusCode_INTERNAL_ERROR :: StudioComponentStatusCode
$mStudioComponentStatusCode_INTERNAL_ERROR :: forall r.
StudioComponentStatusCode -> (Void# -> r) -> (Void# -> r) -> r
StudioComponentStatusCode_INTERNAL_ERROR = StudioComponentStatusCode' "INTERNAL_ERROR"

pattern StudioComponentStatusCode_STUDIO_COMPONENT_CREATED :: StudioComponentStatusCode
pattern $bStudioComponentStatusCode_STUDIO_COMPONENT_CREATED :: StudioComponentStatusCode
$mStudioComponentStatusCode_STUDIO_COMPONENT_CREATED :: forall r.
StudioComponentStatusCode -> (Void# -> r) -> (Void# -> r) -> r
StudioComponentStatusCode_STUDIO_COMPONENT_CREATED = StudioComponentStatusCode' "STUDIO_COMPONENT_CREATED"

pattern StudioComponentStatusCode_STUDIO_COMPONENT_CREATE_IN_PROGRESS :: StudioComponentStatusCode
pattern $bStudioComponentStatusCode_STUDIO_COMPONENT_CREATE_IN_PROGRESS :: StudioComponentStatusCode
$mStudioComponentStatusCode_STUDIO_COMPONENT_CREATE_IN_PROGRESS :: forall r.
StudioComponentStatusCode -> (Void# -> r) -> (Void# -> r) -> r
StudioComponentStatusCode_STUDIO_COMPONENT_CREATE_IN_PROGRESS = StudioComponentStatusCode' "STUDIO_COMPONENT_CREATE_IN_PROGRESS"

pattern StudioComponentStatusCode_STUDIO_COMPONENT_DELETED :: StudioComponentStatusCode
pattern $bStudioComponentStatusCode_STUDIO_COMPONENT_DELETED :: StudioComponentStatusCode
$mStudioComponentStatusCode_STUDIO_COMPONENT_DELETED :: forall r.
StudioComponentStatusCode -> (Void# -> r) -> (Void# -> r) -> r
StudioComponentStatusCode_STUDIO_COMPONENT_DELETED = StudioComponentStatusCode' "STUDIO_COMPONENT_DELETED"

pattern StudioComponentStatusCode_STUDIO_COMPONENT_DELETE_IN_PROGRESS :: StudioComponentStatusCode
pattern $bStudioComponentStatusCode_STUDIO_COMPONENT_DELETE_IN_PROGRESS :: StudioComponentStatusCode
$mStudioComponentStatusCode_STUDIO_COMPONENT_DELETE_IN_PROGRESS :: forall r.
StudioComponentStatusCode -> (Void# -> r) -> (Void# -> r) -> r
StudioComponentStatusCode_STUDIO_COMPONENT_DELETE_IN_PROGRESS = StudioComponentStatusCode' "STUDIO_COMPONENT_DELETE_IN_PROGRESS"

pattern StudioComponentStatusCode_STUDIO_COMPONENT_UPDATED :: StudioComponentStatusCode
pattern $bStudioComponentStatusCode_STUDIO_COMPONENT_UPDATED :: StudioComponentStatusCode
$mStudioComponentStatusCode_STUDIO_COMPONENT_UPDATED :: forall r.
StudioComponentStatusCode -> (Void# -> r) -> (Void# -> r) -> r
StudioComponentStatusCode_STUDIO_COMPONENT_UPDATED = StudioComponentStatusCode' "STUDIO_COMPONENT_UPDATED"

pattern StudioComponentStatusCode_STUDIO_COMPONENT_UPDATE_IN_PROGRESS :: StudioComponentStatusCode
pattern $bStudioComponentStatusCode_STUDIO_COMPONENT_UPDATE_IN_PROGRESS :: StudioComponentStatusCode
$mStudioComponentStatusCode_STUDIO_COMPONENT_UPDATE_IN_PROGRESS :: forall r.
StudioComponentStatusCode -> (Void# -> r) -> (Void# -> r) -> r
StudioComponentStatusCode_STUDIO_COMPONENT_UPDATE_IN_PROGRESS = StudioComponentStatusCode' "STUDIO_COMPONENT_UPDATE_IN_PROGRESS"

{-# COMPLETE
  StudioComponentStatusCode_ACTIVE_DIRECTORY_ALREADY_EXISTS,
  StudioComponentStatusCode_ENCRYPTION_KEY_ACCESS_DENIED,
  StudioComponentStatusCode_ENCRYPTION_KEY_NOT_FOUND,
  StudioComponentStatusCode_INTERNAL_ERROR,
  StudioComponentStatusCode_STUDIO_COMPONENT_CREATED,
  StudioComponentStatusCode_STUDIO_COMPONENT_CREATE_IN_PROGRESS,
  StudioComponentStatusCode_STUDIO_COMPONENT_DELETED,
  StudioComponentStatusCode_STUDIO_COMPONENT_DELETE_IN_PROGRESS,
  StudioComponentStatusCode_STUDIO_COMPONENT_UPDATED,
  StudioComponentStatusCode_STUDIO_COMPONENT_UPDATE_IN_PROGRESS,
  StudioComponentStatusCode'
  #-}