{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/scale-ai/json-schema/scale-ai-project-create-request-schema.json",
  "title": "ProjectCreateRequest",
  "description": "Model for creating a new 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/ProjectCreateRequest",
  "properties": {
    "name": {
      "type": "string",
      "maxLength": 255,
      "minLength": 1,
      "pattern": "^[A-Za-z0-9_\\-:/ ]+$",
      "title": "Name",
      "description": "Project readable name"
    },
    "configuration": {
      "anyOf": [
        {
          "$ref": "#/$defs/ProjectConfiguration"
        },
        {
          "type": "null"
        }
      ],
      "description": "Project configuration",
      "default": {}
    }
  },
  "type": "object",
  "required": [
    "name"
  ],
  "$defs": {
    "ProjectConfiguration": {
      "properties": {
        "retention": {
          "anyOf": [
            {
              "$ref": "#/$defs/RetentionPolicy"
            },
            {
              "type": "null"
            }
          ],
          "description": "Project retention policy"
        }
      },
      "additionalProperties": true,
      "type": "object",
      "title": "ProjectConfiguration"
    },
    "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"
    }
  }
}