{-# 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.FSx.Types.BackupLifecycle
-- 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.FSx.Types.BackupLifecycle
  ( BackupLifecycle
      ( ..,
        BackupLifecycle_AVAILABLE,
        BackupLifecycle_COPYING,
        BackupLifecycle_CREATING,
        BackupLifecycle_DELETED,
        BackupLifecycle_FAILED,
        BackupLifecycle_PENDING,
        BackupLifecycle_TRANSFERRING
      ),
  )
where

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

-- | The lifecycle status of the backup.
--
-- -   @AVAILABLE@ - The backup is fully available.
--
-- -   @PENDING@ - For user-initiated backups on Lustre file systems only;
--     Amazon FSx hasn\'t started creating the backup.
--
-- -   @CREATING@ - Amazon FSx is creating the new user-initiated backup.
--
-- -   @TRANSFERRING@ - For user-initiated backups on Lustre file systems
--     only; Amazon FSx is backing up the file system.
--
-- -   @COPYING@ - Amazon FSx is copying the backup.
--
-- -   @DELETED@ - Amazon FSx deleted the backup and it\'s no longer
--     available.
--
-- -   @FAILED@ - Amazon FSx couldn\'t finish the backup.
newtype BackupLifecycle = BackupLifecycle'
  { BackupLifecycle -> Text
fromBackupLifecycle ::
      Data.Text
  }
  deriving stock
    ( Int -> BackupLifecycle -> ShowS
[BackupLifecycle] -> ShowS
BackupLifecycle -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [BackupLifecycle] -> ShowS
$cshowList :: [BackupLifecycle] -> ShowS
show :: BackupLifecycle -> String
$cshow :: BackupLifecycle -> String
showsPrec :: Int -> BackupLifecycle -> ShowS
$cshowsPrec :: Int -> BackupLifecycle -> ShowS
Prelude.Show,
      ReadPrec [BackupLifecycle]
ReadPrec BackupLifecycle
Int -> ReadS BackupLifecycle
ReadS [BackupLifecycle]
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [BackupLifecycle]
$creadListPrec :: ReadPrec [BackupLifecycle]
readPrec :: ReadPrec BackupLifecycle
$creadPrec :: ReadPrec BackupLifecycle
readList :: ReadS [BackupLifecycle]
$creadList :: ReadS [BackupLifecycle]
readsPrec :: Int -> ReadS BackupLifecycle
$creadsPrec :: Int -> ReadS BackupLifecycle
Prelude.Read,
      BackupLifecycle -> BackupLifecycle -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: BackupLifecycle -> BackupLifecycle -> Bool
$c/= :: BackupLifecycle -> BackupLifecycle -> Bool
== :: BackupLifecycle -> BackupLifecycle -> Bool
$c== :: BackupLifecycle -> BackupLifecycle -> Bool
Prelude.Eq,
      Eq BackupLifecycle
BackupLifecycle -> BackupLifecycle -> Bool
BackupLifecycle -> BackupLifecycle -> Ordering
BackupLifecycle -> BackupLifecycle -> BackupLifecycle
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 :: BackupLifecycle -> BackupLifecycle -> BackupLifecycle
$cmin :: BackupLifecycle -> BackupLifecycle -> BackupLifecycle
max :: BackupLifecycle -> BackupLifecycle -> BackupLifecycle
$cmax :: BackupLifecycle -> BackupLifecycle -> BackupLifecycle
>= :: BackupLifecycle -> BackupLifecycle -> Bool
$c>= :: BackupLifecycle -> BackupLifecycle -> Bool
> :: BackupLifecycle -> BackupLifecycle -> Bool
$c> :: BackupLifecycle -> BackupLifecycle -> Bool
<= :: BackupLifecycle -> BackupLifecycle -> Bool
$c<= :: BackupLifecycle -> BackupLifecycle -> Bool
< :: BackupLifecycle -> BackupLifecycle -> Bool
$c< :: BackupLifecycle -> BackupLifecycle -> Bool
compare :: BackupLifecycle -> BackupLifecycle -> Ordering
$ccompare :: BackupLifecycle -> BackupLifecycle -> Ordering
Prelude.Ord,
      forall x. Rep BackupLifecycle x -> BackupLifecycle
forall x. BackupLifecycle -> Rep BackupLifecycle x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep BackupLifecycle x -> BackupLifecycle
$cfrom :: forall x. BackupLifecycle -> Rep BackupLifecycle x
Prelude.Generic
    )
  deriving newtype
    ( Eq BackupLifecycle
Int -> BackupLifecycle -> Int
BackupLifecycle -> Int
forall a. Eq a -> (Int -> a -> Int) -> (a -> Int) -> Hashable a
hash :: BackupLifecycle -> Int
$chash :: BackupLifecycle -> Int
hashWithSalt :: Int -> BackupLifecycle -> Int
$chashWithSalt :: Int -> BackupLifecycle -> Int
Prelude.Hashable,
      BackupLifecycle -> ()
forall a. (a -> ()) -> NFData a
rnf :: BackupLifecycle -> ()
$crnf :: BackupLifecycle -> ()
Prelude.NFData,
      Text -> Either String BackupLifecycle
forall a. (Text -> Either String a) -> FromText a
fromText :: Text -> Either String BackupLifecycle
$cfromText :: Text -> Either String BackupLifecycle
Data.FromText,
      BackupLifecycle -> Text
forall a. (a -> Text) -> ToText a
toText :: BackupLifecycle -> Text
$ctoText :: BackupLifecycle -> Text
Data.ToText,
      BackupLifecycle -> ByteString
forall a. (a -> ByteString) -> ToByteString a
toBS :: BackupLifecycle -> ByteString
$ctoBS :: BackupLifecycle -> ByteString
Data.ToByteString,
      BackupLifecycle -> ByteStringBuilder
forall a. (a -> ByteStringBuilder) -> ToLog a
build :: BackupLifecycle -> ByteStringBuilder
$cbuild :: BackupLifecycle -> ByteStringBuilder
Data.ToLog,
      HeaderName -> BackupLifecycle -> [Header]
forall a. (HeaderName -> a -> [Header]) -> ToHeader a
toHeader :: HeaderName -> BackupLifecycle -> [Header]
$ctoHeader :: HeaderName -> BackupLifecycle -> [Header]
Data.ToHeader,
      BackupLifecycle -> QueryString
forall a. (a -> QueryString) -> ToQuery a
toQuery :: BackupLifecycle -> QueryString
$ctoQuery :: BackupLifecycle -> QueryString
Data.ToQuery,
      Value -> Parser [BackupLifecycle]
Value -> Parser BackupLifecycle
forall a.
(Value -> Parser a) -> (Value -> Parser [a]) -> FromJSON a
parseJSONList :: Value -> Parser [BackupLifecycle]
$cparseJSONList :: Value -> Parser [BackupLifecycle]
parseJSON :: Value -> Parser BackupLifecycle
$cparseJSON :: Value -> Parser BackupLifecycle
Data.FromJSON,
      FromJSONKeyFunction [BackupLifecycle]
FromJSONKeyFunction BackupLifecycle
forall a.
FromJSONKeyFunction a -> FromJSONKeyFunction [a] -> FromJSONKey a
fromJSONKeyList :: FromJSONKeyFunction [BackupLifecycle]
$cfromJSONKeyList :: FromJSONKeyFunction [BackupLifecycle]
fromJSONKey :: FromJSONKeyFunction BackupLifecycle
$cfromJSONKey :: FromJSONKeyFunction BackupLifecycle
Data.FromJSONKey,
      [BackupLifecycle] -> Encoding
[BackupLifecycle] -> Value
BackupLifecycle -> Encoding
BackupLifecycle -> Value
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [BackupLifecycle] -> Encoding
$ctoEncodingList :: [BackupLifecycle] -> Encoding
toJSONList :: [BackupLifecycle] -> Value
$ctoJSONList :: [BackupLifecycle] -> Value
toEncoding :: BackupLifecycle -> Encoding
$ctoEncoding :: BackupLifecycle -> Encoding
toJSON :: BackupLifecycle -> Value
$ctoJSON :: BackupLifecycle -> Value
Data.ToJSON,
      ToJSONKeyFunction [BackupLifecycle]
ToJSONKeyFunction BackupLifecycle
forall a.
ToJSONKeyFunction a -> ToJSONKeyFunction [a] -> ToJSONKey a
toJSONKeyList :: ToJSONKeyFunction [BackupLifecycle]
$ctoJSONKeyList :: ToJSONKeyFunction [BackupLifecycle]
toJSONKey :: ToJSONKeyFunction BackupLifecycle
$ctoJSONKey :: ToJSONKeyFunction BackupLifecycle
Data.ToJSONKey,
      [Node] -> Either String BackupLifecycle
forall a. ([Node] -> Either String a) -> FromXML a
parseXML :: [Node] -> Either String BackupLifecycle
$cparseXML :: [Node] -> Either String BackupLifecycle
Data.FromXML,
      BackupLifecycle -> XML
forall a. (a -> XML) -> ToXML a
toXML :: BackupLifecycle -> XML
$ctoXML :: BackupLifecycle -> XML
Data.ToXML
    )

pattern BackupLifecycle_AVAILABLE :: BackupLifecycle
pattern $bBackupLifecycle_AVAILABLE :: BackupLifecycle
$mBackupLifecycle_AVAILABLE :: forall {r}. BackupLifecycle -> ((# #) -> r) -> ((# #) -> r) -> r
BackupLifecycle_AVAILABLE = BackupLifecycle' "AVAILABLE"

pattern BackupLifecycle_COPYING :: BackupLifecycle
pattern $bBackupLifecycle_COPYING :: BackupLifecycle
$mBackupLifecycle_COPYING :: forall {r}. BackupLifecycle -> ((# #) -> r) -> ((# #) -> r) -> r
BackupLifecycle_COPYING = BackupLifecycle' "COPYING"

pattern BackupLifecycle_CREATING :: BackupLifecycle
pattern $bBackupLifecycle_CREATING :: BackupLifecycle
$mBackupLifecycle_CREATING :: forall {r}. BackupLifecycle -> ((# #) -> r) -> ((# #) -> r) -> r
BackupLifecycle_CREATING = BackupLifecycle' "CREATING"

pattern BackupLifecycle_DELETED :: BackupLifecycle
pattern $bBackupLifecycle_DELETED :: BackupLifecycle
$mBackupLifecycle_DELETED :: forall {r}. BackupLifecycle -> ((# #) -> r) -> ((# #) -> r) -> r
BackupLifecycle_DELETED = BackupLifecycle' "DELETED"

pattern BackupLifecycle_FAILED :: BackupLifecycle
pattern $bBackupLifecycle_FAILED :: BackupLifecycle
$mBackupLifecycle_FAILED :: forall {r}. BackupLifecycle -> ((# #) -> r) -> ((# #) -> r) -> r
BackupLifecycle_FAILED = BackupLifecycle' "FAILED"

pattern BackupLifecycle_PENDING :: BackupLifecycle
pattern $bBackupLifecycle_PENDING :: BackupLifecycle
$mBackupLifecycle_PENDING :: forall {r}. BackupLifecycle -> ((# #) -> r) -> ((# #) -> r) -> r
BackupLifecycle_PENDING = BackupLifecycle' "PENDING"

pattern BackupLifecycle_TRANSFERRING :: BackupLifecycle
pattern $bBackupLifecycle_TRANSFERRING :: BackupLifecycle
$mBackupLifecycle_TRANSFERRING :: forall {r}. BackupLifecycle -> ((# #) -> r) -> ((# #) -> r) -> r
BackupLifecycle_TRANSFERRING = BackupLifecycle' "TRANSFERRING"

{-# COMPLETE
  BackupLifecycle_AVAILABLE,
  BackupLifecycle_COPYING,
  BackupLifecycle_CREATING,
  BackupLifecycle_DELETED,
  BackupLifecycle_FAILED,
  BackupLifecycle_PENDING,
  BackupLifecycle_TRANSFERRING,
  BackupLifecycle'
  #-}