import { ContainerImage, FargateService, FargateTaskDefinition, ICluster } from 'aws-cdk-lib/aws-ecs'; import { IRepository } from 'aws-cdk-lib/aws-ecr'; import BaseModule, { BaseDefaults, BaseSettings } from './base-module'; import { TaskEnvironment } from '../utilities/environment'; import { ISecurityGroup, IVpc } from 'aws-cdk-lib/aws-ec2'; import ConvertivBaseStack from '../stacks/base-stack'; export interface TwinGateSettings extends BaseSettings { name: string; vpc?: IVpc | string; twingateName: string; cluster: ICluster; desired: number; containerPort?: number | null; elbPort?: number | null; cpu: number; memory: number; gracePeriod?: number; min?: number; max?: number; environment?: TaskEnvironment; securityGroups?: ISecurityGroup[]; tag: string; assignPublicIp?: boolean; } export interface TwinGateDefaults extends BaseDefaults { name: string; desired: number; cpu: number; memory: number; min: number; max: number; environment: TaskEnvironment; tag: string; assignPublicIp: boolean; } /** * A Fargate service running on an ECS cluster fronted by an application load balancer. */ export declare class TwinGateService extends BaseModule { settings: TwinGateSettings; /** * Define the defaults for the service */ defaults: TwinGateDefaults; /** * Expose the task definition */ taskDefinition: FargateTaskDefinition; /** * Expose the service definition */ service: FargateService; repo: IRepository; image: ContainerImage; tgSecurityGroup: ISecurityGroup; /** * Run the base validator, and then allow the class to * perform additional validation * @param settings */ validate(settings: TwinGateSettings): void; /** * Constructs a new instance of the ApplicationLoadBalancedFargateService class. */ constructor(scope: ConvertivBaseStack, settings: TwinGateSettings); }