{-# 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.SQS.Types.QueueAttributeName
-- 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.SQS.Types.QueueAttributeName
  ( QueueAttributeName
      ( ..,
        QueueAttributeName_All,
        QueueAttributeName_ApproximateNumberOfMessages,
        QueueAttributeName_ApproximateNumberOfMessagesDelayed,
        QueueAttributeName_ApproximateNumberOfMessagesNotVisible,
        QueueAttributeName_ContentBasedDeduplication,
        QueueAttributeName_CreatedTimestamp,
        QueueAttributeName_DeduplicationScope,
        QueueAttributeName_DelaySeconds,
        QueueAttributeName_FifoQueue,
        QueueAttributeName_FifoThroughputLimit,
        QueueAttributeName_KmsDataKeyReusePeriodSeconds,
        QueueAttributeName_KmsMasterKeyId,
        QueueAttributeName_LastModifiedTimestamp,
        QueueAttributeName_MaximumMessageSize,
        QueueAttributeName_MessageRetentionPeriod,
        QueueAttributeName_Policy,
        QueueAttributeName_QueueArn,
        QueueAttributeName_ReceiveMessageWaitTimeSeconds,
        QueueAttributeName_RedriveAllowPolicy,
        QueueAttributeName_RedrivePolicy,
        QueueAttributeName_VisibilityTimeout
      ),
  )
where

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

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

pattern QueueAttributeName_All :: QueueAttributeName
pattern $bQueueAttributeName_All :: QueueAttributeName
$mQueueAttributeName_All :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_All = QueueAttributeName' "All"

pattern QueueAttributeName_ApproximateNumberOfMessages :: QueueAttributeName
pattern $bQueueAttributeName_ApproximateNumberOfMessages :: QueueAttributeName
$mQueueAttributeName_ApproximateNumberOfMessages :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_ApproximateNumberOfMessages = QueueAttributeName' "ApproximateNumberOfMessages"

pattern QueueAttributeName_ApproximateNumberOfMessagesDelayed :: QueueAttributeName
pattern $bQueueAttributeName_ApproximateNumberOfMessagesDelayed :: QueueAttributeName
$mQueueAttributeName_ApproximateNumberOfMessagesDelayed :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_ApproximateNumberOfMessagesDelayed = QueueAttributeName' "ApproximateNumberOfMessagesDelayed"

pattern QueueAttributeName_ApproximateNumberOfMessagesNotVisible :: QueueAttributeName
pattern $bQueueAttributeName_ApproximateNumberOfMessagesNotVisible :: QueueAttributeName
$mQueueAttributeName_ApproximateNumberOfMessagesNotVisible :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_ApproximateNumberOfMessagesNotVisible = QueueAttributeName' "ApproximateNumberOfMessagesNotVisible"

pattern QueueAttributeName_ContentBasedDeduplication :: QueueAttributeName
pattern $bQueueAttributeName_ContentBasedDeduplication :: QueueAttributeName
$mQueueAttributeName_ContentBasedDeduplication :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_ContentBasedDeduplication = QueueAttributeName' "ContentBasedDeduplication"

pattern QueueAttributeName_CreatedTimestamp :: QueueAttributeName
pattern $bQueueAttributeName_CreatedTimestamp :: QueueAttributeName
$mQueueAttributeName_CreatedTimestamp :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_CreatedTimestamp = QueueAttributeName' "CreatedTimestamp"

pattern QueueAttributeName_DeduplicationScope :: QueueAttributeName
pattern $bQueueAttributeName_DeduplicationScope :: QueueAttributeName
$mQueueAttributeName_DeduplicationScope :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_DeduplicationScope = QueueAttributeName' "DeduplicationScope"

pattern QueueAttributeName_DelaySeconds :: QueueAttributeName
pattern $bQueueAttributeName_DelaySeconds :: QueueAttributeName
$mQueueAttributeName_DelaySeconds :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_DelaySeconds = QueueAttributeName' "DelaySeconds"

pattern QueueAttributeName_FifoQueue :: QueueAttributeName
pattern $bQueueAttributeName_FifoQueue :: QueueAttributeName
$mQueueAttributeName_FifoQueue :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_FifoQueue = QueueAttributeName' "FifoQueue"

pattern QueueAttributeName_FifoThroughputLimit :: QueueAttributeName
pattern $bQueueAttributeName_FifoThroughputLimit :: QueueAttributeName
$mQueueAttributeName_FifoThroughputLimit :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_FifoThroughputLimit = QueueAttributeName' "FifoThroughputLimit"

pattern QueueAttributeName_KmsDataKeyReusePeriodSeconds :: QueueAttributeName
pattern $bQueueAttributeName_KmsDataKeyReusePeriodSeconds :: QueueAttributeName
$mQueueAttributeName_KmsDataKeyReusePeriodSeconds :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_KmsDataKeyReusePeriodSeconds = QueueAttributeName' "KmsDataKeyReusePeriodSeconds"

pattern QueueAttributeName_KmsMasterKeyId :: QueueAttributeName
pattern $bQueueAttributeName_KmsMasterKeyId :: QueueAttributeName
$mQueueAttributeName_KmsMasterKeyId :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_KmsMasterKeyId = QueueAttributeName' "KmsMasterKeyId"

pattern QueueAttributeName_LastModifiedTimestamp :: QueueAttributeName
pattern $bQueueAttributeName_LastModifiedTimestamp :: QueueAttributeName
$mQueueAttributeName_LastModifiedTimestamp :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_LastModifiedTimestamp = QueueAttributeName' "LastModifiedTimestamp"

pattern QueueAttributeName_MaximumMessageSize :: QueueAttributeName
pattern $bQueueAttributeName_MaximumMessageSize :: QueueAttributeName
$mQueueAttributeName_MaximumMessageSize :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_MaximumMessageSize = QueueAttributeName' "MaximumMessageSize"

pattern QueueAttributeName_MessageRetentionPeriod :: QueueAttributeName
pattern $bQueueAttributeName_MessageRetentionPeriod :: QueueAttributeName
$mQueueAttributeName_MessageRetentionPeriod :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_MessageRetentionPeriod = QueueAttributeName' "MessageRetentionPeriod"

pattern QueueAttributeName_Policy :: QueueAttributeName
pattern $bQueueAttributeName_Policy :: QueueAttributeName
$mQueueAttributeName_Policy :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_Policy = QueueAttributeName' "Policy"

pattern QueueAttributeName_QueueArn :: QueueAttributeName
pattern $bQueueAttributeName_QueueArn :: QueueAttributeName
$mQueueAttributeName_QueueArn :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_QueueArn = QueueAttributeName' "QueueArn"

pattern QueueAttributeName_ReceiveMessageWaitTimeSeconds :: QueueAttributeName
pattern $bQueueAttributeName_ReceiveMessageWaitTimeSeconds :: QueueAttributeName
$mQueueAttributeName_ReceiveMessageWaitTimeSeconds :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_ReceiveMessageWaitTimeSeconds = QueueAttributeName' "ReceiveMessageWaitTimeSeconds"

pattern QueueAttributeName_RedriveAllowPolicy :: QueueAttributeName
pattern $bQueueAttributeName_RedriveAllowPolicy :: QueueAttributeName
$mQueueAttributeName_RedriveAllowPolicy :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_RedriveAllowPolicy = QueueAttributeName' "RedriveAllowPolicy"

pattern QueueAttributeName_RedrivePolicy :: QueueAttributeName
pattern $bQueueAttributeName_RedrivePolicy :: QueueAttributeName
$mQueueAttributeName_RedrivePolicy :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_RedrivePolicy = QueueAttributeName' "RedrivePolicy"

pattern QueueAttributeName_VisibilityTimeout :: QueueAttributeName
pattern $bQueueAttributeName_VisibilityTimeout :: QueueAttributeName
$mQueueAttributeName_VisibilityTimeout :: forall r. QueueAttributeName -> (Void# -> r) -> (Void# -> r) -> r
QueueAttributeName_VisibilityTimeout = QueueAttributeName' "VisibilityTimeout"

{-# COMPLETE
  QueueAttributeName_All,
  QueueAttributeName_ApproximateNumberOfMessages,
  QueueAttributeName_ApproximateNumberOfMessagesDelayed,
  QueueAttributeName_ApproximateNumberOfMessagesNotVisible,
  QueueAttributeName_ContentBasedDeduplication,
  QueueAttributeName_CreatedTimestamp,
  QueueAttributeName_DeduplicationScope,
  QueueAttributeName_DelaySeconds,
  QueueAttributeName_FifoQueue,
  QueueAttributeName_FifoThroughputLimit,
  QueueAttributeName_KmsDataKeyReusePeriodSeconds,
  QueueAttributeName_KmsMasterKeyId,
  QueueAttributeName_LastModifiedTimestamp,
  QueueAttributeName_MaximumMessageSize,
  QueueAttributeName_MessageRetentionPeriod,
  QueueAttributeName_Policy,
  QueueAttributeName_QueueArn,
  QueueAttributeName_ReceiveMessageWaitTimeSeconds,
  QueueAttributeName_RedriveAllowPolicy,
  QueueAttributeName_RedrivePolicy,
  QueueAttributeName_VisibilityTimeout,
  QueueAttributeName'
  #-}