{-# 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.CodeArtifact.Types.PackageVersionStatus
-- 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.CodeArtifact.Types.PackageVersionStatus
  ( PackageVersionStatus
      ( ..,
        PackageVersionStatus_Archived,
        PackageVersionStatus_Deleted,
        PackageVersionStatus_Disposed,
        PackageVersionStatus_Published,
        PackageVersionStatus_Unfinished,
        PackageVersionStatus_Unlisted
      ),
  )
where

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

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

pattern PackageVersionStatus_Archived :: PackageVersionStatus
pattern $bPackageVersionStatus_Archived :: PackageVersionStatus
$mPackageVersionStatus_Archived :: forall r. PackageVersionStatus -> (Void# -> r) -> (Void# -> r) -> r
PackageVersionStatus_Archived = PackageVersionStatus' "Archived"

pattern PackageVersionStatus_Deleted :: PackageVersionStatus
pattern $bPackageVersionStatus_Deleted :: PackageVersionStatus
$mPackageVersionStatus_Deleted :: forall r. PackageVersionStatus -> (Void# -> r) -> (Void# -> r) -> r
PackageVersionStatus_Deleted = PackageVersionStatus' "Deleted"

pattern PackageVersionStatus_Disposed :: PackageVersionStatus
pattern $bPackageVersionStatus_Disposed :: PackageVersionStatus
$mPackageVersionStatus_Disposed :: forall r. PackageVersionStatus -> (Void# -> r) -> (Void# -> r) -> r
PackageVersionStatus_Disposed = PackageVersionStatus' "Disposed"

pattern PackageVersionStatus_Published :: PackageVersionStatus
pattern $bPackageVersionStatus_Published :: PackageVersionStatus
$mPackageVersionStatus_Published :: forall r. PackageVersionStatus -> (Void# -> r) -> (Void# -> r) -> r
PackageVersionStatus_Published = PackageVersionStatus' "Published"

pattern PackageVersionStatus_Unfinished :: PackageVersionStatus
pattern $bPackageVersionStatus_Unfinished :: PackageVersionStatus
$mPackageVersionStatus_Unfinished :: forall r. PackageVersionStatus -> (Void# -> r) -> (Void# -> r) -> r
PackageVersionStatus_Unfinished = PackageVersionStatus' "Unfinished"

pattern PackageVersionStatus_Unlisted :: PackageVersionStatus
pattern $bPackageVersionStatus_Unlisted :: PackageVersionStatus
$mPackageVersionStatus_Unlisted :: forall r. PackageVersionStatus -> (Void# -> r) -> (Void# -> r) -> r
PackageVersionStatus_Unlisted = PackageVersionStatus' "Unlisted"

{-# COMPLETE
  PackageVersionStatus_Archived,
  PackageVersionStatus_Deleted,
  PackageVersionStatus_Disposed,
  PackageVersionStatus_Published,
  PackageVersionStatus_Unfinished,
  PackageVersionStatus_Unlisted,
  PackageVersionStatus'
  #-}