{-# 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.TimeStreamQuery.Types.MeasureValueType
-- 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.TimeStreamQuery.Types.MeasureValueType
  ( MeasureValueType
      ( ..,
        MeasureValueType_BIGINT,
        MeasureValueType_BOOLEAN,
        MeasureValueType_DOUBLE,
        MeasureValueType_MULTI,
        MeasureValueType_VARCHAR
      ),
  )
where

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

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

pattern MeasureValueType_BIGINT :: MeasureValueType
pattern $bMeasureValueType_BIGINT :: MeasureValueType
$mMeasureValueType_BIGINT :: forall {r}. MeasureValueType -> ((# #) -> r) -> ((# #) -> r) -> r
MeasureValueType_BIGINT = MeasureValueType' "BIGINT"

pattern MeasureValueType_BOOLEAN :: MeasureValueType
pattern $bMeasureValueType_BOOLEAN :: MeasureValueType
$mMeasureValueType_BOOLEAN :: forall {r}. MeasureValueType -> ((# #) -> r) -> ((# #) -> r) -> r
MeasureValueType_BOOLEAN = MeasureValueType' "BOOLEAN"

pattern MeasureValueType_DOUBLE :: MeasureValueType
pattern $bMeasureValueType_DOUBLE :: MeasureValueType
$mMeasureValueType_DOUBLE :: forall {r}. MeasureValueType -> ((# #) -> r) -> ((# #) -> r) -> r
MeasureValueType_DOUBLE = MeasureValueType' "DOUBLE"

pattern MeasureValueType_MULTI :: MeasureValueType
pattern $bMeasureValueType_MULTI :: MeasureValueType
$mMeasureValueType_MULTI :: forall {r}. MeasureValueType -> ((# #) -> r) -> ((# #) -> r) -> r
MeasureValueType_MULTI = MeasureValueType' "MULTI"

pattern MeasureValueType_VARCHAR :: MeasureValueType
pattern $bMeasureValueType_VARCHAR :: MeasureValueType
$mMeasureValueType_VARCHAR :: forall {r}. MeasureValueType -> ((# #) -> r) -> ((# #) -> r) -> r
MeasureValueType_VARCHAR = MeasureValueType' "VARCHAR"

{-# COMPLETE
  MeasureValueType_BIGINT,
  MeasureValueType_BOOLEAN,
  MeasureValueType_DOUBLE,
  MeasureValueType_MULTI,
  MeasureValueType_VARCHAR,
  MeasureValueType'
  #-}