Create models for the myriad of AWS Lambda event types
Nobody has claimed this yet.
- Dominant language
- Scala
- Stars
- 195
- Forks
- 53
- PR merge metrics
- No merged PRs in 30d
Description
For feral-lambda to be useful for the "zoo" of Lambda types available on AWS, we need to provide models for the various events (aka "triggers") and responses used by each of these lambdas. These will live in the feral-lambda-events module.
We are currently sourcing them from the Java and JavaScript/TypeScript implementations.
The TypeScript definitions are especially important, because they are the definitive representation of these events as "plain old JavaScript objects" which is isomorphic to their JSON representation. Therefore, our models should match them exactly in name, structure, etc. in order for parsing to work correctly.
For an example of this, see the existing events:
https://github.com/typelevel/feral/blob/main/lambda/shared/src/main/scala/feral/lambda/events/
-
ActiveMQEvent -
APIGatewayCustomAuthorizerEvent -
APIGatewayProxyRequestEventhttps://github.com/typelevel/feral/pull/409 -
APIGatewayProxyResponseEventhttps://github.com/typelevel/feral/pull/409 -
APIGatewayV2CustomAuthorizerEvent -
APIGatewayV2HTTPEvent -
APIGatewayV2HTTPResponse -
APIGatewayV2WebSocketEventhttps://github.com/typelevel/feral/pull/476 -
APIGatewayV2WebSocketResponse -
ApplicationLoadBalancerRequestEvent -
ApplicationLoadBalancerResponseEvent -
AppSyncLambdaAuthorizerEvent -
AppSyncLambdaAuthorizerResponse -
CloudFormationCustomResourceEvent -
CloudFrontEvent -
CloudWatchLogsEvent -
CodeCommitEvent -
CognitoEvent -
CognitoUserPoolCreateAuthChallengeEvent -
CognitoUserPoolCustomMessageEvent -
CognitoUserPoolDefineAuthChallengeEvent -
CognitoUserPoolEvent -
CognitoUserPoolMigrateUserEvent -
CognitoUserPoolPostAuthenticationEvent -
CognitoUserPoolPostConfirmationEvent -
CognitoUserPoolPreAuthenticationEvent -
CognitoUserPoolPreSignUpEvent -
CognitoUserPoolPreTokenGenerationEvent -
CognitoUserPoolVerifyAuthChallengeResponseEvent -
ConfigEvent -
ConnectEvent -
DynamodbEventhttps://github.com/typelevel/feral/pull/68 -
IoTButtonEvent -
KafkaEventhttps://github.com/typelevel/feral/pull/552 -
KinesisAnalyticsFirehoseInputPreprocessingEvent -
KinesisAnalyticsInputPreprocessingResponse -
KinesisAnalyticsOutputDeliveryEvent -
KinesisAnalyticsOutputDeliveryResponse -
KinesisAnalyticsStreamsInputPreprocessingEvent -
KinesisEventhttps://github.com/typelevel/feral/pull/75 -
KinesisFirehoseEvent -
LambdaDestinationEvent -
LexEvent -
RabbitMQEvent -
S3BatchEventhttps://github.com/typelevel/feral/pull/231 -
S3BatchResponsehttps://github.com/typelevel/feral/pull/231 -
S3Eventhttps://github.com/typelevel/feral/pull/354 -
ScheduledEventhttps://github.com/typelevel/feral/pull/521 -
SecretsManagerRotationEvent -
SimpleIAMPolicyResponse -
SNSEventhttps://github.com/typelevel/feral/pull/195 -
SQSEventhttps://github.com/typelevel/feral/pull/58 - any more?
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in the existing event models under lambda/shared/src/main/scala/feral/lambda/events/ and compare the unchecked event types with the AWS Java and TypeScript definitions linked in the issue. Add models in the feral-lambda-events module that match the TypeScript names and JSON structure; done means the selected event types and responses are represented for parsing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, scala
- Domain
- cloud
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100