{-# 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.NetworkFirewall.Types.AttachmentStatus
-- 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.NetworkFirewall.Types.AttachmentStatus
  ( AttachmentStatus
      ( ..,
        AttachmentStatus_CREATING,
        AttachmentStatus_DELETING,
        AttachmentStatus_READY,
        AttachmentStatus_SCALING
      ),
  )
where

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

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

pattern AttachmentStatus_CREATING :: AttachmentStatus
pattern $bAttachmentStatus_CREATING :: AttachmentStatus
$mAttachmentStatus_CREATING :: forall r. AttachmentStatus -> (Void# -> r) -> (Void# -> r) -> r
AttachmentStatus_CREATING = AttachmentStatus' "CREATING"

pattern AttachmentStatus_DELETING :: AttachmentStatus
pattern $bAttachmentStatus_DELETING :: AttachmentStatus
$mAttachmentStatus_DELETING :: forall r. AttachmentStatus -> (Void# -> r) -> (Void# -> r) -> r
AttachmentStatus_DELETING = AttachmentStatus' "DELETING"

pattern AttachmentStatus_READY :: AttachmentStatus
pattern $bAttachmentStatus_READY :: AttachmentStatus
$mAttachmentStatus_READY :: forall r. AttachmentStatus -> (Void# -> r) -> (Void# -> r) -> r
AttachmentStatus_READY = AttachmentStatus' "READY"

pattern AttachmentStatus_SCALING :: AttachmentStatus
pattern $bAttachmentStatus_SCALING :: AttachmentStatus
$mAttachmentStatus_SCALING :: forall r. AttachmentStatus -> (Void# -> r) -> (Void# -> r) -> r
AttachmentStatus_SCALING = AttachmentStatus' "SCALING"

{-# COMPLETE
  AttachmentStatus_CREATING,
  AttachmentStatus_DELETING,
  AttachmentStatus_READY,
  AttachmentStatus_SCALING,
  AttachmentStatus'
  #-}