{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/scalar/main/json-schema/scalar-doc-source-schema.json",
  "title": "doc-source",
  "x-generated": "2026-10-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/scalar-registry-git-api-openapi.yml#/components/schemas/doc-source",
  "oneOf": [
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "const": "platform"
        }
      },
      "required": [
        "type"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "const": "git"
        },
        "repositoryUid": {
          "$ref": "#/$defs/nanoid"
        },
        "path": {
          "type": "string",
          "minLength": 1
        },
        "branch": {
          "default": null,
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "publishOnPush": {
          "default": true,
          "type": "boolean"
        },
        "publishOnMerge": {
          "default": false,
          "type": "boolean"
        },
        "currentPublishedSha": {
          "default": null,
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "lastPublishedAt": {
          "default": null,
          "anyOf": [
            {
              "$ref": "#/$defs/timestamp"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "type",
        "repositoryUid",
        "path",
        "branch",
        "publishOnPush",
        "publishOnMerge",
        "currentPublishedSha",
        "lastPublishedAt"
      ],
      "additionalProperties": false
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "const": "url"
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "linkedBy": {
          "type": "string"
        },
        "etag": {
          "default": null,
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "lastFetchedAt": {
          "default": null,
          "anyOf": [
            {
              "$ref": "#/$defs/timestamp"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "type",
        "url",
        "linkedBy",
        "etag",
        "lastFetchedAt"
      ],
      "additionalProperties": false
    }
  ],
  "$defs": {
    "nanoid": {
      "type": "string",
      "minLength": 5
    },
    "timestamp": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  }
}