{-# 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.TargetDestination
-- 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.TargetDestination
  ( TargetDestination
      ( ..,
        TargetDestination_AWS_Elastic_BeanStalk,
        TargetDestination_AWS_Fargate,
        TargetDestination_Amazon_DocumentDB,
        TargetDestination_Amazon_DynamoDB,
        TargetDestination_Amazon_Elastic_Cloud_Compute__EC2_,
        TargetDestination_Amazon_Elastic_Container_Service__ECS_,
        TargetDestination_Amazon_Elastic_Kubernetes_Service__EKS_,
        TargetDestination_Amazon_Relational_Database_Service,
        TargetDestination_Amazon_Relational_Database_Service_on_MySQL,
        TargetDestination_Amazon_Relational_Database_Service_on_PostgreSQL,
        TargetDestination_Aurora_MySQL,
        TargetDestination_Aurora_PostgreSQL,
        TargetDestination_Babelfish_for_Aurora_PostgreSQL,
        TargetDestination_None_specified
      ),
  )
where

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

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

pattern TargetDestination_AWS_Elastic_BeanStalk :: TargetDestination
pattern $bTargetDestination_AWS_Elastic_BeanStalk :: TargetDestination
$mTargetDestination_AWS_Elastic_BeanStalk :: forall {r}. TargetDestination -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDestination_AWS_Elastic_BeanStalk = TargetDestination' "AWS Elastic BeanStalk"

pattern TargetDestination_AWS_Fargate :: TargetDestination
pattern $bTargetDestination_AWS_Fargate :: TargetDestination
$mTargetDestination_AWS_Fargate :: forall {r}. TargetDestination -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDestination_AWS_Fargate = TargetDestination' "AWS Fargate"

pattern TargetDestination_Amazon_DocumentDB :: TargetDestination
pattern $bTargetDestination_Amazon_DocumentDB :: TargetDestination
$mTargetDestination_Amazon_DocumentDB :: forall {r}. TargetDestination -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDestination_Amazon_DocumentDB = TargetDestination' "Amazon DocumentDB"

pattern TargetDestination_Amazon_DynamoDB :: TargetDestination
pattern $bTargetDestination_Amazon_DynamoDB :: TargetDestination
$mTargetDestination_Amazon_DynamoDB :: forall {r}. TargetDestination -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDestination_Amazon_DynamoDB = TargetDestination' "Amazon DynamoDB"

pattern TargetDestination_Amazon_Elastic_Cloud_Compute__EC2_ :: TargetDestination
pattern $bTargetDestination_Amazon_Elastic_Cloud_Compute__EC2_ :: TargetDestination
$mTargetDestination_Amazon_Elastic_Cloud_Compute__EC2_ :: forall {r}. TargetDestination -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDestination_Amazon_Elastic_Cloud_Compute__EC2_ = TargetDestination' "Amazon Elastic Cloud Compute (EC2)"

pattern TargetDestination_Amazon_Elastic_Container_Service__ECS_ :: TargetDestination
pattern $bTargetDestination_Amazon_Elastic_Container_Service__ECS_ :: TargetDestination
$mTargetDestination_Amazon_Elastic_Container_Service__ECS_ :: forall {r}. TargetDestination -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDestination_Amazon_Elastic_Container_Service__ECS_ = TargetDestination' "Amazon Elastic Container Service (ECS)"

pattern TargetDestination_Amazon_Elastic_Kubernetes_Service__EKS_ :: TargetDestination
pattern $bTargetDestination_Amazon_Elastic_Kubernetes_Service__EKS_ :: TargetDestination
$mTargetDestination_Amazon_Elastic_Kubernetes_Service__EKS_ :: forall {r}. TargetDestination -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDestination_Amazon_Elastic_Kubernetes_Service__EKS_ = TargetDestination' "Amazon Elastic Kubernetes Service (EKS)"

pattern TargetDestination_Amazon_Relational_Database_Service :: TargetDestination
pattern $bTargetDestination_Amazon_Relational_Database_Service :: TargetDestination
$mTargetDestination_Amazon_Relational_Database_Service :: forall {r}. TargetDestination -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDestination_Amazon_Relational_Database_Service = TargetDestination' "Amazon Relational Database Service"

pattern TargetDestination_Amazon_Relational_Database_Service_on_MySQL :: TargetDestination
pattern $bTargetDestination_Amazon_Relational_Database_Service_on_MySQL :: TargetDestination
$mTargetDestination_Amazon_Relational_Database_Service_on_MySQL :: forall {r}. TargetDestination -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDestination_Amazon_Relational_Database_Service_on_MySQL = TargetDestination' "Amazon Relational Database Service on MySQL"

pattern TargetDestination_Amazon_Relational_Database_Service_on_PostgreSQL :: TargetDestination
pattern $bTargetDestination_Amazon_Relational_Database_Service_on_PostgreSQL :: TargetDestination
$mTargetDestination_Amazon_Relational_Database_Service_on_PostgreSQL :: forall {r}. TargetDestination -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDestination_Amazon_Relational_Database_Service_on_PostgreSQL = TargetDestination' "Amazon Relational Database Service on PostgreSQL"

pattern TargetDestination_Aurora_MySQL :: TargetDestination
pattern $bTargetDestination_Aurora_MySQL :: TargetDestination
$mTargetDestination_Aurora_MySQL :: forall {r}. TargetDestination -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDestination_Aurora_MySQL = TargetDestination' "Aurora MySQL"

pattern TargetDestination_Aurora_PostgreSQL :: TargetDestination
pattern $bTargetDestination_Aurora_PostgreSQL :: TargetDestination
$mTargetDestination_Aurora_PostgreSQL :: forall {r}. TargetDestination -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDestination_Aurora_PostgreSQL = TargetDestination' "Aurora PostgreSQL"

pattern TargetDestination_Babelfish_for_Aurora_PostgreSQL :: TargetDestination
pattern $bTargetDestination_Babelfish_for_Aurora_PostgreSQL :: TargetDestination
$mTargetDestination_Babelfish_for_Aurora_PostgreSQL :: forall {r}. TargetDestination -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDestination_Babelfish_for_Aurora_PostgreSQL = TargetDestination' "Babelfish for Aurora PostgreSQL"

pattern TargetDestination_None_specified :: TargetDestination
pattern $bTargetDestination_None_specified :: TargetDestination
$mTargetDestination_None_specified :: forall {r}. TargetDestination -> ((# #) -> r) -> ((# #) -> r) -> r
TargetDestination_None_specified = TargetDestination' "None specified"

{-# COMPLETE
  TargetDestination_AWS_Elastic_BeanStalk,
  TargetDestination_AWS_Fargate,
  TargetDestination_Amazon_DocumentDB,
  TargetDestination_Amazon_DynamoDB,
  TargetDestination_Amazon_Elastic_Cloud_Compute__EC2_,
  TargetDestination_Amazon_Elastic_Container_Service__ECS_,
  TargetDestination_Amazon_Elastic_Kubernetes_Service__EKS_,
  TargetDestination_Amazon_Relational_Database_Service,
  TargetDestination_Amazon_Relational_Database_Service_on_MySQL,
  TargetDestination_Amazon_Relational_Database_Service_on_PostgreSQL,
  TargetDestination_Aurora_MySQL,
  TargetDestination_Aurora_PostgreSQL,
  TargetDestination_Babelfish_for_Aurora_PostgreSQL,
  TargetDestination_None_specified,
  TargetDestination'
  #-}