{-# 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.GlobalNetworkState
-- Copyright   : (c) 2013-2021 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay <brendan.g.hay+amazonka@gmail.com>
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.NetworkManager.Types.GlobalNetworkState
  ( GlobalNetworkState
      ( ..,
        GlobalNetworkState_AVAILABLE,
        GlobalNetworkState_DELETING,
        GlobalNetworkState_PENDING,
        GlobalNetworkState_UPDATING
      ),
  )
where

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

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

pattern GlobalNetworkState_AVAILABLE :: GlobalNetworkState
pattern $bGlobalNetworkState_AVAILABLE :: GlobalNetworkState
$mGlobalNetworkState_AVAILABLE :: forall r. GlobalNetworkState -> (Void# -> r) -> (Void# -> r) -> r
GlobalNetworkState_AVAILABLE = GlobalNetworkState' "AVAILABLE"

pattern GlobalNetworkState_DELETING :: GlobalNetworkState
pattern $bGlobalNetworkState_DELETING :: GlobalNetworkState
$mGlobalNetworkState_DELETING :: forall r. GlobalNetworkState -> (Void# -> r) -> (Void# -> r) -> r
GlobalNetworkState_DELETING = GlobalNetworkState' "DELETING"

pattern GlobalNetworkState_PENDING :: GlobalNetworkState
pattern $bGlobalNetworkState_PENDING :: GlobalNetworkState
$mGlobalNetworkState_PENDING :: forall r. GlobalNetworkState -> (Void# -> r) -> (Void# -> r) -> r
GlobalNetworkState_PENDING = GlobalNetworkState' "PENDING"

pattern GlobalNetworkState_UPDATING :: GlobalNetworkState
pattern $bGlobalNetworkState_UPDATING :: GlobalNetworkState
$mGlobalNetworkState_UPDATING :: forall r. GlobalNetworkState -> (Void# -> r) -> (Void# -> r) -> r
GlobalNetworkState_UPDATING = GlobalNetworkState' "UPDATING"

{-# COMPLETE
  GlobalNetworkState_AVAILABLE,
  GlobalNetworkState_DELETING,
  GlobalNetworkState_PENDING,
  GlobalNetworkState_UPDATING,
  GlobalNetworkState'
  #-}