@aws-solutions-constructs/aws-apigateway-dynamodb 2.79.1 → 2.81.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -8,8 +8,8 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "@aws-solutions-constructs/core": "2.79.1",
12
- "aws-cdk-lib": "^2.177.0",
11
+ "@aws-solutions-constructs/core": "2.81.0",
12
+ "aws-cdk-lib": "^2.186.0",
13
13
  "constructs": "^10.0.0"
14
14
  },
15
15
  "dependencyClosure": {
@@ -39,32 +39,6 @@
39
39
  }
40
40
  }
41
41
  },
42
- "@aws-cdk/asset-kubectl-v20": {
43
- "targets": {
44
- "dotnet": {
45
- "namespace": "Amazon.CDK.Asset.KubectlV20",
46
- "packageId": "Amazon.CDK.Asset.KubectlV20"
47
- },
48
- "go": {
49
- "moduleName": "github.com/cdklabs/awscdk-asset-kubectl-go",
50
- "packageName": "kubectlv20"
51
- },
52
- "java": {
53
- "maven": {
54
- "artifactId": "cdk-asset-kubectl-v20",
55
- "groupId": "software.amazon.awscdk"
56
- },
57
- "package": "software.amazon.awscdk.cdk.asset.kubectl.v20"
58
- },
59
- "js": {
60
- "npm": "@aws-cdk/asset-kubectl-v20"
61
- },
62
- "python": {
63
- "distName": "aws-cdk.asset-kubectl-v20",
64
- "module": "aws_cdk.asset_kubectl_v20"
65
- }
66
- }
67
- },
68
42
  "@aws-cdk/asset-node-proxy-agent-v6": {
69
43
  "targets": {
70
44
  "dotnet": {
@@ -993,6 +967,19 @@
993
967
  }
994
968
  }
995
969
  },
970
+ "aws-cdk-lib.aws_cognito_identitypool": {
971
+ "targets": {
972
+ "dotnet": {
973
+ "namespace": "Amazon.CDK.AWS.Cognito.Identitypool"
974
+ },
975
+ "java": {
976
+ "package": "software.amazon.awscdk.services.cognito.identitypool"
977
+ },
978
+ "python": {
979
+ "module": "aws_cdk.aws_cognito_identitypool"
980
+ }
981
+ }
982
+ },
996
983
  "aws-cdk-lib.aws_comprehend": {
997
984
  "targets": {
998
985
  "dotnet": {
@@ -1669,6 +1656,19 @@
1669
1656
  }
1670
1657
  }
1671
1658
  },
1659
+ "aws-cdk-lib.aws_gameliftstreams": {
1660
+ "targets": {
1661
+ "dotnet": {
1662
+ "package": "Amazon.CDK.AWS.GameLiftStreams"
1663
+ },
1664
+ "java": {
1665
+ "package": "software.amazon.awscdk.services.gameliftstreams"
1666
+ },
1667
+ "python": {
1668
+ "module": "aws_cdk.aws_gameliftstreams"
1669
+ }
1670
+ }
1671
+ },
1672
1672
  "aws-cdk-lib.aws_globalaccelerator": {
1673
1673
  "targets": {
1674
1674
  "dotnet": {
@@ -3294,6 +3294,19 @@
3294
3294
  }
3295
3295
  }
3296
3296
  },
3297
+ "aws-cdk-lib.aws_scheduler_targets": {
3298
+ "targets": {
3299
+ "dotnet": {
3300
+ "namespace": "Amazon.CDK.AWS.Scheduler.Targets"
3301
+ },
3302
+ "java": {
3303
+ "package": "software.amazon.awscdk.services.scheduler.targets"
3304
+ },
3305
+ "python": {
3306
+ "module": "aws_cdk.aws_scheduler_targets"
3307
+ }
3308
+ }
3309
+ },
3297
3310
  "aws-cdk-lib.aws_sdb": {
3298
3311
  "targets": {
3299
3312
  "dotnet": {
@@ -3841,19 +3854,6 @@
3841
3854
  }
3842
3855
  }
3843
3856
  },
