{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/hacktron/json-schema/hacktron-rest-create-scan-dto-schema.json",
  "title": "RestCreateScanDto",
  "x-generated": "2026-10-29",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/hacktron-openapi.json#/components/schemas/RestCreateScanDto",
  "type": "object",
  "properties": {
    "cost_estimation_id": {
      "type": "string",
      "description": "Completed cost estimation UUID"
    },
    "repos": {
      "description": "Repositories to scan",
      "type": "array",
      "items": {
        "$ref": "#/$defs/RestRepoDto"
      }
    },
    "target_urls": {
      "description": "Target URLs for pentest",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "auth_instructions": {
      "type": "string",
      "description": "Target websites and browser login instructions, including URLs and credentials",
      "maxLength": 2000
    },
    "custom_context": {
      "type": "string",
      "description": "Custom context for the pentest",
      "maxLength": 2000
    },
    "context_document_ids": {
      "description": "Context document UUIDs to include",
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "required": [
    "cost_estimation_id",
    "repos"
  ],
  "$defs": {
    "RestRepoDto": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "Repository URL"
        },
        "branch": {
          "type": "string",
          "description": "Branch name"
        },
        "source": {
          "type": "string",
          "description": "Repository source",
          "enum": [
            "connected",
            "public",
            "upload"
          ],
          "default": "connected"
        }
      },
      "required": [
        "url",
        "branch"
      ]
    }
  }
}