{-# 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.CloudWatch.Types.StateValue
-- 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.CloudWatch.Types.StateValue
  ( StateValue
      ( ..,
        StateValue_ALARM,
        StateValue_INSUFFICIENT_DATA,
        StateValue_OK
      ),
  )
where

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

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

pattern StateValue_ALARM :: StateValue
pattern $bStateValue_ALARM :: StateValue
$mStateValue_ALARM :: forall r. StateValue -> (Void# -> r) -> (Void# -> r) -> r
StateValue_ALARM = StateValue' "ALARM"

pattern StateValue_INSUFFICIENT_DATA :: StateValue
pattern $bStateValue_INSUFFICIENT_DATA :: StateValue
$mStateValue_INSUFFICIENT_DATA :: forall r. StateValue -> (Void# -> r) -> (Void# -> r) -> r
StateValue_INSUFFICIENT_DATA = StateValue' "INSUFFICIENT_DATA"

pattern StateValue_OK :: StateValue
pattern $bStateValue_OK :: StateValue
$mStateValue_OK :: forall r. StateValue -> (Void# -> r) -> (Void# -> r) -> r
StateValue_OK = StateValue' "OK"

{-# COMPLETE
  StateValue_ALARM,
  StateValue_INSUFFICIENT_DATA,
  StateValue_OK,
  StateValue'
  #-}