{-# 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.WAFV2.Types.ResponseContentType
-- Copyright   : (c) 2013-2023 Brendan Hay
-- License     : Mozilla Public License, v. 2.0.
-- Maintainer  : Brendan Hay
-- Stability   : auto-generated
-- Portability : non-portable (GHC extensions)
module Amazonka.WAFV2.Types.ResponseContentType
  ( ResponseContentType
      ( ..,
        ResponseContentType_APPLICATION_JSON,
        ResponseContentType_TEXT_HTML,
        ResponseContentType_TEXT_PLAIN
      ),
  )
where

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

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

pattern ResponseContentType_APPLICATION_JSON :: ResponseContentType
pattern $bResponseContentType_APPLICATION_JSON :: ResponseContentType
$mResponseContentType_APPLICATION_JSON :: forall {r}.
ResponseContentType -> ((# #) -> r) -> ((# #) -> r) -> r
ResponseContentType_APPLICATION_JSON = ResponseContentType' "APPLICATION_JSON"

pattern ResponseContentType_TEXT_HTML :: ResponseContentType
pattern $bResponseContentType_TEXT_HTML :: ResponseContentType
$mResponseContentType_TEXT_HTML :: forall {r}.
ResponseContentType -> ((# #) -> r) -> ((# #) -> r) -> r
ResponseContentType_TEXT_HTML = ResponseContentType' "TEXT_HTML"

pattern ResponseContentType_TEXT_PLAIN :: ResponseContentType
pattern $bResponseContentType_TEXT_PLAIN :: ResponseContentType
$mResponseContentType_TEXT_PLAIN :: forall {r}.
ResponseContentType -> ((# #) -> r) -> ((# #) -> r) -> r
ResponseContentType_TEXT_PLAIN = ResponseContentType' "TEXT_PLAIN"

{-# COMPLETE
  ResponseContentType_APPLICATION_JSON,
  ResponseContentType_TEXT_HTML,
  ResponseContentType_TEXT_PLAIN,
  ResponseContentType'
  #-}