NexGen Cloud · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Hyperstack API

10 actions 10 updates update extends ../openapi/nexgen-cloud-hyperstack-openapi.json
Generated by API Evangelist Written by API Evangelist tooling for NexGen Cloud's API. It is a proposal applied on top of the contract, not a document NexGen Cloud publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-consequencex-reversibilityx-idempotencyx-apievangelistx-rate-limitx-error-envelopex-paginationx-cost-rehearsal

Targets 8

$.info
$.paths['/core/virtual-machines/{vm_id}'].delete
$.paths['/core/volumes/{volume_id}'].delete
$.paths['/core/clusters/{id}'].delete
$.paths['/core/virtual-machines/{vm_id}/hibernate'].get
$.paths['/core/virtual-machines/{vm_id}/stop'].get
$.paths['/core/virtual-machines'].post
$.paths['/billing/payment/payment-initiate'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Hyperstack API
  version: 1.0.0
x-provenance:
  generated: '2026-08-26'
  method: generated
  source: >-
    openapi/nexgen-cloud-hyperstack-openapi.json plus the artifacts derived alongside it in
    this repository. Captures API Evangelist annotations WITHOUT mutating the provider's
    original document, which stays byte-identical to what docs.hyperstack.cloud serves.
extends: ../openapi/nexgen-cloud-hyperstack-openapi.json
actions:
- target: $.info
  description: Attach cross-references to the derived artifacts in this repository.
  update:
    x-apievangelist:
      profile: https://apis.io/provider/nexgen-cloud
      artifacts:
        authentication: authentication/nexgen-cloud-authentication.yml
        conventions: conventions/nexgen-cloud-conventions.yml
        errors: errors/nexgen-cloud-problem-types.yml
        rate_limits: rate-limits/nexgen-cloud-rate-limits.yml
        plans: plans/nexgen-cloud-plans-pricing.yml
        lifecycle: lifecycle/nexgen-cloud-lifecycle.yml
        changelog: changelog/nexgen-cloud-changelog.yml
        conformance: conformance/nexgen-cloud-conformance.yml
        data_model: data-model/nexgen-cloud-data-model.yml
        webhooks: asyncapi/nexgen-cloud-webhooks.yml
        mcp: mcp/nexgen-cloud-mcp.yml
        tool_crosswalk: mcp/nexgen-cloud-tool-crosswalk.yml
        packages: packages/nexgen-cloud-packages.yml
        skills: skills/_index.yml
- target: $.info
  description: >-
    Record the runtime facts a client needs that the contract itself does not state -
    the published rate ceiling, the absence of rate-limit response headers, and the
    absence of any idempotency mechanism.
  update:
    x-rate-limit:
      scope: per-source-ip
      limit: 500
      window: 1 minute
      exhaustion_status: 429
      response_headers: none documented
      source: https://docs.hyperstack.cloud/docs/api-reference/rate-limits
    x-idempotency:
      supported: false
      note: >-
        No Idempotency-Key header exists. A timed-out create can provision and bill a
        duplicate resource on retry. Name-availability probes are a collision check, not
        idempotency.
    x-error-envelope:
      rfc9457: false
      shape: '{status: boolean, message: string, error_reason: string}'
      variants: 3
      note: object storage reuses the field names under its own schema; AI Studio uses {code, message, status}.
- target: $.info
  description: Record the pagination facts a generic client cannot infer from the contract.
  update:
    x-pagination:
      style: page-number
      page_param: page
      page_size_params:
        core: pageSize
        billing_and_pricebook_and_images: per_page
        object_storage: page_size
      envelope_shapes: 3
      stable_across_writes: false
      source: https://docs.hyperstack.cloud/docs/api-reference/pagination
- target: $.paths['/core/virtual-machines/{vm_id}'].delete
  description: Flag the irreversibility of VM deletion for agent consumers.
  update:
    x-reversibility:
      reversible: false
      reversal_operation: null
      window: null
      note: >-
        Permanent. There is no undelete operation, no soft-delete state and no retention
        window. Ephemeral disk data is lost. Snapshot first (Create_Snapshot_for_VM) if the
        state matters.
    x-consequence: destructive-irreversible
- target: $.paths['/core/volumes/{volume_id}'].delete
  description: Flag the irreversibility of volume deletion.
  update:
    x-reversibility:
      reversible: false
      reversal_operation: null
      window: null
    x-consequence: destructive-irreversible
- target: $.paths['/core/clusters/{id}'].delete
  description: Flag the irreversibility of cluster deletion.
  update:
    x-reversibility:
      reversible: false
      reversal_operation: null
      window: null
    x-consequence: destructive-irreversible
- target: $.paths['/core/virtual-machines/{vm_id}/hibernate'].get
  description: Record the documented inverse operation and its non-identity-preserving side effect.
  update:
    x-reversibility:
      reversible: true
      reversal_operation: Restore_VM_from_hibernation
      window: not stated by the provider
      note: >-
        The attached public IP is RELEASED by default and a different one assigned on
        restore, unless retain_ip=true is passed. The reversal restores the machine, not
        the address.
    x-consequence: state-change-reversible
- target: $.paths['/core/virtual-machines/{vm_id}/stop'].get
  description: Record the inverse operation and the billing consequence.
  update:
    x-reversibility:
      reversible: true
      reversal_operation: Start_VM
      window: not stated
      note: SHUTOFF continues to bill all reserved resources. Stopping is not a cost saving; hibernating is.
    x-consequence: state-change-reversible
- target: $.paths['/core/virtual-machines'].post
  description: Flag the cost consequence and the retry hazard on the primary write.
  update:
    x-consequence: billable-provisioning
    x-idempotency:
      supported: false
      note: >-
        No safe-retry key. A client that times out and retries can create a second billable
        GPU virtual machine. Use Check_VM_name_availability plus a unique name, and treat a
        409 already_exist as evidence the first call succeeded.
    x-cost-rehearsal: Calculate_resource_billing_rate
- target: $.paths['/billing/payment/payment-initiate'].post
  description: Flag that payments have no reversal in the contract.
  update:
    x-reversibility:
      reversible: false
      reversal_operation: null
      note: No refund, void or reverse operation exists in the published API.
    x-consequence: financial-irreversible