{-# 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.NodeUpdateInitiatedBy
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.ElastiCache.Types.NodeUpdateInitiatedBy
  ( NodeUpdateInitiatedBy
      ( ..,
        NodeUpdateInitiatedBy_Customer,
        NodeUpdateInitiatedBy_System
      ),
  )
where

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

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

pattern NodeUpdateInitiatedBy_Customer :: NodeUpdateInitiatedBy
pattern $bNodeUpdateInitiatedBy_Customer :: NodeUpdateInitiatedBy
$mNodeUpdateInitiatedBy_Customer :: forall {r}.
NodeUpdateInitiatedBy -> ((# #) -> r) -> ((# #) -> r) -> r
NodeUpdateInitiatedBy_Customer = NodeUpdateInitiatedBy' "customer"

pattern NodeUpdateInitiatedBy_System :: NodeUpdateInitiatedBy
pattern $bNodeUpdateInitiatedBy_System :: NodeUpdateInitiatedBy
$mNodeUpdateInitiatedBy_System :: forall {r}.
NodeUpdateInitiatedBy -> ((# #) -> r) -> ((# #) -> r) -> r
NodeUpdateInitiatedBy_System = NodeUpdateInitiatedBy' "system"

{-# COMPLETE
  NodeUpdateInitiatedBy_Customer,
  NodeUpdateInitiatedBy_System,
  NodeUpdateInitiatedBy'
  #-}