{"openapi":"3.1.0","info":{"title":"Hyperbolic API","description":"HTTP API for Hyperbolic's on-demand GPU compute: rent virtual machines and bare-metal instances, manage storage volumes, and track usage and billing. Authenticate with a Bearer API key (`Authorization: Bearer <api-key>`).","version":"2.0.0","contact":{"name":"Hyperbolic","url":"https://hyperbolic.ai","email":"support@hyperbolic.ai"}},"servers":[{"url":"https://api.hyperbolic.ai","description":"Production"},{"url":"https://api.hyperbolic.xyz","description":"Legacy host — the same API on Hyperbolic's original domain, kept for existing integrations."}],"tags":[{"name":"openapi","description":"OpenAPI specification","x-group":"OpenAPI"},{"name":"rentals","description":"Manage rentals","x-group":"Rentals"},{"name":"storage-volumes","description":"Manage storage volumes","x-group":"Storage Volumes"},{"name":"billing","description":"Manage billing","x-group":"Billing"},{"name":"users","description":"Manage users","x-group":"Users"},{"name":"balances","description":"Manage balances","x-group":"Balances"},{"name":"api-keys","description":"Manage API keys","x-group":"API Keys"},{"name":"ssh-keys","description":"Manage SSH public keys","x-group":"SSH Keys"},{"name":"virtual-machine-rentals","description":"**Deprecated.** Manage virtual machine rentals. These endpoints are still supported for now but are no longer preferred.","x-group":"Virtual Machine Rentals (Deprecated)","x-deprecated":true},{"name":"bare-metal-rentals","description":"**Deprecated.** Manage bare metal rentals. These endpoints are still supported for now but are no longer preferred.","x-group":"Bare Metal Rentals (Deprecated)","x-deprecated":true}],"paths":{"/v2/openapi.json":{"get":{"operationId":"openApiJson","summary":"Get the public API specification","description":"Returns the OpenAPI 3.1 document for the public API exactly as this environment serves it, including only the endpoints this environment has enabled. This endpoint is open: it takes no API key, and sending one changes nothing about the response.","tags":["openapi"],"security":[],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"openapi":{"type":"string"},"info":{"type":"object","properties":{"title":{"type":"string"},"description":{"type":"string"},"version":{"type":"string"},"contact":{"type":"object","properties":{"name":{"type":"string"},"url":{"type":"string"}},"additionalProperties":{}}},"required":["title","version"],"additionalProperties":{}},"servers":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"description":{"type":"string"}},"required":["url"],"additionalProperties":{}}},"tags":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"description":{"type":"string"}},"required":["name"],"additionalProperties":{}}},"paths":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{"operationId":{"type":"string"},"summary":{"type":"string"},"description":{"type":"string"},"tags":{"type":"array","items":{"type":"string"}},"deprecated":{"type":"boolean"},"security":{"type":"array","items":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"array","items":{"type":"string"}}}},"parameters":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}},"requestBody":{"type":"object","properties":{},"additionalProperties":{}},"responses":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{}}}},"required":["responses"],"additionalProperties":{}}}},"components":{"type":"object","properties":{},"additionalProperties":{}}},"required":["openapi","info","servers","paths"],"additionalProperties":{},"title":"OpenAPI document","description":"The OpenAPI 3.1 document describing the public API as the environment serving it actually runs. The example is abridged — the real response lists every public operation and the schemas they reference.","example":{"openapi":"3.1.0","info":{"title":"Hyperbolic API","description":"HTTP API for Hyperbolic's on-demand GPU compute: rent virtual machines and bare-metal instances, manage storage volumes, and track usage and billing. Authenticate with a Bearer API key (`Authorization: Bearer <api-key>`).","version":"2.0.0","contact":{"name":"Hyperbolic","url":"https://hyperbolic.ai","email":"support@hyperbolic.ai"}},"servers":[{"url":"https://api.hyperbolic.ai","description":"Production"},{"url":"https://api.hyperbolic.xyz","description":"Legacy host — the same API on Hyperbolic's original domain, kept for existing integrations."}],"tags":[{"name":"virtual-machine-rentals","description":"**Deprecated.** Manage virtual machine rentals. These endpoints are still supported for now but are no longer preferred.","x-group":"Virtual Machine Rentals (Deprecated)","x-deprecated":true}],"paths":{"/v2/on-demand/virtual-machine-rentals":{"get":{"operationId":"ondemand-getActiveVirtualMachineRentals","summary":"Get a list of active virtual machine rentals","description":"Get a list of active virtual machine rentals","tags":["virtual-machine-rentals"],"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object"}}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}}}}}},"components":{"securitySchemes":{"Authorization":{"type":"http","scheme":"bearer"}},"schemas":{"error.UNAUTHORIZED":{"type":"object","properties":{"message":{"type":"string"}}}}}}}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/storage-volumes/attach":{"post":{"operationId":"ondemand-attachStorageVolume","summary":"Attach a storage volume to bare metal instance(s)","description":"Attach a storage volume to bare metal instance(s)","tags":["storage-volumes"],"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"storageVolumeId":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]},"rentalIds":{"minItems":1,"type":"array","items":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]}}},"required":["storageVolumeId","rentalIds"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttachStorageVolumeResponse"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/bare-metal-rentals":{"post":{"operationId":"ondemand-createBareMetalRental","summary":"Create a bare metal rental","description":"**Deprecated.** Use `POST /v2/on-demand/rentals` with `rentalType: \"bare-metal\"`, which takes the same fields.","tags":["bare-metal-rentals"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"networkType":{"type":"string","enum":["infiniband","ethernet"]},"gpuCount":{"type":"number","minimum":1,"multipleOf":8},"storageVolume":{"oneOf":[{"type":"object","properties":{"isNew":{"type":"boolean","const":false},"id":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]}},"required":["isNew","id"]},{"type":"object","properties":{"isNew":{"type":"boolean","const":true},"label":{"type":"string","minLength":4,"maxLength":255,"pattern":"^[a-zA-Z0-9_-]+$"},"sizeInGb":{"type":"integer","minimum":256,"maximum":64000}},"required":["isNew","label","sizeInGb"]}],"type":"object"},"region":{"default":"us-central-1","type":"string","enum":["us-central-1","uk-central-3","uk-southeast-3","eu-southwest-3","eu-southwest-3-1","eu-west-3","eu-west-4"]},"gpuType":{"default":"h100","type":"string","enum":["h100","h200","b200","rtx-6000-pro"]},"cudaVersion":{"type":"string","enum":["cuda12.8","cuda12.9"]},"label":{"type":"string"},"termType":{"default":"on-demand","type":"string","enum":["on-demand","reserved"]},"termPeriodDays":{"type":"number"},"discountPercentage":{"default":0,"type":"number"},"convertToOnDemandOnExpiry":{"default":true,"type":"boolean"},"monitoringEnabled":{"type":"boolean"},"sshPublicKeyId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sshPublicKeyIds":{"minItems":1,"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}}},"required":["networkType","gpuCount"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Rental"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"get":{"operationId":"ondemand-getActiveBareMetalRentals","summary":"Get a list of active bare metal rentals","description":"**Deprecated.** Returns every active bare metal rental in one response. Use `GET /v2/on-demand/rentals/active?rentalType=bare-metal`, which returns them a page at a time.","tags":["bare-metal-rentals"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RentalWithStatus"}}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/rentals":{"post":{"operationId":"ondemand-createRental","summary":"Create a rental","description":"Rent a virtual machine or a bare metal server. `rentalType` decides which machine-type-specific fields apply; sending a field for the other type is a BAD_REQUEST (INVALID_INPUT_FOR_RENTAL_TYPE).","tags":["rentals"],"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rentalType":{"type":"string","enum":["virtual-machine","bare-metal"],"description":"The machine type to rent. Fields marked for one machine type are rejected for the other."},"gpuCount":{"type":"number","description":"GPUs to rent. Bare metal rents whole nodes, so a multiple of 8."},"networkType":{"description":"Required for bare metal. Virtual machines default to `ethernet`.","type":"string","enum":["infiniband","ethernet"]},"region":{"default":"us-central-1","description":"A region that offers the chosen machine type.","anyOf":[{"type":"string","enum":["us-central-1","us-central-2","eu-north-2","eu-west-2","eu-north-4","eu-north-5","us-east-1","us-east-2","ca-east-3","eu-north-6","eu-north-7","eu-north-8","ca-west-1","ca-east-1","us-central-3","us-southeast-1","me-central-1","ca-east-2","eu-west-1","us-southeast-2","jp-east-1","us-southeast-3","eu-west-5","us-east-3"]},{"type":"string","enum":["us-central-1","uk-central-3","uk-southeast-3","eu-southwest-3","eu-southwest-3-1","eu-west-3","eu-west-4"]}]},"gpuType":{"default":"h100","type":"string","enum":["h100","h200","b200","rtx-6000-pro"]},"label":{"type":"string"},"termType":{"default":"on-demand","type":"string","enum":["on-demand","reserved"]},"termPeriodDays":{"type":"number"},"discountPercentage":{"default":0,"type":"number"},"convertToOnDemandOnExpiry":{"default":true,"type":"boolean"},"monitoringEnabled":{"type":"boolean"},"sshPublicKeyId":{"description":"The saved SSH key to authorize on the rental. Defaults to the most recently added key.","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sshPublicKeyIds":{"description":"The saved SSH keys to authorize on the rental.","minItems":1,"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"customPorts":{"description":"Virtual machines only.","maxItems":20,"type":"array","items":{"type":"integer","minimum":1,"maximum":65535}},"cudaVersion":{"description":"Bare metal only.","type":"string","enum":["cuda12.8","cuda12.9"]},"storageVolume":{"description":"Bare metal only.","oneOf":[{"type":"object","properties":{"isNew":{"type":"boolean","const":false},"id":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]}},"required":["isNew","id"]},{"type":"object","properties":{"isNew":{"type":"boolean","const":true},"label":{"type":"string","minLength":4,"maxLength":255,"pattern":"^[a-zA-Z0-9_-]+$"},"sizeInGb":{"type":"integer","minimum":256,"maximum":64000}},"required":["isNew","label","sizeInGb"]}],"type":"object"}},"required":["rentalType","gpuCount"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Rental"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/convert-to-reserved":{"post":{"operationId":"ondemand-convertRentalToReserved","summary":"Convert a rental to a reserved term","description":"Convert a rental to a reserved term","tags":["rentals"],"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rentalId":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]},"termPeriodDays":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"expectedTotalPriceCents":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991}},"required":["rentalId","termPeriodDays","expectedTotalPriceCents"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservedRentalConversion"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/request-reservation":{"post":{"operationId":"ondemand-requestReservation","summary":"Request a reservation","description":"Request a reservation for a large instance","tags":["rentals"],"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"gpuCount":{"type":"number","minimum":1}},"required":["gpuCount"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/storage-volumes":{"post":{"operationId":"ondemand-createStorageVolume","summary":"Create a storage volume","description":"Create a storage volume","tags":["storage-volumes"],"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"region":{"anyOf":[{"type":"string","enum":["us-central-1","us-central-2","eu-north-2","eu-west-2","eu-north-4","eu-north-5","us-east-1","us-east-2","ca-east-3","eu-north-6","eu-north-7","eu-north-8","ca-west-1","ca-east-1","us-central-3","us-southeast-1","me-central-1","ca-east-2","eu-west-1","us-southeast-2","jp-east-1","us-southeast-3","eu-west-5","us-east-3"]},{"type":"string","enum":["us-central-1","uk-central-3","uk-southeast-3","eu-southwest-3","eu-southwest-3-1","eu-west-3","eu-west-4"]}]},"label":{"type":"string","minLength":4,"maxLength":255,"pattern":"^[a-zA-Z0-9_-]+$"},"sizeInGb":{"type":"integer","minimum":256,"maximum":64000,"multipleOf":256},"rentalIds":{"type":"array","items":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]}}},"required":["region","label","sizeInGb"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatedStorageVolume"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"get":{"operationId":"ondemand-getStorageVolumes","summary":"Get a list of storage volumes","description":"Get a list of storage volumes","tags":["storage-volumes"],"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StorageVolume"}}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/virtual-machine-rentals":{"post":{"operationId":"ondemand-createVirtualMachineRental","summary":"Create a virtual machine rental","description":"**Deprecated.** Use `POST /v2/on-demand/rentals` with `rentalType: \"virtual-machine\"`, which takes the same fields.","tags":["virtual-machine-rentals"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"gpuCount":{"type":"number"},"networkType":{"default":"ethernet","type":"string","enum":["infiniband","ethernet"]},"region":{"default":"us-central-1","type":"string","enum":["us-central-1","us-central-2","eu-north-2","eu-west-2","eu-north-4","eu-north-5","us-east-1","us-east-2","ca-east-3","eu-north-6","eu-north-7","eu-north-8","ca-west-1","ca-east-1","us-central-3","us-southeast-1","me-central-1","ca-east-2","eu-west-1","us-southeast-2","jp-east-1","us-southeast-3","eu-west-5","us-east-3"]},"gpuType":{"default":"h100","type":"string","enum":["h100","h200","b200","rtx-6000-pro"]},"label":{"type":"string"},"termType":{"default":"on-demand","type":"string","enum":["on-demand","reserved"]},"termPeriodDays":{"type":"number"},"discountPercentage":{"default":0,"type":"number"},"convertToOnDemandOnExpiry":{"default":true,"type":"boolean"},"monitoringEnabled":{"type":"boolean"},"customPorts":{"maxItems":20,"type":"array","items":{"type":"integer","minimum":1,"maximum":65535}},"sshPublicKeyId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sshPublicKeyIds":{"minItems":1,"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}}},"required":["gpuCount"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Rental"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"get":{"operationId":"ondemand-getActiveVirtualMachineRentals","summary":"Get a list of active virtual machine rentals","description":"**Deprecated.** Returns every active virtual machine rental in one response. Use `GET /v2/on-demand/rentals/active?rentalType=virtual-machine`, which returns them a page at a time.","tags":["virtual-machine-rentals"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[{"in":"query","name":"includeClusterPools","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RentalWithStatus"}}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/extend-reserved":{"post":{"operationId":"ondemand-extendReservedRental","summary":"Extend a reserved rental","description":"Extend a reserved rental","tags":["rentals"],"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rentalId":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]},"termPeriodDays":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"expectedTotalPriceCents":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"expectedReservedUntil":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"}},"required":["rentalId","termPeriodDays","expectedTotalPriceCents","expectedReservedUntil"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservedRentalExtension"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/active-rental-summary":{"get":{"operationId":"ondemand-getActiveRentalSummary","summary":"Get a summary of active rentals","description":"Count the caller's active rentals and sum their hourly cost in cents, in total and per term type.","tags":["rentals"],"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveRentalSummary"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/rental":{"get":{"operationId":"ondemand-getRental","summary":"Get a rental","description":"Look up one rental by its ID, whether it is still running or has ended. Returns null when no rental with that ID belongs to the caller.","tags":["rentals"],"security":[{"Authorization":[]}],"parameters":[{"in":"query","name":"rentalId","schema":{"type":"string","minLength":1,"description":"The rental's `rentalId`."},"required":true,"description":"The rental's `rentalId`."}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"anyOf":[{"oneOf":[{"$ref":"#/components/schemas/ActiveRentalLookup"},{"$ref":"#/components/schemas/TerminatedRentalLookup"}],"type":"object","discriminator":{"propertyName":"state","mapping":{"active":"#/components/schemas/ActiveRentalLookup","terminated":"#/components/schemas/TerminatedRentalLookup"}}},{"type":"null"}]}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/rental-history":{"get":{"operationId":"ondemand-getRentalHistory","summary":"Get a list of past rentals","description":"**Deprecated.** Returns every past rental in one response. Use `GET /v2/on-demand/rentals/history`, which returns them a page at a time.","tags":["rentals"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HistoricalRental"}}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/rentals/active":{"get":{"operationId":"ondemand-listActiveRentals","summary":"List active rentals","description":"Active rentals of one machine type with their live status, most recently started first, as numbered pages.","tags":["rentals"],"security":[{"Authorization":[]}],"parameters":[{"in":"query","name":"page","schema":{"default":1,"type":"integer","minimum":1,"maximum":9007199254740991}},{"in":"query","name":"pageSize","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"in":"query","name":"gpuType","schema":{"type":"string","enum":["h100","h200","b200","rtx-6000-pro"]}},{"in":"query","name":"region","schema":{"type":"string","enum":["us-central-1","us-central-2","eu-north-2","eu-west-2","eu-north-4","eu-north-5","us-east-1","us-east-2","ca-east-3","eu-north-6","eu-north-7","eu-north-8","ca-west-1","ca-east-1","us-central-3","us-southeast-1","me-central-1","ca-east-2","eu-west-1","us-southeast-2","jp-east-1","us-southeast-3","eu-west-5","us-east-3","uk-central-3","uk-southeast-3","eu-southwest-3","eu-southwest-3-1","eu-west-3","eu-west-4","private-cloud"]}},{"in":"query","name":"termType","schema":{"type":"string","enum":["on-demand","reserved","private-cloud"]}},{"in":"query","name":"includePrivateCloud","schema":{"description":"Include private-cloud rentals. Ignored when `termType` is set.","type":"boolean"}},{"in":"query","name":"rentalType","schema":{"type":"string","enum":["virtual-machine","bare-metal"],"description":"The machine type to list."},"required":true,"description":"The machine type to list."},{"in":"query","name":"includeClusterPools","schema":{"description":"Also list the node pools of managed Kubernetes clusters. They cannot be terminated or rebooted individually; manage them through the cluster.","type":"boolean"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActiveRentalsPage"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/rentals/history":{"get":{"operationId":"ondemand-listRentalHistory","summary":"List past rentals","description":"Past rentals, most recently terminated first, one page at a time. Pass the response's `nextCursor` as `cursor` to read the next page.","tags":["rentals"],"security":[{"Authorization":[]}],"parameters":[{"in":"query","name":"cursor","schema":{"anyOf":[{"type":"string","maxLength":512},{"type":"null"}]}},{"in":"query","name":"limit","schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"in":"query","name":"gpuType","schema":{"type":"string","enum":["h100","h200","b200","rtx-6000-pro"]}},{"in":"query","name":"region","schema":{"type":"string","enum":["us-central-1","us-central-2","eu-north-2","eu-west-2","eu-north-4","eu-north-5","us-east-1","us-east-2","ca-east-3","eu-north-6","eu-north-7","eu-north-8","ca-west-1","ca-east-1","us-central-3","us-southeast-1","me-central-1","ca-east-2","eu-west-1","us-southeast-2","jp-east-1","us-southeast-3","eu-west-5","us-east-3","uk-central-3","uk-southeast-3","eu-southwest-3","eu-southwest-3-1","eu-west-3","eu-west-4","private-cloud"]}},{"in":"query","name":"termType","schema":{"type":"string","enum":["on-demand","reserved","private-cloud"]}},{"in":"query","name":"includePrivateCloud","schema":{"description":"Include private-cloud rentals. Ignored when `termType` is set.","type":"boolean"}},{"in":"query","name":"rentalType","schema":{"type":"string","enum":["virtual-machine","bare-metal"]}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RentalHistoryPage"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/rental-options":{"get":{"operationId":"ondemand-getRentalOptions","summary":"Get a list of rental options","description":"Get a list of rental options","tags":["rentals"],"security":[],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"costPerHourCents":{"type":"number"},"region":{"anyOf":[{"type":"string","enum":["us-central-1","us-central-2","eu-north-2","eu-west-2","eu-north-4","eu-north-5","us-east-1","us-east-2","ca-east-3","eu-north-6","eu-north-7","eu-north-8","ca-west-1","ca-east-1","us-central-3","us-southeast-1","me-central-1","ca-east-2","eu-west-1","us-southeast-2","jp-east-1","us-southeast-3","eu-west-5","us-east-3"]},{"type":"string","enum":["us-central-1","uk-central-3","uk-southeast-3","eu-southwest-3","eu-southwest-3-1","eu-west-3","eu-west-4"]}]},"gpuCount":{"type":"number"},"gpuType":{"type":"string","enum":["h100","h200","b200","rtx-6000-pro"]},"gpuFormFactor":{"type":"string","enum":["sxm5","sxm6","pcie"]},"connectionType":{"type":"string","enum":["infiniband","ethernet"]},"ethernetVariant":{"type":"string","enum":["normal","rocev2"]},"totalAvailable":{"type":"number"},"machineType":{"type":"string","const":"virtual-machine"},"nodes":{"type":"array","items":{"type":"object","properties":{"cpuModel":{"type":"string"},"gpuCount":{"type":"number"},"ramGb":{"type":"number"},"storageGb":{"type":"number"},"vcpuCount":{"type":"number"}},"required":["cpuModel","gpuCount","ramGb","storageGb","vcpuCount"],"additionalProperties":false}}},"required":["enabled","costPerHourCents","region","gpuCount","gpuType","gpuFormFactor","connectionType","machineType","nodes"],"additionalProperties":false},{"type":"object","properties":{"enabled":{"type":"boolean"},"costPerHourCents":{"type":"number"},"region":{"anyOf":[{"type":"string","enum":["us-central-1","us-central-2","eu-north-2","eu-west-2","eu-north-4","eu-north-5","us-east-1","us-east-2","ca-east-3","eu-north-6","eu-north-7","eu-north-8","ca-west-1","ca-east-1","us-central-3","us-southeast-1","me-central-1","ca-east-2","eu-west-1","us-southeast-2","jp-east-1","us-southeast-3","eu-west-5","us-east-3"]},{"type":"string","enum":["us-central-1","uk-central-3","uk-southeast-3","eu-southwest-3","eu-southwest-3-1","eu-west-3","eu-west-4"]}]},"gpuCount":{"type":"number"},"gpuType":{"type":"string","enum":["h100","h200","b200","rtx-6000-pro"]},"gpuFormFactor":{"type":"string","enum":["sxm5","sxm6","pcie"]},"connectionType":{"type":"string","enum":["infiniband","ethernet"]},"ethernetVariant":{"type":"string","enum":["normal","rocev2"]},"totalAvailable":{"type":"number"},"machineType":{"type":"string","const":"bare-metal"},"nodes":{"type":"array","items":{"type":"object","properties":{"cpuModel":{"type":"string"},"gpuCount":{"type":"number"},"ramGb":{"type":"number"},"storageGb":{"type":"number"},"cpuCount":{"type":"number"}},"required":["cpuModel","gpuCount","ramGb","storageGb","cpuCount"],"additionalProperties":false}}},"required":["enabled","costPerHourCents","region","gpuCount","gpuType","gpuFormFactor","connectionType","machineType","nodes"],"additionalProperties":false}],"type":"object"}}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/get-reservation-extension-quote":{"get":{"operationId":"ondemand-getReservationExtensionQuote","summary":"Get a reservation extension quote","description":"Get a reservation extension quote","tags":["rentals"],"security":[{"Authorization":[]}],"parameters":[{"in":"query","name":"rentalId","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservationExtensionQuote"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/get-reserved-conversion-quote":{"get":{"operationId":"ondemand-getReservedConversionQuote","summary":"Get a reserved conversion quote","description":"Get a reserved conversion quote","tags":["rentals"],"security":[{"Authorization":[]}],"parameters":[{"in":"query","name":"rentalId","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReservedConversionQuote"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/reserve-options":{"get":{"operationId":"ondemand-getReserveOptions","summary":"Get a list of reserve options","description":"Get a list of reserve options","tags":["rentals"],"security":[],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"options":{"type":"array","items":{"type":"object","properties":{"termPeriodDays":{"type":"number"},"discountPercentage":{"type":"number"}},"required":["termPeriodDays","discountPercentage"],"additionalProperties":false}}},"required":["options"],"additionalProperties":false}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/has-rental-history":{"get":{"operationId":"ondemand-hasRentalHistory","summary":"Check whether any past rentals exist","description":"Whether the caller has at least one rental that has ended.","tags":["rentals"],"security":[{"Authorization":[]}],"parameters":[{"in":"query","name":"includePrivateCloud","schema":{"description":"Count ended private-cloud rentals too. Defaults to true.","type":"boolean"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"boolean"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/rentals/reboot-instance":{"post":{"operationId":"ondemand-rebootRentalInstance","summary":"Reboot a single instance within a rental","description":"Reboots one instance in place; tenant data is preserved. Call it only for an instance whose `instances[].supportedFeatures` includes `guest-reboot`. Reports INVALID_INSTANCE_REF for an `instanceRef` outside this rental, REBOOT_NOT_SUPPORTED for a rental whose provider cannot reboot, and REBOOT_ALREADY_IN_PROGRESS while one is in flight.","tags":["rentals"],"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rentalId":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]},"instanceRef":{"type":"string"}},"required":["rentalId","instanceRef"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RentalInstanceReboot"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/virtual-machine-rentals/reboot-instance":{"post":{"operationId":"ondemand-rebootVirtualMachineInstance","summary":"Reboot a single instance within a virtual machine rental","description":"**Deprecated.** Use `POST /v2/on-demand/rentals/reboot-instance`, which takes the same fields.","tags":["virtual-machine-rentals"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rentalId":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]},"instanceRef":{"type":"string"}},"required":["rentalId","instanceRef"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RebootVirtualMachineInstanceResponse"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/bare-metal-rentals/terminate":{"post":{"operationId":"ondemand-terminateBareMetalRental","summary":"Terminate a bare metal rental","description":"**Deprecated.** Use `POST /v2/on-demand/rentals/terminate`, which terminates either machine type.","tags":["bare-metal-rentals"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rentalId":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]},"reason":{"type":"string"}},"required":["rentalId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TerminateBareMetalRentalResponse"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/rentals/terminate":{"post":{"operationId":"ondemand-terminateRental","summary":"Terminate a rental","description":"Terminate a virtual machine or bare metal rental.","tags":["rentals"],"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rentalId":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]},"reason":{"type":"string"}},"required":["rentalId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RentalTermination"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/storage-volumes/terminate":{"post":{"operationId":"ondemand-terminateStorageVolume","summary":"Terminate a storage volume","description":"Terminate a storage volume","tags":["storage-volumes"],"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"storageVolumeId":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]},"reason":{"type":"string"}},"required":["storageVolumeId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TerminateStorageVolumeResponse"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/virtual-machine-rentals/terminate":{"post":{"operationId":"ondemand-terminateVirtualMachineRental","summary":"Terminate a virtual machine rental","description":"**Deprecated.** Use `POST /v2/on-demand/rentals/terminate`, which terminates either machine type.","tags":["virtual-machine-rentals"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rentalId":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]},"reason":{"type":"string"}},"required":["rentalId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TerminateVirtualMachineRentalResponse"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/rentals/update":{"post":{"operationId":"ondemand-updateRental","summary":"Update a rental","description":"Update a rental's label and/or its reserved-term end-of-term action. Pass an empty label to clear it.","tags":["rentals"],"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rentalId":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]},"label":{"type":"string"},"convertToOnDemandOnExpiry":{"type":"boolean"}},"required":["rentalId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Rental"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/storage-volumes/update":{"post":{"operationId":"ondemand-updateStorageVolume","summary":"Update a storage volume","description":"Update a storage volume's attached instances and/or size","tags":["storage-volumes"],"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"storageVolumeId":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]},"label":{"type":"string","minLength":4,"maxLength":255,"pattern":"^[a-zA-Z0-9_-]+$"},"rentalIds":{"type":"array","items":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]}},"sizeInGb":{"type":"integer","minimum":256,"maximum":64000}},"required":["storageVolumeId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStorageVolumeResponse"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/on-demand/storage-volume-options":{"get":{"operationId":"ondemand-getStorageVolumeOptions","summary":"Get a list of storage volume options","description":"Get a list of storage volume options","tags":["storage-volumes"],"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"region":{"type":"string"},"costPerGbHourCents":{"type":"number","minimum":0},"maxSizeInGb":{"type":"number","minimum":0}},"required":["region","costPerGbHourCents","maxSizeInGb"],"additionalProperties":false}}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/users/me":{"get":{"operationId":"user-getCurrent","summary":"Get the current user","description":"Get the current user","tags":["users"],"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrentUser"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"delete":{"operationId":"user-deleteCurrentUser","summary":"Delete the current user","description":"Delete the current user","tags":["users"],"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"put":{"operationId":"user-updateCurrentUser","summary":"Update the current user","description":"Update the current user","tags":["users"],"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"onboardedFor":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}]},"name":{"anyOf":[{"type":"string","maxLength":255,"pattern":"^[^<>\\u0000-\\u001F\\u007F]*$"},{"type":"null"}]}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMutationResponse"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/users/me/verify-phone-number":{"put":{"operationId":"user-verifyPhoneNumber","summary":"Verify a phone number","description":"Verify a phone number","tags":["users"],"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"phoneNumber":{"type":"string"}},"required":["phoneNumber"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/api-keys/list":{"get":{"operationId":"apiKey-list","summary":"List all API keys for the current user or organization","description":"List all API keys for the current user or organization","tags":["api-keys"],"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiKey"}}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/customer/balance":{"get":{"operationId":"customer-getBalance","summary":"Get the current user or organization account's balance","description":"Get the current account's balance","tags":["balances"],"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountBalance"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/ssh-keys":{"get":{"operationId":"sshKeys-list","summary":"List SSH public keys for the current user or organization","description":"List SSH public keys for the current user or organization","tags":["ssh-keys"],"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SshKeyWithLiveRentalCount"}}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}},"post":{"operationId":"sshKeys-create","summary":"Create an SSH public key for the current user or organization","description":"Create an SSH public key for the current user or organization. Reports SSH_PUBLIC_KEY_ALREADY_EXISTS when a key with identical type and body already exists under the current user or organization.","tags":["ssh-keys"],"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"publicKey":{"type":"string","minLength":1,"maxLength":16384},"name":{"type":"string","maxLength":255}},"required":["publicKey"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SshKey"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/ssh-keys/rental":{"get":{"operationId":"sshKeys-listForRental","summary":"List the SSH public keys attached to a rental","description":"List the SSH public keys attached to a rental. Reports RENTAL_NOT_FOUND for rentals that don't exist or the user doesn't control.","tags":["ssh-keys"],"security":[{"Authorization":[]}],"parameters":[{"in":"query","name":"rentalId","schema":{"type":"string"},"required":true}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/SshKey"}}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/ssh-keys/update":{"post":{"operationId":"sshKeys-update","summary":"Rename an SSH public key","description":"Renames an SSH public key. Reports SSH_PUBLIC_KEY_NOT_FOUND for keys that don't exist or the user doesn't control, and NOT_AUTHORIZED_TO_ACCESS_OWNED_RESOURCE for an organization key added by another member unless the caller is an organization admin.","tags":["ssh-keys"],"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"name":{"type":"string","maxLength":255}},"required":["id","name"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SshKey"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/v2/ssh-keys/delete":{"post":{"operationId":"sshKeys-delete","summary":"Delete an SSH public key","description":"Deletes an SSH public key. Reports SSH_PUBLIC_KEY_IN_USE while the key is attached to a live rental, SSH_PUBLIC_KEY_NOT_FOUND for a key that doesn't exist or the user doesn't control, and NOT_AUTHORIZED_TO_ACCESS_OWNED_RESOURCE for an organization key added by another member unless the caller is an organization admin.","tags":["ssh-keys"],"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeletedSshKey"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}}}}}},"/users/me":{"get":{"operationId":"user-getCurrent-legacy","summary":"Get the current user","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/users/me` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/users/me`.\n\nGet the current user","tags":["users"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CurrentUser"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}},"delete":{"operationId":"user-deleteCurrentUser-legacy","summary":"Delete the current user","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/users/me` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/users/me`.\n\nDelete the current user","tags":["users"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}},"put":{"operationId":"user-updateCurrentUser-legacy","summary":"Update the current user","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/users/me` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/users/me`.\n\nUpdate the current user","tags":["users"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"onboardedFor":{"anyOf":[{"type":"string","maxLength":50},{"type":"null"}]},"name":{"anyOf":[{"type":"string","maxLength":255,"pattern":"^[^<>\\u0000-\\u001F\\u007F]*$"},{"type":"null"}]}}}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserMutationResponse"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}},"/users/me/verify-phone-number":{"put":{"operationId":"user-verifyPhoneNumber-legacy","summary":"Verify a phone number","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/users/me/verify-phone-number` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/users/me/verify-phone-number`.\n\nVerify a phone number","tags":["users"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"phoneNumber":{"type":"string"}},"required":["phoneNumber"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}},"/v2/alpha/api-keys/list":{"get":{"operationId":"apiKey-list-legacy","summary":"List all API keys for the current user or organization","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/api-keys/list` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/api-keys/list`.\n\nList all API keys for the current user or organization","tags":["api-keys"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ApiKey"}}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}},"/v2/alpha/customer/balance":{"get":{"operationId":"customer-getBalance-legacy","summary":"Get the current user or organization account's balance","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/customer/balance` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/customer/balance`.\n\nGet the current account's balance","tags":["balances"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AccountBalance"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}},"/v2/alpha/on-demand/bare-metal-rentals":{"post":{"operationId":"ondemand-createBareMetalRental-legacy","summary":"Create a bare metal rental","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/bare-metal-rentals` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/bare-metal-rentals`.\n\n**Deprecated.** Use `POST /v2/on-demand/rentals` with `rentalType: \"bare-metal\"`, which takes the same fields.","tags":["bare-metal-rentals"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"networkType":{"type":"string","enum":["infiniband","ethernet"]},"gpuCount":{"type":"number","minimum":1,"multipleOf":8},"storageVolume":{"oneOf":[{"type":"object","properties":{"isNew":{"type":"boolean","const":false},"id":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]}},"required":["isNew","id"]},{"type":"object","properties":{"isNew":{"type":"boolean","const":true},"label":{"type":"string","minLength":4,"maxLength":255,"pattern":"^[a-zA-Z0-9_-]+$"},"sizeInGb":{"type":"integer","minimum":256,"maximum":64000}},"required":["isNew","label","sizeInGb"]}],"type":"object"},"region":{"default":"us-central-1","type":"string","enum":["us-central-1","uk-central-3","uk-southeast-3","eu-southwest-3","eu-southwest-3-1","eu-west-3","eu-west-4"]},"gpuType":{"default":"h100","type":"string","enum":["h100","h200","b200","rtx-6000-pro"]},"cudaVersion":{"type":"string","enum":["cuda12.8","cuda12.9"]},"label":{"type":"string"},"termType":{"default":"on-demand","type":"string","enum":["on-demand","reserved"]},"termPeriodDays":{"type":"number"},"discountPercentage":{"default":0,"type":"number"},"convertToOnDemandOnExpiry":{"default":true,"type":"boolean"},"monitoringEnabled":{"type":"boolean"},"sshPublicKeyId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sshPublicKeyIds":{"minItems":1,"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}}},"required":["networkType","gpuCount"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Rental"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}},"get":{"operationId":"ondemand-getActiveBareMetalRentals-legacy","summary":"Get a list of active bare metal rentals","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/bare-metal-rentals` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/bare-metal-rentals`.\n\n**Deprecated.** Returns every active bare metal rental in one response. Use `GET /v2/on-demand/rentals/active?rentalType=bare-metal`, which returns them a page at a time.","tags":["bare-metal-rentals"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RentalWithStatus"}}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}},"/v2/alpha/on-demand/bare-metal-rentals/terminate":{"post":{"operationId":"ondemand-terminateBareMetalRental-legacy","summary":"Terminate a bare metal rental","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/bare-metal-rentals/terminate` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/bare-metal-rentals/terminate`.\n\n**Deprecated.** Use `POST /v2/on-demand/rentals/terminate`, which terminates either machine type.","tags":["bare-metal-rentals"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rentalId":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]},"reason":{"type":"string"}},"required":["rentalId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TerminateBareMetalRentalResponse"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}},"/v2/alpha/on-demand/rental-history":{"get":{"operationId":"ondemand-getRentalHistory-legacy","summary":"Get a list of past rentals","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/rental-history` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/rental-history`.\n\n**Deprecated.** Returns every past rental in one response. Use `GET /v2/on-demand/rentals/history`, which returns them a page at a time.","tags":["rentals"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/HistoricalRental"}}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}},"/v2/alpha/on-demand/rental-options":{"get":{"operationId":"ondemand-getRentalOptions-legacy","summary":"Get a list of rental options","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/rental-options` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/rental-options`.\n\nGet a list of rental options","tags":["rentals"],"deprecated":true,"security":[],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"costPerHourCents":{"type":"number"},"region":{"anyOf":[{"type":"string","enum":["us-central-1","us-central-2","eu-north-2","eu-west-2","eu-north-4","eu-north-5","us-east-1","us-east-2","ca-east-3","eu-north-6","eu-north-7","eu-north-8","ca-west-1","ca-east-1","us-central-3","us-southeast-1","me-central-1","ca-east-2","eu-west-1","us-southeast-2","jp-east-1","us-southeast-3","eu-west-5","us-east-3"]},{"type":"string","enum":["us-central-1","uk-central-3","uk-southeast-3","eu-southwest-3","eu-southwest-3-1","eu-west-3","eu-west-4"]}]},"gpuCount":{"type":"number"},"gpuType":{"type":"string","enum":["h100","h200","b200","rtx-6000-pro"]},"gpuFormFactor":{"type":"string","enum":["sxm5","sxm6","pcie"]},"connectionType":{"type":"string","enum":["infiniband","ethernet"]},"ethernetVariant":{"type":"string","enum":["normal","rocev2"]},"totalAvailable":{"type":"number"},"machineType":{"type":"string","const":"virtual-machine"},"nodes":{"type":"array","items":{"type":"object","properties":{"cpuModel":{"type":"string"},"gpuCount":{"type":"number"},"ramGb":{"type":"number"},"storageGb":{"type":"number"},"vcpuCount":{"type":"number"}},"required":["cpuModel","gpuCount","ramGb","storageGb","vcpuCount"],"additionalProperties":false}}},"required":["enabled","costPerHourCents","region","gpuCount","gpuType","gpuFormFactor","connectionType","machineType","nodes"],"additionalProperties":false},{"type":"object","properties":{"enabled":{"type":"boolean"},"costPerHourCents":{"type":"number"},"region":{"anyOf":[{"type":"string","enum":["us-central-1","us-central-2","eu-north-2","eu-west-2","eu-north-4","eu-north-5","us-east-1","us-east-2","ca-east-3","eu-north-6","eu-north-7","eu-north-8","ca-west-1","ca-east-1","us-central-3","us-southeast-1","me-central-1","ca-east-2","eu-west-1","us-southeast-2","jp-east-1","us-southeast-3","eu-west-5","us-east-3"]},{"type":"string","enum":["us-central-1","uk-central-3","uk-southeast-3","eu-southwest-3","eu-southwest-3-1","eu-west-3","eu-west-4"]}]},"gpuCount":{"type":"number"},"gpuType":{"type":"string","enum":["h100","h200","b200","rtx-6000-pro"]},"gpuFormFactor":{"type":"string","enum":["sxm5","sxm6","pcie"]},"connectionType":{"type":"string","enum":["infiniband","ethernet"]},"ethernetVariant":{"type":"string","enum":["normal","rocev2"]},"totalAvailable":{"type":"number"},"machineType":{"type":"string","const":"bare-metal"},"nodes":{"type":"array","items":{"type":"object","properties":{"cpuModel":{"type":"string"},"gpuCount":{"type":"number"},"ramGb":{"type":"number"},"storageGb":{"type":"number"},"cpuCount":{"type":"number"}},"required":["cpuModel","gpuCount","ramGb","storageGb","cpuCount"],"additionalProperties":false}}},"required":["enabled","costPerHourCents","region","gpuCount","gpuType","gpuFormFactor","connectionType","machineType","nodes"],"additionalProperties":false}],"type":"object"}}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}},"/v2/alpha/on-demand/rentals/update":{"post":{"operationId":"ondemand-updateRental-legacy","summary":"Update a rental","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/rentals/update` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/rentals/update`.\n\nUpdate a rental's label and/or its reserved-term end-of-term action. Pass an empty label to clear it.","tags":["rentals"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rentalId":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]},"label":{"type":"string"},"convertToOnDemandOnExpiry":{"type":"boolean"}},"required":["rentalId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Rental"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}},"/v2/alpha/on-demand/request-reservation":{"post":{"operationId":"ondemand-requestReservation-legacy","summary":"Request a reservation","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/request-reservation` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/request-reservation`.\n\nRequest a reservation for a large instance","tags":["rentals"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"gpuCount":{"type":"number","minimum":1}},"required":["gpuCount"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}},"/v2/alpha/on-demand/reserve-options":{"get":{"operationId":"ondemand-getReserveOptions-legacy","summary":"Get a list of reserve options","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/reserve-options` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/reserve-options`.\n\nGet a list of reserve options","tags":["rentals"],"deprecated":true,"security":[],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"options":{"type":"array","items":{"type":"object","properties":{"termPeriodDays":{"type":"number"},"discountPercentage":{"type":"number"}},"required":["termPeriodDays","discountPercentage"],"additionalProperties":false}}},"required":["options"],"additionalProperties":false}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}},"/v2/alpha/on-demand/storage-volume-options":{"get":{"operationId":"ondemand-getStorageVolumeOptions-legacy","summary":"Get a list of storage volume options","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/storage-volume-options` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/storage-volume-options`.\n\nGet a list of storage volume options","tags":["storage-volumes"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"region":{"type":"string"},"costPerGbHourCents":{"type":"number","minimum":0},"maxSizeInGb":{"type":"number","minimum":0}},"required":["region","costPerGbHourCents","maxSizeInGb"],"additionalProperties":false}}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}},"/v2/alpha/on-demand/storage-volumes":{"post":{"operationId":"ondemand-createStorageVolume-legacy","summary":"Create a storage volume","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/storage-volumes` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/storage-volumes`.\n\nCreate a storage volume","tags":["storage-volumes"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"region":{"anyOf":[{"type":"string","enum":["us-central-1","us-central-2","eu-north-2","eu-west-2","eu-north-4","eu-north-5","us-east-1","us-east-2","ca-east-3","eu-north-6","eu-north-7","eu-north-8","ca-west-1","ca-east-1","us-central-3","us-southeast-1","me-central-1","ca-east-2","eu-west-1","us-southeast-2","jp-east-1","us-southeast-3","eu-west-5","us-east-3"]},{"type":"string","enum":["us-central-1","uk-central-3","uk-southeast-3","eu-southwest-3","eu-southwest-3-1","eu-west-3","eu-west-4"]}]},"label":{"type":"string","minLength":4,"maxLength":255,"pattern":"^[a-zA-Z0-9_-]+$"},"sizeInGb":{"type":"integer","minimum":256,"maximum":64000,"multipleOf":256},"rentalIds":{"type":"array","items":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]}}},"required":["region","label","sizeInGb"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatedStorageVolume"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}},"get":{"operationId":"ondemand-getStorageVolumes-legacy","summary":"Get a list of storage volumes","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/storage-volumes` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/storage-volumes`.\n\nGet a list of storage volumes","tags":["storage-volumes"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/StorageVolume"}}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}},"/v2/alpha/on-demand/storage-volumes/attach":{"post":{"operationId":"ondemand-attachStorageVolume-legacy","summary":"Attach a storage volume to bare metal instance(s)","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/storage-volumes/attach` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/storage-volumes/attach`.\n\nAttach a storage volume to bare metal instance(s)","tags":["storage-volumes"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"storageVolumeId":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]},"rentalIds":{"minItems":1,"type":"array","items":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]}}},"required":["storageVolumeId","rentalIds"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AttachStorageVolumeResponse"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}},"/v2/alpha/on-demand/storage-volumes/terminate":{"post":{"operationId":"ondemand-terminateStorageVolume-legacy","summary":"Terminate a storage volume","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/storage-volumes/terminate` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/storage-volumes/terminate`.\n\nTerminate a storage volume","tags":["storage-volumes"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"storageVolumeId":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]},"reason":{"type":"string"}},"required":["storageVolumeId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TerminateStorageVolumeResponse"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}},"/v2/alpha/on-demand/storage-volumes/update":{"post":{"operationId":"ondemand-updateStorageVolume-legacy","summary":"Update a storage volume","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/storage-volumes/update` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/storage-volumes/update`.\n\nUpdate a storage volume's attached instances and/or size","tags":["storage-volumes"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"storageVolumeId":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]},"label":{"type":"string","minLength":4,"maxLength":255,"pattern":"^[a-zA-Z0-9_-]+$"},"rentalIds":{"type":"array","items":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]}},"sizeInGb":{"type":"integer","minimum":256,"maximum":64000}},"required":["storageVolumeId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStorageVolumeResponse"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}},"/v2/alpha/on-demand/virtual-machine-rentals":{"post":{"operationId":"ondemand-createVirtualMachineRental-legacy","summary":"Create a virtual machine rental","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/virtual-machine-rentals` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/virtual-machine-rentals`.\n\n**Deprecated.** Use `POST /v2/on-demand/rentals` with `rentalType: \"virtual-machine\"`, which takes the same fields.","tags":["virtual-machine-rentals"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"gpuCount":{"type":"number"},"networkType":{"default":"ethernet","type":"string","enum":["infiniband","ethernet"]},"region":{"default":"us-central-1","type":"string","enum":["us-central-1","us-central-2","eu-north-2","eu-west-2","eu-north-4","eu-north-5","us-east-1","us-east-2","ca-east-3","eu-north-6","eu-north-7","eu-north-8","ca-west-1","ca-east-1","us-central-3","us-southeast-1","me-central-1","ca-east-2","eu-west-1","us-southeast-2","jp-east-1","us-southeast-3","eu-west-5","us-east-3"]},"gpuType":{"default":"h100","type":"string","enum":["h100","h200","b200","rtx-6000-pro"]},"label":{"type":"string"},"termType":{"default":"on-demand","type":"string","enum":["on-demand","reserved"]},"termPeriodDays":{"type":"number"},"discountPercentage":{"default":0,"type":"number"},"convertToOnDemandOnExpiry":{"default":true,"type":"boolean"},"monitoringEnabled":{"type":"boolean"},"customPorts":{"maxItems":20,"type":"array","items":{"type":"integer","minimum":1,"maximum":65535}},"sshPublicKeyId":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sshPublicKeyIds":{"minItems":1,"type":"array","items":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}}},"required":["gpuCount"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Rental"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}},"get":{"operationId":"ondemand-getActiveVirtualMachineRentals-legacy","summary":"Get a list of active virtual machine rentals","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/virtual-machine-rentals` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/virtual-machine-rentals`.\n\n**Deprecated.** Returns every active virtual machine rental in one response. Use `GET /v2/on-demand/rentals/active?rentalType=virtual-machine`, which returns them a page at a time.","tags":["virtual-machine-rentals"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[{"in":"query","name":"includeClusterPools","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/RentalWithStatus"}}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.NOT_FOUND"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}},"/v2/alpha/on-demand/virtual-machine-rentals/terminate":{"post":{"operationId":"ondemand-terminateVirtualMachineRental-legacy","summary":"Terminate a virtual machine rental","description":"**Deprecated.** This path is the pre-`/v2/` URL for `/v2/on-demand/virtual-machine-rentals/terminate` and is kept only so existing integrations keep working. It behaves identically, responds with a `Sunset` header, and stops being served on 2027-03-01. Move to `/v2/on-demand/virtual-machine-rentals/terminate`.\n\n**Deprecated.** Use `POST /v2/on-demand/rentals/terminate`, which terminates either machine type.","tags":["virtual-machine-rentals"],"deprecated":true,"security":[{"Authorization":[]}],"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rentalId":{"anyOf":[{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},{"type":"string","minLength":1}]},"reason":{"type":"string"}},"required":["rentalId"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TerminateVirtualMachineRentalResponse"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"400":{"description":"Invalid input data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.BAD_REQUEST"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"401":{"description":"Authorization not provided","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.UNAUTHORIZED"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"403":{"description":"Insufficient access","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.FORBIDDEN"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/error.INTERNAL_SERVER_ERROR"}}},"headers":{"Sunset":{"description":"RFC 8594 sunset date for this deprecated path (`Mon, 01 Mar 2027 00:00:00 GMT`).","schema":{"type":"string"}}}}}}}},"components":{"schemas":{"error.BAD_REQUEST":{"type":"object","properties":{"message":{"type":"string","description":"The error message","example":"Invalid input data"},"code":{"type":"string","description":"The error code","example":"BAD_REQUEST"},"issues":{"description":"An array of issues that were responsible for the error","example":[],"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Invalid input data error (400)","description":"The error information","example":{"code":"BAD_REQUEST","message":"Invalid input data","issues":[]}},"error.NOT_FOUND":{"type":"object","properties":{"message":{"type":"string","description":"The error message","example":"Not found"},"code":{"type":"string","description":"The error code","example":"NOT_FOUND"},"issues":{"description":"An array of issues that were responsible for the error","example":[],"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Not found error (404)","description":"The error information","example":{"code":"NOT_FOUND","message":"Not found","issues":[]}},"error.INTERNAL_SERVER_ERROR":{"type":"object","properties":{"message":{"type":"string","description":"The error message","example":"Internal server error"},"code":{"type":"string","description":"The error code","example":"INTERNAL_SERVER_ERROR"},"issues":{"description":"An array of issues that were responsible for the error","example":[],"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Internal server error error (500)","description":"The error information","example":{"code":"INTERNAL_SERVER_ERROR","message":"Internal server error","issues":[]}},"AttachStorageVolumeResponse":{"type":"object","properties":{"storageVolumeId":{"type":"string"},"attachedRentalIds":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}},"required":["storageVolumeId","attachedRentalIds","message"],"additionalProperties":false,"description":"Confirmation that a storage volume is being attached."},"error.UNAUTHORIZED":{"type":"object","properties":{"message":{"type":"string","description":"The error message","example":"Authorization not provided"},"code":{"type":"string","description":"The error code","example":"UNAUTHORIZED"},"issues":{"description":"An array of issues that were responsible for the error","example":[],"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Authorization not provided error (401)","description":"The error information","example":{"code":"UNAUTHORIZED","message":"Authorization not provided","issues":[]}},"error.FORBIDDEN":{"type":"object","properties":{"message":{"type":"string","description":"The error message","example":"Insufficient access"},"code":{"type":"string","description":"The error code","example":"FORBIDDEN"},"issues":{"description":"An array of issues that were responsible for the error","example":[],"type":"array","items":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"],"additionalProperties":false}}},"required":["message","code"],"additionalProperties":false,"title":"Insufficient access error (403)","description":"The error information","example":{"code":"FORBIDDEN","message":"Insufficient access","issues":[]}},"Rental":{"type":"object","properties":{"rentalId":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"rentalType":{"type":"string","enum":["virtual-machine","bare-metal"]},"region":{"type":"string","enum":["us-central-1","us-central-2","eu-north-2","eu-west-2","eu-north-4","eu-north-5","us-east-1","us-east-2","ca-east-3","eu-north-6","eu-north-7","eu-north-8","ca-west-1","ca-east-1","us-central-3","us-southeast-1","me-central-1","ca-east-2","eu-west-1","us-southeast-2","jp-east-1","us-southeast-3","eu-west-5","us-east-3","uk-central-3","uk-southeast-3","eu-southwest-3","eu-southwest-3-1","eu-west-3","eu-west-4","private-cloud"]},"gpuType":{"type":"string","enum":["h100","h200","b200","rtx-6000-pro"]},"gpuCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"gpuFormFactor":{"type":"string","enum":["sxm5","sxm6","pcie"]},"connectionType":{"type":"string","enum":["infiniband","ethernet"]},"ethernetVariant":{"anyOf":[{"type":"string","enum":["normal","rocev2"]},{"type":"null"}]},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/RentalNode"}},"sshEndpoints":{"type":"array","items":{"$ref":"#/components/schemas/SshEndpoint"}},"networkInterfaces":{"type":"array","items":{"$ref":"#/components/schemas/NetworkInterface"}},"portMappings":{"type":"array","items":{"$ref":"#/components/schemas/PortMapping"}},"supportsPortForwarding":{"type":"boolean"},"exposedPorts":{"type":"array","items":{"type":"number"}},"supportsCustomPorts":{"type":"boolean"},"attachedStorage":{"type":"array","items":{"$ref":"#/components/schemas/AttachedStorage"}},"supportsAttachedStorage":{"type":"boolean"},"monitoringEnabled":{"type":"boolean"},"convertToOnDemandOnExpiry":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"terminationReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"currentTerm":{"oneOf":[{"type":"object","properties":{"effectiveAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"termType":{"type":"string","const":"on-demand"},"costPerHour":{"type":"number"},"reservedUntil":{"type":"null"},"reservationEndsAt":{"type":"null"},"termPeriodDays":{"type":"null"},"discountPercentage":{"type":"null"},"originalCostPerHour":{"type":"null"}},"required":["effectiveAt","termType","costPerHour","reservedUntil","reservationEndsAt","termPeriodDays","discountPercentage","originalCostPerHour"],"additionalProperties":false},{"type":"object","properties":{"effectiveAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"termType":{"type":"string","const":"reserved"},"costPerHour":{"type":"number"},"reservedUntil":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"reservationEndsAt":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"termPeriodDays":{"type":"number"},"discountPercentage":{"type":"number"},"originalCostPerHour":{"type":"number"}},"required":["effectiveAt","termType","costPerHour","reservedUntil","reservationEndsAt","termPeriodDays","discountPercentage","originalCostPerHour"],"additionalProperties":false},{"type":"object","properties":{"effectiveAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"termType":{"type":"string","const":"private-cloud"},"costPerHour":{"type":"number"},"reservedUntil":{"type":"null"},"reservationEndsAt":{"type":"null"},"termPeriodDays":{"type":"null"},"discountPercentage":{"type":"null"},"originalCostPerHour":{"type":"null"}},"required":["effectiveAt","termType","costPerHour","reservedUntil","reservationEndsAt","termPeriodDays","discountPercentage","originalCostPerHour"],"additionalProperties":false}],"type":"object"},"createdAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"updatedAt":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"startedAt":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"terminatedAt":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"userId":{"type":"string"},"orgId":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdBy":{"$ref":"#/components/schemas/RentalCreator"},"privateCluster":{"anyOf":[{"$ref":"#/components/schemas/PrivateCluster"},{"type":"null"}]},"managedCluster":{"anyOf":[{"$ref":"#/components/schemas/ManagedClusterRef"},{"type":"null"}]}},"required":["rentalId","name","label","rentalType","region","gpuType","gpuCount","gpuFormFactor","connectionType","ethernetVariant","nodes","sshEndpoints","networkInterfaces","portMappings","supportsPortForwarding","exposedPorts","supportsCustomPorts","attachedStorage","supportsAttachedStorage","monitoringEnabled","convertToOnDemandOnExpiry","terminationReason","currentTerm","createdAt","updatedAt","startedAt","terminatedAt","userId","orgId","createdBy","privateCluster","managedCluster"],"additionalProperties":false,"description":"A GPU rental."},"RentalNode":{"type":"object","properties":{"cpuModel":{"type":"string"},"cpuCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"vcpuCount":{"anyOf":[{"type":"number"},{"type":"null"}]},"gpuCount":{"type":"number"},"ramGb":{"type":"number"},"storageGb":{"type":"number"}},"required":["cpuModel","cpuCount","vcpuCount","gpuCount","ramGb","storageGb"],"additionalProperties":false,"description":"Hardware of one node of a rental, normalised across machine types."},"SshEndpoint":{"type":"object","properties":{"host":{"type":"string"},"port":{"type":"number"},"user":{"type":"string"}},"required":["host","port","user"],"additionalProperties":false,"description":"Where to connect to a rental over SSH."},"NetworkInterface":{"type":"object","properties":{"publicIp":{"type":"string"},"privateIp":{"type":"string"}},"required":["publicIp","privateIp"],"additionalProperties":false,"description":"The public and private addresses of one node of a rental."},"PortMapping":{"type":"object","properties":{"externalPort":{"type":"number"},"internalPort":{"type":"number"}},"required":["externalPort","internalPort"],"additionalProperties":false,"description":"A port reachable from outside, and the port it reaches inside the machine."},"AttachedStorage":{"type":"object","properties":{"storageVolumeId":{"type":"string"},"label":{"type":"string"},"sizeInGb":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"virtualIp":{"type":"string"},"costPerHourCents":{"type":"number"}},"required":["storageVolumeId","label","sizeInGb","virtualIp","costPerHourCents"],"additionalProperties":false,"description":"A storage volume as seen from a rental it is attached to."},"RentalCreator":{"type":"object","properties":{"id":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"type":"string"},"picture":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","name","email","picture"],"additionalProperties":false,"description":"The user who created a rental."},"PrivateCluster":{"type":"object","properties":{"gpuModel":{"anyOf":[{"type":"string"},{"type":"null"}]},"location":{"anyOf":[{"type":"string"},{"type":"null"}]},"sshUser":{"type":"string"},"sshPort":{"anyOf":[{"type":"number"},{"type":"null"}]},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/PrivateClusterNode"}},"handover":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["gpuModel","location","sshUser","sshPort","nodes","handover"],"additionalProperties":false,"description":"The topology of a dedicated private cluster."},"PrivateClusterNode":{"type":"object","properties":{"role":{"type":"string","enum":["login","head","compute"]},"hostname":{"anyOf":[{"type":"string"},{"type":"null"}]},"publicIp":{"anyOf":[{"type":"string"},{"type":"null"}]},"privateIp":{"type":"string"}},"required":["role","hostname","publicIp","privateIp"],"additionalProperties":false,"description":"One machine of a dedicated private cluster."},"ManagedClusterRef":{"type":"object","properties":{"name":{"type":"string"},"label":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["name","label"],"additionalProperties":false,"description":"The managed Kubernetes cluster a rental is a node pool of."},"RentalWithStatus":{"type":"object","properties":{"rentalId":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"rentalType":{"type":"string","enum":["virtual-machine","bare-metal"]},"region":{"type":"string","enum":["us-central-1","us-central-2","eu-north-2","eu-west-2","eu-north-4","eu-north-5","us-east-1","us-east-2","ca-east-3","eu-north-6","eu-north-7","eu-north-8","ca-west-1","ca-east-1","us-central-3","us-southeast-1","me-central-1","ca-east-2","eu-west-1","us-southeast-2","jp-east-1","us-southeast-3","eu-west-5","us-east-3","uk-central-3","uk-southeast-3","eu-southwest-3","eu-southwest-3-1","eu-west-3","eu-west-4","private-cloud"]},"gpuType":{"type":"string","enum":["h100","h200","b200","rtx-6000-pro"]},"gpuCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"gpuFormFactor":{"type":"string","enum":["sxm5","sxm6","pcie"]},"connectionType":{"type":"string","enum":["infiniband","ethernet"]},"ethernetVariant":{"anyOf":[{"type":"string","enum":["normal","rocev2"]},{"type":"null"}]},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/RentalNode"}},"sshEndpoints":{"type":"array","items":{"$ref":"#/components/schemas/SshEndpoint"}},"networkInterfaces":{"type":"array","items":{"$ref":"#/components/schemas/NetworkInterface"}},"portMappings":{"type":"array","items":{"$ref":"#/components/schemas/PortMapping"}},"supportsPortForwarding":{"type":"boolean"},"exposedPorts":{"type":"array","items":{"type":"number"}},"supportsCustomPorts":{"type":"boolean"},"attachedStorage":{"type":"array","items":{"$ref":"#/components/schemas/AttachedStorage"}},"supportsAttachedStorage":{"type":"boolean"},"monitoringEnabled":{"type":"boolean"},"convertToOnDemandOnExpiry":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"terminationReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"currentTerm":{"oneOf":[{"type":"object","properties":{"effectiveAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"termType":{"type":"string","const":"on-demand"},"costPerHour":{"type":"number"},"reservedUntil":{"type":"null"},"reservationEndsAt":{"type":"null"},"termPeriodDays":{"type":"null"},"discountPercentage":{"type":"null"},"originalCostPerHour":{"type":"null"}},"required":["effectiveAt","termType","costPerHour","reservedUntil","reservationEndsAt","termPeriodDays","discountPercentage","originalCostPerHour"],"additionalProperties":false},{"type":"object","properties":{"effectiveAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"termType":{"type":"string","const":"reserved"},"costPerHour":{"type":"number"},"reservedUntil":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"reservationEndsAt":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"termPeriodDays":{"type":"number"},"discountPercentage":{"type":"number"},"originalCostPerHour":{"type":"number"}},"required":["effectiveAt","termType","costPerHour","reservedUntil","reservationEndsAt","termPeriodDays","discountPercentage","originalCostPerHour"],"additionalProperties":false},{"type":"object","properties":{"effectiveAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"termType":{"type":"string","const":"private-cloud"},"costPerHour":{"type":"number"},"reservedUntil":{"type":"null"},"reservationEndsAt":{"type":"null"},"termPeriodDays":{"type":"null"},"discountPercentage":{"type":"null"},"originalCostPerHour":{"type":"null"}},"required":["effectiveAt","termType","costPerHour","reservedUntil","reservationEndsAt","termPeriodDays","discountPercentage","originalCostPerHour"],"additionalProperties":false}],"type":"object"},"createdAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"updatedAt":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"startedAt":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"terminatedAt":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"userId":{"type":"string"},"orgId":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdBy":{"$ref":"#/components/schemas/RentalCreator"},"privateCluster":{"anyOf":[{"$ref":"#/components/schemas/PrivateCluster"},{"type":"null"}]},"managedCluster":{"anyOf":[{"$ref":"#/components/schemas/ManagedClusterRef"},{"type":"null"}]},"status":{"default":"Unknown","type":"string","enum":["Failed","Pending","Rebooting","Running","Terminating","Terminated","Unknown"]},"instances":{"type":"array","items":{"$ref":"#/components/schemas/RentalInstance"}}},"required":["rentalId","name","label","rentalType","region","gpuType","gpuCount","gpuFormFactor","connectionType","ethernetVariant","nodes","sshEndpoints","networkInterfaces","portMappings","supportsPortForwarding","exposedPorts","supportsCustomPorts","attachedStorage","supportsAttachedStorage","monitoringEnabled","convertToOnDemandOnExpiry","terminationReason","currentTerm","createdAt","updatedAt","startedAt","terminatedAt","userId","orgId","createdBy","privateCluster","managedCluster","status"],"additionalProperties":false,"description":"A GPU rental with its live status."},"RentalInstance":{"type":"object","properties":{"instanceRef":{"type":"string"},"phase":{"type":"string"},"ssh":{"anyOf":[{"type":"string"},{"type":"null"}]},"internalIp":{"anyOf":[{"type":"string"},{"type":"null"}]},"supportsReboot":{"type":"boolean"},"actualResources":{"$ref":"#/components/schemas/RentalInstanceResources"}},"required":["instanceRef","phase","ssh","internalIp","supportsReboot"],"additionalProperties":false,"description":"The live state of one node of a running rental."},"RentalInstanceResources":{"type":"object","properties":{"vcpuCount":{"type":"number"},"ramGb":{"type":"number"},"gpuCount":{"type":"number"},"gpuMemoryGb":{"type":"number"},"gpuModel":{"type":"string"},"scratchDiskGb":{"type":"number"},"scratchDiskCount":{"type":"number"},"numaNodes":{"type":"number"}},"required":["vcpuCount","ramGb","gpuCount"],"additionalProperties":false,"description":"The hardware one node actually booted with, as its host reported it."},"ReservedRentalConversion":{"type":"object","properties":{"rentalId":{"type":"string"},"reservedUntil":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"amountChargedCents":{"type":"number"},"usageTailCents":{"type":"number"}},"required":["rentalId","reservedUntil","amountChargedCents","usageTailCents"],"additionalProperties":false,"description":"An on-demand rental converted to reserved, and what it cost."},"CreatedStorageVolume":{"type":"object","properties":{"storageVolumeId":{"type":"string"},"region":{"anyOf":[{"type":"string","enum":["us-central-1","us-central-2","eu-north-2","eu-west-2","eu-north-4","eu-north-5","us-east-1","us-east-2","ca-east-3","eu-north-6","eu-north-7","eu-north-8","ca-west-1","ca-east-1","us-central-3","us-southeast-1","me-central-1","ca-east-2","eu-west-1","us-southeast-2","jp-east-1","us-southeast-3","eu-west-5","us-east-3"]},{"type":"string","enum":["us-central-1","uk-central-3","uk-southeast-3","eu-southwest-3","eu-southwest-3-1","eu-west-3","eu-west-4"]}]},"status":{"default":"unknown","type":"string","enum":["active","inactive","unknown"]},"label":{"type":"string","minLength":4,"maxLength":255,"pattern":"^[a-zA-Z0-9_-]+$"},"sizeInGb":{"type":"integer","minimum":256,"maximum":64000,"multipleOf":256},"attachedRentalIds":{"type":"array","items":{"type":"string"}},"message":{"type":"string"}},"required":["storageVolumeId","region","status","label","sizeInGb","attachedRentalIds","message"],"additionalProperties":false,"description":"A newly created storage volume."},"StorageVolume":{"type":"object","properties":{"storageVolumeId":{"type":"string"},"label":{"type":"string"},"region":{"anyOf":[{"type":"string","enum":["us-central-1","us-central-2","eu-north-2","eu-west-2","eu-north-4","eu-north-5","us-east-1","us-east-2","ca-east-3","eu-north-6","eu-north-7","eu-north-8","ca-west-1","ca-east-1","us-central-3","us-southeast-1","me-central-1","ca-east-2","eu-west-1","us-southeast-2","jp-east-1","us-southeast-3","eu-west-5","us-east-3"]},{"type":"string","enum":["us-central-1","uk-central-3","uk-southeast-3","eu-southwest-3","eu-southwest-3-1","eu-west-3","eu-west-4"]}]},"sizeInGb":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"status":{"type":"string","enum":["active","inactive","unknown"]},"virtualIp":{"type":"string"},"costPerHourCents":{"type":"number"},"attachedRentalIds":{"type":"array","items":{"type":"string"}},"terminationReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"updatedAt":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"startedAt":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"terminatedAt":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"userId":{"type":"string"},"orgId":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["storageVolumeId","label","region","sizeInGb","status","virtualIp","costPerHourCents","attachedRentalIds","terminationReason","createdAt","updatedAt","startedAt","terminatedAt","userId","orgId"],"additionalProperties":false,"description":"A network storage volume."},"ReservedRentalExtension":{"type":"object","properties":{"rentalId":{"type":"string"},"reservedUntil":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"amountChargedCents":{"type":"number"}},"required":["rentalId","reservedUntil","amountChargedCents"],"additionalProperties":false,"description":"A reserved rental's new end, and what extending it cost."},"ActiveRentalSummary":{"type":"object","properties":{"count":{"type":"integer","minimum":0,"maximum":9007199254740991},"costPerHourCents":{"type":"integer","minimum":0,"maximum":9007199254740991},"byTermType":{"$ref":"#/components/schemas/ActiveRentalSummaryByTermType"}},"required":["count","costPerHourCents","byTermType"],"additionalProperties":false,"description":"How many rentals the caller has active, and their summed hourly cost in cents."},"ActiveRentalSummaryByTermType":{"type":"object","properties":{"on-demand":{"$ref":"#/components/schemas/RentalTermTypeSummary"},"reserved":{"$ref":"#/components/schemas/RentalTermTypeSummary"},"private-cloud":{"$ref":"#/components/schemas/RentalTermTypeSummary"}},"required":["on-demand","reserved","private-cloud"],"additionalProperties":false,"description":"Active rental totals for each term type."},"RentalTermTypeSummary":{"type":"object","properties":{"count":{"type":"integer","minimum":0,"maximum":9007199254740991},"costPerHourCents":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["count","costPerHourCents"],"additionalProperties":false,"description":"How many active rentals are on one term type, and their summed hourly cost in cents."},"ActiveRentalLookup":{"type":"object","properties":{"state":{"type":"string","const":"active"},"rental":{"$ref":"#/components/schemas/RentalWithStatus"}},"required":["state","rental"],"additionalProperties":false,"description":"A rental lookup that found a running rental."},"TerminatedRentalLookup":{"type":"object","properties":{"state":{"type":"string","const":"terminated"},"rental":{"$ref":"#/components/schemas/HistoricalRental"}},"required":["state","rental"],"additionalProperties":false,"description":"A rental lookup that found a rental that has ended."},"HistoricalRental":{"type":"object","properties":{"rentalId":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"label":{"anyOf":[{"type":"string"},{"type":"null"}]},"rentalType":{"type":"string","enum":["virtual-machine","bare-metal"]},"region":{"type":"string","enum":["us-central-1","us-central-2","eu-north-2","eu-west-2","eu-north-4","eu-north-5","us-east-1","us-east-2","ca-east-3","eu-north-6","eu-north-7","eu-north-8","ca-west-1","ca-east-1","us-central-3","us-southeast-1","me-central-1","ca-east-2","eu-west-1","us-southeast-2","jp-east-1","us-southeast-3","eu-west-5","us-east-3","uk-central-3","uk-southeast-3","eu-southwest-3","eu-southwest-3-1","eu-west-3","eu-west-4","private-cloud"]},"gpuType":{"type":"string","enum":["h100","h200","b200","rtx-6000-pro"]},"gpuCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"gpuFormFactor":{"type":"string","enum":["sxm5","sxm6","pcie"]},"connectionType":{"type":"string","enum":["infiniband","ethernet"]},"ethernetVariant":{"anyOf":[{"type":"string","enum":["normal","rocev2"]},{"type":"null"}]},"nodes":{"type":"array","items":{"$ref":"#/components/schemas/RentalNode"}},"sshEndpoints":{"type":"array","items":{"$ref":"#/components/schemas/SshEndpoint"}},"networkInterfaces":{"type":"array","items":{"$ref":"#/components/schemas/NetworkInterface"}},"portMappings":{"type":"array","items":{"$ref":"#/components/schemas/PortMapping"}},"supportsPortForwarding":{"type":"boolean"},"exposedPorts":{"type":"array","items":{"type":"number"}},"supportsCustomPorts":{"type":"boolean"},"attachedStorage":{"type":"array","items":{"$ref":"#/components/schemas/AttachedStorage"}},"supportsAttachedStorage":{"type":"boolean"},"monitoringEnabled":{"type":"boolean"},"convertToOnDemandOnExpiry":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"terminationReason":{"anyOf":[{"type":"string"},{"type":"null"}]},"currentTerm":{"oneOf":[{"type":"object","properties":{"effectiveAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"termType":{"type":"string","const":"on-demand"},"costPerHour":{"type":"number"},"reservedUntil":{"type":"null"},"reservationEndsAt":{"type":"null"},"termPeriodDays":{"type":"null"},"discountPercentage":{"type":"null"},"originalCostPerHour":{"type":"null"}},"required":["effectiveAt","termType","costPerHour","reservedUntil","reservationEndsAt","termPeriodDays","discountPercentage","originalCostPerHour"],"additionalProperties":false},{"type":"object","properties":{"effectiveAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"termType":{"type":"string","const":"reserved"},"costPerHour":{"type":"number"},"reservedUntil":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"reservationEndsAt":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"termPeriodDays":{"type":"number"},"discountPercentage":{"type":"number"},"originalCostPerHour":{"type":"number"}},"required":["effectiveAt","termType","costPerHour","reservedUntil","reservationEndsAt","termPeriodDays","discountPercentage","originalCostPerHour"],"additionalProperties":false},{"type":"object","properties":{"effectiveAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"termType":{"type":"string","const":"private-cloud"},"costPerHour":{"type":"number"},"reservedUntil":{"type":"null"},"reservationEndsAt":{"type":"null"},"termPeriodDays":{"type":"null"},"discountPercentage":{"type":"null"},"originalCostPerHour":{"type":"null"}},"required":["effectiveAt","termType","costPerHour","reservedUntil","reservationEndsAt","termPeriodDays","discountPercentage","originalCostPerHour"],"additionalProperties":false}],"type":"object"},"createdAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"updatedAt":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"startedAt":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"terminatedAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"userId":{"type":"string"},"orgId":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdBy":{"$ref":"#/components/schemas/RentalCreator"},"privateCluster":{"anyOf":[{"$ref":"#/components/schemas/PrivateCluster"},{"type":"null"}]},"managedCluster":{"anyOf":[{"$ref":"#/components/schemas/ManagedClusterRef"},{"type":"null"}]},"status":{"type":"string","enum":["Terminated","Failed"]},"totalCost":{"type":"number"}},"required":["rentalId","name","label","rentalType","region","gpuType","gpuCount","gpuFormFactor","connectionType","ethernetVariant","nodes","sshEndpoints","networkInterfaces","portMappings","supportsPortForwarding","exposedPorts","supportsCustomPorts","attachedStorage","supportsAttachedStorage","monitoringEnabled","convertToOnDemandOnExpiry","terminationReason","currentTerm","createdAt","updatedAt","startedAt","terminatedAt","userId","orgId","createdBy","privateCluster","managedCluster","status","totalCost"],"additionalProperties":false,"description":"A GPU rental that has ended, with its total cost."},"ActiveRentalsPage":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/RentalWithStatus"}},"total":{"type":"integer","minimum":0,"maximum":9007199254740991},"page":{"type":"integer","minimum":1,"maximum":9007199254740991},"pageSize":{"type":"integer","minimum":1,"maximum":9007199254740991},"totalPages":{"type":"integer","minimum":1,"maximum":9007199254740991}},"required":["items","total","page","pageSize","totalPages"],"additionalProperties":false,"description":"One numbered page of active rentals, most recently started first."},"RentalHistoryPage":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/HistoricalRental"}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]},"totalCount":{"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]}},"required":["items","nextCursor","totalCount"],"additionalProperties":false,"description":"One page of past rentals, most recently terminated first. Pass `nextCursor` back as `cursor` for the next page; it is `null` on the last page. `totalCount` is set on the first page only."},"ReservationExtensionQuote":{"type":"object","properties":{"costPerHourCents":{"type":"number"},"reservedUntil":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"options":{"type":"array","items":{"$ref":"#/components/schemas/ReservationExtensionOption"}}},"required":["costPerHourCents","reservedUntil","options"],"additionalProperties":false,"description":"What extending a reserved rental would cost, per term."},"ReservationExtensionOption":{"type":"object","properties":{"termPeriodDays":{"type":"number"},"discountPercentage":{"type":"number"},"totalPriceCents":{"type":"number"},"newReservedUntil":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"}},"required":["termPeriodDays","discountPercentage","totalPriceCents","newReservedUntil"],"additionalProperties":false,"description":"One term a reserved rental can be extended by."},"ReservedConversionQuote":{"type":"object","properties":{"costPerHourCents":{"type":"number"},"estimatedUsageTailCents":{"type":"number"},"options":{"type":"array","items":{"$ref":"#/components/schemas/ReservedConversionOption"}}},"required":["costPerHourCents","estimatedUsageTailCents","options"],"additionalProperties":false,"description":"What converting an on-demand rental to reserved would cost, per term."},"ReservedConversionOption":{"type":"object","properties":{"termPeriodDays":{"type":"number"},"discountPercentage":{"type":"number"},"totalPriceCents":{"type":"number"}},"required":["termPeriodDays","discountPercentage","totalPriceCents"],"additionalProperties":false,"description":"One term an on-demand rental can be converted to."},"RentalInstanceReboot":{"type":"object","properties":{"message":{"type":"string"},"rentalId":{"type":"string"},"instanceRef":{"type":"string"}},"required":["message","rentalId","instanceRef"],"additionalProperties":false,"description":"Confirmation that a node of a rental is rebooting."},"RebootVirtualMachineInstanceResponse":{"type":"object","properties":{"message":{"type":"string"},"rentalId":{"type":"string"},"instanceRef":{"type":"string"}},"required":["message","rentalId","instanceRef"],"additionalProperties":false,"description":"Confirmation that a node of a rental is rebooting."},"TerminateBareMetalRentalResponse":{"type":"object","properties":{"message":{"type":"string"},"rentalId":{"type":"string"}},"required":["message","rentalId"],"additionalProperties":false,"description":"Confirmation that a bare-metal rental is terminating."},"RentalTermination":{"type":"object","properties":{"message":{"type":"string"},"rentalId":{"type":"string"}},"required":["message","rentalId"],"additionalProperties":false,"description":"Confirmation that a rental is terminating."},"TerminateStorageVolumeResponse":{"type":"object","properties":{"storageVolumeId":{"type":"string"},"message":{"type":"string"}},"required":["storageVolumeId","message"],"additionalProperties":false,"description":"Confirmation that a storage volume is terminating."},"TerminateVirtualMachineRentalResponse":{"type":"object","properties":{"message":{"type":"string"},"rentalId":{"type":"string"}},"required":["message","rentalId"],"additionalProperties":false,"description":"Confirmation that a virtual-machine rental is terminating."},"UpdateStorageVolumeResponse":{"type":"object","properties":{"storageVolumeId":{"type":"string"},"attachedRentalIds":{"type":"array","items":{"type":"string"}},"sizeInGb":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"message":{"type":"string"}},"required":["storageVolumeId","attachedRentalIds","sizeInGb","message"],"additionalProperties":false,"description":"Confirmation that a storage volume is being updated."},"CurrentUser":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"picture":{"anyOf":[{"type":"string"},{"type":"null"}]},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]},"emailVerified":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"isActive":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"onboardedAt":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"onboardedFor":{"anyOf":[{"type":"string"},{"type":"null"}]},"referralCode":{"anyOf":[{"type":"string"},{"type":"null"}]},"role":{"type":"string","enum":["user","pro","elite"]},"completedPromos":{"type":"array","items":{"type":"string"}},"hasPurchasedCredits":{"type":"boolean"},"reservedRentalLimit":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","email","name","picture","provider","emailVerified","isActive","createdAt","onboardedAt","onboardedFor","referralCode","role","completedPromos","hasPurchasedCredits"],"additionalProperties":false,"description":"The authenticated user, with account state resolved."},"SuccessResponse":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"],"additionalProperties":false,"description":"Result of an operation that returns no payload."},"UserMutationResponse":{"type":"object","properties":{"success":{"type":"boolean"},"user":{"$ref":"#/components/schemas/User"}},"required":["success","user"],"additionalProperties":false,"description":"The user account as it stands after an update."},"User":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"picture":{"anyOf":[{"type":"string"},{"type":"null"}]},"provider":{"anyOf":[{"type":"string"},{"type":"null"}]},"emailVerified":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"isActive":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"onboardedAt":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"onboardedFor":{"anyOf":[{"type":"string"},{"type":"null"}]},"referralCode":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["id","email","name","picture","provider","emailVerified","isActive","createdAt","onboardedAt","onboardedFor","referralCode"],"additionalProperties":false,"description":"A Hyperbolic user account."},"ApiKey":{"type":"object","properties":{"publicId":{"type":"string"},"userId":{"type":"string"},"orgId":{"anyOf":[{"type":"string"},{"type":"null"}]},"last4":{"type":"string"},"createdAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"revokedAt":{"anyOf":[{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},{"type":"null"}]},"organizationMember":{"$ref":"#/components/schemas/OrganizationMember"}},"required":["publicId","userId","orgId","last4","createdAt","revokedAt"],"additionalProperties":false,"description":"An issued API key. The secret itself is only ever returned at creation."},"OrganizationMember":{"type":"object","properties":{"email":{"type":"string"},"fullName":{"type":"string"},"imageUrl":{"type":"string"},"role":{"type":"string","enum":["org:admin","org:member"]}},"required":["email","role"],"additionalProperties":false,"description":"The organization member an API key belongs to."},"AccountBalance":{"type":"object","properties":{"balanceCents":{"type":"number"},"maxOverdraftCents":{"type":"number"}},"required":["balanceCents","maxOverdraftCents"],"additionalProperties":false,"description":"The authenticated account's credit balance."},"SshKeyWithLiveRentalCount":{"type":"object","properties":{"id":{"type":"integer","minimum":-2147483648,"maximum":2147483647},"publicKey":{"type":"string"},"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"userId":{"type":"string"},"orgId":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdBy":{"$ref":"#/components/schemas/SshKeyCreator"},"liveRentalCount":{"type":"integer","minimum":0,"maximum":9007199254740991}},"required":["id","publicKey","name","createdAt","userId","orgId","createdBy","liveRentalCount"],"additionalProperties":false,"description":"An SSH public key, with the number of live rentals it is attached to."},"SshKeyCreator":{"type":"object","properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}]},"email":{"type":"string"}},"required":["name","email"],"additionalProperties":false,"description":"The user who added an SSH public key."},"SshKey":{"type":"object","properties":{"id":{"type":"integer","minimum":-2147483648,"maximum":2147483647},"publicKey":{"type":"string"},"name":{"anyOf":[{"type":"string","maxLength":255},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time","example":"2025-01-31T12:00:00.000Z"},"userId":{"type":"string"},"orgId":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdBy":{"$ref":"#/components/schemas/SshKeyCreator"}},"required":["id","publicKey","name","createdAt","userId","orgId","createdBy"],"additionalProperties":false,"description":"An SSH public key saved to a user's account or an organization. userId is the member who added it; orgId is set when the key belongs to an organization."},"DeletedSshKey":{"type":"object","properties":{"id":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["id"],"additionalProperties":false,"description":"The id of the SSH public key that was deleted."}},"securitySchemes":{"Authorization":{"type":"http","scheme":"bearer"}}}}