{-# 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.Lightsail.Types.AccountLevelBpaSyncStatus
-- 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.Lightsail.Types.AccountLevelBpaSyncStatus
  ( AccountLevelBpaSyncStatus
      ( ..,
        AccountLevelBpaSyncStatus_Defaulted,
        AccountLevelBpaSyncStatus_Failed,
        AccountLevelBpaSyncStatus_InSync,
        AccountLevelBpaSyncStatus_NeverSynced
      ),
  )
where

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

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

pattern AccountLevelBpaSyncStatus_Defaulted :: AccountLevelBpaSyncStatus
pattern $bAccountLevelBpaSyncStatus_Defaulted :: AccountLevelBpaSyncStatus
$mAccountLevelBpaSyncStatus_Defaulted :: forall {r}.
AccountLevelBpaSyncStatus -> ((# #) -> r) -> ((# #) -> r) -> r
AccountLevelBpaSyncStatus_Defaulted = AccountLevelBpaSyncStatus' "Defaulted"

pattern AccountLevelBpaSyncStatus_Failed :: AccountLevelBpaSyncStatus
pattern $bAccountLevelBpaSyncStatus_Failed :: AccountLevelBpaSyncStatus
$mAccountLevelBpaSyncStatus_Failed :: forall {r}.
AccountLevelBpaSyncStatus -> ((# #) -> r) -> ((# #) -> r) -> r
AccountLevelBpaSyncStatus_Failed = AccountLevelBpaSyncStatus' "Failed"

pattern AccountLevelBpaSyncStatus_InSync :: AccountLevelBpaSyncStatus
pattern $bAccountLevelBpaSyncStatus_InSync :: AccountLevelBpaSyncStatus
$mAccountLevelBpaSyncStatus_InSync :: forall {r}.
AccountLevelBpaSyncStatus -> ((# #) -> r) -> ((# #) -> r) -> r
AccountLevelBpaSyncStatus_InSync = AccountLevelBpaSyncStatus' "InSync"

pattern AccountLevelBpaSyncStatus_NeverSynced :: AccountLevelBpaSyncStatus
pattern $bAccountLevelBpaSyncStatus_NeverSynced :: AccountLevelBpaSyncStatus
$mAccountLevelBpaSyncStatus_NeverSynced :: forall {r}.
AccountLevelBpaSyncStatus -> ((# #) -> r) -> ((# #) -> r) -> r
AccountLevelBpaSyncStatus_NeverSynced = AccountLevelBpaSyncStatus' "NeverSynced"

{-# COMPLETE
  AccountLevelBpaSyncStatus_Defaulted,
  AccountLevelBpaSyncStatus_Failed,
  AccountLevelBpaSyncStatus_InSync,
  AccountLevelBpaSyncStatus_NeverSynced,
  AccountLevelBpaSyncStatus'
  #-}