diff --git a/samtranslator/model/eventsources/push.py b/samtranslator/model/eventsources/push.py index c293b6ba6..03ec6a8fb 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 bcc13fc74..68b652cfb 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 dde6ea061..a70227e35 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 75ec016ea..891d9199e 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 7b0b5fec1..6b9c91c5f 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 90b1b1932..576ab3a6a 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 94d8020a6..f9bb82d27 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 4d351c301..dca8fe2e7 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 29e0c651e..d9ffc5aac 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 f2b054715..54e445611 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 6309cf1ef..08b0bea50 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 e6dbc7df1..02d0cb976 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 1fb95eaf7..351eeedb8 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 31c6a71d5..34e7a8e9d 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 d36326762..2eebb7bb8 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 4a7270a86..09367ab43 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 0d81ea2b9..606deddcb 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 1b70975cc..c674491ca 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 e42314c13..eb33d241d 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 0510e7722..ccf90e087 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 e0ea540b3..c23badb55 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 068023308..b3e095010 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 3469cc26f..90f1f1c0f 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 4712f95fb..cb2577deb 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 1086f4a04..b3a6b181c 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 8ee48ef33..f952f03ad 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 9d42f4e5e..c92bc2242 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 5a6a2d873..e3ff6cce6 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 205c7c155..df8e5fcfb 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 a00a253b7..5efdccc32 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 e5eb69fb2..22e36ce32 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 a81cdcc15..6fbeb6689 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 fe60926e7..7b9ed1d10 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 9237946d9..713e890c6 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 a3bf1e395..7ace3a522 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 10fbf280f..9f1185595 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 274547f31..8a8a6dab6 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 bb8fa7b6f..37be2617d 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 649327253..ea696cf89 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 5a4df14ed..f1a6d177d 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 e98ce978c..6f827ff3a 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 b9e7aa9c2..a24a91009 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 edd87913e..146970cf6 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 1e55d720b..4f518881f 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 1d7a3e9c2..c4b9618b8 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 b6da95222..241ed5463 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