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

pattern TimeToLiveStatus_DISABLED :: TimeToLiveStatus
pattern $bTimeToLiveStatus_DISABLED :: TimeToLiveStatus
$mTimeToLiveStatus_DISABLED :: forall {r}. TimeToLiveStatus -> ((# #) -> r) -> ((# #) -> r) -> r
TimeToLiveStatus_DISABLED = TimeToLiveStatus' "DISABLED"

pattern TimeToLiveStatus_DISABLING :: TimeToLiveStatus
pattern $bTimeToLiveStatus_DISABLING :: TimeToLiveStatus
$mTimeToLiveStatus_DISABLING :: forall {r}. TimeToLiveStatus -> ((# #) -> r) -> ((# #) -> r) -> r
TimeToLiveStatus_DISABLING = TimeToLiveStatus' "DISABLING"

pattern TimeToLiveStatus_ENABLED :: TimeToLiveStatus
pattern $bTimeToLiveStatus_ENABLED :: TimeToLiveStatus
$mTimeToLiveStatus_ENABLED :: forall {r}. TimeToLiveStatus -> ((# #) -> r) -> ((# #) -> r) -> r
TimeToLiveStatus_ENABLED = TimeToLiveStatus' "ENABLED"

pattern TimeToLiveStatus_ENABLING :: TimeToLiveStatus
pattern $bTimeToLiveStatus_ENABLING :: TimeToLiveStatus
$mTimeToLiveStatus_ENABLING :: forall {r}. TimeToLiveStatus -> ((# #) -> r) -> ((# #) -> r) -> r
TimeToLiveStatus_ENABLING = TimeToLiveStatus' "ENABLING"

{-# COMPLETE
  TimeToLiveStatus_DISABLED,
  TimeToLiveStatus_DISABLING,
  TimeToLiveStatus_ENABLED,
  TimeToLiveStatus_ENABLING,
  TimeToLiveStatus'
  #-}