import * as ec2 from 'aws-cdk-lib/aws-ec2'; import * as ecs from 'aws-cdk-lib/aws-ecs'; import * as elbv2 from 'aws-cdk-lib/aws-elasticloadbalancingv2'; import * as constructs from 'constructs'; import { type ContainerDefinitionOptions, type DatadogIntegrationProps, type FargateTaskDefinitionProps, Framework, type LoadBalancerOptions } from './rio-fargate-service'; /** * Fargate Task Definition Properties. */ export interface RioFargateServiceBlueGreenAlphaProps { /** * The stage of the service, e.g. 'prod'. */ readonly stage: string; /** * The Name of the service. */ readonly serviceName: string; /** * The version of the service, e.g. the git hash of the corresponding commit. */ readonly version: string; /** * The frameworks in uses. * * @defaultValue - No frameworks. */ readonly frameworks?: Framework[]; /** * The VPC of the service's ecs.Cluster if no cluster is explicitly passed as prop. */ readonly vpc: ec2.IVpc; /** * The Fargate cluster to run the service in. * If not null, the cluster.vpc MUST match the vpc provided as direct argument. * * @defaultValue - Create a new Fargate cluster with default properties */ readonly cluster?: ecs.ICluster; /** * Container definition options like image, cpu, memory. */ readonly containerDefinitionOption: ContainerDefinitionOptions; /** * Fargate Task Definition Properties. */ readonly fargateOptions: FargateTaskDefinitionProps; /** * Loadbalancer options. */ readonly loadBalancerOptions?: LoadBalancerOptions; /** * Datadog integration properties */ readonly datadogOptions?: DatadogIntegrationProps; /** * Blue green deployment configuration */ readonly blueGreenDeploymentConfig?: BlueGreenDeploymentConfig; } export interface BlueGreenDeploymentConfig { /** * The target group to associate with the replacement task set for testing before promoting traffic to production. * @default - No target group. */ readonly testListener?: elbv2.IApplicationListener; /** * Name of the capabilities to run with the monitoring test suite runner testing */ readonly capabilityNames?: string[]; } export declare class RioFargateServiceBlueGreenAlpha extends constructs.Construct implements ec2.IConnectable { private static readonly DD_ENV_DENY_LIST; private static readonly DD_TAG_DENY_LIST; private readonly DEFAULT_APM_GET_ENDPOINTS_TO_IGNORE; private readonly DEFAULT_DATADOG_SIDECAR_CPU; private readonly DEFAULT_DATADOG_SIDECAR_MEMORY_LIMIT_MIB; private readonly DEFAULT_DATADOG_SIDECAR_ESSENTIAL; private readonly DEFAULT_LOGGING_MODE_FOR_SERVICE; private readonly DEFAULT_LOGGING_MODE_FOR_DATADOG_SIDECAR; private readonly DEFAULT_DEREGISTRATION_DELAY; private readonly DEFAULT_SLOW_START; private readonly DEFAULT_DATADOG_SIDECAR_TAG; private readonly LOG_ROUTER_CPU; private readonly LOG_ROUTER_MEMORY_LIMIT_MIB; private readonly FIRELENS_CONFIG_BUCKET_ARN; private readonly FIRELENS_CONFIG_FILE_PATH; readonly serviceContainerDefinition: ecs.ContainerDefinition; readonly datadogSideCarContainerDefinition: ecs.ContainerDefinition; readonly logRouterContainerDefinition?: ecs.ContainerDefinition; readonly taskDefinition: ecs.FargateTaskDefinition; readonly connections: ec2.Connections; readonly service: ecs.FargateService; readonly blueTargetGroup: elbv2.ApplicationTargetGroup | undefined; readonly greenTargetGroup: elbv2.ApplicationTargetGroup | undefined; constructor(scope: constructs.Construct, id: string, props: RioFargateServiceBlueGreenAlphaProps); }