{-# 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.Route53Resolver.Types.MutationProtectionStatus
-- 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.Route53Resolver.Types.MutationProtectionStatus
  ( MutationProtectionStatus
      ( ..,
        MutationProtectionStatus_DISABLED,
        MutationProtectionStatus_ENABLED
      ),
  )
where

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

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

pattern MutationProtectionStatus_DISABLED :: MutationProtectionStatus
pattern $bMutationProtectionStatus_DISABLED :: MutationProtectionStatus
$mMutationProtectionStatus_DISABLED :: forall r.
MutationProtectionStatus -> (Void# -> r) -> (Void# -> r) -> r
MutationProtectionStatus_DISABLED = MutationProtectionStatus' "DISABLED"

pattern MutationProtectionStatus_ENABLED :: MutationProtectionStatus
pattern $bMutationProtectionStatus_ENABLED :: MutationProtectionStatus
$mMutationProtectionStatus_ENABLED :: forall r.
MutationProtectionStatus -> (Void# -> r) -> (Void# -> r) -> r
MutationProtectionStatus_ENABLED = MutationProtectionStatus' "ENABLED"

{-# COMPLETE
  MutationProtectionStatus_DISABLED,
  MutationProtectionStatus_ENABLED,
  MutationProtectionStatus'
  #-}