Skip to main content
POST
Import an image from an object URL
Primary IAM action: compute:CreateImage. Creating an image in the platform account requires a principal acting in that account with compute:CreateImage. See COMPUTE permissions for policy examples.

Authorizations

Authorization
string
header
required

An OAuth 2.0 bearer token, sent as Authorization: Bearer <token>. This is the recommended way to authenticate.

Get one by exchanging a service account's access key pair at POST /v1/oauth/token with grant_type=client_credentials. It is the standard client-credentials grant, so any OAuth-aware library will obtain and refresh it for you.

Tokens last an hour by default. The same access key pair is separately your AWS SigV4 credential for the S3-compatible object endpoint, which speaks nothing else.

Headers

Idempotency-Key
string

Optional client-generated key that makes a create replay-safe. Retrying a request with the same key returns the original outcome verbatim instead of creating a duplicate resource. Reusing a key with a different request body is rejected (422); a request whose key is still being processed returns 409. Records are honored for 24 hours. Use a UUID or similarly unique token.

Maximum string length: 255

Body

application/json
name
string
required

Immutable image name (e.g. debian-13) whose current-version pointer can move; the new image becomes its current version. Names are shared across a tag's builds — one build is identified by owner, name, architecture and version. Resource names must not start with the literal crn: prefix or be UUIDs (canonical, compact, braced, or urn:uuid: forms, in either case).

Example:

"debian-13"

source_url
string
required

Presigned https GET URL to the disk in an object store you control. Fetched once by the import worker (which rejects private/link-local targets). The worker detects qcow2, raw, vmdk, vhd, vhdx or vdi and converts it to raw storage. Unreadable or unsupported sources and images declaring backing files fail asynchronously with status error and an active conversion fault. Not retained after import.

Example:

"https://bucket.s3.example.com/debian-13.qcow2?X-Amz-Signature=..."

description
string
Example:

"Debian 13 (Trixie)"

os
enum<string>
default:linux

Operating system distribution. Use linux for another or generic Linux distribution; os_version specifies the release separately.

Available options:
almalinux,
alpine,
arch,
centos,
debian,
fedora,
opensuse,
rhel,
rocky,
ubuntu,
linux
Example:

"debian"

os_version
string
Example:

"13"

architecture
enum<string>
default:amd64

CPU architecture of the source image. Only amd64 (x86-64) is supported.

Available options:
amd64
Example:

"amd64"

version
string

Identifies this build within name, and must be unique there — re-publishing a version that a tag already carries is a 409. Omit it and the server stamps a UTC timestamp, so every build is addressable as name:version whether or not you labelled it.

Example:

"20260807"

current
boolean
default:true

Make this the current version for its (name, architecture) once active.

Example:

true

eol_date
string<date>

The day this release stops receiving free security updates. Omit it and the image inherits the date the name's current version carries, so re-publishing a tag can't quietly stop tracking its release.

Example:

"2026-08-31"

min_disk_gb
integer
Required range: 0 <= x <= 16384
Example:

10

min_ram_mb
integer
Required range: x >= 0
Example:

1024

tags
object
Example:
attributes
object

Response

Image registered for import

image
object
required