Method: haControllers.aggregatedList

Retrieves an aggregated list of all of the HaControllers in the specified project across all regions.

HTTP request


GET https://compute.googleapis.com/compute/v1/projects/{project}/aggregated/haControllers

The URLs use gRPC Transcoding syntax.

Path parameters

Parameters
project

string

Project ID for this request.

Query parameters

Parameters
maxResults

integer (uint32 format)

The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)

pageToken

string

Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.

filter

string

A filter expression that filters resources listed in the response. Most Compute resources support two types of filter expressions: expressions that support regular expressions and expressions that follow API improvement proposal AIP-160. These two types of filter expressions cannot be mixed in one request.

If you want to use AIP-160, your expression must specify the field name, an operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The operator must be either =, !=, >, <, <=, >= or :.

For example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.

The :* comparison can be used to test whether a key has been defined. For example, to find all objects with owner label use:

labels.owner:*

You can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.

To filter on multiple expressions, provide each separate expression within parentheses. For example:

(scheduling.automaticRestart = true)
(cpuPlatform = "Intel Skylake")

By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example:

(cpuPlatform = "Intel Skylake") OR
(cpuPlatform = "Intel Broadwell") AND
(scheduling.automaticRestart = true)

If you want to use a regular expression, use the eq (equal) or ne (not equal) operator against a single un-parenthesized expression with or without quotes or against multiple parenthesized expressions. Examples:

fieldname eq unquoted literal fieldname eq 'single quoted literal' fieldname eq "double quoted literal" (fieldname1 eq literal) (fieldname2 ne "literal")

The literal value is interpreted as a regular expression using Google RE2 library syntax. The literal value must match the entire field.

For example, to filter for instances that do not end with name "instance", you would use name ne .*instance.

You cannot combine constraints on multiple fields using regular expressions.

orderBy

string

Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.

You can also sort results in descending order based on the creation timestamp using orderBy="creationTimestamp desc". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.

Currently, only sorting by name or creationTimestamp desc is supported.

returnPartialSuccess

boolean

Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.

For example, when partial success behavior is enabled, aggregatedList for a single zone scope either returns all resources in the zone or no resources, with an error code.

includeAllScopes

boolean

Indicates whether every visible scope for each scope type (zone, region, global) should be included in the response. For new resource types added after this field, the flag has no effect as new resource types will always include every visible scope for each scope type in response. For resource types which predate this field, if this flag is omitted or false, only scopes of the scope types where the resource type is expected to be found will be included.

serviceProjectNumber

string (int64 format)

The Shared VPC service project id or service project number for which aggregated list request is invoked for subnetworks list-usable api.

Request body

The request body must be empty.

Response body

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

