Bare Metal Solution API . projects . locations . instances

Instance Methods

close()

Close httplib2 connections.

detachLun(instance, body=None, x__xgafv=None)

Detach LUN from Instance.

disableHyperthreading(name, body=None, x__xgafv=None)

Perform disable hyperthreading operation on a single server.

disableInteractiveSerialConsole(name, body=None, x__xgafv=None)

Disable the interactive serial console feature on an instance.

enableHyperthreading(name, body=None, x__xgafv=None)

Perform enable hyperthreading operation on a single server.

enableInteractiveSerialConsole(name, body=None, x__xgafv=None)

Enable the interactive serial console feature on an instance.

get(name, x__xgafv=None)

Get details about a single server.

list(parent, filter=None, pageSize=None, pageToken=None, x__xgafv=None)

List servers in a given project and location.

list_next()

Retrieves the next page of results.

loadAuthInfo(name, x__xgafv=None)

Load auth info for a server.

patch(name, body=None, updateMask=None, x__xgafv=None)

Update details of a single server.

reimage(name, body=None, x__xgafv=None)

Perform reimage operation on a single server.

rename(name, body=None, x__xgafv=None)

RenameInstance sets a new name for an instance. Use with caution, previous names become immediately invalidated.

reset(name, body=None, x__xgafv=None)

Perform an ungraceful, hard reset on a server. Equivalent to shutting the power off and then turning it back on.

start(name, body=None, x__xgafv=None)

Starts a server that was shutdown.

stop(name, body=None, x__xgafv=None)

Stop a running server.

Method Details

close()
Close httplib2 connections.
detachLun(instance, body=None, x__xgafv=None)
Detach LUN from Instance.

Args:
  instance: string, Required. Name of the instance. (required)
  body: object, The request body.
    The object takes the form of:

