!x      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w (Types for SQS and SNS message attributesNone experimentalPOSIXNone. serverless-haskellProcess incoming events from serverless-haskell using a provided function.{The handler receives the input event given to the AWS Lambda function, and its return value is returned from the function.This is intended to be used as main, for example: import qualified Data.Aeson as Aeson import AWSLambda main = lambdaMain handler handler :: Aeson.Value -> IO [Int] handler evt = do putStrLn "This should go to logs" print evt pure [1, 2, 3]oThe handler function can receive arbitrary JSON values from custom invocations, or one of the events from the AWSLambda.Events module, such as  : cimport AWSLambda.Events.S3Event handler :: S3Event -> IO () handler evt = do print $ records evtFIf the Lambda function needs to process several types of events, use  to combine several handlers: import AWSLambda import AWSLambda.Events.S3Event import Data.Aeson import Data.Aeson.Alternative main = lambdaMain $ handlerS3 `alternative` handlerCustom handlerS3 :: S3Event -> IO () handlerS3 = _ handlerCustom :: Value -> IO () handlerCustom = _When run outside the AWS Lambda environment, the input is read as JSON from the command line, and the result of the execution is printed, also as JSON, to the standard output. serverless-haskellProcess the incoming requests (using the AWS Lambda runtime interface or from the standard input). Also set line buffering on standard output for AWS Lambda so the logs are output in a timely manner. This function provides a lower level interface than  G for users who don't want to use Aeson for encoding and decoding JSON. serverless-haskellFunction to process the event  None461serverless-haskell*Traverse all the records in a Lambda eventserverless-haskellA specialised version of the  ? entry-point for handling individual records in a Lambda event  Types for Kinesis Lambda eventsNone"#2&%$#"! '(,-./01234('&%$#"! 43210/.-,None1M4 Types for S3 Lambda eventsNone"#_6serverless-haskell%Is the event an object creation eventserverless-haskell$Is the event an object removal eventC9:;?@CBADHINMLKJOPQUVWXYZ[\`acbdhimlkjnost}|{zyxwvu~C9:;D?@CBAQPOHINMLKJ\[ZYXUVWd`acbonhimlkj~st}|{zyxwvu experimentalNone;serverless-haskell4One of the two values that has been parsed from JSONserverless-haskell>Handle either of the two types that have been parsed from JSON9Type for a JSON value embedded within a JSON string valueNone"#M>serverless-haskell9Type for a JSON value embedded within a JSON string value 5Type for things that can be embedded in a JSON stringNone"#M?z Types for SQS Lambda eventsNone"#7E/serverless-haskell,A Traversal to get messages from an SQSEventserverless-haskell8A Traversal to get embedded JSON values from an SQSEventserverless-haskell)Traverse all the messages in an SQS eventserverless-haskellA specialised version of the  2 entry-point for handling individual SQS messages Types for SNS Lambda eventsNone"#7Q:serverless-haskellSNSEvent. The message9 type is parameterised. To treat it as a text value use  SNSEvent Text/. To extract an embedded event object use the  type. E.g. SNSEvent (Embedded S3Event)a will treat the message as an embedded S3Event. To extract embedded Base64 encoded binary use SNSEvent Base64serverless-haskell,A Traversal to get messages from an SNSEventserverless-haskell8A Traversal to get embedded JSON values from an SNSEventserverless-haskellTraverse an SNS messageserverless-haskell)Traverse all the messages in an SNS eventserverless-haskellA specialed version of the  2 entry-point for handling individual SNS messages)) 2Types for APIGateway Lambda requests and responsesNone"#7jaserverless-haskell%Get the request body, if there is onebserverless-haskell.Get the embedded request body, if there is onecserverless-haskell=Get the binary (decoded Base64) request body, if there is onesserverless-haskellProcess incoming events from serverless-haskell using a provided function.This is a specialisation of   for API Gateway.zThe handler receives the input event given to the AWS Lambda function, and its return value is returned from the function.This is intended to be used as main, for example: yimport AWSLambda.Events.APIGateway import Control.Lens import Data.Aeson import Data.Aeson.Embedded main = apiGatewayMain handler handler :: APIGatewayProxyRequest (Embedded Value) -> IO (APIGatewayProxyResponse (Embedded [Int])) handler request = do putStrLn "This should go to logs" print $ request ^. requestBody pure $ responseOK & responseBodyEmbedded ?~ [1, 2, 3]The type parameters reqBody and resBodyE represent the types of request and response body, respectively. The FromText and ToText contraints are required because these values come from string fields in the request and response JSON objects. To get direct access to the body string, use TextT as the parameter type. To treat the body as a stringified embedded JSON value, use  Embedded a, where a has the appropriate FromJSON or ToJSON< instances. To treat the body as base 64 encoded binary use Base64.sserverless-haskellFunction to process the eventi      !"&'210/.-,+*)(3459:CBA@?>=<;DEFGHIJKLMNSTWVUXYZ[\]^_`abcijklmnopqrsi     "! 543&'210/.-,+*)(NMLKJIHGFED9:CBA@?>=<;`_^]\[ZYXabcSTWVUkjilmnopqrs None7uRtserverless-haskell6Traverse all the SNS messages embedded in an SQS eventuserverless-haskellA specialised version of the  K entry-point for handling individual SNS messages embedded in an SQS eventvserverless-haskellCTraverse S3 events embedded within SNS messages within an SQS eventwserverless-haskellA specialised version of the  o entry-point for handling individual S3 event notifications embedded in SNS messages embedded in an SQS event  !"#$%&'(,-./012349:;?@ABCDHIJKLMNOPQUVWXYZ[\`abcdhijklmnostuvwxyz{|}~      !"&'()*+,-./0123459:;<=>?@ABCDEFGHIJKLMNSTUVWXYZ[\]^_`abcijklmnopqrstuvwtuvw experimentalPOSIXNonezB  !"#$%&'(,-./012349:;?@ABCDHIJKLMNOPQUVWXYZ[\`abcdhijklmnostuvwxyz{|}~      !"&'()*+,-./0123459:;<=>?@ABCDEFGHIJKLMNSTUVWXYZ[\]^_`abcijklmnopqrstuvw Safe~xyz{|}~ !"#$%&''()*+,--./0123456789:;<=>?@ABCDEFGHHIJKLMMNOPQRSTUUVWXYZ[\]^_`aabcdefghijkklmnopqrrstuvwxyz{||}~                                               ! " # $ % & & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s tuvwxyz{|}/serverless-haskell-0.12.2-pNCaZGEyqrKWXBCTYf8gT!AWSLambda.Events.MessageAttributeAWSLambda.HandlerAWSLambda.Events.RecordsAWSLambda.Events.KinesisEventAWSLambda.OrphansAWSLambda.Events.S3EventData.Aeson.AlternativeData.Aeson.EmbeddedData.Aeson.TextValueAWSLambda.Events.SQSEventAWSLambda.Events.SNSEventAWSLambda.Events.APIGatewayAWSLambda.EventsS3Event Data.Aeson Alternative AWSLambdaPaths_serverless_haskellMessageAttribute_maType_maValue$fEqMessageAttribute$fShowMessageAttribute$fFromJSONMessageAttributemaTypemaValue lambdaMain lambdaMainRaw RecordsEvent _reRecords$fFromJSONRecordsEvent$fEqRecordsEvent$fShowRecordsEvent$fFunctorRecordsEvent$fFoldableRecordsEvent reRecordstraverseRecords recordsMain KinesisRecord _krRecord_krKinesisSchemaVersion$fFromJSONKinesisRecord$fEqKinesisRecord$fShowKinesisRecordKinesisEventRecord _kerKinesis_kerEventSource _kerEventID_kerInvokeIdentityArn_kerEventVersion _kerEventName_kerEventSourceARN _kerAwsRegionkrKinesisSchemaVersionkrRecord$fEqKinesisEventRecord$fShowKinesisEventRecord$fFromJSONKinesisEventRecord KinesisEvent kerAwsRegion kerEventID kerEventNamekerEventSourcekerEventSourceARNkerEventVersionkerInvokeIdentityArn kerKinesis$fFromJSONEvent$fFromJSONETag$fFromJSONObjectVersionId$fFromJSONObjectKeyUserIdentityEntity_uiePrincipalId$fEqUserIdentityEntity$fShowUserIdentityEntity$fFromJSONUserIdentityEntityS3BucketEntity_sbeArn_sbeName_sbeOwnerIdentityuiePrincipalId$fEqS3BucketEntity$fShowS3BucketEntity$fFromJSONS3BucketEntityS3ObjectEntity_soeETag_soeKey_soeSize _soeSequencer _soeVersionIdsbeArnsbeNamesbeOwnerIdentity$fEqS3ObjectEntity$fShowS3ObjectEntity$fFromJSONS3ObjectEntityRequestParametersEntity_rpeSourceIPAddresssoeETagsoeKey soeSequencersoeSize soeVersionId$fEqRequestParametersEntity$fShowRequestParametersEntity!$fFromJSONRequestParametersEntityResponseElementsEntity _reeXAmzId2_reeXAmzRequestIdrpeSourceIPAddress $fFromJSONResponseElementsEntity$fEqResponseElementsEntity$fShowResponseElementsEntityS3Entity _seBucket_seConfigurationId _seObject_seS3SchemaVersion reeXAmzId2reeXAmzRequestId $fEqS3Entity$fShowS3Entity$fFromJSONS3EntityS3EventNotification _senAwsRegion _senEventName_senEventSource _senEventTime_senEventVersion_senRequestParameters_senResponseElements_senS3_senUserIdentityseBucketseConfigurationIdseObjectseS3SchemaVersion$fFromJSONS3EventNotification$fEqS3EventNotification$fShowS3EventNotification senAwsRegion senEventNamesenEventSource senEventTimesenEventVersionsenRequestParameterssenResponseElementssenS3senUserIdentity isCreateEvent isRemoveEventAlternativeJSON alternative$fFromJSONAlternativeJSON$fEqAlternativeJSON$fOrdAlternativeJSON$fShowAlternativeJSONEmbedded_unEmbed$fToJSONEmbedded$fToTextEmbedded$fFromJSONEmbedded$fFromTextEmbedded $fEqEmbedded$fShowEmbeddedunEmbed TextValue _unTextValue$fToJSONTextValue$fFromJSONTextValue $fEqTextValue$fShowTextValue$fIsStringTextValue unTextValue SQSMessage_sqsmMessageId_sqsmReceiptHandle _sqsmBody_sqsmAttributes_sqsmMessageAttributes_sqsmMd5OfBody_sqsmEventSource_sqsmEventSourceARN_sqsmAwsRegion$fFromJSONSQSMessage$fShowSQSMessage$fEqSQSMessage$fGenericSQSMessageSQSEventsqsmAttributes sqsmAwsRegionsqsmBodysqsmEventSourcesqsmEventSourceARN sqsmMd5OfBodysqsmMessageAttributes sqsmMessageIdsqsmReceiptHandle sqsMessages sqsEmbedded sqsBinary traverseSqssqsMain SNSMessage _smMessage_smMessageAttributes _smMessageId _smSignature_smSignatureVersion_smSigningCertUrl _smSubject _smTimestamp _smTopicArn_smType_smUnsubscribeUrl$fFromJSONSNSMessage$fEqSNSMessage$fShowSNSMessage$fGenericSNSMessage SNSRecord_srEventVersion_srEventSubscriptionArn_srEventSource_srSns smMessagesmMessageAttributes smMessageId smSignaturesmSignatureVersionsmSigningCertUrl smSubject smTimestamp smTopicArnsmTypesmUnsubscribeUrl$fFromJSONSNSRecord $fEqSNSRecord$fShowSNSRecord$fGenericSNSRecordSNSEvent srEventSourcesrEventSubscriptionArnsrEventVersionsrSnsmessagesembeddedbinarytraverseSnsMessage traverseSnssnsMainRequestIdentity_riCognitoIdentityPoolId _riAccountId_riCognitoIdentityId _riCaller _riApiKey _riSourceIp_riCognitoAuthenticationType _riCognitoAuthenticationProvider _riUserArn _riUserAgent_riUser StageVarValue StageVarNamePathParamValue PathParamNameQueryParamValueQueryParamName HeaderValue HeaderNameMethod readParse$fFromJSONRequestIdentity$fEqRequestIdentity$fShowRequestIdentity Authorizer _aPrincipalId_aClaims _aContext riAccountIdriApiKeyriCallerriCognitoAuthenticationProviderriCognitoAuthenticationTyperiCognitoIdentityIdriCognitoIdentityPoolId riSourceIpriUser riUserAgent riUserArn$fFromJSONAuthorizer$fEqAuthorizer$fShowAuthorizerProxyRequestContext_prcPath _prcAccountId_prcResourceId _prcStage _prcRequestId _prcIdentity_prcResourcePath_prcHttpMethod _prcApiId _prcProtocol_prcAuthorizeraClaimsaContext aPrincipalId$fEqProxyRequestContext$fShowProxyRequestContext$fFromJSONProxyRequestContextAPIGatewayProxyRequest_agprqResource _agprqPath_agprqHttpMethod _agprqHeaders_agprqQueryStringParameters_agprqPathParameters_agprqStageVariables_agprqRequestContext _agprqBody prcAccountIdprcApiId prcAuthorizer prcHttpMethod prcIdentityprcPath prcProtocol prcRequestId prcResourceIdprcResourcePathprcStage $fFromJSONAPIGatewayProxyRequest$fEqAPIGatewayProxyRequest$fShowAPIGatewayProxyRequest$fGenericAPIGatewayProxyRequestAPIGatewayProxyResponse_agprsStatusCode _agprsHeaders _agprsBody agprqBody agprqHeadersagprqHttpMethod agprqPathagprqPathParametersagprqQueryStringParametersagprqRequestContext agprqResourceagprqStageVariables requestBodyrequestBodyEmbeddedrequestBodyBinary!$fFromJSONAPIGatewayProxyResponse$fToJSONAPIGatewayProxyResponse$fEqAPIGatewayProxyResponse$fShowAPIGatewayProxyResponse $fGenericAPIGatewayProxyResponse agprsBody agprsHeadersagprsStatusCoderesponse responseOKresponseNotFoundresponseBadRequest responseBodyresponseBodyEmbeddedresponseBodyBinaryapiGatewayMaintraverseSnsInSqs snsInSqsMaintraverseS3InSnsInSqss3InSnsInSqsMainversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName