-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A modern and easy-to-use wrapper for Docker-based Lambda implementations -- -- Please see the README on GitHub at -- https://github.com/RobertFischer/hs-aws-lambda#readme @package hs-aws-lambda @version 0.1.0.4 module AWS.Lambda.RuntimeAPI.Types -- | Represents the data provided to an invocation of the lambda data LambdaInvocation payload LambdaInvocation :: Text -> Word64 -> Text -> Text -> Maybe MobileInvocationMetadata -> payload -> LambdaInvocation payload -- | The unique ID for this request [liAwsRequestId] :: LambdaInvocation payload -> Text -- | The timetsamp of the deadline in Unix time [liDeadlineMs] :: LambdaInvocation payload -> Word64 -- | This function's ARN [liInvokedFunctionArn] :: LambdaInvocation payload -> Text -- | The details about this AWS X-Ray trace [liTraceId] :: LambdaInvocation payload -> Text -- | The mobile data if the Lambda was called from the AWS Mobile SDK [liMobileMetadata] :: LambdaInvocation payload -> Maybe MobileInvocationMetadata -- | The input to the Lambda [liPayload] :: LambdaInvocation payload -> payload -- | The two possible results of a Lambda execution: success or failure data LambdaResult payload -- | Denotes success and provides the value to return LambdaSuccess :: payload -> LambdaResult payload -- | Denotes failure and provides details LambdaError :: ErrorInfo -> LambdaResult payload -- | Denotes that no invocation was provided LambdaNop :: LambdaResult payload data LambdaExecutionContext a m b LambdaExecutionContext :: String -> Manager -> (LambdaInvocation a -> m (LambdaResult b)) -> LambdaExecutionContext a m b [lecApiPrefix] :: LambdaExecutionContext a m b -> String [lecHttpManager] :: LambdaExecutionContext a m b -> Manager [lecHandler] :: LambdaExecutionContext a m b -> LambdaInvocation a -> m (LambdaResult b) -- | Additional information available only when the Lambda is invoked -- through the AWS Mobile SDK. This data is currently unstructured, but -- will be updated to be structured in some future major release. -- -- (Pull requests very welcome.) data MobileInvocationMetadata MobileInvocationMetadata :: Text -> Text -> MobileInvocationMetadata -- | the client's execution context [mimClientContext] :: MobileInvocationMetadata -> Text -- | the client's identity [mimCognitoIdentity] :: MobileInvocationMetadata -> Text type ErrorType = Text type ErrorMessage = Text type ErrorInfo = (ErrorType, ErrorMessage) instance Control.DeepSeq.NFData AWS.Lambda.RuntimeAPI.Types.MobileInvocationMetadata instance GHC.Generics.Generic AWS.Lambda.RuntimeAPI.Types.MobileInvocationMetadata instance GHC.Classes.Eq AWS.Lambda.RuntimeAPI.Types.MobileInvocationMetadata instance GHC.Show.Show AWS.Lambda.RuntimeAPI.Types.MobileInvocationMetadata instance Data.Aeson.Types.FromJSON.FromJSON1 AWS.Lambda.RuntimeAPI.Types.LambdaInvocation instance Data.Aeson.Types.ToJSON.ToJSON1 AWS.Lambda.RuntimeAPI.Types.LambdaInvocation instance GHC.Generics.Generic1 AWS.Lambda.RuntimeAPI.Types.LambdaInvocation instance Data.Aeson.Types.FromJSON.FromJSON payload => Data.Aeson.Types.FromJSON.FromJSON (AWS.Lambda.RuntimeAPI.Types.LambdaInvocation payload) instance Data.Aeson.Types.ToJSON.ToJSON payload => Data.Aeson.Types.ToJSON.ToJSON (AWS.Lambda.RuntimeAPI.Types.LambdaInvocation payload) instance GHC.Generics.Generic (AWS.Lambda.RuntimeAPI.Types.LambdaInvocation payload) instance GHC.Classes.Eq payload => GHC.Classes.Eq (AWS.Lambda.RuntimeAPI.Types.LambdaInvocation payload) instance GHC.Show.Show payload => GHC.Show.Show (AWS.Lambda.RuntimeAPI.Types.LambdaInvocation payload) instance Data.Aeson.Types.FromJSON.FromJSON1 AWS.Lambda.RuntimeAPI.Types.LambdaResult instance Data.Aeson.Types.ToJSON.ToJSON1 AWS.Lambda.RuntimeAPI.Types.LambdaResult instance GHC.Generics.Generic1 AWS.Lambda.RuntimeAPI.Types.LambdaResult instance Data.Aeson.Types.FromJSON.FromJSON payload => Data.Aeson.Types.FromJSON.FromJSON (AWS.Lambda.RuntimeAPI.Types.LambdaResult payload) instance Data.Aeson.Types.ToJSON.ToJSON payload => Data.Aeson.Types.ToJSON.ToJSON (AWS.Lambda.RuntimeAPI.Types.LambdaResult payload) instance GHC.Generics.Generic (AWS.Lambda.RuntimeAPI.Types.LambdaResult payload) instance GHC.Classes.Eq payload => GHC.Classes.Eq (AWS.Lambda.RuntimeAPI.Types.LambdaResult payload) instance GHC.Show.Show payload => GHC.Show.Show (AWS.Lambda.RuntimeAPI.Types.LambdaResult payload) instance Control.DeepSeq.NFData payload => Control.DeepSeq.NFData (AWS.Lambda.RuntimeAPI.Types.LambdaResult payload) instance Control.DeepSeq.NFData1 AWS.Lambda.RuntimeAPI.Types.LambdaResult instance Control.DeepSeq.NFData payload => Control.DeepSeq.NFData (AWS.Lambda.RuntimeAPI.Types.LambdaInvocation payload) instance Control.DeepSeq.NFData1 AWS.Lambda.RuntimeAPI.Types.LambdaInvocation instance Data.Aeson.Types.ToJSON.ToJSON AWS.Lambda.RuntimeAPI.Types.MobileInvocationMetadata instance Data.Aeson.Types.FromJSON.FromJSON AWS.Lambda.RuntimeAPI.Types.MobileInvocationMetadata module AWS.Lambda.RuntimeAPI -- | This function is intended to be your main implementation. -- Given a handler for LambdaInvocation instances, it loops -- indefinitely (until AWS terminates the process) on the retrieval of -- invocations. It feeds each of those invocations into the handler that -- was passed in as an argument. It then posts the result back to AWS and -- begins the loop again. runLambda :: (MonadUnliftIO m, MonadFail m, MonadThrow m, FromJSON a, ToJSON b, NFData a, NFData b) => (LambdaInvocation a -> m (LambdaResult b)) -> m ()