{-# 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.CodeDeploy.Types.DeploymentTargetType
-- 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.CodeDeploy.Types.DeploymentTargetType
  ( DeploymentTargetType
      ( ..,
        DeploymentTargetType_CloudFormationTarget,
        DeploymentTargetType_ECSTarget,
        DeploymentTargetType_InstanceTarget,
        DeploymentTargetType_LambdaTarget
      ),
  )
where

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

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

pattern DeploymentTargetType_CloudFormationTarget :: DeploymentTargetType
pattern $bDeploymentTargetType_CloudFormationTarget :: DeploymentTargetType
$mDeploymentTargetType_CloudFormationTarget :: forall r. DeploymentTargetType -> (Void# -> r) -> (Void# -> r) -> r
DeploymentTargetType_CloudFormationTarget = DeploymentTargetType' "CloudFormationTarget"

pattern DeploymentTargetType_ECSTarget :: DeploymentTargetType
pattern $bDeploymentTargetType_ECSTarget :: DeploymentTargetType
$mDeploymentTargetType_ECSTarget :: forall r. DeploymentTargetType -> (Void# -> r) -> (Void# -> r) -> r
DeploymentTargetType_ECSTarget = DeploymentTargetType' "ECSTarget"

pattern DeploymentTargetType_InstanceTarget :: DeploymentTargetType
pattern $bDeploymentTargetType_InstanceTarget :: DeploymentTargetType
$mDeploymentTargetType_InstanceTarget :: forall r. DeploymentTargetType -> (Void# -> r) -> (Void# -> r) -> r
DeploymentTargetType_InstanceTarget = DeploymentTargetType' "InstanceTarget"

pattern DeploymentTargetType_LambdaTarget :: DeploymentTargetType
pattern $bDeploymentTargetType_LambdaTarget :: DeploymentTargetType
$mDeploymentTargetType_LambdaTarget :: forall r. DeploymentTargetType -> (Void# -> r) -> (Void# -> r) -> r
DeploymentTargetType_LambdaTarget = DeploymentTargetType' "LambdaTarget"

{-# COMPLETE
  DeploymentTargetType_CloudFormationTarget,
  DeploymentTargetType_ECSTarget,
  DeploymentTargetType_InstanceTarget,
  DeploymentTargetType_LambdaTarget,
  DeploymentTargetType'
  #-}