{-# 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.WellArchitected.Types.CheckStatus
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.WellArchitected.Types.CheckStatus
  ( CheckStatus
      ( ..,
        CheckStatus_ERROR,
        CheckStatus_FETCH_FAILED,
        CheckStatus_NOT_AVAILABLE,
        CheckStatus_OKAY,
        CheckStatus_WARNING
      ),
  )
where

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

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

pattern CheckStatus_ERROR :: CheckStatus
pattern $bCheckStatus_ERROR :: CheckStatus
$mCheckStatus_ERROR :: forall {r}. CheckStatus -> ((# #) -> r) -> ((# #) -> r) -> r
CheckStatus_ERROR = CheckStatus' "ERROR"

pattern CheckStatus_FETCH_FAILED :: CheckStatus
pattern $bCheckStatus_FETCH_FAILED :: CheckStatus
$mCheckStatus_FETCH_FAILED :: forall {r}. CheckStatus -> ((# #) -> r) -> ((# #) -> r) -> r
CheckStatus_FETCH_FAILED = CheckStatus' "FETCH_FAILED"

pattern CheckStatus_NOT_AVAILABLE :: CheckStatus
pattern $bCheckStatus_NOT_AVAILABLE :: CheckStatus
$mCheckStatus_NOT_AVAILABLE :: forall {r}. CheckStatus -> ((# #) -> r) -> ((# #) -> r) -> r
CheckStatus_NOT_AVAILABLE = CheckStatus' "NOT_AVAILABLE"

pattern CheckStatus_OKAY :: CheckStatus
pattern $bCheckStatus_OKAY :: CheckStatus
$mCheckStatus_OKAY :: forall {r}. CheckStatus -> ((# #) -> r) -> ((# #) -> r) -> r
CheckStatus_OKAY = CheckStatus' "OKAY"

pattern CheckStatus_WARNING :: CheckStatus
pattern $bCheckStatus_WARNING :: CheckStatus
$mCheckStatus_WARNING :: forall {r}. CheckStatus -> ((# #) -> r) -> ((# #) -> r) -> r
CheckStatus_WARNING = CheckStatus' "WARNING"

{-# COMPLETE
  CheckStatus_ERROR,
  CheckStatus_FETCH_FAILED,
  CheckStatus_NOT_AVAILABLE,
  CheckStatus_OKAY,
  CheckStatus_WARNING,
  CheckStatus'
  #-}