{-# 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.NetworkManager.Types.ConnectPeerState
-- 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.NetworkManager.Types.ConnectPeerState
  ( ConnectPeerState
      ( ..,
        ConnectPeerState_AVAILABLE,
        ConnectPeerState_CREATING,
        ConnectPeerState_DELETING,
        ConnectPeerState_FAILED
      ),
  )
where

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

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

pattern ConnectPeerState_AVAILABLE :: ConnectPeerState
pattern $bConnectPeerState_AVAILABLE :: ConnectPeerState
$mConnectPeerState_AVAILABLE :: forall {r}. ConnectPeerState -> ((# #) -> r) -> ((# #) -> r) -> r
ConnectPeerState_AVAILABLE = ConnectPeerState' "AVAILABLE"

pattern ConnectPeerState_CREATING :: ConnectPeerState
pattern $bConnectPeerState_CREATING :: ConnectPeerState
$mConnectPeerState_CREATING :: forall {r}. ConnectPeerState -> ((# #) -> r) -> ((# #) -> r) -> r
ConnectPeerState_CREATING = ConnectPeerState' "CREATING"

pattern ConnectPeerState_DELETING :: ConnectPeerState
pattern $bConnectPeerState_DELETING :: ConnectPeerState
$mConnectPeerState_DELETING :: forall {r}. ConnectPeerState -> ((# #) -> r) -> ((# #) -> r) -> r
ConnectPeerState_DELETING = ConnectPeerState' "DELETING"

pattern ConnectPeerState_FAILED :: ConnectPeerState
pattern $bConnectPeerState_FAILED :: ConnectPeerState
$mConnectPeerState_FAILED :: forall {r}. ConnectPeerState -> ((# #) -> r) -> ((# #) -> r) -> r
ConnectPeerState_FAILED = ConnectPeerState' "FAILED"

{-# COMPLETE
  ConnectPeerState_AVAILABLE,
  ConnectPeerState_CREATING,
  ConnectPeerState_DELETING,
  ConnectPeerState_FAILED,
  ConnectPeerState'
  #-}