{-# 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.WorkDocs.Types.CommentStatusType
-- 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.WorkDocs.Types.CommentStatusType
  ( CommentStatusType
      ( ..,
        CommentStatusType_DELETED,
        CommentStatusType_DRAFT,
        CommentStatusType_PUBLISHED
      ),
  )
where

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

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

pattern CommentStatusType_DELETED :: CommentStatusType
pattern $bCommentStatusType_DELETED :: CommentStatusType
$mCommentStatusType_DELETED :: forall r. CommentStatusType -> (Void# -> r) -> (Void# -> r) -> r
CommentStatusType_DELETED = CommentStatusType' "DELETED"

pattern CommentStatusType_DRAFT :: CommentStatusType
pattern $bCommentStatusType_DRAFT :: CommentStatusType
$mCommentStatusType_DRAFT :: forall r. CommentStatusType -> (Void# -> r) -> (Void# -> r) -> r
CommentStatusType_DRAFT = CommentStatusType' "DRAFT"

pattern CommentStatusType_PUBLISHED :: CommentStatusType
pattern $bCommentStatusType_PUBLISHED :: CommentStatusType
$mCommentStatusType_PUBLISHED :: forall r. CommentStatusType -> (Void# -> r) -> (Void# -> r) -> r
CommentStatusType_PUBLISHED = CommentStatusType' "PUBLISHED"

{-# COMPLETE
  CommentStatusType_DELETED,
  CommentStatusType_DRAFT,
  CommentStatusType_PUBLISHED,
  CommentStatusType'
  #-}