{-# 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.SSM.Types.ReviewStatus
-- 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.SSM.Types.ReviewStatus
  ( ReviewStatus
      ( ..,
        ReviewStatus_APPROVED,
        ReviewStatus_NOT_REVIEWED,
        ReviewStatus_PENDING,
        ReviewStatus_REJECTED
      ),
  )
where

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

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

pattern ReviewStatus_APPROVED :: ReviewStatus
pattern $bReviewStatus_APPROVED :: ReviewStatus
$mReviewStatus_APPROVED :: forall r. ReviewStatus -> (Void# -> r) -> (Void# -> r) -> r
ReviewStatus_APPROVED = ReviewStatus' "APPROVED"

pattern ReviewStatus_NOT_REVIEWED :: ReviewStatus
pattern $bReviewStatus_NOT_REVIEWED :: ReviewStatus
$mReviewStatus_NOT_REVIEWED :: forall r. ReviewStatus -> (Void# -> r) -> (Void# -> r) -> r
ReviewStatus_NOT_REVIEWED = ReviewStatus' "NOT_REVIEWED"

pattern ReviewStatus_PENDING :: ReviewStatus
pattern $bReviewStatus_PENDING :: ReviewStatus
$mReviewStatus_PENDING :: forall r. ReviewStatus -> (Void# -> r) -> (Void# -> r) -> r
ReviewStatus_PENDING = ReviewStatus' "PENDING"

pattern ReviewStatus_REJECTED :: ReviewStatus
pattern $bReviewStatus_REJECTED :: ReviewStatus
$mReviewStatus_REJECTED :: forall r. ReviewStatus -> (Void# -> r) -> (Void# -> r) -> r
ReviewStatus_REJECTED = ReviewStatus' "REJECTED"

{-# COMPLETE
  ReviewStatus_APPROVED,
  ReviewStatus_NOT_REVIEWED,
  ReviewStatus_PENDING,
  ReviewStatus_REJECTED,
  ReviewStatus'
  #-}