{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveFoldable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE DeriveTraversable #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE TypeFamilies #-}
{-# OPTIONS_GHC -fno-warn-unused-matches -fno-warn-unused-binds -fno-warn-unused-imports #-}
module AWSLambdaRuntime.Model where
import AWSLambdaRuntime.Core
import AWSLambdaRuntime.MimeTypes
import Data.Aeson ((.:),(.:!),(.:?),(.=))
import qualified Control.Arrow as P (left)
import qualified Data.Aeson as A
import qualified Data.ByteString as B
import qualified Data.ByteString.Base64 as B64
import qualified Data.ByteString.Char8 as BC
import qualified Data.ByteString.Lazy as BL
import qualified Data.Data as P (Typeable, TypeRep, typeOf, typeRep)
import qualified Data.Foldable as P
import qualified Data.HashMap.Lazy as HM
import qualified Data.Map as Map
import qualified Data.Maybe as P
import qualified Data.Set as Set
import qualified Data.Text as T
import qualified Data.Text.Encoding as T
import qualified Data.Time as TI
import qualified Lens.Micro as L
import qualified Web.FormUrlEncoded as WH
import qualified Web.HttpApiData as WH
import Control.Applicative ((<|>))
import Control.Applicative (Alternative)
import Data.Function ((&))
import Data.Monoid ((<>))
import Data.Text (Text)
import Prelude (($),(/=),(.),(<$>),(<*>),(>>=),(=<<),Maybe(..),Bool(..),Char,Double,FilePath,Float,Int,Integer,String,fmap,undefined,mempty,maybe,pure,Monad,Applicative,Functor)
import qualified Prelude as P
newtype AwsRequestId = AwsRequestId { unAwsRequestId :: Text } deriving (P.Eq, P.Show)
newtype Body = Body { unBody :: A.Value } deriving (P.Eq, P.Show, A.ToJSON)
newtype LambdaRuntimeFunctionErrorType = LambdaRuntimeFunctionErrorType { unLambdaRuntimeFunctionErrorType :: Text } deriving (P.Eq, P.Show)
data ErrorRequest = ErrorRequest
{ errorRequestErrorMessage :: !(Maybe Text)
, errorRequestErrorType :: !(Maybe Text)
, errorRequestStackTrace :: !(Maybe [Text])
} deriving (P.Show, P.Eq, P.Typeable)
instance A.FromJSON ErrorRequest where
parseJSON = A.withObject "ErrorRequest" $ \o ->
ErrorRequest
<$> (o .:? "errorMessage")
<*> (o .:? "errorType")
<*> (o .:? "stackTrace")
instance A.ToJSON ErrorRequest where
toJSON ErrorRequest {..} =
_omitNulls
[ "errorMessage" .= errorRequestErrorMessage
, "errorType" .= errorRequestErrorType
, "stackTrace" .= errorRequestStackTrace
]
mkErrorRequest
:: ErrorRequest
mkErrorRequest =
ErrorRequest
{ errorRequestErrorMessage = Nothing
, errorRequestErrorType = Nothing
, errorRequestStackTrace = Nothing
}
data ErrorResponse = ErrorResponse
{ errorResponseErrorMessage :: !(Maybe Text)
, errorResponseErrorType :: !(Maybe Text)
} deriving (P.Show, P.Eq, P.Typeable)
instance A.FromJSON ErrorResponse where
parseJSON = A.withObject "ErrorResponse" $ \o ->
ErrorResponse
<$> (o .:? "errorMessage")
<*> (o .:? "errorType")
instance A.ToJSON ErrorResponse where
toJSON ErrorResponse {..} =
_omitNulls
[ "errorMessage" .= errorResponseErrorMessage
, "errorType" .= errorResponseErrorType
]
mkErrorResponse
:: ErrorResponse
mkErrorResponse =
ErrorResponse
{ errorResponseErrorMessage = Nothing
, errorResponseErrorType = Nothing
}
data StatusResponse = StatusResponse
{ statusResponseStatus :: !(Maybe Text)
} deriving (P.Show, P.Eq, P.Typeable)
instance A.FromJSON StatusResponse where
parseJSON = A.withObject "StatusResponse" $ \o ->
StatusResponse
<$> (o .:? "status")
instance A.ToJSON StatusResponse where
toJSON StatusResponse {..} =
_omitNulls
[ "status" .= statusResponseStatus
]
mkStatusResponse
:: StatusResponse
mkStatusResponse =
StatusResponse
{ statusResponseStatus = Nothing
}