{-# 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.Lightsail.Types.RelationalDatabaseEngine
-- 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.Lightsail.Types.RelationalDatabaseEngine
  ( RelationalDatabaseEngine
      ( ..,
        RelationalDatabaseEngine_Mysql
      ),
  )
where

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

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

pattern RelationalDatabaseEngine_Mysql :: RelationalDatabaseEngine
pattern $bRelationalDatabaseEngine_Mysql :: RelationalDatabaseEngine
$mRelationalDatabaseEngine_Mysql :: forall r.
RelationalDatabaseEngine -> (Void# -> r) -> (Void# -> r) -> r
RelationalDatabaseEngine_Mysql = RelationalDatabaseEngine' "mysql"

{-# COMPLETE
  RelationalDatabaseEngine_Mysql,
  RelationalDatabaseEngine'
  #-}