{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/scale-ai/json-schema/scale-ai-project-update-request-schema.json",
  "title": "ProjectUpdateRequest",
  "description": "Model for updating an existing project.",
  "x-generated": "2026-10-27",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/scale-ai-projects-api-openapi.yml#/components/schemas/ProjectUpdateRequest",
  "properties": {
    "name": {
      "anyOf": [
        {
          "type": "string",
          "maxLength": 255,
          "minLength": 1
        },
        {
          "type": "null"
        }
      ],
      "title": "Name",
      "description": "Project readable name"
    },
    "configuration": {
      "anyOf": [
        {
          "$ref": "#/$defs/ProjectConfiguration"
        },
        {
          "type": "null"
        }
      ],
      "description": "Project configuration"
    },
    "status": {
      "anyOf": [
        {
          "$ref": "#/$defs/ProjectStatus"
        },
        {
          "type": "null"
        }
      ],
      "description": "Project status"
    }
  },
  "type": "object",
  "$defs": {
    "ProjectConfiguration": {
      "properties": {
        "retention": {
          "anyOf": [
            {
              "$ref": "#/$defs/RetentionPolicy"
            },
            {
              "type": "null"
            }
          ],
          "description": "Project retention policy"
        }
      },
      "additionalProperties": true,
      "type": "object",
      "title": "ProjectConfiguration"
    },
    "ProjectStatus": {
      "type": "string",
      "enum": [
        "active",
        "archived"
      ],
      "title": "ProjectStatus",
      "description": "Enum for project status values."
    },
    "RetentionPolicy": {
      "properties": {
        "files": {
          "anyOf": [
            {
              "type": "string",
              "format": "duration"
            },
            {
              "type": "null"
            }
          ],
          "title": "Files",
          "description": "File retention days"
        },
        "result_artifacts": {
          "anyOf": [
            {
              "type": "string",
              "format": "duration"
            },
            {
              "type": "null"
            }
          ],
          "title": "Result Artifacts",
          "description": "Data retention days for artifacts that are created from parse or extract jobs as well as the jobs themselves"
        }
      },
      "type": "object",
      "title": "RetentionPolicy"
    }
  }
}