{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/comp-ai/main/json-schema/comp-ai-create-vendor-dto-schema.json",
  "title": "CreateVendorDto",
  "x-generated": "2026-10-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/comp-ai-openapi.json#/components/schemas/CreateVendorDto",
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "Vendor name"
    },
    "description": {
      "type": "string",
      "description": "Detailed description of the vendor and services provided"
    },
    "category": {
      "type": "string",
      "description": "Vendor category",
      "enum": [
        "cloud",
        "infrastructure",
        "software_as_a_service",
        "finance",
        "marketing",
        "sales",
        "hr",
        "other"
      ],
      "default": "other"
    },
    "status": {
      "type": "string",
      "description": "Assessment status of the vendor",
      "enum": [
        "not_assessed",
        "in_progress",
        "assessed"
      ],
      "default": "not_assessed"
    },
    "inherentProbability": {
      "type": "string",
      "description": "Inherent probability of risk before controls",
      "enum": [
        "very_unlikely",
        "unlikely",
        "possible",
        "likely",
        "very_likely"
      ],
      "default": "very_unlikely"
    },
    "inherentImpact": {
      "type": "string",
      "description": "Inherent impact of risk before controls",
      "enum": [
        "insignificant",
        "minor",
        "moderate",
        "major",
        "severe"
      ],
      "default": "insignificant"
    },
    "residualProbability": {
      "type": "string",
      "description": "Residual probability after controls are applied",
      "enum": [
        "very_unlikely",
        "unlikely",
        "possible",
        "likely",
        "very_likely"
      ],
      "default": "very_unlikely"
    },
    "residualImpact": {
      "type": "string",
      "description": "Residual impact after controls are applied",
      "enum": [
        "insignificant",
        "minor",
        "moderate",
        "major",
        "severe"
      ],
      "default": "insignificant"
    },
    "website": {
      "type": "string",
      "description": "Vendor website URL"
    },
    "isSubProcessor": {
      "type": "boolean",
      "description": "Whether the vendor is a sub-processor",
      "default": false
    },
    "assigneeId": {
      "type": "string",
      "description": "ID of the user assigned to manage this vendor"
    }
  },
  "required": [
    "name",
    "description",
    "category",
    "status",
    "inherentProbability",
    "inherentImpact",
    "residualProbability",
    "residualImpact"
  ]
}