{-# 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.IoTThingsGraph.Types.DefinitionLanguage
-- 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.IoTThingsGraph.Types.DefinitionLanguage
  ( DefinitionLanguage
      ( ..,
        DefinitionLanguage_GRAPHQL
      ),
  )
where

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

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

pattern DefinitionLanguage_GRAPHQL :: DefinitionLanguage
pattern $bDefinitionLanguage_GRAPHQL :: DefinitionLanguage
$mDefinitionLanguage_GRAPHQL :: forall r. DefinitionLanguage -> (Void# -> r) -> (Void# -> r) -> r
DefinitionLanguage_GRAPHQL = DefinitionLanguage' "GRAPHQL"

{-# COMPLETE
  DefinitionLanguage_GRAPHQL,
  DefinitionLanguage'
  #-}