{-# 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.Proton.Types.DeploymentUpdateType
-- 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.Proton.Types.DeploymentUpdateType
  ( DeploymentUpdateType
      ( ..,
        DeploymentUpdateType_CURRENT_VERSION,
        DeploymentUpdateType_MAJOR_VERSION,
        DeploymentUpdateType_MINOR_VERSION,
        DeploymentUpdateType_NONE
      ),
  )
where

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

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

pattern DeploymentUpdateType_CURRENT_VERSION :: DeploymentUpdateType
pattern $bDeploymentUpdateType_CURRENT_VERSION :: DeploymentUpdateType
$mDeploymentUpdateType_CURRENT_VERSION :: forall r. DeploymentUpdateType -> (Void# -> r) -> (Void# -> r) -> r
DeploymentUpdateType_CURRENT_VERSION = DeploymentUpdateType' "CURRENT_VERSION"

pattern DeploymentUpdateType_MAJOR_VERSION :: DeploymentUpdateType
pattern $bDeploymentUpdateType_MAJOR_VERSION :: DeploymentUpdateType
$mDeploymentUpdateType_MAJOR_VERSION :: forall r. DeploymentUpdateType -> (Void# -> r) -> (Void# -> r) -> r
DeploymentUpdateType_MAJOR_VERSION = DeploymentUpdateType' "MAJOR_VERSION"

pattern DeploymentUpdateType_MINOR_VERSION :: DeploymentUpdateType
pattern $bDeploymentUpdateType_MINOR_VERSION :: DeploymentUpdateType
$mDeploymentUpdateType_MINOR_VERSION :: forall r. DeploymentUpdateType -> (Void# -> r) -> (Void# -> r) -> r
DeploymentUpdateType_MINOR_VERSION = DeploymentUpdateType' "MINOR_VERSION"

pattern DeploymentUpdateType_NONE :: DeploymentUpdateType
pattern $bDeploymentUpdateType_NONE :: DeploymentUpdateType
$mDeploymentUpdateType_NONE :: forall r. DeploymentUpdateType -> (Void# -> r) -> (Void# -> r) -> r
DeploymentUpdateType_NONE = DeploymentUpdateType' "NONE"

{-# COMPLETE
  DeploymentUpdateType_CURRENT_VERSION,
  DeploymentUpdateType_MAJOR_VERSION,
  DeploymentUpdateType_MINOR_VERSION,
  DeploymentUpdateType_NONE,
  DeploymentUpdateType'
  #-}