{-# 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.APIGateway.Types.GatewayResponseType
-- 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.APIGateway.Types.GatewayResponseType
  ( GatewayResponseType
      ( ..,
        GatewayResponseType_ACCESS_DENIED,
        GatewayResponseType_API_CONFIGURATION_ERROR,
        GatewayResponseType_AUTHORIZER_CONFIGURATION_ERROR,
        GatewayResponseType_AUTHORIZER_FAILURE,
        GatewayResponseType_BAD_REQUEST_BODY,
        GatewayResponseType_BAD_REQUEST_PARAMETERS,
        GatewayResponseType_DEFAULT_4XX,
        GatewayResponseType_DEFAULT_5XX,
        GatewayResponseType_EXPIRED_TOKEN,
        GatewayResponseType_INTEGRATION_FAILURE,
        GatewayResponseType_INTEGRATION_TIMEOUT,
        GatewayResponseType_INVALID_API_KEY,
        GatewayResponseType_INVALID_SIGNATURE,
        GatewayResponseType_MISSING_AUTHENTICATION_TOKEN,
        GatewayResponseType_QUOTA_EXCEEDED,
        GatewayResponseType_REQUEST_TOO_LARGE,
        GatewayResponseType_RESOURCE_NOT_FOUND,
        GatewayResponseType_THROTTLED,
        GatewayResponseType_UNAUTHORIZED,
        GatewayResponseType_UNSUPPORTED_MEDIA_TYPE,
        GatewayResponseType_WAF_FILTERED
      ),
  )
where

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

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

pattern GatewayResponseType_ACCESS_DENIED :: GatewayResponseType
pattern $bGatewayResponseType_ACCESS_DENIED :: GatewayResponseType
$mGatewayResponseType_ACCESS_DENIED :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_ACCESS_DENIED = GatewayResponseType' "ACCESS_DENIED"

pattern GatewayResponseType_API_CONFIGURATION_ERROR :: GatewayResponseType
pattern $bGatewayResponseType_API_CONFIGURATION_ERROR :: GatewayResponseType
$mGatewayResponseType_API_CONFIGURATION_ERROR :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_API_CONFIGURATION_ERROR = GatewayResponseType' "API_CONFIGURATION_ERROR"

pattern GatewayResponseType_AUTHORIZER_CONFIGURATION_ERROR :: GatewayResponseType
pattern $bGatewayResponseType_AUTHORIZER_CONFIGURATION_ERROR :: GatewayResponseType
$mGatewayResponseType_AUTHORIZER_CONFIGURATION_ERROR :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_AUTHORIZER_CONFIGURATION_ERROR = GatewayResponseType' "AUTHORIZER_CONFIGURATION_ERROR"

pattern GatewayResponseType_AUTHORIZER_FAILURE :: GatewayResponseType
pattern $bGatewayResponseType_AUTHORIZER_FAILURE :: GatewayResponseType
$mGatewayResponseType_AUTHORIZER_FAILURE :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_AUTHORIZER_FAILURE = GatewayResponseType' "AUTHORIZER_FAILURE"

pattern GatewayResponseType_BAD_REQUEST_BODY :: GatewayResponseType
pattern $bGatewayResponseType_BAD_REQUEST_BODY :: GatewayResponseType
$mGatewayResponseType_BAD_REQUEST_BODY :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_BAD_REQUEST_BODY = GatewayResponseType' "BAD_REQUEST_BODY"

pattern GatewayResponseType_BAD_REQUEST_PARAMETERS :: GatewayResponseType
pattern $bGatewayResponseType_BAD_REQUEST_PARAMETERS :: GatewayResponseType
$mGatewayResponseType_BAD_REQUEST_PARAMETERS :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_BAD_REQUEST_PARAMETERS = GatewayResponseType' "BAD_REQUEST_PARAMETERS"

pattern GatewayResponseType_DEFAULT_4XX :: GatewayResponseType
pattern $bGatewayResponseType_DEFAULT_4XX :: GatewayResponseType
$mGatewayResponseType_DEFAULT_4XX :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_DEFAULT_4XX = GatewayResponseType' "DEFAULT_4XX"

pattern GatewayResponseType_DEFAULT_5XX :: GatewayResponseType
pattern $bGatewayResponseType_DEFAULT_5XX :: GatewayResponseType
$mGatewayResponseType_DEFAULT_5XX :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_DEFAULT_5XX = GatewayResponseType' "DEFAULT_5XX"

pattern GatewayResponseType_EXPIRED_TOKEN :: GatewayResponseType
pattern $bGatewayResponseType_EXPIRED_TOKEN :: GatewayResponseType
$mGatewayResponseType_EXPIRED_TOKEN :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_EXPIRED_TOKEN = GatewayResponseType' "EXPIRED_TOKEN"

pattern GatewayResponseType_INTEGRATION_FAILURE :: GatewayResponseType
pattern $bGatewayResponseType_INTEGRATION_FAILURE :: GatewayResponseType
$mGatewayResponseType_INTEGRATION_FAILURE :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_INTEGRATION_FAILURE = GatewayResponseType' "INTEGRATION_FAILURE"

pattern GatewayResponseType_INTEGRATION_TIMEOUT :: GatewayResponseType
pattern $bGatewayResponseType_INTEGRATION_TIMEOUT :: GatewayResponseType
$mGatewayResponseType_INTEGRATION_TIMEOUT :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_INTEGRATION_TIMEOUT = GatewayResponseType' "INTEGRATION_TIMEOUT"

pattern GatewayResponseType_INVALID_API_KEY :: GatewayResponseType
pattern $bGatewayResponseType_INVALID_API_KEY :: GatewayResponseType
$mGatewayResponseType_INVALID_API_KEY :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_INVALID_API_KEY = GatewayResponseType' "INVALID_API_KEY"

pattern GatewayResponseType_INVALID_SIGNATURE :: GatewayResponseType
pattern $bGatewayResponseType_INVALID_SIGNATURE :: GatewayResponseType
$mGatewayResponseType_INVALID_SIGNATURE :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_INVALID_SIGNATURE = GatewayResponseType' "INVALID_SIGNATURE"

pattern GatewayResponseType_MISSING_AUTHENTICATION_TOKEN :: GatewayResponseType
pattern $bGatewayResponseType_MISSING_AUTHENTICATION_TOKEN :: GatewayResponseType
$mGatewayResponseType_MISSING_AUTHENTICATION_TOKEN :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_MISSING_AUTHENTICATION_TOKEN = GatewayResponseType' "MISSING_AUTHENTICATION_TOKEN"

pattern GatewayResponseType_QUOTA_EXCEEDED :: GatewayResponseType
pattern $bGatewayResponseType_QUOTA_EXCEEDED :: GatewayResponseType
$mGatewayResponseType_QUOTA_EXCEEDED :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_QUOTA_EXCEEDED = GatewayResponseType' "QUOTA_EXCEEDED"

pattern GatewayResponseType_REQUEST_TOO_LARGE :: GatewayResponseType
pattern $bGatewayResponseType_REQUEST_TOO_LARGE :: GatewayResponseType
$mGatewayResponseType_REQUEST_TOO_LARGE :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_REQUEST_TOO_LARGE = GatewayResponseType' "REQUEST_TOO_LARGE"

pattern GatewayResponseType_RESOURCE_NOT_FOUND :: GatewayResponseType
pattern $bGatewayResponseType_RESOURCE_NOT_FOUND :: GatewayResponseType
$mGatewayResponseType_RESOURCE_NOT_FOUND :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_RESOURCE_NOT_FOUND = GatewayResponseType' "RESOURCE_NOT_FOUND"

pattern GatewayResponseType_THROTTLED :: GatewayResponseType
pattern $bGatewayResponseType_THROTTLED :: GatewayResponseType
$mGatewayResponseType_THROTTLED :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_THROTTLED = GatewayResponseType' "THROTTLED"

pattern GatewayResponseType_UNAUTHORIZED :: GatewayResponseType
pattern $bGatewayResponseType_UNAUTHORIZED :: GatewayResponseType
$mGatewayResponseType_UNAUTHORIZED :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_UNAUTHORIZED = GatewayResponseType' "UNAUTHORIZED"

pattern GatewayResponseType_UNSUPPORTED_MEDIA_TYPE :: GatewayResponseType
pattern $bGatewayResponseType_UNSUPPORTED_MEDIA_TYPE :: GatewayResponseType
$mGatewayResponseType_UNSUPPORTED_MEDIA_TYPE :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_UNSUPPORTED_MEDIA_TYPE = GatewayResponseType' "UNSUPPORTED_MEDIA_TYPE"

pattern GatewayResponseType_WAF_FILTERED :: GatewayResponseType
pattern $bGatewayResponseType_WAF_FILTERED :: GatewayResponseType
$mGatewayResponseType_WAF_FILTERED :: forall r. GatewayResponseType -> (Void# -> r) -> (Void# -> r) -> r
GatewayResponseType_WAF_FILTERED = GatewayResponseType' "WAF_FILTERED"

{-# COMPLETE
  GatewayResponseType_ACCESS_DENIED,
  GatewayResponseType_API_CONFIGURATION_ERROR,
  GatewayResponseType_AUTHORIZER_CONFIGURATION_ERROR,
  GatewayResponseType_AUTHORIZER_FAILURE,
  GatewayResponseType_BAD_REQUEST_BODY,
  GatewayResponseType_BAD_REQUEST_PARAMETERS,
  GatewayResponseType_DEFAULT_4XX,
  GatewayResponseType_DEFAULT_5XX,
  GatewayResponseType_EXPIRED_TOKEN,
  GatewayResponseType_INTEGRATION_FAILURE,
  GatewayResponseType_INTEGRATION_TIMEOUT,
  GatewayResponseType_INVALID_API_KEY,
  GatewayResponseType_INVALID_SIGNATURE,
  GatewayResponseType_MISSING_AUTHENTICATION_TOKEN,
  GatewayResponseType_QUOTA_EXCEEDED,
  GatewayResponseType_REQUEST_TOO_LARGE,
  GatewayResponseType_RESOURCE_NOT_FOUND,
  GatewayResponseType_THROTTLED,
  GatewayResponseType_UNAUTHORIZED,
  GatewayResponseType_UNSUPPORTED_MEDIA_TYPE,
  GatewayResponseType_WAF_FILTERED,
  GatewayResponseType'
  #-}