{
  "description": "DeviceCapacity describes a quantity associated with a device.",
  "properties": {
    "requestPolicy": {
      "description": "CapacityRequestPolicy defines how requests consume device capacity.\n\nMust not set more than one ValidRequestValues.",
      "properties": {
        "default": {
          "oneOf": [
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "type": [
                "number",
                "null"
              ]
            }
          ]
        },
        "validRange": {
          "description": "CapacityRequestPolicyRange defines a valid range for consumable capacity values.\n\n  - If the requested amount is less than Min, it is rounded up to the Min value.\n  - If Step is set and the requested amount is between Min and Max but not aligned with Step,\n    it will be rounded up to the next value equal to Min + (n * Step).\n  - If Step is not set, the requested amount is used as-is if it falls within the range Min to Max (if set).\n  - If the requested or rounded amount exceeds Max (if set), the request does not satisfy the policy,\n    and the device cannot be allocated.",
          "properties": {
            "max": {
              "oneOf": [
                {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                {
                  "type": [
                    "number",
                    "null"
                  ]
                }
              ]
            },
            "min": {
              "oneOf": [
                {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                {
                  "type": [
                    "number",
                    "null"
                  ]
                }
              ]
            },
            "step": {
              "oneOf": [
                {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                {
                  "type": [
                    "number",
                    "null"
                  ]
                }
              ]
            }
          },
          "required": [
            "min"
          ],
          "type": [
            "object",
            "null"
          ],
          "additionalProperties": false
        },
        "validValues": {
          "description": "ValidValues defines a set of acceptable quantity values in consuming requests.\n\nMust not contain more than 10 entries. Must be sorted in ascending order.\n\nIf this field is set, Default must be defined and it must be included in ValidValues list.\n\nIf the requested amount does not match any valid value but smaller than some valid values, the scheduler calculates the smallest valid value that is greater than or equal to the request. That is: min(ceil(requestedValue) \u2208 validValues), where requestedValue \u2264 max(validValues).\n\nIf the requested amount exceeds all valid values, the request violates the policy, and this device cannot be allocated.",
          "items": {
            "oneOf": [
              {
                "type": [
                  "string",
                  "null"
                ]
              },
              {
                "type": [
                  "number",
                  "null"
                ]
              }
            ]
          },
          "type": [
            "array",
            "null"
          ],
          "x-kubernetes-list-type": "atomic"
        }
      },
      "type": [
        "object",
        "null"
      ],
      "additionalProperties": false
    },
    "value": {
      "oneOf": [
        {
          "type": [
            "string",
            "null"
          ]
        },
        {
          "type": [
            "number",
            "null"
          ]
        }
      ]
    }
  },
  "required": [
    "value"
  ],
  "type": "object",
  "additionalProperties": false,
  "$schema": "http://json-schema.org/schema#"
}