{-# 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.DynamoDB.Types.BackupTypeFilter
-- 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.DynamoDB.Types.BackupTypeFilter
  ( BackupTypeFilter
      ( ..,
        BackupTypeFilter_ALL,
        BackupTypeFilter_AWS_BACKUP,
        BackupTypeFilter_SYSTEM,
        BackupTypeFilter_USER
      ),
  )
where

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

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

pattern BackupTypeFilter_ALL :: BackupTypeFilter
pattern $bBackupTypeFilter_ALL :: BackupTypeFilter
$mBackupTypeFilter_ALL :: forall r. BackupTypeFilter -> (Void# -> r) -> (Void# -> r) -> r
BackupTypeFilter_ALL = BackupTypeFilter' "ALL"

pattern BackupTypeFilter_AWS_BACKUP :: BackupTypeFilter
pattern $bBackupTypeFilter_AWS_BACKUP :: BackupTypeFilter
$mBackupTypeFilter_AWS_BACKUP :: forall r. BackupTypeFilter -> (Void# -> r) -> (Void# -> r) -> r
BackupTypeFilter_AWS_BACKUP = BackupTypeFilter' "AWS_BACKUP"

pattern BackupTypeFilter_SYSTEM :: BackupTypeFilter
pattern $bBackupTypeFilter_SYSTEM :: BackupTypeFilter
$mBackupTypeFilter_SYSTEM :: forall r. BackupTypeFilter -> (Void# -> r) -> (Void# -> r) -> r
BackupTypeFilter_SYSTEM = BackupTypeFilter' "SYSTEM"

pattern BackupTypeFilter_USER :: BackupTypeFilter
pattern $bBackupTypeFilter_USER :: BackupTypeFilter
$mBackupTypeFilter_USER :: forall r. BackupTypeFilter -> (Void# -> r) -> (Void# -> r) -> r
BackupTypeFilter_USER = BackupTypeFilter' "USER"

{-# COMPLETE
  BackupTypeFilter_ALL,
  BackupTypeFilter_AWS_BACKUP,
  BackupTypeFilter_SYSTEM,
  BackupTypeFilter_USER,
  BackupTypeFilter'
  #-}