@studion/infra-code-blocks
Version:
Studion common infra components
38 lines • 1.87 kB
TypeScript
import * as pulumi from '@pulumi/pulumi';
import * as awsx from '@pulumi/awsx';
import { EcsService } from '../ecs-service';
import { WebServer } from '.';
import { OtelCollector } from '../../otel';
export declare namespace WebServerBuilder {
type EcsConfig = Omit<WebServer.EcsConfig, 'vpc' | 'volumes'>;
}
export declare class WebServerBuilder {
private _name;
private _container?;
private _vpc?;
private _ecsConfig?;
private _domain?;
private _hostedZoneId?;
private _certificate?;
private _healthCheckPath?;
private _healthCheckConfig?;
private _loadBalancingAlgorithmType?;
private _otelCollector?;
private _initContainers;
private _sidecarContainers;
private _volumes;
constructor(name: string);
withContainer(image: WebServer.Container['image'], port: WebServer.Container['port'], config?: Omit<WebServer.Container, 'image' | 'port'>): this;
withEcsConfig(config: WebServerBuilder.EcsConfig): this;
withVpc(vpc: pulumi.Input<awsx.ec2.Vpc>): this;
withVolume(volume: EcsService.PersistentStorageVolume): this;
withCustomDomain(domain: pulumi.Input<string>, hostedZoneId: pulumi.Input<string>): this;
withCertificate(certificate: WebServer.Args['certificate'], hostedZoneId: pulumi.Input<string>, domain?: pulumi.Input<string>): this;
addInitContainer(container: WebServer.InitContainer): this;
addSidecarContainer(container: WebServer.SidecarContainer): this;
withOtelCollector(collector: OtelCollector): this;
withHealthCheck(path: WebServer.LoadBalancerConfig['healthCheckPath'], config?: WebServer.LoadBalancerConfig['healthCheckConfig']): this;
withLoadBalancingAlgorithm(algorithm: WebServer.LoadBalancerConfig['loadBalancingAlgorithmType']): this;
build(opts?: pulumi.ComponentResourceOptions): WebServer;
}
//# sourceMappingURL=builder.d.ts.map