{-# 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.CodeBuild.Types.BuildPhaseType
-- 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.CodeBuild.Types.BuildPhaseType
  ( BuildPhaseType
      ( ..,
        BuildPhaseType_BUILD,
        BuildPhaseType_COMPLETED,
        BuildPhaseType_DOWNLOAD_SOURCE,
        BuildPhaseType_FINALIZING,
        BuildPhaseType_INSTALL,
        BuildPhaseType_POST_BUILD,
        BuildPhaseType_PRE_BUILD,
        BuildPhaseType_PROVISIONING,
        BuildPhaseType_QUEUED,
        BuildPhaseType_SUBMITTED,
        BuildPhaseType_UPLOAD_ARTIFACTS
      ),
  )
where

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

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

pattern BuildPhaseType_BUILD :: BuildPhaseType
pattern $bBuildPhaseType_BUILD :: BuildPhaseType
$mBuildPhaseType_BUILD :: forall r. BuildPhaseType -> (Void# -> r) -> (Void# -> r) -> r
BuildPhaseType_BUILD = BuildPhaseType' "BUILD"

pattern BuildPhaseType_COMPLETED :: BuildPhaseType
pattern $bBuildPhaseType_COMPLETED :: BuildPhaseType
$mBuildPhaseType_COMPLETED :: forall r. BuildPhaseType -> (Void# -> r) -> (Void# -> r) -> r
BuildPhaseType_COMPLETED = BuildPhaseType' "COMPLETED"

pattern BuildPhaseType_DOWNLOAD_SOURCE :: BuildPhaseType
pattern $bBuildPhaseType_DOWNLOAD_SOURCE :: BuildPhaseType
$mBuildPhaseType_DOWNLOAD_SOURCE :: forall r. BuildPhaseType -> (Void# -> r) -> (Void# -> r) -> r
BuildPhaseType_DOWNLOAD_SOURCE = BuildPhaseType' "DOWNLOAD_SOURCE"

pattern BuildPhaseType_FINALIZING :: BuildPhaseType
pattern $bBuildPhaseType_FINALIZING :: BuildPhaseType
$mBuildPhaseType_FINALIZING :: forall r. BuildPhaseType -> (Void# -> r) -> (Void# -> r) -> r
BuildPhaseType_FINALIZING = BuildPhaseType' "FINALIZING"

pattern BuildPhaseType_INSTALL :: BuildPhaseType
pattern $bBuildPhaseType_INSTALL :: BuildPhaseType
$mBuildPhaseType_INSTALL :: forall r. BuildPhaseType -> (Void# -> r) -> (Void# -> r) -> r
BuildPhaseType_INSTALL = BuildPhaseType' "INSTALL"

pattern BuildPhaseType_POST_BUILD :: BuildPhaseType
pattern $bBuildPhaseType_POST_BUILD :: BuildPhaseType
$mBuildPhaseType_POST_BUILD :: forall r. BuildPhaseType -> (Void# -> r) -> (Void# -> r) -> r
BuildPhaseType_POST_BUILD = BuildPhaseType' "POST_BUILD"

pattern BuildPhaseType_PRE_BUILD :: BuildPhaseType
pattern $bBuildPhaseType_PRE_BUILD :: BuildPhaseType
$mBuildPhaseType_PRE_BUILD :: forall r. BuildPhaseType -> (Void# -> r) -> (Void# -> r) -> r
BuildPhaseType_PRE_BUILD = BuildPhaseType' "PRE_BUILD"

pattern BuildPhaseType_PROVISIONING :: BuildPhaseType
pattern $bBuildPhaseType_PROVISIONING :: BuildPhaseType
$mBuildPhaseType_PROVISIONING :: forall r. BuildPhaseType -> (Void# -> r) -> (Void# -> r) -> r
BuildPhaseType_PROVISIONING = BuildPhaseType' "PROVISIONING"

pattern BuildPhaseType_QUEUED :: BuildPhaseType
pattern $bBuildPhaseType_QUEUED :: BuildPhaseType
$mBuildPhaseType_QUEUED :: forall r. BuildPhaseType -> (Void# -> r) -> (Void# -> r) -> r
BuildPhaseType_QUEUED = BuildPhaseType' "QUEUED"

pattern BuildPhaseType_SUBMITTED :: BuildPhaseType
pattern $bBuildPhaseType_SUBMITTED :: BuildPhaseType
$mBuildPhaseType_SUBMITTED :: forall r. BuildPhaseType -> (Void# -> r) -> (Void# -> r) -> r
BuildPhaseType_SUBMITTED = BuildPhaseType' "SUBMITTED"

pattern BuildPhaseType_UPLOAD_ARTIFACTS :: BuildPhaseType
pattern $bBuildPhaseType_UPLOAD_ARTIFACTS :: BuildPhaseType
$mBuildPhaseType_UPLOAD_ARTIFACTS :: forall r. BuildPhaseType -> (Void# -> r) -> (Void# -> r) -> r
BuildPhaseType_UPLOAD_ARTIFACTS = BuildPhaseType' "UPLOAD_ARTIFACTS"

{-# COMPLETE
  BuildPhaseType_BUILD,
  BuildPhaseType_COMPLETED,
  BuildPhaseType_DOWNLOAD_SOURCE,
  BuildPhaseType_FINALIZING,
  BuildPhaseType_INSTALL,
  BuildPhaseType_POST_BUILD,
  BuildPhaseType_PRE_BUILD,
  BuildPhaseType_PROVISIONING,
  BuildPhaseType_QUEUED,
  BuildPhaseType_SUBMITTED,
  BuildPhaseType_UPLOAD_ARTIFACTS,
  BuildPhaseType'
  #-}