Commit Graph

55 Commits

Author SHA1 Message Date
Sterling Camden
462a890272 aws-lambda: uppercase custom in client context (#35562)
* uppercase custom in client context

per the aws docs

```clientContext – (mobile apps) Client context provided to the Lambda invoker by the client application.

client.installation_id

client.app_title

client.app_version_name

client.app_version_code

client.app_package_name

env.platform_version

env.platform

env.make

env.model

env.locale

Custom – Custom values set by the mobile application.```

We have been using the upper case value with no problems so i assume the docs are correct here.

* Update aws-lambda-tests.ts
2019-05-20 10:11:09 -07:00
Simon Garner
8eef7a8374 [aws-lambda] Keys should be optional inside CloudFrontHeaders (#35121)
* [aws-lambda] Keys should be optional inside CloudFrontHeaders

According to the AWS documentation, it is optional to specify a `key` for each header value, but the type declaration is currently requiring this to be specified unnecessarily.

https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-event-structure.html#lambda-event-structure-response

> - `key` (optional) is the case-sensitive name of the header as it appears in an HTTP request; for example, `accept` or `host`.
> - If you do not include the header key portion of the key-value pair, Lambda@Edge will automatically insert a header key using the header name that you provide. Regardless of how you've formatted the header name, the header key that is inserted automatically will be formatted with initial capitalization for each part, separated by hyphens (-).
>
>   For example, you can add a header like the following, without a header key: `'content-type': [{ value: 'text/html;charset=UTF-8' }]`. In this example, Lambda@Edge creates the following header key: `Content-Type`.

By making this property optional, one is able to write:

```ts
import { CloudFrontHeaders } from 'aws-lambda';

const headers: CloudFrontHeaders = {
  'content-type': [{ value: 'text/plain '}],
};
```

... instead of having to repeat the header name like:

```ts
import { CloudFrontHeaders } from 'aws-lambda';

const headers: CloudFrontHeaders = {
  'content-type': [{ key: 'content-type', value: 'text/plain '}],
};
```

* Update test

Setting a header without specifying the key should not raise a TypeScript compiler error.

* Revert "Update test"

This reverts commit 088653e362e6f0a152f54e9b5694bb778b072354.

* Add test for AWSLambda.CloudFrontHeaders with and without explicit keys
2019-05-02 10:29:11 -07:00
Grzegorz Redlicki
3eb866bd83 @types/aws-lambda: There are no types for the communication with Application Load Balancer (#33763)
* Add the additional types for the usage of Application Load Balancer

* Change the long name "Application Load Balancer" to shorter one "ALB"

* Add ALBCallback for the completeness of the communication with the ALB
2019-03-12 10:44:04 -07:00
Rocky Warren
57ee130627 Update SQSMessageAttribute in aws-lambda 2019-03-06 08:31:31 -06:00
Loik Gaonach
209ac2ff35 add websocket integration props to APIGatewayEventRequestContext
messageId is nullable on connection events
2019-02-07 11:31:59 +01:00
Declan
480b0531a3 [@types/aws-lambda] Add Amazon Lex events (#32502)
* [aws-lambda] Add types for Amazon Lex events

* fix: Fixed Typo in `AWSLambda.LexDialogActionClose.fulfillmentState`

* fix: removed a blank line
2019-01-28 12:48:38 -08:00
Daniel Cottone
f56373cd3e Adding additional props to custom authorizer event (#31558) 2018-12-20 08:15:40 -08:00
Erik Dalén
a056705264 Add CloudWatch events for CodePipeline
Add AWS lambda event type definitions for https://docs.aws.amazon.com/codepipeline/latest/userguide/detect-state-changes-cloudwatch-events.html
2018-12-12 16:33:11 +01:00
Trevor Leach
9fe08c154c Add multiValueHeaders to ProxyResult too 2018-10-30 18:00:00 -07:00
Trevor Leach
cf416f6ac0 Merge remote-tracking branch 'upstream/master' into multi-value_headers_and_query_params 2018-10-27 13:33:25 -07:00
Trevor Leach
4547dc6384 multi-valued headers and query string prarameters 2018-10-20 15:00:00 -07:00
James Gregory
656a9a17c8 [aws-lambda] Add Amazon Cognito Migrate User triggers
See:

1. https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-lambda-migrate-user.html
2. https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-import-using-lambda.html
2018-10-19 07:19:39 +11:00
Oliver Hookins
24f4e6d721 Add AWS Lambda CloudFront Event origin fields. (#28675)
* Add AWS Lambda CloudFront Event origin fields.

* Add tests for the different kinds of Lambda CloudFrontRequests.
2018-09-13 13:11:40 -07:00
Chris Redekop
49e8daef6a [aws-lambda] Fix challengeMetadata typos in cognito custom challenge (#28834)
* Fix challengeMetadata typos

* Fix type of challengeAnswer
2018-09-13 09:48:08 -07:00
David J. Felix
efe7ba616a [@types/aws-lambda]: Add extractedFields optional field (#27670)
* [@types/aws-lambda]: Add extractedFields optional field

Added an undocumented optional field to a datatype which is sent zipped and base64 encoded. This field is only available if users select certain options when creating a subscription filter.

You can see the field used if you create a subscription filter to elasticsearch and look at the source for the builtin lambda. I couldn't find any documentation for this field except in the terms "fields extracted" [here](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/FilterAndPatternSyntax.html) and found some amazon code referencing it [here](https://github.com/amazon-archives/cloudwatch-logs-subscription-consumer/blob/master/src/test/resources/aws-lambda-log-example.json#L14).

I nearly went insane tracking this down.

* Narrow the type of extracted fields to string:string

* Add test for extracted fields
2018-08-06 11:34:23 -07:00
Daniel Papukchiev
13f8c453e1 [@types/aws-lambda] Add Firehose lambda event and transformation helpers (#27731)
* Add Firehose to aws-lambda

* Add one more link for reference

* Change some interface names, remove irrelevant S3 interface, add special callback

* Fix tests
2018-08-01 11:39:21 -07:00
Louis Larry
1a1c9299a6 update aws-lambda cloudfront (#27407) 2018-07-27 17:21:28 -07:00
Ishaan Malhi
e3727a66d2 [@types/aws-lambda] Add SQS Event Source (#27334)
* feat: Add initial typings

* feat: Add tests for SQS Event Source

* fix: linting fixes
2018-07-20 17:31:00 -07:00
Richard Barker
bf6894a4e5 Fix test 2018-06-22 11:18:02 +10:00
Jeremy Nagel
1a53ccde52 [BUGFIX] Lambda callbacks support string errors
As per https://docs.aws.amazon.com/apigateway/latest/developerguide/handle-errors-in-lambda-integration.html
2018-05-29 15:32:25 +10:00
Jonathan Jung
26d40427c1 [types/aws-lambda] adds a path attribute to the APIGatewayEventRequestContext 2018-05-21 14:59:14 -07:00
Nick Holloway
ff0c5eb0c0 Add encryption key to Code Pipeline event 2018-05-17 09:35:00 +01:00
Nick Holloway
e818117186 Add definition for AWS Lambda Code Pipeline event 2018-05-15 16:54:58 +01:00
Aneil Mallavarapu
07268c98de Improve coverage of AWS Lambda Statement type (#25304)
* Improve coverage of AWS Lambda Statement type

Allow statements which have either a Principal or a Resource,
instead of requiring Resource.
This permits policies such as described in https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html:

```
{
  Effect: "Allow",
  Principal: "*",
  Action: "*"
}
```
and
```
{
  Effect: "Allow",
  Principal: { "Service": "lambda.amazonaws.com" },
  Action: "sts:AssumeRole"
}
```

* Remove unnecessary additional type

* Add tests for valid/invalid combinations of Resource and Principal in Statement type

This addresses issues raised by @simonbuchanan here:
https://github.com/DefinitelyTyped/DefinitelyTyped/pull/25304\#pullrequestreview-115377094
2018-04-26 15:03:40 -07:00
Martin Donath
02ed6f6b49 Added missing field apiKeyId to API Gateway request context (#25195)
* Added missing field `apiKeyId` to API Gateway request context

`$context.identity.apiKeyId`: The API key ID associated with the key-enabled API request.

See the [AWS documentation](https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html) and search for `apiKeyId`.

* Added missing tests for new apiKeyId field in aws-lambda typings
2018-04-24 16:06:22 -07:00
Aneil Mallavarapu
a5db46d192 Add missing elements to Policy Statement (#24792)
* Add: NotAction, NotResource, Principal, NotPrincipal
* Implement some of the conditional logic
  - e.g., Action or NotAction is required
  - however, mutual exclusivity is not implemented (hard to do in Typescript)
* Allow >1 statement per PolicyDocument
2018-04-12 12:11:30 -07:00
Simon Buchan
78350168c5 [aws-lambda] Rutime node8.10 support. (#24823)
Bump version to 8.10 to match current runtime, allow returning result promises in handlers.
2018-04-09 10:21:48 -07:00
repl-chris
3a1f68f9c1 Added AWSLambda.KinesisDataStream event type definitions (aws-lambda) 2018-04-05 16:45:08 -06:00
David
c9749a4f65 [aws-lambda] Include CloudFrontRequest in CloudFrontRequestResult union type (#23882)
A request is a valid callback result type. See example: https://docs.aws.amazon.com/lambda/latest/dg/lambda-edge.html#lambda-edge-authoring-functions-example-ab-testing
2018-02-26 11:59:10 -08:00
Simon Buchan
50dafbd8e3 Add tests, fix some missed type name normalizations. 2018-02-08 12:39:00 +13:00
Simon Buchan
e43b209621 Fix tests for strictNullChecks: true 2018-02-08 11:59:17 +13:00
Andy
a0d0b93d94
aws-lambda: Lint (#23167) 2018-01-24 09:53:35 -08:00
Pálmi Þór Valgeirsson
286bf2a94d aws-lambda : Add more Cognito triggerSources according to spec (#22943)
* aws-lambda : Add more triggerSources according to spec

* aws-lambda: Add my info in the Definitions by - list

* aws-lambda: Cognito triggerSources list failed npm test due to extra semi colon
2018-01-23 11:48:40 -08:00
Danilo Tenorio Raisi
8db0647a2d Created ScheduledEvent on AWS Lambda Types (#22974)
* Created ScheduledEvent on AWS Lambda Types

* aws-lambda types

Fixed detail type on ScheduleEvent

* types/aws-lambda
Fixed header at index.d.ts
2018-01-23 11:06:53 -08:00
austinried
1f68776226 AttributeValue "N" should be string (#22790)
AttributeValue's "N" is a string, not a number: http://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_AttributeValue.html

This causes an incompatibility between this AttributeValue and the one in the AWS SDK types, which makes it impossible to use something like AWS.DynamoDB.Converter.unmarshall() for items in records on a DynamoDBStreamEvent.
2018-01-09 15:23:33 -08:00
Tomas Polovincak
68f6a78112 aws-lambda: extend Handler return type to support Promises (#22588) 2018-01-03 13:29:06 -08:00
Jamie Starke
b2517cc5cf Adds typing for CloudWatch Logs events (#21239) 2018-01-02 15:47:47 -08:00
Mine Starks
1dbdbd4afb
Merge pull request #21021 from MichaelMarner/aws-lambda-dynamo
Add aws-lambda DynamoDB stream event types
2017-12-13 14:50:43 -08:00
Markus Tacker
f9edea3047 [aws-lambda] add CloudFront request and response events
See http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-event-structure.html
2017-12-05 20:14:03 +01:00
Kostya Misura
4f199da089 extends lambda callback signature to accept primitive types (boolean, number and string) as result 2017-11-30 22:45:01 +02:00
Daniel Cottone
13d1bcc4f5 adding property authorizer to APIGatewayEvent 2017-11-06 10:08:09 -06:00
Michael Marner
58f01b7172 Merge branch 'master' into aws-lambda-dynamo 2017-10-31 17:31:26 +10:30
Daniel Cottone
5dbba088ed updating custom authorizer event 2017-10-27 14:56:52 -05:00
Michael Marner
6fec1b5b8c Format as per styleguide 2017-10-26 17:15:44 +10:30
Michael Marner
8c6c695fbd aws-lambda dynamo tests 2017-10-26 17:08:41 +10:30
Michael Marner
2a9cc5af4c Add types for aws-lambda DynamoDB stream events 2017-10-26 16:55:26 +10:30
Michael Bond
f3b3098452 aws-lambda: Add isBase64Encoded support to ProxyResult (#18450)
This is required when using Binary support in API Gateway. 
See Also: "Output Format of a Lambda Function for Proxy Integration" https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-set-up-simple-proxy.html
2017-07-31 14:00:31 -07:00
william chang
6c49782ce4 [aws-lambda] S3CreateEvent.Records should be Array<S3Record> instead of Tuple 2017-07-18 15:55:50 +08:00
Yoriki Yamaguchi
0b5e9d380a add type definition for AWS CloudFormation custom resource 2017-06-13 12:10:19 +09:00
Simon Males
501ea7986b Add definition for AWS Lambda Cognito User Pool event: request.usernameParameter (#16998)
* request.usernameParameter

* usernameParameter test
2017-06-06 17:18:42 -07:00