{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/adobe/json-schema/adobe-token-request-schema.json",
  "title": "TokenRequest",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/adobe-aem-assets-delivery-openapi.yml#/components/schemas/TokenRequest",
  "type": "object",
  "properties": {
    "assetIds": {
      "type": "array",
      "description": "Optional asset identifiers that restrict the token to the listed assets.\nIf omitted, the token is repository-wide and can be presented for any asset in the repository.\nA consuming API must still authorize the current principal against the requested asset at access time.\n",
      "uniqueItems": true,
      "minItems": 1,
      "maxItems": 10,
      "items": {
        "$ref": "#/$defs/AssetId"
      }
    },
    "subjectAttributes": {
      "type": "object",
      "description": "Optional attributes of the subject identified by the issued token.\nIf omitted, the subject attributes are obtained from the validated IMS access token used to call this operation.\n",
      "properties": {
        "id": {
          "type": "string",
          "description": "Unique identifier of the subject"
        },
        "username": {
          "type": "string",
          "description": "Username of the subject"
        },
        "groups": {
          "type": "array",
          "description": "Groups/Profiles that the subject belongs to.",
          "items": {
            "type": "string"
          }
        },
        "additionalAttributes": {
          "type": "object",
          "description": "Optional attributes used for ABAC rules evaluation",
          "additionalProperties": {
            "type": "string"
          }
        }
      },
      "required": [
        "id"
      ]
    },
    "validFor": {
      "type": "integer",
      "description": "Token validity duration in **seconds** requested by the client.\nMust be at least 1 second and less than 3600 seconds (1 hour).\nDefaults to 300 seconds (5 minutes) if not specified.\n",
      "minimum": 1,
      "maximum": 3600,
      "exclusiveMaximum": true,
      "default": 300
    }
  },
  "$defs": {
    "AssetId": {
      "type": "string",
      "description": "ID of the asset",
      "minLength": 1
    }
  }
}