{"id":13726047,"url":"https://github.com/softprops/typed-lambda","last_synced_at":"2025-03-23T11:32:59.019Z","repository":{"id":66115744,"uuid":"155262547","full_name":"softprops/typed-lambda","owner":"softprops","description":"λ formal type definitions for aws lambda events","archived":false,"fork":false,"pushed_at":"2018-10-29T20:00:47.000Z","size":36,"stargazers_count":13,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-17T12:00:04.406Z","etag":null,"topics":["aws","aws-lambda","json-schema","types"],"latest_commit_sha":null,"homepage":"","language":"Makefile","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/softprops.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-10-29T18:39:09.000Z","updated_at":"2024-12-08T19:31:20.000Z","dependencies_parsed_at":"2023-02-20T17:30:58.472Z","dependency_job_id":null,"html_url":"https://github.com/softprops/typed-lambda","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Ftyped-lambda","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Ftyped-lambda/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Ftyped-lambda/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/softprops%2Ftyped-lambda/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/softprops","download_url":"https://codeload.github.com/softprops/typed-lambda/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245097158,"owners_count":20560311,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","aws-lambda","json-schema","types"],"created_at":"2024-08-03T01:02:50.685Z","updated_at":"2025-03-23T11:32:58.570Z","avatar_url":"https://github.com/softprops.png","language":"Makefile","funding_links":[],"categories":["Makefile"],"sub_categories":[],"readme":"# typed lambda [![Build Status](https://travis-ci.org/softprops/typed-lambda.svg?branch=master)](https://travis-ci.org/softprops/typed-lambda)\n\n\u003e an attempt to formalize the event types involved in [AWS lambda](https://aws.amazon.com/lambda/) interfaces\n\nRun code without thinking about servers. Write code without guessing types.\n\n🚧 The provided definitions are currently under construction 🚧\n\n## 🤔 why\n\nThough there are [scattered samples of AWS Lambda events](https://docs.aws.amazon.com/lambda/latest/dg/eventsources.html) provided by AWS exist but absent of any formal schema describing them. This repository aims to be an accurate a collection of JSON schema documents organized by lambda trigger source that describe event structural types.\n\nSo why should anyone care?\n\n* 👵 Human lives - Each and every AWS Lambda client binding is forced though cumbersome process of redefining these types *by hand*!\nIf sufficient schema's existed for AWS lambda events, this would no longer be needed as these language bindings could leverage code generation instead.\n\n* 🔧 Tooling - Tooling for lambda could more easily be synthesized with machine readable information about events\n\n* 📓 Documentation - Surprisingly what currently exists, is incomplete, and therefore only partially useful\n\n* 👌 Correctness - Types can provide use to programmers even if your native programming language does not support them. Here is a [good example](https://github.com/DefinitelyTyped/DefinitelyTyped). Types enable productivity by making it less possible to represent mispreprented data.\n\n## 🔬 schemas\n\nThe following are provided lambda triggers ( in order for reference to AWS's documentation on [event sources](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html) ). The goal here is to define [JSON schema](https://json-schema.org/) docs that line up with these triggers. Contruction of an initial set of schemas is under way under the [events](events) directory of this repository. 🙈 As schemas become formalized and tested they will be linked under the trigger sources below for reference.\n\n* [s3](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-s3)\n* [dynamodb](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-dynamo-db)\n* [kinesis](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-kinesis-streams)\n* [sns](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-sns)\n* [ses](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-ses)\n* [sqs](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-sqs)\n* [cognito](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-cognito)\n* [cloudformation](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-cloudformation)\n* [cloudwatch logs](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-cloudwatch-logs)\n* [cloudwatch events](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-cloudwatch-events)\n* [codecommit](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-codecommit)\n* [scheduled events](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-scheduled-events)\n* [config](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-config)\n* [alexa](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-echo)\n* [lex](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-lex)\n* [api gateway](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-api-gateway)\n* [iot button](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-iot-button)\n* [cloudfront](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-cloudfront)\n* [kinesis firehose](https://docs.aws.amazon.com/lambda/latest/dg/invoking-lambda-function.html#supported-event-source-kinesis-firehose)\n\n## required fields\n\nSome fields may be absent in events and some may be present with `null` values. Fields with `null` should *not* be included the json schema `required` field.\n\n## 👯 get involved\n\nThis project AIMS to provide the most accurate reflection of AWS lambda types but is currently a best effort approach as no official documentation exists. If you become aware that fields are missing or incorrect. Please open a pull request containing your changes and an example payload that doesn't match the current schemas\n\nTo validate the existing schemas you will need to have `npm` installed.\n\nRun the following\n\n```sh\n$ make test\n```\n\nDoug Tangren (softprops) 2018","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftprops%2Ftyped-lambda","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoftprops%2Ftyped-lambda","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoftprops%2Ftyped-lambda/lists"}