{-# 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.ElastiCache.Types.MultiAZStatus
-- 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.ElastiCache.Types.MultiAZStatus
  ( MultiAZStatus
      ( ..,
        MultiAZStatus_Disabled,
        MultiAZStatus_Enabled
      ),
  )
where

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

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

pattern MultiAZStatus_Disabled :: MultiAZStatus
pattern $bMultiAZStatus_Disabled :: MultiAZStatus
$mMultiAZStatus_Disabled :: forall r. MultiAZStatus -> (Void# -> r) -> (Void# -> r) -> r
MultiAZStatus_Disabled = MultiAZStatus' "disabled"

pattern MultiAZStatus_Enabled :: MultiAZStatus
pattern $bMultiAZStatus_Enabled :: MultiAZStatus
$mMultiAZStatus_Enabled :: forall r. MultiAZStatus -> (Void# -> r) -> (Void# -> r) -> r
MultiAZStatus_Enabled = MultiAZStatus' "enabled"

{-# COMPLETE
  MultiAZStatus_Disabled,
  MultiAZStatus_Enabled,
  MultiAZStatus'
  #-}