API: Types
Work package types represented in the system.
Types exist globally and are then activated for projects.
Linked Properties
Link | Description | Type | Constraints | Supported operations |
---|---|---|---|---|
self | This type | Type | not null | READ |
Local Properties
Property | Description | Type | Constraints | Supported operations |
---|---|---|---|---|
id | Type id | Integer | x > 0 | READ |
name | Type name | String | READ | |
color | The color used to represent this type | Color | READ | |
position | Sort index of the type | Integer | READ | |
isDefault | Is this type active by default in new projects? | Boolean | READ | |
isMilestone | Do work packages of this type represent a milestone? | Boolean | READ | |
createdAt | Time of creation | DateTime | READ | |
updatedAt | Time of the most recent change to the user | DateTime | READ |
Methods
List types available in a project
This endpoint lists the types that are available in a given project.
id
integer
required path
ID of the project whose types will be listed
Example:1
200
OK
{
"_embedded": {
"elements": [
{
"_links": {
"self": {
"href": "/api/v3/types/1"
}
},
"_type": "Type",
"color": "#ff0000",
"createdAt": "2014-05-21T08:51:20.396Z",
"id": 1,
"isDefault": true,
"isMilestone": false,
"name": "Bug",
"position": 1,
"updatedAt": "2014-05-21T08:51:20.396Z"
},
{
"_links": {
"self": {
"href": "/api/v3/types/2"
}
},
"_type": "Type",
"color": "#888",
"createdAt": "2014-05-21T08:51:20.396Z",
"id": 2,
"isDefault": false,
"isMilestone": false,
"name": "Feature",
"position": 2,
"updatedAt": "2014-05-21T08:51:20.396Z"
}
]
},
"_links": {
"self": {
"href": "/api/v3/projects/11/types"
}
},
"_type": "Collection",
"count": 2,
"total": 2
}
Types_by_ProjectModel
{
"allOf": [
{
"$ref": "#/components/schemas/CollectionModel"
},
{
"type": "object",
"required": [
"_links",
"_embedded"
],
"properties": {
"_links": {
"type": "object",
"required": [
"self"
],
"properties": {
"self": {
"allOf": [
{
"$ref": "#/components/schemas/Link"
},
{
"description": "The types collection\n\n**Resource**: TypesCollection",
"readOnly": true
}
]
}
}
},
"_embedded": {
"type": "object",
"properties": {
"elements": {
"type": "array",
"readOnly": true,
"items": {
"allOf": [
{
"$ref": "#/components/schemas/TypeModel"
},
{
"description": "Collection of Types"
}
]
}
}
}
}
}
}
]
}
404
Returned if the project does not exist or the client does not have sufficient permissions to see it.
Required permission: view work packages or manage types (on given project)
Note: A client without sufficient permissions shall not be able to test for the existence of a project. That’s why a 404 is returned here, even if a 403 might be more appropriate.
{
"_type": "Error",
"errorIdentifier": "urn:openproject-org:api:v3:errors:NotFound",
"message": "The specified project does not exist."
}
ErrorResponse
{
"type": "object",
"required": [
"_type",
"errorIdentifier",
"message"
],
"properties": {
"_embedded": {
"type": "object",
"properties": {
"details": {
"type": "object",
"properties": {
"attribute": {
"type": "string",
"example": "project"
}
}
}
}
},
"_type": {
"type": "string",
"enum": [
"Error"
]
},
"errorIdentifier": {
"type": "string",
"example": "urn:openproject-org:api:v3:errors:PropertyConstraintViolation"
},
"message": {
"type": "string",
"example": "Project can't be blank."
}
}
}
List all types
200
OK
{
"_embedded": {
"elements": [
{
"_links": {
"self": {
"href": "/api/v3/types/1"
}
},
"_type": "Type",
"color": "#ff0000",
"createdAt": "2014-05-21T08:51:20.396Z",
"id": 1,
"isDefault": true,
"isMilestone": false,
"name": "Bug",
"position": 1,
"updatedAt": "2014-05-21T08:51:20.396Z"
},
{
"_links": {
"self": {
"href": "/api/v3/types/2"
}
},
"_type": "Type",
"color": "#888",
"createdAt": "2014-05-21T08:51:20.396Z",
"id": 2,
"isDefault": false,
"isMilestone": false,
"name": "Feature",
"position": 2,
"updatedAt": "2014-05-21T08:51:20.396Z"
}
]
},
"_links": {
"self": {
"href": "/api/v3/types"
}
},
"_type": "Collection",
"count": 2,
"total": 2
}
TypesModel
{
"type": "object",
"example": {
"_links": {
"self": {
"href": "/api/v3/types"
}
},
"total": 2,
"count": 2,
"_type": "Collection",
"_embedded": {
"elements": [
{
"_links": {
"self": {
"href": "/api/v3/types/1"
}
},
"_type": "Type",
"id": 1,
"name": "Bug",
"color": "#ff0000",
"position": 1,
"isDefault": true,
"isMilestone": false,
"createdAt": "2014-05-21T08:51:20.429Z",
"updatedAt": "2014-05-21T08:51:20.429Z"
},
{
"_links": {
"self": {
"href": "/api/v3/types/2"
}
},
"_type": "Type",
"id": 2,
"name": "Feature",
"color": "#888",
"position": 2,
"isDefault": false,
"isMilestone": false,
"createdAt": "2014-05-21T08:51:20.429Z",
"updatedAt": "2014-05-21T08:51:20.429Z"
}
]
}
}
}
403
Returned if the client does not have sufficient permissions.
Required permission: view work package or manage types (on any project)
{
"_type": "Error",
"errorIdentifier": "urn:openproject-org:api:v3:errors:MissingPermission",
"message": "You are not allowed to see the types."
}
ErrorResponse
{
"type": "object",
"required": [
"_type",
"errorIdentifier",
"message"
],
"properties": {
"_embedded": {
"type": "object",
"properties": {
"details": {
"type": "object",
"properties": {
"attribute": {
"type": "string",
"example": "project"
}
}
}
}
},
"_type": {
"type": "string",
"enum": [
"Error"
]
},
"errorIdentifier": {
"type": "string",
"example": "urn:openproject-org:api:v3:errors:PropertyConstraintViolation"
},
"message": {
"type": "string",
"example": "Project can't be blank."
}
}
}
View type
id
integer
required path
Type id
Example:1
200
OK
{
"_links": {
"self": {
"href": "/api/v3/types/1"
}
},
"_type": "Type",
"color": "#ff0000",
"createdAt": "2014-05-21T08:51:20.396Z",
"id": 1,
"isDefault": true,
"isMilestone": false,
"name": "Bug",
"position": 1,
"updatedAt": "2014-05-21T08:51:20.396Z"
}
TypeModel
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"description": "Type id",
"readOnly": true,
"exclusiveMinimum": 0
},
"name": {
"type": "string",
"description": "Type name",
"readOnly": true
},
"color": {
"type": "string",
"description": "The color used to represent this type",
"readOnly": true
},
"position": {
"type": "integer",
"description": "Sort index of the type",
"readOnly": true
},
"isDefault": {
"type": "boolean",
"description": "Is this type active by default in new projects?",
"readOnly": true
},
"isMilestone": {
"type": "boolean",
"description": "Do work packages of this type represent a milestone?",
"readOnly": true
},
"createdAt": {
"type": "string",
"format": "date-time",
"description": "Time of creation",
"readOnly": true
},
"updatedAt": {
"type": "string",
"format": "date-time",
"description": "Time of the most recent change to the user"
},
"_links": {
"type": "object",
"required": [
"self"
],
"properties": {
"self": {
"allOf": [
{
"$ref": "#/components/schemas/Link"
},
{
"description": "This type\n\n**Resource**: Type",
"readOnly": true
}
]
}
}
}
},
"example": {
"_links": {
"self": {
"href": "/api/v3/types/1"
}
},
"_type": "Type",
"id": 1,
"name": "Bug",
"color": "#ff0000",
"position": 1,
"isDefault": true,
"isMilestone": false,
"createdAt": "2014-05-21T08:51:20.624Z",
"updatedAt": "2014-05-21T08:51:20.624Z"
}
}
403
Returned if the client does not have sufficient permissions.
Required permission: view work package or manage types (on any project)
{
"_type": "Error",
"errorIdentifier": "urn:openproject-org:api:v3:errors:MissingPermission",
"message": "You are not allowed to see this type."
}
ErrorResponse
{
"type": "object",
"required": [
"_type",
"errorIdentifier",
"message"
],
"properties": {
"_embedded": {
"type": "object",
"properties": {
"details": {
"type": "object",
"properties": {
"attribute": {
"type": "string",
"example": "project"
}
}
}
}
},
"_type": {
"type": "string",
"enum": [
"Error"
]
},
"errorIdentifier": {
"type": "string",
"example": "urn:openproject-org:api:v3:errors:PropertyConstraintViolation"
},
"message": {
"type": "string",
"example": "Project can't be blank."
}
}
}