import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface LoadBalancerConfig extends cdktf.TerraformMetaArguments { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#attached_instances LoadBalancer#attached_instances} */ readonly attachedInstances?: string[]; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#balancing_algorithm LoadBalancer#balancing_algorithm} */ readonly balancingAlgorithm?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#cookie_name LoadBalancer#cookie_name} */ readonly cookieName?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#id LoadBalancer#id} * * Please be aware that the id field is automatically added to all resources in Terraform providers using a Terraform provider SDK version below 2. * If you experience problems setting this value it might not be settable. Please take a look at the provider documentation to ensure it should be settable. */ readonly id?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#label LoadBalancer#label} */ readonly label?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#proxy_protocol LoadBalancer#proxy_protocol} */ readonly proxyProtocol?: boolean | cdktf.IResolvable; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#region LoadBalancer#region} */ readonly region: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#ssl_redirect LoadBalancer#ssl_redirect} */ readonly sslRedirect?: boolean | cdktf.IResolvable; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#vpc LoadBalancer#vpc} */ readonly vpc?: string; /** * firewall_rules block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#firewall_rules LoadBalancer#firewall_rules} */ readonly firewallRules?: LoadBalancerFirewallRules[] | cdktf.IResolvable; /** * forwarding_rules block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#forwarding_rules LoadBalancer#forwarding_rules} */ readonly forwardingRules: LoadBalancerForwardingRules[] | cdktf.IResolvable; /** * health_check block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#health_check LoadBalancer#health_check} */ readonly healthCheck?: LoadBalancerHealthCheck; /** * ssl block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#ssl LoadBalancer#ssl} */ readonly ssl?: LoadBalancerSsl; } export interface LoadBalancerFirewallRules { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#ip_type LoadBalancer#ip_type} */ readonly ipType: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#port LoadBalancer#port} */ readonly port: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#source LoadBalancer#source} */ readonly source: string; } export declare function loadBalancerFirewallRulesToTerraform(struct?: LoadBalancerFirewallRules | cdktf.IResolvable): any; export declare function loadBalancerFirewallRulesToHclTerraform(struct?: LoadBalancerFirewallRules | cdktf.IResolvable): any; export declare class LoadBalancerFirewallRulesOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean); get internalValue(): LoadBalancerFirewallRules | cdktf.IResolvable | undefined; set internalValue(value: LoadBalancerFirewallRules | cdktf.IResolvable | undefined); get id(): any; private _ipType?; get ipType(): string; set ipType(value: string); get ipTypeInput(): string; private _port?; get port(): number; set port(value: number); get portInput(): number; private _source?; get source(): string; set source(value: string); get sourceInput(): string; } export declare class LoadBalancerFirewallRulesList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: LoadBalancerFirewallRules[] | cdktf.IResolvable; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean); /** * @param index the index of the item to return */ get(index: number): LoadBalancerFirewallRulesOutputReference; } export interface LoadBalancerForwardingRules { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#backend_port LoadBalancer#backend_port} */ readonly backendPort: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#backend_protocol LoadBalancer#backend_protocol} */ readonly backendProtocol: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#frontend_port LoadBalancer#frontend_port} */ readonly frontendPort: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#frontend_protocol LoadBalancer#frontend_protocol} */ readonly frontendProtocol: string; } export declare function loadBalancerForwardingRulesToTerraform(struct?: LoadBalancerForwardingRules | cdktf.IResolvable): any; export declare function loadBalancerForwardingRulesToHclTerraform(struct?: LoadBalancerForwardingRules | cdktf.IResolvable): any; export declare class LoadBalancerForwardingRulesOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param complexObjectIndex the index of this item in the list * @param complexObjectIsFromSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, complexObjectIndex: number, complexObjectIsFromSet: boolean); get internalValue(): LoadBalancerForwardingRules | cdktf.IResolvable | undefined; set internalValue(value: LoadBalancerForwardingRules | cdktf.IResolvable | undefined); private _backendPort?; get backendPort(): number; set backendPort(value: number); get backendPortInput(): number; private _backendProtocol?; get backendProtocol(): string; set backendProtocol(value: string); get backendProtocolInput(): string; private _frontendPort?; get frontendPort(): number; set frontendPort(value: number); get frontendPortInput(): number; private _frontendProtocol?; get frontendProtocol(): string; set frontendProtocol(value: string); get frontendProtocolInput(): string; get ruleId(): any; } export declare class LoadBalancerForwardingRulesList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: LoadBalancerForwardingRules[] | cdktf.IResolvable; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing * @param wrapsSet whether the list is wrapping a set (will add tolist() to be able to access an item via an index) */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string, wrapsSet: boolean); /** * @param index the index of the item to return */ get(index: number): LoadBalancerForwardingRulesOutputReference; } export interface LoadBalancerHealthCheck { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#check_interval LoadBalancer#check_interval} */ readonly checkInterval?: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#healthy_threshold LoadBalancer#healthy_threshold} */ readonly healthyThreshold?: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#path LoadBalancer#path} */ readonly path?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#port LoadBalancer#port} */ readonly port: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#protocol LoadBalancer#protocol} */ readonly protocol: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#response_timeout LoadBalancer#response_timeout} */ readonly responseTimeout?: number; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#unhealthy_threshold LoadBalancer#unhealthy_threshold} */ readonly unhealthyThreshold?: number; } export declare function loadBalancerHealthCheckToTerraform(struct?: LoadBalancerHealthCheckOutputReference | LoadBalancerHealthCheck): any; export declare function loadBalancerHealthCheckToHclTerraform(struct?: LoadBalancerHealthCheckOutputReference | LoadBalancerHealthCheck): any; export declare class LoadBalancerHealthCheckOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): LoadBalancerHealthCheck | undefined; set internalValue(value: LoadBalancerHealthCheck | undefined); private _checkInterval?; get checkInterval(): number; set checkInterval(value: number); resetCheckInterval(): void; get checkIntervalInput(): number; private _healthyThreshold?; get healthyThreshold(): number; set healthyThreshold(value: number); resetHealthyThreshold(): void; get healthyThresholdInput(): number; private _path?; get path(): string; set path(value: string); resetPath(): void; get pathInput(): string; private _port?; get port(): number; set port(value: number); get portInput(): number; private _protocol?; get protocol(): string; set protocol(value: string); get protocolInput(): string; private _responseTimeout?; get responseTimeout(): number; set responseTimeout(value: number); resetResponseTimeout(): void; get responseTimeoutInput(): number; private _unhealthyThreshold?; get unhealthyThreshold(): number; set unhealthyThreshold(value: number); resetUnhealthyThreshold(): void; get unhealthyThresholdInput(): number; } export interface LoadBalancerSsl { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#certificate LoadBalancer#certificate} */ readonly certificate: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#chain LoadBalancer#chain} */ readonly chain?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#private_key LoadBalancer#private_key} */ readonly privateKey: string; } export declare function loadBalancerSslToTerraform(struct?: LoadBalancerSslOutputReference | LoadBalancerSsl): any; export declare function loadBalancerSslToHclTerraform(struct?: LoadBalancerSslOutputReference | LoadBalancerSsl): any; export declare class LoadBalancerSslOutputReference extends cdktf.ComplexObject { private isEmptyObject; /** * @param terraformResource The parent resource * @param terraformAttribute The attribute on the parent resource this class is referencing */ constructor(terraformResource: cdktf.IInterpolatingParent, terraformAttribute: string); get internalValue(): LoadBalancerSsl | undefined; set internalValue(value: LoadBalancerSsl | undefined); private _certificate?; get certificate(): string; set certificate(value: string); get certificateInput(): string; private _chain?; get chain(): string; set chain(value: string); resetChain(): void; get chainInput(): string; private _privateKey?; get privateKey(): string; set privateKey(value: string); get privateKeyInput(): string; } /** * Represents a {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer vultr_load_balancer} */ export declare class LoadBalancer extends cdktf.TerraformResource { static readonly tfResourceType = "vultr_load_balancer"; /** * Generates CDKTF code for importing a LoadBalancer resource upon running "cdktf plan " * @param scope The scope in which to define this construct * @param importToId The construct id used in the generated config for the LoadBalancer to import * @param importFromId The id of the existing LoadBalancer that should be imported. Refer to the {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the LoadBalancer to import is found */ static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): any; /** * Create a new {@link https://registry.terraform.io/providers/vultr/vultr/2.28.0/docs/resources/load_balancer vultr_load_balancer} Resource * * @param scope The scope in which to define this construct * @param id The scoped construct ID. Must be unique amongst siblings in the same scope * @param options LoadBalancerConfig */ constructor(scope: Construct, id: string, config: LoadBalancerConfig); private _attachedInstances?; get attachedInstances(): string[]; set attachedInstances(value: string[]); resetAttachedInstances(): void; get attachedInstancesInput(): string[]; private _balancingAlgorithm?; get balancingAlgorithm(): string; set balancingAlgorithm(value: string); resetBalancingAlgorithm(): void; get balancingAlgorithmInput(): string; private _cookieName?; get cookieName(): string; set cookieName(value: string); resetCookieName(): void; get cookieNameInput(): string; get hasSsl(): any; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; get ipv4(): any; get ipv6(): any; private _label?; get label(): string; set label(value: string); resetLabel(): void; get labelInput(): string; private _proxyProtocol?; get proxyProtocol(): boolean | cdktf.IResolvable; set proxyProtocol(value: boolean | cdktf.IResolvable); resetProxyProtocol(): void; get proxyProtocolInput(): any; private _region?; get region(): string; set region(value: string); get regionInput(): string; private _sslRedirect?; get sslRedirect(): boolean | cdktf.IResolvable; set sslRedirect(value: boolean | cdktf.IResolvable); resetSslRedirect(): void; get sslRedirectInput(): any; get status(): any; private _vpc?; get vpc(): string; set vpc(value: string); resetVpc(): void; get vpcInput(): string; private _firewallRules; get firewallRules(): LoadBalancerFirewallRulesList; putFirewallRules(value: LoadBalancerFirewallRules[] | cdktf.IResolvable): void; resetFirewallRules(): void; get firewallRulesInput(): any; private _forwardingRules; get forwardingRules(): LoadBalancerForwardingRulesList; putForwardingRules(value: LoadBalancerForwardingRules[] | cdktf.IResolvable): void; get forwardingRulesInput(): any; private _healthCheck; get healthCheck(): LoadBalancerHealthCheckOutputReference; putHealthCheck(value: LoadBalancerHealthCheck): void; resetHealthCheck(): void; get healthCheckInput(): LoadBalancerHealthCheck; private _ssl; get ssl(): LoadBalancerSslOutputReference; putSsl(value: LoadBalancerSsl): void; resetSsl(): void; get sslInput(): LoadBalancerSsl; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }