{-# 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.MigrationTypeValue
-- 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.MigrationTypeValue
  ( MigrationTypeValue
      ( ..,
        MigrationTypeValue_Cdc,
        MigrationTypeValue_Full_load,
        MigrationTypeValue_Full_load_and_cdc
      ),
  )
where

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

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

pattern MigrationTypeValue_Cdc :: MigrationTypeValue
pattern $bMigrationTypeValue_Cdc :: MigrationTypeValue
$mMigrationTypeValue_Cdc :: forall r. MigrationTypeValue -> (Void# -> r) -> (Void# -> r) -> r
MigrationTypeValue_Cdc = MigrationTypeValue' "cdc"

pattern MigrationTypeValue_Full_load :: MigrationTypeValue
pattern $bMigrationTypeValue_Full_load :: MigrationTypeValue
$mMigrationTypeValue_Full_load :: forall r. MigrationTypeValue -> (Void# -> r) -> (Void# -> r) -> r
MigrationTypeValue_Full_load = MigrationTypeValue' "full-load"

pattern MigrationTypeValue_Full_load_and_cdc :: MigrationTypeValue
pattern $bMigrationTypeValue_Full_load_and_cdc :: MigrationTypeValue
$mMigrationTypeValue_Full_load_and_cdc :: forall r. MigrationTypeValue -> (Void# -> r) -> (Void# -> r) -> r
MigrationTypeValue_Full_load_and_cdc = MigrationTypeValue' "full-load-and-cdc"

{-# COMPLETE
  MigrationTypeValue_Cdc,
  MigrationTypeValue_Full_load,
  MigrationTypeValue_Full_load_and_cdc,
  MigrationTypeValue'
  #-}