{-# 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.QuickSight.Types.InputColumnDataType
-- 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.QuickSight.Types.InputColumnDataType
  ( InputColumnDataType
      ( ..,
        InputColumnDataType_BIT,
        InputColumnDataType_BOOLEAN,
        InputColumnDataType_DATETIME,
        InputColumnDataType_DECIMAL,
        InputColumnDataType_INTEGER,
        InputColumnDataType_JSON,
        InputColumnDataType_STRING
      ),
  )
where

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

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

pattern InputColumnDataType_BIT :: InputColumnDataType
pattern $bInputColumnDataType_BIT :: InputColumnDataType
$mInputColumnDataType_BIT :: forall r. InputColumnDataType -> (Void# -> r) -> (Void# -> r) -> r
InputColumnDataType_BIT = InputColumnDataType' "BIT"

pattern InputColumnDataType_BOOLEAN :: InputColumnDataType
pattern $bInputColumnDataType_BOOLEAN :: InputColumnDataType
$mInputColumnDataType_BOOLEAN :: forall r. InputColumnDataType -> (Void# -> r) -> (Void# -> r) -> r
InputColumnDataType_BOOLEAN = InputColumnDataType' "BOOLEAN"

pattern InputColumnDataType_DATETIME :: InputColumnDataType
pattern $bInputColumnDataType_DATETIME :: InputColumnDataType
$mInputColumnDataType_DATETIME :: forall r. InputColumnDataType -> (Void# -> r) -> (Void# -> r) -> r
InputColumnDataType_DATETIME = InputColumnDataType' "DATETIME"

pattern InputColumnDataType_DECIMAL :: InputColumnDataType
pattern $bInputColumnDataType_DECIMAL :: InputColumnDataType
$mInputColumnDataType_DECIMAL :: forall r. InputColumnDataType -> (Void# -> r) -> (Void# -> r) -> r
InputColumnDataType_DECIMAL = InputColumnDataType' "DECIMAL"

pattern InputColumnDataType_INTEGER :: InputColumnDataType
pattern $bInputColumnDataType_INTEGER :: InputColumnDataType
$mInputColumnDataType_INTEGER :: forall r. InputColumnDataType -> (Void# -> r) -> (Void# -> r) -> r
InputColumnDataType_INTEGER = InputColumnDataType' "INTEGER"

pattern InputColumnDataType_JSON :: InputColumnDataType
pattern $bInputColumnDataType_JSON :: InputColumnDataType
$mInputColumnDataType_JSON :: forall r. InputColumnDataType -> (Void# -> r) -> (Void# -> r) -> r
InputColumnDataType_JSON = InputColumnDataType' "JSON"

pattern InputColumnDataType_STRING :: InputColumnDataType
pattern $bInputColumnDataType_STRING :: InputColumnDataType
$mInputColumnDataType_STRING :: forall r. InputColumnDataType -> (Void# -> r) -> (Void# -> r) -> r
InputColumnDataType_STRING = InputColumnDataType' "STRING"

{-# COMPLETE
  InputColumnDataType_BIT,
  InputColumnDataType_BOOLEAN,
  InputColumnDataType_DATETIME,
  InputColumnDataType_DECIMAL,
  InputColumnDataType_INTEGER,
  InputColumnDataType_JSON,
  InputColumnDataType_STRING,
  InputColumnDataType'
  #-}