{-# 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.ElasticBeanstalk.Types.InstancesHealthAttribute
-- 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.ElasticBeanstalk.Types.InstancesHealthAttribute
  ( InstancesHealthAttribute
      ( ..,
        InstancesHealthAttribute_All,
        InstancesHealthAttribute_ApplicationMetrics,
        InstancesHealthAttribute_AvailabilityZone,
        InstancesHealthAttribute_Causes,
        InstancesHealthAttribute_Color,
        InstancesHealthAttribute_Deployment,
        InstancesHealthAttribute_HealthStatus,
        InstancesHealthAttribute_InstanceType,
        InstancesHealthAttribute_LaunchedAt,
        InstancesHealthAttribute_RefreshedAt,
        InstancesHealthAttribute_System
      ),
  )
where

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

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

pattern InstancesHealthAttribute_All :: InstancesHealthAttribute
pattern $bInstancesHealthAttribute_All :: InstancesHealthAttribute
$mInstancesHealthAttribute_All :: forall r.
InstancesHealthAttribute -> (Void# -> r) -> (Void# -> r) -> r
InstancesHealthAttribute_All = InstancesHealthAttribute' "All"

pattern InstancesHealthAttribute_ApplicationMetrics :: InstancesHealthAttribute
pattern $bInstancesHealthAttribute_ApplicationMetrics :: InstancesHealthAttribute
$mInstancesHealthAttribute_ApplicationMetrics :: forall r.
InstancesHealthAttribute -> (Void# -> r) -> (Void# -> r) -> r
InstancesHealthAttribute_ApplicationMetrics = InstancesHealthAttribute' "ApplicationMetrics"

pattern InstancesHealthAttribute_AvailabilityZone :: InstancesHealthAttribute
pattern $bInstancesHealthAttribute_AvailabilityZone :: InstancesHealthAttribute
$mInstancesHealthAttribute_AvailabilityZone :: forall r.
InstancesHealthAttribute -> (Void# -> r) -> (Void# -> r) -> r
InstancesHealthAttribute_AvailabilityZone = InstancesHealthAttribute' "AvailabilityZone"

pattern InstancesHealthAttribute_Causes :: InstancesHealthAttribute
pattern $bInstancesHealthAttribute_Causes :: InstancesHealthAttribute
$mInstancesHealthAttribute_Causes :: forall r.
InstancesHealthAttribute -> (Void# -> r) -> (Void# -> r) -> r
InstancesHealthAttribute_Causes = InstancesHealthAttribute' "Causes"

pattern InstancesHealthAttribute_Color :: InstancesHealthAttribute
pattern $bInstancesHealthAttribute_Color :: InstancesHealthAttribute
$mInstancesHealthAttribute_Color :: forall r.
InstancesHealthAttribute -> (Void# -> r) -> (Void# -> r) -> r
InstancesHealthAttribute_Color = InstancesHealthAttribute' "Color"

pattern InstancesHealthAttribute_Deployment :: InstancesHealthAttribute
pattern $bInstancesHealthAttribute_Deployment :: InstancesHealthAttribute
$mInstancesHealthAttribute_Deployment :: forall r.
InstancesHealthAttribute -> (Void# -> r) -> (Void# -> r) -> r
InstancesHealthAttribute_Deployment = InstancesHealthAttribute' "Deployment"

pattern InstancesHealthAttribute_HealthStatus :: InstancesHealthAttribute
pattern $bInstancesHealthAttribute_HealthStatus :: InstancesHealthAttribute
$mInstancesHealthAttribute_HealthStatus :: forall r.
InstancesHealthAttribute -> (Void# -> r) -> (Void# -> r) -> r
InstancesHealthAttribute_HealthStatus = InstancesHealthAttribute' "HealthStatus"

pattern InstancesHealthAttribute_InstanceType :: InstancesHealthAttribute
pattern $bInstancesHealthAttribute_InstanceType :: InstancesHealthAttribute
$mInstancesHealthAttribute_InstanceType :: forall r.
InstancesHealthAttribute -> (Void# -> r) -> (Void# -> r) -> r
InstancesHealthAttribute_InstanceType = InstancesHealthAttribute' "InstanceType"

pattern InstancesHealthAttribute_LaunchedAt :: InstancesHealthAttribute
pattern $bInstancesHealthAttribute_LaunchedAt :: InstancesHealthAttribute
$mInstancesHealthAttribute_LaunchedAt :: forall r.
InstancesHealthAttribute -> (Void# -> r) -> (Void# -> r) -> r
InstancesHealthAttribute_LaunchedAt = InstancesHealthAttribute' "LaunchedAt"

pattern InstancesHealthAttribute_RefreshedAt :: InstancesHealthAttribute
pattern $bInstancesHealthAttribute_RefreshedAt :: InstancesHealthAttribute
$mInstancesHealthAttribute_RefreshedAt :: forall r.
InstancesHealthAttribute -> (Void# -> r) -> (Void# -> r) -> r
InstancesHealthAttribute_RefreshedAt = InstancesHealthAttribute' "RefreshedAt"

pattern InstancesHealthAttribute_System :: InstancesHealthAttribute
pattern $bInstancesHealthAttribute_System :: InstancesHealthAttribute
$mInstancesHealthAttribute_System :: forall r.
InstancesHealthAttribute -> (Void# -> r) -> (Void# -> r) -> r
InstancesHealthAttribute_System = InstancesHealthAttribute' "System"

{-# COMPLETE
  InstancesHealthAttribute_All,
  InstancesHealthAttribute_ApplicationMetrics,
  InstancesHealthAttribute_AvailabilityZone,
  InstancesHealthAttribute_Causes,
  InstancesHealthAttribute_Color,
  InstancesHealthAttribute_Deployment,
  InstancesHealthAttribute_HealthStatus,
  InstancesHealthAttribute_InstanceType,
  InstancesHealthAttribute_LaunchedAt,
  InstancesHealthAttribute_RefreshedAt,
  InstancesHealthAttribute_System,
  InstancesHealthAttribute'
  #-}