How to create Assets objects via REST API based on different attribute type in JIRA Service Management Cloud
Platform Notice: Cloud - This article applies to Atlassian products on the cloud platform.
Summary
There is a scenario where the admin needs to create an Asset object via REST API. In Assets Cloud REST API documentation, have a list of APIs available. However, it didn't give the example of a JSON template for a certain scenarios. For this article, I will give you the list of JSON templates to create a new object based on each attribute type. Using the same JSON template you can use it to update Asset object using REST API too.
Environment
JSM Assets
Scenario
Admin needs to create a new object using REST API, and the object type has multiple attribute type.
Solution
Follow the steps by steps to create a new object using REST API :-
- Generate an API token for your account to execute the REST API using Basic Authentication :-
- Go to https://id.atlassian.com/manage/api-tokens
- Click Create API Token
- Set a Label and click Create
- Save the Token somewhere safe to use it for later.
- Get the workspace id for your site :-
Run the API below :-
https://<JSM Premium Site Name>.atlassian.net/rest/servicedeskapi/insight/workspace
- From the response, save the workspace id
Then, use the POST object API to create the new object. The API is as below , make sure to update the workspace ID:-
POST https://api.atlassian.com/jsm/insight/workspace/{workspaceId}/v1/object/create
Now to structure the JSON template, the basic template is as below:-
{ "objectTypeId": "250", "attributes": [ { "objectTypeAttributeId": "2797", "objectAttributeValues": [ { "value": "Test" } ] }, { "objectTypeAttributeId": "2807", "objectAttributeValues": [ { "value": "Testing" } ] } ] }
ObjectTypeID : You can get it from the Object Type configuration page. For example as per the screenshot below:-
ObjectTypeAttributeID : You can get it from the Object Type attribute configuration page. For example as per the screenshot below:-- Below is the detailed template for each attribute :-
Attribute Type | Notes | Example |
---|---|---|
Text | The value just needs to be the expected text. | { "objectTypeAttributeId": "2797", "objectAttributeValues": [ { "value": "Test" } ] } |
Boolean | The value can be either true or false. | { "objectTypeAttributeId": "2800", "objectAttributeValues": [ { "value": "true" } ] } |
Integer | The value must be an exact number. | { "objectTypeAttributeId": "2801", "objectAttributeValues": [ { "value": "123" } ] } |
Float | The value must be a floating number. | { "objectTypeAttributeId": "2802", "objectAttributeValues": [ { "value": "123.0" } ] } |
Date | The value format is YYYY-MM-DD | { "objectTypeAttributeId": "2803", "objectAttributeValues": [ { "value": "2022-08-09" } ] } |
Date and Time | The value format is YYYY-MM-DDTHH:mm:ss.sssZ | { "objectTypeAttributeId": "2804", "objectAttributeValues": [ { "value": "2022-08-10T13:00:00.000+10:00" } ] } |
URL | The value must start with HTTP:// or HTTPS:// | { "objectTypeAttributeId": "2805", "objectAttributeValues": [ { "value": "https://www.google.com" } ] } |
The value must be a valid email format | { "objectTypeAttributeId": "2806", "objectAttributeValues": [ { "value": "atiqah@gmail.com" } ] } | |
Text Area | The value just needs to be the expected text. | { "objectTypeAttributeId": "2807", "objectAttributeValues": [ { "value": "This is a long text" } ] } |
Select | The value must be the selection value name. This is the example for single value. | { "objectTypeAttributeId": "2808", "objectAttributeValues": [ { "value": "one" } ] } |
The value must be the selection value name. This is the example for multi-value. | { "objectTypeAttributeId": "2808", "objectAttributeValues": [ { "value": "one" }, { "value": "two" } ] } | |
IP Address | The value must represent IP Addresses (IPv4) . This is the example for single value. | { "objectTypeAttributeId": "2809", "objectAttributeValues": [ { "value": "10.11.11.11" } ] } |
Reference Object | The value must be the reference object key. This is the example for single value. | { "objectTypeAttributeId": "2811", "objectAttributeValues": [ { "value": "AP-76" } ] } |
The value must be the reference object key. This is the example for multi-value. | { "objectTypeAttributeId": "2811", "objectAttributeValues": [ { "value": "AP-24" }, { "value": "AP-76" } ] } | |
Group | The value must be the group name. This example is for a single value. | { "objectTypeAttributeId": "2812", "objectAttributeValues": [ { "value": "administrators" } ] } |
The value must be the group name. This example is for a multi value. | { "objectTypeAttributeId": "2812", "objectAttributeValues": [ { "value": "administrators" }, { "value": "atlassian-addons-admin" } ] } | |
User | The value must be the user Atlassian Account id. This example is for a single value. |
|
The value must be the user Atlassian Account id. This example is for a multi-value. | { "objectTypeAttributeId": "2810", "objectAttributeValues": [ { "value": "557057:1a8aeee5-40e9-413a-9f4e-2f074f09644a" }, { "value": "557058:13a8c36c-79e5-44d7-8a6a-d985370a8c91" } ] } |
Tips : For easier way to get the correct JSON template for your REST API , try to create or update the object from the UI. While doing it , open the Developer Tool > Network and look for the create request and click Payload . It will look like as per the screenshot below :-
Click View Source for the raw data :-
For Postman users , the request will look as per screenshot below :-