import * as core from "@terrascript/core"; export interface HealthCheckArgs extends core.SchemaArgs { enabled: boolean | core.BooleanOut; healthyThreshold: number | core.NumberOut; interval: number | core.NumberOut; matcher: string | core.StringOut; path: string | core.StringOut; port: string | core.StringOut; protocol: string | core.StringOut; timeout: number | core.NumberOut; unhealthyThreshold: number | core.NumberOut; } export class HealthCheck extends core.Schema { @core.attr(Boolean, { computed: true }) public enabled!: boolean | core.BooleanOut; @core.attr(Number, { computed: true }) public healthyThreshold!: number | core.NumberOut; @core.attr(Number, { computed: true }) public interval!: number | core.NumberOut; @core.attr(String, { computed: true }) public matcher!: string | core.StringOut; @core.attr(String, { computed: true }) public path!: string | core.StringOut; @core.attr(String, { computed: true }) public port!: string | core.StringOut; @core.attr(String, { computed: true }) public protocol!: string | core.StringOut; @core.attr(Number, { computed: true }) public timeout!: number | core.NumberOut; @core.attr(Number, { computed: true }) public unhealthyThreshold!: number | core.NumberOut; } export interface StickinessArgs extends core.SchemaArgs { cookieDuration: number | core.NumberOut; cookieName: string | core.StringOut; enabled: boolean | core.BooleanOut; type: string | core.StringOut; } export class Stickiness extends core.Schema { @core.attr(Number, { computed: true }) public cookieDuration!: number | core.NumberOut; @core.attr(String, { computed: true }) public cookieName!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public enabled!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public type!: string | core.StringOut; } export interface DsLbTargetGroupArgs { /** * (Optional) The full ARN of the target group. */ arn?: string | core.StringOut; /** * (Optional) The unique name of the target group. */ name?: string | core.StringOut; tags?: core.Map | core.MapOut; } export class DsLbTargetGroup extends core.Data { /** * (Optional) The full ARN of the target group. */ @core.attr(String, { computed: true }) public arn?: string | core.StringOut; @core.attr(String, { computed: true }) public arnSuffix!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public connectionTermination!: boolean | core.BooleanOut; @core.attr(Number, { computed: true }) public deregistrationDelay!: number | core.NumberOut; @core.attr(HealthCheck, { computed: true, kind: "array" }) public healthCheck!: core.Array | core.ArrayOut; @core.attr(String, { computed: true }) public id!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public lambdaMultiValueHeadersEnabled!: boolean | core.BooleanOut; @core.attr(String, { computed: true }) public loadBalancingAlgorithmType!: string | core.StringOut; /** * (Optional) The unique name of the target group. */ @core.attr(String, { computed: true }) public name?: string | core.StringOut; @core.attr(Number, { computed: true }) public port!: number | core.NumberOut; @core.attr(String, { computed: true }) public preserveClientIp!: string | core.StringOut; @core.attr(String, { computed: true }) public protocol!: string | core.StringOut; @core.attr(String, { computed: true }) public protocolVersion!: string | core.StringOut; @core.attr(Boolean, { computed: true }) public proxyProtocolV2!: boolean | core.BooleanOut; @core.attr(Number, { computed: true }) public slowStart!: number | core.NumberOut; @core.attr(Stickiness, { computed: true, kind: "array" }) public stickiness!: core.Array | core.ArrayOut; @core.attr(String, { computed: true, kind: "map" }) public tags?: core.Map | core.MapOut; @core.attr(String, { computed: true }) public targetType!: string | core.StringOut; @core.attr(String, { computed: true }) public vpcId!: string | core.StringOut; constructor(name: string, args?: DsLbTargetGroupArgs) { super(name, "aws_lb_target_group", args); } public override getNamespace(): string { return "aws_elb"; } }