From dfe12298e55b2df3f8627b21d7e2c0309a50a4cb Mon Sep 17 00:00:00 2001 From: Wade Robson Date: Thu, 27 Feb 2020 18:36:52 -0800 Subject: [PATCH 1/3] docs: update 2016-10-31.md (#1473) --- versions/2016-10-31.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/versions/2016-10-31.md b/versions/2016-10-31.md index 4aaaa7d1a2..abf9c7a1fe 100644 --- a/versions/2016-10-31.md +++ b/versions/2016-10-31.md @@ -1227,7 +1227,7 @@ Enable custom domains to be configured with your Api. Currently only supports Cr ```yaml Domain: DomainName: String # REQUIRED | custom domain name being configured on the api, "www.example.com" - CertificateARN: String # REQUIRED | Must be a valid [certificate ARN](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html), and for EDGE endpoint configuration the certificate must be in us-east-1 + CertificateArn: String # REQUIRED | Must be a valid [certificate ARN](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-certificatemanager-certificate.html), and for EDGE endpoint configuration the certificate must be in us-east-1 EndpointConfiguration: "EDGE" # optional | Default value is REGIONAL | Accepted values are EDGE | REGIONAL BasePath: - String # optional | Default value is '/' | List of basepaths to be configured with the ApiGateway Domain Name From 8650fcbf811c9206a75c147bb8c83b14e19173ce Mon Sep 17 00:00:00 2001 From: Shreya Date: Tue, 3 Mar 2020 12:01:53 -0800 Subject: [PATCH 2/3] chore: bump translator version (#1483) --- samtranslator/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/samtranslator/__init__.py b/samtranslator/__init__.py index 6df86cae31..eb9596372c 100644 --- a/samtranslator/__init__.py +++ b/samtranslator/__init__.py @@ -1 +1 @@ -__version__ = "1.21.0" +__version__ = "1.22.0" From 7dc8a204e9bcdaff7f75ddf52cdf7e5d6849db34 Mon Sep 17 00:00:00 2001 From: Shreya Date: Mon, 16 Mar 2020 13:13:45 -0700 Subject: [PATCH 3/3] feat: add payloadformatversion to httpapi events (#1517) --- samtranslator/model/eventsources/push.py | 5 + samtranslator/open_api/open_api.py | 16 +- tests/openapi/test_openapi.py | 6 +- .../input/http_api_existing_openapi.yaml | 1 + .../http_api_existing_openapi_conditions.yaml | 1 + .../input/http_api_explicit_stage.yaml | 6 + .../api_with_basic_custom_domain_http.json | 4 +- ...h_basic_custom_domain_intrinsics_http.json | 4 +- ..._domain_route53_hosted_zone_name_http.json | 2 +- .../api_with_custom_domain_route53_http.json | 2 +- .../api_with_basic_custom_domain_http.json | 4 +- ...h_basic_custom_domain_intrinsics_http.json | 4 +- ..._domain_route53_hosted_zone_name_http.json | 2 +- .../api_with_custom_domain_route53_http.json | 2 +- .../output/aws-cn/explicit_http_api.json | 4 +- .../aws-cn/explicit_http_api_minimum.json | 2 +- .../aws-cn/http_api_existing_openapi.json | 2 +- .../http_api_existing_openapi_conditions.json | 4 +- .../aws-cn/http_api_explicit_stage.json | 8 +- .../output/aws-cn/http_api_with_cors.json | 4 +- .../output/aws-cn/implicit_http_api.json | 8 +- ...mplicit_http_api_auth_and_simple_case.json | 10 +- ...mplicit_http_api_with_many_conditions.json | 24 +-- .../api_with_basic_custom_domain_http.json | 4 +- ...h_basic_custom_domain_intrinsics_http.json | 4 +- ..._domain_route53_hosted_zone_name_http.json | 2 +- .../api_with_custom_domain_route53_http.json | 2 +- .../output/aws-us-gov/explicit_http_api.json | 4 +- .../aws-us-gov/explicit_http_api_minimum.json | 2 +- .../aws-us-gov/http_api_existing_openapi.json | 2 +- .../http_api_existing_openapi_conditions.json | 4 +- .../aws-us-gov/http_api_explicit_stage.json | 8 +- .../output/aws-us-gov/http_api_with_cors.json | 4 +- .../output/aws-us-gov/implicit_http_api.json | 8 +- ...mplicit_http_api_auth_and_simple_case.json | 10 +- ...mplicit_http_api_with_many_conditions.json | 24 +-- .../translator/output/explicit_http_api.json | 164 +++++++++--------- .../output/explicit_http_api_minimum.json | 2 +- .../output/http_api_existing_openapi.json | 2 +- .../http_api_existing_openapi_conditions.json | 4 +- .../output/http_api_explicit_stage.json | 10 +- .../translator/output/http_api_with_cors.json | 4 +- .../translator/output/implicit_http_api.json | 8 +- ...mplicit_http_api_auth_and_simple_case.json | 10 +- ...mplicit_http_api_with_many_conditions.json | 24 +-- versions/2016-10-31.md | 1 + 46 files changed, 239 insertions(+), 193 deletions(-) diff --git a/samtranslator/model/eventsources/push.py b/samtranslator/model/eventsources/push.py index c293b6ba65..03ec6a8fb6 100644 --- a/samtranslator/model/eventsources/push.py +++ b/samtranslator/model/eventsources/push.py @@ -939,6 +939,7 @@ class HttpApi(PushEventSource): "Auth": PropertyType(False, is_type(dict)), "TimeoutInMillis": PropertyType(False, is_type(int)), "RouteSettings": PropertyType(False, is_type(dict)), + "PayloadFormatVersion": PropertyType(False, is_str()), } def resources_to_link(self, resources): @@ -1076,6 +1077,10 @@ def _add_openapi_integration(self, api, function, manage_swagger=False): api=api, path=self.Path, method_name=self.Method, path_parameters=path_parameters ) + if self.PayloadFormatVersion: + editor.add_payload_format_version_to_method( + api=api, path=self.Path, method_name=self.Method, payload_format_version=self.PayloadFormatVersion + ) api["DefinitionBody"] = editor.openapi def _add_auth_to_openapi_integration(self, api, editor): diff --git a/samtranslator/open_api/open_api.py b/samtranslator/open_api/open_api.py index bcc13fc741..68b652cfb7 100644 --- a/samtranslator/open_api/open_api.py +++ b/samtranslator/open_api/open_api.py @@ -210,7 +210,7 @@ def add_lambda_integration( path_dict[method][self._X_APIGW_INTEGRATION] = { "type": "aws_proxy", "httpMethod": "POST", - "payloadFormatVersion": "1.0", + "payloadFormatVersion": "2.0", "uri": integration_uri, } @@ -289,6 +289,20 @@ def add_path_parameters_to_method(self, api, path, method_name, path_parameters) parameter = {"name": param, "in": "path", "required": True} method_definition.get("parameters").append(parameter) + def add_payload_format_version_to_method(self, api, path, method_name, payload_format_version="2.0"): + """ + Adds a payload format version to this path/method. + + :param dict api: Reference to the related Api's properties as defined in the template. + :param string path: Path name + :param string method_name: Method name + :param string payload_format_version: payload format version sent to the integration + """ + normalized_method_name = self._normalize_method_name(method_name) + for method_definition in self.get_method_contents(self.get_path(path)[normalized_method_name]): + if self.method_definition_has_integration(method_definition): + method_definition[self._X_APIGW_INTEGRATION]["payloadFormatVersion"] = payload_format_version + def add_authorizers_security_definitions(self, authorizers): """ Add Authorizer definitions to the securityDefinitions part of Swagger. diff --git a/tests/openapi/test_openapi.py b/tests/openapi/test_openapi.py index dde6ea061f..a70227e358 100644 --- a/tests/openapi/test_openapi.py +++ b/tests/openapi/test_openapi.py @@ -217,7 +217,7 @@ def test_must_add_new_integration_to_new_path(self): _X_INTEGRATION: { "type": "aws_proxy", "httpMethod": "POST", - "payloadFormatVersion": "1.0", + "payloadFormatVersion": "2.0", "uri": integration_uri, }, } @@ -241,7 +241,7 @@ def test_must_add_new_integration_with_conditions_to_new_path(self): _X_INTEGRATION: { "type": "aws_proxy", "httpMethod": "POST", - "payloadFormatVersion": "1.0", + "payloadFormatVersion": "2.0", "uri": {"Fn::If": ["condition", integration_uri, {"Ref": "AWS::NoValue"}]}, }, }, @@ -268,7 +268,7 @@ def test_must_add_new_integration_to_existing_path(self): _X_INTEGRATION: { "type": "aws_proxy", "httpMethod": "POST", - "payloadFormatVersion": "1.0", + "payloadFormatVersion": "2.0", "uri": integration_uri, }, } diff --git a/tests/translator/input/http_api_existing_openapi.yaml b/tests/translator/input/http_api_existing_openapi.yaml index 75ec016ea3..891d9199e9 100644 --- a/tests/translator/input/http_api_existing_openapi.yaml +++ b/tests/translator/input/http_api_existing_openapi.yaml @@ -35,6 +35,7 @@ Resources: Properties: ApiId: !Ref MyApi TimeoutInMillis: !Ref Timeout + PayloadFormatVersion: '1.0' PathParametersExisting: Type: HttpApi Properties: diff --git a/tests/translator/input/http_api_existing_openapi_conditions.yaml b/tests/translator/input/http_api_existing_openapi_conditions.yaml index 7b0b5fec14..6b9c91c5f2 100644 --- a/tests/translator/input/http_api_existing_openapi_conditions.yaml +++ b/tests/translator/input/http_api_existing_openapi_conditions.yaml @@ -15,6 +15,7 @@ Resources: Basic: # integration exists Type: HttpApi Properties: + PayloadFormatVersion: "2.0" Path: /basic Method: post ApiId: !Ref MyApi diff --git a/tests/translator/input/http_api_explicit_stage.yaml b/tests/translator/input/http_api_explicit_stage.yaml index 90b1b1932a..576ab3a6a7 100644 --- a/tests/translator/input/http_api_explicit_stage.yaml +++ b/tests/translator/input/http_api_explicit_stage.yaml @@ -2,6 +2,10 @@ Parameters: CorsParam: Type: String Default: True + PayloadFormatVersion: + Default: '1.0' + Type: String + Globals: HttpApi: RouteSettings: @@ -24,6 +28,8 @@ Resources: RouteSettings: ThrottlingBurstLimit: 300 LoggingLevel: INFO + PayloadFormatVersion: !Ref PayloadFormatVersion + MyApi: Type: AWS::Serverless::HttpApi Properties: diff --git a/tests/translator/output/api_with_basic_custom_domain_http.json b/tests/translator/output/api_with_basic_custom_domain_http.json index 94d8020a60..f9bb82d27a 100644 --- a/tests/translator/output/api_with_basic_custom_domain_http.json +++ b/tests/translator/output/api_with_basic_custom_domain_http.json @@ -186,7 +186,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} } @@ -199,7 +199,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "responses": {} diff --git a/tests/translator/output/api_with_basic_custom_domain_intrinsics_http.json b/tests/translator/output/api_with_basic_custom_domain_intrinsics_http.json index 4d351c3018..dca8fe2e79 100644 --- a/tests/translator/output/api_with_basic_custom_domain_intrinsics_http.json +++ b/tests/translator/output/api_with_basic_custom_domain_intrinsics_http.json @@ -74,7 +74,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -187,7 +187,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, diff --git a/tests/translator/output/api_with_custom_domain_route53_hosted_zone_name_http.json b/tests/translator/output/api_with_custom_domain_route53_hosted_zone_name_http.json index 29e0c651e2..d9ffc5aac4 100644 --- a/tests/translator/output/api_with_custom_domain_route53_hosted_zone_name_http.json +++ b/tests/translator/output/api_with_custom_domain_route53_hosted_zone_name_http.json @@ -171,7 +171,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} } diff --git a/tests/translator/output/api_with_custom_domain_route53_http.json b/tests/translator/output/api_with_custom_domain_route53_http.json index f2b0547152..54e445611c 100644 --- a/tests/translator/output/api_with_custom_domain_route53_http.json +++ b/tests/translator/output/api_with_custom_domain_route53_http.json @@ -189,7 +189,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} } diff --git a/tests/translator/output/aws-cn/api_with_basic_custom_domain_http.json b/tests/translator/output/aws-cn/api_with_basic_custom_domain_http.json index 6309cf1ef5..08b0bea500 100644 --- a/tests/translator/output/aws-cn/api_with_basic_custom_domain_http.json +++ b/tests/translator/output/aws-cn/api_with_basic_custom_domain_http.json @@ -186,7 +186,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} } @@ -199,7 +199,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "responses": {} diff --git a/tests/translator/output/aws-cn/api_with_basic_custom_domain_intrinsics_http.json b/tests/translator/output/aws-cn/api_with_basic_custom_domain_intrinsics_http.json index e6dbc7df18..02d0cb9760 100644 --- a/tests/translator/output/aws-cn/api_with_basic_custom_domain_intrinsics_http.json +++ b/tests/translator/output/aws-cn/api_with_basic_custom_domain_intrinsics_http.json @@ -88,7 +88,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -271,7 +271,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, diff --git a/tests/translator/output/aws-cn/api_with_custom_domain_route53_hosted_zone_name_http.json b/tests/translator/output/aws-cn/api_with_custom_domain_route53_hosted_zone_name_http.json index 1fb95eaf76..351eeedb83 100644 --- a/tests/translator/output/aws-cn/api_with_custom_domain_route53_hosted_zone_name_http.json +++ b/tests/translator/output/aws-cn/api_with_custom_domain_route53_hosted_zone_name_http.json @@ -171,7 +171,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} } diff --git a/tests/translator/output/aws-cn/api_with_custom_domain_route53_http.json b/tests/translator/output/aws-cn/api_with_custom_domain_route53_http.json index 31c6a71d5a..34e7a8e9df 100644 --- a/tests/translator/output/aws-cn/api_with_custom_domain_route53_http.json +++ b/tests/translator/output/aws-cn/api_with_custom_domain_route53_http.json @@ -189,7 +189,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} } diff --git a/tests/translator/output/aws-cn/explicit_http_api.json b/tests/translator/output/aws-cn/explicit_http_api.json index d363267629..2eebb7bb86 100644 --- a/tests/translator/output/aws-cn/explicit_http_api.json +++ b/tests/translator/output/aws-cn/explicit_http_api.json @@ -104,7 +104,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "security": [ { @@ -213,7 +213,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "security": [ diff --git a/tests/translator/output/aws-cn/explicit_http_api_minimum.json b/tests/translator/output/aws-cn/explicit_http_api_minimum.json index 4a7270a868..09367ab43e 100644 --- a/tests/translator/output/aws-cn/explicit_http_api_minimum.json +++ b/tests/translator/output/aws-cn/explicit_http_api_minimum.json @@ -120,7 +120,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${Function.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "responses": {} diff --git a/tests/translator/output/aws-cn/http_api_existing_openapi.json b/tests/translator/output/aws-cn/http_api_existing_openapi.json index 0d81ea2b98..606deddcb9 100644 --- a/tests/translator/output/aws-cn/http_api_existing_openapi.json +++ b/tests/translator/output/aws-cn/http_api_existing_openapi.json @@ -113,7 +113,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {}, "parameters": [ diff --git a/tests/translator/output/aws-cn/http_api_existing_openapi_conditions.json b/tests/translator/output/aws-cn/http_api_existing_openapi_conditions.json index 1b70975cc7..c674491ca4 100644 --- a/tests/translator/output/aws-cn/http_api_existing_openapi_conditions.json +++ b/tests/translator/output/aws-cn/http_api_existing_openapi_conditions.json @@ -119,7 +119,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${DifferentFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "security": [ { @@ -198,7 +198,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, diff --git a/tests/translator/output/aws-cn/http_api_explicit_stage.json b/tests/translator/output/aws-cn/http_api_explicit_stage.json index e42314c13b..eb33d241d4 100644 --- a/tests/translator/output/aws-cn/http_api_explicit_stage.json +++ b/tests/translator/output/aws-cn/http_api_explicit_stage.json @@ -3,6 +3,10 @@ "CorsParam": { "Default": true, "Type": "String" + }, + "PayloadFormatVersion": { + "Default": "1.0", + "Type": "String" } }, "Resources": { @@ -128,7 +132,9 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": { + "Ref": "PayloadFormatVersion" + } }, "isDefaultRoute": true, "responses": {} diff --git a/tests/translator/output/aws-cn/http_api_with_cors.json b/tests/translator/output/aws-cn/http_api_with_cors.json index 0510e7722d..ccf90e087d 100644 --- a/tests/translator/output/aws-cn/http_api_with_cors.json +++ b/tests/translator/output/aws-cn/http_api_with_cors.json @@ -53,7 +53,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "responses": {} @@ -203,7 +203,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "responses": {} diff --git a/tests/translator/output/aws-cn/implicit_http_api.json b/tests/translator/output/aws-cn/implicit_http_api.json index e0ea540b36..c23badb552 100644 --- a/tests/translator/output/aws-cn/implicit_http_api.json +++ b/tests/translator/output/aws-cn/implicit_http_api.json @@ -161,7 +161,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction2.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} } @@ -174,7 +174,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction2.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {}, "parameters": [ @@ -199,7 +199,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "responses": {} @@ -213,7 +213,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} } diff --git a/tests/translator/output/aws-cn/implicit_http_api_auth_and_simple_case.json b/tests/translator/output/aws-cn/implicit_http_api_auth_and_simple_case.json index 0680233088..b3e0950108 100644 --- a/tests/translator/output/aws-cn/implicit_http_api_auth_and_simple_case.json +++ b/tests/translator/output/aws-cn/implicit_http_api_auth_and_simple_case.json @@ -107,7 +107,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${RestApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "security": [ { @@ -127,7 +127,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${RestApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "security": [ { @@ -147,7 +147,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${RestApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "security": [ @@ -168,7 +168,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${RestApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "security": [ { @@ -186,7 +186,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${RestApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "security": [ { diff --git a/tests/translator/output/aws-cn/implicit_http_api_with_many_conditions.json b/tests/translator/output/aws-cn/implicit_http_api_with_many_conditions.json index 3469cc26fd..90f1f1c0f9 100644 --- a/tests/translator/output/aws-cn/implicit_http_api_with_many_conditions.json +++ b/tests/translator/output/aws-cn/implicit_http_api_with_many_conditions.json @@ -222,7 +222,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -259,7 +259,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -296,7 +296,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -333,7 +333,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -370,7 +370,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "security": [ @@ -415,7 +415,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -452,7 +452,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -489,7 +489,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -526,7 +526,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -563,7 +563,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -600,7 +600,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -637,7 +637,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, diff --git a/tests/translator/output/aws-us-gov/api_with_basic_custom_domain_http.json b/tests/translator/output/aws-us-gov/api_with_basic_custom_domain_http.json index 4712f95fb0..cb2577debd 100644 --- a/tests/translator/output/aws-us-gov/api_with_basic_custom_domain_http.json +++ b/tests/translator/output/aws-us-gov/api_with_basic_custom_domain_http.json @@ -186,7 +186,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} } @@ -199,7 +199,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "responses": {} diff --git a/tests/translator/output/aws-us-gov/api_with_basic_custom_domain_intrinsics_http.json b/tests/translator/output/aws-us-gov/api_with_basic_custom_domain_intrinsics_http.json index 1086f4a048..b3a6b181cf 100644 --- a/tests/translator/output/aws-us-gov/api_with_basic_custom_domain_intrinsics_http.json +++ b/tests/translator/output/aws-us-gov/api_with_basic_custom_domain_intrinsics_http.json @@ -88,7 +88,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -271,7 +271,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, diff --git a/tests/translator/output/aws-us-gov/api_with_custom_domain_route53_hosted_zone_name_http.json b/tests/translator/output/aws-us-gov/api_with_custom_domain_route53_hosted_zone_name_http.json index 8ee48ef334..f952f03ad8 100644 --- a/tests/translator/output/aws-us-gov/api_with_custom_domain_route53_hosted_zone_name_http.json +++ b/tests/translator/output/aws-us-gov/api_with_custom_domain_route53_hosted_zone_name_http.json @@ -171,7 +171,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} } diff --git a/tests/translator/output/aws-us-gov/api_with_custom_domain_route53_http.json b/tests/translator/output/aws-us-gov/api_with_custom_domain_route53_http.json index 9d42f4e5e4..c92bc22424 100644 --- a/tests/translator/output/aws-us-gov/api_with_custom_domain_route53_http.json +++ b/tests/translator/output/aws-us-gov/api_with_custom_domain_route53_http.json @@ -189,7 +189,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${MyFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} } diff --git a/tests/translator/output/aws-us-gov/explicit_http_api.json b/tests/translator/output/aws-us-gov/explicit_http_api.json index 5a6a2d873f..e3ff6cce64 100644 --- a/tests/translator/output/aws-us-gov/explicit_http_api.json +++ b/tests/translator/output/aws-us-gov/explicit_http_api.json @@ -104,7 +104,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "security": [ { @@ -213,7 +213,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "security": [ diff --git a/tests/translator/output/aws-us-gov/explicit_http_api_minimum.json b/tests/translator/output/aws-us-gov/explicit_http_api_minimum.json index 205c7c1555..df8e5fcfb1 100644 --- a/tests/translator/output/aws-us-gov/explicit_http_api_minimum.json +++ b/tests/translator/output/aws-us-gov/explicit_http_api_minimum.json @@ -120,7 +120,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${Function.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "responses": {} diff --git a/tests/translator/output/aws-us-gov/http_api_existing_openapi.json b/tests/translator/output/aws-us-gov/http_api_existing_openapi.json index a00a253b79..5efdccc329 100644 --- a/tests/translator/output/aws-us-gov/http_api_existing_openapi.json +++ b/tests/translator/output/aws-us-gov/http_api_existing_openapi.json @@ -113,7 +113,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {}, "parameters": [ diff --git a/tests/translator/output/aws-us-gov/http_api_existing_openapi_conditions.json b/tests/translator/output/aws-us-gov/http_api_existing_openapi_conditions.json index e5eb69fb2e..22e36ce32e 100644 --- a/tests/translator/output/aws-us-gov/http_api_existing_openapi_conditions.json +++ b/tests/translator/output/aws-us-gov/http_api_existing_openapi_conditions.json @@ -119,7 +119,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${DifferentFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "security": [ { @@ -198,7 +198,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, diff --git a/tests/translator/output/aws-us-gov/http_api_explicit_stage.json b/tests/translator/output/aws-us-gov/http_api_explicit_stage.json index a81cdcc15b..6fbeb6689d 100644 --- a/tests/translator/output/aws-us-gov/http_api_explicit_stage.json +++ b/tests/translator/output/aws-us-gov/http_api_explicit_stage.json @@ -3,6 +3,10 @@ "CorsParam": { "Default": true, "Type": "String" + }, + "PayloadFormatVersion": { + "Default": "1.0", + "Type": "String" } }, "Resources": { @@ -128,7 +132,9 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": { + "Ref": "PayloadFormatVersion" + } }, "isDefaultRoute": true, "responses": {} diff --git a/tests/translator/output/aws-us-gov/http_api_with_cors.json b/tests/translator/output/aws-us-gov/http_api_with_cors.json index fe60926e7b..7b9ed1d105 100644 --- a/tests/translator/output/aws-us-gov/http_api_with_cors.json +++ b/tests/translator/output/aws-us-gov/http_api_with_cors.json @@ -53,7 +53,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "responses": {} @@ -203,7 +203,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "responses": {} diff --git a/tests/translator/output/aws-us-gov/implicit_http_api.json b/tests/translator/output/aws-us-gov/implicit_http_api.json index 9237946d93..713e890c64 100644 --- a/tests/translator/output/aws-us-gov/implicit_http_api.json +++ b/tests/translator/output/aws-us-gov/implicit_http_api.json @@ -161,7 +161,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction2.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} } @@ -174,7 +174,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction2.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {}, "parameters": [ @@ -199,7 +199,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "responses": {} @@ -213,7 +213,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} } diff --git a/tests/translator/output/aws-us-gov/implicit_http_api_auth_and_simple_case.json b/tests/translator/output/aws-us-gov/implicit_http_api_auth_and_simple_case.json index a3bf1e3951..7ace3a5224 100644 --- a/tests/translator/output/aws-us-gov/implicit_http_api_auth_and_simple_case.json +++ b/tests/translator/output/aws-us-gov/implicit_http_api_auth_and_simple_case.json @@ -107,7 +107,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${RestApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "security": [ { @@ -127,7 +127,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${RestApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "security": [ { @@ -147,7 +147,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${RestApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "security": [ @@ -168,7 +168,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${RestApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "security": [ { @@ -186,7 +186,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${RestApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "security": [ { diff --git a/tests/translator/output/aws-us-gov/implicit_http_api_with_many_conditions.json b/tests/translator/output/aws-us-gov/implicit_http_api_with_many_conditions.json index 10fbf280fb..9f11855958 100644 --- a/tests/translator/output/aws-us-gov/implicit_http_api_with_many_conditions.json +++ b/tests/translator/output/aws-us-gov/implicit_http_api_with_many_conditions.json @@ -222,7 +222,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -259,7 +259,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -296,7 +296,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -333,7 +333,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -370,7 +370,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "security": [ @@ -415,7 +415,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -452,7 +452,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -489,7 +489,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -526,7 +526,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -563,7 +563,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -600,7 +600,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -637,7 +637,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, diff --git a/tests/translator/output/explicit_http_api.json b/tests/translator/output/explicit_http_api.json index 274547f317..8a8a6dab6a 100644 --- a/tests/translator/output/explicit_http_api.json +++ b/tests/translator/output/explicit_http_api.json @@ -1,67 +1,67 @@ { "Resources": { "MyApiApiGatewayDefaultStage": { - "Type": "AWS::ApiGatewayV2::Stage", + "Type": "AWS::ApiGatewayV2::Stage", "Properties": { "ApiId": { "Ref": "MyApi" - }, - "AutoDeploy": true, - "StageName": "$default", + }, + "AutoDeploy": true, + "StageName": "$default", "Tags": { "httpapi:createdBy": "SAM" } } - }, + }, "MyApi2ApiGatewayDefaultStage": { - "Type": "AWS::ApiGatewayV2::Stage", + "Type": "AWS::ApiGatewayV2::Stage", "Properties": { "ApiId": { "Ref": "MyApi2" - }, - "AutoDeploy": true, - "StageName": "$default", + }, + "AutoDeploy": true, + "StageName": "$default", "Tags": { "httpapi:createdBy": "SAM" } } - }, + }, "HttpApiFunction": { - "Type": "AWS::Lambda::Function", + "Type": "AWS::Lambda::Function", "Properties": { - "Handler": "index.restapi", + "Handler": "index.restapi", "Code": { - "S3Bucket": "sam-demo-bucket", + "S3Bucket": "sam-demo-bucket", "S3Key": "todo_list.zip" - }, + }, "Role": { "Fn::GetAtt": [ - "HttpApiFunctionRole", + "HttpApiFunctionRole", "Arn" ] - }, - "Runtime": "python3.7", + }, + "Runtime": "python3.7", "Tags": [ { - "Value": "SAM", + "Value": "SAM", "Key": "lambda:createdBy" } ] } - }, + }, "HttpApiFunctionSimpleCasePermission": { - "Type": "AWS::Lambda::Permission", + "Type": "AWS::Lambda::Permission", "Properties": { - "Action": "lambda:InvokeFunction", - "Principal": "apigateway.amazonaws.com", + "Action": "lambda:InvokeFunction", + "Principal": "apigateway.amazonaws.com", "FunctionName": { "Ref": "HttpApiFunction" - }, + }, "SourceArn": { "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/*", + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/*", { - "__Stage__": "*", + "__Stage__": "*", "__ApiId__": { "Ref": "MyApi" } @@ -69,90 +69,90 @@ ] } } - }, + }, "MyApi2": { - "Type": "AWS::ApiGatewayV2::Api", + "Type": "AWS::ApiGatewayV2::Api", "Properties": { "Body": { "info": { "title": { "Fn::Sub": "${AWS::StackName}-Apiv2" } - }, + }, "paths": { "$default": { "x-amazon-apigateway-any-method": { "x-amazon-apigateway-integration": { - "httpMethod": "ANY", - "type": "http_proxy", - "uri": "https://www.alphavantage.co/", + "httpMethod": "ANY", + "type": "http_proxy", + "uri": "https://www.alphavantage.co/", "payloadFormatVersion": "1.0" - }, - "isDefaultRoute": true, + }, + "isDefaultRoute": true, "security": [ { "OAuth2": [] } ] } - }, + }, "/": { "get": { "x-amazon-apigateway-integration": { - "httpMethod": "POST", - "type": "aws_proxy", + "httpMethod": "POST", + "type": "aws_proxy", "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" - }, - "payloadFormatVersion": "1.0" - }, + }, + "payloadFormatVersion": "2.0" + }, "security": [ { "OAuth2": [] } - ], + ], "responses": {} } } - }, - "openapi": "3.0", + }, + "openapi": "3.0", "components": { "securitySchemes": { "OAuth2": { - "type": "oauth2", + "type": "oauth2", "x-amazon-apigateway-authorizer": { - "identitySource": "$request.querystring.param", - "type": "jwt", + "identitySource": "$request.querystring.param", + "type": "jwt", "jwtConfiguration": { "audience": [ "MyApi" - ], + ], "issuer": "https://www.example.com/v1/connect/oidc" } } } } - }, + }, "tags": [ { - "name": "httpapi:createdBy", + "name": "httpapi:createdBy", "x-amazon-apigateway-tag-value": "SAM" } ] } } - }, + }, "HttpApiFunctionRole": { - "Type": "AWS::IAM::Role", + "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { - "Version": "2012-10-17", + "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" - ], - "Effect": "Allow", + ], + "Effect": "Allow", "Principal": { "Service": [ "lambda.amazonaws.com" @@ -160,31 +160,31 @@ } } ] - }, + }, "ManagedPolicyArns": [ "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" - ], + ], "Tags": [ { - "Value": "SAM", + "Value": "SAM", "Key": "lambda:createdBy" } ] } - }, + }, "HttpApiFunctionBasePathPermission": { - "Type": "AWS::Lambda::Permission", + "Type": "AWS::Lambda::Permission", "Properties": { - "Action": "lambda:InvokeFunction", - "Principal": "apigateway.amazonaws.com", + "Action": "lambda:InvokeFunction", + "Principal": "apigateway.amazonaws.com", "FunctionName": { "Ref": "HttpApiFunction" - }, + }, "SourceArn": { "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/", + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/GET/", { - "__Stage__": "*", + "__Stage__": "*", "__ApiId__": { "Ref": "MyApi2" } @@ -192,62 +192,62 @@ ] } } - }, + }, "MyApi": { - "Type": "AWS::ApiGatewayV2::Api", + "Type": "AWS::ApiGatewayV2::Api", "Properties": { "FailOnWarnings": true, "Body": { "info": { - "version": "1.0", + "version": "1.0", "title": { "Ref": "AWS::StackName" } - }, + }, "paths": { "$default": { "x-amazon-apigateway-any-method": { "x-amazon-apigateway-integration": { - "httpMethod": "POST", - "type": "aws_proxy", + "httpMethod": "POST", + "type": "aws_proxy", "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" - }, - "payloadFormatVersion": "1.0" - }, - "isDefaultRoute": true, + }, + "payloadFormatVersion": "2.0" + }, + "isDefaultRoute": true, "security": [ { "OAuth2": [ "scope4" ] } - ], + ], "responses": {} } } - }, - "openapi": "3.0.1", + }, + "openapi": "3.0.1", "components": { "securitySchemes": { "OAuth2": { - "type": "oauth2", + "type": "oauth2", "x-amazon-apigateway-authorizer": { - "identitySource": "$request.querystring.param", - "type": "jwt", + "identitySource": "$request.querystring.param", + "type": "jwt", "jwtConfiguration": { "audience": [ "MyApi" - ], + ], "issuer": "https://www.example.com/v1/connect/oidc" } } } } - }, + }, "tags": [ { - "name": "httpapi:createdBy", + "name": "httpapi:createdBy", "x-amazon-apigateway-tag-value": "SAM" } ] diff --git a/tests/translator/output/explicit_http_api_minimum.json b/tests/translator/output/explicit_http_api_minimum.json index bb8fa7b6f3..37be2617d8 100644 --- a/tests/translator/output/explicit_http_api_minimum.json +++ b/tests/translator/output/explicit_http_api_minimum.json @@ -120,7 +120,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${Function.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "responses": {} diff --git a/tests/translator/output/http_api_existing_openapi.json b/tests/translator/output/http_api_existing_openapi.json index 649327253d..ea696cf89f 100644 --- a/tests/translator/output/http_api_existing_openapi.json +++ b/tests/translator/output/http_api_existing_openapi.json @@ -113,7 +113,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {}, "parameters": [ diff --git a/tests/translator/output/http_api_existing_openapi_conditions.json b/tests/translator/output/http_api_existing_openapi_conditions.json index 5a4df14edf..f1a6d177d5 100644 --- a/tests/translator/output/http_api_existing_openapi_conditions.json +++ b/tests/translator/output/http_api_existing_openapi_conditions.json @@ -119,7 +119,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${DifferentFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "security": [ { @@ -198,7 +198,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, diff --git a/tests/translator/output/http_api_explicit_stage.json b/tests/translator/output/http_api_explicit_stage.json index e98ce978c8..6f827ff3a3 100644 --- a/tests/translator/output/http_api_explicit_stage.json +++ b/tests/translator/output/http_api_explicit_stage.json @@ -3,8 +3,12 @@ "CorsParam": { "Default": true, "Type": "String" + }, + "PayloadFormatVersion": { + "Default": "1.0", + "Type": "String" } - }, + }, "Resources": { "HttpApiFunctionSimpleCasePermission": { "Type": "AWS::Lambda::Permission", @@ -128,7 +132,9 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": { + "Ref": "PayloadFormatVersion" + } }, "isDefaultRoute": true, "responses": {} diff --git a/tests/translator/output/http_api_with_cors.json b/tests/translator/output/http_api_with_cors.json index b9e7aa9c26..a24a91009a 100644 --- a/tests/translator/output/http_api_with_cors.json +++ b/tests/translator/output/http_api_with_cors.json @@ -53,7 +53,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "responses": {} @@ -203,7 +203,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "responses": {} diff --git a/tests/translator/output/implicit_http_api.json b/tests/translator/output/implicit_http_api.json index edd87913ed..146970cf60 100644 --- a/tests/translator/output/implicit_http_api.json +++ b/tests/translator/output/implicit_http_api.json @@ -161,7 +161,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction2.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} } @@ -174,7 +174,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction2.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {}, "parameters": [ @@ -199,7 +199,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "responses": {} @@ -213,7 +213,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${HttpApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} } diff --git a/tests/translator/output/implicit_http_api_auth_and_simple_case.json b/tests/translator/output/implicit_http_api_auth_and_simple_case.json index 1e55d720bc..4f518881f6 100644 --- a/tests/translator/output/implicit_http_api_auth_and_simple_case.json +++ b/tests/translator/output/implicit_http_api_auth_and_simple_case.json @@ -107,7 +107,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${RestApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "security": [ { @@ -127,7 +127,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${RestApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "security": [ { @@ -147,7 +147,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${RestApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "security": [ @@ -168,7 +168,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${RestApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "security": [ { @@ -186,7 +186,7 @@ "uri": { "Fn::Sub": "arn:${AWS::Partition}:apigateway:${AWS::Region}:lambda:path/2015-03-31/functions/${RestApiFunction.Arn}/invocations" }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "security": [ { diff --git a/tests/translator/output/implicit_http_api_with_many_conditions.json b/tests/translator/output/implicit_http_api_with_many_conditions.json index 1d7a3e9c21..c4b9618b8c 100644 --- a/tests/translator/output/implicit_http_api_with_many_conditions.json +++ b/tests/translator/output/implicit_http_api_with_many_conditions.json @@ -222,7 +222,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -259,7 +259,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -296,7 +296,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -333,7 +333,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -370,7 +370,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "isDefaultRoute": true, "security": [ @@ -415,7 +415,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -452,7 +452,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -489,7 +489,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -526,7 +526,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -563,7 +563,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -600,7 +600,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, @@ -637,7 +637,7 @@ } ] }, - "payloadFormatVersion": "1.0" + "payloadFormatVersion": "2.0" }, "responses": {} }, diff --git a/versions/2016-10-31.md b/versions/2016-10-31.md index b6da95222c..241ed54638 100644 --- a/versions/2016-10-31.md +++ b/versions/2016-10-31.md @@ -661,6 +661,7 @@ Method | `string` | HTTP method for which this function is invoked. ApiId | `string` | Identifier of a HttpApi resource which MUST contain an operation with the given path and method. Typically, this is set to [reference](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) an `AWS::Serverless::HttpApi` resource defined in this template. If not defined, a default `AWS::Serverless::HttpApi` resource is created using a generated OpenApi document contains a union of all paths and methods defined by `HttpApi` events defined in this template that do not specify an ApiId. Auth | [Function Auth Object](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-property-function-httpapifunctionauth.html) | Auth configuration for this specific Api+Path+Method. Useful for overriding the API's `DefaultAuthorizer` setting auth config on an individual path when no `DefaultAuthorizer` is specified. TimeoutInMillis | `int` | Custom timeout between 50 and 29,000 milliseconds. The default value is 5,000 milliseconds, or 5 seconds for HTTP APIs. +PayloadFormatVersion | `string` | Specify the format version of the payload sent to the Lambda HTTP API integration. If this field is not given, SAM defaults to "2.0". ##### Example: HttpApi event source object