- [HTTP request](https://docs.cloud.google.com/compute/docs/reference/rest/beta/interconnects/getDiagnostics#body.HTTP_TEMPLATE)
- [Path parameters](https://docs.cloud.google.com/compute/docs/reference/rest/beta/interconnects/getDiagnostics#body.PATH_PARAMETERS)
- [Request body](https://docs.cloud.google.com/compute/docs/reference/rest/beta/interconnects/getDiagnostics#body.request_body)
- [Response body](https://docs.cloud.google.com/compute/docs/reference/rest/beta/interconnects/getDiagnostics#body.response_body)
  - [JSON representation](https://docs.cloud.google.com/compute/docs/reference/rest/beta/interconnects/getDiagnostics#body.InterconnectsGetDiagnosticsResponse.SCHEMA_REPRESENTATION)
    - [JSON representation](https://docs.cloud.google.com/compute/docs/reference/rest/beta/interconnects/getDiagnostics#body.InterconnectsGetDiagnosticsResponse.SCHEMA_REPRESENTATION.resource.SCHEMA_REPRESENTATION)
    - [JSON representation](https://docs.cloud.google.com/compute/docs/reference/rest/beta/interconnects/getDiagnostics#body.InterconnectsGetDiagnosticsResponse.SCHEMA_REPRESENTATION.resource.SCHEMA_REPRESENTATION_1)
- [Authorization scopes](https://docs.cloud.google.com/compute/docs/reference/rest/beta/interconnects/getDiagnostics#body.aspect)
- [IAM Permissions](https://docs.cloud.google.com/compute/docs/reference/rest/beta/interconnects/getDiagnostics#body.aspect_1)
- [Try it!](https://docs.cloud.google.com/compute/docs/reference/rest/beta/interconnects/getDiagnostics#try-it)

Returns the `interconnectDiagnostics` for the specified Interconnect.

In the event of a [global outage](https://status.cloud.google.com), do not use this API to make decisions about where to redirect your network traffic.

Unlike a VLAN attachment, which is regional, a Cloud Interconnect connection is a global resource. A global outage can prevent this API from functioning properly.

### HTTP request

Choose an endpoint:
global africa-south1 asia-east1 asia-east2 asia-northeast1 asia-northeast2 asia-northeast3 asia-south1 asia-south2 asia-southeast1 asia-southeast2 asia-southeast3 australia-southeast1 australia-southeast2 europe-central2 europe-north1 europe-north2 europe-southwest1 europe-west1 europe-west10 europe-west12 europe-west2 europe-west3 europe-west4 europe-west6 europe-west8 europe-west9 me-central1 me-central2 me-west1 northamerica-northeast1 northamerica-northeast2 northamerica-south1 southamerica-east1 southamerica-west1 us-central1 us-east1 us-east4 us-east5 us-south1 us-west1 us-west2 us-west3 us-west4   
`GET https://compute.googleapis.com/compute/beta/projects/{project}/global/interconnects/{interconnect}/getDiagnostics`

<br />

The URLs use [gRPC Transcoding](https://google.aip.dev/127) syntax.

### Path parameters

| Parameters ||
|---|---|
| `project` | `string` Project ID for this request. |
| `interconnect` | `string` Name of the interconnect resource to query. |

### Request body

The request body must be empty.

### Response body

Response for the InterconnectsGetDiagnosticsRequest.

If successful, the response body contains data with the following structure:

| JSON representation |
|---|
| ``` { "result": { "macAddress": string, "arpCaches": [ { "macAddress": string, "ipAddress": string } ], "links": [ { "circuitId": string, "googleDemarc": string, "receivingOpticalPower": { "value": number, "state": enum }, "transmittingOpticalPower": { "value": number, "state": enum }, "lacpStatus": { "state": enum, "googleSystemId": string, "neighborSystemId": string }, "operationalStatus": enum, "arpCaches": [ { "macAddress": string, "ipAddress": string } ], "macsec": { "operational": boolean, "ckn": string } } ], "bundleOperationalStatus": enum, "bundleAggregationType": enum } } ``` |

| Fields ||
|---|---|
| `result` | `object` |
| `result.macAddress` | `string` The MAC address of the Interconnect's bundle interface. |
| `result.arpCaches[]` | `object` A list of `InterconnectDiagnostics.ARPEntry` objects, describing individual neighbors currently seen by the Google router in the ARP cache for the Interconnect. This will be empty when the Interconnect is not bundled. |
| `result.arpCaches[].macAddress` | `string` The MAC address of this ARP neighbor. |
| `result.arpCaches[].ipAddress` | `string` The IP address of this ARP neighbor. |
| `result.links[]` | `object` A list of `InterconnectDiagnostics.LinkStatus` objects, describing the status for each link on the Interconnect. |
| `result.links[].circuitId` | `string` The unique ID for this link assigned during turn up by Google. |
| `result.links[].googleDemarc` | `string` The Demarc address assigned by Google and provided in the LoA. |
| `result.links[].receivingOpticalPower` | `object` An `InterconnectDiagnostics.LinkOpticalPower` object, describing the current value and status of the received light level. |
| `result.links[].receivingOpticalPower.value` | `number` Value of the current receiving or transmitting optical power, read in dBm. Take a known good optical value, give it a 10% margin and trigger warnings relative to that value. In general, a -7dBm warning and a -11dBm alarm are good optical value estimates for most links. |
| `result.links[].receivingOpticalPower.state` | `enum` The status of the current value when compared to the warning and alarm levels for the receiving or transmitting transceiver. Possible states include: - `OK`: The value has not crossed a warning threshold. - `LOW_WARNING`: The value has crossed below the low warning threshold. - `HIGH_WARNING`: The value has crossed above the high warning threshold. - `LOW_ALARM`: The value has crossed below the low alarm threshold. - `HIGH_ALARM`: The value has crossed above the high alarm threshold. <br /> |
| `result.links[].transmittingOpticalPower` | `object` An `InterconnectDiagnostics.LinkOpticalPower` object, describing the current value and status of the transmitted light level. |
| `result.links[].transmittingOpticalPower.value` | `number` Value of the current receiving or transmitting optical power, read in dBm. Take a known good optical value, give it a 10% margin and trigger warnings relative to that value. In general, a -7dBm warning and a -11dBm alarm are good optical value estimates for most links. |
| `result.links[].transmittingOpticalPower.state` | `enum` The status of the current value when compared to the warning and alarm levels for the receiving or transmitting transceiver. Possible states include: - `OK`: The value has not crossed a warning threshold. - `LOW_WARNING`: The value has crossed below the low warning threshold. - `HIGH_WARNING`: The value has crossed above the high warning threshold. - `LOW_ALARM`: The value has crossed below the low alarm threshold. - `HIGH_ALARM`: The value has crossed above the high alarm threshold. <br /> |
| `result.links[].lacpStatus` | `object` |
| `result.links[].lacpStatus.state` | `enum` The state of a LACP link, which can take one of the following values: - ACTIVE: The link is configured and active within the bundle. - DETACHED: The link is not configured within the bundle. This means that the rest of the object should be empty. <br /> |
| `result.links[].lacpStatus.googleSystemId` | `string` System ID of the port on Google's side of the LACP exchange. |
| `result.links[].lacpStatus.neighborSystemId` | `string` System ID of the port on the neighbor's side of the LACP exchange. |
| `result.links[].operationalStatus` | `enum` The operational status of the link. |
| `result.links[].arpCaches[]` | `object` A list of `InterconnectDiagnostics.ARPEntry` objects, describing the ARP neighbor entries seen on this link. This will be empty if the link is bundled |
| `result.links[].arpCaches[].macAddress` | `string` The MAC address of this ARP neighbor. |
| `result.links[].arpCaches[].ipAddress` | `string` The IP address of this ARP neighbor. |
| `result.links[].macsec` | `object` Describes the status of MACsec encryption on this link. |
| `result.links[].macsec.operational` | `boolean` Indicates whether or not MACsec is operational on this link. |
| `result.links[].macsec.ckn` | `string` Indicates the Connectivity Association Key Name (CKN) currently being used if MACsec is operational. |
| `result.bundleOperationalStatus` | `enum` The operational status of the bundle interface. |
| `result.bundleAggregationType` | `enum` The aggregation type of the bundle interface. |

### Authorization scopes

Requires one of the following OAuth scopes:

- `https://www.googleapis.com/auth/compute.readonly`
- `
  https://www.googleapis.com/auth/compute`
- `
  https://www.googleapis.com/auth/cloud-platform`

For more information, see the [Authentication Overview](https://docs.cloud.google.com/docs/authentication#authorization-gcp).

### IAM Permissions

In addition to any permissions specified on the fields above, authorization requires one or more of the following [IAM](https://cloud.google.com/iam/docs/) permissions:

- `compute.interconnects.get`

To find predefined roles that contain those permissions, see [Compute Engine IAM Roles](https://docs.cloud.google.com/compute/docs/access/iam).