JSON representation
{
  "kind": string,
  "id": string,
  "items": {
    string: {
      "haControllers": [
        {
          "kind": string,
          "id": string,
          "creationTimestamp": string,
          "name": string,
          "description": string,
          "selfLink": string,
          "selfLinkWithId": string,
          "region": string,
          "zoneConfigurations": {
            string: {
              "reservationAffinity": {
                "consumeReservationType": enum,
                "key": string,
                "values": [
                  string
                ]
              },
              "nodeAffinities": [
                {
                  "key": string,
                  "operator": enum,
                  "values": [
                    string
                  ]
                }
              ]
            },
            ...
          },
          "instanceName": string,
          "status": {
            "primaryZone": string,
            "primaryInstance": string,
            "ongoingFailover": boolean,
            "readyForFailover": boolean,
            "failoverProgress": {
              "failoverTrigger": enum,
              "failoverTriggerTimestamp": string,
              "failoverCompleteTimestamp": string,
              "lastFailoverAttempt": {
                "errors": {
                  "errors": [
                    {
                      "code": string,
                      "location": string,
                      "message": string,
                      "errorDetails": [
                        {

                          // The following is a list of mutually exclusive fields. At most one of the
                          // fields will be set in a response:
                          "errorInfo": {
                            "reason": string,
                            "domain": string,
                            "metadatas": {
                              string: string,
                              ...
                            }
                          },
                          "quotaInfo": {
                            "metricName": string,
                            "limitName": string,
                            "dimensions": {
                              string: string,
                              ...
                            },
                            "limit": number,
                            "futureLimit": number,
                            "rolloutStatus": enum
                          },
                          "help": {
                            "links": [
                              {
                                "description": string,
                                "url": string
                              }
                            ]
                          },
                          "localizedMessage": {
                            "locale": string,
                            "message": string
                          }
                          // End of mutually exclusive fields.
                        }
                      ]
                    }
                  ]
                },
                "timestamp": string
              },
              "failoverDuration": string
            },
            "lastFailoverInfo": {
              "failoverTrigger": enum,
              "failoverTriggerTimestamp": string,
              "failoverCompleteTimestamp": string,
              "lastFailoverAttempt": {
                "errors": {
                  "errors": [
                    {
                      "code": string,
                      "location": string,
                      "message": string,
                      "errorDetails": [
                        {

                          // The following is a list of mutually exclusive fields. At most one of the
                          // fields will be set in a response:
                          "errorInfo": {
                            "reason": string,
                            "domain": string,
                            "metadatas": {
                              string: string,
                              ...
                            }
                          },
                          "quotaInfo": {
                            "metricName": string,
                            "limitName": string,
                            "dimensions": {
                              string: string,
                              ...
                            },
                            "limit": number,
                            "futureLimit": number,
                            "rolloutStatus": enum
                          },
                          "help": {
                            "links": [
                              {
                                "description": string,
                                "url": string
                              }
                            ]
                          },
                          "localizedMessage": {
                            "locale": string,
                            "message": string
                          }
                          // End of mutually exclusive fields.
                        }
                      ]
                    }
                  ]
                },
                "timestamp": string
              },
              "failoverDuration": string
            },
            "zoneStatus": {
              string: {
                "isPrimary": boolean,
                "isZoneReady": boolean,
                "lastError": {
                  "errors": {
                    "errors": [
                      {
                        "code": string,
                        "location": string,
                        "message": string,
                        "errorDetails": [
                          {
                            "errorInfo": {
                              "reason": string,
                              "domain": string,
                              "metadatas": {
                                string: string,
                                ...
                              }
                            },
                            "quotaInfo": {
                              "metricName": string,
                              "limitName": string,
                              "dimensions": {
                                string: string,
                                ...
                              },
                              "limit": number,
                              "futureLimit": number,
                              "rolloutStatus": enum
                            },
                            "help": {
                              "links": [
                                {
                                  "description": string,
                                  "url": string
                                }
                              ]
                            },
                            "localizedMessage": {
                              "locale": string,
                              "message": string
                            }
                          }
                        ]
                      }
                    ]
                  },
                  "timestamp": string
                }
              },
              ...
            }
          },
          "failoverInitiation": enum,
          "networkingAutoConfiguration": {
            "internal": {
              "stackType": enum,
              "ipAddress": string,
              "ipv6Address": string
            }
          },
          "backendServices": [
            string
          ],
          "state": enum
        }
      ],
      "warning": {
        "code": enum,
        "message": string,
        "data": [
          {
            "key": string,
            "value": string
          }
        ]
      }
    },
    ...
  },
  "nextPageToken": string,
  "selfLink": string,
  "warning": {
    "code": enum,
    "message": string,
    "data": [
      {
        "key": string,
        "value": string
      }
    ]
  },
  "etag": string,
  "unreachables": [
    string
  ]
}
Fields
kind

string

Output only. Type of resource. Always compute#haControllersAggregatedList for lists of HaControllers.

id

string

Output only. Unique identifier for the resource; defined by the server.

items

map (key: string, value: object)

A list of HaControllersScopedList resources.

Key: Name of the scope containing this set of ha controllers.

Available from 2026-10-01-preview..

items.haControllers[]

object

haControllers.list of HaControllers contained in this scope.

items.haControllers[].kind

string

Output only. Type of the resource. Always compute#haController for HaControllers.

items.haControllers[].id

string (uint64 format)

Output only. The unique identifier for the resource. This identifier is defined by the server.

items.haControllers[].creationTimestamp

string

Output only. Creation timestamp in RFC3339 text format.

items.haControllers[].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. 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.

items.haControllers[].description

string

An optional description of this resource. Provide this property when you create the resource.

items.haControllers[].selfLink

string

Output only. Server-defined URL for the resource.

items.haControllers[].selfLinkWithId

string

Output only. Server-defined URL for this resource with the resource id.

items.haControllers[].region

string

Output only. URL of the region where the resource resides. You must specify this field as part of the HTTP request URL. It is not settable as a field in the request body.

items.haControllers[].zoneConfigurations[]

map (key: string, value: object)

Map of zone configurations Key: name of the zone Value: ZoneConfiguration

items.haControllers[].zoneConfigurations[].reservationAffinity

object

Specifies the reservations that the instance can consume from.

items.haControllers[].zoneConfigurations[].reservationAffinity.consumeReservationType

enum

Specifies the type of reservation from which this instance can consume resources: ANY_RESERVATION (default), SPECIFIC_RESERVATION, or NO_RESERVATION. See Consuming reserved instances for examples.

