import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface LbpoolConfig extends cdktf.TerraformMetaArguments { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#id Lbpool#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; /** * Available values is 'ROUND_ROBIN', 'LEAST_CONNECTIONS', 'SOURCE_IP' * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#lb_algorithm Lbpool#lb_algorithm} */ readonly lbAlgorithm: string; /** * ID of the target listener associated with load balancer to attach newly created pool. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#listener_id Lbpool#listener_id} */ readonly listenerId?: string; /** * ID of the target load balancer to attach newly created pool. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#loadbalancer_id Lbpool#loadbalancer_id} */ readonly loadbalancerId?: string; /** * Pool name. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#name Lbpool#name} */ readonly name: string; /** * ID of the desired project to create load balancer pool in. Alternative for `project_name`. One of them should be specified. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#project_id Lbpool#project_id} */ readonly projectId?: number; /** * Name of the desired project to create load balancer pool in. Alternative for `project_id`. One of them should be specified. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#project_name Lbpool#project_name} */ readonly projectName?: string; /** * Available values are 'HTTP', 'HTTPS', 'TCP', 'UDP', 'PROXY', 'PROXYV2' * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#protocol Lbpool#protocol} */ readonly protocol: string; /** * ID of the desired region to create load balancer pool in. Alternative for `region_name`. One of them should be specified. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#region_id Lbpool#region_id} */ readonly regionId?: number; /** * Name of the desired region to create load balancer pool in. Alternative for `region_id`. One of them should be specified. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#region_name Lbpool#region_name} */ readonly regionName?: string; /** * health_monitor block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#health_monitor Lbpool#health_monitor} */ readonly healthMonitor?: LbpoolHealthMonitor; /** * session_persistence block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#session_persistence Lbpool#session_persistence} */ readonly sessionPersistence?: LbpoolSessionPersistence; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#timeouts Lbpool#timeouts} */ readonly timeouts?: LbpoolTimeouts; } export interface LbpoolHealthMonitor { /** * The time, in seconds, between sending probes to members. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#delay Lbpool#delay} */ readonly delay: number; /** * The list of HTTP status codes expected in response from the member to declare it healthy. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#expected_codes Lbpool#expected_codes} */ readonly expectedCodes?: string; /** * The HTTP method that the health monitor uses for requests. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#http_method Lbpool#http_method} */ readonly httpMethod?: string; /** * Health Monitor ID. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#id Lbpool#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; /** * The number of successful checks before changing the operating status of the member to ONLINE. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#max_retries Lbpool#max_retries} */ readonly maxRetries: number; /** * The number of allowed check failures before changing the operating status of the member to ERROR. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#max_retries_down Lbpool#max_retries_down} */ readonly maxRetriesDown?: number; /** * The maximum time, in seconds, that a monitor waits to connect before it times out. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#timeout Lbpool#timeout} */ readonly timeout: number; /** * Available values is 'HTTP', 'HTTPS', 'PING', 'TCP', 'TLS-HELLO', 'UDP-CONNECT * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#type Lbpool#type} */ readonly type: string; /** * The HTTP URL path of the request sent by the monitor to test the health of a backend member. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#url_path Lbpool#url_path} */ readonly urlPath?: string; } export declare function lbpoolHealthMonitorToTerraform(struct?: LbpoolHealthMonitorOutputReference | LbpoolHealthMonitor): any; export declare function lbpoolHealthMonitorToHclTerraform(struct?: LbpoolHealthMonitorOutputReference | LbpoolHealthMonitor): any; export declare class LbpoolHealthMonitorOutputReference 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(): LbpoolHealthMonitor | undefined; set internalValue(value: LbpoolHealthMonitor | undefined); private _delay?; get delay(): number; set delay(value: number); get delayInput(): number; private _expectedCodes?; get expectedCodes(): string; set expectedCodes(value: string); resetExpectedCodes(): void; get expectedCodesInput(): string; private _httpMethod?; get httpMethod(): string; set httpMethod(value: string); resetHttpMethod(): void; get httpMethodInput(): string; private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; private _maxRetries?; get maxRetries(): number; set maxRetries(value: number); get maxRetriesInput(): number; private _maxRetriesDown?; get maxRetriesDown(): number; set maxRetriesDown(value: number); resetMaxRetriesDown(): void; get maxRetriesDownInput(): number; private _timeout?; get timeout(): number; set timeout(value: number); get timeoutInput(): number; private _type?; get type(): string; set type(value: string); get typeInput(): string; private _urlPath?; get urlPath(): string; set urlPath(value: string); resetUrlPath(): void; get urlPathInput(): string; } export interface LbpoolSessionPersistence { /** * The name of the application cookie to use for session persistence. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#cookie_name Lbpool#cookie_name} */ readonly cookieName?: string; /** * The netmask used to determine SCTP or UDP SOURCE_IP session persistence. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#persistence_granularity Lbpool#persistence_granularity} */ readonly persistenceGranularity?: string; /** * The timeout, in seconds, after which a SCTP or UDP flow may be rescheduled to a different member. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#persistence_timeout Lbpool#persistence_timeout} */ readonly persistenceTimeout?: number; /** * One of: 'APP_COOKIE' (an application supplied cookie), 'HTTP_COOKIE' (a cookie created by the load balancer), 'SOURCE_IP' (the source IP address). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#type Lbpool#type} */ readonly type: string; } export declare function lbpoolSessionPersistenceToTerraform(struct?: LbpoolSessionPersistenceOutputReference | LbpoolSessionPersistence): any; export declare function lbpoolSessionPersistenceToHclTerraform(struct?: LbpoolSessionPersistenceOutputReference | LbpoolSessionPersistence): any; export declare class LbpoolSessionPersistenceOutputReference 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(): LbpoolSessionPersistence | undefined; set internalValue(value: LbpoolSessionPersistence | undefined); private _cookieName?; get cookieName(): string; set cookieName(value: string); resetCookieName(): void; get cookieNameInput(): string; private _persistenceGranularity?; get persistenceGranularity(): string; set persistenceGranularity(value: string); resetPersistenceGranularity(): void; get persistenceGranularityInput(): string; private _persistenceTimeout?; get persistenceTimeout(): number; set persistenceTimeout(value: number); resetPersistenceTimeout(): void; get persistenceTimeoutInput(): number; private _type?; get type(): string; set type(value: string); get typeInput(): string; } export interface LbpoolTimeouts { /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#create Lbpool#create} */ readonly create?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#delete Lbpool#delete} */ readonly delete?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#update Lbpool#update} */ readonly update?: string; } export declare function lbpoolTimeoutsToTerraform(struct?: LbpoolTimeouts | cdktf.IResolvable): any; export declare function lbpoolTimeoutsToHclTerraform(struct?: LbpoolTimeouts | cdktf.IResolvable): any; export declare class LbpoolTimeoutsOutputReference extends cdktf.ComplexObject { private isEmptyObject; private resolvableValue?; /** * @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(): LbpoolTimeouts | cdktf.IResolvable | undefined; set internalValue(value: LbpoolTimeouts | cdktf.IResolvable | undefined); private _create?; get create(): string; set create(value: string); resetCreate(): void; get createInput(): string; private _delete?; get delete(): string; set delete(value: string); resetDelete(): void; get deleteInput(): string; private _update?; get update(): string; set update(value: string); resetUpdate(): void; get updateInput(): string; } /** * Represents a {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool gcore_lbpool} */ export declare class Lbpool extends cdktf.TerraformResource { static readonly tfResourceType = "gcore_lbpool"; /** * Generates CDKTF code for importing a Lbpool 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 Lbpool to import * @param importFromId The id of the existing Lbpool that should be imported. Refer to the {@link https://registry.terraform.io/providers/g-core/gcore/0.32.5/docs/resources/lbpool#import import section} in the documentation of this resource for the id to use * @param provider? Optional instance of the provider where the Lbpool 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/g-core/gcore/0.32.5/docs/resources/lbpool gcore_lbpool} 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 LbpoolConfig */ constructor(scope: Construct, id: string, config: LbpoolConfig); private _id?; get id(): string; set id(value: string); resetId(): void; get idInput(): string; get lastUpdated(): any; private _lbAlgorithm?; get lbAlgorithm(): string; set lbAlgorithm(value: string); get lbAlgorithmInput(): string; private _listenerId?; get listenerId(): string; set listenerId(value: string); resetListenerId(): void; get listenerIdInput(): string; private _loadbalancerId?; get loadbalancerId(): string; set loadbalancerId(value: string); resetLoadbalancerId(): void; get loadbalancerIdInput(): string; private _name?; get name(): string; set name(value: string); get nameInput(): string; private _projectId?; get projectId(): number; set projectId(value: number); resetProjectId(): void; get projectIdInput(): number; private _projectName?; get projectName(): string; set projectName(value: string); resetProjectName(): void; get projectNameInput(): string; private _protocol?; get protocol(): string; set protocol(value: string); get protocolInput(): string; private _regionId?; get regionId(): number; set regionId(value: number); resetRegionId(): void; get regionIdInput(): number; private _regionName?; get regionName(): string; set regionName(value: string); resetRegionName(): void; get regionNameInput(): string; private _healthMonitor; get healthMonitor(): LbpoolHealthMonitorOutputReference; putHealthMonitor(value: LbpoolHealthMonitor): void; resetHealthMonitor(): void; get healthMonitorInput(): LbpoolHealthMonitor; private _sessionPersistence; get sessionPersistence(): LbpoolSessionPersistenceOutputReference; putSessionPersistence(value: LbpoolSessionPersistence): void; resetSessionPersistence(): void; get sessionPersistenceInput(): LbpoolSessionPersistence; private _timeouts; get timeouts(): LbpoolTimeoutsOutputReference; putTimeouts(value: LbpoolTimeouts): void; resetTimeouts(): void; get timeoutsInput(): any; protected synthesizeAttributes(): { [name: string]: any; }; protected synthesizeHclAttributes(): { [name: string]: any; }; }