{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/trimble/json-schema/trimble-issue-request-schema.json",
  "title": "IssueRequest",
  "x-generated": "2026-11-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/trimble-connect-issues-openapi.yml#/components/schemas/IssueRequest",
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string",
      "maxLength": 1024
    },
    "description": {
      "type": "string",
      "maxLength": 2048
    },
    "percentComplete": {
      "type": "integer",
      "format": "int32"
    },
    "type": {
      "type": "string",
      "description": "The type of the issue. Supported values are based on the issue context configuration, available via the Issue Config API."
    },
    "status": {
      "type": "string",
      "description": "The current status of the issue. Supported values are based on the issue context configuration, available via the Issue Config API."
    },
    "priority": {
      "type": "string",
      "description": "The priority of the issue. Supported values are based on the issue context configuration, available via the Issue Config API."
    },
    "referenceLinks": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxLength": 10
    },
    "marker": {
      "$ref": "#/$defs/Marker"
    },
    "stage": {
      "type": "string"
    },
    "index": {
      "type": "integer",
      "format": "int32",
      "deprecated": true,
      "description": "Index field for BCF compatibility. This field is deprecated as per BCF specification."
    },
    "dueDate": {
      "type": "string",
      "format": "date",
      "description": "The date by which the issue needs to be resolved (format: MM/dd/yyyy)"
    },
    "assignees": {
      "type": "array",
      "description": "The list of users or groups to be assigned to the issue in the format users:{tidUuid} or tc-groups:{groupId} where tidUuid is the user's unique identifier and groupId is the group's unique identifier.",
      "items": {
        "type": "string"
      },
      "maxLength": 50,
      "pattern": "^(users|tc-groups):[a-zA-Z0-9_-]+$"
    },
    "_bcfImportData": {
      "$ref": "#/$defs/BcfImportData",
      "description": "BCF import metadata containing original authorship and timestamps from external system"
    }
  },
  "required": [
    "title"
  ],
  "$defs": {
    "BcfImportData": {
      "type": "object",
      "properties": {
        "creationAuthor": {
          "type": "string",
          "description": "The email or identifier of the user who originally created this issue in the external system"
        },
        "creationAuthorUuid": {
          "type": "string",
          "description": "The TidUuid of the creation author if they exist in the project at the time of import, can be null"
        },
        "modifiedAuthor": {
          "type": "string",
          "description": "The email or identifier of the user who last modified this issue in the external system"
        },
        "modifiedAuthorUuid": {
          "type": "string",
          "description": "The TidUuid of the modified author if they exist in the project at the time of import, can be null"
        },
        "creationDate": {
          "type": "string",
          "format": "date-time",
          "description": "The timestamp when this issue was originally created in the external system. (ISO-8601 variant and milliseconds precision eg. 2025-09-12T09:48:21.646+0000)"
        },
        "modifiedDate": {
          "type": "string",
          "format": "date-time",
          "description": "The timestamp when this issue was last modified in the external system. (ISO-8601 variant and milliseconds precision eg. 2025-09-12T09:48:21.646+0000)"
        }
      }
    },
    "Marker": {
      "type": "object",
      "properties": {
        "point": {
          "$ref": "#/$defs/Point"
        }
      }
    },
    "Point": {
      "type": "object",
      "properties": {
        "x": {
          "type": "number",
          "format": "double"
        },
        "y": {
          "type": "number",
          "format": "double"
        },
        "z": {
          "type": "number",
          "format": "double"
        }
      }
    }
  }
}