runtime_reservations
Hold room for many sandboxes, for a window or as standing room; creates in it are never refused for room or limits up to what was booked. create(sandboxes, startsAt?, endsAt?, standing?, snapshots?, forKey?, vcpu?, memoryMiB?, diskMiB?, region?): Book room for many sandboxes at once: sandboxes (1 to 10000), startsAt and endsAt (ISO 8601; up to 24 hours, starting now or within 14 days), and optionally vcpu, memoryMiB, diskMiB (the size you will create, default 2 vCPU / 4096 MiB / 4096 MiB) and region. In the window your sandbox limits rise by what you booked and the room is kept from everyone else, so creates are never no_capacity or quota_exceeded up to it; create as usual, nothing to name. Sandboxes you run bill at the usual per-second rates; booked room none of them uses costs a quarter of the memory rate (unusedRateMicros per GiB-hour, no CPU), at most unusedMaxMicros if nothing runs, and nothing if you cancel at least an hour before the start. Booking needs a balance covering the estimate; with auto top-up on, what you paid more than a week ago counts too. A decline says why, the most that fit, and the nearest window that takes them all. At the end nothing is stopped. Use it before a batch of evals, rollouts or browser runs. Standing room (standing: true) is held from now until you cancel it: for a pool that deletes a sandbox after each use and makes another, so a replacement is never refused up to it. Name its snapshots and the room is held on the servers holding them, where their forks start; forKey keeps it for this key's sandboxes alone. Keep a few more than the pool runs, for deletes still finishing. Room none of its sandboxes uses costs a quarter of the memory rate every hour it is held (unusedPerHourMicros at most), until you cancel. Change its number or snapshots in place with :update. list(limit?, cursor?): This account's room bookings and declines, newest first, each with its window, status, phase (upcoming, active, ended) and what it runs. Pass nextCursor as cursor for older ones. get(id): A room booking by id: its status, window, phase, sandboxes in use now and at most. update(id, sandboxes?, snapshots?): Change standing room in place: sandboxes (how many it holds) or snapshots (new ones of the same size; the room moves to their servers). It moves or grows only when all of it fits now; otherwise nothing changes and the answer says what fits. cancel(id): Cancel a room booking: its room goes back to everyone at once. Sandboxes running keep running.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | The booking's id. | |
| vcpu | No | Each sandbox's vCPUs, as you will create them. | |
| limit | No | At most this many, newest first. | |
| action | Yes | ||
| cursor | No | nextCursor from the page before. | |
| endsAt | No | When it ends: after startsAt, at most 24 hours later. Not for standing room. | |
| forKey | No | Standing room only: hold it for this key's sandboxes alone, so the account's other work never takes it. Default: the whole account's. | |
| region | No | The region; the default region when absent. | |
| diskMiB | No | Each sandbox's disk. | |
| standing | No | Standing room: held from now until you cancel it, with no startsAt or endsAt. For a pool that deletes a sandbox after each use and makes another. | |
| startsAt | No | When the window starts: now, or within 14 days. A time within the minute is now. Not for standing room. | |
| memoryMiB | No | Each sandbox's memory. | |
| sandboxes | No | How many sandboxes to hold room for now. | |
| snapshots | No | Standing room only: the snapshots its sandboxes fork from. The room is held on the servers holding them, where their forks start, at their size (leave vcpu, memoryMiB and diskMiB out). All of one size. | |
| idempotencyKey | No | Optional: left out, one is made and returned as idempotencyKey. Send it back only to retry this exact call after a temporary error. |