{-# 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.Panorama.Types.StatusFilter
-- 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.Panorama.Types.StatusFilter
  ( StatusFilter
      ( ..,
        StatusFilter_DEPLOYMENT_ERROR,
        StatusFilter_DEPLOYMENT_SUCCEEDED,
        StatusFilter_PROCESSING_DEPLOYMENT,
        StatusFilter_PROCESSING_REMOVAL,
        StatusFilter_REMOVAL_FAILED,
        StatusFilter_REMOVAL_SUCCEEDED
      ),
  )
where

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

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

pattern StatusFilter_DEPLOYMENT_ERROR :: StatusFilter
pattern $bStatusFilter_DEPLOYMENT_ERROR :: StatusFilter
$mStatusFilter_DEPLOYMENT_ERROR :: forall r. StatusFilter -> (Void# -> r) -> (Void# -> r) -> r
StatusFilter_DEPLOYMENT_ERROR = StatusFilter' "DEPLOYMENT_ERROR"

pattern StatusFilter_DEPLOYMENT_SUCCEEDED :: StatusFilter
pattern $bStatusFilter_DEPLOYMENT_SUCCEEDED :: StatusFilter
$mStatusFilter_DEPLOYMENT_SUCCEEDED :: forall r. StatusFilter -> (Void# -> r) -> (Void# -> r) -> r
StatusFilter_DEPLOYMENT_SUCCEEDED = StatusFilter' "DEPLOYMENT_SUCCEEDED"

pattern StatusFilter_PROCESSING_DEPLOYMENT :: StatusFilter
pattern $bStatusFilter_PROCESSING_DEPLOYMENT :: StatusFilter
$mStatusFilter_PROCESSING_DEPLOYMENT :: forall r. StatusFilter -> (Void# -> r) -> (Void# -> r) -> r
StatusFilter_PROCESSING_DEPLOYMENT = StatusFilter' "PROCESSING_DEPLOYMENT"

pattern StatusFilter_PROCESSING_REMOVAL :: StatusFilter
pattern $bStatusFilter_PROCESSING_REMOVAL :: StatusFilter
$mStatusFilter_PROCESSING_REMOVAL :: forall r. StatusFilter -> (Void# -> r) -> (Void# -> r) -> r
StatusFilter_PROCESSING_REMOVAL = StatusFilter' "PROCESSING_REMOVAL"

pattern StatusFilter_REMOVAL_FAILED :: StatusFilter
pattern $bStatusFilter_REMOVAL_FAILED :: StatusFilter
$mStatusFilter_REMOVAL_FAILED :: forall r. StatusFilter -> (Void# -> r) -> (Void# -> r) -> r
StatusFilter_REMOVAL_FAILED = StatusFilter' "REMOVAL_FAILED"

pattern StatusFilter_REMOVAL_SUCCEEDED :: StatusFilter
pattern $bStatusFilter_REMOVAL_SUCCEEDED :: StatusFilter
$mStatusFilter_REMOVAL_SUCCEEDED :: forall r. StatusFilter -> (Void# -> r) -> (Void# -> r) -> r
StatusFilter_REMOVAL_SUCCEEDED = StatusFilter' "REMOVAL_SUCCEEDED"

{-# COMPLETE
  StatusFilter_DEPLOYMENT_ERROR,
  StatusFilter_DEPLOYMENT_SUCCEEDED,
  StatusFilter_PROCESSING_DEPLOYMENT,
  StatusFilter_PROCESSING_REMOVAL,
  StatusFilter_REMOVAL_FAILED,
  StatusFilter_REMOVAL_SUCCEEDED,
  StatusFilter'
  #-}