3844
- "aws-cdk-lib.lambda_layer_kubectl": {
3845
- "targets": {
3846
- "dotnet": {
3847
- "namespace": "Amazon.CDK.LambdaLayer.Kubectl"
3848
- },
3849
- "java": {
3850
- "package": "software.amazon.awscdk.lambdalayer.kubectl"
3851
- },
3852
- "python": {
3853
- "module": "aws_cdk.lambda_layer_kubectl"
3854
- }
3855
- }
3856
- },
3857
3857
  "aws-cdk-lib.lambda_layer_node_proxy_agent": {
3858
3858
  "targets": {
3859
3859
  "dotnet": {
@@ -3980,7 +3980,7 @@
3980
3980
  },
3981
3981
  "name": "@aws-solutions-constructs/aws-apigateway-dynamodb",
3982
3982
  "readme": {
3983
- "markdown": "# aws-apigateway-dynamodb module\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge)\n\n> All classes are under active development and subject to non-backward compatible changes or removal in any\n> future version. These are not subject to the [Semantic Versioning](https://semver.org/) model.\n> This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package.\n\n---\n<!--END STABILITY BANNER-->\n\n| **Reference Documentation**:| <span style=\"font-weight: normal\">https://docs.aws.amazon.com/solutions/latest/constructs/</span>|\n|:-------------|:-------------|\n<div style=\"height:8px\"></div>\n\n\n| **Language** | **Package** |\n|:-------------|-----------------|\n|![Python Logo](https://docs.aws.amazon.com/cdk/api/latest/img/python32.png) Python|`aws_solutions_constructs.aws_apigateway_dynamodb`|\n|![Typescript Logo](https://docs.aws.amazon.com/cdk/api/latest/img/typescript32.png) Typescript|`@aws-solutions-constructs/aws-apigateway-dynamodb`|\n|![Java Logo](https://docs.aws.amazon.com/cdk/api/latest/img/java32.png) Java|`software.amazon.awsconstructs.services.apigatewaydynamodb`|\n\n## Overview\nThis AWS Solutions Construct implements an Amazon API Gateway REST API connected to Amazon DynamoDB table.\n\nHere is a minimal deployable pattern definition in:\n\nTypescript\n``` typescript\nimport { Construct } from 'constructs';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { ApiGatewayToDynamoDBProps, ApiGatewayToDynamoDB } from \"@aws-solutions-constructs/aws-apigateway-dynamodb\";\n\nnew ApiGatewayToDynamoDB(this, 'test-api-gateway-dynamodb-default', {});\n```\n\nPython\n``` python\nfrom aws_solutions_constructs.aws_apigateway_dynamodb import ApiGatewayToDynamoDB\nfrom aws_cdk import Stack\nfrom constructs import Construct\n\nApiGatewayToDynamoDB(self, 'test-api-gateway-dynamodb-default')\n```\n\nJava\n``` java\nimport software.constructs.Construct;\n\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.amazon.awsconstructs.services.apigatewaydynamodb.*;\n\nnew ApiGatewayToDynamoDB(this, \"test-api-gateway-dynamodb-default\", new ApiGatewayToDynamoDBProps.Builder()\n .build());\n```\n\n## Pattern Construct Props\n\n| **Name** | **Type** | **Description** |\n|:-------------|:----------------|-----------------|\n|dynamoTableProps?|[`dynamodb.TableProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_dynamodb.TableProps.html)|Optional user provided props to override the default props for DynamoDB Table.|\n|existingTableObj?|[`dynamodb.Table`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_dynamodb.Table.html)|Existing instance of DynamoDB table object, providing both this and `dynamoTableProps` will cause an error.|\n|apiGatewayProps?|[`api.RestApiProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.RestApiProps.html)|Optional user-provided props to override the default props for the API Gateway.|\n|resourceName?|`string`|Optional name of the resource on the API Gateway. Defaults to the table's partitionKeyName|\n|allowCreateOperation?|`boolean`|Whether to deploy an API Gateway Method for POST HTTP operations on the DynamoDB table (i.e. dynamodb:PutItem).|\n|createRequestTemplate?|`string`|API Gateway Request Template for the create method for the default `application/json` content-type. This property is required if the `allowCreateOperation` property is set to true.|\n|additionalCreateRequestTemplates?|`{ [contentType: string]: string; }`|Optional Create Request Templates for content-types other than `application/json`. Use the `createRequestTemplate` property to set the request template for the `application/json` content-type. This property can only be specified if the `allowCreateOperation` property is set to true.|\n|createIntegrationResponses?|[`api.IntegrationResponses[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.IntegrationResponse.html)|Optional, custom API Gateway Integration Response for the create method. This property can only be specified if the `allowCreateOperation` property is set to true.|\n|createMethodResponses?|[`api.MethodResponses[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.MethodResponse.html)| Optional, custom API Gateway Method Responses for the create action. default: [{ statusCode: \"200\", responseParameters: { \"method.response.header.Content-Type\": true }},{ statusCode: \"500\", responseParameters: { \"method.response.header.Content-Type\": true } } ]|\n|allowReadOperation?|`boolean`|Whether to deploy an API Gateway Method for GET HTTP operations on DynamoDB table (i.e. dynamodb:Query).|\n|readRequestTemplate?|`string`|API Gateway Request Template for the read method for the default `application/json` content-type. The default template only supports a partition key and not partition + sort keys.|\n|additionalReadRequestTemplates?|`{ [contentType: string]: string; }`|Optional Read Request Templates for content-types other than `application/json`. Use the `readRequestTemplate` property to set the request template for the `application/json` content-type.|\n|readIntegrationResponses?|[`api.IntegrationResponses[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.IntegrationResponse.html)|Optional, custom API Gateway Integration Response for the read method.|\n|allowUpdateOperation?|`boolean`|Whether to deploy API Gateway Method for PUT HTTP operations on DynamoDB table (i.e. dynamodb:UpdateItem).|\n|readMethodResponses?|[`api.MethodResponses[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.MethodResponse.html)| Optional, custom API Gateway Method Responses for the read action. default: [{ statusCode: \"200\", responseParameters: { \"method.response.header.Content-Type\": true }},{ statusCode: \"500\", responseParameters: { \"method.response.header.Content-Type\": true } } ]|\n|updateRequestTemplate?|`string`|API Gateway Request Template for the update method. This property is required if the `allowUpdateOperation` property is set to true.|\n|additionalUpdateRequestTemplates?|`{ [contentType: string]: string; }`|Optional Update Request Templates for content-types other than `application/json`. Use the `updateRequestTemplate` property to set the request template for the `application/json` content-type. This property can only be specified if the `allowUpdateOperation` property is set to true.|\n|updateIntegrationResponses?|[`api.IntegrationResponses[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.IntegrationResponse.html)|Optional, custom API Gateway Integration Response for the update method. This property can only be specified if the `allowUpdateOperation` property is set to true.|\n|updateMethodResponses?|[`api.MethodResponses[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.MethodResponse.html)| Optional, custom API Gateway Method Responses for the update action. default: [{ statusCode: \"200\", responseParameters: { \"method.response.header.Content-Type\": true }},{ statusCode: \"500\", responseParameters: { \"method.response.header.Content-Type\": true } } ]|\n|allowDeleteOperation?|`boolean`|Whether to deploy API Gateway Method for DELETE HTTP operations on DynamoDB table (i.e. dynamodb:DeleteItem).|\n|deleteRequestTemplate?|`string`|API Gateway Request Template for the delete method for the default `application/json` content-type. |\n|additionalDeleteRequestTemplates?|`{ [contentType: string]: string; }`|Optional Delete request templates for content-types other than `application/json`. Use the `deleteRequestTemplate` property to set the request template for the `application/json` content-type. This property can only be specified if the `allowDeleteOperation` property is set to true.|\n|deleteIntegrationResponses?|[`api.IntegrationResponses[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.IntegrationResponse.html)|Optional, custom API Gateway Integration Response for the delete method. This property can only be specified if the `allowDeleteOperation` property is set to true.|\n|deleteMethodResponses?|[`api.MethodResponses[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.MethodResponse.html)| Optional, custom API Gateway Method Responses for the delete action. default: [{ statusCode: \"200\", responseParameters: { \"method.response.header.Content-Type\": true }},{ statusCode: \"500\", responseParameters: { \"method.response.header.Content-Type\": true } } ]|\n|logGroupProps?|[`logs.LogGroupProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs.LogGroupProps.html)|User provided props to override the default props for for the CloudWatchLogs LogGroup.|\n\n## Pattern Properties\n\n| **Name** | **Type** | **Description** |\n|:-------------|:----------------|-----------------|\n|apiGateway|[`api.RestApi`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.RestApi.html)|Returns an instance of the api.RestApi created by the construct.|\n|apiGatewayRole|[`iam.Role`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_iam.Role.html)|Returns an instance of the iam.Role created by the construct for API Gateway.|\n|dynamoTable|[`dynamodb.Table`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_dynamodb.Table.html)|Returns an instance of dynamodb.Table created by the construct.|\n|apiGatewayCloudWatchRole?|[`iam.Role`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_iam.Role.html)|Returns an instance of the iam.Role created by the construct for API Gateway for CloudWatch access.|\n|apiGatewayLogGroup|[`logs.LogGroup`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs.LogGroup.html)|Returns an instance of the LogGroup created by the construct for API Gateway access logging to CloudWatch.|\n\n## API Gateway Request/Response Template Properties Overview\nThis construct allows you to implement four DynamoDB API operations, CREATE/READ/UPDATE/DELETE (corresponding the HTTP POST/GET/PUT/DELETE requests respectively). They are completely independent and each follows the same pattern:\n* Setting `allowCreateOperation` to true will implement the `application/json` content-type with default request and response templates\n* The request template for `application/json` requests can be customized using the `createRequestTemplate` prop value\n* *Additional* request templates can be specified using the `additionalCreateRequestTemplates` prop value. Note - these DO NOT replace the `application/json` content-type\n* Customized integration responses can be specified for any content type in the `createIntegrationResponses` prop value.\n\nSupplying any of these values without setting allowCreateOperation to true will result in an error. This pattern is the same for all four API operations.\n\n## Default settings\n\nOut of the box implementation of the Construct without any override will set the following defaults:\n\n### Amazon API Gateway\n* Deploy an edge-optimized API endpoint\n* Enable CloudWatch logging for API Gateway\n* Configure least privilege access IAM role for API Gateway\n* Set the default authorizationType for all API methods to IAM\n* Enable X-Ray Tracing\n\n### Amazon DynamoDB Table\n* Set the billing mode for DynamoDB Table to On-Demand (Pay per request)\n* Enable server-side encryption for DynamoDB Table using AWS managed KMS Key\n* Creates a partition key called 'id' for DynamoDB Table\n* Retain the Table when deleting the CloudFormation stack\n* Enable continuous backups and point-in-time recovery\n\n## Architecture\n![Architecture Diagram](architecture.png)\n\n***\n&copy; Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n"
3983
+ "markdown": "# aws-apigateway-dynamodb module\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![Stability: Experimental](https://img.shields.io/badge/stability-Experimental-important.svg?style=for-the-badge)\n\n> All classes are under active development and subject to non-backward compatible changes or removal in any\n> future version. These are not subject to the [Semantic Versioning](https://semver.org/) model.\n> This means that while you may use them, you may need to update your source code when upgrading to a newer version of this package.\n\n---\n<!--END STABILITY BANNER-->\n\n| **Reference Documentation**:| <span style=\"font-weight: normal\">https://docs.aws.amazon.com/solutions/latest/constructs/</span>|\n|:-------------|:-------------|\n<div style=\"height:8px\"></div>\n\n\n| **Language** | **Package** |\n|:-------------|-----------------|\n|![Python Logo](https://docs.aws.amazon.com/cdk/api/latest/img/python32.png) Python|`aws_solutions_constructs.aws_apigateway_dynamodb`|\n|![Typescript Logo](https://docs.aws.amazon.com/cdk/api/latest/img/typescript32.png) Typescript|`@aws-solutions-constructs/aws-apigateway-dynamodb`|\n|![Java Logo](https://docs.aws.amazon.com/cdk/api/latest/img/java32.png) Java|`software.amazon.awsconstructs.services.apigatewaydynamodb`|\n\n## Overview\nThis AWS Solutions Construct implements an Amazon API Gateway REST API connected to Amazon DynamoDB table.\n\nHere is a minimal deployable pattern definition in:\n\nTypescript\n``` typescript\nimport { Construct } from 'constructs';\nimport { Stack, StackProps } from 'aws-cdk-lib';\nimport { ApiGatewayToDynamoDBProps, ApiGatewayToDynamoDB } from \"@aws-solutions-constructs/aws-apigateway-dynamodb\";\n\nnew ApiGatewayToDynamoDB(this, 'test-api-gateway-dynamodb-default', {});\n```\n\nPython\n``` python\nfrom aws_solutions_constructs.aws_apigateway_dynamodb import ApiGatewayToDynamoDB\nfrom aws_cdk import Stack\nfrom constructs import Construct\n\nApiGatewayToDynamoDB(self, 'test-api-gateway-dynamodb-default')\n```\n\nJava\n``` java\nimport software.constructs.Construct;\n\nimport software.amazon.awscdk.Stack;\nimport software.amazon.awscdk.StackProps;\nimport software.amazon.awsconstructs.services.apigatewaydynamodb.*;\n\nnew ApiGatewayToDynamoDB(this, \"test-api-gateway-dynamodb-default\", new ApiGatewayToDynamoDBProps.Builder()\n .build());\n```\n\n## Pattern Construct Props\n\n| **Name** | **Type** | **Description** |\n|:-------------|:----------------|-----------------|\n|dynamoTableProps?|[`dynamodb.TableProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_dynamodb.TableProps.html)|Optional user provided props to override the default props for DynamoDB Table.|\n|existingTableObj?|[`dynamodb.Table`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_dynamodb.Table.html)|Existing instance of DynamoDB table object, providing both this and `dynamoTableProps` will cause an error.|\n|apiGatewayProps?|[`api.RestApiProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.RestApiProps.html)|Optional user-provided props to override the default props for the API Gateway.|\n|createUsagePlan?|boolean|Whether to create a Usage Plan attached to the API. Must be true if apiGatewayProps.defaultMethodOptions.apiKeyRequired is true. @default - true (to match legacy behavior)|\n|resourceName?|`string`|Optional name of the resource on the API Gateway. Defaults to the table's partitionKeyName|\n|allowCreateOperation?|`boolean`|Whether to deploy an API Gateway Method for POST HTTP operations on the DynamoDB table (i.e. dynamodb:PutItem).|\n|createRequestTemplate?|`string`|API Gateway Request Template for the create method for the default `application/json` content-type. This property is required if the `allowCreateOperation` property is set to true.|\n|additionalCreateRequestTemplates?|`{ [contentType: string]: string; }`|Optional Create Request Templates for content-types other than `application/json`. Use the `createRequestTemplate` property to set the request template for the `application/json` content-type. This property can only be specified if the `allowCreateOperation` property is set to true.|\n|createIntegrationResponses?|[`api.IntegrationResponses[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.IntegrationResponse.html)|Optional, custom API Gateway Integration Response for the create method. This property can only be specified if the `allowCreateOperation` property is set to true.|\n|createMethodResponses?|[`api.MethodResponses[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.MethodResponse.html)| Optional, custom API Gateway Method Responses for the create action. default: [{ statusCode: \"200\", responseParameters: { \"method.response.header.Content-Type\": true }},{ statusCode: \"500\", responseParameters: { \"method.response.header.Content-Type\": true } } ]|\n|allowReadOperation?|`boolean`|Whether to deploy an API Gateway Method for GET HTTP operations on DynamoDB table (i.e. dynamodb:Query).|\n|readRequestTemplate?|`string`|API Gateway Request Template for the read method for the default `application/json` content-type. The default template only supports a partition key and not partition + sort keys.|\n|additionalReadRequestTemplates?|`{ [contentType: string]: string; }`|Optional Read Request Templates for content-types other than `application/json`. Use the `readRequestTemplate` property to set the request template for the `application/json` content-type.|\n|readIntegrationResponses?|[`api.IntegrationResponses[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.IntegrationResponse.html)|Optional, custom API Gateway Integration Response for the read method.|\n|allowUpdateOperation?|`boolean`|Whether to deploy API Gateway Method for PUT HTTP operations on DynamoDB table (i.e. dynamodb:UpdateItem).|\n|readMethodResponses?|[`api.MethodResponses[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.MethodResponse.html)| Optional, custom API Gateway Method Responses for the read action. default: [{ statusCode: \"200\", responseParameters: { \"method.response.header.Content-Type\": true }},{ statusCode: \"500\", responseParameters: { \"method.response.header.Content-Type\": true } } ]|\n|updateRequestTemplate?|`string`|API Gateway Request Template for the update method. This property is required if the `allowUpdateOperation` property is set to true.|\n|additionalUpdateRequestTemplates?|`{ [contentType: string]: string; }`|Optional Update Request Templates for content-types other than `application/json`. Use the `updateRequestTemplate` property to set the request template for the `application/json` content-type. This property can only be specified if the `allowUpdateOperation` property is set to true.|\n|updateIntegrationResponses?|[`api.IntegrationResponses[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.IntegrationResponse.html)|Optional, custom API Gateway Integration Response for the update method. This property can only be specified if the `allowUpdateOperation` property is set to true.|\n|updateMethodResponses?|[`api.MethodResponses[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.MethodResponse.html)| Optional, custom API Gateway Method Responses for the update action. default: [{ statusCode: \"200\", responseParameters: { \"method.response.header.Content-Type\": true }},{ statusCode: \"500\", responseParameters: { \"method.response.header.Content-Type\": true } } ]|\n|allowDeleteOperation?|`boolean`|Whether to deploy API Gateway Method for DELETE HTTP operations on DynamoDB table (i.e. dynamodb:DeleteItem).|\n|deleteRequestTemplate?|`string`|API Gateway Request Template for the delete method for the default `application/json` content-type. |\n|additionalDeleteRequestTemplates?|`{ [contentType: string]: string; }`|Optional Delete request templates for content-types other than `application/json`. Use the `deleteRequestTemplate` property to set the request template for the `application/json` content-type. This property can only be specified if the `allowDeleteOperation` property is set to true.|\n|deleteIntegrationResponses?|[`api.IntegrationResponses[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.IntegrationResponse.html)|Optional, custom API Gateway Integration Response for the delete method. This property can only be specified if the `allowDeleteOperation` property is set to true.|\n|deleteMethodResponses?|[`api.MethodResponses[]`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.MethodResponse.html)| Optional, custom API Gateway Method Responses for the delete action. default: [{ statusCode: \"200\", responseParameters: { \"method.response.header.Content-Type\": true }},{ statusCode: \"500\", responseParameters: { \"method.response.header.Content-Type\": true } } ]|\n|logGroupProps?|[`logs.LogGroupProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs.LogGroupProps.html)|User provided props to override the default props for for the CloudWatchLogs LogGroup.|\n\n## Pattern Properties\n\n| **Name** | **Type** | **Description** |\n|:-------------|:----------------|-----------------|\n|apiGateway|[`api.RestApi`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.RestApi.html)|Returns an instance of the api.RestApi created by the construct.|\n|apiGatewayRole|[`iam.Role`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_iam.Role.html)|Returns an instance of the iam.Role created by the construct for API Gateway.|\n|dynamoTable|[`dynamodb.Table`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_dynamodb.Table.html)|Returns an instance of dynamodb.Table created by the construct.|\n|apiGatewayCloudWatchRole?|[`iam.Role`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_iam.Role.html)|Returns an instance of the iam.Role created by the construct for API Gateway for CloudWatch access.|\n|apiGatewayLogGroup|[`logs.LogGroup`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_logs.LogGroup.html)|Returns an instance of the LogGroup created by the construct for API Gateway access logging to CloudWatch.|\n\n## API Gateway Request/Response Template Properties Overview\nThis construct allows you to implement four DynamoDB API operations, CREATE/READ/UPDATE/DELETE (corresponding the HTTP POST/GET/PUT/DELETE requests respectively). They are completely independent and each follows the same pattern:\n* Setting `allowCreateOperation` to true will implement the `application/json` content-type with default request and response templates\n* The request template for `application/json` requests can be customized using the `createRequestTemplate` prop value\n* *Additional* request templates can be specified using the `additionalCreateRequestTemplates` prop value. Note - these DO NOT replace the `application/json` content-type\n* Customized integration responses can be specified for any content type in the `createIntegrationResponses` prop value.\n\nSupplying any of these values without setting allowCreateOperation to true will result in an error. This pattern is the same for all four API operations.\n\n## Default settings\n\nOut of the box implementation of the Construct without any override will set the following defaults:\n\n### Amazon API Gateway\n* Deploy an edge-optimized API endpoint\n* Enable CloudWatch logging for API Gateway\n* Configure least privilege access IAM role for API Gateway\n* Set the default authorizationType for all API methods to IAM\n* Enable X-Ray Tracing\n\n### Amazon DynamoDB Table\n* Set the billing mode for DynamoDB Table to On-Demand (Pay per request)\n* Enable server-side encryption for DynamoDB Table using AWS managed KMS Key\n* Creates a partition key called 'id' for DynamoDB Table\n* Retain the Table when deleting the CloudFormation stack\n* Enable continuous backups and point-in-time recovery\n\n## Architecture\n![Architecture Diagram](architecture.png)\n\n***\n&copy; Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n"
3984
3984
  },
3985
3985
  "repository": {
3986
3986
  "directory": "source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb",
@@ -4030,7 +4030,7 @@
4030
4030
  },
4031
4031
  "locationInModule": {
4032
4032
  "filename": "lib/index.ts",
4033
- "line": 280
4033
+ "line": 287
4034
4034
  },
4035
4035
  "parameters": [
4036
4036
  {
@@ -4065,7 +4065,7 @@
4065
4065
  "kind": "class",
4066
4066
  "locationInModule": {
4067
4067
  "filename": "lib/index.ts",
4068
- "line": 266
4068
+ "line": 273
4069
4069
  },
4070
4070
  "name": "ApiGatewayToDynamoDB",
4071
4071
  "properties": [
@@ -4073,7 +4073,7 @@
4073
4073
  "immutable": true,
4074
4074
  "locationInModule": {
4075
4075
  "filename": "lib/index.ts",
4076
- "line": 269
4076
+ "line": 276
4077
4077
  },
4078
4078
  "name": "apiGateway",
4079
4079
  "type": {
@@ -4084,7 +4084,7 @@
4084
4084
  "immutable": true,
4085
4085
  "locationInModule": {
4086
4086
  "filename": "lib/index.ts",
4087
- "line": 271
4087
+ "line": 278
4088
4088
  },
4089
4089
  "name": "apiGatewayLogGroup",
4090
4090
  "type": {
@@ -4095,7 +4095,7 @@
4095
4095
  "immutable": true,
4096
4096
  "locationInModule": {
4097
4097
  "filename": "lib/index.ts",
4098
- "line": 268
4098
+ "line": 275
4099
4099
  },
4100
4100
  "name": "apiGatewayRole",
4101
4101
  "type": {
@@ -4106,7 +4106,7 @@
4106
4106
  "immutable": true,
4107
4107
  "locationInModule": {
4108
4108
  "filename": "lib/index.ts",
4109
- "line": 267
4109
+ "line": 274
4110
4110
  },
4111
4111
  "name": "dynamoTable",
4112
4112
  "type": {
@@ -4117,7 +4117,7 @@
4117
4117
  "immutable": true,
4118
4118
  "locationInModule": {
4119
4119
  "filename": "lib/index.ts",
4120
- "line": 270
4120
+ "line": 277
4121
4121
  },
4122
4122
  "name": "apiGatewayCloudWatchRole",
4123
4123
  "optional": true,
@@ -4154,7 +4154,7 @@
4154
4154
  "immutable": true,
4155
4155
  "locationInModule": {
4156
4156
  "filename": "lib/index.ts",
4157
- "line": 72
4157
+ "line": 79
4158
4158
  },
4159
4159
  "name": "additionalCreateRequestTemplates",
4160
4160
  "optional": true,
@@ -4177,7 +4177,7 @@
4177
4177
  "immutable": true,
4178
4178
  "locationInModule": {
4179
4179
  "filename": "lib/index.ts",
4180
- "line": 228
4180
+ "line": 235
4181
4181
  },
4182
4182
  "name": "additionalDeleteRequestTemplates",
4183
4183
  "optional": true,
@@ -4200,7 +4200,7 @@
4200
4200
  "immutable": true,
4201
4201
  "locationInModule": {
4202
4202
  "filename": "lib/index.ts",
4203
- "line": 127
4203
+ "line": 134
4204
4204
  },
4205
4205
  "name": "additionalReadRequestTemplates",
4206
4206
  "optional": true,
@@ -4223,7 +4223,7 @@
4223
4223
  "immutable": true,
4224
4224
  "locationInModule": {
4225
4225
  "filename": "lib/index.ts",
4226
- "line": 173
4226
+ "line": 180
4227
4227
  },
4228
4228
  "name": "additionalUpdateRequestTemplates",
4229
4229
  "optional": true,
@@ -4245,7 +4245,7 @@
4245
4245
  "immutable": true,
4246
4246
  "locationInModule": {
4247
4247
  "filename": "lib/index.ts",
4248
- "line": 57
4248
+ "line": 64
4249
4249
  },
4250
4250
  "name": "allowCreateOperation",
4251
4251
  "optional": true,
@@ -4262,7 +4262,7 @@
4262
4262
  "immutable": true,
4263
4263
  "locationInModule": {
4264
4264
  "filename": "lib/index.ts",
4265
- "line": 205
4265
+ "line": 212
4266
4266
  },
4267
4267
  "name": "allowDeleteOperation",
4268
4268
  "optional": true,
@@ -4279,7 +4279,7 @@
4279
4279
  "immutable": true,
4280
4280
  "locationInModule": {
4281
4281
  "filename": "lib/index.ts",
4282
- "line": 104
4282
+ "line": 111
4283
4283
  },
4284
4284
  "name": "allowReadOperation",
4285
4285
  "optional": true,
@@ -4296,7 +4296,7 @@
4296
4296
  "immutable": true,
4297
4297
  "locationInModule": {
4298
4298
  "filename": "lib/index.ts",
4299
- "line": 158
4299
+ "line": 165
4300
4300
  },
4301
4301
  "name": "allowUpdateOperation",
4302
4302
  "optional": true,
@@ -4331,7 +4331,7 @@
4331
4331
  "immutable": true,
4332
4332
  "locationInModule": {
4333
4333
  "filename": "lib/index.ts",
4334
- "line": 79
4334
+ "line": 86
4335
4335
  },
4336
4336
  "name": "createIntegrationResponses",
4337
4337
  "optional": true,
@@ -4353,7 +4353,7 @@
4353
4353
  "immutable": true,
4354
4354
  "locationInModule": {
4355
4355
  "filename": "lib/index.ts",
4356
- "line": 98
4356
+ "line": 105
4357
4357
  },
4358
4358
  "name": "createMethodResponses",
4359
4359
  "optional": true,
@@ -4376,7 +4376,7 @@
4376
4376
  "immutable": true,
4377
4377
  "locationInModule": {
4378
4378
  "filename": "lib/index.ts",
4379
- "line": 64
4379
+ "line": 71
4380
4380
  },
4381
4381
  "name": "createRequestTemplate",
4382
4382
  "optional": true,
@@ -4384,6 +4384,24 @@
4384
4384
  "primitive": "string"
4385
4385
  }
4386
4386
  },
4387
+ {
4388
+ "abstract": true,
4389
+ "docs": {
4390
+ "default": "- true (to match legacy behavior)",
4391
+ "remarks": "Must be true if\napiGatewayProps.defaultMethodOptions.apiKeyRequired is true",
4392
+ "summary": "Whether to create a Usage Plan attached to the API."
4393
+ },
4394
+ "immutable": true,
4395
+ "locationInModule": {
4396
+ "filename": "lib/index.ts",
4397
+ "line": 51
4398
+ },
4399
+ "name": "createUsagePlan",
4400
+ "optional": true,
4401
+ "type": {
4402
+ "primitive": "boolean"
4403
+ }
4404
+ },
4387
4405
  {
4388
4406
  "abstract": true,
4389
4407
  "docs": {
@@ -4394,7 +4412,7 @@
4394
4412
  "immutable": true,
4395
4413
  "locationInModule": {
4396
4414
  "filename": "lib/index.ts",
4397
- "line": 235
4415
+ "line": 242
4398
4416
  },
4399
4417
  "name": "deleteIntegrationResponses",
4400
4418
  "optional": true,
@@ -4416,7 +4434,7 @@
4416
4434
  "immutable": true,
4417
4435
  "locationInModule": {
4418
4436
  "filename": "lib/index.ts",
4419
- "line": 254
4437
+ "line": 261
4420
4438
  },
4421
4439
  "name": "deleteMethodResponses",
4422
4440
  "optional": true,
@@ -4439,7 +4457,7 @@
4439
4457
  "immutable": true,
4440
4458
  "locationInModule": {
4441
4459
  "filename": "lib/index.ts",
4442
- "line": 220
4460
+ "line": 227
4443
4461
  },
4444
4462
  "name": "deleteRequestTemplate",
4445
4463
  "optional": true,
@@ -4490,7 +4508,7 @@
4490
4508
  "immutable": true,
4491
4509
  "locationInModule": {
4492
4510
  "filename": "lib/index.ts",
4493
- "line": 260
4511
+ "line": 267
4494
4512
  },
4495
4513
  "name": "logGroupProps",
4496
4514
  "optional": true,
@@ -4507,7 +4525,7 @@
4507
4525
  "immutable": true,
4508
4526
  "locationInModule": {
4509
4527
  "filename": "lib/index.ts",
4510
- "line": 133
4528
+ "line": 140
4511
4529
  },
4512
4530
  "name": "readIntegrationResponses",
4513
4531
  "optional": true,
@@ -4529,7 +4547,7 @@
4529
4547
  "immutable": true,
4530
4548
  "locationInModule": {
4531
4549
  "filename": "lib/index.ts",
4532
- "line": 152
4550
+ "line": 159
4533
4551
  },
4534
4552
  "name": "readMethodResponses",
4535
4553
  "optional": true,
@@ -4552,7 +4570,7 @@
4552
4570
  "immutable": true,
4553
4571
  "locationInModule": {
4554
4572
  "filename": "lib/index.ts",
4555
- "line": 120
4573
+ "line": 127
4556
4574
  },
4557
4575
  "name": "readRequestTemplate",
4558
4576
  "optional": true,
@@ -4569,7 +4587,7 @@
4569
4587
  "immutable": true,
4570
4588
  "locationInModule": {
4571
4589
  "filename": "lib/index.ts",
4572
- "line": 51
4590
+ "line": 58
4573
4591
  },
4574
4592
  "name": "resourceName",
4575
4593
  "optional": true,
@@ -4587,7 +4605,7 @@
4587
4605
  "immutable": true,
4588
4606
  "locationInModule": {
4589
4607
  "filename": "lib/index.ts",
4590
- "line": 180
4608
+ "line": 187
4591
4609
  },
4592
4610
  "name": "updateIntegrationResponses",
4593
4611
  "optional": true,
@@ -4609,7 +4627,7 @@
4609
4627
  "immutable": true,
4610
4628
  "locationInModule": {
4611
4629
  "filename": "lib/index.ts",
4612
- "line": 199
4630
+ "line": 206
4613
4631
  },
4614
4632
  "name": "updateMethodResponses",
4615
4633
  "optional": true,
@@ -4632,7 +4650,7 @@
4632
4650
  "immutable": true,
4633
4651
  "locationInModule": {
4634
4652
  "filename": "lib/index.ts",
4635
- "line": 165
4653
+ "line": 172
4636
4654
  },
4637
4655
  "name": "updateRequestTemplate",
4638
4656
  "optional": true,
@@ -4644,6 +4662,6 @@
4644
4662
  "symbolId": "lib/index:ApiGatewayToDynamoDBProps"
4645
4663
  }
4646
4664
  },
4647
- "version": "2.79.1",
4648
- "fingerprint": "Uugy8UbONh3v2nJ5og5NBZ0Nb5VPsJn80psFCjwwybc="
4665
+ "version": "2.81.0",
4666
+ "fingerprint": "u5vmUTW27Dlum2FkV+gMhVhSBfxn+03MZAYmFQvlI+k="
4649
4667
  }
package/README.md CHANGED
@@ -65,6 +65,7 @@ new ApiGatewayToDynamoDB(this, "test-api-gateway-dynamodb-default", new ApiGatew
65
65
  |dynamoTableProps?|[`dynamodb.TableProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_dynamodb.TableProps.html)|Optional user provided props to override the default props for DynamoDB Table.|
66
66
  |existingTableObj?|[`dynamodb.Table`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_dynamodb.Table.html)|Existing instance of DynamoDB table object, providing both this and `dynamoTableProps` will cause an error.|
67
67
  |apiGatewayProps?|[`api.RestApiProps`](https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_apigateway.RestApiProps.html)|Optional user-provided props to override the default props for the API Gateway.|
68
+ |createUsagePlan?|boolean|Whether to create a Usage Plan attached to the API. Must be true if apiGatewayProps.defaultMethodOptions.apiKeyRequired is true. @default - true (to match legacy behavior)|
68
69
  |resourceName?|`string`|Optional name of the resource on the API Gateway. Defaults to the table's partitionKeyName|
69
70
  |allowCreateOperation?|`boolean`|Whether to deploy an API Gateway Method for POST HTTP operations on the DynamoDB table (i.e. dynamodb:PutItem).|
70
71
  |createRequestTemplate?|`string`|API Gateway Request Template for the create method for the default `application/json` content-type. This property is required if the `allowCreateOperation` property is set to true.|
package/lib/index.d.ts CHANGED
@@ -37,6 +37,13 @@ export interface ApiGatewayToDynamoDBProps {
37
37
  * @default - Default properties are used.
38
38
  */
39
39
  readonly apiGatewayProps?: api.RestApiProps;
40
+ /**
41
+ * Whether to create a Usage Plan attached to the API. Must be true if
42
+ * apiGatewayProps.defaultMethodOptions.apiKeyRequired is true
43
+ *
44
+ * @default - true (to match legacy behavior)
45
+ */
46
+ readonly createUsagePlan?: boolean;
40
47
  /**
41
48
  * Optional resource name on the API
42
49
  * This property is useful if your integration does not directly use the partition key name