From 6113dd92ff183b7002e37f80c78d87ee7607fb0d Mon Sep 17 00:00:00 2001 From: Chengjun Li Date: Mon, 4 May 2026 15:24:53 -0700 Subject: [PATCH 1/3] fix: handle intrinsic functions in WebSocket API StageName property When StageName is set to an intrinsic function (e.g. !Ref Param), string concatenation in _construct_permission caused TypeError. Fix: use fnSub variable substitution when stage_name is an intrinsic, preserving the original string format for plain string values. Also update property_types to accept one_of(IS_STR, IS_DICT) and update type annotation to Intrinsicable[str] for consistency. --- .../model/api/websocket_api_generator.py | 27 ++++++++++++------- samtranslator/model/sam_resources.py | 4 +-- .../model/api/test_websocket_api_generator.py | 10 +++++++ 3 files changed, 30 insertions(+), 11 deletions(-) diff --git a/samtranslator/model/api/websocket_api_generator.py b/samtranslator/model/api/websocket_api_generator.py index ff3d249c2..f2077d1b9 100644 --- a/samtranslator/model/api/websocket_api_generator.py +++ b/samtranslator/model/api/websocket_api_generator.py @@ -32,7 +32,7 @@ class WebSocketApiGenerator(ApiV2Generator): def __init__( # noqa: PLR0913 self, logical_id: str, - stage_name: str | None, + stage_name: Intrinsicable[str] | None, stage_variables: ( dict[str, Intrinsicable[str]] | None ), # I tried to keep presence of = None consistent with http @@ -295,14 +295,23 @@ def _construct_permission(self, route_key: str, perms_id: str, route_spec: dict[ perms.Action = "lambda:InvokeFunction" perms.FunctionName = route_spec["FunctionArn"] perms.Principal = "apigateway.amazonaws.com" - perms.SourceArn = fnSub( - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${" - + self.logical_id - + ".ApiId}/" - + self.stage_name - + "/" - + route_key - ) + if is_intrinsic(self.stage_name): + perms.SourceArn = fnSub( + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${" + + self.logical_id + + ".ApiId}/${__StageName__}/" + + route_key, + {"__StageName__": self.stage_name}, + ) + else: + perms.SourceArn = fnSub( + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${" + + self.logical_id + + ".ApiId}/" + + self.stage_name + + "/" + + route_key + ) return perms def _construct_route_infr(self, route_key: str, route_spec: dict[str, Any]) -> tuple[ diff --git a/samtranslator/model/sam_resources.py b/samtranslator/model/sam_resources.py index 7fccf78b5..0a3a9ba29 100644 --- a/samtranslator/model/sam_resources.py +++ b/samtranslator/model/sam_resources.py @@ -1910,7 +1910,7 @@ class SamWebSocketApi(SamResourceMacro): "Routes": PropertyType(True, IS_DICT), "RouteSettings": PropertyType(False, IS_DICT), "RouteSelectionExpression": PropertyType(True, IS_STR), - "StageName": PropertyType(False, IS_STR), + "StageName": PropertyType(False, one_of(IS_STR, IS_DICT)), "StageVariables": PropertyType(False, IS_DICT), "Tags": PropertyType(False, IS_DICT), } @@ -1930,7 +1930,7 @@ class SamWebSocketApi(SamResourceMacro): Routes: dict[str, dict[str, Any]] RouteSettings: dict[str, Any] | None RouteSelectionExpression: str - StageName: str | None + StageName: Intrinsicable[str] | None StageVariables: dict[str, Intrinsicable[str]] | None Tags: dict[str, Any] | None diff --git a/tests/model/api/test_websocket_api_generator.py b/tests/model/api/test_websocket_api_generator.py index ec2a5434c..7a37a4786 100644 --- a/tests/model/api/test_websocket_api_generator.py +++ b/tests/model/api/test_websocket_api_generator.py @@ -47,6 +47,16 @@ def test_perms(self): "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${WebSocketApiId.ApiId}/default/$connect", ) + def test_perms_with_intrinsic_stage_name(self): + """Test that _construct_permission handles intrinsic StageName without TypeError.""" + kwargs = self.kwargs.copy() + kwargs["stage_name"] = {"Ref": "StageName"} + _, _, perm, _ = WebSocketApiGenerator(**kwargs)._construct_route_infr("$connect", kwargs["routes"]["$connect"]) + fn_sub = perm.SourceArn["Fn::Sub"] + self.assertIsInstance(fn_sub, list) + self.assertIn("${__StageName__}", fn_sub[0]) + self.assertEqual(fn_sub[1]["__StageName__"], {"Ref": "StageName"}) + def test_none_auth_no_id(self): kwargs = self.kwargs.copy() kwargs["auth_config"] = {"AuthType": "NONE"} From 9f6a684b55cd7aacb18fb31d7ead44518b7859d5 Mon Sep 17 00:00:00 2001 From: Chengjun Li Date: Mon, 4 May 2026 16:03:28 -0700 Subject: [PATCH 2/3] chore: update WebSocket API test expected outputs for fnSub variable format --- .../model/api/websocket_api_generator.py | 24 +++++----------- .../model/api/test_websocket_api_generator.py | 9 +++--- .../aws-cn/websocket_api_api_config.json | 7 ++++- .../aws-cn/websocket_api_api_globals.json | 14 ++++++++-- .../aws-cn/websocket_api_auto_name.json | 7 ++++- ...websocket_api_custom_domains_regional.json | 7 ++++- .../aws-cn/websocket_api_description.json | 7 ++++- .../aws-cn/websocket_api_domain_globals.json | 14 ++++++++-- .../aws-cn/websocket_api_explicit_stage.json | 7 ++++- .../aws-cn/websocket_api_route_config.json | 7 ++++- .../output/aws-cn/websocket_api_simple.json | 7 ++++- .../aws-cn/websocket_api_simple_app.json | 28 ++++++++++++++++--- .../aws-cn/websocket_api_stage_config.json | 7 ++++- .../aws-cn/websocket_api_stage_globals.json | 14 ++++++++-- .../aws-cn/websocket_api_test_non_ref.json | 7 ++++- .../websocket_api_with_auth_config.json | 7 ++++- ...i_with_custom_domain_route53_multiple.json | 21 ++++++++++++-- ...cket_api_with_custom_domains_regional.json | 7 ++++- ...stom_domains_regional_latency_routing.json | 7 ++++- ...domains_regional_latency_routing_ipv6.json | 7 ++++- .../aws-cn/websocket_api_with_iam_auth.json | 7 ++++- .../websocket_api_with_lambda_auth.json | 7 ++++- ...cket_api_with_lambda_auth_invoke_role.json | 7 ++++- .../aws-cn/websocket_api_with_none_auth.json | 7 ++++- .../websocket_api_with_propagate_tags.json | 7 ++++- .../aws-us-gov/websocket_api_api_config.json | 7 ++++- .../aws-us-gov/websocket_api_api_globals.json | 14 ++++++++-- .../aws-us-gov/websocket_api_auto_name.json | 7 ++++- ...websocket_api_custom_domains_regional.json | 7 ++++- .../aws-us-gov/websocket_api_description.json | 7 ++++- .../websocket_api_domain_globals.json | 14 ++++++++-- .../websocket_api_explicit_stage.json | 7 ++++- .../websocket_api_route_config.json | 7 ++++- .../aws-us-gov/websocket_api_simple.json | 7 ++++- .../aws-us-gov/websocket_api_simple_app.json | 28 ++++++++++++++++--- .../websocket_api_stage_config.json | 7 ++++- .../websocket_api_stage_globals.json | 14 ++++++++-- .../websocket_api_test_non_ref.json | 7 ++++- .../websocket_api_with_auth_config.json | 7 ++++- ...i_with_custom_domain_route53_multiple.json | 21 ++++++++++++-- ...cket_api_with_custom_domains_regional.json | 7 ++++- ...stom_domains_regional_latency_routing.json | 7 ++++- ...domains_regional_latency_routing_ipv6.json | 7 ++++- .../websocket_api_with_iam_auth.json | 7 ++++- .../websocket_api_with_lambda_auth.json | 7 ++++- ...cket_api_with_lambda_auth_invoke_role.json | 7 ++++- .../websocket_api_with_none_auth.json | 7 ++++- .../websocket_api_with_propagate_tags.json | 7 ++++- .../output/websocket_api_api_config.json | 7 ++++- .../output/websocket_api_api_globals.json | 14 ++++++++-- .../output/websocket_api_auto_name.json | 7 ++++- ...websocket_api_custom_domains_regional.json | 7 ++++- .../output/websocket_api_description.json | 7 ++++- .../output/websocket_api_domain_globals.json | 14 ++++++++-- .../output/websocket_api_explicit_stage.json | 7 ++++- .../output/websocket_api_route_config.json | 7 ++++- .../output/websocket_api_simple.json | 7 ++++- .../output/websocket_api_simple_app.json | 28 ++++++++++++++++--- .../output/websocket_api_stage_config.json | 7 ++++- .../output/websocket_api_stage_globals.json | 14 ++++++++-- .../output/websocket_api_test_non_ref.json | 7 ++++- .../websocket_api_with_auth_config.json | 7 ++++- ...i_with_custom_domain_route53_multiple.json | 21 ++++++++++++-- ...cket_api_with_custom_domains_regional.json | 7 ++++- ...stom_domains_regional_latency_routing.json | 7 ++++- ...domains_regional_latency_routing_ipv6.json | 7 ++++- .../output/websocket_api_with_iam_auth.json | 7 ++++- .../websocket_api_with_lambda_auth.json | 7 ++++- ...cket_api_with_lambda_auth_invoke_role.json | 7 ++++- .../output/websocket_api_with_none_auth.json | 7 ++++- .../websocket_api_with_propagate_tags.json | 7 ++++- 71 files changed, 570 insertions(+), 114 deletions(-) diff --git a/samtranslator/model/api/websocket_api_generator.py b/samtranslator/model/api/websocket_api_generator.py index f2077d1b9..172a5cb4b 100644 --- a/samtranslator/model/api/websocket_api_generator.py +++ b/samtranslator/model/api/websocket_api_generator.py @@ -295,23 +295,13 @@ def _construct_permission(self, route_key: str, perms_id: str, route_spec: dict[ perms.Action = "lambda:InvokeFunction" perms.FunctionName = route_spec["FunctionArn"] perms.Principal = "apigateway.amazonaws.com" - if is_intrinsic(self.stage_name): - perms.SourceArn = fnSub( - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${" - + self.logical_id - + ".ApiId}/${__StageName__}/" - + route_key, - {"__StageName__": self.stage_name}, - ) - else: - perms.SourceArn = fnSub( - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${" - + self.logical_id - + ".ApiId}/" - + self.stage_name - + "/" - + route_key - ) + perms.SourceArn = fnSub( + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${" + + self.logical_id + + ".ApiId}/${__StageName__}/" + + route_key, + {"__StageName__": self.stage_name}, + ) return perms def _construct_route_infr(self, route_key: str, route_spec: dict[str, Any]) -> tuple[ diff --git a/tests/model/api/test_websocket_api_generator.py b/tests/model/api/test_websocket_api_generator.py index 7a37a4786..b8d00940e 100644 --- a/tests/model/api/test_websocket_api_generator.py +++ b/tests/model/api/test_websocket_api_generator.py @@ -42,10 +42,11 @@ def test_perms(self): kwargs = self.kwargs.copy() WebSocketApiGenerator(**kwargs)._construct_websocket_api() _, _, perm, _ = WebSocketApiGenerator(**kwargs)._construct_route_infr("$connect", kwargs["routes"]["$connect"]) - self.assertEqual( - perm.SourceArn["Fn::Sub"], - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${WebSocketApiId.ApiId}/default/$connect", - ) + fn_sub = perm.SourceArn["Fn::Sub"] + self.assertIsInstance(fn_sub, list) + self.assertIn("${__StageName__}", fn_sub[0]) + self.assertIn("$connect", fn_sub[0]) + self.assertEqual(fn_sub[1]["__StageName__"], "default") def test_perms_with_intrinsic_stage_name(self): """Test that _construct_permission handles intrinsic StageName without TypeError.""" diff --git a/tests/translator/output/aws-cn/websocket_api_api_config.json b/tests/translator/output/aws-cn/websocket_api_api_config.json index ca4069359..eb6d818b0 100644 --- a/tests/translator/output/aws-cn/websocket_api_api_config.json +++ b/tests/translator/output/aws-cn/websocket_api_api_config.json @@ -100,7 +100,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_api_globals.json b/tests/translator/output/aws-cn/websocket_api_api_globals.json index 17e17397b..f656e31ff 100644 --- a/tests/translator/output/aws-cn/websocket_api_api_globals.json +++ b/tests/translator/output/aws-cn/websocket_api_api_globals.json @@ -49,7 +49,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -139,7 +144,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_auto_name.json b/tests/translator/output/aws-cn/websocket_api_auto_name.json index 10704dab5..b577a4bab 100644 --- a/tests/translator/output/aws-cn/websocket_api_auto_name.json +++ b/tests/translator/output/aws-cn/websocket_api_auto_name.json @@ -96,7 +96,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_custom_domains_regional.json b/tests/translator/output/aws-cn/websocket_api_custom_domains_regional.json index 500244f16..26c1cb108 100644 --- a/tests/translator/output/aws-cn/websocket_api_custom_domains_regional.json +++ b/tests/translator/output/aws-cn/websocket_api_custom_domains_regional.json @@ -78,7 +78,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$default" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$default", + { + "__StageName__": "Prod" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_description.json b/tests/translator/output/aws-cn/websocket_api_description.json index cb3a35cf5..db9769a4f 100644 --- a/tests/translator/output/aws-cn/websocket_api_description.json +++ b/tests/translator/output/aws-cn/websocket_api_description.json @@ -98,7 +98,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${WebSocketApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${WebSocketApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_domain_globals.json b/tests/translator/output/aws-cn/websocket_api_domain_globals.json index f59a3a789..7d4b02e7c 100644 --- a/tests/translator/output/aws-cn/websocket_api_domain_globals.json +++ b/tests/translator/output/aws-cn/websocket_api_domain_globals.json @@ -58,7 +58,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -154,7 +159,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_explicit_stage.json b/tests/translator/output/aws-cn/websocket_api_explicit_stage.json index 0c13194a5..704737fce 100644 --- a/tests/translator/output/aws-cn/websocket_api_explicit_stage.json +++ b/tests/translator/output/aws-cn/websocket_api_explicit_stage.json @@ -103,7 +103,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "Prod" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_route_config.json b/tests/translator/output/aws-cn/websocket_api_route_config.json index bed2bd5e4..4bb1f1768 100644 --- a/tests/translator/output/aws-cn/websocket_api_route_config.json +++ b/tests/translator/output/aws-cn/websocket_api_route_config.json @@ -97,7 +97,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_simple.json b/tests/translator/output/aws-cn/websocket_api_simple.json index 10704dab5..b577a4bab 100644 --- a/tests/translator/output/aws-cn/websocket_api_simple.json +++ b/tests/translator/output/aws-cn/websocket_api_simple.json @@ -96,7 +96,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_simple_app.json b/tests/translator/output/aws-cn/websocket_api_simple_app.json index 17feaad4f..fd8078169 100644 --- a/tests/translator/output/aws-cn/websocket_api_simple_app.json +++ b/tests/translator/output/aws-cn/websocket_api_simple_app.json @@ -300,7 +300,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -358,7 +363,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$default" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$default", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -429,7 +439,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$disconnect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$disconnect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -487,7 +502,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/send" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/send", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_stage_config.json b/tests/translator/output/aws-cn/websocket_api_stage_config.json index 214f659ae..91706e6ca 100644 --- a/tests/translator/output/aws-cn/websocket_api_stage_config.json +++ b/tests/translator/output/aws-cn/websocket_api_stage_config.json @@ -96,7 +96,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "Prod" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_stage_globals.json b/tests/translator/output/aws-cn/websocket_api_stage_globals.json index a7ca91a78..4059eaa89 100644 --- a/tests/translator/output/aws-cn/websocket_api_stage_globals.json +++ b/tests/translator/output/aws-cn/websocket_api_stage_globals.json @@ -44,7 +44,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -134,7 +139,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_test_non_ref.json b/tests/translator/output/aws-cn/websocket_api_test_non_ref.json index 596c04e30..59a4fd24e 100644 --- a/tests/translator/output/aws-cn/websocket_api_test_non_ref.json +++ b/tests/translator/output/aws-cn/websocket_api_test_non_ref.json @@ -105,7 +105,12 @@ "FunctionName": "connectphysid", "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_auth_config.json b/tests/translator/output/aws-cn/websocket_api_with_auth_config.json index f463e866a..c4275e4bd 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_auth_config.json +++ b/tests/translator/output/aws-cn/websocket_api_with_auth_config.json @@ -146,7 +146,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_custom_domain_route53_multiple.json b/tests/translator/output/aws-cn/websocket_api_with_custom_domain_route53_multiple.json index 9c99358a2..964829336 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_custom_domain_route53_multiple.json +++ b/tests/translator/output/aws-cn/websocket_api_with_custom_domain_route53_multiple.json @@ -58,7 +58,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -154,7 +159,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -250,7 +260,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api3.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api3.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional.json b/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional.json index bb32b7579..379802710 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional.json +++ b/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional.json @@ -78,7 +78,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "Prod" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional_latency_routing.json b/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional_latency_routing.json index 2f038207b..34b3624a4 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional_latency_routing.json +++ b/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional_latency_routing.json @@ -130,7 +130,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json b/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json index 7810831ea..80717fdaf 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json +++ b/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json @@ -130,7 +130,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_iam_auth.json b/tests/translator/output/aws-cn/websocket_api_with_iam_auth.json index 6a28fcd72..3fa74af67 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_iam_auth.json +++ b/tests/translator/output/aws-cn/websocket_api_with_iam_auth.json @@ -96,7 +96,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_lambda_auth.json b/tests/translator/output/aws-cn/websocket_api_with_lambda_auth.json index 9cd1d0d51..61d250482 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_lambda_auth.json +++ b/tests/translator/output/aws-cn/websocket_api_with_lambda_auth.json @@ -142,7 +142,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_lambda_auth_invoke_role.json b/tests/translator/output/aws-cn/websocket_api_with_lambda_auth_invoke_role.json index 459d8848a..e85eb63ea 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_lambda_auth_invoke_role.json +++ b/tests/translator/output/aws-cn/websocket_api_with_lambda_auth_invoke_role.json @@ -125,7 +125,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_none_auth.json b/tests/translator/output/aws-cn/websocket_api_with_none_auth.json index cb7b83043..25f47ce2a 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_none_auth.json +++ b/tests/translator/output/aws-cn/websocket_api_with_none_auth.json @@ -96,7 +96,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_propagate_tags.json b/tests/translator/output/aws-cn/websocket_api_with_propagate_tags.json index 3bef354bb..799d1c9ff 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_propagate_tags.json +++ b/tests/translator/output/aws-cn/websocket_api_with_propagate_tags.json @@ -129,7 +129,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$default" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$default", + { + "__StageName__": "Prod" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_api_config.json b/tests/translator/output/aws-us-gov/websocket_api_api_config.json index 3fc70050f..2d13b3970 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_api_config.json +++ b/tests/translator/output/aws-us-gov/websocket_api_api_config.json @@ -100,7 +100,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_api_globals.json b/tests/translator/output/aws-us-gov/websocket_api_api_globals.json index 9918b6b84..e03d85ed8 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_api_globals.json +++ b/tests/translator/output/aws-us-gov/websocket_api_api_globals.json @@ -49,7 +49,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -139,7 +144,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_auto_name.json b/tests/translator/output/aws-us-gov/websocket_api_auto_name.json index f122b066b..08dc66ad5 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_auto_name.json +++ b/tests/translator/output/aws-us-gov/websocket_api_auto_name.json @@ -96,7 +96,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_custom_domains_regional.json b/tests/translator/output/aws-us-gov/websocket_api_custom_domains_regional.json index 6fddbad02..d3954de31 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_custom_domains_regional.json +++ b/tests/translator/output/aws-us-gov/websocket_api_custom_domains_regional.json @@ -78,7 +78,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$default" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$default", + { + "__StageName__": "Prod" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_description.json b/tests/translator/output/aws-us-gov/websocket_api_description.json index 81231327d..686dd8ff0 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_description.json +++ b/tests/translator/output/aws-us-gov/websocket_api_description.json @@ -98,7 +98,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${WebSocketApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${WebSocketApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_domain_globals.json b/tests/translator/output/aws-us-gov/websocket_api_domain_globals.json index 383f945cf..98694c35f 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_domain_globals.json +++ b/tests/translator/output/aws-us-gov/websocket_api_domain_globals.json @@ -58,7 +58,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -154,7 +159,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_explicit_stage.json b/tests/translator/output/aws-us-gov/websocket_api_explicit_stage.json index 30edb15b9..7f74ebd69 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_explicit_stage.json +++ b/tests/translator/output/aws-us-gov/websocket_api_explicit_stage.json @@ -103,7 +103,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "Prod" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_route_config.json b/tests/translator/output/aws-us-gov/websocket_api_route_config.json index 500703fc5..43be92af2 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_route_config.json +++ b/tests/translator/output/aws-us-gov/websocket_api_route_config.json @@ -97,7 +97,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_simple.json b/tests/translator/output/aws-us-gov/websocket_api_simple.json index f122b066b..08dc66ad5 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_simple.json +++ b/tests/translator/output/aws-us-gov/websocket_api_simple.json @@ -96,7 +96,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_simple_app.json b/tests/translator/output/aws-us-gov/websocket_api_simple_app.json index 79a3c7b5b..30eefed17 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_simple_app.json +++ b/tests/translator/output/aws-us-gov/websocket_api_simple_app.json @@ -300,7 +300,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -358,7 +363,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$default" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$default", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -429,7 +439,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$disconnect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$disconnect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -487,7 +502,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/send" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/send", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_stage_config.json b/tests/translator/output/aws-us-gov/websocket_api_stage_config.json index acf233a15..5f402a2f4 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_stage_config.json +++ b/tests/translator/output/aws-us-gov/websocket_api_stage_config.json @@ -96,7 +96,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "Prod" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_stage_globals.json b/tests/translator/output/aws-us-gov/websocket_api_stage_globals.json index 7f4e6bd0c..826563357 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_stage_globals.json +++ b/tests/translator/output/aws-us-gov/websocket_api_stage_globals.json @@ -44,7 +44,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -134,7 +139,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_test_non_ref.json b/tests/translator/output/aws-us-gov/websocket_api_test_non_ref.json index eac829bcc..85dbbefae 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_test_non_ref.json +++ b/tests/translator/output/aws-us-gov/websocket_api_test_non_ref.json @@ -105,7 +105,12 @@ "FunctionName": "connectphysid", "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_auth_config.json b/tests/translator/output/aws-us-gov/websocket_api_with_auth_config.json index f96abcc56..a8bc705eb 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_auth_config.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_auth_config.json @@ -146,7 +146,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_custom_domain_route53_multiple.json b/tests/translator/output/aws-us-gov/websocket_api_with_custom_domain_route53_multiple.json index 6117c8e3c..665532e7b 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_custom_domain_route53_multiple.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_custom_domain_route53_multiple.json @@ -58,7 +58,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -154,7 +159,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -250,7 +260,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api3.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api3.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional.json b/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional.json index 4a073c7ac..f3a279c2a 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional.json @@ -78,7 +78,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "Prod" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional_latency_routing.json b/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional_latency_routing.json index a64526974..38e3a9858 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional_latency_routing.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional_latency_routing.json @@ -130,7 +130,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json b/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json index e65904b10..526dca7b0 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json @@ -130,7 +130,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_iam_auth.json b/tests/translator/output/aws-us-gov/websocket_api_with_iam_auth.json index ac714889a..9e4a39ead 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_iam_auth.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_iam_auth.json @@ -96,7 +96,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_lambda_auth.json b/tests/translator/output/aws-us-gov/websocket_api_with_lambda_auth.json index b08c9ad05..7b3ea0fea 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_lambda_auth.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_lambda_auth.json @@ -142,7 +142,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_lambda_auth_invoke_role.json b/tests/translator/output/aws-us-gov/websocket_api_with_lambda_auth_invoke_role.json index 0f10ecc3f..474659ed2 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_lambda_auth_invoke_role.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_lambda_auth_invoke_role.json @@ -125,7 +125,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_none_auth.json b/tests/translator/output/aws-us-gov/websocket_api_with_none_auth.json index b183b79d2..346b6b194 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_none_auth.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_none_auth.json @@ -96,7 +96,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_propagate_tags.json b/tests/translator/output/aws-us-gov/websocket_api_with_propagate_tags.json index 5c67ed5cc..0ade83cfc 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_propagate_tags.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_propagate_tags.json @@ -129,7 +129,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$default" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$default", + { + "__StageName__": "Prod" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_api_config.json b/tests/translator/output/websocket_api_api_config.json index a1305ee4b..4f092b07d 100644 --- a/tests/translator/output/websocket_api_api_config.json +++ b/tests/translator/output/websocket_api_api_config.json @@ -100,7 +100,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_api_globals.json b/tests/translator/output/websocket_api_api_globals.json index 0845e692d..dfe2efb79 100644 --- a/tests/translator/output/websocket_api_api_globals.json +++ b/tests/translator/output/websocket_api_api_globals.json @@ -49,7 +49,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -139,7 +144,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_auto_name.json b/tests/translator/output/websocket_api_auto_name.json index 64300b089..6ea6997b6 100644 --- a/tests/translator/output/websocket_api_auto_name.json +++ b/tests/translator/output/websocket_api_auto_name.json @@ -96,7 +96,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_custom_domains_regional.json b/tests/translator/output/websocket_api_custom_domains_regional.json index 2714a58d0..8c4ffbc7e 100644 --- a/tests/translator/output/websocket_api_custom_domains_regional.json +++ b/tests/translator/output/websocket_api_custom_domains_regional.json @@ -78,7 +78,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$default" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$default", + { + "__StageName__": "Prod" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_description.json b/tests/translator/output/websocket_api_description.json index fe0c1f15e..61aca5dc8 100644 --- a/tests/translator/output/websocket_api_description.json +++ b/tests/translator/output/websocket_api_description.json @@ -98,7 +98,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${WebSocketApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${WebSocketApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_domain_globals.json b/tests/translator/output/websocket_api_domain_globals.json index 1cf431fc2..8134033ed 100644 --- a/tests/translator/output/websocket_api_domain_globals.json +++ b/tests/translator/output/websocket_api_domain_globals.json @@ -58,7 +58,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -154,7 +159,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_explicit_stage.json b/tests/translator/output/websocket_api_explicit_stage.json index 4df5e3da1..ed6dbeb3f 100644 --- a/tests/translator/output/websocket_api_explicit_stage.json +++ b/tests/translator/output/websocket_api_explicit_stage.json @@ -103,7 +103,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "Prod" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_route_config.json b/tests/translator/output/websocket_api_route_config.json index efd1b6d29..bdd844d15 100644 --- a/tests/translator/output/websocket_api_route_config.json +++ b/tests/translator/output/websocket_api_route_config.json @@ -97,7 +97,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_simple.json b/tests/translator/output/websocket_api_simple.json index 64300b089..6ea6997b6 100644 --- a/tests/translator/output/websocket_api_simple.json +++ b/tests/translator/output/websocket_api_simple.json @@ -96,7 +96,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_simple_app.json b/tests/translator/output/websocket_api_simple_app.json index ed395e24a..3b6d10218 100644 --- a/tests/translator/output/websocket_api_simple_app.json +++ b/tests/translator/output/websocket_api_simple_app.json @@ -300,7 +300,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -358,7 +363,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$default" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$default", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -429,7 +439,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$disconnect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$disconnect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -487,7 +502,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/send" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/send", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_stage_config.json b/tests/translator/output/websocket_api_stage_config.json index 9f685005f..174401fb9 100644 --- a/tests/translator/output/websocket_api_stage_config.json +++ b/tests/translator/output/websocket_api_stage_config.json @@ -96,7 +96,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "Prod" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_stage_globals.json b/tests/translator/output/websocket_api_stage_globals.json index ed7b1db4d..aaa6e28b8 100644 --- a/tests/translator/output/websocket_api_stage_globals.json +++ b/tests/translator/output/websocket_api_stage_globals.json @@ -44,7 +44,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -134,7 +139,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_test_non_ref.json b/tests/translator/output/websocket_api_test_non_ref.json index cecb06128..62f449f29 100644 --- a/tests/translator/output/websocket_api_test_non_ref.json +++ b/tests/translator/output/websocket_api_test_non_ref.json @@ -105,7 +105,12 @@ "FunctionName": "connectphysid", "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_auth_config.json b/tests/translator/output/websocket_api_with_auth_config.json index aa57ab5b9..f938f881b 100644 --- a/tests/translator/output/websocket_api_with_auth_config.json +++ b/tests/translator/output/websocket_api_with_auth_config.json @@ -146,7 +146,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_custom_domain_route53_multiple.json b/tests/translator/output/websocket_api_with_custom_domain_route53_multiple.json index d2cd71460..63d348d50 100644 --- a/tests/translator/output/websocket_api_with_custom_domain_route53_multiple.json +++ b/tests/translator/output/websocket_api_with_custom_domain_route53_multiple.json @@ -58,7 +58,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -154,7 +159,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" @@ -250,7 +260,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api3.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api3.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_custom_domains_regional.json b/tests/translator/output/websocket_api_with_custom_domains_regional.json index 4540f278e..c7c6076c6 100644 --- a/tests/translator/output/websocket_api_with_custom_domains_regional.json +++ b/tests/translator/output/websocket_api_with_custom_domains_regional.json @@ -78,7 +78,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "Prod" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_custom_domains_regional_latency_routing.json b/tests/translator/output/websocket_api_with_custom_domains_regional_latency_routing.json index 2c6ae7e25..b6ec07c76 100644 --- a/tests/translator/output/websocket_api_with_custom_domains_regional_latency_routing.json +++ b/tests/translator/output/websocket_api_with_custom_domains_regional_latency_routing.json @@ -130,7 +130,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json b/tests/translator/output/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json index edde463ac..5ba893cac 100644 --- a/tests/translator/output/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json +++ b/tests/translator/output/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json @@ -130,7 +130,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_iam_auth.json b/tests/translator/output/websocket_api_with_iam_auth.json index 3c98fff14..774eea12e 100644 --- a/tests/translator/output/websocket_api_with_iam_auth.json +++ b/tests/translator/output/websocket_api_with_iam_auth.json @@ -96,7 +96,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_lambda_auth.json b/tests/translator/output/websocket_api_with_lambda_auth.json index 094970075..4c8c90a4d 100644 --- a/tests/translator/output/websocket_api_with_lambda_auth.json +++ b/tests/translator/output/websocket_api_with_lambda_auth.json @@ -142,7 +142,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_lambda_auth_invoke_role.json b/tests/translator/output/websocket_api_with_lambda_auth_invoke_role.json index b954b2b3a..d6a3d5ba1 100644 --- a/tests/translator/output/websocket_api_with_lambda_auth_invoke_role.json +++ b/tests/translator/output/websocket_api_with_lambda_auth_invoke_role.json @@ -125,7 +125,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_none_auth.json b/tests/translator/output/websocket_api_with_none_auth.json index bae37df69..418821e1d 100644 --- a/tests/translator/output/websocket_api_with_none_auth.json +++ b/tests/translator/output/websocket_api_with_none_auth.json @@ -96,7 +96,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", + { + "__StageName__": "default" + } + ] } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_propagate_tags.json b/tests/translator/output/websocket_api_with_propagate_tags.json index 3ab837c2b..343eebbcb 100644 --- a/tests/translator/output/websocket_api_with_propagate_tags.json +++ b/tests/translator/output/websocket_api_with_propagate_tags.json @@ -129,7 +129,12 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$default" + "Fn::Sub": [ + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$default", + { + "__StageName__": "Prod" + } + ] } }, "Type": "AWS::Lambda::Permission" From e4c3746e327dbed66d28d2a252fd4fc41d987bde Mon Sep 17 00:00:00 2001 From: Chengjun Li Date: Mon, 4 May 2026 17:10:16 -0700 Subject: [PATCH 3/3] refactor: use isinstance check instead of cast for StageName intrinsic handling --- .../model/api/websocket_api_generator.py | 24 +++++++++++----- .../model/api/test_websocket_api_generator.py | 9 +++--- .../aws-cn/websocket_api_api_config.json | 7 +---- .../aws-cn/websocket_api_api_globals.json | 14 ++-------- .../aws-cn/websocket_api_auto_name.json | 7 +---- ...websocket_api_custom_domains_regional.json | 7 +---- .../aws-cn/websocket_api_description.json | 7 +---- .../aws-cn/websocket_api_domain_globals.json | 14 ++-------- .../aws-cn/websocket_api_explicit_stage.json | 7 +---- .../aws-cn/websocket_api_route_config.json | 7 +---- .../output/aws-cn/websocket_api_simple.json | 7 +---- .../aws-cn/websocket_api_simple_app.json | 28 +++---------------- .../aws-cn/websocket_api_stage_config.json | 7 +---- .../aws-cn/websocket_api_stage_globals.json | 14 ++-------- .../aws-cn/websocket_api_test_non_ref.json | 7 +---- .../websocket_api_with_auth_config.json | 7 +---- ...i_with_custom_domain_route53_multiple.json | 21 ++------------ ...cket_api_with_custom_domains_regional.json | 7 +---- ...stom_domains_regional_latency_routing.json | 7 +---- ...domains_regional_latency_routing_ipv6.json | 7 +---- .../aws-cn/websocket_api_with_iam_auth.json | 7 +---- .../websocket_api_with_lambda_auth.json | 7 +---- ...cket_api_with_lambda_auth_invoke_role.json | 7 +---- .../aws-cn/websocket_api_with_none_auth.json | 7 +---- .../websocket_api_with_propagate_tags.json | 7 +---- .../aws-us-gov/websocket_api_api_config.json | 7 +---- .../aws-us-gov/websocket_api_api_globals.json | 14 ++-------- .../aws-us-gov/websocket_api_auto_name.json | 7 +---- ...websocket_api_custom_domains_regional.json | 7 +---- .../aws-us-gov/websocket_api_description.json | 7 +---- .../websocket_api_domain_globals.json | 14 ++-------- .../websocket_api_explicit_stage.json | 7 +---- .../websocket_api_route_config.json | 7 +---- .../aws-us-gov/websocket_api_simple.json | 7 +---- .../aws-us-gov/websocket_api_simple_app.json | 28 +++---------------- .../websocket_api_stage_config.json | 7 +---- .../websocket_api_stage_globals.json | 14 ++-------- .../websocket_api_test_non_ref.json | 7 +---- .../websocket_api_with_auth_config.json | 7 +---- ...i_with_custom_domain_route53_multiple.json | 21 ++------------ ...cket_api_with_custom_domains_regional.json | 7 +---- ...stom_domains_regional_latency_routing.json | 7 +---- ...domains_regional_latency_routing_ipv6.json | 7 +---- .../websocket_api_with_iam_auth.json | 7 +---- .../websocket_api_with_lambda_auth.json | 7 +---- ...cket_api_with_lambda_auth_invoke_role.json | 7 +---- .../websocket_api_with_none_auth.json | 7 +---- .../websocket_api_with_propagate_tags.json | 7 +---- .../output/websocket_api_api_config.json | 7 +---- .../output/websocket_api_api_globals.json | 14 ++-------- .../output/websocket_api_auto_name.json | 7 +---- ...websocket_api_custom_domains_regional.json | 7 +---- .../output/websocket_api_description.json | 7 +---- .../output/websocket_api_domain_globals.json | 14 ++-------- .../output/websocket_api_explicit_stage.json | 7 +---- .../output/websocket_api_route_config.json | 7 +---- .../output/websocket_api_simple.json | 7 +---- .../output/websocket_api_simple_app.json | 28 +++---------------- .../output/websocket_api_stage_config.json | 7 +---- .../output/websocket_api_stage_globals.json | 14 ++-------- .../output/websocket_api_test_non_ref.json | 7 +---- .../websocket_api_with_auth_config.json | 7 +---- ...i_with_custom_domain_route53_multiple.json | 21 ++------------ ...cket_api_with_custom_domains_regional.json | 7 +---- ...stom_domains_regional_latency_routing.json | 7 +---- ...domains_regional_latency_routing_ipv6.json | 7 +---- .../output/websocket_api_with_iam_auth.json | 7 +---- .../websocket_api_with_lambda_auth.json | 7 +---- ...cket_api_with_lambda_auth_invoke_role.json | 7 +---- .../output/websocket_api_with_none_auth.json | 7 +---- .../websocket_api_with_propagate_tags.json | 7 +---- 71 files changed, 114 insertions(+), 570 deletions(-) diff --git a/samtranslator/model/api/websocket_api_generator.py b/samtranslator/model/api/websocket_api_generator.py index 172a5cb4b..9fe71e0fd 100644 --- a/samtranslator/model/api/websocket_api_generator.py +++ b/samtranslator/model/api/websocket_api_generator.py @@ -295,13 +295,23 @@ def _construct_permission(self, route_key: str, perms_id: str, route_spec: dict[ perms.Action = "lambda:InvokeFunction" perms.FunctionName = route_spec["FunctionArn"] perms.Principal = "apigateway.amazonaws.com" - perms.SourceArn = fnSub( - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${" - + self.logical_id - + ".ApiId}/${__StageName__}/" - + route_key, - {"__StageName__": self.stage_name}, - ) + if isinstance(self.stage_name, str): + perms.SourceArn = fnSub( + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${" + + self.logical_id + + ".ApiId}/" + + self.stage_name + + "/" + + route_key + ) + else: + perms.SourceArn = fnSub( + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${" + + self.logical_id + + ".ApiId}/${__StageName__}/" + + route_key, + {"__StageName__": self.stage_name}, + ) return perms def _construct_route_infr(self, route_key: str, route_spec: dict[str, Any]) -> tuple[ diff --git a/tests/model/api/test_websocket_api_generator.py b/tests/model/api/test_websocket_api_generator.py index b8d00940e..7a37a4786 100644 --- a/tests/model/api/test_websocket_api_generator.py +++ b/tests/model/api/test_websocket_api_generator.py @@ -42,11 +42,10 @@ def test_perms(self): kwargs = self.kwargs.copy() WebSocketApiGenerator(**kwargs)._construct_websocket_api() _, _, perm, _ = WebSocketApiGenerator(**kwargs)._construct_route_infr("$connect", kwargs["routes"]["$connect"]) - fn_sub = perm.SourceArn["Fn::Sub"] - self.assertIsInstance(fn_sub, list) - self.assertIn("${__StageName__}", fn_sub[0]) - self.assertIn("$connect", fn_sub[0]) - self.assertEqual(fn_sub[1]["__StageName__"], "default") + self.assertEqual( + perm.SourceArn["Fn::Sub"], + "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${WebSocketApiId.ApiId}/default/$connect", + ) def test_perms_with_intrinsic_stage_name(self): """Test that _construct_permission handles intrinsic StageName without TypeError.""" diff --git a/tests/translator/output/aws-cn/websocket_api_api_config.json b/tests/translator/output/aws-cn/websocket_api_api_config.json index eb6d818b0..ca4069359 100644 --- a/tests/translator/output/aws-cn/websocket_api_api_config.json +++ b/tests/translator/output/aws-cn/websocket_api_api_config.json @@ -100,12 +100,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_api_globals.json b/tests/translator/output/aws-cn/websocket_api_api_globals.json index f656e31ff..17e17397b 100644 --- a/tests/translator/output/aws-cn/websocket_api_api_globals.json +++ b/tests/translator/output/aws-cn/websocket_api_api_globals.json @@ -49,12 +49,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -144,12 +139,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_auto_name.json b/tests/translator/output/aws-cn/websocket_api_auto_name.json index b577a4bab..10704dab5 100644 --- a/tests/translator/output/aws-cn/websocket_api_auto_name.json +++ b/tests/translator/output/aws-cn/websocket_api_auto_name.json @@ -96,12 +96,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_custom_domains_regional.json b/tests/translator/output/aws-cn/websocket_api_custom_domains_regional.json index 26c1cb108..500244f16 100644 --- a/tests/translator/output/aws-cn/websocket_api_custom_domains_regional.json +++ b/tests/translator/output/aws-cn/websocket_api_custom_domains_regional.json @@ -78,12 +78,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$default", - { - "__StageName__": "Prod" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$default" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_description.json b/tests/translator/output/aws-cn/websocket_api_description.json index db9769a4f..cb3a35cf5 100644 --- a/tests/translator/output/aws-cn/websocket_api_description.json +++ b/tests/translator/output/aws-cn/websocket_api_description.json @@ -98,12 +98,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${WebSocketApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${WebSocketApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_domain_globals.json b/tests/translator/output/aws-cn/websocket_api_domain_globals.json index 7d4b02e7c..f59a3a789 100644 --- a/tests/translator/output/aws-cn/websocket_api_domain_globals.json +++ b/tests/translator/output/aws-cn/websocket_api_domain_globals.json @@ -58,12 +58,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -159,12 +154,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_explicit_stage.json b/tests/translator/output/aws-cn/websocket_api_explicit_stage.json index 704737fce..0c13194a5 100644 --- a/tests/translator/output/aws-cn/websocket_api_explicit_stage.json +++ b/tests/translator/output/aws-cn/websocket_api_explicit_stage.json @@ -103,12 +103,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "Prod" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_route_config.json b/tests/translator/output/aws-cn/websocket_api_route_config.json index 4bb1f1768..bed2bd5e4 100644 --- a/tests/translator/output/aws-cn/websocket_api_route_config.json +++ b/tests/translator/output/aws-cn/websocket_api_route_config.json @@ -97,12 +97,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_simple.json b/tests/translator/output/aws-cn/websocket_api_simple.json index b577a4bab..10704dab5 100644 --- a/tests/translator/output/aws-cn/websocket_api_simple.json +++ b/tests/translator/output/aws-cn/websocket_api_simple.json @@ -96,12 +96,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_simple_app.json b/tests/translator/output/aws-cn/websocket_api_simple_app.json index fd8078169..17feaad4f 100644 --- a/tests/translator/output/aws-cn/websocket_api_simple_app.json +++ b/tests/translator/output/aws-cn/websocket_api_simple_app.json @@ -300,12 +300,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -363,12 +358,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$default", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$default" } }, "Type": "AWS::Lambda::Permission" @@ -439,12 +429,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$disconnect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$disconnect" } }, "Type": "AWS::Lambda::Permission" @@ -502,12 +487,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/send", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/send" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_stage_config.json b/tests/translator/output/aws-cn/websocket_api_stage_config.json index 91706e6ca..214f659ae 100644 --- a/tests/translator/output/aws-cn/websocket_api_stage_config.json +++ b/tests/translator/output/aws-cn/websocket_api_stage_config.json @@ -96,12 +96,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "Prod" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_stage_globals.json b/tests/translator/output/aws-cn/websocket_api_stage_globals.json index 4059eaa89..a7ca91a78 100644 --- a/tests/translator/output/aws-cn/websocket_api_stage_globals.json +++ b/tests/translator/output/aws-cn/websocket_api_stage_globals.json @@ -44,12 +44,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -139,12 +134,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_test_non_ref.json b/tests/translator/output/aws-cn/websocket_api_test_non_ref.json index 59a4fd24e..596c04e30 100644 --- a/tests/translator/output/aws-cn/websocket_api_test_non_ref.json +++ b/tests/translator/output/aws-cn/websocket_api_test_non_ref.json @@ -105,12 +105,7 @@ "FunctionName": "connectphysid", "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_auth_config.json b/tests/translator/output/aws-cn/websocket_api_with_auth_config.json index c4275e4bd..f463e866a 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_auth_config.json +++ b/tests/translator/output/aws-cn/websocket_api_with_auth_config.json @@ -146,12 +146,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_custom_domain_route53_multiple.json b/tests/translator/output/aws-cn/websocket_api_with_custom_domain_route53_multiple.json index 964829336..9c99358a2 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_custom_domain_route53_multiple.json +++ b/tests/translator/output/aws-cn/websocket_api_with_custom_domain_route53_multiple.json @@ -58,12 +58,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -159,12 +154,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -260,12 +250,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api3.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api3.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional.json b/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional.json index 379802710..bb32b7579 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional.json +++ b/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional.json @@ -78,12 +78,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "Prod" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional_latency_routing.json b/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional_latency_routing.json index 34b3624a4..2f038207b 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional_latency_routing.json +++ b/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional_latency_routing.json @@ -130,12 +130,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json b/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json index 80717fdaf..7810831ea 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json +++ b/tests/translator/output/aws-cn/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json @@ -130,12 +130,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_iam_auth.json b/tests/translator/output/aws-cn/websocket_api_with_iam_auth.json index 3fa74af67..6a28fcd72 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_iam_auth.json +++ b/tests/translator/output/aws-cn/websocket_api_with_iam_auth.json @@ -96,12 +96,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_lambda_auth.json b/tests/translator/output/aws-cn/websocket_api_with_lambda_auth.json index 61d250482..9cd1d0d51 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_lambda_auth.json +++ b/tests/translator/output/aws-cn/websocket_api_with_lambda_auth.json @@ -142,12 +142,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_lambda_auth_invoke_role.json b/tests/translator/output/aws-cn/websocket_api_with_lambda_auth_invoke_role.json index e85eb63ea..459d8848a 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_lambda_auth_invoke_role.json +++ b/tests/translator/output/aws-cn/websocket_api_with_lambda_auth_invoke_role.json @@ -125,12 +125,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_none_auth.json b/tests/translator/output/aws-cn/websocket_api_with_none_auth.json index 25f47ce2a..cb7b83043 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_none_auth.json +++ b/tests/translator/output/aws-cn/websocket_api_with_none_auth.json @@ -96,12 +96,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-cn/websocket_api_with_propagate_tags.json b/tests/translator/output/aws-cn/websocket_api_with_propagate_tags.json index 799d1c9ff..3bef354bb 100644 --- a/tests/translator/output/aws-cn/websocket_api_with_propagate_tags.json +++ b/tests/translator/output/aws-cn/websocket_api_with_propagate_tags.json @@ -129,12 +129,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$default", - { - "__StageName__": "Prod" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$default" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_api_config.json b/tests/translator/output/aws-us-gov/websocket_api_api_config.json index 2d13b3970..3fc70050f 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_api_config.json +++ b/tests/translator/output/aws-us-gov/websocket_api_api_config.json @@ -100,12 +100,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_api_globals.json b/tests/translator/output/aws-us-gov/websocket_api_api_globals.json index e03d85ed8..9918b6b84 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_api_globals.json +++ b/tests/translator/output/aws-us-gov/websocket_api_api_globals.json @@ -49,12 +49,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -144,12 +139,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_auto_name.json b/tests/translator/output/aws-us-gov/websocket_api_auto_name.json index 08dc66ad5..f122b066b 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_auto_name.json +++ b/tests/translator/output/aws-us-gov/websocket_api_auto_name.json @@ -96,12 +96,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_custom_domains_regional.json b/tests/translator/output/aws-us-gov/websocket_api_custom_domains_regional.json index d3954de31..6fddbad02 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_custom_domains_regional.json +++ b/tests/translator/output/aws-us-gov/websocket_api_custom_domains_regional.json @@ -78,12 +78,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$default", - { - "__StageName__": "Prod" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$default" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_description.json b/tests/translator/output/aws-us-gov/websocket_api_description.json index 686dd8ff0..81231327d 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_description.json +++ b/tests/translator/output/aws-us-gov/websocket_api_description.json @@ -98,12 +98,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${WebSocketApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${WebSocketApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_domain_globals.json b/tests/translator/output/aws-us-gov/websocket_api_domain_globals.json index 98694c35f..383f945cf 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_domain_globals.json +++ b/tests/translator/output/aws-us-gov/websocket_api_domain_globals.json @@ -58,12 +58,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -159,12 +154,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_explicit_stage.json b/tests/translator/output/aws-us-gov/websocket_api_explicit_stage.json index 7f74ebd69..30edb15b9 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_explicit_stage.json +++ b/tests/translator/output/aws-us-gov/websocket_api_explicit_stage.json @@ -103,12 +103,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "Prod" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_route_config.json b/tests/translator/output/aws-us-gov/websocket_api_route_config.json index 43be92af2..500703fc5 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_route_config.json +++ b/tests/translator/output/aws-us-gov/websocket_api_route_config.json @@ -97,12 +97,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_simple.json b/tests/translator/output/aws-us-gov/websocket_api_simple.json index 08dc66ad5..f122b066b 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_simple.json +++ b/tests/translator/output/aws-us-gov/websocket_api_simple.json @@ -96,12 +96,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_simple_app.json b/tests/translator/output/aws-us-gov/websocket_api_simple_app.json index 30eefed17..79a3c7b5b 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_simple_app.json +++ b/tests/translator/output/aws-us-gov/websocket_api_simple_app.json @@ -300,12 +300,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -363,12 +358,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$default", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$default" } }, "Type": "AWS::Lambda::Permission" @@ -439,12 +429,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$disconnect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$disconnect" } }, "Type": "AWS::Lambda::Permission" @@ -502,12 +487,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/send", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/send" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_stage_config.json b/tests/translator/output/aws-us-gov/websocket_api_stage_config.json index 5f402a2f4..acf233a15 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_stage_config.json +++ b/tests/translator/output/aws-us-gov/websocket_api_stage_config.json @@ -96,12 +96,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "Prod" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_stage_globals.json b/tests/translator/output/aws-us-gov/websocket_api_stage_globals.json index 826563357..7f4e6bd0c 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_stage_globals.json +++ b/tests/translator/output/aws-us-gov/websocket_api_stage_globals.json @@ -44,12 +44,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -139,12 +134,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_test_non_ref.json b/tests/translator/output/aws-us-gov/websocket_api_test_non_ref.json index 85dbbefae..eac829bcc 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_test_non_ref.json +++ b/tests/translator/output/aws-us-gov/websocket_api_test_non_ref.json @@ -105,12 +105,7 @@ "FunctionName": "connectphysid", "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_auth_config.json b/tests/translator/output/aws-us-gov/websocket_api_with_auth_config.json index a8bc705eb..f96abcc56 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_auth_config.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_auth_config.json @@ -146,12 +146,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_custom_domain_route53_multiple.json b/tests/translator/output/aws-us-gov/websocket_api_with_custom_domain_route53_multiple.json index 665532e7b..6117c8e3c 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_custom_domain_route53_multiple.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_custom_domain_route53_multiple.json @@ -58,12 +58,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -159,12 +154,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -260,12 +250,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api3.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api3.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional.json b/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional.json index f3a279c2a..4a073c7ac 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional.json @@ -78,12 +78,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "Prod" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional_latency_routing.json b/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional_latency_routing.json index 38e3a9858..a64526974 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional_latency_routing.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional_latency_routing.json @@ -130,12 +130,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json b/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json index 526dca7b0..e65904b10 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json @@ -130,12 +130,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_iam_auth.json b/tests/translator/output/aws-us-gov/websocket_api_with_iam_auth.json index 9e4a39ead..ac714889a 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_iam_auth.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_iam_auth.json @@ -96,12 +96,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_lambda_auth.json b/tests/translator/output/aws-us-gov/websocket_api_with_lambda_auth.json index 7b3ea0fea..b08c9ad05 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_lambda_auth.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_lambda_auth.json @@ -142,12 +142,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_lambda_auth_invoke_role.json b/tests/translator/output/aws-us-gov/websocket_api_with_lambda_auth_invoke_role.json index 474659ed2..0f10ecc3f 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_lambda_auth_invoke_role.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_lambda_auth_invoke_role.json @@ -125,12 +125,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_none_auth.json b/tests/translator/output/aws-us-gov/websocket_api_with_none_auth.json index 346b6b194..b183b79d2 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_none_auth.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_none_auth.json @@ -96,12 +96,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/aws-us-gov/websocket_api_with_propagate_tags.json b/tests/translator/output/aws-us-gov/websocket_api_with_propagate_tags.json index 0ade83cfc..5c67ed5cc 100644 --- a/tests/translator/output/aws-us-gov/websocket_api_with_propagate_tags.json +++ b/tests/translator/output/aws-us-gov/websocket_api_with_propagate_tags.json @@ -129,12 +129,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$default", - { - "__StageName__": "Prod" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$default" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_api_config.json b/tests/translator/output/websocket_api_api_config.json index 4f092b07d..a1305ee4b 100644 --- a/tests/translator/output/websocket_api_api_config.json +++ b/tests/translator/output/websocket_api_api_config.json @@ -100,12 +100,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_api_globals.json b/tests/translator/output/websocket_api_api_globals.json index dfe2efb79..0845e692d 100644 --- a/tests/translator/output/websocket_api_api_globals.json +++ b/tests/translator/output/websocket_api_api_globals.json @@ -49,12 +49,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -144,12 +139,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_auto_name.json b/tests/translator/output/websocket_api_auto_name.json index 6ea6997b6..64300b089 100644 --- a/tests/translator/output/websocket_api_auto_name.json +++ b/tests/translator/output/websocket_api_auto_name.json @@ -96,12 +96,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_custom_domains_regional.json b/tests/translator/output/websocket_api_custom_domains_regional.json index 8c4ffbc7e..2714a58d0 100644 --- a/tests/translator/output/websocket_api_custom_domains_regional.json +++ b/tests/translator/output/websocket_api_custom_domains_regional.json @@ -78,12 +78,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$default", - { - "__StageName__": "Prod" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$default" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_description.json b/tests/translator/output/websocket_api_description.json index 61aca5dc8..fe0c1f15e 100644 --- a/tests/translator/output/websocket_api_description.json +++ b/tests/translator/output/websocket_api_description.json @@ -98,12 +98,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${WebSocketApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${WebSocketApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_domain_globals.json b/tests/translator/output/websocket_api_domain_globals.json index 8134033ed..1cf431fc2 100644 --- a/tests/translator/output/websocket_api_domain_globals.json +++ b/tests/translator/output/websocket_api_domain_globals.json @@ -58,12 +58,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -159,12 +154,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_explicit_stage.json b/tests/translator/output/websocket_api_explicit_stage.json index ed6dbeb3f..4df5e3da1 100644 --- a/tests/translator/output/websocket_api_explicit_stage.json +++ b/tests/translator/output/websocket_api_explicit_stage.json @@ -103,12 +103,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "Prod" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_route_config.json b/tests/translator/output/websocket_api_route_config.json index bdd844d15..efd1b6d29 100644 --- a/tests/translator/output/websocket_api_route_config.json +++ b/tests/translator/output/websocket_api_route_config.json @@ -97,12 +97,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_simple.json b/tests/translator/output/websocket_api_simple.json index 6ea6997b6..64300b089 100644 --- a/tests/translator/output/websocket_api_simple.json +++ b/tests/translator/output/websocket_api_simple.json @@ -96,12 +96,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_simple_app.json b/tests/translator/output/websocket_api_simple_app.json index 3b6d10218..ed395e24a 100644 --- a/tests/translator/output/websocket_api_simple_app.json +++ b/tests/translator/output/websocket_api_simple_app.json @@ -300,12 +300,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -363,12 +358,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$default", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$default" } }, "Type": "AWS::Lambda::Permission" @@ -439,12 +429,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/$disconnect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/$disconnect" } }, "Type": "AWS::Lambda::Permission" @@ -502,12 +487,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/${__StageName__}/send", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${SimpleChatApi.ApiId}/default/send" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_stage_config.json b/tests/translator/output/websocket_api_stage_config.json index 174401fb9..9f685005f 100644 --- a/tests/translator/output/websocket_api_stage_config.json +++ b/tests/translator/output/websocket_api_stage_config.json @@ -96,12 +96,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "Prod" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_stage_globals.json b/tests/translator/output/websocket_api_stage_globals.json index aaa6e28b8..ed7b1db4d 100644 --- a/tests/translator/output/websocket_api_stage_globals.json +++ b/tests/translator/output/websocket_api_stage_globals.json @@ -44,12 +44,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -139,12 +134,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_test_non_ref.json b/tests/translator/output/websocket_api_test_non_ref.json index 62f449f29..cecb06128 100644 --- a/tests/translator/output/websocket_api_test_non_ref.json +++ b/tests/translator/output/websocket_api_test_non_ref.json @@ -105,12 +105,7 @@ "FunctionName": "connectphysid", "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_auth_config.json b/tests/translator/output/websocket_api_with_auth_config.json index f938f881b..aa57ab5b9 100644 --- a/tests/translator/output/websocket_api_with_auth_config.json +++ b/tests/translator/output/websocket_api_with_auth_config.json @@ -146,12 +146,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_custom_domain_route53_multiple.json b/tests/translator/output/websocket_api_with_custom_domain_route53_multiple.json index 63d348d50..d2cd71460 100644 --- a/tests/translator/output/websocket_api_with_custom_domain_route53_multiple.json +++ b/tests/translator/output/websocket_api_with_custom_domain_route53_multiple.json @@ -58,12 +58,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api1.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -159,12 +154,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api2.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" @@ -260,12 +250,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api3.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${Api3.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_custom_domains_regional.json b/tests/translator/output/websocket_api_with_custom_domains_regional.json index c7c6076c6..4540f278e 100644 --- a/tests/translator/output/websocket_api_with_custom_domains_regional.json +++ b/tests/translator/output/websocket_api_with_custom_domains_regional.json @@ -78,12 +78,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "Prod" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_custom_domains_regional_latency_routing.json b/tests/translator/output/websocket_api_with_custom_domains_regional_latency_routing.json index b6ec07c76..2c6ae7e25 100644 --- a/tests/translator/output/websocket_api_with_custom_domains_regional_latency_routing.json +++ b/tests/translator/output/websocket_api_with_custom_domains_regional_latency_routing.json @@ -130,12 +130,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json b/tests/translator/output/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json index 5ba893cac..edde463ac 100644 --- a/tests/translator/output/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json +++ b/tests/translator/output/websocket_api_with_custom_domains_regional_latency_routing_ipv6.json @@ -130,12 +130,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_iam_auth.json b/tests/translator/output/websocket_api_with_iam_auth.json index 774eea12e..3c98fff14 100644 --- a/tests/translator/output/websocket_api_with_iam_auth.json +++ b/tests/translator/output/websocket_api_with_iam_auth.json @@ -96,12 +96,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_lambda_auth.json b/tests/translator/output/websocket_api_with_lambda_auth.json index 4c8c90a4d..094970075 100644 --- a/tests/translator/output/websocket_api_with_lambda_auth.json +++ b/tests/translator/output/websocket_api_with_lambda_auth.json @@ -142,12 +142,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_lambda_auth_invoke_role.json b/tests/translator/output/websocket_api_with_lambda_auth_invoke_role.json index d6a3d5ba1..b954b2b3a 100644 --- a/tests/translator/output/websocket_api_with_lambda_auth_invoke_role.json +++ b/tests/translator/output/websocket_api_with_lambda_auth_invoke_role.json @@ -125,12 +125,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_none_auth.json b/tests/translator/output/websocket_api_with_none_auth.json index 418821e1d..bae37df69 100644 --- a/tests/translator/output/websocket_api_with_none_auth.json +++ b/tests/translator/output/websocket_api_with_none_auth.json @@ -96,12 +96,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$connect", - { - "__StageName__": "default" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/default/$connect" } }, "Type": "AWS::Lambda::Permission" diff --git a/tests/translator/output/websocket_api_with_propagate_tags.json b/tests/translator/output/websocket_api_with_propagate_tags.json index 343eebbcb..3ab837c2b 100644 --- a/tests/translator/output/websocket_api_with_propagate_tags.json +++ b/tests/translator/output/websocket_api_with_propagate_tags.json @@ -129,12 +129,7 @@ }, "Principal": "apigateway.amazonaws.com", "SourceArn": { - "Fn::Sub": [ - "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/${__StageName__}/$default", - { - "__StageName__": "Prod" - } - ] + "Fn::Sub": "arn:${AWS::Partition}:execute-api:${AWS::Region}:${AWS::AccountId}:${MyApi.ApiId}/Prod/$default" } }, "Type": "AWS::Lambda::Permission"