Compute Cloud API, gRPC: DiskService.Create
Creates a disk in the specified folder.
You can create an empty disk or restore it from a snapshot or an image.
Method starts an asynchronous operation that can be cancelled while it is in progress.
gRPC request
rpc Create (CreateDiskRequest) returns (operation.Operation)
CreateDiskRequest
{
"folderId": "string",
"name": "string",
"description": "string",
"labels": "string",
"typeId": "string",
"zoneId": "string",
"size": "int64",
// Includes only one of the fields `imageId`, `snapshotId`
"imageId": "string",
"snapshotId": "string",
// end of the list of possible fields
"blockSize": "int64",
"diskPlacementPolicy": {
"placementGroupId": "string",
"placementGroupPartition": "int64"
},
"snapshotScheduleIds": [
"string"
],
"hardwareGeneration": {
// Includes only one of the fields `legacyFeatures`, `generation2Features`
"legacyFeatures": {
"pciTopology": "PCITopology"
},
"generation2Features": "Generation2HardwareFeatures"
// end of the list of possible fields
},
"kmsKeyId": "string"
}
Field |
Description |
folderId |
string Required field. ID of the folder to create a disk in. |
name |
string Name of the disk. |
description |
string Description of the disk. |
labels |
string Resource labels as |
typeId |
string ID of the disk type. |
zoneId |
string Required field. ID of the availability zone where the disk resides. |
size |
int64 Required field. Size of the disk, specified in bytes. |
imageId |
string ID of the image to create the disk from. Includes only one of the fields |
snapshotId |
string ID of the snapshot to restore the disk from. Includes only one of the fields |
blockSize |
int64 Block size used for disk, specified in bytes. The default is 4096. |
diskPlacementPolicy |
Placement policy configuration. |
snapshotScheduleIds[] |
string List of IDs of the snapshot schedules to attach the disk to. |
hardwareGeneration |
Specify the overrides to hardware_generation of a source disk, image or snapshot, |
kmsKeyId |
string ID of KMS key for disk encryption. |
DiskPlacementPolicy
Field |
Description |
placementGroupId |
string Placement group ID. |
placementGroupPartition |
int64 |
HardwareGeneration
A set of features, specific to a particular Compute hardware generation.
They are not necessary supported by every host OS or distro, thus they are fixed to an image
and are applied to all instances created with it as their boot disk image.
These features significantly determine how the instance is created, thus cannot be changed after the fact.
Field |
Description |
legacyFeatures |
Includes only one of the fields |
generation2Features |
Includes only one of the fields |
LegacyHardwareFeatures
A first hardware generation, by default compatible with all legacy images.
Allows switching to PCI_TOPOLOGY_V2 and back.
Field |
Description |
pciTopology |
enum PCITopology
|
Generation2HardwareFeatures
A second hardware generation, which by default assumes PCI_TOPOLOGY_V2
and UEFI boot (with UEFI related features).
Field |
Description |
Empty |
operation.Operation
{
"id": "string",
"description": "string",
"createdAt": "google.protobuf.Timestamp",
"createdBy": "string",
"modifiedAt": "google.protobuf.Timestamp",
"done": "bool",
"metadata": {
"diskId": "string"
},
// Includes only one of the fields `error`, `response`
"error": "google.rpc.Status",
"response": {
"id": "string",
"folderId": "string",
"createdAt": "google.protobuf.Timestamp",
"name": "string",
"description": "string",
"labels": "string",
"typeId": "string",
"zoneId": "string",
"size": "int64",
"blockSize": "int64",
"productIds": [
"string"
],
"status": "Status",
// Includes only one of the fields `sourceImageId`, `sourceSnapshotId`
"sourceImageId": "string",
"sourceSnapshotId": "string",
// end of the list of possible fields
"instanceIds": [
"string"
],
"diskPlacementPolicy": {
"placementGroupId": "string",
"placementGroupPartition": "int64"
},
"hardwareGeneration": {
// Includes only one of the fields `legacyFeatures`, `generation2Features`
"legacyFeatures": {
"pciTopology": "PCITopology"
},
"generation2Features": "Generation2HardwareFeatures"
// end of the list of possible fields
},
"kmsKey": {
"keyId": "string",
"versionId": "string"
}
}
// end of the list of possible fields
}
An Operation resource. For more information, see Operation.
Field |
Description |
id |
string ID of the operation. |
description |
string Description of the operation. 0-256 characters long. |
createdAt |
Creation timestamp. |
createdBy |
string ID of the user or service account who initiated the operation. |
modifiedAt |
The time when the Operation resource was last modified. |
done |
bool If the value is |
metadata |
Service-specific metadata associated with the operation. |
error |
The error result of the operation in case of failure or cancellation. Includes only one of the fields The operation result. |
response |
The normal response of the operation in case of success. Includes only one of the fields The operation result. |
CreateDiskMetadata
Field |
Description |
diskId |
string ID of the disk that is being created. |
Disk
A Disk resource. For more information, see Disks.
Field |
Description |
id |
string ID of the disk. |
folderId |
string ID of the folder that the disk belongs to. |
createdAt |
|
name |
string Name of the disk. 1-63 characters long. |
description |
string Description of the disk. 0-256 characters long. |
labels |
string Resource labels as |
typeId |
string ID of the disk type. |
zoneId |
string ID of the availability zone where the disk resides. |
size |
int64 Size of the disk, specified in bytes. |
blockSize |
int64 Block size of the disk, specified in bytes. |
productIds[] |
string License IDs that indicate which licenses are attached to this resource. The correct license ID is generated by the platform. IDs are inherited by new resources created from this resource. If you know the license IDs, specify them when you create the image. |
status |
enum Status Current status of the disk.
|
sourceImageId |
string ID of the image that was used for disk creation. Includes only one of the fields |
sourceSnapshotId |
string ID of the snapshot that was used for disk creation. Includes only one of the fields |
instanceIds[] |
string Array of instances to which the disk is attached. |
diskPlacementPolicy |
Placement policy configuration. |
hardwareGeneration |
If specified, forces the same HardwareGeneration features to be applied to the instance |
kmsKey |
Key encryption key info. |
DiskPlacementPolicy
Field |
Description |
placementGroupId |
string Placement group ID. |
placementGroupPartition |
int64 |
HardwareGeneration
A set of features, specific to a particular Compute hardware generation.
They are not necessary supported by every host OS or distro, thus they are fixed to an image
and are applied to all instances created with it as their boot disk image.
These features significantly determine how the instance is created, thus cannot be changed after the fact.
Field |
Description |
legacyFeatures |
Includes only one of the fields |
generation2Features |
Includes only one of the fields |
LegacyHardwareFeatures
A first hardware generation, by default compatible with all legacy images.
Allows switching to PCI_TOPOLOGY_V2 and back.
Field |
Description |
pciTopology |
enum PCITopology
|
Generation2HardwareFeatures
A second hardware generation, which by default assumes PCI_TOPOLOGY_V2
and UEFI boot (with UEFI related features).
Field |
Description |
Empty |
KMSKey
Field |
Description |
keyId |
string ID of KMS symmetric key |
versionId |
string Version of KMS symmetric key |