Skip to content

Commit

Permalink
Add @aws-lite/lambda InvokeAsync, ListEventSourceMappings, `Lis…
Browse files Browse the repository at this point in the history
…tFunctionEventInvokeConfigs`, `ListFunctionsByCodeSigningConfig`, `ListProvisionedConcurrencyConfigs` methods
  • Loading branch information
aspilchen committed May 21, 2024
1 parent d94c7eb commit c94019d
Show file tree
Hide file tree
Showing 4 changed files with 234 additions and 10 deletions.
72 changes: 67 additions & 5 deletions plugins/lambda/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -571,6 +571,38 @@ Properties:
- Enable automatic result pagination; use this instead of making your own individual pagination requests


### `ListEventSourceMappings`

[Canonical AWS API doc](https://docs.aws.amazon.com/lambda/latest/dg/API_ListEventSourceMappings.html)

Properties:
- **`EventSourceArn` (string)**
- ARN of the event source
- **`FunctionName` (string)**
- The name of the Lambda function, version, or alias
- **`Marker` (string)**
- Pagination token
- **`MaxItems` (number)**
- Maximum number of items to be returned; maximum 10,000
- **`paginate` (boolean)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


### `ListFunctionEventInvokeConfigs`

[Canonical AWS API doc](https://docs.aws.amazon.com/lambda/latest/dg/API_ListFunctionEventInvokeConfigs.html)

Properties:
- **`FunctionName` (string) [required]**
- The name of the Lambda function, version, or alias
- **`Marker` (string)**
- Pagination token
- **`MaxItems` (number)**
- Maximum number of items to be returned; maximum 10,000
- **`paginate` (boolean)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


### `ListFunctions`

[Canonical AWS API doc](https://docs.aws.amazon.com/lambda/latest/dg/API_ListFunctions.html)
Expand All @@ -589,6 +621,21 @@ Properties:
- Enable automatic result pagination; use this instead of making your own individual pagination requests


### `ListFunctionsByCodeSigningConfig`

[Canonical AWS API doc](https://docs.aws.amazon.com/lambda/latest/dg/API_ListFunctionsByCodeSigningConfig.html)

Properties:
- **`CodeSigningConfigArn` (string) [required]**
- ARN of the code signing configuration
- **`Marker` (string)**
- Pagination token
- **`MaxItems` (number)**
- Maximum number of items to be returned; maximum 10,000
- **`paginate` (boolean)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


### `ListFunctionUrlConfigs`

[Canonical AWS API doc](https://docs.aws.amazon.com/lambda/latest/dg/API_ListFunctionUrlConfigs.html)
Expand Down Expand Up @@ -642,6 +689,21 @@ Properties:
- Enable automatic result pagination; use this instead of making your own individual pagination requests


### `ListProvisionedConcurrencyConfigs`

[Canonical AWS API doc](https://docs.aws.amazon.com/lambda/latest/dg/API_ListProvisionedConcurrencyConfigs.html)

Properties:
- **`FunctionName` (string) [required]**
- The name of the Lambda function, version, or alias
- **`Marker` (string)**
- Pagination token
- **`MaxItems` (number)**
- Maximum number of items to be returned; maximum 10,000
- **`paginate` (boolean)**
- Enable automatic result pagination; use this instead of making your own individual pagination requests


### `PutFunctionConcurrency`

[Canonical AWS API doc](https://docs.aws.amazon.com/lambda/latest/dg/API_PutFunctionConcurrency.html)
Expand Down Expand Up @@ -753,16 +815,16 @@ Properties:
- [More details (AWS)](https://docs.aws.amazon.com/lambda/latest/dg/API_VpcConfig.html)


### Deprecated methods

- [`InvokeAsync`](https://docs.aws.amazon.com/lambda/latest/dg/API_InvokeAsync.html)


### Methods yet to be implemented

> Please help out by [opening a PR](https://github.com/architect/aws-lite#authoring-aws-lite-plugins)!
- [`InvokeAsync`](https://docs.aws.amazon.com/lambda/latest/dg/API_InvokeAsync.html)
- [`InvokeWithResponseStream`](https://docs.aws.amazon.com/lambda/latest/dg/API_InvokeWithResponseStream.html)
- [`ListEventSourceMappings`](https://docs.aws.amazon.com/lambda/latest/dg/API_ListEventSourceMappings.html)
- [`ListFunctionEventInvokeConfigs`](https://docs.aws.amazon.com/lambda/latest/dg/API_ListFunctionEventInvokeConfigs.html)
- [`ListFunctionsByCodeSigningConfig`](https://docs.aws.amazon.com/lambda/latest/dg/API_ListFunctionsByCodeSigningConfig.html)
- [`ListProvisionedConcurrencyConfigs`](https://docs.aws.amazon.com/lambda/latest/dg/API_ListProvisionedConcurrencyConfigs.html)
- [`ListTags`](https://docs.aws.amazon.com/lambda/latest/dg/API_ListTags.html)
- [`ListVersionsByFunction`](https://docs.aws.amazon.com/lambda/latest/dg/API_ListVersionsByFunction.html)
- [`PublishLayerVersion`](https://docs.aws.amazon.com/lambda/latest/dg/API_PublishLayerVersion.html)
Expand Down
5 changes: 0 additions & 5 deletions plugins/lambda/src/incomplete.mjs
Original file line number Diff line number Diff line change
@@ -1,12 +1,7 @@
const disabled = true
const docRoot = 'https://docs.aws.amazon.com/lambda/latest/dg/'
export default {
InvokeAsync: { disabled, awsDoc: docRoot + 'API_InvokeAsync.html' },
InvokeWithResponseStream: { disabled, awsDoc: docRoot + 'API_InvokeWithResponseStream.html' },
ListEventSourceMappings: { disabled, awsDoc: docRoot + 'API_ListEventSourceMappings.html' },
ListFunctionEventInvokeConfigs: { disabled, awsDoc: docRoot + 'API_ListFunctionEventInvokeConfigs.html' },
ListFunctionsByCodeSigningConfig: { disabled, awsDoc: docRoot + 'API_ListFunctionsByCodeSigningConfig.html' },
ListProvisionedConcurrencyConfigs: { disabled, awsDoc: docRoot + 'API_ListProvisionedConcurrencyConfigs.html' },
ListTags: { disabled, awsDoc: docRoot + 'API_ListTags.html' },
ListVersionsByFunction: { disabled, awsDoc: docRoot + 'API_ListVersionsByFunction.html' },
PublishLayerVersion: { disabled, awsDoc: docRoot + 'API_PublishLayerVersion.html' },
Expand Down
127 changes: 127 additions & 0 deletions plugins/lambda/src/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -696,6 +696,22 @@ const Invoke = {
},
}

const InvokeAsync = {
awsDoc: docRoot + 'API_InvokeAsync.html',
deprecated: true,
validate: {
FunctionName,
InvokeArgs: { ...obj, required, comment: 'Function arguments', ref: docRoot + 'API_InvokeAsync.html#API_InvokeAsync_RequestSyntax' },
},
request: ({ FunctionName, InvokeArgs }) => {
return {
path: `/2014-11-13/functions/${FunctionName}/invoke-async/`,
payload: InvokeArgs,
}
},
response: ({ statusCode }) => ({ Status: statusCode }),
}

const ListAliases = {
awsDoc: docRoot + 'API_ListAliases.html',
validate: {
Expand Down Expand Up @@ -748,6 +764,57 @@ const ListCodeSigningConfigs = {
response: defaultResponse,
}

const ListEventSourceMappings = {
awsDoc: docRoot + 'API_ListEventSourceMappings.html',
validate: {
EventSourceArn: { ...str, comment: 'ARN of the event source' },
FunctionName: { ...FunctionName, required: false },
Marker,
MaxItems,
paginate: valPaginate,
},
request: (query) => {
let paginate
if (query.paginate) {
delete query.paginate
paginate = true
}
return {
path: '/2015-03-31/event-source-mappings/',
query,
paginate,
paginator: { ...paginator, accumulator: 'EventSourceMappings' },
}
},
response: defaultResponse,
}

const ListFunctionEventInvokeConfigs = {
awsDoc: docRoot + 'API_ListFunctionEventInvokeConfigs.html',
validate: {
FunctionName,
Marker,
MaxItems,
paginate: valPaginate,
},
request: (query) => {
const { FunctionName } = query
let paginate
delete query.FuncionName
if (query.paginate) {
delete query.paginate
paginate = true
}
return {
path: `/2019-09-25/functions/${FunctionName}/event-invoke-config/list`,
query,
paginate,
paginator: { ...paginator, accumulator: 'FunctionEventInvokeConfigs' },
}
},
response: defaultResponse,
}

const ListFunctions = {
awsDoc: docRoot + 'API_ListFunctions.html',
validate: {
Expand All @@ -772,6 +839,33 @@ const ListFunctions = {
},
}

const ListFunctionsByCodeSigningConfig = {
awsDoc: docRoot + 'API_ListFunctionsByCodeSigningConfig.html',
validate: {
CodeSigningConfigArn: { ...str, required, comment: 'ARN of the code signing configuration' },
Marker,
MaxItems,
paginate: valPaginate,
},
request: (params) => {
const { CodeSigningConfigArn } = params
let query = { ...params }
let paginate
delete query.CodeSigningConfigArn
if (query.paginate) {
delete query.paginate
paginate = true
}
return {
path: `/2020-04-22/code-signing-configs/${CodeSigningConfigArn}/functions`,
query,
paginate,
paginator: { ...paginator, accumulator: 'FunctionArns' },
}
},
response: defaultResponse,
}

const ListFunctionUrlConfigs = {
awsDoc: docRoot + 'API_ListFunctionUrlConfigs.html',
validate: {
Expand Down Expand Up @@ -849,6 +943,34 @@ const ListLayerVersions = {
response: defaultResponse,
}

const ListProvisionedConcurrencyConfigs = {
awsDoc: docRoot + 'API_ListProvisionedConcurrencyConfigs.html',
validate: {
FunctionName,
Marker,
MaxItems,
paginate: valPaginate,
},
request: (params) => {
const { FunctionName } = params
let query = { ...params }
let paginate
query.List = 'ALL'
delete query.FunctionName
if (query.paginate) {
delete query.paginate
paginate = true
}
return {
path: `/2019-09-30/functions/${FunctionName}/provisioned-concurrency`,
query,
paginate,
paginator: { ...paginator, accumulator: 'ProvisionedConcurrencyConfigs' },
}
},
response: defaultResponse,
}

const PutFunctionConcurrency = {
awsDoc: docRoot + 'API_PutFunctionConcurrency.html',
validate: {
Expand Down Expand Up @@ -998,12 +1120,17 @@ export default {
GetProvisionedConcurrencyConfig,
GetRuntimeManagementConfig,
Invoke,
InvokeAsync,
ListAliases,
ListCodeSigningConfigs,
ListEventSourceMappings,
ListFunctionEventInvokeConfigs,
ListFunctions,
ListFunctionsByCodeSigningConfig,
ListFunctionUrlConfigs,
ListLayers,
ListLayerVersions,
ListProvisionedConcurrencyConfigs,
PutFunctionConcurrency,
UpdateAlias,
UpdateFunctionCode,
Expand Down
40 changes: 40 additions & 0 deletions plugins/lambda/types/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,17 @@ import {
GetProvisionedConcurrencyConfigCommandOutput as GetProvisionedConcurrencyConfigResponse,
GetRuntimeManagementConfigCommandOutput as GetRuntimeManagementConfigResponse,
InvokeCommandOutput as InvokeResponse,
InvokeAsyncCommandOutput as InvokeAsyncResponse,
ListAliasesCommandOutput as ListAliasesResponse,
ListCodeSigningConfigsCommandOutput as ListCodeSigningConfigsResponse,
ListEventSourceMappingsCommandOutput as ListEventSourceMappingsResponse,
ListFunctionEventInvokeConfigsCommandOutput as ListFunctionEventInvokeConfigsResponse,
ListFunctionsCommandOutput as ListFunctionsResponse,
ListFunctionsByCodeSigningConfigCommandOutput as ListFunctionsByCodeSigningConfigResponse,
ListFunctionUrlConfigsCommandOutput as ListFunctionUrlConfigsResponse,
ListLayersCommandOutput as ListLayersResponse,
ListLayerVersionsCommandOutput as ListLayerVersionsResponse,
ListProvisionedConcurrencyConfigsCommandOutput as ListProvisionedConcurrencyConfigsResponse,
PutFunctionConcurrencyCommandOutput as PutFunctionConcurrencyResponse,
UpdateAliasCommandOutput as UpdateAliasResponse,
UpdateFunctionCodeCommandOutput as UpdateFunctionCodeResponse,
Expand Down Expand Up @@ -251,6 +256,12 @@ declare interface AwsLiteLambda {
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/lambda/readme.md#Invoke Lambda: Invoke}
*/
Invoke: (input: { FunctionName: string, InvocationType?: string, Payload: any[] | Record<string, any>, LogType?: string, ClientContext?: string, Qualifier?: string }) => Promise<InvokeResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/lambda/latest/dg/API_InvokeAsync.html Lambda: InvokeAsync}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/lambda/readme.md#InvokeAsync Lambda: InvokeAsync}
*/
InvokeAsync: (input: { FunctionName: string, InvokeArgs: Record<string, any> }) => Promise<InvokeAsyncResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/lambda/latest/dg/API_ListAliases.html Lambda: ListAliases}
Expand All @@ -263,12 +274,30 @@ declare interface AwsLiteLambda {
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/lambda/readme.md#ListCodeSigningConfigs Lambda: ListCodeSigningConfigs}
*/
ListCodeSigningConfigs: (input: { Marker?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListCodeSigningConfigsResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/lambda/latest/dg/API_ListEventSourceMappings.html Lambda: ListEventSourceMappings}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/lambda/readme.md#ListEventSourceMappings Lambda: ListEventSourceMappings}
*/
ListEventSourceMappings: (input: { EventSourceArn?: string, FunctionName?: string, Marker?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListEventSourceMappingsResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/lambda/latest/dg/API_ListFunctionEventInvokeConfigs.html Lambda: ListFunctionEventInvokeConfigs}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/lambda/readme.md#ListFunctionEventInvokeConfigs Lambda: ListFunctionEventInvokeConfigs}
*/
ListFunctionEventInvokeConfigs: (input: { FunctionName: string, Marker?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListFunctionEventInvokeConfigsResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/lambda/latest/dg/API_ListFunctions.html Lambda: ListFunctions}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/lambda/readme.md#ListFunctions Lambda: ListFunctions}
*/
ListFunctions: (input: { FunctionVersion?: string, Marker?: string, MasterRegion?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListFunctionsResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/lambda/latest/dg/API_ListFunctionsByCodeSigningConfig.html Lambda: ListFunctionsByCodeSigningConfig}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/lambda/readme.md#ListFunctionsByCodeSigningConfig Lambda: ListFunctionsByCodeSigningConfig}
*/
ListFunctionsByCodeSigningConfig: (input: { CodeSigningConfigArn: string, Marker?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListFunctionsByCodeSigningConfigResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/lambda/latest/dg/API_ListFunctionUrlConfigs.html Lambda: ListFunctionUrlConfigs}
Expand All @@ -287,6 +316,12 @@ declare interface AwsLiteLambda {
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/lambda/readme.md#ListLayerVersions Lambda: ListLayerVersions}
*/
ListLayerVersions: (input: { LayerName: string, CompatibleArchitecture?: string, CompatibleRuntime?: string, Marker?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListLayerVersionsResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/lambda/latest/dg/API_ListProvisionedConcurrencyConfigs.html Lambda: ListProvisionedConcurrencyConfigs}
* - aws-lite docs: {@link https://github.com/architect/aws-lite/blob/main/plugins/lambda/readme.md#ListProvisionedConcurrencyConfigs Lambda: ListProvisionedConcurrencyConfigs}
*/
ListProvisionedConcurrencyConfigs: (input: { FunctionName: string, Marker?: string, MaxItems?: number, paginate?: boolean }) => Promise<ListProvisionedConcurrencyConfigsResponse>
/**
* @description
* - AWS docs: {@link https://docs.aws.amazon.com/lambda/latest/dg/API_PutFunctionConcurrency.html Lambda: PutFunctionConcurrency}
Expand Down Expand Up @@ -358,12 +393,17 @@ export type {
GetProvisionedConcurrencyConfigResponse,
GetRuntimeManagementConfigResponse,
InvokeResponse,
InvokeAsyncResponse,
ListAliasesResponse,
ListCodeSigningConfigsResponse,
ListEventSourceMappingsResponse,
ListFunctionEventInvokeConfigsResponse,
ListFunctionsResponse,
ListFunctionsByCodeSigningConfigResponse,
ListFunctionUrlConfigsResponse,
ListLayersResponse,
ListLayerVersionsResponse,
ListProvisionedConcurrencyConfigsResponse,
PutFunctionConcurrencyResponse,
UpdateAliasResponse,
UpdateFunctionCodeResponse,
Expand Down

0 comments on commit c94019d

Please sign in to comment.