{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/revyl/json-schema/revyl-build-from-url-request-schema.json",
  "title": "BuildFromUrlRequest",
  "description": "Request to create a build by ingesting an artifact from a URL (e.g., Expo EAS).",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/revyl-apps-api-openapi.yml#/components/schemas/BuildFromUrlRequest",
  "properties": {
    "branch_id": {
      "anyOf": [
        {
          "format": "uuid",
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Branch Id"
    },
    "branch_name": {
      "anyOf": [
        {
          "maxLength": 255,
          "minLength": 1,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Branch Name"
    },
    "context_branch_name": {
      "anyOf": [
        {
          "maxLength": 4096,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "title": "Context Branch Name"
    },
    "fingerprint_hash": {
      "anyOf": [
        {
          "maxLength": 128,
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "description": "Native dependency fingerprint for compatible artifact reuse",
      "title": "Fingerprint Hash"
    },
    "from_url": {
      "description": "Source URL of the artifact to ingest",
      "title": "From Url",
      "type": "string"
    },
    "headers": {
      "anyOf": [
        {
          "additionalProperties": {
            "type": "string"
          },
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "description": "Optional HTTP headers to include when fetching the URL",
      "title": "Headers"
    },
    "metadata": {
      "additionalProperties": true,
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "title": "Metadata"
    },
    "pin": {
      "default": false,
      "description": "True pins the destination branch to this build. False, the default, never changes a pin: a branch following Latest uses this build because it is the newest, and a pinned branch keeps its pin",
      "title": "Pin",
      "type": "boolean"
    },
    "version": {
      "description": "Version string (must be unique within the app)",
      "title": "Version",
      "type": "string"
    }
  },
  "required": [
    "from_url",
    "version"
  ],
  "type": "object"
}