{-# 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.IoTWireless.Types.FuotaTaskStatus
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.IoTWireless.Types.FuotaTaskStatus
  ( FuotaTaskStatus
      ( ..,
        FuotaTaskStatus_Delete_Waiting,
        FuotaTaskStatus_FuotaDone,
        FuotaTaskStatus_FuotaSession_Waiting,
        FuotaTaskStatus_In_FuotaSession,
        FuotaTaskStatus_Pending
      ),
  )
where

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

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

pattern FuotaTaskStatus_Delete_Waiting :: FuotaTaskStatus
pattern $bFuotaTaskStatus_Delete_Waiting :: FuotaTaskStatus
$mFuotaTaskStatus_Delete_Waiting :: forall {r}. FuotaTaskStatus -> ((# #) -> r) -> ((# #) -> r) -> r
FuotaTaskStatus_Delete_Waiting = FuotaTaskStatus' "Delete_Waiting"

pattern FuotaTaskStatus_FuotaDone :: FuotaTaskStatus
pattern $bFuotaTaskStatus_FuotaDone :: FuotaTaskStatus
$mFuotaTaskStatus_FuotaDone :: forall {r}. FuotaTaskStatus -> ((# #) -> r) -> ((# #) -> r) -> r
FuotaTaskStatus_FuotaDone = FuotaTaskStatus' "FuotaDone"

pattern FuotaTaskStatus_FuotaSession_Waiting :: FuotaTaskStatus
pattern $bFuotaTaskStatus_FuotaSession_Waiting :: FuotaTaskStatus
$mFuotaTaskStatus_FuotaSession_Waiting :: forall {r}. FuotaTaskStatus -> ((# #) -> r) -> ((# #) -> r) -> r
FuotaTaskStatus_FuotaSession_Waiting = FuotaTaskStatus' "FuotaSession_Waiting"

pattern FuotaTaskStatus_In_FuotaSession :: FuotaTaskStatus
pattern $bFuotaTaskStatus_In_FuotaSession :: FuotaTaskStatus
$mFuotaTaskStatus_In_FuotaSession :: forall {r}. FuotaTaskStatus -> ((# #) -> r) -> ((# #) -> r) -> r
FuotaTaskStatus_In_FuotaSession = FuotaTaskStatus' "In_FuotaSession"

pattern FuotaTaskStatus_Pending :: FuotaTaskStatus
pattern $bFuotaTaskStatus_Pending :: FuotaTaskStatus
$mFuotaTaskStatus_Pending :: forall {r}. FuotaTaskStatus -> ((# #) -> r) -> ((# #) -> r) -> r
FuotaTaskStatus_Pending = FuotaTaskStatus' "Pending"

{-# COMPLETE
  FuotaTaskStatus_Delete_Waiting,
  FuotaTaskStatus_FuotaDone,
  FuotaTaskStatus_FuotaSession_Waiting,
  FuotaTaskStatus_In_FuotaSession,
  FuotaTaskStatus_Pending,
  FuotaTaskStatus'
  #-}