@cdktf/provider-upcloud
Version:
Prebuilt upcloud Provider for Terraform CDK (cdktf)
280 lines (279 loc) • 15 kB
TypeScript
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: MPL-2.0
*/
import { Construct } from 'constructs';
import * as cdktf from 'cdktf';
export interface LoadbalancerBackendConfig extends cdktf.TerraformMetaArguments {
/**
* UUID of the load balancer to which the backend is connected.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#loadbalancer LoadbalancerBackend#loadbalancer}
*/
readonly loadbalancer: string;
/**
* The name of the backend. Must be unique within the load balancer service.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#name LoadbalancerBackend#name}
*/
readonly name: string;
/**
* Domain name resolver used with dynamic type members.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#resolver_name LoadbalancerBackend#resolver_name}
*/
readonly resolverName?: string;
/**
* properties block
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#properties LoadbalancerBackend#properties}
*/
readonly properties?: LoadbalancerBackendProperties[] | cdktf.IResolvable;
}
export interface LoadbalancerBackendProperties {
/**
* Expected HTTP status code returned by the customer application to mark server as healthy. Ignored for `tcp` `health_check_type`.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#health_check_expected_status LoadbalancerBackend#health_check_expected_status}
*/
readonly healthCheckExpectedStatus?: number;
/**
* Sets how many failed health checks are allowed until the backend member is taken off from the rotation.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#health_check_fall LoadbalancerBackend#health_check_fall}
*/
readonly healthCheckFall?: number;
/**
* Interval between health checks in seconds.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#health_check_interval LoadbalancerBackend#health_check_interval}
*/
readonly healthCheckInterval?: number;
/**
* Sets how many successful health checks are required to put the backend member back into rotation.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#health_check_rise LoadbalancerBackend#health_check_rise}
*/
readonly healthCheckRise?: number;
/**
* Enables certificate verification with the system CA certificate bundle. Works with https scheme in health_check_url, otherwise ignored.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#health_check_tls_verify LoadbalancerBackend#health_check_tls_verify}
*/
readonly healthCheckTlsVerify?: boolean | cdktf.IResolvable;
/**
* Health check type.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#health_check_type LoadbalancerBackend#health_check_type}
*/
readonly healthCheckType?: string;
/**
* Target path for health check HTTP GET requests. Ignored for `tcp` `health_check_type`.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#health_check_url LoadbalancerBackend#health_check_url}
*/
readonly healthCheckUrl?: string;
/**
* Allow HTTP/2 connections to backend members by utilizing ALPN extension of TLS protocol, therefore it can only be enabled when tls_enabled is set to true. Note: members should support HTTP/2 for this setting to work.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#http2_enabled LoadbalancerBackend#http2_enabled}
*/
readonly http2Enabled?: boolean | cdktf.IResolvable;
/**
* Enable outbound proxy protocol by setting the desired version. Defaults to empty string. Empty string disables proxy protocol.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#outbound_proxy_protocol LoadbalancerBackend#outbound_proxy_protocol}
*/
readonly outboundProxyProtocol?: string;
/**
* Sets sticky session cookie name. Empty string disables sticky session.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#sticky_session_cookie_name LoadbalancerBackend#sticky_session_cookie_name}
*/
readonly stickySessionCookieName?: string;
/**
* Backend server timeout in seconds.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#timeout_server LoadbalancerBackend#timeout_server}
*/
readonly timeoutServer?: number;
/**
* Maximum inactivity time on the client and server side for tunnels in seconds.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#timeout_tunnel LoadbalancerBackend#timeout_tunnel}
*/
readonly timeoutTunnel?: number;
/**
* Enables TLS connection from the load balancer to backend servers.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#tls_enabled LoadbalancerBackend#tls_enabled}
*/
readonly tlsEnabled?: boolean | cdktf.IResolvable;
/**
* If enabled, then the system CA certificate bundle will be used for the certificate verification.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#tls_use_system_ca LoadbalancerBackend#tls_use_system_ca}
*/
readonly tlsUseSystemCa?: boolean | cdktf.IResolvable;
/**
* Enables backend servers certificate verification. Please make sure that TLS config with the certificate bundle of type authority attached to the backend or `tls_use_system_ca` enabled. Note: `tls_verify` has preference over `health_check_tls_verify` when `tls_enabled` in true.
*
* Docs at Terraform Registry: {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#tls_verify LoadbalancerBackend#tls_verify}
*/
readonly tlsVerify?: boolean | cdktf.IResolvable;
}
export declare function loadbalancerBackendPropertiesToTerraform(struct?: LoadbalancerBackendProperties | cdktf.IResolvable): any;
export declare function loadbalancerBackendPropertiesToHclTerraform(struct?: LoadbalancerBackendProperties | cdktf.IResolvable): any;
export declare class LoadbalancerBackendPropertiesOutputReference 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(): LoadbalancerBackendProperties | cdktf.IResolvable | undefined;
set internalValue(value: LoadbalancerBackendProperties | cdktf.IResolvable | undefined);
private _healthCheckExpectedStatus?;
get healthCheckExpectedStatus(): number;
set healthCheckExpectedStatus(value: number);
resetHealthCheckExpectedStatus(): void;
get healthCheckExpectedStatusInput(): number | undefined;
private _healthCheckFall?;
get healthCheckFall(): number;
set healthCheckFall(value: number);
resetHealthCheckFall(): void;
get healthCheckFallInput(): number | undefined;
private _healthCheckInterval?;
get healthCheckInterval(): number;
set healthCheckInterval(value: number);
resetHealthCheckInterval(): void;
get healthCheckIntervalInput(): number | undefined;
private _healthCheckRise?;
get healthCheckRise(): number;
set healthCheckRise(value: number);
resetHealthCheckRise(): void;
get healthCheckRiseInput(): number | undefined;
private _healthCheckTlsVerify?;
get healthCheckTlsVerify(): boolean | cdktf.IResolvable;
set healthCheckTlsVerify(value: boolean | cdktf.IResolvable);
resetHealthCheckTlsVerify(): void;
get healthCheckTlsVerifyInput(): boolean | cdktf.IResolvable | undefined;
private _healthCheckType?;
get healthCheckType(): string;
set healthCheckType(value: string);
resetHealthCheckType(): void;
get healthCheckTypeInput(): string | undefined;
private _healthCheckUrl?;
get healthCheckUrl(): string;
set healthCheckUrl(value: string);
resetHealthCheckUrl(): void;
get healthCheckUrlInput(): string | undefined;
private _http2Enabled?;
get http2Enabled(): boolean | cdktf.IResolvable;
set http2Enabled(value: boolean | cdktf.IResolvable);
resetHttp2Enabled(): void;
get http2EnabledInput(): boolean | cdktf.IResolvable | undefined;
private _outboundProxyProtocol?;
get outboundProxyProtocol(): string;
set outboundProxyProtocol(value: string);
resetOutboundProxyProtocol(): void;
get outboundProxyProtocolInput(): string | undefined;
private _stickySessionCookieName?;
get stickySessionCookieName(): string;
set stickySessionCookieName(value: string);
resetStickySessionCookieName(): void;
get stickySessionCookieNameInput(): string | undefined;
private _timeoutServer?;
get timeoutServer(): number;
set timeoutServer(value: number);
resetTimeoutServer(): void;
get timeoutServerInput(): number | undefined;
private _timeoutTunnel?;
get timeoutTunnel(): number;
set timeoutTunnel(value: number);
resetTimeoutTunnel(): void;
get timeoutTunnelInput(): number | undefined;
private _tlsEnabled?;
get tlsEnabled(): boolean | cdktf.IResolvable;
set tlsEnabled(value: boolean | cdktf.IResolvable);
resetTlsEnabled(): void;
get tlsEnabledInput(): boolean | cdktf.IResolvable | undefined;
private _tlsUseSystemCa?;
get tlsUseSystemCa(): boolean | cdktf.IResolvable;
set tlsUseSystemCa(value: boolean | cdktf.IResolvable);
resetTlsUseSystemCa(): void;
get tlsUseSystemCaInput(): boolean | cdktf.IResolvable | undefined;
private _tlsVerify?;
get tlsVerify(): boolean | cdktf.IResolvable;
set tlsVerify(value: boolean | cdktf.IResolvable);
resetTlsVerify(): void;
get tlsVerifyInput(): boolean | cdktf.IResolvable | undefined;
}
export declare class LoadbalancerBackendPropertiesList extends cdktf.ComplexList {
protected terraformResource: cdktf.IInterpolatingParent;
protected terraformAttribute: string;
protected wrapsSet: boolean;
internalValue?: LoadbalancerBackendProperties[] | 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): LoadbalancerBackendPropertiesOutputReference;
}
/**
* Represents a {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend upcloud_loadbalancer_backend}
*/
export declare class LoadbalancerBackend extends cdktf.TerraformResource {
static readonly tfResourceType = "upcloud_loadbalancer_backend";
/**
* Generates CDKTF code for importing a LoadbalancerBackend resource upon running "cdktf plan <stack-name>"
* @param scope The scope in which to define this construct
* @param importToId The construct id used in the generated config for the LoadbalancerBackend to import
* @param importFromId The id of the existing LoadbalancerBackend that should be imported. Refer to the {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend#import import section} in the documentation of this resource for the id to use
* @param provider? Optional instance of the provider where the LoadbalancerBackend to import is found
*/
static generateConfigForImport(scope: Construct, importToId: string, importFromId: string, provider?: cdktf.TerraformProvider): cdktf.ImportableResource;
/**
* Create a new {@link https://registry.terraform.io/providers/upcloudltd/upcloud/5.32.0/docs/resources/loadbalancer_backend upcloud_loadbalancer_backend} 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 LoadbalancerBackendConfig
*/
constructor(scope: Construct, id: string, config: LoadbalancerBackendConfig);
get id(): string;
private _loadbalancer?;
get loadbalancer(): string;
set loadbalancer(value: string);
get loadbalancerInput(): string | undefined;
get members(): string[];
private _name?;
get name(): string;
set name(value: string);
get nameInput(): string | undefined;
private _resolverName?;
get resolverName(): string;
set resolverName(value: string);
resetResolverName(): void;
get resolverNameInput(): string | undefined;
get tlsConfigs(): string[];
private _properties;
get properties(): LoadbalancerBackendPropertiesList;
putProperties(value: LoadbalancerBackendProperties[] | cdktf.IResolvable): void;
resetProperties(): void;
get propertiesInput(): cdktf.IResolvable | LoadbalancerBackendProperties[] | undefined;
protected synthesizeAttributes(): {
[name: string]: any;
};
protected synthesizeHclAttributes(): {
[name: string]: any;
};
}