{-# 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.RDS.Types.ApplyMethod
-- 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.RDS.Types.ApplyMethod
  ( ApplyMethod
      ( ..,
        ApplyMethod_Immediate,
        ApplyMethod_Pending_reboot
      ),
  )
where

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

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

pattern ApplyMethod_Immediate :: ApplyMethod
pattern $bApplyMethod_Immediate :: ApplyMethod
$mApplyMethod_Immediate :: forall r. ApplyMethod -> (Void# -> r) -> (Void# -> r) -> r
ApplyMethod_Immediate = ApplyMethod' "immediate"

pattern ApplyMethod_Pending_reboot :: ApplyMethod
pattern $bApplyMethod_Pending_reboot :: ApplyMethod
$mApplyMethod_Pending_reboot :: forall r. ApplyMethod -> (Void# -> r) -> (Void# -> r) -> r
ApplyMethod_Pending_reboot = ApplyMethod' "pending-reboot"

{-# COMPLETE
  ApplyMethod_Immediate,
  ApplyMethod_Pending_reboot,
  ApplyMethod'
  #-}