{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/barclays/main/json-schema/barclays-jwkskey-set-body-schema.json",
  "title": "JWKSKeySetBody",
  "description": "JWKS Response Body",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/barclays-key-exchange-fetch-json-web-keys-api-openapi.yml#/components/schemas/JWKSKeySetBody",
  "type": "object",
  "additionalProperties": false,
  "deprecated": false,
  "properties": {
    "keys": {
      "type": "array",
      "description": "List of JWKS keys",
      "items": {
        "$ref": "#/$defs/JWKSKey"
      },
      "maxItems": 10,
      "minItems": 1
    }
  },
  "required": [
    "keys"
  ],
  "nullable": false,
  "$defs": {
    "JWKSKey": {
      "type": "object",
      "additionalProperties": false,
      "deprecated": false,
      "description": "Partner Entity",
      "properties": {
        "kty": {
          "type": "string",
          "description": "Key type value",
          "maxLength": 100,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9]{1,100}$"
        },
        "use": {
          "type": "string",
          "description": "Use value",
          "maxLength": 100,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9]{1,100}$"
        },
        "key_ops": {
          "type": "array",
          "description": "Operation(s) for which the key is intended to be used",
          "items": {
            "$ref": "#/$defs/KeyOperation"
          },
          "maxItems": 10,
          "minItems": 1
        },
        "kid": {
          "type": "string",
          "description": "Kid value",
          "maxLength": 100,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9\\-_]{1,100}$"
        },
        "x5c": {
          "type": "array",
          "description": "Certificate chain",
          "items": {
            "type": "string",
            "description": "Certificate",
            "maxLength": 3000,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9+/=._\\-]{1,3000}$"
          },
          "maxItems": 20,
          "minItems": 1
        },
        "x5t#S256": {
          "type": "string",
          "description": "Certificate SHA-256 thumbprint",
          "maxLength": 1000,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9+/=._\\-]{1,1000}$"
        },
        "x5t": {
          "type": "string",
          "description": "Base64 URL Encoded Certificate SHA-1 thumbprint",
          "maxLength": 1000,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9+/=._\\-]{1,1000}$"
        },
        "e": {
          "type": "string",
          "description": "Exponential value",
          "maxLength": 100,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9]{1,100}$"
        },
        "n": {
          "type": "string",
          "description": "Modulus value",
          "maxLength": 1000,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9+/=._\\-]{1,1000}$"
        },
        "alg": {
          "type": "string",
          "description": "Algorithm intended for use with the key",
          "maxLength": 50,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9-]{1,50}$"
        },
        "enc": {
          "type": "string",
          "description": "Algorithm intended for decryption",
          "maxLength": 50,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9-]{1,50}$"
        },
        "iat": {
          "type": "integer",
          "format": "int64",
          "description": "Issued at",
          "maximum": 2641905738,
          "minimum": 1379601738
        },
        "nbf": {
          "type": "integer",
          "format": "int64",
          "description": "Not before",
          "maximum": 2641905738,
          "minimum": 1379601738
        },
        "exp": {
          "type": "integer",
          "format": "int64",
          "description": "Expiration time",
          "maximum": 2641905738,
          "minimum": 1379601738
        },
        "crv": {
          "type": "string",
          "description": "Elliptic curve intended for use with the EC public key",
          "maxLength": 50,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9-]{1,50}$"
        },
        "x": {
          "type": "string",
          "description": "X Coordinate of the elliptic curve public key",
          "maxLength": 1000,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9+/=._\\-]{1,1000}$"
        },
        "y": {
          "type": "string",
          "description": "Y Coordinate of the elliptic curve public key",
          "maxLength": 1000,
          "minLength": 1,
          "pattern": "^[A-Za-z0-9+/=._\\-]{1,1000}$"
        }
      },
      "required": [
        "exp",
        "iat",
        "kid",
        "kty",
        "nbf",
        "use"
      ],
      "nullable": false
    },
    "KeyOperation": {
      "type": "string",
      "description": "key operation",
      "enum": [
        "sign",
        "verify",
        "encrypt",
        "decrypt",
        "wrapKey",
        "unwrapKey",
        "deriveKey",
        "deriveBits"
      ]
    }
  }
}