items.haControllers[].zoneConfigurations[].reservationAffinity.key

string

Corresponds to the label key of a reservation resource. To target a SPECIFIC_RESERVATION by name, specify googleapis.com/reservation-name as the key and specify the name of your reservation as its value.

items.haControllers[].zoneConfigurations[].reservationAffinity.values[]

string

Corresponds to the label values of a reservation resource. This can be either a name to a reservation in the same project or "projects/different-project/reservations/some-reservation-name" to target a shared reservation in the same zone but in a different project.

items.haControllers[].zoneConfigurations[].nodeAffinities[]

object

A set of node affinity configurations. Refer to Configuring node affinity for more information. Overrides reservationAffinity.

items.haControllers[].zoneConfigurations[].nodeAffinities[].key

string

Corresponds to the label key of Node resource.

items.haControllers[].zoneConfigurations[].nodeAffinities[].operator

enum

Defines the operation of node selection. Valid operators are IN for affinity and NOT_IN for anti-affinity.

items.haControllers[].zoneConfigurations[].nodeAffinities[].values[]

string

Corresponds to the label values of Node resource.

items.haControllers[].instanceName

string

Name of the instance that HaController is in charge of. If not specified the HaController's resource name will be used instead. The name must be 1-63 characters long, and comply with RFC1035. 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.

items.haControllers[].status

object

Output only. Status information for the HaController resource.

items.haControllers[].status.primaryZone

string

Output only. The name of the zone that is intended to be primary at this moment. Primary zone will be changed at the very beginning of a failover operation. The zone may not be operational in the middle of a failover operation.

items.haControllers[].status.primaryInstance

string

Output only. The URL to the instance that is intended to be primary at this moment. Primary instance will be changed at the very beginning of a failover operation.

items.haControllers[].status.ongoingFailover

boolean

Output only. Indicates if the failover is currently in-progress.

items.haControllers[].status.readyForFailover

boolean

Output only. Indicates if the resource is ready for initiating a failover to the secondary zone.

items.haControllers[].status.failoverProgress

object

Output only. Contains the details of the ongoing failover. This message is not displayed if failover is NOT in progress.

items.haControllers[].status.failoverProgress.failoverTrigger

enum

Output only. Indicates if failover has been triggered automatically or manually.

items.haControllers[].status.failoverProgress.failoverTriggerTimestamp

string (Timestamp format)

Output only. Timestamp of the last failover trigger.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

items.haControllers[].status.failoverProgress.failoverCompleteTimestamp

string (Timestamp format)

Output only. Timestamp of the failover completion. Filled only if the failover is completed, in lastFailoverInfo.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

items.haControllers[].status.failoverProgress.lastFailoverAttempt

object

Output only. Contains details of the last failed failover. This field is filled only if the current failover is failing

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors

object

Output only. Encountered errors during the last attempt to process failover.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[]

object

Output only. The array of errors encountered while processing this operation.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].code

string

Output only. The error type identifier for this error.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].location

string

Output only. Indicates the field in the request that caused the error. This property is optional.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].message

string

Output only. An optional, human-readable error message.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[]

object

Output only. An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].errorInfo

object

Error information containing structured domain, reason, and metadata.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].errorInfo.reason

string

The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].errorInfo.domain

string

The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com".

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].errorInfo.metadatas

map (key: string, value: string)

Additional structured details about this error.

Keys must match a regular expression of [a-z][a-zA-Z0-9-_]+ but should ideally be lowerCamelCase. Also, they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].quotaInfo

object

Details about quota limits and metrics when a quota is exceeded.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].quotaInfo.metricName

string

The Compute Engine quota metric name.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].quotaInfo.limitName

string

The name of the quota limit.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].quotaInfo.dimensions

map (key: string, value: string)

The map holding related quota dimensions.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].quotaInfo.limit

number

Current effective quota limit. The limit's unit depends on the quota type or metric.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].quotaInfo.futureLimit

number

Future quota limit being rolled out. The limit's unit depends on the quota type or metric.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].quotaInfo.rolloutStatus

enum

Rollout status of the future quota limit.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].help

object

Links and information to help the user resolve the error.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].help.links[]

object

URL(s) pointing to additional information on handling the current error.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].help.links[].description

string

Describes what the link offers.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].help.links[].url

string

The URL of the link.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].localizedMessage

object

A localized human-readable error message intended for end users.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].localizedMessage.locale

string

The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"

items.haControllers[].status.failoverProgress.lastFailoverAttempt.errors.errors[].errorDetails[].localizedMessage.message

