GoogleComputeNetworkEndpointGroup class final

Factory wrapper for google_compute_network_endpoint_group (provider hashicorp/google ~> 7.0).

Manages a zonal Network Endpoint Group (NEG). A NEG is a collection of IP+port combinations that backend services in HTTP(S), TCP proxy, and SSL proxy load balancers can target at a granularity finer than whole VM instances.

Use this resource for the dominant L7 LB pattern: zonal VM-IP+port endpoints in a single subnet, attached to a backend service. For internet-fronted (hybrid) endpoints with no GCP backing VM, see GoogleComputeGlobalNetworkEndpointGroup. For regional Serverless / PSC NEGs, see GoogleComputeRegionNetworkEndpointGroup.

Required identity:

  • localName: Terraform local name (the address segment after google_compute_network_endpoint_group.).
  • name: GCP-internal NEG resource name. Must comply with RFC1035.
  • zone: the zone the NEG (and its member endpoints) lives in.
  • network: self-link of the VPC the endpoints belong to. Pass TfArg.ref(vpc.selfLink).

Recreating a NEG that is already attached to a backend service produces a resourceInUseByAnotherResource error; use lifecycle.create_before_destroy (or detach first) when destructive changes are unavoidable.

Example (zonal VM-IP+port NEG fronting a regional internal L7 LB):

final neg = GoogleComputeNetworkEndpointGroup(
  localName: 'app_neg',
  name: TfArg.literal('app-neg-usc1a'),
  zone: TfArg.literal('us-central1-a'),
  network: TfArg.ref(vpc.selfLink),
  subnetwork: TfArg.ref(subnet.selfLink),
  networkEndpointType:
      TfArg.literal(NetworkEndpointGroupType.gceVmIpPort),
  defaultPort: TfArg.literal(8080),
);

Composition pattern: extends Resource for runtime behavior.

Constructors

GoogleComputeNetworkEndpointGroup({required String localName, required TfArg<String> name, TfArg<String>? zone, required TfArg<String> network, TfArg<String>? subnetwork, TfArg<NetworkEndpointGroupType>? networkEndpointType, TfArg<num>? defaultPort, TfArg<String>? description, 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
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 (full path projects/{project}/zones/{zone}/networkEndpointGroups/{name}).
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. Use this when downstream consumers (e.g. google_compute_backend_service.backend[*].group) need the NEG by name rather than full self_link.
no setter
provider → ProviderBinding?
Optional explicit provider binding. Only the type is referenced here; the concrete Provider class lives in terradart_google (provider classes are defined per-provider, outside the core runtime).
finalinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
Reference to self_link attribute. Pass this as the group argument of a google_compute_backend_service backend block when wiring the NEG into a load balancer.
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
sizeRef → TfRef<num>
Reference to size attribute — the live count of endpoints registered in the group. Available after apply.
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

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