- [Resource: NetworkEndpointGroup](https://docs.cloud.google.com/compute/docs/reference/rest/beta/networkEndpointGroups#NetworkEndpointGroup)
  - [JSON representation](https://docs.cloud.google.com/compute/docs/reference/rest/beta/networkEndpointGroups#NetworkEndpointGroup.SCHEMA_REPRESENTATION)
- [Methods](https://docs.cloud.google.com/compute/docs/reference/rest/beta/networkEndpointGroups#METHODS_SUMMARY)

## Resource: NetworkEndpointGroup

Represents a collection of network endpoints.

A network endpoint group (NEG) defines how a set of endpoints should be reached, whether they are reachable, and where they are located. For more information about using NEGs for different use cases, see [Network endpoint groups overview](https://docs.cloud.google.com/load-balancing/docs/negs).

Note: Use the following APIs to manage network endpoint groups:

- To manage NEGs with zonal scope (such as zonal NEGs, hybrid connectivity NEGs): [zonal API](https://docs.cloud.google.com/compute/docs/reference/rest/beta/networkEndpointGroups/insert)
- To manage NEGs with regional scope (such as regional internet NEGs, serverless NEGs, Private Service Connect NEGs): [regional API](https://docs.cloud.google.com/compute/docs/reference/rest/beta/regionNetworkEndpointGroups/insert)
- To manage NEGs with global scope (such as global internet NEGs): [global API](https://docs.cloud.google.com/compute/docs/reference/rest/beta/globalNetworkEndpointGroups/insert)

<br />

| JSON representation |
|---|
| ``` { "kind": string, "id": string, "creationTimestamp": string, "selfLink": string, "name": string, "description": string, "networkEndpointType": enum, "size": integer, "loadBalancer": { "zone": string, "network": string, "subnetwork": string, "defaultPort": integer }, "region": string, "zone": string, "network": string, "subnetwork": string, "defaultPort": integer, "annotations": { string: string, ... }, "cloudRun": { "service": string, "tag": string, "urlMask": string }, "appEngine": { "service": string, "version": string, "urlMask": string }, "cloudFunction": { "function": string, "urlMask": string }, "serverlessDeployment": { "platform": string, "resource": string, "version": string, "urlMask": string }, "pscTargetService": string, "pscData": { "consumerPscAddress": string, "pscConnectionId": string, "pscConnectionStatus": enum, "producerPort": integer } } ``` |

| Fields ||
|---|---|
| `kind` | `string` Output only. Type of the resource. Always `compute#networkEndpointGroup` for network endpoint group. |
| `id` | `string (https://developers.google.com/discovery/v1/type-format format)` Output only. The unique identifier for the resource. This identifier is defined by the server. |
| `creationTimestamp` | `string` Output only. Creation timestamp in [RFC3339](https://www.ietf.org/rfc/rfc3339.txt) text format. |
| `selfLink` | `string` Output only. Server-defined URL for the resource. |
| `name` | `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](https://www.ietf.org/rfc/rfc1035.txt). 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. |
| `description` | `string` An optional description of this resource. Provide this property when you create the resource. |
| `networkEndpointType` | `enum` Type of network endpoints in this network endpoint group. Can be one of `GCE_VM_IP`, `GCE_VM_IP_PORT`, `NON_GCP_PRIVATE_IP_PORT`, `INTERNET_FQDN_PORT`, `INTERNET_IP_PORT`, `SERVERLESS`, `PRIVATE_SERVICE_CONNECT`, `GCE_VM_IP_PORTMAP`. |
| `size` | `integer` Output only. Number of network endpoints in the network endpoint group. |
| `loadBalancer (deprecated)` | `object` > [!WARNING] > This item is deprecated! This field is only valid when the network endpoint group is used for load balancing. \[Deprecated\] This field is deprecated. |
| `loadBalancer (deprecated).zone (deprecated)` | `string` Output only. The URL of the [zone](https://docs.cloud.google.com/compute/docs/regions-zones#available) where the network endpoint group is located. \[Deprecated\] This field is deprecated. |
| `loadBalancer (deprecated).network (deprecated)` | `string` The URL of the network to which all network endpoints in the NEG belong. For networkEndpointType `GCE_VM_IP_PORT`, `GCE_VM_IP_PORTMAP` or `NON_GCP_PRIVATE_IP_PORT`, if this field is not specified, a default network will be used. This field cannot be set for NEGs with networkEndpointType set to `SERVERLESS` or `PRIVATE_SERVICE_CONNECT` and for global NEGs. For all other network endpoint types, this field is required. \[Deprecated\] This field is deprecated. |
| `loadBalancer (deprecated).subnetwork (deprecated)` | `string` Optional URL of the subnetwork to which all network endpoints in the NEG belong. \[Deprecated\] This field is deprecated. |
| `loadBalancer (deprecated).defaultPort (deprecated)` | `integer` The default port used if the port number is not specified in the network endpoint. If the network endpoint type is either `GCE_VM_IP`, `SERVERLESS` or `PRIVATE_SERVICE_CONNECT`, this field must not be specified. \[Deprecated\] This field is deprecated. |
| `region` | `string` Output only. The URL of the [region](https://docs.cloud.google.com/compute/docs/regions-zones#available) where the network endpoint group is located. |
| `zone` | `string` Output only. The URL of the [zone](https://docs.cloud.google.com/compute/docs/regions-zones#available) where the network endpoint group is located. |
| `network` | `string` The URL of the network to which all network endpoints in the NEG belong. For networkEndpointType `GCE_VM_IP_PORT`, `GCE_VM_IP_PORTMAP` or `NON_GCP_PRIVATE_IP_PORT`, if this field is not specified, a default network will be used. This field cannot be set for NEGs with networkEndpointType set to `SERVERLESS` or `PRIVATE_SERVICE_CONNECT` and for global NEGs. For all other network endpoint types, this field is required. |
| `subnetwork` | `string` Optional URL of the subnetwork to which all network endpoints in the NEG belong. |
| `defaultPort` | `integer` The default port used if the port number is not specified in the network endpoint. Optional. If the network endpoint type is either `GCE_VM_IP`, `SERVERLESS` or `PRIVATE_SERVICE_CONNECT`, this field must not be specified. |
| `annotations` | `map (key: string, value: string)` Optional. Metadata defined as annotations on the network endpoint group. |
| `cloudRun` | `object` Optional. Only valid when `networkEndpointType` is ``` SERVERLESS``. Only one of `cloudRun`, `appEngine` or `cloudFunction` may be set.`` ``` `` ` ` `` |
| `cloudRun.service` | `string` [Cloud Run service](https://docs.cloud.google.com/load-balancing/docs/negs/serverless-neg-concepts#backend-service) is the main resource of Cloud Run. The `service` must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Example value: "run-service". |
| `cloudRun.tag` | `string` Optional [Cloud Run tag](https://docs.cloud.google.com/load-balancing/docs/tags) represents the "named-revision" to provide additional fine-grained traffic routing information. The `tag` must be 1-63 characters long, and comply with [RFC1035](https://www.ietf.org/rfc/rfc1035.txt). Example value: "revision-0010". |
| `cloudRun.urlMask` | `string` An [URL mask](https://docs.cloud.google.com/load-balancing/docs/negs/serverless-neg-concepts#url_masks) is one of the main components of the Cloud Function. A template to parse `<service>` and `<tag>` fields from a request URL. URL mask allows for routing to multiple Run services without having to create multiple network endpoint groups and backend services. For example, request URLs `foo1.domain.com/bar1` and `foo1.domain.com/bar2` can be backed by the same Serverless Network Endpoint Group (NEG) with URL mask `<tag>.domain.com/<service>`. The URL mask will parse them to `{ service="bar1", tag="foo1" }` and `{ service="bar2", tag="foo2" }` respectively. |
| `appEngine` | `object` Optional. Only valid when `networkEndpointType` is `SERVERLESS`. Only one of `cloudRun`, `appEngine` or `cloudFunction` may be set. |
| `appEngine.service` | `string` Optional serving [service](https://docs.cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services). The `service` name is case-sensitive and must be 1-63 characters long. Example value: `default`, `my-service`. |
| `appEngine.version` | `string` Optional serving [version](https://docs.cloud.google.com/appengine/docs/admin-api/reference/rest/v1/apps.services.versions). The `version` name is case-sensitive and must be 1-100 characters long. Example value: `v1`, `v2`. |
| `appEngine.urlMask` | `string` An [URL mask](https://docs.cloud.google.com/load-balancing/docs/negs/serverless-neg-concepts#url_masks) is one of the main components of the Cloud Function. A template to parse `service` and `version` fields from a request URL. URL mask allows for routing to multiple App Engine services without having to create multiple Network Endpoint Groups and backend services. For example, the request URLs `foo1-dot-appname.appspot.com/v1` and `foo1-dot-appname.appspot.com/v2` can be backed by the same Serverless NEG with URL mask `<service>-dot-appname.appspot.com/<version>`. The URL mask will parse them to `{ service = "foo1", version = "v1" }` and `{ service = "foo1", version = "v2" }` respectively. |
| `cloudFunction` | `object` Optional. Only valid when `networkEndpointType` is `SERVERLESS`. Only one of `cloudRun`, `appEngine` or `cloudFunction` may be set. |
| `cloudFunction.function` | `string` A user-defined name of the [Cloud Function](https://docs.cloud.google.com/functions/docs/reference/rest/v1/projects.locations.functions). The `function` name is case-sensitive and must be 1-63 characters long. Example value: `func1`. |
| `cloudFunction.urlMask` | `string` An [URL mask](https://docs.cloud.google.com/load-balancing/docs/negs/serverless-neg-concepts#url_masks) is one of the main components of the Cloud Function. A template to parse `function` field from a request URL. URL mask allows for routing to multiple Cloud Functions without having to create multiple Network Endpoint Groups and backend services. For example, request URLs `mydomain.com/function1` and `mydomain.com/function2` can be backed by the same Serverless NEG with URL mask `/<function>`. The URL mask will parse them to `{ function = "function1" }` and `{ function = "function2" }` respectively. |
| `serverlessDeployment` | `object` Only valid when `networkEndpointType` is `SERVERLESS`. Only one of `cloudRun`, `appEngine`, `cloudFunction` or `serverlessDeployment` may be set. |
| `serverlessDeployment.platform` | `string` The platform of the backend target(s) of this NEG. The only supported value is API Gateway: `apigateway.googleapis.com`. |
| `serverlessDeployment.resource` | `string` The user-defined name of the workload/instance. This value must be provided explicitly or in the `urlMask`. The resource identified by this value is platform-specific and is as follows: 1. API Gateway: The `gateway` ID 2. App Engine: The `service` name 3. Cloud Functions: The `function` name 4. Cloud Run: The `service` name |
| `serverlessDeployment.version` | `string` The optional resource version. The version identified by this value is platform-specific and is follows: 1. API Gateway: Unused 2. App Engine: The service version 3. Cloud Functions: Unused 4. Cloud Run: The service tag |
| `serverlessDeployment.urlMask` | `string` An [URL mask](https://docs.cloud.google.com/load-balancing/docs/negs/serverless-neg-concepts#url_masks) is one of the main components of the Cloud Function. A template to parse platform-specific fields from a request URL. URL mask allows for routing to multiple resources on the same serverless platform without having to create multiple Network Endpoint Groups and backend resources. The fields parsed by this template are platform-specific and are as follows: 1. API Gateway: The `gateway` ID 2. App Engine: The `service` and `version` 3. Cloud Functions: The `function` name 4. Cloud Run: The `service` and `tag` |
| `pscTargetService` | `string` The target service url used to set up private service connection to a Google API or a PSC Producer Service Attachment. An example value is: `asia-northeast3-cloudkms.googleapis.com`. Optional. Only valid when `networkEndpointType` is `PRIVATE_SERVICE_CONNECT`. |
| `pscData` | `object` Optional. Only valid when `networkEndpointType` is `PRIVATE_SERVICE_CONNECT`. |
| `pscData.consumerPscAddress` | `string` Output only. Address allocated from given subnetwork for PSC. This IP address acts as a VIP for a PSC NEG, allowing it to act as an endpoint in L7 PSC-XLB. |
| `pscData.pscConnectionId` | `string (https://developers.google.com/discovery/v1/type-format format)` Output only. The PSC connection id of the PSC Network Endpoint Group Consumer. |
| `pscData.pscConnectionStatus` | `enum` Output only. The connection status of the PSC Forwarding Rule. |
| `pscData.producerPort` | `integer` The psc producer port is used to connect PSC NEG with specific port on the PSC Producer side; should only be used for the PRIVATE_SERVICE_CONNECT NEG type |

| ## Methods ||
|---|---|
| ### `https://docs.cloud.google.com/compute/docs/reference/rest/beta/networkEndpointGroups/aggregatedList` | Retrieves the list of network endpoint groups and sorts them by zone. |
| ### `https://docs.cloud.google.com/compute/docs/reference/rest/beta/networkEndpointGroups/attachNetworkEndpoints` | Attach a list of network endpoints to the specified network endpoint group. |
| ### `https://docs.cloud.google.com/compute/docs/reference/rest/beta/networkEndpointGroups/delete` | Deletes the specified network endpoint group. |
| ### `https://docs.cloud.google.com/compute/docs/reference/rest/beta/networkEndpointGroups/detachNetworkEndpoints` | Detach a list of network endpoints from the specified network endpoint group. |
| ### `https://docs.cloud.google.com/compute/docs/reference/rest/beta/networkEndpointGroups/get` | Returns the specified network endpoint group. |
| ### `https://docs.cloud.google.com/compute/docs/reference/rest/beta/networkEndpointGroups/insert` | Creates a network endpoint group in the specified project using the parameters that are included in the request. |
| ### `https://docs.cloud.google.com/compute/docs/reference/rest/beta/networkEndpointGroups/list` | Retrieves the list of network endpoint groups that are located in the specified project and zone. |
| ### `https://docs.cloud.google.com/compute/docs/reference/rest/beta/networkEndpointGroups/listNetworkEndpoints` | Lists the network endpoints in the specified network endpoint group. |
| ### `https://docs.cloud.google.com/compute/docs/reference/rest/beta/networkEndpointGroups/testIamPermissions` | Returns permissions that a caller has on the specified resource. |