string

The localized error message in the above locale.

items.haControllers[].status.failoverProgress.lastFailoverAttempt.timestamp

string (Timestamp format)

Output only. Show timestamp only if there is an error. RFC3339 text format.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

items.haControllers[].status.failoverProgress.failoverDuration

string (Duration format)

Output only. The duration of the last failover.

A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".

items.haControllers[].status.lastFailoverInfo

object

Output only. Contains the details of the last successful failover.

items.haControllers[].status.lastFailoverInfo.failoverTrigger

enum

Output only. Indicates if failover has been triggered automatically or manually.

items.haControllers[].status.lastFailoverInfo.failoverTriggerTimestamp

string (Timestamp format)

Output only. Timestamp of the last failover trigger.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

items.haControllers[].status.lastFailoverInfo.failoverCompleteTimestamp

string (Timestamp format)

Output only. Timestamp of the failover completion. Filled only if the failover is completed, in lastFailoverInfo.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt

object

Output only. Contains details of the last failed failover. This field is filled only if the current failover is failing

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors

object

Output only. Encountered errors during the last attempt to process failover.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[]

object

Output only. The array of errors encountered while processing this operation.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].code

string

Output only. The error type identifier for this error.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].location

string

Output only. Indicates the field in the request that caused the error. This property is optional.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].message

string

Output only. An optional, human-readable error message.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[]

object

Output only. An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].errorInfo

object

Error information containing structured domain, reason, and metadata.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].errorInfo.reason

string

The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].errorInfo.domain

string

The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com".

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].errorInfo.metadatas

map (key: string, value: string)

Additional structured details about this error.

Keys must match a regular expression of [a-z][a-zA-Z0-9-_]+ but should ideally be lowerCamelCase. Also, they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].quotaInfo

object

Details about quota limits and metrics when a quota is exceeded.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].quotaInfo.metricName

string

The Compute Engine quota metric name.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].quotaInfo.limitName

string

The name of the quota limit.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].quotaInfo.dimensions

map (key: string, value: string)

The map holding related quota dimensions.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].quotaInfo.limit

number

Current effective quota limit. The limit's unit depends on the quota type or metric.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].quotaInfo.futureLimit

number

Future quota limit being rolled out. The limit's unit depends on the quota type or metric.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].quotaInfo.rolloutStatus

enum

Rollout status of the future quota limit.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].help

object

Links and information to help the user resolve the error.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].help.links[]

object

URL(s) pointing to additional information on handling the current error.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].help.links[].description

string

Describes what the link offers.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].help.links[].url

string

The URL of the link.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].localizedMessage

object

A localized human-readable error message intended for end users.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].localizedMessage.locale

string

The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.errors.errors[].errorDetails[].localizedMessage.message

string

The localized error message in the above locale.

items.haControllers[].status.lastFailoverInfo.lastFailoverAttempt.timestamp

string (Timestamp format)

Output only. Show timestamp only if there is an error. RFC3339 text format.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

items.haControllers[].status.lastFailoverInfo.failoverDuration

string (Duration format)

Output only. The duration of the last failover.

A duration in seconds with up to nine fractional digits, ending with 's'. Example: "3.5s".

items.haControllers[].status.zoneStatus[]

map (key: string, value: object)

Output only. Map of zone statuses. Key: name of the zone Value: ZoneStatus

items.haControllers[].status.zoneStatus[].isPrimary

boolean

Output only. Indicates if the zone is primary at this moment.

items.haControllers[].status.zoneStatus[].isZoneReady

boolean

Output only. Indicates if the zone is ready for initiating a failover.

items.haControllers[].status.zoneStatus[].lastError

object

Output only. This field is filled only if the current operation is failing.

items.haControllers[].status.zoneStatus[].lastError.errors

object

Output only. Encountered errors.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[]

object

Output only. The array of errors encountered while processing this operation.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].code

string

Output only. The error type identifier for this error.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].location

string

Output only. Indicates the field in the request that caused the error. This property is optional.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].message

string

Output only. An optional, human-readable error message.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[]

object

Output only. An optional list of messages that contain the error details. There is a set of defined message types to use for providing details.The syntax depends on the error code. For example, QuotaExceededInfo will have details when the error code is QUOTA_EXCEEDED.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].errorInfo

object

Error information containing structured domain, reason, and metadata.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].errorInfo.reason

string

The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].errorInfo.domain

string

The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com".

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].errorInfo.metadatas

map (key: string, value: string)

Additional structured details about this error.

Keys must match a regular expression of [a-z][a-zA-Z0-9-_]+ but should ideally be lowerCamelCase. Also, they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].quotaInfo

