{-# 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-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- 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.Data as Data
import Amazonka.DynamoDB.Types.AttributeValue
import Amazonka.DynamoDB.Types.WriteRequest
import qualified Amazonka.Prelude as Prelude

newtype BackupTypeFilter = BackupTypeFilter'
  { BackupTypeFilter -> Text
fromBackupTypeFilter ::
      Data.Text
  }
  deriving stock
    ( Int -> BackupTypeFilter -> ShowS
[BackupTypeFilter] -> ShowS
BackupTypeFilter -> String
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]
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
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
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
Prelude.Ord,
      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
    ( Eq BackupTypeFilter
Int -> BackupTypeFilter -> Int
BackupTypeFilter -> Int
forall a. Eq 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 -> ()
forall a. (a -> ()) -> NFData a
rnf :: BackupTypeFilter -> ()
$crnf :: BackupTypeFilter -> ()
Prelude.NFData,
      Text -> Either String BackupTypeFilter
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String BackupTypeFilter
$cfromText :: Text -> Either String BackupTypeFilter
Data.FromText,
      BackupTypeFilter -> Text
forall a. (a -> Text) -> ToText a
toText :: BackupTypeFilter -> Text
$ctoText :: BackupTypeFilter -> Text
Data.ToText,
      BackupTypeFilter -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: BackupTypeFilter -> ByteString
$ctoBS :: BackupTypeFilter -> ByteString
Data.ToByteString,
      BackupTypeFilter -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: BackupTypeFilter -> ByteStringBuilder
$cbuild :: BackupTypeFilter -> ByteStringBuilder
Data.ToLog,
      HeaderName -> BackupTypeFilter -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> BackupTypeFilter -> [Header]
$ctoHeader :: HeaderName -> BackupTypeFilter -> [Header]
Data.ToHeader,
      BackupTypeFilter -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: BackupTypeFilter -> QueryString
$ctoQuery :: BackupTypeFilter -> QueryString
Data.ToQuery,
      Value -> Parser [BackupTypeFilter]
Value -> Parser 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
Data.FromJSON,
      FromJSONKeyFunction [BackupTypeFilter]
FromJSONKeyFunction BackupTypeFilter
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [BackupTypeFilter]
$cfromJSONKeyList :: FromJSONKeyFunction [BackupTypeFilter]
fromJSONKey :: FromJSONKeyFunction BackupTypeFilter
$cfromJSONKey :: FromJSONKeyFunction BackupTypeFilter
Data.FromJSONKey,
      [BackupTypeFilter] -> Encoding
[BackupTypeFilter] -> Value
BackupTypeFilter -> Encoding
BackupTypeFilter -> Value
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
Data.ToJSON,
      ToJSONKeyFunction [BackupTypeFilter]
ToJSONKeyFunction BackupTypeFilter
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [BackupTypeFilter]
$ctoJSONKeyList :: ToJSONKeyFunction [BackupTypeFilter]
toJSONKey :: ToJSONKeyFunction BackupTypeFilter
$ctoJSONKey :: ToJSONKeyFunction BackupTypeFilter
Data.ToJSONKey,
      [Node] -> Either String BackupTypeFilter
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String BackupTypeFilter
$cparseXML :: [Node] -> Either String BackupTypeFilter
Data.FromXML,
      BackupTypeFilter -> XML
forall a. (a -> XML) -> ToXML a
toXML :: BackupTypeFilter -> XML
$ctoXML :: BackupTypeFilter -> XML
Data.ToXML
    )

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

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

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

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

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