{
  "description": "ResourcePoolStatusRequestStatus contains the calculated pool status information.",
  "properties": {
    "conditions": {
      "description": "conditions provide information about the state of the request. A condition with type=Complete or type=Failed will always be set when the status is populated.\n\nKnown condition types: - \"Complete\": True when the request has been processed successfully - \"Failed\": True when the request could not be processed",
      "items": {
        "description": "Condition contains details for one aspect of the current state of this API Resource.",
        "properties": {
          "lastTransitionTime": {
            "description": "Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON.  Wrappers are provided for many of the factory methods that the time package offers.",
            "format": "date-time",
            "type": "string"
          },
          "message": {
            "description": "message is a human readable message indicating details about the transition. This may be an empty string.",
            "type": [
              "string",
              "null"
            ]
          },
          "observedGeneration": {
            "description": "observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.",
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "reason": {
            "description": "reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.",
            "type": "string"
          },
          "status": {
            "description": "status of the condition, one of True, False, Unknown.",
            "type": "string"
          },
          "type": {
            "description": "type of condition in CamelCase or in foo.example.com/CamelCase.",
            "type": "string"
          }
        },
        "required": [
          "type",
          "status",
          "lastTransitionTime",
          "reason"
        ],
        "type": [
          "object",
          "null"
        ]
      },
      "type": [
        "array",
        "null"
      ],
      "x-kubernetes-list-map-keys": [
        "type"
      ],
      "x-kubernetes-list-type": "map",
      "x-kubernetes-patch-merge-key": "type",
      "x-kubernetes-patch-strategy": "merge"
    },
    "poolCount": {
      "description": "poolCount is the total number of pools that matched the filter criteria, regardless of truncation. This helps users understand how many pools exist even when the response is truncated. A value of 0 means no pools matched the filter criteria.",
      "format": "int32",
      "type": [
        "integer",
        "null"
      ]
    },
    "pools": {
      "description": "pools contains the first `spec.limit` matching pools, sorted by driver then pool name. If `len(pools) < poolCount`, the list was truncated. When omitted, no pools matched the request filters.",
      "items": {
        "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"
          },
          "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"
          },
          "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"
          },
          "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",
          "null"
        ]
      },
      "type": [
        "array",
        "null"
      ],
      "x-kubernetes-list-type": "atomic"
    }
  },
  "required": [
    "poolCount"
  ],
  "type": "object",
  "$schema": "http://json-schema.org/schema#"
}