Source code for ecs_composex.compose.x_resources.api_x_resources

#  SPDX-License-Identifier: MPL-2.0
#  Copyright 2020-2022 John Mille <john@compose-x.io>

from __future__ import annotations

from typing import TYPE_CHECKING

if TYPE_CHECKING:
    from ecs_composex.common.settings import ComposeXSettings
    from ecs_composex.mods_manager import XResourceModule, ModManager
    from ecs_composex.common.stacks import ComposeXStack


from ecs_composex.common.logging import LOG
from ecs_composex.compose.x_resources.services_resources import ServicesXResource
from ecs_composex.resource_settings import handle_resource_to_services


[docs]class ApiXResource(ServicesXResource): """ Class for Resources that only require API / IAM access to be defined """ def __init__( self, name: str, definition: dict, module: XResourceModule, settings: ComposeXSettings, ): super().__init__(name, definition, module, settings) self.predefined_resource_service_scaling_function = None
[docs] def to_ecs( self, settings: ComposeXSettings, modules: ModManager, root_stack: ComposeXStack = None, targets_overrides: list = None, ) -> None: """ Maps API only based resource to ECS Services """ LOG.info(f"{self.module.res_key}.{self.name} - Linking to services") handle_resource_to_services( settings, self, arn_parameter=self.arn_parameter, nested=False, targets_overrides=targets_overrides, ) if self.predefined_resource_service_scaling_function: self.predefined_resource_service_scaling_function(self, settings)