{-# 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.TaskTemplateFieldType
-- 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.TaskTemplateFieldType
  ( TaskTemplateFieldType
      ( ..,
        TaskTemplateFieldType_BOOLEAN,
        TaskTemplateFieldType_DATE_TIME,
        TaskTemplateFieldType_DESCRIPTION,
        TaskTemplateFieldType_EMAIL,
        TaskTemplateFieldType_NAME,
        TaskTemplateFieldType_NUMBER,
        TaskTemplateFieldType_QUICK_CONNECT,
        TaskTemplateFieldType_SCHEDULED_TIME,
        TaskTemplateFieldType_SINGLE_SELECT,
        TaskTemplateFieldType_TEXT,
        TaskTemplateFieldType_TEXT_AREA,
        TaskTemplateFieldType_URL
      ),
  )
where

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

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

pattern TaskTemplateFieldType_BOOLEAN :: TaskTemplateFieldType
pattern $bTaskTemplateFieldType_BOOLEAN :: TaskTemplateFieldType
$mTaskTemplateFieldType_BOOLEAN :: forall {r}.
TaskTemplateFieldType -> ((# #) -> r) -> ((# #) -> r) -> r
TaskTemplateFieldType_BOOLEAN = TaskTemplateFieldType' "BOOLEAN"

pattern TaskTemplateFieldType_DATE_TIME :: TaskTemplateFieldType
pattern $bTaskTemplateFieldType_DATE_TIME :: TaskTemplateFieldType
$mTaskTemplateFieldType_DATE_TIME :: forall {r}.
TaskTemplateFieldType -> ((# #) -> r) -> ((# #) -> r) -> r
TaskTemplateFieldType_DATE_TIME = TaskTemplateFieldType' "DATE_TIME"

pattern TaskTemplateFieldType_DESCRIPTION :: TaskTemplateFieldType
pattern $bTaskTemplateFieldType_DESCRIPTION :: TaskTemplateFieldType
$mTaskTemplateFieldType_DESCRIPTION :: forall {r}.
TaskTemplateFieldType -> ((# #) -> r) -> ((# #) -> r) -> r
TaskTemplateFieldType_DESCRIPTION = TaskTemplateFieldType' "DESCRIPTION"

pattern TaskTemplateFieldType_EMAIL :: TaskTemplateFieldType
pattern $bTaskTemplateFieldType_EMAIL :: TaskTemplateFieldType
$mTaskTemplateFieldType_EMAIL :: forall {r}.
TaskTemplateFieldType -> ((# #) -> r) -> ((# #) -> r) -> r
TaskTemplateFieldType_EMAIL = TaskTemplateFieldType' "EMAIL"

pattern TaskTemplateFieldType_NAME :: TaskTemplateFieldType
pattern $bTaskTemplateFieldType_NAME :: TaskTemplateFieldType
$mTaskTemplateFieldType_NAME :: forall {r}.
TaskTemplateFieldType -> ((# #) -> r) -> ((# #) -> r) -> r
TaskTemplateFieldType_NAME = TaskTemplateFieldType' "NAME"

pattern TaskTemplateFieldType_NUMBER :: TaskTemplateFieldType
pattern $bTaskTemplateFieldType_NUMBER :: TaskTemplateFieldType
$mTaskTemplateFieldType_NUMBER :: forall {r}.
TaskTemplateFieldType -> ((# #) -> r) -> ((# #) -> r) -> r
TaskTemplateFieldType_NUMBER = TaskTemplateFieldType' "NUMBER"

pattern TaskTemplateFieldType_QUICK_CONNECT :: TaskTemplateFieldType
pattern $bTaskTemplateFieldType_QUICK_CONNECT :: TaskTemplateFieldType
$mTaskTemplateFieldType_QUICK_CONNECT :: forall {r}.
TaskTemplateFieldType -> ((# #) -> r) -> ((# #) -> r) -> r
TaskTemplateFieldType_QUICK_CONNECT = TaskTemplateFieldType' "QUICK_CONNECT"

pattern TaskTemplateFieldType_SCHEDULED_TIME :: TaskTemplateFieldType
pattern $bTaskTemplateFieldType_SCHEDULED_TIME :: TaskTemplateFieldType
$mTaskTemplateFieldType_SCHEDULED_TIME :: forall {r}.
TaskTemplateFieldType -> ((# #) -> r) -> ((# #) -> r) -> r
TaskTemplateFieldType_SCHEDULED_TIME = TaskTemplateFieldType' "SCHEDULED_TIME"

pattern TaskTemplateFieldType_SINGLE_SELECT :: TaskTemplateFieldType
pattern $bTaskTemplateFieldType_SINGLE_SELECT :: TaskTemplateFieldType
$mTaskTemplateFieldType_SINGLE_SELECT :: forall {r}.
TaskTemplateFieldType -> ((# #) -> r) -> ((# #) -> r) -> r
TaskTemplateFieldType_SINGLE_SELECT = TaskTemplateFieldType' "SINGLE_SELECT"

pattern TaskTemplateFieldType_TEXT :: TaskTemplateFieldType
pattern $bTaskTemplateFieldType_TEXT :: TaskTemplateFieldType
$mTaskTemplateFieldType_TEXT :: forall {r}.
TaskTemplateFieldType -> ((# #) -> r) -> ((# #) -> r) -> r
TaskTemplateFieldType_TEXT = TaskTemplateFieldType' "TEXT"

pattern TaskTemplateFieldType_TEXT_AREA :: TaskTemplateFieldType
pattern $bTaskTemplateFieldType_TEXT_AREA :: TaskTemplateFieldType
$mTaskTemplateFieldType_TEXT_AREA :: forall {r}.
TaskTemplateFieldType -> ((# #) -> r) -> ((# #) -> r) -> r
TaskTemplateFieldType_TEXT_AREA = TaskTemplateFieldType' "TEXT_AREA"

pattern TaskTemplateFieldType_URL :: TaskTemplateFieldType
pattern $bTaskTemplateFieldType_URL :: TaskTemplateFieldType
$mTaskTemplateFieldType_URL :: forall {r}.
TaskTemplateFieldType -> ((# #) -> r) -> ((# #) -> r) -> r
TaskTemplateFieldType_URL = TaskTemplateFieldType' "URL"

{-# COMPLETE
  TaskTemplateFieldType_BOOLEAN,
  TaskTemplateFieldType_DATE_TIME,
  TaskTemplateFieldType_DESCRIPTION,
  TaskTemplateFieldType_EMAIL,
  TaskTemplateFieldType_NAME,
  TaskTemplateFieldType_NUMBER,
  TaskTemplateFieldType_QUICK_CONNECT,
  TaskTemplateFieldType_SCHEDULED_TIME,
  TaskTemplateFieldType_SINGLE_SELECT,
  TaskTemplateFieldType_TEXT,
  TaskTemplateFieldType_TEXT_AREA,
  TaskTemplateFieldType_URL,
  TaskTemplateFieldType'
  #-}