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, or gRPC). 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(
  localName: 'api_hc',
  name: TfArg.literal('api-hc'),
  checkIntervalSec: TfArg.literal(10),
  timeoutSec: TfArg.literal(5),
  healthyThreshold: TfArg.literal(2),
  unhealthyThreshold: TfArg.literal(3),
  protocol: const ComputeHealthCheckHttpHealthCheckConfig(
    port: TfArg.literal(8080),
    requestPath: TfArg.literal('/healthz'),
    proxyHeader: HealthCheckProxyHeader.none,
    portSpecification: HealthCheckPortSpecification.useFixedPort,
  ),
  logConfig: const ComputeHealthCheckHealthCheckLogConfig(enable: true),
);

Example (gRPC health check):

final grpcHc = GoogleComputeHealthCheck(
  localName: 'grpc_hc',
  name: TfArg.literal('grpc-hc'),
  protocol: const ComputeHealthCheckGrpcHealthCheckConfig(
    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({required String localName, required TfArg<String> name, TfArg<String>? description, TfArg<num>? checkIntervalSec, TfArg<num>? timeoutSec, TfArg<num>? healthyThreshold, TfArg<num>? unhealthyThreshold, TfArg<List<String>>? sourceRegions, required ComputeHealthCheckProtocol protocol, ComputeHealthCheckHealthCheckLogConfig? logConfig, TfArg<String>? project, LifecycleOptions? lifecycle, List<DependencyTarget>? dependsOn})

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
creationTimestamp → TfRef<String>
Reference to creation_timestamp attribute.
no setter
dependsOn List<DependencyTarget>?
Optional depends_on = [...]. Each entry is a DependencyTarget — either a wholesale resource (rendered as bare address) or an explicit TfRef (rendered via bareAddress).
finalinherited
hashCode int
The hash code for this object.
no setterinherited
id → TfRef<String>
Reference to id attribute.
no setter
kind → ResourceKind
Always ResourceKind.resource. Overridden by Data.
no setterinherited
lifecycle → LifecycleOptions?
Optional lifecycle { ... } block.
finalinherited
localName String
User-supplied local name within a Stack.
finalinherited
nameRef → TfRef<String>
Reference to name attribute.
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
Reference to self_link attribute.
no setter
sensitiveFields Set<String>
Field names that are @Sensitive per the IR-derived per-resource constant. Curated factories override with a baked-in static const Set<String> (file-private in v0.5+).
no setter
supportsDeletionProtection bool
Capability flag: true when this resource's underlying Terraform schema has a deletion_protection boolean attribute that the synth-time devMode flow can flip to false. Defaults to false; the codegen emitter overrides this to true for wrappers whose schema includes the attribute.
no setterinherited
terraformType String
Terraform resource type, e.g. google_pubsub_topic.
finalinherited
tfAddress String
no setterinherited
type → TfRef<String>
Reference to type attribute.
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

Constants

tfType → const String