{-# 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.IoTFleetWise.Types.NodeDataType
-- 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.IoTFleetWise.Types.NodeDataType
  ( NodeDataType
      ( ..,
        NodeDataType_BOOLEAN,
        NodeDataType_BOOLEAN_ARRAY,
        NodeDataType_DOUBLE,
        NodeDataType_DOUBLE_ARRAY,
        NodeDataType_FLOAT,
        NodeDataType_FLOAT_ARRAY,
        NodeDataType_INT16,
        NodeDataType_INT16_ARRAY,
        NodeDataType_INT32,
        NodeDataType_INT32_ARRAY,
        NodeDataType_INT64,
        NodeDataType_INT64_ARRAY,
        NodeDataType_INT8,
        NodeDataType_INT8_ARRAY,
        NodeDataType_STRING,
        NodeDataType_STRING_ARRAY,
        NodeDataType_UINT16,
        NodeDataType_UINT16_ARRAY,
        NodeDataType_UINT32,
        NodeDataType_UINT32_ARRAY,
        NodeDataType_UINT64,
        NodeDataType_UINT64_ARRAY,
        NodeDataType_UINT8,
        NodeDataType_UINT8_ARRAY,
        NodeDataType_UNIX_TIMESTAMP,
        NodeDataType_UNIX_TIMESTAMP_ARRAY,
        NodeDataType_UNKNOWN
      ),
  )
where

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

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

pattern NodeDataType_BOOLEAN :: NodeDataType
pattern $bNodeDataType_BOOLEAN :: NodeDataType
$mNodeDataType_BOOLEAN :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_BOOLEAN = NodeDataType' "BOOLEAN"

pattern NodeDataType_BOOLEAN_ARRAY :: NodeDataType
pattern $bNodeDataType_BOOLEAN_ARRAY :: NodeDataType
$mNodeDataType_BOOLEAN_ARRAY :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_BOOLEAN_ARRAY = NodeDataType' "BOOLEAN_ARRAY"

pattern NodeDataType_DOUBLE :: NodeDataType
pattern $bNodeDataType_DOUBLE :: NodeDataType
$mNodeDataType_DOUBLE :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_DOUBLE = NodeDataType' "DOUBLE"

pattern NodeDataType_DOUBLE_ARRAY :: NodeDataType
pattern $bNodeDataType_DOUBLE_ARRAY :: NodeDataType
$mNodeDataType_DOUBLE_ARRAY :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_DOUBLE_ARRAY = NodeDataType' "DOUBLE_ARRAY"

pattern NodeDataType_FLOAT :: NodeDataType
pattern $bNodeDataType_FLOAT :: NodeDataType
$mNodeDataType_FLOAT :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_FLOAT = NodeDataType' "FLOAT"

pattern NodeDataType_FLOAT_ARRAY :: NodeDataType
pattern $bNodeDataType_FLOAT_ARRAY :: NodeDataType
$mNodeDataType_FLOAT_ARRAY :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_FLOAT_ARRAY = NodeDataType' "FLOAT_ARRAY"

pattern NodeDataType_INT16 :: NodeDataType
pattern $bNodeDataType_INT16 :: NodeDataType
$mNodeDataType_INT16 :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_INT16 = NodeDataType' "INT16"

pattern NodeDataType_INT16_ARRAY :: NodeDataType
pattern $bNodeDataType_INT16_ARRAY :: NodeDataType
$mNodeDataType_INT16_ARRAY :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_INT16_ARRAY = NodeDataType' "INT16_ARRAY"

pattern NodeDataType_INT32 :: NodeDataType
pattern $bNodeDataType_INT32 :: NodeDataType
$mNodeDataType_INT32 :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_INT32 = NodeDataType' "INT32"

pattern NodeDataType_INT32_ARRAY :: NodeDataType
pattern $bNodeDataType_INT32_ARRAY :: NodeDataType
$mNodeDataType_INT32_ARRAY :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_INT32_ARRAY = NodeDataType' "INT32_ARRAY"

pattern NodeDataType_INT64 :: NodeDataType
pattern $bNodeDataType_INT64 :: NodeDataType
$mNodeDataType_INT64 :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_INT64 = NodeDataType' "INT64"

pattern NodeDataType_INT64_ARRAY :: NodeDataType
pattern $bNodeDataType_INT64_ARRAY :: NodeDataType
$mNodeDataType_INT64_ARRAY :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_INT64_ARRAY = NodeDataType' "INT64_ARRAY"

pattern NodeDataType_INT8 :: NodeDataType
pattern $bNodeDataType_INT8 :: NodeDataType
$mNodeDataType_INT8 :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_INT8 = NodeDataType' "INT8"

pattern NodeDataType_INT8_ARRAY :: NodeDataType
pattern $bNodeDataType_INT8_ARRAY :: NodeDataType
$mNodeDataType_INT8_ARRAY :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_INT8_ARRAY = NodeDataType' "INT8_ARRAY"

pattern NodeDataType_STRING :: NodeDataType
pattern $bNodeDataType_STRING :: NodeDataType
$mNodeDataType_STRING :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_STRING = NodeDataType' "STRING"

pattern NodeDataType_STRING_ARRAY :: NodeDataType
pattern $bNodeDataType_STRING_ARRAY :: NodeDataType
$mNodeDataType_STRING_ARRAY :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_STRING_ARRAY = NodeDataType' "STRING_ARRAY"

pattern NodeDataType_UINT16 :: NodeDataType
pattern $bNodeDataType_UINT16 :: NodeDataType
$mNodeDataType_UINT16 :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_UINT16 = NodeDataType' "UINT16"

pattern NodeDataType_UINT16_ARRAY :: NodeDataType
pattern $bNodeDataType_UINT16_ARRAY :: NodeDataType
$mNodeDataType_UINT16_ARRAY :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_UINT16_ARRAY = NodeDataType' "UINT16_ARRAY"

pattern NodeDataType_UINT32 :: NodeDataType
pattern $bNodeDataType_UINT32 :: NodeDataType
$mNodeDataType_UINT32 :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_UINT32 = NodeDataType' "UINT32"

pattern NodeDataType_UINT32_ARRAY :: NodeDataType
pattern $bNodeDataType_UINT32_ARRAY :: NodeDataType
$mNodeDataType_UINT32_ARRAY :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_UINT32_ARRAY = NodeDataType' "UINT32_ARRAY"

pattern NodeDataType_UINT64 :: NodeDataType
pattern $bNodeDataType_UINT64 :: NodeDataType
$mNodeDataType_UINT64 :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_UINT64 = NodeDataType' "UINT64"

pattern NodeDataType_UINT64_ARRAY :: NodeDataType
pattern $bNodeDataType_UINT64_ARRAY :: NodeDataType
$mNodeDataType_UINT64_ARRAY :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_UINT64_ARRAY = NodeDataType' "UINT64_ARRAY"

pattern NodeDataType_UINT8 :: NodeDataType
pattern $bNodeDataType_UINT8 :: NodeDataType
$mNodeDataType_UINT8 :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_UINT8 = NodeDataType' "UINT8"

pattern NodeDataType_UINT8_ARRAY :: NodeDataType
pattern $bNodeDataType_UINT8_ARRAY :: NodeDataType
$mNodeDataType_UINT8_ARRAY :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_UINT8_ARRAY = NodeDataType' "UINT8_ARRAY"

pattern NodeDataType_UNIX_TIMESTAMP :: NodeDataType
pattern $bNodeDataType_UNIX_TIMESTAMP :: NodeDataType
$mNodeDataType_UNIX_TIMESTAMP :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_UNIX_TIMESTAMP = NodeDataType' "UNIX_TIMESTAMP"

pattern NodeDataType_UNIX_TIMESTAMP_ARRAY :: NodeDataType
pattern $bNodeDataType_UNIX_TIMESTAMP_ARRAY :: NodeDataType
$mNodeDataType_UNIX_TIMESTAMP_ARRAY :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_UNIX_TIMESTAMP_ARRAY = NodeDataType' "UNIX_TIMESTAMP_ARRAY"

pattern NodeDataType_UNKNOWN :: NodeDataType
pattern $bNodeDataType_UNKNOWN :: NodeDataType
$mNodeDataType_UNKNOWN :: forall {r}. NodeDataType -> ((# #) -> r) -> ((# #) -> r) -> r
NodeDataType_UNKNOWN = NodeDataType' "UNKNOWN"

{-# COMPLETE
  NodeDataType_BOOLEAN,
  NodeDataType_BOOLEAN_ARRAY,
  NodeDataType_DOUBLE,
  NodeDataType_DOUBLE_ARRAY,
  NodeDataType_FLOAT,
  NodeDataType_FLOAT_ARRAY,
  NodeDataType_INT16,
  NodeDataType_INT16_ARRAY,
  NodeDataType_INT32,
  NodeDataType_INT32_ARRAY,
  NodeDataType_INT64,
  NodeDataType_INT64_ARRAY,
  NodeDataType_INT8,
  NodeDataType_INT8_ARRAY,
  NodeDataType_STRING,
  NodeDataType_STRING_ARRAY,
  NodeDataType_UINT16,
  NodeDataType_UINT16_ARRAY,
  NodeDataType_UINT32,
  NodeDataType_UINT32_ARRAY,
  NodeDataType_UINT64,
  NodeDataType_UINT64_ARRAY,
  NodeDataType_UINT8,
  NodeDataType_UINT8_ARRAY,
  NodeDataType_UNIX_TIMESTAMP,
  NodeDataType_UNIX_TIMESTAMP_ARRAY,
  NodeDataType_UNKNOWN,
  NodeDataType'
  #-}