{-# 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.GlobalAccelerator.Types.HealthState
-- 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.GlobalAccelerator.Types.HealthState
  ( HealthState
      ( ..,
        HealthState_HEALTHY,
        HealthState_INITIAL,
        HealthState_UNHEALTHY
      ),
  )
where

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

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

pattern HealthState_HEALTHY :: HealthState
pattern $bHealthState_HEALTHY :: HealthState
$mHealthState_HEALTHY :: forall r. HealthState -> (Void# -> r) -> (Void# -> r) -> r
HealthState_HEALTHY = HealthState' "HEALTHY"

pattern HealthState_INITIAL :: HealthState
pattern $bHealthState_INITIAL :: HealthState
$mHealthState_INITIAL :: forall r. HealthState -> (Void# -> r) -> (Void# -> r) -> r
HealthState_INITIAL = HealthState' "INITIAL"

pattern HealthState_UNHEALTHY :: HealthState
pattern $bHealthState_UNHEALTHY :: HealthState
$mHealthState_UNHEALTHY :: forall r. HealthState -> (Void# -> r) -> (Void# -> r) -> r
HealthState_UNHEALTHY = HealthState' "UNHEALTHY"

{-# COMPLETE
  HealthState_HEALTHY,
  HealthState_INITIAL,
  HealthState_UNHEALTHY,
  HealthState'
  #-}