GoogleComputeNetworkEndpointGroup class final

Factory wrapper for google_compute_network_endpoint_group.

Network endpoint groups (NEGs) are zonal resources that represent collections of IP address and port combinations for GCP resources within a single subnet. Each IP address and port combination is called a network endpoint.

Network endpoint groups can be used as backends in backend services for HTTP(S), TCP proxy, and SSL proxy load balancers. You cannot use NEGs as a backend with internal load balancers. Because NEG backends allow you to specify IP addresses and ports, you can distribute traffic in a granular fashion among applications or containers running within VM instances.

Recreating a network endpoint group that's in use by another resource will give a resourceInUseByAnotherResource error. Use lifecycle.create_before_destroy to avoid this type of error.

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.
  • 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).

When renaming or recreating an in-use NEG, detaching it from the backend service first avoids the create_before_destroy cascade to dependents.

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),
);

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
generatedId → TfRef<num>
Reference to generated_id attribute.
no setter
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
size → TfRef<num>
Reference to size attribute.
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