GoogleComputeHealthCheck class final
Factory wrapper for google_compute_health_check.
Health Checks determine whether instances are responsive and able to do work. They are an important part of a comprehensive load balancing configuration, as they enable monitoring instances behind load balancers.
Health Checks poll instances at a specified interval. Instances that do not respond successfully to some number of probes in a row are marked as unhealthy. No new connections are sent to unhealthy instances, though existing connections will continue. The health check will continue to poll unhealthy instances. If an instance later responds successfully to some number of consecutive probes, it is marked healthy again and can receive new connections.
~>NOTE: Legacy HTTP(S) health checks must be used for target pool-based network load balancers. See the official guide for choosing a type of health check.
A global health check polls instances behind a load balancer at a configurable interval. Once attached to a backend service (see GoogleComputeBackendService.healthChecks) it gates which backends receive traffic — instances that fail unhealthyThreshold consecutive probes are pulled out of rotation until they succeed healthyThreshold consecutive probes in a row.
For regional health checks (required by regional internal /
internal-managed load balancers) use
google_compute_region_health_check (curated separately).
Choose exactly one ComputeHealthCheckProtocol variant (HTTP, HTTPS,
HTTP2, TCP, SSL, gRPC, or gRPC over TLS). The choice determines the read-only type
getter value. The sealed type enforces the GCP / Terraform
exactly-one constraint at compile time.
Required identity:
- localName: Terraform local name (the address segment after
google_compute_health_check.). name: GCP health-check resource name (1-63 chars, lowercase RFC1035). Forces replacement when changed.
Example (HTTP health check on /healthz):
final apiHc = GoogleComputeHealthCheck(
'api_hc',
name: TfArg.literal('api-hc'),
checkIntervalSec: TfArg.literal(10),
timeoutSec: TfArg.literal(5),
healthyThreshold: TfArg.literal(2),
unhealthyThreshold: TfArg.literal(3),
protocol: .http(
port: TfArg.literal(8080),
requestPath: TfArg.literal('/healthz'),
proxyHeader: HealthCheckProxyHeader.none,
portSpecification: HealthCheckPortSpecification.useFixedPort,
),
logConfig: ComputeHealthCheckLogConfig(enable: .literal(true)),
);
Example (gRPC health check):
final grpcHc = GoogleComputeHealthCheck(
'grpc_hc',
name: TfArg.literal('grpc-hc'),
protocol: .grpc(
port: TfArg.literal(50051),
grpcServiceName: TfArg.literal('my.Service'),
portSpecification: HealthCheckPortSpecification.useFixedPort,
),
);
Cross-resource references:
- Attach via GoogleComputeBackendService.healthChecks (list of self-links).
Composition pattern: extends Resource for
runtime behavior.
Constructors
-
GoogleComputeHealthCheck(String localName, {required TfArg<
String> name, TfArg<String> ? description, TfArg<num> ? checkIntervalSec, TfArg<num> ? timeoutSec, TfArg<num> ? healthyThreshold, TfArg<num> ? unhealthyThreshold, TfArg<List< ? sourceRegions, required ComputeHealthCheckProtocol protocol, ComputeHealthCheckLogConfig? logConfig, TfArg<String> >String> ? project, LifecycleOptions? lifecycle, List<TfAddressed> ? dependsOn, StackProvider? provider, TfTimeouts? timeouts})
Properties
-
argMap
→ Map<
String, TfArg?> -
Argument-name → TfArg map. Keys are snake_case (Terraform JSON name).
Synth emits these keys directly; the factory is responsible for the
camelCase → snake_case translation at construction time.
finalinherited
-
checkIntervalSec
→ TfRef<
num> -
Reference to
check_interval_secattribute.no setter -
creationTimestamp
→ TfRef<
String> -
Reference to
creation_timestampattribute.no setter - defaultProvider → String
-
The provider name a block without provider uses: by default the
prefix of terraformType (
googleforgoogle_pubsub_topic).no setterinherited -
deletionPolicy
→ TfRef<
String> -
Reference to
deletion_policyattribute.no setter -
dependsOn
→ List<
TfAddressed> ? -
Optional
depends_on = [...]: the resources, data sources and module calls this block waits for, e.g.dependsOn: [api, ...apiDeps]. Terraform takes whole blocks only, so an entry is never an attribute.finalinherited -
description
→ TfRef<
String> -
Reference to
descriptionattribute.no setter - hashCode → int
-
The hash code for this object.
no setterinherited
-
healthyThreshold
→ TfRef<
num> -
Reference to
healthy_thresholdattribute.no setter -
id
→ TfRef<
String> -
Reference to
idattribute.no setter - kind → ResourceKind
-
Always
ResourceKind.resource. Overridden byData.no setterinherited - lifecycle → LifecycleOptions?
-
Optional
lifecycle { ... }block.finalinherited - localName → String
-
User-supplied local name within a Stack.
finalinherited
-
name
→ TfRef<
String> -
Reference to
nameattribute.no setter -
project
→ TfRef<
String> -
Reference to
projectattribute.no setter - provider → StackProvider?
-
Optional Terraform
providermeta-argument: the provider configuration this block uses, e.g. the aliasedGoogleProvider(alias: 'eu')the Stack registered withaddProvider.finalinherited -
ref
→ RefTo<
GoogleComputeHealthCheck> -
A reference to this resource, for arguments typed
RefTo<GoogleComputeHealthCheck>.no setter - runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
selfLink
→ TfRef<
String> -
Reference to
self_linkattribute.no setter -
sensitiveFields
→ Set<
String> -
Field names that are
@Sensitiveper the IR-derived per-resource constant. Curated factories override with a baked-instatic const Set<String>(file-private in v0.5+).no setteroverride -
sourceRegions
→ TfRef<
List< String> > -
Reference to
source_regionsattribute.no setter - supportsDeletionProtection → bool
-
Capability flag: true when this resource's underlying Terraform
schema has a
deletion_protectionboolean attribute that the synth-time devMode flow can flip tofalse. Defaults to false; the codegen emitter overrides this totruefor wrappers whose schema includes the attribute.no setterinherited - terraformType → String
-
Terraform resource type, e.g.
google_pubsub_topic.finalinherited - tfAddress → String
-
Terraform address
<terraformType>.<localName>, e.g.google_pubsub_topic.orders.no setterinherited - timeouts → TfTimeouts?
-
Optional
timeouts { ... }block: how long Terraform waits for each operation. Provider-neutral like lifecycle — synth copies the duration strings verbatim, andterraform validatedecides whether this resource's schema declares the operations set here.finalinherited -
timeoutSec
→ TfRef<
num> -
Reference to
timeout_secattribute.no setter -
type
→ TfRef<
String> -
Reference to
typeattribute.no setter -
unhealthyThreshold
→ TfRef<
num> -
Reference to
unhealthy_thresholdattribute.no setter
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited