UNPKG

@cdktf/provider-google

Version:

Prebuilt google Provider for Terraform CDK (cdktf)

892 lines 92.6 kB
/** * Copyright (c) HashiCorp, Inc. * SPDX-License-Identifier: MPL-2.0 */ import { Construct } from 'constructs'; import * as cdktf from 'cdktf'; export interface ComputeRegionBackendServiceConfig extends cdktf.TerraformMetaArguments { /** * Lifetime of cookies in seconds if session_affinity is * GENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts * only until the end of the browser session (or equivalent). The * maximum allowed value for TTL is one day. * * When the load balancing scheme is INTERNAL, this field is not used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#affinity_cookie_ttl_sec ComputeRegionBackendService#affinity_cookie_ttl_sec} */ readonly affinityCookieTtlSec?: number; /** * Time for which instance will be drained (not accept new * connections, but still work to finish started). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#connection_draining_timeout_sec ComputeRegionBackendService#connection_draining_timeout_sec} */ readonly connectionDrainingTimeoutSec?: number; /** * An optional description of this resource. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#description ComputeRegionBackendService#description} */ readonly description?: string; /** * If true, enable Cloud CDN for this RegionBackendService. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#enable_cdn ComputeRegionBackendService#enable_cdn} */ readonly enableCdn?: boolean | cdktf.IResolvable; /** * The set of URLs to HealthCheck resources for health checking * this RegionBackendService. Currently at most one health * check can be specified. * * A health check must be specified unless the backend service uses an internet * or serverless NEG as a backend. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#health_checks ComputeRegionBackendService#health_checks} */ readonly healthChecks?: string[]; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#id ComputeRegionBackendService#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; /** * Specifies preference of traffic to the backend (from the proxy and from the client for proxyless gRPC). Possible values: ["IPV4_ONLY", "PREFER_IPV6", "IPV6_ONLY"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#ip_address_selection_policy ComputeRegionBackendService#ip_address_selection_policy} */ readonly ipAddressSelectionPolicy?: string; /** * Indicates what kind of load balancing this regional backend service * will be used for. A backend service created for one type of load * balancing cannot be used with the other(s). For more information, refer to * [Choosing a load balancer](https://cloud.google.com/load-balancing/docs/backend-service). Default value: "INTERNAL" Possible values: ["EXTERNAL", "EXTERNAL_MANAGED", "INTERNAL", "INTERNAL_MANAGED"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#load_balancing_scheme ComputeRegionBackendService#load_balancing_scheme} */ readonly loadBalancingScheme?: string; /** * The load balancing algorithm used within the scope of the locality. * The possible values are: * * * 'ROUND_ROBIN': This is a simple policy in which each healthy backend * is selected in round robin order. * * * 'LEAST_REQUEST': An O(1) algorithm which selects two random healthy * hosts and picks the host which has fewer active requests. * * * 'RING_HASH': The ring/modulo hash load balancer implements consistent * hashing to backends. The algorithm has the property that the * addition/removal of a host from a set of N hosts only affects * 1/N of the requests. * * * 'RANDOM': The load balancer selects a random healthy host. * * * 'ORIGINAL_DESTINATION': Backend host is selected based on the client * connection metadata, i.e., connections are opened * to the same address as the destination address of * the incoming connection before the connection * was redirected to the load balancer. * * * 'MAGLEV': used as a drop in replacement for the ring hash load balancer. * Maglev is not as stable as ring hash but has faster table lookup * build times and host selection times. For more information about * Maglev, refer to https://ai.google/research/pubs/pub44824 * * * 'WEIGHTED_MAGLEV': Per-instance weighted Load Balancing via health check * reported weights. Only applicable to loadBalancingScheme * EXTERNAL. If set, the Backend Service must * configure a non legacy HTTP-based Health Check, and * health check replies are expected to contain * non-standard HTTP response header field * X-Load-Balancing-Endpoint-Weight to specify the * per-instance weights. If set, Load Balancing is weight * based on the per-instance weights reported in the last * processed health check replies, as long as every * instance either reported a valid weight or had * UNAVAILABLE_WEIGHT. Otherwise, Load Balancing remains * equal-weight. * * locality_lb_policy is applicable to either: * * * A regional backend service with the service_protocol set to HTTP, HTTPS, or HTTP2, * and loadBalancingScheme set to INTERNAL_MANAGED. * * A global backend service with the load_balancing_scheme set to INTERNAL_SELF_MANAGED. * * A regional backend service with loadBalancingScheme set to EXTERNAL (External Network * Load Balancing). Only MAGLEV and WEIGHTED_MAGLEV values are possible for External * Network Load Balancing. The default is MAGLEV. * * If session_affinity is not NONE, and locality_lb_policy is not set to MAGLEV, WEIGHTED_MAGLEV, * or RING_HASH, session affinity settings will not take effect. * * Only ROUND_ROBIN and RING_HASH are supported when the backend service is referenced * by a URL map that is bound to target gRPC proxy that has validate_for_proxyless * field set to true. Possible values: ["ROUND_ROBIN", "LEAST_REQUEST", "RING_HASH", "RANDOM", "ORIGINAL_DESTINATION", "MAGLEV", "WEIGHTED_MAGLEV"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#locality_lb_policy ComputeRegionBackendService#locality_lb_policy} */ readonly localityLbPolicy?: string; /** * Name of the resource. Provided by the client when the resource is * created. The name must be 1-63 characters long, and comply with * RFC1035. Specifically, the name must be 1-63 characters long and match * the regular expression '[a-z]([-a-z0-9]*[a-z0-9])?' which means the * first character must be a lowercase letter, and all following * characters must be a dash, lowercase letter, or digit, except the last * character, which cannot be a dash. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#name ComputeRegionBackendService#name} */ readonly name: string; /** * The URL of the network to which this backend service belongs. * This field can only be specified when the load balancing scheme is set to INTERNAL. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#network ComputeRegionBackendService#network} */ readonly network?: string; /** * A named port on a backend instance group representing the port for * communication to the backend VMs in that group. Required when the * loadBalancingScheme is EXTERNAL, EXTERNAL_MANAGED, INTERNAL_MANAGED, or INTERNAL_SELF_MANAGED * and the backends are instance groups. The named port must be defined on each * backend instance group. This parameter has no meaning if the backends are NEGs. API sets a * default of "http" if not given. * Must be omitted when the loadBalancingScheme is INTERNAL (Internal TCP/UDP Load Balancing). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#port_name ComputeRegionBackendService#port_name} */ readonly portName?: string; /** * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#project ComputeRegionBackendService#project} */ readonly project?: string; /** * The protocol this RegionBackendService uses to communicate with backends. * The default is HTTP. **NOTE**: HTTP2 is only valid for beta HTTP/2 load balancer * types and may result in errors if used with the GA API. Possible values: ["HTTP", "HTTPS", "HTTP2", "SSL", "TCP", "UDP", "GRPC", "UNSPECIFIED"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#protocol ComputeRegionBackendService#protocol} */ readonly protocol?: string; /** * The Region in which the created backend service should reside. * If it is not provided, the provider region is used. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#region ComputeRegionBackendService#region} */ readonly region?: string; /** * Type of session affinity to use. The default is NONE. Session affinity is * not applicable if the protocol is UDP. Possible values: ["NONE", "CLIENT_IP", "CLIENT_IP_PORT_PROTO", "CLIENT_IP_PROTO", "GENERATED_COOKIE", "HEADER_FIELD", "HTTP_COOKIE", "CLIENT_IP_NO_DESTINATION", "STRONG_COOKIE_AFFINITY"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#session_affinity ComputeRegionBackendService#session_affinity} */ readonly sessionAffinity?: string; /** * The backend service timeout has a different meaning depending on the type of load balancer. * For more information see, [Backend service settings](https://cloud.google.com/compute/docs/reference/rest/v1/backendServices). * The default is 30 seconds. * The full range of timeout values allowed goes from 1 through 2,147,483,647 seconds. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#timeout_sec ComputeRegionBackendService#timeout_sec} */ readonly timeoutSec?: number; /** * backend block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#backend ComputeRegionBackendService#backend} */ readonly backend?: ComputeRegionBackendServiceBackend[] | cdktf.IResolvable; /** * cdn_policy block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#cdn_policy ComputeRegionBackendService#cdn_policy} */ readonly cdnPolicy?: ComputeRegionBackendServiceCdnPolicy; /** * circuit_breakers block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#circuit_breakers ComputeRegionBackendService#circuit_breakers} */ readonly circuitBreakers?: ComputeRegionBackendServiceCircuitBreakers; /** * consistent_hash block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#consistent_hash ComputeRegionBackendService#consistent_hash} */ readonly consistentHash?: ComputeRegionBackendServiceConsistentHash; /** * failover_policy block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#failover_policy ComputeRegionBackendService#failover_policy} */ readonly failoverPolicy?: ComputeRegionBackendServiceFailoverPolicy; /** * iap block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#iap ComputeRegionBackendService#iap} */ readonly iap?: ComputeRegionBackendServiceIap; /** * log_config block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#log_config ComputeRegionBackendService#log_config} */ readonly logConfig?: ComputeRegionBackendServiceLogConfig; /** * outlier_detection block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#outlier_detection ComputeRegionBackendService#outlier_detection} */ readonly outlierDetection?: ComputeRegionBackendServiceOutlierDetection; /** * strong_session_affinity_cookie block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#strong_session_affinity_cookie ComputeRegionBackendService#strong_session_affinity_cookie} */ readonly strongSessionAffinityCookie?: ComputeRegionBackendServiceStrongSessionAffinityCookie; /** * timeouts block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#timeouts ComputeRegionBackendService#timeouts} */ readonly timeouts?: ComputeRegionBackendServiceTimeouts; } export interface ComputeRegionBackendServiceBackend { /** * Specifies the balancing mode for this backend. * * See the [Backend Services Overview](https://cloud.google.com/load-balancing/docs/backend-service#balancing-mode) * for an explanation of load balancing modes. Default value: "UTILIZATION" Possible values: ["UTILIZATION", "RATE", "CONNECTION"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#balancing_mode ComputeRegionBackendService#balancing_mode} */ readonly balancingMode?: string; /** * A multiplier applied to the group's maximum servicing capacity * (based on UTILIZATION, RATE or CONNECTION). * * ~>**NOTE**: This field cannot be set for * INTERNAL region backend services (default loadBalancingScheme), * but is required for non-INTERNAL backend service. The total * capacity_scaler for all backends must be non-zero. * * A setting of 0 means the group is completely drained, offering * 0% of its available Capacity. Valid range is [0.0,1.0]. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#capacity_scaler ComputeRegionBackendService#capacity_scaler} */ readonly capacityScaler?: number; /** * An optional description of this resource. * Provide this property when you create the resource. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#description ComputeRegionBackendService#description} */ readonly description?: string; /** * This field designates whether this is a failover backend. More * than one failover backend can be configured for a given RegionBackendService. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#failover ComputeRegionBackendService#failover} */ readonly failover?: boolean | cdktf.IResolvable; /** * The fully-qualified URL of an Instance Group or Network Endpoint * Group resource. In case of instance group this defines the list * of instances that serve traffic. Member virtual machine * instances from each instance group must live in the same zone as * the instance group itself. No two backends in a backend service * are allowed to use same Instance Group resource. * * For Network Endpoint Groups this defines list of endpoints. All * endpoints of Network Endpoint Group must be hosted on instances * located in the same zone as the Network Endpoint Group. * * Backend services cannot mix Instance Group and * Network Endpoint Group backends. * * When the 'load_balancing_scheme' is INTERNAL, only instance groups * are supported. * * Note that you must specify an Instance Group or Network Endpoint * Group resource using the fully-qualified URL, rather than a * partial URL. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#group ComputeRegionBackendService#group} */ readonly group: string; /** * The max number of simultaneous connections for the group. Can * be used with either CONNECTION or UTILIZATION balancing modes. * Cannot be set for INTERNAL backend services. * * For CONNECTION mode, either maxConnections or one * of maxConnectionsPerInstance or maxConnectionsPerEndpoint, * as appropriate for group type, must be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#max_connections ComputeRegionBackendService#max_connections} */ readonly maxConnections?: number; /** * The max number of simultaneous connections that a single backend * network endpoint can handle. Cannot be set * for INTERNAL backend services. * * This is used to calculate the capacity of the group. Can be * used in either CONNECTION or UTILIZATION balancing modes. For * CONNECTION mode, either maxConnections or * maxConnectionsPerEndpoint must be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#max_connections_per_endpoint ComputeRegionBackendService#max_connections_per_endpoint} */ readonly maxConnectionsPerEndpoint?: number; /** * The max number of simultaneous connections that a single * backend instance can handle. Cannot be set for INTERNAL backend * services. * * This is used to calculate the capacity of the group. * Can be used in either CONNECTION or UTILIZATION balancing modes. * For CONNECTION mode, either maxConnections or * maxConnectionsPerInstance must be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#max_connections_per_instance ComputeRegionBackendService#max_connections_per_instance} */ readonly maxConnectionsPerInstance?: number; /** * The max requests per second (RPS) of the group. Cannot be set * for INTERNAL backend services. * * Can be used with either RATE or UTILIZATION balancing modes, * but required if RATE mode. Either maxRate or one * of maxRatePerInstance or maxRatePerEndpoint, as appropriate for * group type, must be set. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#max_rate ComputeRegionBackendService#max_rate} */ readonly maxRate?: number; /** * The max requests per second (RPS) that a single backend network * endpoint can handle. This is used to calculate the capacity of * the group. Can be used in either balancing mode. For RATE mode, * either maxRate or maxRatePerEndpoint must be set. Cannot be set * for INTERNAL backend services. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#max_rate_per_endpoint ComputeRegionBackendService#max_rate_per_endpoint} */ readonly maxRatePerEndpoint?: number; /** * The max requests per second (RPS) that a single backend * instance can handle. This is used to calculate the capacity of * the group. Can be used in either balancing mode. For RATE mode, * either maxRate or maxRatePerInstance must be set. Cannot be set * for INTERNAL backend services. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#max_rate_per_instance ComputeRegionBackendService#max_rate_per_instance} */ readonly maxRatePerInstance?: number; /** * Used when balancingMode is UTILIZATION. This ratio defines the * CPU utilization target for the group. Valid range is [0.0, 1.0]. * Cannot be set for INTERNAL backend services. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#max_utilization ComputeRegionBackendService#max_utilization} */ readonly maxUtilization?: number; } export declare function computeRegionBackendServiceBackendToTerraform(struct?: ComputeRegionBackendServiceBackend | cdktf.IResolvable): any; export declare function computeRegionBackendServiceBackendToHclTerraform(struct?: ComputeRegionBackendServiceBackend | cdktf.IResolvable): any; export declare class ComputeRegionBackendServiceBackendOutputReference 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(): ComputeRegionBackendServiceBackend | cdktf.IResolvable | undefined; set internalValue(value: ComputeRegionBackendServiceBackend | cdktf.IResolvable | undefined); private _balancingMode?; get balancingMode(): string; set balancingMode(value: string); resetBalancingMode(): void; get balancingModeInput(): string | undefined; private _capacityScaler?; get capacityScaler(): number; set capacityScaler(value: number); resetCapacityScaler(): void; get capacityScalerInput(): number | undefined; private _description?; get description(): string; set description(value: string); resetDescription(): void; get descriptionInput(): string | undefined; private _failover?; get failover(): boolean | cdktf.IResolvable; set failover(value: boolean | cdktf.IResolvable); resetFailover(): void; get failoverInput(): boolean | cdktf.IResolvable | undefined; private _group?; get group(): string; set group(value: string); get groupInput(): string | undefined; private _maxConnections?; get maxConnections(): number; set maxConnections(value: number); resetMaxConnections(): void; get maxConnectionsInput(): number | undefined; private _maxConnectionsPerEndpoint?; get maxConnectionsPerEndpoint(): number; set maxConnectionsPerEndpoint(value: number); resetMaxConnectionsPerEndpoint(): void; get maxConnectionsPerEndpointInput(): number | undefined; private _maxConnectionsPerInstance?; get maxConnectionsPerInstance(): number; set maxConnectionsPerInstance(value: number); resetMaxConnectionsPerInstance(): void; get maxConnectionsPerInstanceInput(): number | undefined; private _maxRate?; get maxRate(): number; set maxRate(value: number); resetMaxRate(): void; get maxRateInput(): number | undefined; private _maxRatePerEndpoint?; get maxRatePerEndpoint(): number; set maxRatePerEndpoint(value: number); resetMaxRatePerEndpoint(): void; get maxRatePerEndpointInput(): number | undefined; private _maxRatePerInstance?; get maxRatePerInstance(): number; set maxRatePerInstance(value: number); resetMaxRatePerInstance(): void; get maxRatePerInstanceInput(): number | undefined; private _maxUtilization?; get maxUtilization(): number; set maxUtilization(value: number); resetMaxUtilization(): void; get maxUtilizationInput(): number | undefined; } export declare class ComputeRegionBackendServiceBackendList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ComputeRegionBackendServiceBackend[] | 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): ComputeRegionBackendServiceBackendOutputReference; } export interface ComputeRegionBackendServiceCdnPolicyCacheKeyPolicy { /** * If true requests to different hosts will be cached separately. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#include_host ComputeRegionBackendService#include_host} */ readonly includeHost?: boolean | cdktf.IResolvable; /** * Names of cookies to include in cache keys. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#include_named_cookies ComputeRegionBackendService#include_named_cookies} */ readonly includeNamedCookies?: string[]; /** * If true, http and https requests will be cached separately. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#include_protocol ComputeRegionBackendService#include_protocol} */ readonly includeProtocol?: boolean | cdktf.IResolvable; /** * If true, include query string parameters in the cache key * according to query_string_whitelist and * query_string_blacklist. If neither is set, the entire query * string will be included. * * If false, the query string will be excluded from the cache * key entirely. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#include_query_string ComputeRegionBackendService#include_query_string} */ readonly includeQueryString?: boolean | cdktf.IResolvable; /** * Names of query string parameters to exclude in cache keys. * * All other parameters will be included. Either specify * query_string_whitelist or query_string_blacklist, not both. * '&' and '=' will be percent encoded and not treated as * delimiters. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#query_string_blacklist ComputeRegionBackendService#query_string_blacklist} */ readonly queryStringBlacklist?: string[]; /** * Names of query string parameters to include in cache keys. * * All other parameters will be excluded. Either specify * query_string_whitelist or query_string_blacklist, not both. * '&' and '=' will be percent encoded and not treated as * delimiters. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#query_string_whitelist ComputeRegionBackendService#query_string_whitelist} */ readonly queryStringWhitelist?: string[]; } export declare function computeRegionBackendServiceCdnPolicyCacheKeyPolicyToTerraform(struct?: ComputeRegionBackendServiceCdnPolicyCacheKeyPolicyOutputReference | ComputeRegionBackendServiceCdnPolicyCacheKeyPolicy): any; export declare function computeRegionBackendServiceCdnPolicyCacheKeyPolicyToHclTerraform(struct?: ComputeRegionBackendServiceCdnPolicyCacheKeyPolicyOutputReference | ComputeRegionBackendServiceCdnPolicyCacheKeyPolicy): any; export declare class ComputeRegionBackendServiceCdnPolicyCacheKeyPolicyOutputReference 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(): ComputeRegionBackendServiceCdnPolicyCacheKeyPolicy | undefined; set internalValue(value: ComputeRegionBackendServiceCdnPolicyCacheKeyPolicy | undefined); private _includeHost?; get includeHost(): boolean | cdktf.IResolvable; set includeHost(value: boolean | cdktf.IResolvable); resetIncludeHost(): void; get includeHostInput(): boolean | cdktf.IResolvable | undefined; private _includeNamedCookies?; get includeNamedCookies(): string[]; set includeNamedCookies(value: string[]); resetIncludeNamedCookies(): void; get includeNamedCookiesInput(): string[] | undefined; private _includeProtocol?; get includeProtocol(): boolean | cdktf.IResolvable; set includeProtocol(value: boolean | cdktf.IResolvable); resetIncludeProtocol(): void; get includeProtocolInput(): boolean | cdktf.IResolvable | undefined; private _includeQueryString?; get includeQueryString(): boolean | cdktf.IResolvable; set includeQueryString(value: boolean | cdktf.IResolvable); resetIncludeQueryString(): void; get includeQueryStringInput(): boolean | cdktf.IResolvable | undefined; private _queryStringBlacklist?; get queryStringBlacklist(): string[]; set queryStringBlacklist(value: string[]); resetQueryStringBlacklist(): void; get queryStringBlacklistInput(): string[] | undefined; private _queryStringWhitelist?; get queryStringWhitelist(): string[]; set queryStringWhitelist(value: string[]); resetQueryStringWhitelist(): void; get queryStringWhitelistInput(): string[] | undefined; } export interface ComputeRegionBackendServiceCdnPolicyNegativeCachingPolicy { /** * The HTTP status code to define a TTL against. Only HTTP status codes 300, 301, 308, 404, 405, 410, 421, 451 and 501 * can be specified as values, and you cannot specify a status code more than once. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#code ComputeRegionBackendService#code} */ readonly code?: number; } export declare function computeRegionBackendServiceCdnPolicyNegativeCachingPolicyToTerraform(struct?: ComputeRegionBackendServiceCdnPolicyNegativeCachingPolicy | cdktf.IResolvable): any; export declare function computeRegionBackendServiceCdnPolicyNegativeCachingPolicyToHclTerraform(struct?: ComputeRegionBackendServiceCdnPolicyNegativeCachingPolicy | cdktf.IResolvable): any; export declare class ComputeRegionBackendServiceCdnPolicyNegativeCachingPolicyOutputReference 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(): ComputeRegionBackendServiceCdnPolicyNegativeCachingPolicy | cdktf.IResolvable | undefined; set internalValue(value: ComputeRegionBackendServiceCdnPolicyNegativeCachingPolicy | cdktf.IResolvable | undefined); private _code?; get code(): number; set code(value: number); resetCode(): void; get codeInput(): number | undefined; } export declare class ComputeRegionBackendServiceCdnPolicyNegativeCachingPolicyList extends cdktf.ComplexList { protected terraformResource: cdktf.IInterpolatingParent; protected terraformAttribute: string; protected wrapsSet: boolean; internalValue?: ComputeRegionBackendServiceCdnPolicyNegativeCachingPolicy[] | 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): ComputeRegionBackendServiceCdnPolicyNegativeCachingPolicyOutputReference; } export interface ComputeRegionBackendServiceCdnPolicy { /** * Specifies the cache setting for all responses from this backend. * The possible values are: USE_ORIGIN_HEADERS, FORCE_CACHE_ALL and CACHE_ALL_STATIC Possible values: ["USE_ORIGIN_HEADERS", "FORCE_CACHE_ALL", "CACHE_ALL_STATIC"] * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#cache_mode ComputeRegionBackendService#cache_mode} */ readonly cacheMode?: string; /** * Specifies the maximum allowed TTL for cached content served by this origin. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#client_ttl ComputeRegionBackendService#client_ttl} */ readonly clientTtl?: number; /** * Specifies the default TTL for cached content served by this origin for responses * that do not have an existing valid TTL (max-age or s-max-age). * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#default_ttl ComputeRegionBackendService#default_ttl} */ readonly defaultTtl?: number; /** * Specifies the maximum allowed TTL for cached content served by this origin. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#max_ttl ComputeRegionBackendService#max_ttl} */ readonly maxTtl?: number; /** * Negative caching allows per-status code TTLs to be set, in order to apply fine-grained caching for common errors or redirects. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#negative_caching ComputeRegionBackendService#negative_caching} */ readonly negativeCaching?: boolean | cdktf.IResolvable; /** * Serve existing content from the cache (if available) when revalidating content with the origin, or when an error is encountered when refreshing the cache. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#serve_while_stale ComputeRegionBackendService#serve_while_stale} */ readonly serveWhileStale?: number; /** * Maximum number of seconds the response to a signed URL request * will be considered fresh, defaults to 1hr (3600s). After this * time period, the response will be revalidated before * being served. * * When serving responses to signed URL requests, Cloud CDN will * internally behave as though all responses from this backend had a * "Cache-Control: public, max-age=[TTL]" header, regardless of any * existing Cache-Control header. The actual headers served in * responses will not be altered. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#signed_url_cache_max_age_sec ComputeRegionBackendService#signed_url_cache_max_age_sec} */ readonly signedUrlCacheMaxAgeSec?: number; /** * cache_key_policy block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#cache_key_policy ComputeRegionBackendService#cache_key_policy} */ readonly cacheKeyPolicy?: ComputeRegionBackendServiceCdnPolicyCacheKeyPolicy; /** * negative_caching_policy block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#negative_caching_policy ComputeRegionBackendService#negative_caching_policy} */ readonly negativeCachingPolicy?: ComputeRegionBackendServiceCdnPolicyNegativeCachingPolicy[] | cdktf.IResolvable; } export declare function computeRegionBackendServiceCdnPolicyToTerraform(struct?: ComputeRegionBackendServiceCdnPolicyOutputReference | ComputeRegionBackendServiceCdnPolicy): any; export declare function computeRegionBackendServiceCdnPolicyToHclTerraform(struct?: ComputeRegionBackendServiceCdnPolicyOutputReference | ComputeRegionBackendServiceCdnPolicy): any; export declare class ComputeRegionBackendServiceCdnPolicyOutputReference 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(): ComputeRegionBackendServiceCdnPolicy | undefined; set internalValue(value: ComputeRegionBackendServiceCdnPolicy | undefined); private _cacheMode?; get cacheMode(): string; set cacheMode(value: string); resetCacheMode(): void; get cacheModeInput(): string | undefined; private _clientTtl?; get clientTtl(): number; set clientTtl(value: number); resetClientTtl(): void; get clientTtlInput(): number | undefined; private _defaultTtl?; get defaultTtl(): number; set defaultTtl(value: number); resetDefaultTtl(): void; get defaultTtlInput(): number | undefined; private _maxTtl?; get maxTtl(): number; set maxTtl(value: number); resetMaxTtl(): void; get maxTtlInput(): number | undefined; private _negativeCaching?; get negativeCaching(): boolean | cdktf.IResolvable; set negativeCaching(value: boolean | cdktf.IResolvable); resetNegativeCaching(): void; get negativeCachingInput(): boolean | cdktf.IResolvable | undefined; private _serveWhileStale?; get serveWhileStale(): number; set serveWhileStale(value: number); resetServeWhileStale(): void; get serveWhileStaleInput(): number | undefined; private _signedUrlCacheMaxAgeSec?; get signedUrlCacheMaxAgeSec(): number; set signedUrlCacheMaxAgeSec(value: number); resetSignedUrlCacheMaxAgeSec(): void; get signedUrlCacheMaxAgeSecInput(): number | undefined; private _cacheKeyPolicy; get cacheKeyPolicy(): ComputeRegionBackendServiceCdnPolicyCacheKeyPolicyOutputReference; putCacheKeyPolicy(value: ComputeRegionBackendServiceCdnPolicyCacheKeyPolicy): void; resetCacheKeyPolicy(): void; get cacheKeyPolicyInput(): ComputeRegionBackendServiceCdnPolicyCacheKeyPolicy | undefined; private _negativeCachingPolicy; get negativeCachingPolicy(): ComputeRegionBackendServiceCdnPolicyNegativeCachingPolicyList; putNegativeCachingPolicy(value: ComputeRegionBackendServiceCdnPolicyNegativeCachingPolicy[] | cdktf.IResolvable): void; resetNegativeCachingPolicy(): void; get negativeCachingPolicyInput(): cdktf.IResolvable | ComputeRegionBackendServiceCdnPolicyNegativeCachingPolicy[] | undefined; } export interface ComputeRegionBackendServiceCircuitBreakers { /** * The maximum number of connections to the backend cluster. * Defaults to 1024. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#max_connections ComputeRegionBackendService#max_connections} */ readonly maxConnections?: number; /** * The maximum number of pending requests to the backend cluster. * Defaults to 1024. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#max_pending_requests ComputeRegionBackendService#max_pending_requests} */ readonly maxPendingRequests?: number; /** * The maximum number of parallel requests to the backend cluster. * Defaults to 1024. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#max_requests ComputeRegionBackendService#max_requests} */ readonly maxRequests?: number; /** * Maximum requests for a single backend connection. This parameter * is respected by both the HTTP/1.1 and HTTP/2 implementations. If * not specified, there is no limit. Setting this parameter to 1 * will effectively disable keep alive. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#max_requests_per_connection ComputeRegionBackendService#max_requests_per_connection} */ readonly maxRequestsPerConnection?: number; /** * The maximum number of parallel retries to the backend cluster. * Defaults to 3. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#max_retries ComputeRegionBackendService#max_retries} */ readonly maxRetries?: number; } export declare function computeRegionBackendServiceCircuitBreakersToTerraform(struct?: ComputeRegionBackendServiceCircuitBreakersOutputReference | ComputeRegionBackendServiceCircuitBreakers): any; export declare function computeRegionBackendServiceCircuitBreakersToHclTerraform(struct?: ComputeRegionBackendServiceCircuitBreakersOutputReference | ComputeRegionBackendServiceCircuitBreakers): any; export declare class ComputeRegionBackendServiceCircuitBreakersOutputReference 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(): ComputeRegionBackendServiceCircuitBreakers | undefined; set internalValue(value: ComputeRegionBackendServiceCircuitBreakers | undefined); private _maxConnections?; get maxConnections(): number; set maxConnections(value: number); resetMaxConnections(): void; get maxConnectionsInput(): number | undefined; private _maxPendingRequests?; get maxPendingRequests(): number; set maxPendingRequests(value: number); resetMaxPendingRequests(): void; get maxPendingRequestsInput(): number | undefined; private _maxRequests?; get maxRequests(): number; set maxRequests(value: number); resetMaxRequests(): void; get maxRequestsInput(): number | undefined; private _maxRequestsPerConnection?; get maxRequestsPerConnection(): number; set maxRequestsPerConnection(value: number); resetMaxRequestsPerConnection(): void; get maxRequestsPerConnectionInput(): number | undefined; private _maxRetries?; get maxRetries(): number; set maxRetries(value: number); resetMaxRetries(): void; get maxRetriesInput(): number | undefined; } export interface ComputeRegionBackendServiceConsistentHashHttpCookieTtl { /** * Span of time that's a fraction of a second at nanosecond * resolution. Durations less than one second are represented * with a 0 seconds field and a positive nanos field. Must * be from 0 to 999,999,999 inclusive. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#nanos ComputeRegionBackendService#nanos} */ readonly nanos?: number; /** * Span of time at a resolution of a second. * Must be from 0 to 315,576,000,000 inclusive. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#seconds ComputeRegionBackendService#seconds} */ readonly seconds: number; } export declare function computeRegionBackendServiceConsistentHashHttpCookieTtlToTerraform(struct?: ComputeRegionBackendServiceConsistentHashHttpCookieTtlOutputReference | ComputeRegionBackendServiceConsistentHashHttpCookieTtl): any; export declare function computeRegionBackendServiceConsistentHashHttpCookieTtlToHclTerraform(struct?: ComputeRegionBackendServiceConsistentHashHttpCookieTtlOutputReference | ComputeRegionBackendServiceConsistentHashHttpCookieTtl): any; export declare class ComputeRegionBackendServiceConsistentHashHttpCookieTtlOutputReference 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(): ComputeRegionBackendServiceConsistentHashHttpCookieTtl | undefined; set internalValue(value: ComputeRegionBackendServiceConsistentHashHttpCookieTtl | undefined); private _nanos?; get nanos(): number; set nanos(value: number); resetNanos(): void; get nanosInput(): number | undefined; private _seconds?; get seconds(): number; set seconds(value: number); get secondsInput(): number | undefined; } export interface ComputeRegionBackendServiceConsistentHashHttpCookie { /** * Name of the cookie. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#name ComputeRegionBackendService#name} */ readonly name?: string; /** * Path to set for the cookie. * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#path ComputeRegionBackendService#path} */ readonly path?: string; /** * ttl block * * Docs at Terraform Registry: {@link https://registry.terraform.io/providers/hashicorp/google/6.13.0/docs/resources/compute_region_backend_service#ttl ComputeRegionBackendService#ttl} */ readonly ttl?: ComputeRegionBackendServiceConsistentHashHttpCookieTtl; } export declare fu