{-# 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.Connect.Types.QueueType
-- 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.Connect.Types.QueueType
  ( QueueType
      ( ..,
        QueueType_AGENT,
        QueueType_STANDARD
      ),
  )
where

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

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

pattern QueueType_AGENT :: QueueType
pattern $bQueueType_AGENT :: QueueType
$mQueueType_AGENT :: forall {r}. QueueType -> ((# #) -> r) -> ((# #) -> r) -> r
QueueType_AGENT = QueueType' "AGENT"

pattern QueueType_STANDARD :: QueueType
pattern $bQueueType_STANDARD :: QueueType
$mQueueType_STANDARD :: forall {r}. QueueType -> ((# #) -> r) -> ((# #) -> r) -> r
QueueType_STANDARD = QueueType' "STANDARD"

{-# COMPLETE
  QueueType_AGENT,
  QueueType_STANDARD,
  QueueType'
  #-}