{ # Message for detach specific LUN from an Instance.
  "lun": "A String", # Required. Name of the Lun to detach.
  "skipReboot": True or False, # If true, performs lun unmapping without instance reboot.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
disableHyperthreading(name, body=None, x__xgafv=None)
Perform disable hyperthreading operation on a single server.

Args:
  name: string, Required. The `name` field is used to identify the instance. Format: projects/{project}/locations/{location}/instances/{instance} (required)
  body: object, The request body.
    The object takes the form of:

{ # Message requesting to perform disable hyperthreading operation on a server.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
disableInteractiveSerialConsole(name, body=None, x__xgafv=None)
Disable the interactive serial console feature on an instance.

Args:
  name: string, Required. Name of the resource. (required)
  body: object, The request body.
    The object takes the form of:

{ # Message for disabling the interactive serial console on an instance.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
enableHyperthreading(name, body=None, x__xgafv=None)
Perform enable hyperthreading operation on a single server.

Args:
  name: string, Required. The `name` field is used to identify the instance. Format: projects/{project}/locations/{location}/instances/{instance} (required)
  body: object, The request body.
    The object takes the form of:

{ # Message requesting to perform enable hyperthreading operation on a server.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
enableInteractiveSerialConsole(name, body=None, x__xgafv=None)
Enable the interactive serial console feature on an instance.

Args:
  name: string, Required. Name of the resource. (required)
  body: object, The request body.
    The object takes the form of:

{ # Message for enabling the interactive serial console on an instance.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
get(name, x__xgafv=None)
Get details about a single server.

Args:
  name: string, Required. Name of the resource. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A server.
  "createTime": "A String", # Output only. Create a time stamp.
  "firmwareVersion": "A String", # Output only. The firmware version for the instance.
  "hyperthreadingEnabled": True or False, # True if you enable hyperthreading for the server, otherwise false. The default value is false.
  "id": "A String", # Output only. An identifier for the `Instance`, generated by the backend.
  "interactiveSerialConsoleEnabled": True or False, # Output only. True if the interactive serial console feature is enabled for the instance, false otherwise. The default value is false.
  "kmsKeyVersion": "A String", # Optional. Name of the KMS crypto key version used to encrypt the initial passwords. The key has to have ASYMMETRIC_DECRYPT purpose. Format is `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}/cryptoKeyVersions/{version}`.
  "labels": { # Labels as key value pairs.
    "a_key": "A String",
  },
  "logicalInterfaces": [ # List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. For the non-multivlan configurations (for eg, existing servers) that use existing default network template (bondaa-bondaa), both the Instance.networks field and the Instance.logical_interfaces fields will be filled to ensure backward compatibility. For the others, only Instance.logical_interfaces will be filled.
    { # Each logical interface represents a logical abstraction of the underlying physical interface (for eg. bond, nic) of the instance. Each logical interface can effectively map to multiple network-IP pairs and still be mapped to one underlying physical interface.
      "interfaceIndex": 42, # The index of the logical interface mapping to the index of the hardware bond or nic on the chosen network template. This field is deprecated.
      "logicalNetworkInterfaces": [ # List of logical network interfaces within a logical interface.
        { # Each logical network interface is effectively a network and IP pair.
          "defaultGateway": True or False, # Whether this interface is the default gateway for the instance. Only one interface can be the default gateway for the instance.
          "id": "A String", # An identifier for the `Network`, generated by the backend.
          "ipAddress": "A String", # IP address in the network
          "network": "A String", # Name of the network
          "networkType": "A String", # Type of network.
        },
      ],
      "name": "A String", # Interface name. This is of syntax or and forms part of the network template name.
    },
  ],
  "loginInfo": "A String", # Output only. Text field about info for logging in.
  "luns": [ # Immutable. List of LUNs associated with this server.
    { # A storage volume logical unit number (LUN).
      "bootLun": True or False, # Display if this LUN is a boot LUN.
      "expireTime": "A String", # Output only. Time after which LUN will be fully deleted. It is filled only for LUNs in COOL_OFF state.
      "id": "A String", # An identifier for the LUN, generated by the backend.
      "instances": [ # Output only. Instances this Lun is attached to.
        "A String",
      ],
      "multiprotocolType": "A String", # The LUN multiprotocol type ensures the characteristics of the LUN are optimized for each operating system.
      "name": "A String", # Output only. The name of the LUN.
      "shareable": True or False, # Display if this LUN can be shared between multiple physical servers.
      "sizeGb": "A String", # The size of this LUN, in GiB.
      "state": "A String", # The state of this storage volume.
      "storageType": "A String", # The storage type for this LUN.
      "storageVolume": "A String", # Display the storage volume for this LUN.
      "wwid": "A String", # The WWID for this LUN.
    },
  ],
  "machineType": "A String", # Immutable. The server type. [Available server types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
  "name": "A String", # Immutable. The resource name of this `Instance`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/instances/{instance}`
  "networkTemplate": "A String", # Instance network template name. For eg, bondaa-bondaa, bondab-nic, etc. Generally, the template name follows the syntax of "bond" or "nic".
  "networks": [ # Output only. List of networks associated with this server.
    { # A Network.
      "cidr": "A String", # The cidr of the Network.
      "gatewayIp": "A String", # Output only. Gateway ip address.
      "id": "A String", # An identifier for the `Network`, generated by the backend.
      "ipAddress": "A String", # IP address configured.
      "jumboFramesEnabled": True or False, # Whether network uses standard frames or jumbo ones.
      "labels": { # Labels as key value pairs.
        "a_key": "A String",
      },
      "macAddress": [ # List of physical interfaces.
        "A String",
      ],
      "mountPoints": [ # Input only. List of mount points to attach the network to.
        { # Mount point for a network.
          "defaultGateway": True or False, # Network should be a default gateway.
          "instance": "A String", # Instance to attach network to.
          "ipAddress": "A String", # Ip address of the server.
          "logicalInterface": "A String", # Logical interface to detach from.
        },
      ],
      "name": "A String", # Output only. The resource name of this `Network`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/networks/{network}`
      "pod": "A String", # Immutable. Pod name. Pod is an independent part of infrastructure. Network can only be connected to the assets (instances, nfsshares) allocated in the same pod.
      "reservations": [ # List of IP address reservations in this network. When updating this field, an error will be generated if a reservation conflicts with an IP address already allocated to a physical server.
        { # A reservation of one or more addresses in a network.
          "endAddress": "A String", # The last address of this reservation block, inclusive. I.e., for cases when reservations are only single addresses, end_address and start_address will be the same. Must be specified as a single IPv4 address, e.g. 10.1.2.2.
          "note": "A String", # A note about this reservation, intended for human consumption.
          "startAddress": "A String", # The first address of this reservation block. Must be specified as a single IPv4 address, e.g. 10.1.2.2.
        },
      ],
      "servicesCidr": "A String", # IP range for reserved for services (e.g. NFS).
      "state": "A String", # The Network state.
      "type": "A String", # The type of this network.
      "vlanId": "A String", # The vlan id of the Network.
      "vrf": { # A network VRF. # The Vrf for the Network. Use this only if a new Vrf needs to be created.
        "name": "A String", # The name of the VRF.
        "qosPolicy": { # QOS policy parameters. # The QOS policy applied to this VRF. The value is only meaningful when all the vlan attachments have the same QoS. This field should not be used for new integrations, use vlan attachment level qos instead. The field is left for backward-compatibility.
          "bandwidthGbps": 3.14, # The bandwidth permitted by the QOS policy, in gbps.
        },
        "state": "A String", # The possible state of VRF.
        "vlanAttachments": [ # The list of VLAN attachments for the VRF.
          { # VLAN attachment details.
            "id": "A String", # Immutable. The identifier of the attachment within vrf.
            "interconnectAttachment": "A String", # Optional. The name of the vlan attachment within vrf. This is of the form projects/{project_number}/regions/{region}/interconnectAttachments/{interconnect_attachment}
            "pairingKey": "A String", # Input only. Pairing key.
            "peerIp": "A String", # The peer IP of the attachment.
            "peerVlanId": "A String", # The peer vlan ID of the attachment.
            "qosPolicy": { # QOS policy parameters. # The QOS policy applied to this VLAN attachment. This value should be preferred to using qos at vrf level.
              "bandwidthGbps": 3.14, # The bandwidth permitted by the QOS policy, in gbps.
            },
            "routerIp": "A String", # The router IP of the attachment.
          },
        ],
      },
      "vrfAttachment": "A String", # Optional. The name of a pre-existing Vrf that the network should be attached to. Format is `vrfs/{vrf}`.
    },
  ],
  "osImage": "A String", # The OS image currently installed on the server.
  "pod": "A String", # Immutable. Pod name. Pod is an independent part of infrastructure. Instance can only be connected to the assets (networks, volumes) allocated in the same pod.
  "sshKeys": [ # Optional. List of SSH Keys used during instance provisioning.
    "A String",
  ],
  "state": "A String", # Output only. The state of the server.
  "updateTime": "A String", # Output only. Update a time stamp.
  "volumes": [ # Input only. List of Volumes to attach to this Instance on creation. This field won't be populated in Get/List responses.
    { # A storage volume.
      "attached": True or False, # Output only. Is the Volume attached at at least one instance. This field is a lightweight counterpart of `instances` field. It is filled in List responses as well.
      "autoGrownSizeGib": "A String", # The size, in GiB, that this storage volume has expanded as a result of an auto grow policy. In the absence of auto-grow, the value is 0.
      "bootVolume": True or False, # Output only. Whether this volume is a boot volume. A boot volume is one which contains a boot LUN.
      "currentSizeGib": "A String", # The current size of this storage volume, in GiB, including space reserved for snapshots. This size might be different than the requested size if the storage volume has been configured with auto grow or auto shrink.
      "emergencySizeGib": "A String", # Additional emergency size that was requested for this Volume, in GiB. current_size_gib includes this value.
      "expireTime": "A String", # Output only. Time after which volume will be fully deleted. It is filled only for volumes in COOLOFF state.
      "id": "A String", # An identifier for the `Volume`, generated by the backend.
      "instances": [ # Output only. Instances this Volume is attached to. This field is set only in Get requests.
        "A String",
      ],
      "labels": { # Labels as key value pairs.
        "a_key": "A String",
      },
      "maxSizeGib": "A String", # Maximum size volume can be expanded to in case of evergency, in GiB.
      "name": "A String", # Output only. The resource name of this `Volume`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/volumes/{volume}`
      "notes": "A String", # Input only. User-specified notes for new Volume. Used to provision Volumes that require manual intervention.
      "originallyRequestedSizeGib": "A String", # Originally requested size, in GiB.
      "performanceTier": "A String", # Immutable. Performance tier of the Volume. Default is SHARED.
      "pod": "A String", # Immutable. Pod name. Pod is an independent part of infrastructure. Volume can only be connected to the instances allocated in the same pod.
      "protocol": "A String", # Output only. Storage protocol for the Volume.
      "remainingSpaceGib": "A String", # The space remaining in the storage volume for new LUNs, in GiB, excluding space reserved for snapshots.
      "requestedSizeGib": "A String", # The requested size of this storage volume, in GiB.
      "snapshotAutoDeleteBehavior": "A String", # The behavior to use when snapshot reserved space is full.
      "snapshotEnabled": True or False, # Whether snapshots are enabled.
      "snapshotReservationDetail": { # Details about snapshot space reservation and usage on the storage volume. # Details about snapshot space reservation and usage on the storage volume.
        "reservedSpaceGib": "A String", # The space on this storage volume reserved for snapshots, shown in GiB.
        "reservedSpacePercent": 42, # Percent of the total Volume size reserved for snapshot copies. Enabling snapshots requires reserving 20% or more of the storage volume space for snapshots. Maximum reserved space for snapshots is 40%. Setting this field will effectively set snapshot_enabled to true.
        "reservedSpaceRemainingGib": "A String", # The amount, in GiB, of available space in this storage volume's reserved snapshot space.
        "reservedSpaceUsedPercent": 42, # The percent of snapshot space on this storage volume actually being used by the snapshot copies. This value might be higher than 100% if the snapshot copies have overflowed into the data portion of the storage volume.
      },
      "state": "A String", # The state of this storage volume.
      "storageType": "A String", # The storage type for this volume.
      "workloadProfile": "A String", # The workload profile for the volume.
    },
  ],
  "workloadProfile": "A String", # The workload profile for the instance.
}
list(parent, filter=None, pageSize=None, pageToken=None, x__xgafv=None)
List servers in a given project and location.

Args:
  parent: string, Required. Parent value for ListInstancesRequest. (required)
  filter: string, List filter.
  pageSize: integer, Requested page size. Server may return fewer items than requested. If unspecified, the server will pick an appropriate default.
  pageToken: string, A token identifying a page of results from the server.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message for the list of servers.
  "instances": [ # The list of servers.
    { # A server.
      "createTime": "A String", # Output only. Create a time stamp.
      "firmwareVersion": "A String", # Output only. The firmware version for the instance.
      "hyperthreadingEnabled": True or False, # True if you enable hyperthreading for the server, otherwise false. The default value is false.
      "id": "A String", # Output only. An identifier for the `Instance`, generated by the backend.
      "interactiveSerialConsoleEnabled": True or False, # Output only. True if the interactive serial console feature is enabled for the instance, false otherwise. The default value is false.
      "kmsKeyVersion": "A String", # Optional. Name of the KMS crypto key version used to encrypt the initial passwords. The key has to have ASYMMETRIC_DECRYPT purpose. Format is `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}/cryptoKeyVersions/{version}`.
      "labels": { # Labels as key value pairs.
        "a_key": "A String",
      },
      "logicalInterfaces": [ # List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. For the non-multivlan configurations (for eg, existing servers) that use existing default network template (bondaa-bondaa), both the Instance.networks field and the Instance.logical_interfaces fields will be filled to ensure backward compatibility. For the others, only Instance.logical_interfaces will be filled.
        { # Each logical interface represents a logical abstraction of the underlying physical interface (for eg. bond, nic) of the instance. Each logical interface can effectively map to multiple network-IP pairs and still be mapped to one underlying physical interface.
          "interfaceIndex": 42, # The index of the logical interface mapping to the index of the hardware bond or nic on the chosen network template. This field is deprecated.
          "logicalNetworkInterfaces": [ # List of logical network interfaces within a logical interface.
            { # Each logical network interface is effectively a network and IP pair.
              "defaultGateway": True or False, # Whether this interface is the default gateway for the instance. Only one interface can be the default gateway for the instance.
              "id": "A String", # An identifier for the `Network`, generated by the backend.
              "ipAddress": "A String", # IP address in the network
              "network": "A String", # Name of the network
              "networkType": "A String", # Type of network.
            },
          ],
          "name": "A String", # Interface name. This is of syntax or and forms part of the network template name.
        },
      ],
      "loginInfo": "A String", # Output only. Text field about info for logging in.
      "luns": [ # Immutable. List of LUNs associated with this server.
        { # A storage volume logical unit number (LUN).
          "bootLun": True or False, # Display if this LUN is a boot LUN.
          "expireTime": "A String", # Output only. Time after which LUN will be fully deleted. It is filled only for LUNs in COOL_OFF state.
          "id": "A String", # An identifier for the LUN, generated by the backend.
          "instances": [ # Output only. Instances this Lun is attached to.
            "A String",
          ],
          "multiprotocolType": "A String", # The LUN multiprotocol type ensures the characteristics of the LUN are optimized for each operating system.
          "name": "A String", # Output only. The name of the LUN.
          "shareable": True or False, # Display if this LUN can be shared between multiple physical servers.
          "sizeGb": "A String", # The size of this LUN, in GiB.
          "state": "A String", # The state of this storage volume.
          "storageType": "A String", # The storage type for this LUN.
          "storageVolume": "A String", # Display the storage volume for this LUN.
          "wwid": "A String", # The WWID for this LUN.
        },
      ],
      "machineType": "A String", # Immutable. The server type. [Available server types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
      "name": "A String", # Immutable. The resource name of this `Instance`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/instances/{instance}`
      "networkTemplate": "A String", # Instance network template name. For eg, bondaa-bondaa, bondab-nic, etc. Generally, the template name follows the syntax of "bond" or "nic".
      "networks": [ # Output only. List of networks associated with this server.
        { # A Network.
          "cidr": "A String", # The cidr of the Network.
          "gatewayIp": "A String", # Output only. Gateway ip address.
          "id": "A String", # An identifier for the `Network`, generated by the backend.
          "ipAddress": "A String", # IP address configured.
          "jumboFramesEnabled": True or False, # Whether network uses standard frames or jumbo ones.
          "labels": { # Labels as key value pairs.
            "a_key": "A String",
          },
          "macAddress": [ # List of physical interfaces.
            "A String",
          ],
          "mountPoints": [ # Input only. List of mount points to attach the network to.
            { # Mount point for a network.
              "defaultGateway": True or False, # Network should be a default gateway.
              "instance": "A String", # Instance to attach network to.
              "ipAddress": "A String", # Ip address of the server.
              "logicalInterface": "A String", # Logical interface to detach from.
            },
          ],
          "name": "A String", # Output only. The resource name of this `Network`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/networks/{network}`
          "pod": "A String", # Immutable. Pod name. Pod is an independent part of infrastructure. Network can only be connected to the assets (instances, nfsshares) allocated in the same pod.
          "reservations": [ # List of IP address reservations in this network. When updating this field, an error will be generated if a reservation conflicts with an IP address already allocated to a physical server.
            { # A reservation of one or more addresses in a network.
              "endAddress": "A String", # The last address of this reservation block, inclusive. I.e., for cases when reservations are only single addresses, end_address and start_address will be the same. Must be specified as a single IPv4 address, e.g. 10.1.2.2.
              "note": "A String", # A note about this reservation, intended for human consumption.
              "startAddress": "A String", # The first address of this reservation block. Must be specified as a single IPv4 address, e.g. 10.1.2.2.
            },
          ],
          "servicesCidr": "A String", # IP range for reserved for services (e.g. NFS).
          "state": "A String", # The Network state.
          "type": "A String", # The type of this network.
          "vlanId": "A String", # The vlan id of the Network.
          "vrf": { # A network VRF. # The Vrf for the Network. Use this only if a new Vrf needs to be created.
            "name": "A String", # The name of the VRF.
            "qosPolicy": { # QOS policy parameters. # The QOS policy applied to this VRF. The value is only meaningful when all the vlan attachments have the same QoS. This field should not be used for new integrations, use vlan attachment level qos instead. The field is left for backward-compatibility.
              "bandwidthGbps": 3.14, # The bandwidth permitted by the QOS policy, in gbps.
            },
            "state": "A String", # The possible state of VRF.
            "vlanAttachments": [ # The list of VLAN attachments for the VRF.
              { # VLAN attachment details.
                "id": "A String", # Immutable. The identifier of the attachment within vrf.
                "interconnectAttachment": "A String", # Optional. The name of the vlan attachment within vrf. This is of the form projects/{project_number}/regions/{region}/interconnectAttachments/{interconnect_attachment}
                "pairingKey": "A String", # Input only. Pairing key.
                "peerIp": "A String", # The peer IP of the attachment.
                "peerVlanId": "A String", # The peer vlan ID of the attachment.
                "qosPolicy": { # QOS policy parameters. # The QOS policy applied to this VLAN attachment. This value should be preferred to using qos at vrf level.
                  "bandwidthGbps": 3.14, # The bandwidth permitted by the QOS policy, in gbps.
                },
                "routerIp": "A String", # The router IP of the attachment.
              },
            ],
          },
          "vrfAttachment": "A String", # Optional. The name of a pre-existing Vrf that the network should be attached to. Format is `vrfs/{vrf}`.
        },
      ],
      "osImage": "A String", # The OS image currently installed on the server.
      "pod": "A String", # Immutable. Pod name. Pod is an independent part of infrastructure. Instance can only be connected to the assets (networks, volumes) allocated in the same pod.
      "sshKeys": [ # Optional. List of SSH Keys used during instance provisioning.
        "A String",
      ],
      "state": "A String", # Output only. The state of the server.
      "updateTime": "A String", # Output only. Update a time stamp.
      "volumes": [ # Input only. List of Volumes to attach to this Instance on creation. This field won't be populated in Get/List responses.
        { # A storage volume.
          "attached": True or False, # Output only. Is the Volume attached at at least one instance. This field is a lightweight counterpart of `instances` field. It is filled in List responses as well.
          "autoGrownSizeGib": "A String", # The size, in GiB, that this storage volume has expanded as a result of an auto grow policy. In the absence of auto-grow, the value is 0.
          "bootVolume": True or False, # Output only. Whether this volume is a boot volume. A boot volume is one which contains a boot LUN.
          "currentSizeGib": "A String", # The current size of this storage volume, in GiB, including space reserved for snapshots. This size might be different than the requested size if the storage volume has been configured with auto grow or auto shrink.
          "emergencySizeGib": "A String", # Additional emergency size that was requested for this Volume, in GiB. current_size_gib includes this value.
          "expireTime": "A String", # Output only. Time after which volume will be fully deleted. It is filled only for volumes in COOLOFF state.
          "id": "A String", # An identifier for the `Volume`, generated by the backend.
          "instances": [ # Output only. Instances this Volume is attached to. This field is set only in Get requests.
            "A String",
          ],
          "labels": { # Labels as key value pairs.
            "a_key": "A String",
          },
          "maxSizeGib": "A String", # Maximum size volume can be expanded to in case of evergency, in GiB.
          "name": "A String", # Output only. The resource name of this `Volume`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/volumes/{volume}`
          "notes": "A String", # Input only. User-specified notes for new Volume. Used to provision Volumes that require manual intervention.
          "originallyRequestedSizeGib": "A String", # Originally requested size, in GiB.
          "performanceTier": "A String", # Immutable. Performance tier of the Volume. Default is SHARED.
          "pod": "A String", # Immutable. Pod name. Pod is an independent part of infrastructure. Volume can only be connected to the instances allocated in the same pod.
          "protocol": "A String", # Output only. Storage protocol for the Volume.
          "remainingSpaceGib": "A String", # The space remaining in the storage volume for new LUNs, in GiB, excluding space reserved for snapshots.
          "requestedSizeGib": "A String", # The requested size of this storage volume, in GiB.
          "snapshotAutoDeleteBehavior": "A String", # The behavior to use when snapshot reserved space is full.
          "snapshotEnabled": True or False, # Whether snapshots are enabled.
          "snapshotReservationDetail": { # Details about snapshot space reservation and usage on the storage volume. # Details about snapshot space reservation and usage on the storage volume.
            "reservedSpaceGib": "A String", # The space on this storage volume reserved for snapshots, shown in GiB.
            "reservedSpacePercent": 42, # Percent of the total Volume size reserved for snapshot copies. Enabling snapshots requires reserving 20% or more of the storage volume space for snapshots. Maximum reserved space for snapshots is 40%. Setting this field will effectively set snapshot_enabled to true.
            "reservedSpaceRemainingGib": "A String", # The amount, in GiB, of available space in this storage volume's reserved snapshot space.
            "reservedSpaceUsedPercent": 42, # The percent of snapshot space on this storage volume actually being used by the snapshot copies. This value might be higher than 100% if the snapshot copies have overflowed into the data portion of the storage volume.
          },
          "state": "A String", # The state of this storage volume.
          "storageType": "A String", # The storage type for this volume.
          "workloadProfile": "A String", # The workload profile for the volume.
        },
      ],
      "workloadProfile": "A String", # The workload profile for the instance.
    },
  ],
  "nextPageToken": "A String", # A token identifying a page of results from the server.
  "unreachable": [ # Locations that could not be reached.
    "A String",
  ],
}
list_next()
Retrieves the next page of results.

        Args:
          previous_request: The request for the previous page. (required)
          previous_response: The response from the request for the previous page. (required)

        Returns:
          A request object that you can call 'execute()' on to request the next
          page. Returns None if there are no more items in the collection.
        
loadAuthInfo(name, x__xgafv=None)
Load auth info for a server.

Args:
  name: string, Required. Name of the server. (required)
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response for LoadInstanceAuthInfo.
  "sshKeys": [ # List of ssh keys.
    { # An SSH key, used for authorizing with the interactive serial console feature.
      "name": "A String", # Output only. The name of this SSH key. Currently, the only valid value for the location is "global".
      "publicKey": "A String", # The public SSH key. This must be in OpenSSH .authorized_keys format.
    },
  ],
  "userAccounts": { # Map of username to the user account info.
    "a_key": { # User account provisioned for the customer.
      "encryptedPassword": "A String", # Encrypted initial password value.
      "kmsKeyVersion": "A String", # KMS CryptoKey Version used to encrypt the password.
    },
  },
}
patch(name, body=None, updateMask=None, x__xgafv=None)
Update details of a single server.

Args:
  name: string, Immutable. The resource name of this `Instance`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/instances/{instance}` (required)
  body: object, The request body.
    The object takes the form of:

{ # A server.
  "createTime": "A String", # Output only. Create a time stamp.
  "firmwareVersion": "A String", # Output only. The firmware version for the instance.
  "hyperthreadingEnabled": True or False, # True if you enable hyperthreading for the server, otherwise false. The default value is false.
  "id": "A String", # Output only. An identifier for the `Instance`, generated by the backend.
  "interactiveSerialConsoleEnabled": True or False, # Output only. True if the interactive serial console feature is enabled for the instance, false otherwise. The default value is false.
  "kmsKeyVersion": "A String", # Optional. Name of the KMS crypto key version used to encrypt the initial passwords. The key has to have ASYMMETRIC_DECRYPT purpose. Format is `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}/cryptoKeyVersions/{version}`.
  "labels": { # Labels as key value pairs.
    "a_key": "A String",
  },
  "logicalInterfaces": [ # List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. For the non-multivlan configurations (for eg, existing servers) that use existing default network template (bondaa-bondaa), both the Instance.networks field and the Instance.logical_interfaces fields will be filled to ensure backward compatibility. For the others, only Instance.logical_interfaces will be filled.
    { # Each logical interface represents a logical abstraction of the underlying physical interface (for eg. bond, nic) of the instance. Each logical interface can effectively map to multiple network-IP pairs and still be mapped to one underlying physical interface.
      "interfaceIndex": 42, # The index of the logical interface mapping to the index of the hardware bond or nic on the chosen network template. This field is deprecated.
      "logicalNetworkInterfaces": [ # List of logical network interfaces within a logical interface.
        { # Each logical network interface is effectively a network and IP pair.
          "defaultGateway": True or False, # Whether this interface is the default gateway for the instance. Only one interface can be the default gateway for the instance.
          "id": "A String", # An identifier for the `Network`, generated by the backend.
          "ipAddress": "A String", # IP address in the network
          "network": "A String", # Name of the network
          "networkType": "A String", # Type of network.
        },
      ],
      "name": "A String", # Interface name. This is of syntax or and forms part of the network template name.
    },
  ],
  "loginInfo": "A String", # Output only. Text field about info for logging in.
  "luns": [ # Immutable. List of LUNs associated with this server.
    { # A storage volume logical unit number (LUN).
      "bootLun": True or False, # Display if this LUN is a boot LUN.
      "expireTime": "A String", # Output only. Time after which LUN will be fully deleted. It is filled only for LUNs in COOL_OFF state.
      "id": "A String", # An identifier for the LUN, generated by the backend.
      "instances": [ # Output only. Instances this Lun is attached to.
        "A String",
      ],
      "multiprotocolType": "A String", # The LUN multiprotocol type ensures the characteristics of the LUN are optimized for each operating system.
      "name": "A String", # Output only. The name of the LUN.
      "shareable": True or False, # Display if this LUN can be shared between multiple physical servers.
      "sizeGb": "A String", # The size of this LUN, in GiB.
      "state": "A String", # The state of this storage volume.
      "storageType": "A String", # The storage type for this LUN.
      "storageVolume": "A String", # Display the storage volume for this LUN.
      "wwid": "A String", # The WWID for this LUN.
    },
  ],
  "machineType": "A String", # Immutable. The server type. [Available server types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
  "name": "A String", # Immutable. The resource name of this `Instance`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/instances/{instance}`
  "networkTemplate": "A String", # Instance network template name. For eg, bondaa-bondaa, bondab-nic, etc. Generally, the template name follows the syntax of "bond" or "nic".
  "networks": [ # Output only. List of networks associated with this server.
    { # A Network.
      "cidr": "A String", # The cidr of the Network.
      "gatewayIp": "A String", # Output only. Gateway ip address.
      "id": "A String", # An identifier for the `Network`, generated by the backend.
      "ipAddress": "A String", # IP address configured.
      "jumboFramesEnabled": True or False, # Whether network uses standard frames or jumbo ones.
      "labels": { # Labels as key value pairs.
        "a_key": "A String",
      },
      "macAddress": [ # List of physical interfaces.
        "A String",
      ],
      "mountPoints": [ # Input only. List of mount points to attach the network to.
        { # Mount point for a network.
          "defaultGateway": True or False, # Network should be a default gateway.
          "instance": "A String", # Instance to attach network to.
          "ipAddress": "A String", # Ip address of the server.
          "logicalInterface": "A String", # Logical interface to detach from.
        },
      ],
      "name": "A String", # Output only. The resource name of this `Network`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/networks/{network}`
      "pod": "A String", # Immutable. Pod name. Pod is an independent part of infrastructure. Network can only be connected to the assets (instances, nfsshares) allocated in the same pod.
      "reservations": [ # List of IP address reservations in this network. When updating this field, an error will be generated if a reservation conflicts with an IP address already allocated to a physical server.
        { # A reservation of one or more addresses in a network.
          "endAddress": "A String", # The last address of this reservation block, inclusive. I.e., for cases when reservations are only single addresses, end_address and start_address will be the same. Must be specified as a single IPv4 address, e.g. 10.1.2.2.
          "note": "A String", # A note about this reservation, intended for human consumption.
          "startAddress": "A String", # The first address of this reservation block. Must be specified as a single IPv4 address, e.g. 10.1.2.2.
        },
      ],
      "servicesCidr": "A String", # IP range for reserved for services (e.g. NFS).
      "state": "A String", # The Network state.
      "type": "A String", # The type of this network.
      "vlanId": "A String", # The vlan id of the Network.
      "vrf": { # A network VRF. # The Vrf for the Network. Use this only if a new Vrf needs to be created.
        "name": "A String", # The name of the VRF.
        "qosPolicy": { # QOS policy parameters. # The QOS policy applied to this VRF. The value is only meaningful when all the vlan attachments have the same QoS. This field should not be used for new integrations, use vlan attachment level qos instead. The field is left for backward-compatibility.
          "bandwidthGbps": 3.14, # The bandwidth permitted by the QOS policy, in gbps.
        },
        "state": "A String", # The possible state of VRF.
        "vlanAttachments": [ # The list of VLAN attachments for the VRF.
          { # VLAN attachment details.
            "id": "A String", # Immutable. The identifier of the attachment within vrf.
            "interconnectAttachment": "A String", # Optional. The name of the vlan attachment within vrf. This is of the form projects/{project_number}/regions/{region}/interconnectAttachments/{interconnect_attachment}
            "pairingKey": "A String", # Input only. Pairing key.
            "peerIp": "A String", # The peer IP of the attachment.
            "peerVlanId": "A String", # The peer vlan ID of the attachment.
            "qosPolicy": { # QOS policy parameters. # The QOS policy applied to this VLAN attachment. This value should be preferred to using qos at vrf level.
              "bandwidthGbps": 3.14, # The bandwidth permitted by the QOS policy, in gbps.
            },
            "routerIp": "A String", # The router IP of the attachment.
          },
        ],
      },
      "vrfAttachment": "A String", # Optional. The name of a pre-existing Vrf that the network should be attached to. Format is `vrfs/{vrf}`.
    },
  ],
  "osImage": "A String", # The OS image currently installed on the server.
  "pod": "A String", # Immutable. Pod name. Pod is an independent part of infrastructure. Instance can only be connected to the assets (networks, volumes) allocated in the same pod.
  "sshKeys": [ # Optional. List of SSH Keys used during instance provisioning.
    "A String",
  ],
  "state": "A String", # Output only. The state of the server.
  "updateTime": "A String", # Output only. Update a time stamp.
  "volumes": [ # Input only. List of Volumes to attach to this Instance on creation. This field won't be populated in Get/List responses.
    { # A storage volume.
      "attached": True or False, # Output only. Is the Volume attached at at least one instance. This field is a lightweight counterpart of `instances` field. It is filled in List responses as well.
      "autoGrownSizeGib": "A String", # The size, in GiB, that this storage volume has expanded as a result of an auto grow policy. In the absence of auto-grow, the value is 0.
      "bootVolume": True or False, # Output only. Whether this volume is a boot volume. A boot volume is one which contains a boot LUN.
      "currentSizeGib": "A String", # The current size of this storage volume, in GiB, including space reserved for snapshots. This size might be different than the requested size if the storage volume has been configured with auto grow or auto shrink.
      "emergencySizeGib": "A String", # Additional emergency size that was requested for this Volume, in GiB. current_size_gib includes this value.
      "expireTime": "A String", # Output only. Time after which volume will be fully deleted. It is filled only for volumes in COOLOFF state.
      "id": "A String", # An identifier for the `Volume`, generated by the backend.
      "instances": [ # Output only. Instances this Volume is attached to. This field is set only in Get requests.
        "A String",
      ],
      "labels": { # Labels as key value pairs.
        "a_key": "A String",
      },
      "maxSizeGib": "A String", # Maximum size volume can be expanded to in case of evergency, in GiB.
      "name": "A String", # Output only. The resource name of this `Volume`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/volumes/{volume}`
      "notes": "A String", # Input only. User-specified notes for new Volume. Used to provision Volumes that require manual intervention.
      "originallyRequestedSizeGib": "A String", # Originally requested size, in GiB.
      "performanceTier": "A String", # Immutable. Performance tier of the Volume. Default is SHARED.
      "pod": "A String", # Immutable. Pod name. Pod is an independent part of infrastructure. Volume can only be connected to the instances allocated in the same pod.
      "protocol": "A String", # Output only. Storage protocol for the Volume.
      "remainingSpaceGib": "A String", # The space remaining in the storage volume for new LUNs, in GiB, excluding space reserved for snapshots.
      "requestedSizeGib": "A String", # The requested size of this storage volume, in GiB.
      "snapshotAutoDeleteBehavior": "A String", # The behavior to use when snapshot reserved space is full.
      "snapshotEnabled": True or False, # Whether snapshots are enabled.
      "snapshotReservationDetail": { # Details about snapshot space reservation and usage on the storage volume. # Details about snapshot space reservation and usage on the storage volume.
        "reservedSpaceGib": "A String", # The space on this storage volume reserved for snapshots, shown in GiB.
        "reservedSpacePercent": 42, # Percent of the total Volume size reserved for snapshot copies. Enabling snapshots requires reserving 20% or more of the storage volume space for snapshots. Maximum reserved space for snapshots is 40%. Setting this field will effectively set snapshot_enabled to true.
        "reservedSpaceRemainingGib": "A String", # The amount, in GiB, of available space in this storage volume's reserved snapshot space.
        "reservedSpaceUsedPercent": 42, # The percent of snapshot space on this storage volume actually being used by the snapshot copies. This value might be higher than 100% if the snapshot copies have overflowed into the data portion of the storage volume.
      },
      "state": "A String", # The state of this storage volume.
      "storageType": "A String", # The storage type for this volume.
      "workloadProfile": "A String", # The workload profile for the volume.
    },
  ],
  "workloadProfile": "A String", # The workload profile for the instance.
}

  updateMask: string, The list of fields to update. The currently supported fields are: `labels` `hyperthreading_enabled` `os_image` `ssh_keys` `kms_key_version`
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
reimage(name, body=None, x__xgafv=None)
Perform reimage operation on a single server.

