UNPKG

@altostra/core

Version:

Core library for shared types and logic

43 lines (42 loc) 1.56 kB
import type { NonEmptyString } from "../../../common/CustomTypes/NonEmptyString"; import type { NaturalNumber } from "../../../common/CustomTypes/Numerics"; import type { SecurityGroupId } from "../../../common/CustomTypes/SecurityGroupId"; import type { SubnetId } from "../../../common/CustomTypes/SubnetId"; import type { Arn } from "../../Arn"; import type { AwsResourceCommon, CloudFormationTags } from "../common"; import type { CloudFormationValue, Ref } from "../IntrinsicFunctions"; export declare type ServiceType = 'AWS::ECS::Service'; export interface Service extends AwsResourceCommon { Type: ServiceType; Properties: ServiceProperties; } export interface LoadBalancer { TargetGroupArn: CloudFormationValue<Arn>; ContainerPort: NaturalNumber; ContainerName: NonEmptyString; } interface ServiceRegistry { RegistryArn: CloudFormationValue<Arn>; ContainerName?: NonEmptyString; ContainerPort?: NaturalNumber; Port?: NaturalNumber; } interface NetworkConfiguration { AwsvpcConfiguration: { AssignPublicIp?: 'DISABLED' | 'ENABLED'; SecurityGroups?: CloudFormationValue<SecurityGroupId>[]; Subnets: SubnetId[]; }; } export interface ServiceProperties { Cluster?: Ref; LaunchType: 'FARGATE'; ServiceName: NonEmptyString; TaskDefinition: CloudFormationValue<Arn>; DesiredCount: NaturalNumber; NetworkConfiguration: NetworkConfiguration; LoadBalancers?: LoadBalancer[]; ServiceRegistries: ServiceRegistry[]; Tags?: CloudFormationTags; } export {};