POST/projects/api/v3/planning/autoschedule/validate.json
Validate a request without scheduling or saving.
Returns a 200 report describing whether the request can be scheduled, with validation state carried as fields in the report body. Requesting more than one project returns 400; unschedulable input (for example a dependency cycle, or tasks that have no possible assignee) returns 422. When no schedulable users are found the report sets noUsersLoaded=true instead of returning an error.
Body Params
Request is the shared request body accepted by all four /planning/autoschedule action routes (validate, preview, highlights and persist).
- Name
config- Type
- object
- Description
- Config holds optional tuning parameters for a scheduling request. Every field is an optional pointer: an absent field falls back to its server-side default, which is distinct from sending an explicit zero.
- Name
lockedTaskIds- Type
- array
- Description
- LockedTaskIDs lists tasks whose current assignees must be preserved: the scheduler may move their dates but will not reassign them.
- Name
projectIds- Type
- array
- Description
- ProjectIDs is the set of projects to schedule. Exactly one project id is required; scheduling more than one project in a single request is not currently supported.
Responses
- Code
- 200
- Type
- object
- Schema
- Description
- 200 OK
ValidateResponse is the /planning/autoschedule/validate 200 body. It is always returned with HTTP 200; validation issues are data, never errors.
- Code
- 400
- Type
- object
- Schema
- Description
- 400 Bad Request
ErrorResponse defines how []Error should be marshaled to JSON.
- Code
- 403
- Type
- object
- Schema
- Description
- 403 Forbidden
ErrorResponse defines how []Error should be marshaled to JSON.
- Code
- 422
- Type
- object
- Schema
- Description
- 422 Unprocessable Entity
ErrorResponse defines how []Error should be marshaled to JSON.
- Code
- 500
- Type
- object
- Schema
- Description
- 500 Internal Server Error
ErrorResponse defines how []Error should be marshaled to JSON.
200 OK
ValidateResponse
{
"isValid": true,
"noUsersLoaded": true,
"projectsWithArtificialEndDate": [
0
],
"roleValidation": {
"isValid": true,
"unassignableTasks": [
{
"message": "string",
"taskId": 0,
"unassignableJobRoleIds": [
0
]
}
]
},
"taskCleanupValidation": {
"errors": [
{
"errorType": "string",
"message": "string",
"taskId": 0
}
],
"isValid": true
},
"usersWithoutJobRole": [
0
]
}