Args:
  name: string, Required. The `name` field is used to identify the instance. Format: projects/{project}/locations/{location}/instances/{instance} (required)
  body: object, The request body.
    The object takes the form of:

{ # Message requesting to perform reimage operation on a server.
  "kmsKeyVersion": "A String", # Optional. Name of the KMS crypto key version used to encrypt the initial passwords. The key has to have ASYMMETRIC_DECRYPT purpose. Format is `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}/cryptoKeyVersions/{version}`.
  "osImage": "A String", # Required. The OS image code of the image which will be used in the reimage operation.
  "sshKeys": [ # Optional. List of SSH Keys used during reimaging an instance.
    "A String",
  ],
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
rename(name, body=None, x__xgafv=None)
RenameInstance sets a new name for an instance. Use with caution, previous names become immediately invalidated.

Args:
  name: string, Required. The `name` field is used to identify the instance. Format: projects/{project}/locations/{location}/instances/{instance} (required)
  body: object, The request body.
    The object takes the form of:

{ # Message requesting rename of a server.
  "newInstanceId": "A String", # Required. The new `id` of the instance.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # A server.
  "createTime": "A String", # Output only. Create a time stamp.
  "firmwareVersion": "A String", # Output only. The firmware version for the instance.
  "hyperthreadingEnabled": True or False, # True if you enable hyperthreading for the server, otherwise false. The default value is false.
  "id": "A String", # Output only. An identifier for the `Instance`, generated by the backend.
  "interactiveSerialConsoleEnabled": True or False, # Output only. True if the interactive serial console feature is enabled for the instance, false otherwise. The default value is false.
  "kmsKeyVersion": "A String", # Optional. Name of the KMS crypto key version used to encrypt the initial passwords. The key has to have ASYMMETRIC_DECRYPT purpose. Format is `projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}/cryptoKeyVersions/{version}`.
  "labels": { # Labels as key value pairs.
    "a_key": "A String",
  },
  "logicalInterfaces": [ # List of logical interfaces for the instance. The number of logical interfaces will be the same as number of hardware bond/nic on the chosen network template. For the non-multivlan configurations (for eg, existing servers) that use existing default network template (bondaa-bondaa), both the Instance.networks field and the Instance.logical_interfaces fields will be filled to ensure backward compatibility. For the others, only Instance.logical_interfaces will be filled.
    { # Each logical interface represents a logical abstraction of the underlying physical interface (for eg. bond, nic) of the instance. Each logical interface can effectively map to multiple network-IP pairs and still be mapped to one underlying physical interface.
      "interfaceIndex": 42, # The index of the logical interface mapping to the index of the hardware bond or nic on the chosen network template. This field is deprecated.
      "logicalNetworkInterfaces": [ # List of logical network interfaces within a logical interface.
        { # Each logical network interface is effectively a network and IP pair.
          "defaultGateway": True or False, # Whether this interface is the default gateway for the instance. Only one interface can be the default gateway for the instance.
          "id": "A String", # An identifier for the `Network`, generated by the backend.
          "ipAddress": "A String", # IP address in the network
          "network": "A String", # Name of the network
          "networkType": "A String", # Type of network.
        },
      ],
      "name": "A String", # Interface name. This is of syntax or and forms part of the network template name.
    },
  ],
  "loginInfo": "A String", # Output only. Text field about info for logging in.
  "luns": [ # Immutable. List of LUNs associated with this server.
    { # A storage volume logical unit number (LUN).
      "bootLun": True or False, # Display if this LUN is a boot LUN.
      "expireTime": "A String", # Output only. Time after which LUN will be fully deleted. It is filled only for LUNs in COOL_OFF state.
      "id": "A String", # An identifier for the LUN, generated by the backend.
      "instances": [ # Output only. Instances this Lun is attached to.
        "A String",
      ],
      "multiprotocolType": "A String", # The LUN multiprotocol type ensures the characteristics of the LUN are optimized for each operating system.
      "name": "A String", # Output only. The name of the LUN.
      "shareable": True or False, # Display if this LUN can be shared between multiple physical servers.
      "sizeGb": "A String", # The size of this LUN, in GiB.
      "state": "A String", # The state of this storage volume.
      "storageType": "A String", # The storage type for this LUN.
      "storageVolume": "A String", # Display the storage volume for this LUN.
      "wwid": "A String", # The WWID for this LUN.
    },
  ],
  "machineType": "A String", # Immutable. The server type. [Available server types](https://cloud.google.com/bare-metal/docs/bms-planning#server_configurations)
  "name": "A String", # Immutable. The resource name of this `Instance`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/instances/{instance}`
  "networkTemplate": "A String", # Instance network template name. For eg, bondaa-bondaa, bondab-nic, etc. Generally, the template name follows the syntax of "bond" or "nic".
  "networks": [ # Output only. List of networks associated with this server.
    { # A Network.
      "cidr": "A String", # The cidr of the Network.
      "gatewayIp": "A String", # Output only. Gateway ip address.
      "id": "A String", # An identifier for the `Network`, generated by the backend.
      "ipAddress": "A String", # IP address configured.
      "jumboFramesEnabled": True or False, # Whether network uses standard frames or jumbo ones.
      "labels": { # Labels as key value pairs.
        "a_key": "A String",
      },
      "macAddress": [ # List of physical interfaces.
        "A String",
      ],
      "mountPoints": [ # Input only. List of mount points to attach the network to.
        { # Mount point for a network.
          "defaultGateway": True or False, # Network should be a default gateway.
          "instance": "A String", # Instance to attach network to.
          "ipAddress": "A String", # Ip address of the server.
          "logicalInterface": "A String", # Logical interface to detach from.
        },
      ],
      "name": "A String", # Output only. The resource name of this `Network`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/networks/{network}`
      "pod": "A String", # Immutable. Pod name. Pod is an independent part of infrastructure. Network can only be connected to the assets (instances, nfsshares) allocated in the same pod.
      "reservations": [ # List of IP address reservations in this network. When updating this field, an error will be generated if a reservation conflicts with an IP address already allocated to a physical server.
        { # A reservation of one or more addresses in a network.
          "endAddress": "A String", # The last address of this reservation block, inclusive. I.e., for cases when reservations are only single addresses, end_address and start_address will be the same. Must be specified as a single IPv4 address, e.g. 10.1.2.2.
          "note": "A String", # A note about this reservation, intended for human consumption.
          "startAddress": "A String", # The first address of this reservation block. Must be specified as a single IPv4 address, e.g. 10.1.2.2.
        },
      ],
      "servicesCidr": "A String", # IP range for reserved for services (e.g. NFS).
      "state": "A String", # The Network state.
      "type": "A String", # The type of this network.
      "vlanId": "A String", # The vlan id of the Network.
      "vrf": { # A network VRF. # The Vrf for the Network. Use this only if a new Vrf needs to be created.
        "name": "A String", # The name of the VRF.
        "qosPolicy": { # QOS policy parameters. # The QOS policy applied to this VRF. The value is only meaningful when all the vlan attachments have the same QoS. This field should not be used for new integrations, use vlan attachment level qos instead. The field is left for backward-compatibility.
          "bandwidthGbps": 3.14, # The bandwidth permitted by the QOS policy, in gbps.
        },
        "state": "A String", # The possible state of VRF.
        "vlanAttachments": [ # The list of VLAN attachments for the VRF.
          { # VLAN attachment details.
            "id": "A String", # Immutable. The identifier of the attachment within vrf.
            "interconnectAttachment": "A String", # Optional. The name of the vlan attachment within vrf. This is of the form projects/{project_number}/regions/{region}/interconnectAttachments/{interconnect_attachment}
            "pairingKey": "A String", # Input only. Pairing key.
            "peerIp": "A String", # The peer IP of the attachment.
            "peerVlanId": "A String", # The peer vlan ID of the attachment.
            "qosPolicy": { # QOS policy parameters. # The QOS policy applied to this VLAN attachment. This value should be preferred to using qos at vrf level.
              "bandwidthGbps": 3.14, # The bandwidth permitted by the QOS policy, in gbps.
            },
            "routerIp": "A String", # The router IP of the attachment.
          },
        ],
      },
      "vrfAttachment": "A String", # Optional. The name of a pre-existing Vrf that the network should be attached to. Format is `vrfs/{vrf}`.
    },
  ],
  "osImage": "A String", # The OS image currently installed on the server.
  "pod": "A String", # Immutable. Pod name. Pod is an independent part of infrastructure. Instance can only be connected to the assets (networks, volumes) allocated in the same pod.
  "sshKeys": [ # Optional. List of SSH Keys used during instance provisioning.
    "A String",
  ],
  "state": "A String", # Output only. The state of the server.
  "updateTime": "A String", # Output only. Update a time stamp.
  "volumes": [ # Input only. List of Volumes to attach to this Instance on creation. This field won't be populated in Get/List responses.
    { # A storage volume.
      "attached": True or False, # Output only. Is the Volume attached at at least one instance. This field is a lightweight counterpart of `instances` field. It is filled in List responses as well.
      "autoGrownSizeGib": "A String", # The size, in GiB, that this storage volume has expanded as a result of an auto grow policy. In the absence of auto-grow, the value is 0.
      "bootVolume": True or False, # Output only. Whether this volume is a boot volume. A boot volume is one which contains a boot LUN.
      "currentSizeGib": "A String", # The current size of this storage volume, in GiB, including space reserved for snapshots. This size might be different than the requested size if the storage volume has been configured with auto grow or auto shrink.
      "emergencySizeGib": "A String", # Additional emergency size that was requested for this Volume, in GiB. current_size_gib includes this value.
      "expireTime": "A String", # Output only. Time after which volume will be fully deleted. It is filled only for volumes in COOLOFF state.
      "id": "A String", # An identifier for the `Volume`, generated by the backend.
      "instances": [ # Output only. Instances this Volume is attached to. This field is set only in Get requests.
        "A String",
      ],
      "labels": { # Labels as key value pairs.
        "a_key": "A String",
      },
      "maxSizeGib": "A String", # Maximum size volume can be expanded to in case of evergency, in GiB.
      "name": "A String", # Output only. The resource name of this `Volume`. Resource names are schemeless URIs that follow the conventions in https://cloud.google.com/apis/design/resource_names. Format: `projects/{project}/locations/{location}/volumes/{volume}`
      "notes": "A String", # Input only. User-specified notes for new Volume. Used to provision Volumes that require manual intervention.
      "originallyRequestedSizeGib": "A String", # Originally requested size, in GiB.
      "performanceTier": "A String", # Immutable. Performance tier of the Volume. Default is SHARED.
      "pod": "A String", # Immutable. Pod name. Pod is an independent part of infrastructure. Volume can only be connected to the instances allocated in the same pod.
      "protocol": "A String", # Output only. Storage protocol for the Volume.
      "remainingSpaceGib": "A String", # The space remaining in the storage volume for new LUNs, in GiB, excluding space reserved for snapshots.
      "requestedSizeGib": "A String", # The requested size of this storage volume, in GiB.
      "snapshotAutoDeleteBehavior": "A String", # The behavior to use when snapshot reserved space is full.
      "snapshotEnabled": True or False, # Whether snapshots are enabled.
      "snapshotReservationDetail": { # Details about snapshot space reservation and usage on the storage volume. # Details about snapshot space reservation and usage on the storage volume.
        "reservedSpaceGib": "A String", # The space on this storage volume reserved for snapshots, shown in GiB.
        "reservedSpacePercent": 42, # Percent of the total Volume size reserved for snapshot copies. Enabling snapshots requires reserving 20% or more of the storage volume space for snapshots. Maximum reserved space for snapshots is 40%. Setting this field will effectively set snapshot_enabled to true.
        "reservedSpaceRemainingGib": "A String", # The amount, in GiB, of available space in this storage volume's reserved snapshot space.
        "reservedSpaceUsedPercent": 42, # The percent of snapshot space on this storage volume actually being used by the snapshot copies. This value might be higher than 100% if the snapshot copies have overflowed into the data portion of the storage volume.
      },
      "state": "A String", # The state of this storage volume.
      "storageType": "A String", # The storage type for this volume.
      "workloadProfile": "A String", # The workload profile for the volume.
    },
  ],
  "workloadProfile": "A String", # The workload profile for the instance.
}
reset(name, body=None, x__xgafv=None)
Perform an ungraceful, hard reset on a server. Equivalent to shutting the power off and then turning it back on.

Args:
  name: string, Required. Name of the resource. (required)
  body: object, The request body.
    The object takes the form of:

{ # Message requesting to reset a server.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
start(name, body=None, x__xgafv=None)
Starts a server that was shutdown.

Args:
  name: string, Required. Name of the resource. (required)
  body: object, The request body.
    The object takes the form of:

{ # Message requesting to start a server.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}
stop(name, body=None, x__xgafv=None)
Stop a running server.

Args:
  name: string, Required. Name of the resource. (required)
  body: object, The request body.
    The object takes the form of:

{ # Message requesting to stop a server.
}

  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # This resource represents a long-running operation that is the result of a network API call.
  "done": True or False, # If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.
  "error": { # The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by [gRPC](https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the [API Design Guide](https://cloud.google.com/apis/design/errors). # The error result of the operation in case of failure or cancellation.
    "code": 42, # The status code, which should be an enum value of google.rpc.Code.
    "details": [ # A list of messages that carry the error details. There is a common set of message types for APIs to use.
      {
        "a_key": "", # Properties of the object. Contains field @type with type URL.
      },
    ],
    "message": "A String", # A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.
  },
  "metadata": { # Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
  "name": "A String", # The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.
  "response": { # The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
    "a_key": "", # Properties of the object. Contains field @type with type URL.
  },
}