{-# 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.CustomerProfiles.Types.TaskType
-- 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.CustomerProfiles.Types.TaskType
  ( TaskType
      ( ..,
        TaskType_Arithmetic,
        TaskType_Filter,
        TaskType_Map,
        TaskType_Mask,
        TaskType_Merge,
        TaskType_Truncate,
        TaskType_Validate
      ),
  )
where

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

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

pattern TaskType_Arithmetic :: TaskType
pattern $bTaskType_Arithmetic :: TaskType
$mTaskType_Arithmetic :: forall r. TaskType -> (Void# -> r) -> (Void# -> r) -> r
TaskType_Arithmetic = TaskType' "Arithmetic"

pattern TaskType_Filter :: TaskType
pattern $bTaskType_Filter :: TaskType
$mTaskType_Filter :: forall r. TaskType -> (Void# -> r) -> (Void# -> r) -> r
TaskType_Filter = TaskType' "Filter"

pattern TaskType_Map :: TaskType
pattern $bTaskType_Map :: TaskType
$mTaskType_Map :: forall r. TaskType -> (Void# -> r) -> (Void# -> r) -> r
TaskType_Map = TaskType' "Map"

pattern TaskType_Mask :: TaskType
pattern $bTaskType_Mask :: TaskType
$mTaskType_Mask :: forall r. TaskType -> (Void# -> r) -> (Void# -> r) -> r
TaskType_Mask = TaskType' "Mask"

pattern TaskType_Merge :: TaskType
pattern $bTaskType_Merge :: TaskType
$mTaskType_Merge :: forall r. TaskType -> (Void# -> r) -> (Void# -> r) -> r
TaskType_Merge = TaskType' "Merge"

pattern TaskType_Truncate :: TaskType
pattern $bTaskType_Truncate :: TaskType
$mTaskType_Truncate :: forall r. TaskType -> (Void# -> r) -> (Void# -> r) -> r
TaskType_Truncate = TaskType' "Truncate"

pattern TaskType_Validate :: TaskType
pattern $bTaskType_Validate :: TaskType
$mTaskType_Validate :: forall r. TaskType -> (Void# -> r) -> (Void# -> r) -> r
TaskType_Validate = TaskType' "Validate"

{-# COMPLETE
  TaskType_Arithmetic,
  TaskType_Filter,
  TaskType_Map,
  TaskType_Mask,
  TaskType_Merge,
  TaskType_Truncate,
  TaskType_Validate,
  TaskType'
  #-}