{-# 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.Lambda.Types.LastUpdateStatus
-- 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.Lambda.Types.LastUpdateStatus
  ( LastUpdateStatus
      ( ..,
        LastUpdateStatus_Failed,
        LastUpdateStatus_InProgress,
        LastUpdateStatus_Successful
      ),
  )
where

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

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

pattern LastUpdateStatus_Failed :: LastUpdateStatus
pattern $bLastUpdateStatus_Failed :: LastUpdateStatus
$mLastUpdateStatus_Failed :: forall r. LastUpdateStatus -> (Void# -> r) -> (Void# -> r) -> r
LastUpdateStatus_Failed = LastUpdateStatus' "Failed"

pattern LastUpdateStatus_InProgress :: LastUpdateStatus
pattern $bLastUpdateStatus_InProgress :: LastUpdateStatus
$mLastUpdateStatus_InProgress :: forall r. LastUpdateStatus -> (Void# -> r) -> (Void# -> r) -> r
LastUpdateStatus_InProgress = LastUpdateStatus' "InProgress"

pattern LastUpdateStatus_Successful :: LastUpdateStatus
pattern $bLastUpdateStatus_Successful :: LastUpdateStatus
$mLastUpdateStatus_Successful :: forall r. LastUpdateStatus -> (Void# -> r) -> (Void# -> r) -> r
LastUpdateStatus_Successful = LastUpdateStatus' "Successful"

{-# COMPLETE
  LastUpdateStatus_Failed,
  LastUpdateStatus_InProgress,
  LastUpdateStatus_Successful,
  LastUpdateStatus'
  #-}