{-# 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.Lightsail.Types.AlarmState
-- 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.Lightsail.Types.AlarmState
  ( AlarmState
      ( ..,
        AlarmState_ALARM,
        AlarmState_INSUFFICIENT_DATA,
        AlarmState_OK
      ),
  )
where

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

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

pattern AlarmState_ALARM :: AlarmState
pattern $bAlarmState_ALARM :: AlarmState
$mAlarmState_ALARM :: forall r. AlarmState -> (Void# -> r) -> (Void# -> r) -> r
AlarmState_ALARM = AlarmState' "ALARM"

pattern AlarmState_INSUFFICIENT_DATA :: AlarmState
pattern $bAlarmState_INSUFFICIENT_DATA :: AlarmState
$mAlarmState_INSUFFICIENT_DATA :: forall r. AlarmState -> (Void# -> r) -> (Void# -> r) -> r
AlarmState_INSUFFICIENT_DATA = AlarmState' "INSUFFICIENT_DATA"

pattern AlarmState_OK :: AlarmState
pattern $bAlarmState_OK :: AlarmState
$mAlarmState_OK :: forall r. AlarmState -> (Void# -> r) -> (Void# -> r) -> r
AlarmState_OK = AlarmState' "OK"

{-# COMPLETE
  AlarmState_ALARM,
  AlarmState_INSUFFICIENT_DATA,
  AlarmState_OK,
  AlarmState'
  #-}