{-# 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.Glue.Types.ParamType
-- 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.Glue.Types.ParamType
  ( ParamType
      ( ..,
        ParamType_Bool,
        ParamType_Complex,
        ParamType_Float,
        ParamType_Int,
        ParamType_List,
        ParamType_Null,
        ParamType_Str
      ),
  )
where

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

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

pattern ParamType_Bool :: ParamType
pattern $bParamType_Bool :: ParamType
$mParamType_Bool :: forall {r}. ParamType -> ((# #) -> r) -> ((# #) -> r) -> r
ParamType_Bool = ParamType' "bool"

pattern ParamType_Complex :: ParamType
pattern $bParamType_Complex :: ParamType
$mParamType_Complex :: forall {r}. ParamType -> ((# #) -> r) -> ((# #) -> r) -> r
ParamType_Complex = ParamType' "complex"

pattern ParamType_Float :: ParamType
pattern $bParamType_Float :: ParamType
$mParamType_Float :: forall {r}. ParamType -> ((# #) -> r) -> ((# #) -> r) -> r
ParamType_Float = ParamType' "float"

pattern ParamType_Int :: ParamType
pattern $bParamType_Int :: ParamType
$mParamType_Int :: forall {r}. ParamType -> ((# #) -> r) -> ((# #) -> r) -> r
ParamType_Int = ParamType' "int"

pattern ParamType_List :: ParamType
pattern $bParamType_List :: ParamType
$mParamType_List :: forall {r}. ParamType -> ((# #) -> r) -> ((# #) -> r) -> r
ParamType_List = ParamType' "list"

pattern ParamType_Null :: ParamType
pattern $bParamType_Null :: ParamType
$mParamType_Null :: forall {r}. ParamType -> ((# #) -> r) -> ((# #) -> r) -> r
ParamType_Null = ParamType' "null"

pattern ParamType_Str :: ParamType
pattern $bParamType_Str :: ParamType
$mParamType_Str :: forall {r}. ParamType -> ((# #) -> r) -> ((# #) -> r) -> r
ParamType_Str = ParamType' "str"

{-# COMPLETE
  ParamType_Bool,
  ParamType_Complex,
  ParamType_Float,
  ParamType_Int,
  ParamType_List,
  ParamType_Null,
  ParamType_Str,
  ParamType'
  #-}