{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/Task", "title": "Task", "externalDocs": { "url": "https://developer.xero.com/documentation/projects/projects" }, "type": "object", "properties": { "taskId": { "type": "string", "format": "uuid", "example": "00000000-0000-0000-000-000000000000", "description": "Identifier of the task." }, "name": { "type": "string", "description": "Name of the task." }, "rate": { "$ref": "#/components/schemas/Amount", "type": "number" }, "chargeType": { "$ref": "#/components/schemas/ChargeType", "type": "string" }, "estimateMinutes": { "type": "integer", "description": "An estimated time to perform the task" }, "projectId": { "type": "string", "format": "uuid", "example": "00000000-0000-0000-000-000000000000", "description": "Identifier of the project task belongs to." }, "totalMinutes": { "type": "integer", "description": "Total minutes which have been logged against the task. Logged by assigning a time entry to a task" }, "totalAmount": { "$ref": "#/components/schemas/Amount", "type": "number" }, "minutesInvoiced": { "type": "integer", "description": "Minutes on this task which have been invoiced." }, "minutesToBeInvoiced": { "type": "integer", "description": "Minutes on this task which have not been invoiced." }, "fixedMinutes": { "type": "integer", "description": "Minutes logged against this task if its charge type is `FIXED`." }, "nonChargeableMinutes": { "type": "integer", "description": "Minutes logged against this task if its charge type is `NON_CHARGEABLE`." }, "amountToBeInvoiced": { "$ref": "#/components/schemas/Amount", "type": "number" }, "amountInvoiced": { "$ref": "#/components/schemas/Amount", "type": "number" }, "status": { "type": "string", "enum": [ "ACTIVE", "INVOICED", "LOCKED" ], "description": "Status of the task. When a task of ChargeType is `FIXED` and the rate amount is invoiced the status will be set to `INVOICED` and can't be modified. A task with ChargeType of `TIME` or `NON_CHARGEABLE` cannot have a status of `INVOICED`. A `LOCKED` state indicates that the task is currently changing state (for example being invoiced) and can't be modified." } } }