{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/internetdata-io/json-schema/internetdata-io-oauth-metadata-schema.json",
  "title": "OauthMetadata",
  "x-generated": "2026-11-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/internetdata-io-openapi.yaml#/components/schemas/OauthMetadata",
  "type": "object",
  "properties": {
    "issuer": {
      "type": "string"
    },
    "authorization_endpoint": {
      "type": "string"
    },
    "token_endpoint": {
      "type": "string"
    },
    "device_authorization_endpoint": {
      "type": "string"
    },
    "revocation_endpoint": {
      "type": "string"
    },
    "scopes_supported": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "response_types_supported": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "grant_types_supported": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "code_challenge_methods_supported": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "client_id_metadata_document_supported": {
      "type": "boolean",
      "description": "Any client may sign in with an https `client_id` serving its own metadata."
    },
    "registration_endpoint": {
      "type": "string",
      "description": "RFC 7591 dynamic client registration, for a client that cannot serve its own metadata."
    },
    "token_endpoint_auth_methods_supported": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Always `none`. Every client is public and has no secret."
    },
    "authorization_response_iss_parameter_supported": {
      "type": "boolean",
      "description": "RFC 9207. A redirect back from the authorization endpoint carries `iss`."
    },
    "service_documentation": {
      "type": "string"
    }
  },
  "required": [
    "issuer",
    "authorization_endpoint",
    "token_endpoint"
  ]
}