{
  "description": "PoolStatus contains status information for a single resource pool.",
  "properties": {
    "allocatedDevices": {
      "description": "allocatedDevices is the number of devices currently allocated to claims. A value of 0 means no devices are allocated. May be unset when validationError is set.",
      "format": "int32",
      "type": [
        "integer",
        "null"
      ]
    },
    "availableDevices": {
      "description": "availableDevices is the number of devices available for allocation. This equals TotalDevices - AllocatedDevices - UnavailableDevices. A value of 0 means no devices are currently available. May be unset when validationError is set.",
      "format": "int32",
      "type": [
        "integer",
        "null"
      ]
    },
    "driver": {
      "description": "driver is the DRA driver name for this pool. Must be a DNS subdomain (e.g., \"gpu.example.com\").",
      "type": [
        "string",
        "null"
      ]
    },
    "generation": {
      "description": "generation is the pool generation observed across all ResourceSlices in this pool. Only the latest generation is reported. During a generation rollout, if not all slices at the latest generation have been published, the pool is included with a validationError and device counts unset.",
      "format": "int64",
      "type": [
        "integer",
        "null"
      ]
    },
    "nodeName": {
      "description": "nodeName is the node this pool is associated with. When omitted, the pool is not associated with a specific node. Must be a valid DNS subdomain name (RFC1123).",
      "type": [
        "string",
        "null"
      ]
    },
    "partitionSummary": {
      "description": "partitionSummary reports allocatability per (attribute, partition type) for a partitionable pool that publishes SharedCounters. Each entry names the grouping attribute it was resolved from: the PartitionTypeAttribute declared by a device's own slice, or for devices whose slice declares none, the default named in the request. A pool that mixes partitions declared under different attributes reports each independently. When no slice declares an attribute and the request names no default, the pool reports no partition summary.",
      "items": {
        "description": "PartitionTypeStatus reports allocatability for a single partition type, identified by the value of a grouping attribute.",
        "properties": {
          "allocatable": {
            "description": "allocatable is the number of additional devices of this partition type that could still be allocated given current shared-counter consumption.",
            "format": "int32",
            "type": "integer"
          },
          "attribute": {
            "description": "attribute is the fully qualified name of the device attribute whose value groups this entry. It is the PartitionTypeAttribute declared by the devices' own slice, or the default named in the request when their slice declares none.",
            "type": "string"
          },
          "total": {
            "description": "total is the number of devices of this partition type in the pool.",
            "format": "int32",
            "type": "integer"
          },
          "type": {
            "description": "type is the partition type value (e.g. \"Full\" or \"Half\").",
            "type": "string"
          }
        },
        "required": [
          "attribute",
          "type",
          "total",
          "allocatable"
        ],
        "type": [
          "object",
          "null"
        ]
      },
      "type": [
        "array",
        "null"
      ],
      "x-kubernetes-list-type": "atomic"
    },
    "poolName": {
      "description": "poolName is the name of the pool. Must be a valid resource pool name (DNS subdomains separated by \"/\").",
      "type": [
        "string",
        "null"
      ]
    },
    "resourceSliceCount": {
      "description": "resourceSliceCount is the number of ResourceSlices that make up this pool. May be unset when validationError is set.",
      "format": "int32",
      "type": [
        "integer",
        "null"
      ]
    },
    "shareableSummary": {
      "description": "ShareableSummaryStatus reports aggregate capacity for a pool that contains devices with AllowMultipleAllocations.",
      "properties": {
        "capacity": {
          "description": "capacity reports aggregate total, consumed, and available amounts per shareable capacity key across the pool.",
          "items": {
            "description": "ShareableCapacityStatus reports aggregate amounts for a single shareable capacity key.",
            "properties": {
              "available": {
                "oneOf": [
                  {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  {
                    "type": [
                      "number",
                      "null"
                    ]
                  }
                ]
              },
              "consumed": {
                "oneOf": [
                  {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  {
                    "type": [
                      "number",
                      "null"
                    ]
                  }
                ]
              },
              "name": {
                "description": "name is the capacity name.",
                "type": "string"
              },
              "total": {
                "oneOf": [
                  {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  {
                    "type": [
                      "number",
                      "null"
                    ]
                  }
                ]
              }
            },
            "required": [
              "name",
              "total",
              "consumed",
              "available"
            ],
            "type": [
              "object",
              "null"
            ]
          },
          "type": [
            "array",
            "null"
          ],
          "x-kubernetes-list-type": "atomic"
        },
        "fullyAvailableDevices": {
          "description": "fullyAvailableDevices is the number of shareable devices with no capacity consumed.",
          "format": "int32",
          "type": "integer"
        },
        "partiallyAvailableDevices": {
          "description": "partiallyAvailableDevices is the number of shareable devices with some but not all capacity consumed.",
          "format": "int32",
          "type": "integer"
        }
      },
      "required": [
        "fullyAvailableDevices",
        "partiallyAvailableDevices"
      ],
      "type": [
        "object",
        "null"
      ]
    },
    "totalDevices": {
      "description": "totalDevices is the total number of devices in the pool across all slices. A value of 0 means the pool has no devices. May be unset when validationError is set.",
      "format": "int32",
      "type": [
        "integer",
        "null"
      ]
    },
    "unavailableDevices": {
      "description": "unavailableDevices is the number of devices that are not available due to taints or other conditions, but are not allocated. A value of 0 means all unallocated devices are available. May be unset when validationError is set.",
      "format": "int32",
      "type": [
        "integer",
        "null"
      ]
    },
    "validationError": {
      "description": "validationError is set when the pool's data could not be fully validated (e.g., incomplete slice publication). When set, device count fields and ResourceSliceCount may be unset.",
      "type": [
        "string",
        "null"
      ]
    }
  },
  "required": [
    "driver",
    "poolName",
    "generation"
  ],
  "type": "object",
  "$schema": "http://json-schema.org/schema#"
}