OpenProject is the leading open source project management software.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
openproject/docs/api/apiv3/paths/work_packages.yml

439 lines
15 KiB

# /api/v3/work_packages
---
get:
parameters:
- description: Page number inside the requested collection.
example: '25'
in: query
name: offset
required: false
schema:
default: 1
type: integer
- description: Number of elements to display per page.
example: '25'
in: query
name: pageSize
required: false
schema:
type: integer
- description: |-
JSON specifying filter conditions.
Accepts the same format as returned by the [queries](https://www.openproject.org/docs/api/endpoints/queries/)
endpoint. If no filter is to be applied, the client should send an empty array (`[]`), otherwise a default
filter is applied. A Currently supported filters are (there are additional filters added by modules):
- assigned_to
- assignee_or_group
- attachment_base
- attachment_content
- attachment_file_name
- author
- blocked
- blocks
- category
- comment
- created_at
- custom_field
- dates_interval
- description
- done_ratio
- due_date
- duplicated
- duplicates
- estimated_hours
- file_link_origin_id
- follows
- group
- id
- includes
- linkable_to_storage_id
- linkable_to_storage_url
- manual_sort
- milestone
- only_subproject
- parent
- partof
- precedes
- principal_base
- priority
- project
- relatable
- relates
- required
- requires
- responsible
- role
- search
- start_date
- status
- storage_id
- storage_url
- subject
- subject_or_id
- subproject
- type
- typeahead
- updated_at
- version
- watcher
- work_package
example: '[{ "type_id": { "operator": "=", "values": ["1", "2"] }}]'
in: query
name: filters
required: false
schema:
default: '[{ "status_id": { "operator": "o", "values": null }}]'
type: string
- description: |-
JSON specifying sort criteria.
Accepts the same format as returned by the [queries](https://www.openproject.org/docs/api/endpoints/queries/) endpoint.
example: '[["status", "asc"]]'
in: query
name: sortBy
required: false
schema:
default: '[["id", "asc"]]'
type: string
- description: The column to group by.
example: status
in: query
name: groupBy
required: false
schema:
type: string
- description: Indicates whether properties should be summed up if they support
it.
example: true
in: query
name: showSums
required: false
schema:
default: false
type: boolean
- description: |-
Comma separated list of properties to include.
example: 'total,elements/subject,elements/id,self'
in: query
name: select
required: false
schema:
type: string
responses:
'200':
content:
application/hal+json:
examples:
response:
value:
_embedded:
elements:
- _links:
self:
href: "/api/v3/work_packages/1"
_type: WorkPackage
id: 1
subject: Skipped other properties for brevity
- _links:
self:
href: "/api/v3/work_packages/2"
_type: WorkPackage
id: 2
subject: Skipped other properties for brevity
_links:
self:
href: "/api/v3/work_packages"
_type: Collection
count: 2
total: 2
schema:
"$ref": "../components/schemas/work_packages_model.yml"
description: OK
headers: { }
'400':
content:
application/hal+json:
schema:
$ref: "../components/schemas/error_response.yml"
examples:
response:
value:
_type: Error
errorIdentifier: urn:openproject-org:api:v3:errors:InvalidQuery
message: Operator can't be blank.
description: |-
Returned if the client sends a query parameter, that the server knows, but does not understand.
E.g. by providing a syntactically incorrect `filters` parameter.
headers: { }
'403':
content:
application/hal+json:
schema:
$ref: "../components/schemas/error_response.yml"
examples:
response:
value:
_type: Error
errorIdentifier: urn:openproject-org:api:v3:errors:MissingPermission
message: You are not allowed to see work packages.
description: |-
Returned if the client does not have sufficient permissions.
**Required permission:** view work packages (globally or in any project)
headers: { }
tags:
- Work Packages
description: ''
operationId: List_work_packages
summary: List work packages
post:
parameters:
- description: |-
Indicates whether change notifications (e.g. via E-Mail) should be sent.
Note that this controls notifications for all users interested in changes to the work package (e.g. watchers, author and assignee),
not just the current user.
example: false
in: query
name: notify
required: false
schema:
default: true
type: boolean
responses:
'200':
content:
application/hal+json:
examples:
response:
value:
_links:
addAttachment:
href: "/api/v3/work_packages/1528/attachments"
method: post
addComment:
href: "/api/v3/work_packages/1528/activities"
method: post
title: Add comment
addRelation:
href: "/api/v3/relations"
method: post
title: Add relation
addWatcher:
href: "/api/v3/work_packages/1528/watchers"
method: post
payload:
user:
href: "/api/v3/users/{user_id}"
templated: true
ancestors:
- href: "/api/v3/work_packages/1290"
title: Root node of hierarchy
- href: "/api/v3/work_packages/1291"
title: Intermediate node of hierarchy
- href: "/api/v3/work_packages/1298"
title: nisi eligendi officiis eos delectus quis voluptas dolores
assignee:
href: "/api/v3/users/11"
title: Emmie Okuneva - Adele5450
attachments:
href: "/api/v3/work_packages/1528/attachments"
author:
href: "/api/v3/users/1"
title: OpenProject Admin - admin
availableWatchers:
href: "/api/v3/work_packages/1528/available_watchers"
category:
href: "/api/v3/categories/1298"
title: eligend isi
changeParent:
href: "/api/v3/work_packages/694"
method: patch
title: Change parent of Bug in OpenProject
children:
- href: "/api/v3/work_packages/1529"
title: Write API documentation
customActions:
- href: "/api/v3/work_packages/1528/custom_actions/153/execute"
method: post
title: Reset
- href: "/api/v3/work_packages/1528/custom_actions/94/execute"
method: post
title: Forward to accounting
customField3:
href: api/v3/users/14
delete:
href: "/work_packages/bulk?ids=1528"
method: delete
title: Delete Develop API
logTime:
href: "/work_packages/1528/time_entries/new"
title: Log time on Develop API
type: text/html
move:
href: "/work_packages/1528/move/new"
title: Move Develop API
type: text/html
parent:
href: "/api/v3/work_packages/1298"
title: nisi eligendi officiis eos delectus quis voluptas dolores
priority:
href: "/api/v3/priorities/2"
title: Normal
project:
href: "/api/v3/projects/1"
title: A Test Project
relations:
href: "/api/v3/work_packages/1528/relations"
title: Show relations
removeWatcher:
href: "/api/v3/work_packages/1528/watchers/{user_id}"
method: delete
templated: true
responsible:
href: "/api/v3/users/23"
title: Laron Leuschke - Alaina5788
revisions:
href: "/api/v3/work_packages/1528/revisions"
schema:
href: "/api/v3/work_packages/schemas/11-2"
self:
href: "/api/v3/work_packages/1528"
title: Develop API
status:
href: "/api/v3/statuses/1"
title: New
timeEntries:
href: "/work_packages/1528/time_entries"
title: Time entries
type: text/html
type:
href: "/api/v3/types/1"
title: A Type
update:
href: "/api/v3/work_packages/1528"
method: patch
title: Update Develop API
version:
href: "/api/v3/versions/1"
title: Version 1
watch:
href: "/api/v3/work_packages/1528/watchers"
method: post
payload:
user:
href: "/api/v3/users/1"
watchers:
href: "/api/v3/work_packages/1528/watchers"
_type: WorkPackage
createdAt: '2014-08-29T12:40:53Z'
customField1: Foo
customField2: 42
derivedDueDate:
derivedEstimatedTime: PT10H
derivedStartDate:
description:
format: markdown
html: "<p>Develop super cool OpenProject API.</p>"
raw: Develop super cool OpenProject API.
dueDate:
estimatedTime: PT2H
id: 1528
percentageDone: 0
scheduleManually: false
startDate:
subject: Develop API
updatedAt: '2014-08-29T12:44:41Z'
schema:
"$ref": "../components/schemas/work_package_model.yml"
description: OK
headers: { }
'400':
content:
application/hal+json:
schema:
$ref: "../components/schemas/error_response.yml"
examples:
response:
value:
_type: Error
errorIdentifier: urn:openproject-org:api:v3:errors:InvalidRequestBody
message: The request body was not a single JSON object.
description: Occurs when the client did not send a valid JSON object in the
request body.
headers: { }
'403':
content:
application/hal+json:
schema:
$ref: "../components/schemas/error_response.yml"
examples:
response:
value:
_type: Error
errorIdentifier: urn:openproject-org:api:v3:errors:MissingPermission
message: You are not allowed to add work packages to this project.
description: |-
Returned if the client does not have sufficient permissions.
**Required permission:** add work packages
*Note that you will only receive this error, if you are at least allowed to see the corresponding project.*
headers: { }
'404':
content:
application/hal+json:
schema:
$ref: "../components/schemas/error_response.yml"
examples:
response:
value:
_type: Error
errorIdentifier: urn:openproject-org:api:v3:errors:NotFound
message: The specified project does not exist.
description: |-
Returned if the project does not exist or the client does not have sufficient permissions
to see it.
**Required permissions:** view 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.*
headers: { }
'422':
content:
application/hal+json:
schema:
$ref: "../components/schemas/error_response.yml"
examples:
response:
value:
_embedded:
details:
attribute: Subject
_type: Error
errorIdentifier: urn:openproject-org:api:v3:errors:PropertyConstraintViolation
message: The subject might not be blank.
description: |-
Returned if:
* the client tries to write a read-only property
* a constraint for a property was violated
* a property was provided in an unreadable format
headers: { }
tags:
- Work Packages
description: |-
When calling this endpoint the client provides a single object, containing at least the properties and links that are required, in the body.
The required fields of a WorkPackage can be found in its schema, which is embedded in the respective form.
Note that it is only allowed to provide properties or links supporting the write operation.
A project link must be set when creating work packages through this route.
operationId: Create_Work_Package
requestBody:
content:
application/json:
schema:
"$ref": "../components/schemas/work_package_model.yml"
summary: Create Work Package