{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/dependency-track/main/json-schema/dependency-track-create-oauth-token-request-schema.json",
  "title": "create-oauth-token-request",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/dependency-track-v2-openapi.yml#/components/schemas/create-oauth-token-request",
  "required": [
    "grant_type"
  ],
  "type": "object",
  "properties": {
    "grant_type": {
      "maxLength": 64,
      "type": "string",
      "description": "The grant type. Only `urn:ietf:params:oauth:grant-type:token-exchange` is supported."
    },
    "subject_token": {
      "maxLength": 16384,
      "type": "string",
      "description": "The token to exchange. Required for the token exchange grant. At most 16 KiB."
    },
    "subject_token_type": {
      "maxLength": 64,
      "type": "string",
      "description": "The type of the subject token. Required for the token exchange grant. `urn:ietf:params:oauth:token-type:jwt` for all workload identity providers, or `urn:ietf:params:oauth:token-type:id_token` for `OIDC` providers."
    },
    "requested_token_type": {
      "maxLength": 64,
      "type": "string",
      "description": "The type of token to issue. Optional. Only `urn:ietf:params:oauth:token-type:access_token` is supported."
    },
    "workload_identity_provider": {
      "$ref": "#/$defs/workload-identity-provider-name"
    },
    "service_account": {
      "$ref": "#/$defs/service-account-name"
    }
  },
  "$defs": {
    "service-account-name": {
      "maxLength": 59,
      "pattern": "^(?![sS][vV][cC]:)[a-zA-Z0-9][a-zA-Z0-9+=,.:@_-]*$",
      "type": "string",
      "description": "The name of the service account, without the reserved `svc:` prefix."
    },
    "workload-identity-provider-name": {
      "maxLength": 63,
      "pattern": "^[a-zA-Z0-9][a-zA-Z0-9_-]*$",
      "type": "string",
      "description": "The name of the workload identity provider."
    }
  }
}