{-# 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.ELBV2.Types.LoadBalancerStateEnum
-- 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.ELBV2.Types.LoadBalancerStateEnum
  ( LoadBalancerStateEnum
      ( ..,
        LoadBalancerStateEnum_Active,
        LoadBalancerStateEnum_Active_impaired,
        LoadBalancerStateEnum_Failed,
        LoadBalancerStateEnum_Provisioning
      ),
  )
where

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

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

pattern LoadBalancerStateEnum_Active :: LoadBalancerStateEnum
pattern $bLoadBalancerStateEnum_Active :: LoadBalancerStateEnum
$mLoadBalancerStateEnum_Active :: forall r.
LoadBalancerStateEnum -> (Void# -> r) -> (Void# -> r) -> r
LoadBalancerStateEnum_Active = LoadBalancerStateEnum' "active"

pattern LoadBalancerStateEnum_Active_impaired :: LoadBalancerStateEnum
pattern $bLoadBalancerStateEnum_Active_impaired :: LoadBalancerStateEnum
$mLoadBalancerStateEnum_Active_impaired :: forall r.
LoadBalancerStateEnum -> (Void# -> r) -> (Void# -> r) -> r
LoadBalancerStateEnum_Active_impaired = LoadBalancerStateEnum' "active_impaired"

pattern LoadBalancerStateEnum_Failed :: LoadBalancerStateEnum
pattern $bLoadBalancerStateEnum_Failed :: LoadBalancerStateEnum
$mLoadBalancerStateEnum_Failed :: forall r.
LoadBalancerStateEnum -> (Void# -> r) -> (Void# -> r) -> r
LoadBalancerStateEnum_Failed = LoadBalancerStateEnum' "failed"

pattern LoadBalancerStateEnum_Provisioning :: LoadBalancerStateEnum
pattern $bLoadBalancerStateEnum_Provisioning :: LoadBalancerStateEnum
$mLoadBalancerStateEnum_Provisioning :: forall r.
LoadBalancerStateEnum -> (Void# -> r) -> (Void# -> r) -> r
LoadBalancerStateEnum_Provisioning = LoadBalancerStateEnum' "provisioning"

{-# COMPLETE
  LoadBalancerStateEnum_Active,
  LoadBalancerStateEnum_Active_impaired,
  LoadBalancerStateEnum_Failed,
  LoadBalancerStateEnum_Provisioning,
  LoadBalancerStateEnum'
  #-}