{-# 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.Glue.Types.DeleteBehavior
-- 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.Glue.Types.DeleteBehavior
  ( DeleteBehavior
      ( ..,
        DeleteBehavior_DELETE_FROM_DATABASE,
        DeleteBehavior_DEPRECATE_IN_DATABASE,
        DeleteBehavior_LOG
      ),
  )
where

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

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

pattern DeleteBehavior_DELETE_FROM_DATABASE :: DeleteBehavior
pattern $bDeleteBehavior_DELETE_FROM_DATABASE :: DeleteBehavior
$mDeleteBehavior_DELETE_FROM_DATABASE :: forall r. DeleteBehavior -> (Void# -> r) -> (Void# -> r) -> r
DeleteBehavior_DELETE_FROM_DATABASE = DeleteBehavior' "DELETE_FROM_DATABASE"

pattern DeleteBehavior_DEPRECATE_IN_DATABASE :: DeleteBehavior
pattern $bDeleteBehavior_DEPRECATE_IN_DATABASE :: DeleteBehavior
$mDeleteBehavior_DEPRECATE_IN_DATABASE :: forall r. DeleteBehavior -> (Void# -> r) -> (Void# -> r) -> r
DeleteBehavior_DEPRECATE_IN_DATABASE = DeleteBehavior' "DEPRECATE_IN_DATABASE"

pattern DeleteBehavior_LOG :: DeleteBehavior
pattern $bDeleteBehavior_LOG :: DeleteBehavior
$mDeleteBehavior_LOG :: forall r. DeleteBehavior -> (Void# -> r) -> (Void# -> r) -> r
DeleteBehavior_LOG = DeleteBehavior' "LOG"

{-# COMPLETE
  DeleteBehavior_DELETE_FROM_DATABASE,
  DeleteBehavior_DEPRECATE_IN_DATABASE,
  DeleteBehavior_LOG,
  DeleteBehavior'
  #-}