@cdktf/provider-google
Version:
Prebuilt google Provider for Terraform CDK (cdktf)
892 lines • 92.6 kB
TypeScript
/**
* 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