Skip to main content

Create

Creates an image in the specified folder.

You can create an image from a disk, snapshot, other image or URI. Method starts an asynchronous operation that can be cancelled while it is in progress.

import {
cloudApi,
decodeMessage,
serviceClients,
Session,
waitForOperation,
} from "@yandex-cloud/nodejs-sdk";

const CreateImageRequest = cloudApi.compute.image_service.CreateImageRequest;
const Image = cloudApi.compute.image.Image;
const Os_Type = cloudApi.compute.image.Os_Type;
const PCITopology = cloudApi.compute.hardware_generation.PCITopology;

(async () => {
const authToken = process.env["YC_OAUTH_TOKEN"];
const session = new Session({ oauthToken: authToken });
const client = session.client(serviceClients.ImageServiceClient);

const operation = await client.create(
CreateImageRequest.fromPartial({
folderId: "folderId",
// name: "name",
// description: "description",
// labels: {"key": "labels"},
// family: "family",
// minDiskSize: 0,
// productIds: ["productIds"],
// imageId: "imageId",
// diskId: "diskId",
// snapshotId: "snapshotId",
// uri: "uri",
// os: {
// type: Os_Type.LINUX
// },
// pooled: true,
// hardwareGeneration: {
// legacyFeatures: {
// pciTopology: PCITopology.PCI_TOPOLOGY_V1
// },
// generation2Features: {

// }
// }
})
);
const finishedOp = await waitForOperation(operation, session);

if (finishedOp.response) {
const result = decodeMessage<typeof Image>(finishedOp.response);
console.log(result);
}
})();

CreateImageRequest

folderId : string

ID of the folder to create an image in. To get the folder ID, use a yandex.cloud.resourcemanager.v1.FolderService.List request.

name : string

Name of the image.

description : string

Description of the image.

labels : string

Resource labels as key:value pairs.

family : string

The name of the image family to which this image belongs. For more information, see Image family.

To get an information about the most recent image from a family, use a ImageService.GetLatestByFamily request.

minDiskSize : int64

Minimum size of the disk that will be created from this image. Specified in bytes. Should be more than the volume of source data.

productIds : string

License IDs that indicate which licenses are attached to this resource. License IDs are used to calculate additional charges for the use of the virtual machine.

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. For example, if you create a disk image using a third-party utility and load it into Object Storage, the license IDs will be lost. You can specify them in this request.

One of source

  • imageId : string

    ID of the source image to create the new image from.

  • diskId : string

    ID of the disk to create the image from.

  • snapshotId : string

    ID of the snapshot to create the image from.

  • uri : string
    URI of the source image to create the new image from.

    Currently only supports links to images that are stored in Object Storage. Currently only supports Qcow2, VMDK, and RAW formats.

os : Os

Operating system that is contained in the image.

If not specified and you used the image_id or disk_id field to set the source, then the value can be inherited from the source resource.

pooled : bool

When true, an image pool will be created for fast creation disks from the image.

hardwareGeneration : HardwareGeneration

Specify the overrides to hardware_generation of a source disk, image or snapshot, or to the default values if the source does not define it.

Os

Type
  • TYPE_UNSPECIFIED

  • LINUX

    Linux operating system.

  • WINDOWS

    Windows operating system.

type : Type

Operating system type. The default is LINUX.

This field is used to correctly emulate a vCPU and calculate the cost of using an instance.

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.

One of features

  • legacyFeatures : LegacyHardwareFeatures
  • generation2Features : Generation2HardwareFeatures

LegacyHardwareFeatures

A first hardware generation, by default compatible with all legacy images. Allows switching to PCI_TOPOLOGY_V2 and back.

pciTopology : PCITopology

Generation2HardwareFeatures

A second hardware generation, which by default assumes PCI_TOPOLOGY_V2 and UEFI boot (with UEFI related features).

Operation

An Operation resource. For more information, see Operation.

id : string

ID of the operation.

description : string

Description of the operation. 0-256 characters long.

createdAt : google.protobuf.Timestamp

Creation timestamp.

createdBy : string

ID of the user or service account who initiated the operation.

modifiedAt : google.protobuf.Timestamp

The time when the Operation resource was last modified.

done : bool

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.

metadata : google.protobuf.Any

Service-specific metadata associated with the operation. It typically contains the ID of the target resource that the operation is performed on. Any method that returns a long-running operation should document the metadata type, if any.

One of result

The operation result. If done == false and there was no failure detected, neither error nor response is set. If done == false and there was a failure detected, error is set. If done == true, exactly one of error or response is set.

  • error : google.rpc.Status

    The error result of the operation in case of failure or cancellation.

  • response : google.protobuf.Any
    The normal response of the operation in case of success.

    If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty. If the original method is the standard Create/Update, the response should be the target resource of the operation. Any method that returns a long-running operation should document the response type, if any.