This article is for Data Center. Visit Cloud
Item Resource
Item resource is used to create new items and update existing items.
Creating a New Item
The following request is used to create a new item (issue, folder or other type) and insert it into a forest.
POST $baseUrl/rest/structure/2.0/item/create
This request should upload a specification of the creation action and coordinates of where to put the result.
Example
{ "item": { "type": "com.almworks.jira.structure:type-folder", "values": { "summary": "New folder name" } }, "forest": { "spec": { "structureId": 128 }, "version": { "signature": 0, "version": 0 } }, "items": { "version": { "signature": 0, "version": 0 } }, "rowId": -100, "under": 0, "after": 0, "before": 0, "parameters": {} }
Parameters
Parameter (see example above) | Meaning |
---|---|
item | Defines the item being created. |
item.type | Item type (complete key of the module that provides this item's main functionality.) Use |
item.values | A set of values for the new item. The specific fields depend on the item. For a folder, it is "summary". For other items, see examples below. |
forest.spec | Forest specification of the forest that will receive the new item. See ForestSpec and RestForestSpec. |
forest.version | Last known version of the forest. The reply to this call will contain the update to that version. Use zero version (as in example) to receive full forest. |
items.version | Last known version of instance items set. The reply to this call will contain an update to the known items. Use zero version (as in example) to receive full update. |
rowId | Temporary ID assigned to the created issue. Must be negative. You can use -100 in most cases. |
under / after / before | Forest coordinates to insert the new item into. See Forest Resource. |
Specific parameters for main item types
Folder
This is the example of item
parameter for a new folder:
"item": { "type": "com.almworks.jira.structure:type-folder", "values": { "summary": "New folder name" } }
The only parameter sent is the folder name.
Issue
This is the example of item
parameter for a new issue:
"item": { "type": "com.almworks.jira.structure:type-issue", "values": { "issue": { "summary": "issue summary" }, "pid": 10000, "issuetype": "3", "mode": "new", } }
The above are the minimal fields needed to create a new issue. Note that pid
is a number, but issuetype
is a string.
Insert Generator
This is the example of item
 parameter for a new JQL insert generator. The generator adds issues from DEMO project.
"item": { "type": "com.almworks.jira.structure:type-generator", "values": { "moduleKey": "com.almworks.jira.structure:inserter-jql", "params": { "jql": "project = DEMO", "limit": 1000 } } }
Note that limit
 indicates the maximum number of issues added by this generator. Use null
value or omit limit
 parameter to add issues without a limit.
Extend Generator
This is the example of item
 parameter for a new Sub-tasks extender.
"item": { "type": "com.almworks.jira.structure:type-generator", "values": { "moduleKey": "com.almworks.jira.structure:extender-subtasks", "params": { "typeIds": null, "from": null, "to": 10 } } }
Note that null
value of typeIds
 parameter stands for "All available sub-task types". null
value of from
 and 10
of to
parameter stand for "All levels up to 10". See Sub-tasks Extender for details about parameter values.
Filter Generator
This is the example of item
 parameter for a new JQL filter generator. The generator keeps only issues in "To Do" status category.
"item": { "type": "com.almworks.jira.structure:type-generator", "values": { "moduleKey": "com.almworks.jira.structure:filter-jql", "params": { "showSubItems": false, "jql": "statusCategory = \"To Do\"", "level": null, "keepNonIssues": false } } }
Note that null
value for "level" stands for "All levels". See Filter Generators for details about parameter values.
Group Generator
This is the example of item
 parameter for a new field group generator. The generator groups issues by assignee field.
"item": { "type": "com.almworks.jira.structure:type-generator", "values": { "moduleKey": "com.almworks.jira.structure:grouper-field", "params": { "fieldId": "assignee" } } }
Sort Generator
This is the example of item
 parameter for a new field sort generator. The generator sorts issues by priority field.
"item": { "type": "com.almworks.jira.structure:type-generator", "values": { "moduleKey": "com.almworks.jira.structure:sorter-attribute", "params": { "attribute": { "id": "priority", "format": "order" } } } }
Reply Example
The following is an example of a reply.
{ "successfulActions": 1, "itemId": "com.almworks.jira.structure:type-issue/10100", "oldRowIds": [-100], "newRowIds": [61], "forestUpdates": [...], "itemsUpdate": {...} }
Most important fields are itemId
 and newRowIds
. More on the return fields:
Field | Explanation |
---|---|
successfulActions | A number of actions successfully performed by the server. In this case, it's either 0 or 1. |
itemId | The ID of the newly created item. See ItemIdentity. |
oldRowIds / newRowIds | Provides mapping from the temporary row IDs used for uploading the action and the real row IDs obtained after the item was inserted. |
forestUpdates | Changes to the forest since the version passed in the request. |
itemsUpdate | Changes to the items set since the version passed in the request. |
Updating an Existing Item
The following request is used to update an existing item (issue, folder or other type).Â
POST $baseUrl/rest/structure/2.0/item/update
Example of the request:
{ "item": { "itemId": "10000", "values": { "summary": "New Summary" } }, "items": { "version": { "signature": 0, "version": 0 } }, "forest": { "spec": { "type": "clipboard" }, "version": { "signature": 0, "version": 0 } } }
Note that although the update does not depend on the forest, the low-level API in the current version requires the request to specify a forest spec and known version of items stream. If you don't need to maintain up-to-date items cache and not interested in updates to a forest where the item is located, just use empty version in items field and "clipboard" forest spec – like in this example.
Parameters
Parameter (see example above) | Meaning |
---|---|
item.itemId | The ID of the item. If it is just a number, like in the example, it is an issue ID. Note that it is still a String value that contains issue ID. Instead of a number, it can be a canonical notation of an ItemIdentity. For example, to update a folder, use |
item.values | A map of values to be updated. The keys are the same as when the item is created. For updating a folder, use |
items.version | Known version of the items stream. The response will contain an update based on that number. Use zeroes, as in example, when updated is not needed. |
forest.spec and forest.version | Monitored forest spec and known version of that forest. The response will contain a forest update based on those values. When not needed, use a simple forest (like clipboard in this example) and zeroed version. |
Reply
The reply is similar to the reply from calling /create
method, defined above. A positive HTTP status tells that the item has been updated. There is no "itemId"
in the response.