How to create Assets objects via REST API based on different attribute type
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.
The purpose of this documentation
In Assets Cloud REST API documentation, have a list of APIs available. However, it didn't give the example of a JSON template for 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 objects using REST API too.
Using the Assets REST API
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.
ObjectTypeAttributeID : You can get it from the Object Type attribute configuration page.- 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.
Click View Source for the raw data.
For Postman users, the request will look like the example below:
{
"objectTypeId": "23",
"attributes": [
{
"objectTypeAttributeId": "135",
"objectAttributeValues": [
{
"value": "NY-1"
}
]
},