import * as ec2 from '@aws-cdk/aws-ec2'; import * as efs from '@aws-cdk/aws-efs'; import * as rds from '@aws-cdk/aws-rds'; import * as cdk from '@aws-cdk/core'; import { DualAlbFargateService, FargateTaskProps, Database, LoadBalancerAccessibility } from './'; /** * @stability stable */ export interface LaravelProps { /** * @stability stable */ readonly vpc?: ec2.IVpc; /** * VPC subnets for database. * * @default - VPC isolated subnets * @stability stable */ readonly databaseSubnets?: ec2.SubnetSelection; /** * Database instance type. * * @default r5.large * @stability stable */ readonly databaseInstanceType?: ec2.InstanceType; /** * The database instance engine. * * @default - MySQL 8.0.21 * @stability stable */ readonly instanceEngine?: rds.IInstanceEngine; /** * The database cluster engine. * * @default rds.AuroraMysqlEngineVersion.VER_2_09_1 * @stability stable */ readonly clusterEngine?: rds.IClusterEngine; /** * Whether to use aurora serverless. * * When enabled, the `databaseInstanceType` and * `engine` will be ignored. The `rds.DatabaseClusterEngine.AURORA_MYSQL` will be used as * the default cluster engine instead. * * @default false * @stability stable */ readonly auroraServerless?: boolean; /** * Whether to use single RDS instance rather than RDS cluster. * * Not recommended for production. * * @default false * @stability stable */ readonly singleDbInstance?: boolean; /** * database backup retension. * * @default - 7 days * @stability stable */ readonly backupRetention?: cdk.Duration; /** * task options for the Laravel fargate service. * * @stability stable */ readonly serviceProps?: FargateTaskProps; /** * enable fargate spot. * * @stability stable */ readonly spot?: boolean; /** * enable ECS Exec. * * @stability stable */ readonly enableExecuteCommand?: boolean; /** * The local path to the Laravel code base. * * @stability stable */ readonly code: string; /** * The Laravel container port. * * @default 80 * @stability stable */ readonly containerPort?: number; /** * The loadbalancer accessibility for the service. * * @stability stable */ readonly loadbalancer: LoadBalancerAccessibility; /** * The default database name to create. * * @stability stable */ readonly defaultDatabaseName?: string; /** * Options to create the EFS FileSystem. * * @stability stable */ readonly efsFileSystem?: efs.FileSystemProps; } /** * Represents the Laravel service. * * @stability stable */ export declare class Laravel extends cdk.Construct { /** * @stability stable */ readonly vpc: ec2.IVpc; /** * @stability stable */ readonly db?: Database; /** * @stability stable */ readonly svc: DualAlbFargateService; /** * @stability stable */ constructor(scope: cdk.Construct, id: string, props: LaravelProps); private addDatabase; }