{-# 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.AutomaticFailoverStatus
-- 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.AutomaticFailoverStatus
  ( AutomaticFailoverStatus
      ( ..,
        AutomaticFailoverStatus_Disabled,
        AutomaticFailoverStatus_Disabling,
        AutomaticFailoverStatus_Enabled,
        AutomaticFailoverStatus_Enabling
      ),
  )
where

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

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

pattern AutomaticFailoverStatus_Disabled :: AutomaticFailoverStatus
pattern $bAutomaticFailoverStatus_Disabled :: AutomaticFailoverStatus
$mAutomaticFailoverStatus_Disabled :: forall r.
AutomaticFailoverStatus -> (Void# -> r) -> (Void# -> r) -> r
AutomaticFailoverStatus_Disabled = AutomaticFailoverStatus' "disabled"

pattern AutomaticFailoverStatus_Disabling :: AutomaticFailoverStatus
pattern $bAutomaticFailoverStatus_Disabling :: AutomaticFailoverStatus
$mAutomaticFailoverStatus_Disabling :: forall r.
AutomaticFailoverStatus -> (Void# -> r) -> (Void# -> r) -> r
AutomaticFailoverStatus_Disabling = AutomaticFailoverStatus' "disabling"

pattern AutomaticFailoverStatus_Enabled :: AutomaticFailoverStatus
pattern $bAutomaticFailoverStatus_Enabled :: AutomaticFailoverStatus
$mAutomaticFailoverStatus_Enabled :: forall r.
AutomaticFailoverStatus -> (Void# -> r) -> (Void# -> r) -> r
AutomaticFailoverStatus_Enabled = AutomaticFailoverStatus' "enabled"

pattern AutomaticFailoverStatus_Enabling :: AutomaticFailoverStatus
pattern $bAutomaticFailoverStatus_Enabling :: AutomaticFailoverStatus
$mAutomaticFailoverStatus_Enabling :: forall r.
AutomaticFailoverStatus -> (Void# -> r) -> (Void# -> r) -> r
AutomaticFailoverStatus_Enabling = AutomaticFailoverStatus' "enabling"

{-# COMPLETE
  AutomaticFailoverStatus_Disabled,
  AutomaticFailoverStatus_Disabling,
  AutomaticFailoverStatus_Enabled,
  AutomaticFailoverStatus_Enabling,
  AutomaticFailoverStatus'
  #-}