{-# 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.MigrationHubStrategy.Types.TargetDatabaseEngine
-- 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.MigrationHubStrategy.Types.TargetDatabaseEngine
  ( TargetDatabaseEngine
      ( ..,
        TargetDatabaseEngine_AWS_PostgreSQL,
        TargetDatabaseEngine_Amazon_Aurora,
        TargetDatabaseEngine_Db2_LUW,
        TargetDatabaseEngine_MariaDB,
        TargetDatabaseEngine_Microsoft_SQL_Server,
        TargetDatabaseEngine_MongoDB,
        TargetDatabaseEngine_MySQL,
        TargetDatabaseEngine_None_specified,
        TargetDatabaseEngine_Oracle_Database,
        TargetDatabaseEngine_SAP
      ),
  )
where

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

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

pattern TargetDatabaseEngine_AWS_PostgreSQL :: TargetDatabaseEngine
pattern $bTargetDatabaseEngine_AWS_PostgreSQL :: TargetDatabaseEngine
$mTargetDatabaseEngine_AWS_PostgreSQL :: forall {r}.
TargetDatabaseEngine -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDatabaseEngine_AWS_PostgreSQL = TargetDatabaseEngine' "AWS PostgreSQL"

pattern TargetDatabaseEngine_Amazon_Aurora :: TargetDatabaseEngine
pattern $bTargetDatabaseEngine_Amazon_Aurora :: TargetDatabaseEngine
$mTargetDatabaseEngine_Amazon_Aurora :: forall {r}.
TargetDatabaseEngine -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDatabaseEngine_Amazon_Aurora = TargetDatabaseEngine' "Amazon Aurora"

pattern TargetDatabaseEngine_Db2_LUW :: TargetDatabaseEngine
pattern $bTargetDatabaseEngine_Db2_LUW :: TargetDatabaseEngine
$mTargetDatabaseEngine_Db2_LUW :: forall {r}.
TargetDatabaseEngine -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDatabaseEngine_Db2_LUW = TargetDatabaseEngine' "Db2 LUW"

pattern TargetDatabaseEngine_MariaDB :: TargetDatabaseEngine
pattern $bTargetDatabaseEngine_MariaDB :: TargetDatabaseEngine
$mTargetDatabaseEngine_MariaDB :: forall {r}.
TargetDatabaseEngine -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDatabaseEngine_MariaDB = TargetDatabaseEngine' "MariaDB"

pattern TargetDatabaseEngine_Microsoft_SQL_Server :: TargetDatabaseEngine
pattern $bTargetDatabaseEngine_Microsoft_SQL_Server :: TargetDatabaseEngine
$mTargetDatabaseEngine_Microsoft_SQL_Server :: forall {r}.
TargetDatabaseEngine -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDatabaseEngine_Microsoft_SQL_Server = TargetDatabaseEngine' "Microsoft SQL Server"

pattern TargetDatabaseEngine_MongoDB :: TargetDatabaseEngine
pattern $bTargetDatabaseEngine_MongoDB :: TargetDatabaseEngine
$mTargetDatabaseEngine_MongoDB :: forall {r}.
TargetDatabaseEngine -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDatabaseEngine_MongoDB = TargetDatabaseEngine' "MongoDB"

pattern TargetDatabaseEngine_MySQL :: TargetDatabaseEngine
pattern $bTargetDatabaseEngine_MySQL :: TargetDatabaseEngine
$mTargetDatabaseEngine_MySQL :: forall {r}.
TargetDatabaseEngine -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDatabaseEngine_MySQL = TargetDatabaseEngine' "MySQL"

pattern TargetDatabaseEngine_None_specified :: TargetDatabaseEngine
pattern $bTargetDatabaseEngine_None_specified :: TargetDatabaseEngine
$mTargetDatabaseEngine_None_specified :: forall {r}.
TargetDatabaseEngine -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDatabaseEngine_None_specified = TargetDatabaseEngine' "None specified"

pattern TargetDatabaseEngine_Oracle_Database :: TargetDatabaseEngine
pattern $bTargetDatabaseEngine_Oracle_Database :: TargetDatabaseEngine
$mTargetDatabaseEngine_Oracle_Database :: forall {r}.
TargetDatabaseEngine -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDatabaseEngine_Oracle_Database = TargetDatabaseEngine' "Oracle Database"

pattern TargetDatabaseEngine_SAP :: TargetDatabaseEngine
pattern $bTargetDatabaseEngine_SAP :: TargetDatabaseEngine
$mTargetDatabaseEngine_SAP :: forall {r}.
TargetDatabaseEngine -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDatabaseEngine_SAP = TargetDatabaseEngine' "SAP"

{-# COMPLETE
  TargetDatabaseEngine_AWS_PostgreSQL,
  TargetDatabaseEngine_Amazon_Aurora,
  TargetDatabaseEngine_Db2_LUW,
  TargetDatabaseEngine_MariaDB,
  TargetDatabaseEngine_Microsoft_SQL_Server,
  TargetDatabaseEngine_MongoDB,
  TargetDatabaseEngine_MySQL,
  TargetDatabaseEngine_None_specified,
  TargetDatabaseEngine_Oracle_Database,
  TargetDatabaseEngine_SAP,
  TargetDatabaseEngine'
  #-}