Groups Endpoint
This endpoint now supports the following options:
Fetch list of Groups
GET /api/v3/groups
Filter the list by different criteria
This functionality allows adding a query parameter to the GET call to filter the list matching on the supplied query parameters. The following fields are supported:
- shortName
- longName
- groupId
- isSystemManaged
- restrictIp
- exclusiveGroup
The filtering format follows Autodesk Platform Services standards, and it is summarized in the example below.
GET https://tenant_name.autodeskplm360.net/api/v3/groups?filter[shortName]=admin
Returns:
{
"__self__": "/api/v3/users?offset=0&limit=10 ",
"offset": 0,
"limit": 1,
"totalCount": 1,
"first": {
"link": "/api/v3/groups?offset=0&limit=10 ",
"title": "First",
"deleted": false,
"count": 101
},
"next": {},
"last": {
"link": "/api/v3/groups?offset=0&limit=10",
"title": "Last",
"deleted": false,
"count": 1
},
"groups": [
{
"__self__": "/api/v3/groups/1",
"urn": "urn:adsk.plm:tenant.group:TENANTNAME.108",
"shortName": "Administration [SYSTEM]",
"longName": "This is a system-managed group. This group's attributes and roles can not be modified, but users can be added and removed",
"minUserCount": 1,
"exclusiveGroup": false,
"restrictIp": false,
"oxygenGroupId": 0000001,
"isSystemManaged": true,
"invariantName": "ADMINISTRATION",
"mappedToOxygen": true
}
]
}
Sort the list by different criteria
This functionality allows adding a query parameter to the GET call to sort the list matching on the supplied query parameters – ascending or descending order. The following fields are supported:
- groupId
- shortName
- longName
- exclusiveGroup
- isSystemManaged
- restrictIp
- mappedToOxygen
- minUserCount
The sorting format is summarized in the example below.
GET https://tenant_name.autodeskplm360.net/api/v3/groups?sort=groupId asc
Header:
Accept: application/json
Returns:
(Same as above, sorted by the specific criteria)
Return user details in bulk
This functionality allows setting the Accept header parameter to a value “application/vnd.autodesk.plm.groups.bulk+json” when performing a GET against the list of groups. This will return the whole group data, including which users belong to each group, instead of just the basic information. This can be leveraged by integrations to reduce the number of calls to fetch each group’s details individually.
Examples
GET https://tenant_name.autodeskplm360.net/api/v3/groups
Header:
Accept: application/vnd.autodesk.plm.groups.bulk+json
Returns:
{
"__self__": "/api/v3/groups?offset=0&limit=10 ",
"offset": 0,
"limit": 10,
"totalCount": 21,
"first": {
"link": "/api/v3/groups?offset=0&limit=10 ",
"title": "First",
"deleted": false,
"count": 10
},
"next": {
"link": "/api/v3/groups?offset=10&limit=10 ",
"title": "Next",
"deleted": false,
"count": 10
},
"last": {
"link": "/api/v3/groups?offset=20&limit=10",
"title": "Last",
"deleted": false,
"count": 1
},
"items" : [ {
"link" : "/api/v3/groups/129",
"urn" : "urn:adsk.plm:tenant.group:TENANTNAME.129",
"shortName" : Admin Group",
"longName" : Administrators of FLC",
"minUserCount" : 0,
"exclusiveGroup" : false,
"restrictIp" : false,
"isSystemManaged" : false,
"mappedToOxygen" : true,
"users" : [ {
"userId" : "randomId",
"loginName" : "doej",
"delegations" : [ ],
"dashboardCharts" : null,
"displayName" : "John Doe",
"firstName" : "Joe",
"lastName" : "Doe",
"active" : "Y",
"reset" : "No",
"batchNotifyPref" : "Always",
"wfNotifyPref" : "ActionRequired",
"thumbnailPref" : "Yes",
"licenseType" : {
"link" : "/api/v3/licenses/S",
"urn" : "urn:adsk.plm:tenant.license:TENANTNAME.S",
"title" : "Standard",
"deleted" : false,
"type" : "Standard",
"description" : "PROFESSIONAL"
},
"title" : "",
"phone" : null,
"cellular" : null,
"fax" : null,
"email" : "john.doe@autodesk.com",
"address1" : "",
"address2" : "",
"city" : "",
"stateProv" : "",
"country" : "",
"postal" : "",
"timezone" : "Etc/GMT+12",
"organization" : "",
"industry" : null,
"aboutMe" : null,
"uomPref" : "English",
"surveyDone" : false,
"userNumber" : 200,
"dateFormat" : "yyyy/MM/dd",
"displayNameExtended" : "John Doe (doej)",
"externalAuthReservationToken" : null,
"externalAuthUserId" : "RANDOMID",
"plmSearchCrawlerUser" : false,
"lastRecalculateUpdate" : null,
"lastRecalculateStarted" : null,
"lastMowUpdateDate" : "2019-10-18T20:27:46.738+0000",
"lastLoginTime" : "2019-03-06T17:10:42.778+0000",
"interfaceStyle" : "NextPLM360",
"interfaceStyleMandated" : false,
"signupUrl" : null,
"userStatus" : "Active",
"mappedToOxygen" : true,
"userActive" : true,
"userInactive" : false,
"tenantAdmin" : false,
"id" : "sUXRT",
"__self__" : "/api/v3/users/randomid",
"urn" : "urn:adsk.plm:tenant.user:TENANTNAME.randomid"
}
]
}
GET https://tenant_name.autodeskplm360.net/api/v3/groups
Header:
Accept: application/json
Assign User(s) to Group
This functionality allows adding one (or more) User(s) to a Group using V3 API when calling the /groups/:groupId: endpoint. This request will only succeed if it’s performed by an administrator.
The POST format is:
POST /api/v3/groups/{groupId}/users
Header: Content-type: application/json
Body:
["urn:adsk.plm:tenant.user:TENANT_NAME.USER_ID", "urn:adsk.plm:tenant.user:TENANT_NAME.USER_ID",…]
Returns:
HTTP 204 (Success)
Assign Role(s) to Group
This functionality allows assigning one (or more) Role(s) to a Group using V3 API when calling the /groups/:groupId:/roles endpoint. This request will only succeed if it’s performed by an administrator.
The POST format is:
POST /api/v3/groups/{groupId}/roles
Header: Content-type: application/json
Body:
["urn:adsk.plm:tenant.role:TENANT_NAME.ROLE_ID", "urn:adsk.plm:tenant.role:TENANT_NAME.ROLE_ID",…]
Returns:
HTTP 204 (Success)
Create a Group
Resource URL
POST http//mytenant.autodeskplm360.net/api/v3/groups
Header: Content-type: application/json
Body:
{
name
description
restrictIp
ipRanges(optional)
}
Response:
HTTP 201 (Created)
Header location: http//mytenant.autodeskplm360.net/api/v3/groups/{groupId}
restricIp
is true
, then ipRanges
must be included.Request example where restrictIP
is false
:
POST http//mytenant.autodeskplm360.net/api/v3/groups
{
"name":"UniqueGroupName",
"description":"Description",
"restrictIp":false
}
Response (201 Created)
Content-Type: application/json
Header location: http//mytenant.autodeskplm360.net/api/v3/groups/{groupId}
Request example where restrictIp
is true
:
POST http//mytenant.autodeskplm360.net/api/v3/groups
{
"name":"UniqueGroupName",
"description":"Description",
"restrictIp": true,
"ipRanges": [{
"description":"can be requested only from these IPs",
"fromIp":"124.0.0.",
"toIp":"124.0.1"
}]
}
Response (201 Created)
Content-Type: application/json
Header location: http//mytenant.autodeskplm360.net/api/v3/groups/{groupId}