{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/gpucloud-ca/json-schema/gpucloud-ca-public-availability-schema.json",
  "title": "PublicAvailability",
  "description": "Aggregated availability of the GPU catalog: per GPU model and machine size, only whether it can be deployed online right now.",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/gpucloud-ca-openapi.json#/components/schemas/PublicAvailability",
  "type": "object",
  "properties": {
    "region": {
      "type": "string"
    },
    "updatedAt": {
      "type": "string",
      "format": "date-time"
    },
    "models": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "slug": {
            "type": "string",
            "description": "Model page: https://gpucloud.ca/{fr|en}/gpu/{slug}"
          },
          "name": {
            "type": "string"
          },
          "sizes": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "description": "Catalog product id (as in /v1/gpu and POST /servers)."
                },
                "gpuCount": {
                  "type": "integer"
                },
                "spot": {
                  "type": "boolean",
                  "description": "Interruptible machine, hourly billing only."
                },
                "available": {
                  "type": "boolean",
                  "description": "Deployable online right now."
                },
                "priceOnRequest": {
                  "type": "boolean",
                  "description": "Sold on request only (never deployable online)."
                }
              },
              "required": [
                "id",
                "gpuCount",
                "spot",
                "available",
                "priceOnRequest"
              ]
            }
          }
        },
        "required": [
          "slug",
          "name",
          "sizes"
        ]
      }
    }
  },
  "required": [
    "region",
    "updatedAt",
    "models"
  ]
}