object

Details about quota limits and metrics when a quota is exceeded.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].quotaInfo.metricName

string

The Compute Engine quota metric name.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].quotaInfo.limitName

string

The name of the quota limit.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].quotaInfo.dimensions

map (key: string, value: string)

The map holding related quota dimensions.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].quotaInfo.limit

number

Current effective quota limit. The limit's unit depends on the quota type or metric.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].quotaInfo.futureLimit

number

Future quota limit being rolled out. The limit's unit depends on the quota type or metric.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].quotaInfo.rolloutStatus

enum

Rollout status of the future quota limit.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].help

object

Links and information to help the user resolve the error.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].help.links[]

object

URL(s) pointing to additional information on handling the current error.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].help.links[].description

string

Describes what the link offers.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].help.links[].url

string

The URL of the link.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].localizedMessage

object

A localized human-readable error message intended for end users.

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].localizedMessage.locale

string

The locale used following the specification defined at https://www.rfc-editor.org/rfc/bcp/bcp47.txt. Examples are: "en-US", "fr-CH", "es-MX"

items.haControllers[].status.zoneStatus[].lastError.errors.errors[].errorDetails[].localizedMessage.message

string

The localized error message in the above locale.

items.haControllers[].status.zoneStatus[].lastError.timestamp

string (Timestamp format)

Output only. Show timestamp only if there is an error. RFC3339 text format.

Uses RFC 3339, where generated output will always be Z-normalized and use 0, 3, 6 or 9 fractional digits. Offsets other than "Z" are also accepted. Examples: "2014-10-02T15:01:23Z", "2014-10-02T15:01:23.045123456Z" or "2014-10-02T15:01:23+05:30".

items.haControllers[].failoverInitiation

enum

Indicates how failover should be initiated.

items.haControllers[].networkingAutoConfiguration

object

Basic networking configuration. Required backend services and forwarding rules will be automatically created with default parameters.

items.haControllers[].networkingAutoConfiguration.internal

object

Internal networking configuration

items.haControllers[].networkingAutoConfiguration.internal.stackType

enum

Determine which IP addresses to automatically create. Field and option naming consistent with NetworkInterface configuration on Instances.

items.haControllers[].networkingAutoConfiguration.internal.ipAddress

string

Optional. IP addresses will be automatically allocated according to StackType if not provided.

items.haControllers[].networkingAutoConfiguration.internal.ipv6Address

string

items.haControllers[].backendServices[]

string

Advanced configuration option. If specified, these Backend Services need to be pre-created.

Currently, only one backend service can be specified, and it must be L4 Internal Load Balancer (ILB).

items.haControllers[].state

enum

Output only. The current state of the HA Controller.

items.warning

object

Informational warning which replaces the list of backend services when the list is empty.

items.warning.code

enum

Output only. A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.

items.warning.message

string

Output only. A human-readable description of the warning code.

items.warning.data[]

object

Output only. Metadata about this warning in key: value format. For example:

"data": [  {  "key": "scope",  "value": "zones/us-east1-d"  }]

items.warning.data[].key

string

Output only. A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).

items.warning.data[].value

string

Output only. A warning data value corresponding to the key.

nextPageToken

string

Output only. This token allows you to get the next page of results for list requests. If the number of results is larger than maxResults, use the nextPageToken as a value for the query parameter pageToken in the next list request. Subsequent list requests will have their own nextPageToken to continue paging through the results.

warning

object

Output only. Informational warning message.

warning.code

enum

Output only. A warning code, if applicable. For example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in the response.

warning.message

string

Output only. A human-readable description of the warning code.

warning.data[]

object

Output only. Metadata about this warning in key: value format. For example:

"data": [  {  "key": "scope",  "value": "zones/us-east1-d"  }]

warning.data[].key

string

Output only. A key that provides more detail on the warning being returned. For example, for warnings where there are no results in a list request for a particular zone, this key might be scope and the key value might be the zone name. Other examples might be a key indicating a deprecated resource and a suggested replacement, or a warning about invalid network settings (for example, if an instance attempts to perform IP forwarding but is not enabled for IP forwarding).

warning.data[].value

string

Output only. A warning data value corresponding to the key.

etag

string

Available from 2026-10-01-preview..

unreachables[]

string

Output only. Unreachable resources.

Available from 2026-10-01-preview..

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.

IAM Permissions

In addition to any permissions specified on the fields above, authorization requires one or more of the following IAM permissions:

  • compute.haControllers.list

To find predefined roles that contain those permissions, see Compute Engine IAM Roles.