in samtranslator/model/sam_resources.py [0:0]
def to_cloudformation(self, **kwargs): # type: ignore[no-untyped-def]
"""Returns the API GatewayV2 Api, Deployment, and Stage to which this SAM Api corresponds.
:param dict kwargs: already-converted resources that may need to be modified when converting this \
macro to pure CloudFormation
:returns: a list of vanilla CloudFormation Resources, to which this Function expands
:rtype: list
"""
resources: List[Resource] = []
intrinsics_resolver = kwargs["intrinsics_resolver"]
self.CorsConfiguration = intrinsics_resolver.resolve_parameter_refs(self.CorsConfiguration)
self.Domain = intrinsics_resolver.resolve_parameter_refs(self.Domain)
api_generator = HttpApiGenerator(
self.logical_id,
self.StageVariables,
self.depends_on,
self.DefinitionBody,
self.DefinitionUri,
self.Name,
self.StageName,
tags=self.Tags,
auth=self.Auth,
cors_configuration=self.CorsConfiguration,
access_log_settings=self.AccessLogSettings,
route_settings=self.RouteSettings,
default_route_settings=self.DefaultRouteSettings,
resource_attributes=self.resource_attributes,
passthrough_resource_attributes=self.get_passthrough_resource_attributes(),
domain=self.Domain,
fail_on_warnings=self.FailOnWarnings,
description=self.Description,
disable_execute_api_endpoint=self.DisableExecuteApiEndpoint,
)
(
http_api,
stage,
domain,
basepath_mapping,
route53,
permissions,
) = api_generator.to_cloudformation(kwargs.get("route53_record_set_groups", {}))
resources.append(http_api)
if permissions:
resources.extend(permissions)
if domain:
resources.append(domain)
if basepath_mapping:
resources.extend(basepath_mapping)
if route53:
resources.append(route53)
# Stage is now optional. Only add it if one is created.
if stage:
resources.append(stage)
self.propagate_tags(resources, self.Tags, self.PropagateTags)
return resources