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

Retrieves details of a specific VM extension state. This is a read-only API.

### 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}/zones/{zone}/instances/{instance}/vmExtensionStates/{extensionName}`

<br />

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

### Path parameters

| Parameters ||
|---|---|
| `project` | `string` Project ID for this request. |
| `zone` | `string` Name of the zone for this request. |
| `instance` | `string` Name or id of the instance resource. |
| `extensionName` | `string` The name of the extension to get the state for. |

### Request body

The request body must be empty.

### Response body

State of an extension on an instance.

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

| JSON representation |
|---|
| ``` { "name": string, "version": string, "healthStatus": enum, "enforcementState": enum, "enforcementMsg": string, "healthMsg": string, "policyId": string } ``` |

| Fields ||
|---|---|
| `name` | `string` The name of the extension. |
| `version` | `string` The version of the extension. |
| `healthStatus` | `enum` The health status of the extension. |
| `enforcementState` | `enum` The enforcement state of the extension. If the extension is not enforced yet, then the health status will not be specified. |
| `enforcementMsg` | `string` The status message of the extension if the extension fails to enforce. |
| `healthMsg` | `string` The health status message of the extension. |
| `policyId` | `string` The id of the policy that is enforced on the extension. |

### 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.instances.getVmExtensionState`

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