Method: instanceGroupManagers.updatePerInstanceConfigs

Inserts or updates per-instance configurations for the managed instance group.

perInstanceConfig.name

serves as a key used to distinguish whether to perform insert or patch.

HTTP request

POST https://compute.s3nsapis.fr/compute/v1/projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs

The URL uses gRPC Transcoding syntax. To know more about valid error responses that can be thrown by this HTTP request, please refer to the service error catalog

Path parameters

Parameters
project

string

Project ID for this request.

zone

string

The name of the zone where the managed instance group is located. It should conform to RFC1035.

instanceGroupManager

string

The name of the managed instance group. It should conform to RFC1035.

Authorization requires the following IAM permission on the specified resource instanceGroupManager:

  • compute.instanceGroupManagers.update

Query parameters

Parameters
requestId

string

An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.

For example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.

The request ID must be a valid UUID with the exception that zero UUID is not supported (

00000000-0000-0000-0000-000000000000

).

Request body

The request body contains data with the following structure:

JSON representation
{
  "perInstanceConfigs": [
    {
      "name": string,
      "preservedState": {
        "disks": {
          string: {
            object (PreservedDisk)
          },
          ...
        },
        "metadata": {
          string: string,
          ...
        },
        "internalIPs": {
          string: {
            object (PreservedNetworkIp)
          },
          ...
        },
        "externalIPs": {
          string: {
            object (PreservedNetworkIp)
          },
          ...
        }
      },
      "status": enum (ApplicationStatus),
      "fingerprint": string
    }
  ]
}
Fields
perInstanceConfigs[].name

string

The name of a per-instance configuration and its corresponding instance. Serves as a merge key during

instanceGroupManagers.updatePerInstanceConfigs

operations, that is, if a per-instance configuration with the same name exists then it will be updated, otherwise a new one will be created for the VM instance with the same name. An attempt to create a per-instance configuration for a VM instance that either doesn't exist or is not part of the group will result in an error.

perInstanceConfigs[].preservedState.disks

map (key: string, value: object (PreservedDisk))

Preserved disks defined for this instance. This map is keyed with the device names of the disks.

perInstanceConfigs[].preservedState.metadata

map (key: string, value: string)

Preserved metadata defined for this instance.

perInstanceConfigs[].preservedState.internalIPs

map (key: string, value: object (PreservedNetworkIp))

Preserved internal IPs defined for this instance. This map is keyed with the name of the network interface.

Authorization requires one or more of the following IAM permissions on the specified resource internalIPs:

  • compute.addresses.createInternal
  • compute.addresses.deleteInternal
  • compute.addresses.get
  • compute.addresses.useInternal
perInstanceConfigs[].preservedState.externalIPs

map (key: string, value: object (PreservedNetworkIp))

Preserved external IPs defined for this instance. This map is keyed with the name of the network interface.

Authorization requires one or more of the following IAM permissions on the specified resource externalIPs:

  • compute.addresses.create
  • compute.addresses.delete
  • compute.addresses.get
  • compute.addresses.use
perInstanceConfigs[].status

enum (ApplicationStatus)

The status of applying this per-instance configuration on the corresponding managed instance.

perInstanceConfigs[].fingerprint

string (bytes format)

Fingerprint of this per-instance config. This field can be used in optimistic locking. It is ignored when inserting a per-instance config. An up-to-date fingerprint must be provided in order to update an existing per-instance configuration or the field needs to be unset.

A base64-encoded string.

Response body

If successful, the response body contains an instance of Operation.

Authorization scopes

Requires one of the following OAuth scopes:

  • 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.disks.use

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