{-# 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-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.TimeToLiveStatus
  ( TimeToLiveStatus
      ( ..,
        TimeToLiveStatus_DISABLED,
        TimeToLiveStatus_DISABLING,
        TimeToLiveStatus_ENABLED,
        TimeToLiveStatus_ENABLING
      ),
  )
where

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

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

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

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

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

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

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