{-# 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.AliasLifecycle
-- 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.AliasLifecycle
  ( AliasLifecycle
      ( ..,
        AliasLifecycle_AVAILABLE,
        AliasLifecycle_CREATE_FAILED,
        AliasLifecycle_CREATING,
        AliasLifecycle_DELETE_FAILED,
        AliasLifecycle_DELETING
      ),
  )
where

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

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

pattern AliasLifecycle_AVAILABLE :: AliasLifecycle
pattern $bAliasLifecycle_AVAILABLE :: AliasLifecycle
$mAliasLifecycle_AVAILABLE :: forall {r}. AliasLifecycle -> ((# #) -> r) -> ((# #) -> r) -> r
AliasLifecycle_AVAILABLE = AliasLifecycle' "AVAILABLE"

pattern AliasLifecycle_CREATE_FAILED :: AliasLifecycle
pattern $bAliasLifecycle_CREATE_FAILED :: AliasLifecycle
$mAliasLifecycle_CREATE_FAILED :: forall {r}. AliasLifecycle -> ((# #) -> r) -> ((# #) -> r) -> r
AliasLifecycle_CREATE_FAILED = AliasLifecycle' "CREATE_FAILED"

pattern AliasLifecycle_CREATING :: AliasLifecycle
pattern $bAliasLifecycle_CREATING :: AliasLifecycle
$mAliasLifecycle_CREATING :: forall {r}. AliasLifecycle -> ((# #) -> r) -> ((# #) -> r) -> r
AliasLifecycle_CREATING = AliasLifecycle' "CREATING"

pattern AliasLifecycle_DELETE_FAILED :: AliasLifecycle
pattern $bAliasLifecycle_DELETE_FAILED :: AliasLifecycle
$mAliasLifecycle_DELETE_FAILED :: forall {r}. AliasLifecycle -> ((# #) -> r) -> ((# #) -> r) -> r
AliasLifecycle_DELETE_FAILED = AliasLifecycle' "DELETE_FAILED"

pattern AliasLifecycle_DELETING :: AliasLifecycle
pattern $bAliasLifecycle_DELETING :: AliasLifecycle
$mAliasLifecycle_DELETING :: forall {r}. AliasLifecycle -> ((# #) -> r) -> ((# #) -> r) -> r
AliasLifecycle_DELETING = AliasLifecycle' "DELETING"

{-# COMPLETE
  AliasLifecycle_AVAILABLE,
  AliasLifecycle_CREATE_FAILED,
  AliasLifecycle_CREATING,
  AliasLifecycle_DELETE_FAILED,
  AliasLifecycle_DELETING,
  AliasLifecycle'
  #-}