Skip to content

Commit d173c29

Browse files
committed
Merge branch 'main' into release-v1.61.0
2 parents 01520c1 + 1b96427 commit d173c29

File tree

7 files changed

+140
-101
lines changed

7 files changed

+140
-101
lines changed

samtranslator/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "1.61.0"
1+
__version__ = "1.60.1"

samtranslator/internal/intrinsics.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
from typing import Any, Dict, Optional, Union
2+
3+
from samtranslator.intrinsics.resolver import IntrinsicsResolver
4+
from samtranslator.model.exceptions import InvalidResourceException
5+
6+
7+
def resolve_string_parameter_in_resource(
8+
logical_id: str,
9+
intrinsics_resolver: IntrinsicsResolver,
10+
parameter_value: Optional[Union[str, Dict[str, Any]]],
11+
parameter_name: str,
12+
) -> Optional[Union[str, Dict[str, Any]]]:
13+
"""Try to resolve values in a resource from template parameters."""
14+
if not parameter_value:
15+
return parameter_value
16+
value = intrinsics_resolver.resolve_parameter_refs(parameter_value)
17+
18+
if not isinstance(value, str) and not isinstance(value, dict):
19+
raise InvalidResourceException(
20+
logical_id,
21+
"Could not resolve parameter for '{}' or parameter is not a String.".format(parameter_name),
22+
)
23+
return value

samtranslator/model/__init__.py

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,11 @@
33
import re
44
from abc import ABC, ABCMeta, abstractmethod
55
from contextlib import suppress
6-
from typing import Any, Callable, Dict, List, Optional, Tuple, Type, TypeVar, Union
6+
from typing import Any, Callable, Dict, List, Optional, Tuple, Type, TypeVar
77

88
from pydantic import BaseModel
99
from pydantic.error_wrappers import ValidationError
1010

11-
from samtranslator.intrinsics.resolver import IntrinsicsResolver
1211
from samtranslator.model.exceptions import (
1312
ExpectedType,
1413
InvalidResourceException,
@@ -544,23 +543,6 @@ def _check_tag(self, reserved_tag_name, tags): # type: ignore[no-untyped-def]
544543
"input.",
545544
)
546545

547-
def _resolve_string_parameter(
548-
self,
549-
intrinsics_resolver: IntrinsicsResolver,
550-
parameter_value: Optional[Union[str, Dict[str, Any]]],
551-
parameter_name: str,
552-
) -> Optional[Union[str, Dict[str, Any]]]:
553-
if not parameter_value:
554-
return parameter_value
555-
value = intrinsics_resolver.resolve_parameter_refs(parameter_value)
556-
557-
if not isinstance(value, str) and not isinstance(value, dict):
558-
raise InvalidResourceException(
559-
self.logical_id,
560-
"Could not resolve parameter for '{}' or parameter is not a String.".format(parameter_name),
561-
)
562-
return value
563-
564546

565547
class ResourceTypeResolver:
566548
"""ResourceTypeResolver maps Resource Types to Resource classes, e.g. AWS::Serverless::Function to

samtranslator/model/sam_resources.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import samtranslator.model.eventsources.push
1010
import samtranslator.model.eventsources.scheduler
1111
from samtranslator.feature_toggle.feature_toggle import FeatureToggle
12+
from samtranslator.internal.intrinsics import resolve_string_parameter_in_resource
1213
from samtranslator.internal.types import GetManagedPolicyMap
1314
from samtranslator.intrinsics.resolver import IntrinsicsResolver
1415
from samtranslator.metrics.method_decorator import cw_timer
@@ -1571,11 +1572,17 @@ def _construct_lambda_layer(self, intrinsics_resolver: IntrinsicsResolver) -> La
15711572
:rtype: list
15721573
"""
15731574
# Resolve intrinsics if applicable:
1574-
self.LayerName = self._resolve_string_parameter(intrinsics_resolver, self.LayerName, "LayerName")
1575-
self.LicenseInfo = self._resolve_string_parameter(intrinsics_resolver, self.LicenseInfo, "LicenseInfo")
1576-
self.Description = self._resolve_string_parameter(intrinsics_resolver, self.Description, "Description")
1577-
self.RetentionPolicy = self._resolve_string_parameter(
1578-
intrinsics_resolver, self.RetentionPolicy, "RetentionPolicy"
1575+
self.LayerName = resolve_string_parameter_in_resource(
1576+
self.logical_id, intrinsics_resolver, self.LayerName, "LayerName"
1577+
)
1578+
self.LicenseInfo = resolve_string_parameter_in_resource(
1579+
self.logical_id, intrinsics_resolver, self.LicenseInfo, "LicenseInfo"
1580+
)
1581+
self.Description = resolve_string_parameter_in_resource(
1582+
self.logical_id, intrinsics_resolver, self.Description, "Description"
1583+
)
1584+
self.RetentionPolicy = resolve_string_parameter_in_resource(
1585+
self.logical_id, intrinsics_resolver, self.RetentionPolicy, "RetentionPolicy"
15791586
)
15801587

15811588
# If nothing defined, this will be set to Retain

0 commit comments

Comments
 (0)