{-# 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.DMS.Types.TargetDbType
-- 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.DMS.Types.TargetDbType
  ( TargetDbType
      ( ..,
        TargetDbType_Multiple_databases,
        TargetDbType_Specific_database
      ),
  )
where

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

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

pattern TargetDbType_Multiple_databases :: TargetDbType
pattern $bTargetDbType_Multiple_databases :: TargetDbType
$mTargetDbType_Multiple_databases :: forall r. TargetDbType -> (Void# -> r) -> (Void# -> r) -> r
TargetDbType_Multiple_databases = TargetDbType' "multiple-databases"

pattern TargetDbType_Specific_database :: TargetDbType
pattern $bTargetDbType_Specific_database :: TargetDbType
$mTargetDbType_Specific_database :: forall r. TargetDbType -> (Void# -> r) -> (Void# -> r) -> r
TargetDbType_Specific_database = TargetDbType' "specific-database"

{-# COMPLETE
  TargetDbType_Multiple_databases,
  TargetDbType_Specific_database,
  TargetDbType'
  #-}