Migration Guide
The BIM 360 Issues API Migration Guide was created for developers who are migrating from BIM 360 Issues V1 to V2. It outlines the changes developers need to make to their code.
General Changes
- Changes to URIs.
- Snake_case and kebab-case have been changed to CamelCase.
- Content type is no longer required for GET requests.
- Content type, where required, is
application/json
instead ofapplication/vnd.api+json
. - Some request parameters, attributes, and status error codes have been removed or replaced.
- Response object wrappers, such as the
data
object have either been replaced with aresults
object, or removed entirely.
New Features
New features for v2 include:
- New filters
- Local attachment upload
The following tables show the specific changes for each endpoint:
GET users/me
category | Issues V1 | Issues V2 | Comments |
---|---|---|---|
Method and URI | GET /issues/v1/containers/:container_id/users/me | GET /issues/v2/containers/{containerId}/users/me | Replaced |
URI parameter | container_id | containerId | Replaced |
Attributes | role, name, workflow_roles, workflow_type | Deleted | |
Attribute | is_project_admin | isProjectAdmin | Replaced |
Attribute | quality_issues | issues | Replaced |
Attribute | permitted_actions | permittedActions | Replaced |
Attribute | permitted_statuses | permittedStatuses | Replaced |
Attribute | permitted_attributes | permittedAttributes | Replaced |
Attribute | permissionLevels | New | |
Attribute | canManageTemplates | New |
GET issue-types
category | Issues V1 | Issues V2 | Comments |
---|---|---|---|
Method and URI | GET /issues/v1/containers/:container_id/ng-issue-types | GET /issues/v2/containers/{containerId}/issue-types | Replaced |
URI parameters | container_id | containerId | Replaced |
Query String Parameter | filter[deletedAt] | New | |
Query String Parameter | filter[updatedAt] | New | |
Query String Parameter | Pagination - limit, offset | New | |
Attribute | pagination: {limit, offset, totalResults} | New | |
Attribute | createdBy | New | |
Attribute | updatedBy | New | |
Attribute | deletedBy | New |
GET root-causes
category | Issues V1 | Issues V2 | Comments |
---|---|---|---|
Method and URI | GET /issues/v1/containers/:container_id/root-causes | GET /issues/v2/containers/{containerId}/issue-root-cause-categories | Replaced |
URI parameters | container_id | containerId | Replaced |
Query String Parameter | fields[root_causes] | include=rootcauses | Replaced |
Query String Parameter | filter[deletedAt] | New | |
Query String Parameter | filter[updatedAt] | New | |
Attribute | pagination: {limit, offset, totalResults} | New | |
Attribute | createdBy | New | |
Attribute | updatedBy | New | |
Attribute | deletedBy | New | |
Attribute | id, title, isActive, permittedAction, permittedAttributes, createdAt, CreateBy, updatedAt, updatedBy, deletedAt, deletedBy | New |
GET issues
category | Issues V1 | Issues V2 | Comments |
---|---|---|---|
Method and URI | GET /issues/v1/containers/:container_id/quality-issues | GET /issues/v2/containers/{containerId}/issues | Replaced |
URI parameter | container_id | containerId | Replaced |
Query String Parameter | include | Deleted | |
Query String Parameter | page[limit], page[offset] | limit, offset | Replaced |
Query String Parameter | fields [] | fields | Replaced |
Query String Parameter | sort | sortBy | Replaced |
Query String Parameter | filter[synced_after] | Deleted | |
Query String Parameter | filter[target_urn] | filter[linkedDocumentUrn] | Replaced |
Query String Parameter | filter[created_by] | filter[createdBy] | Replaced |
Query String Parameter | filter[ng_issue_type_id] | filter[issueTypeId] | Replaced |
Query String Parameter | filter[ng_issue_subtype_id] | filter[issueSubtypeId] | Replaced |
Query String Parameter | filter[due_date] | filter[dueDate] | Replaced |
Query String Parameter | filter[created_at] | filter[createdAt] | Replaced |
Query String Parameter | filter[ng_issue_type_id] | filter[issueTypeId] | Replaced |
Query String Parameter | filter[ng_issue_subtype_id] | filter[issueSubtypeId] | Replaced |
Query String Parameter | filter[id], [qualityUrn], [status], [openedAt], [openedBy], [updatedAt]. [updatedBy], [assignTo], [rootCauseId], [locationId], [subLocationId], [closedBy], [closedAt], [title], [search], [displayId], [assignedToType], [ownerId], [customAttributes] | New | |
Attribute (request) | data | results | Replaced |
Attribute (request) | pagination: {limit, offset, totalResults} | New | |
Attribute (response) | attributes | Deleted | |
Attribute (response) | due_date | dueDate | Replaced |
Attribute (response) | root_cause_id | rootCauseId | Replaced |
Attribute (response) | comment_count | commentCount | Replaced |
Attribute (response) | attachment_count | attachmentCount | Replaced |
Attribute (response) | permitted_statuses | permittedStatus | Replaced |
Attribute (response) | permitted_attributes | permittedAttributes | Replaced |
Attribute (response) | permitted_actions | permittedActions | Replaced |
Attribute (response) | custom_attributes | customAttributes | Replaced |
Attribute (response) | created_at | createdAt | Replaced |
Attribute (response) | created_by | createdBy | Replaced |
Attribute (response) | updated_by | updatedAt | Replaced |
Attribute (response) | closed_by | closedBy | Replaced |
Attribute (response) | ng_issue_type_id | issueTypeId | Replaced |
Attribute (response) | ng_issue_subtype_id | issueSubtypeId | Replaced |
Attribute (response) | lbs_location | locationId | Replaced |
Attribute (response) | location_description | locationDetails | Replaced |
Attribute (response) | owner | ownerId | Replaced |
Attribute (response) | identifier | displayId | Replaced |
Attribute (response) | quality_urns | links | Replaced |
Attribute (response) | issue_type, issues_type_id, issue_sub_type, relationships, attachments_attributes, comments_attributes, root_cause, synced_at, close_version, close_at, closed_by, starting_version, markup_metadata, answer, answered_at, answered_by tags, target_urn, target_urn_page, collection_urn, pushpin_attributes, sheet_metadata, trades | Deleted | |
Attribute (response) | containerId, openedBy, openedAt, linkedDocuments, officialResponse: {response, respondedAt, respondedBy} | New |
POST issues
category | Issues V1 | Issues V2 | Comments |
---|---|---|---|
Method and URI | POST /issues/v1/containers/:container_id/quality-issues | POST /issues/v2/containers/{containerId}/issues | Replaced |
URI parameter | container_id | containerId | Replaced |
Query String Parameter | fields[quality_issues] | Deleted | |
Attribute (request) | type, data, attributes, created_at, starting_version | Deleted | |
Attribute (request) | locationId, linkedDocuments, officialResponse, customAttributes, snapshotUrn | New | |
Attribute (request) | owner | ownerId | Replaced |
Attribute (request) | due_date | dueDate | Replaced |
Attribute (request) | assigned_to | assignedTo | Replaced |
Attribute (request) | root_cause_id | rootCauseId | Replaced |
Attribute (request) | location_description | locationDescription | Replaced |
Attribute (request) | assigned_to_type | assignedToType | Replaced |
Attribute (request) | ng_issue_subtype_id | issueSubtypeId | Replaced |
Attribute (response) | attributes | Deleted | |
Attribute (response) | due_date | dueDate | Replaced |
Attribute (response) | root_cause_id | rootCauseId | Replaced |
Attribute (response) | comment_count | commentCount | Replaced |
Attribute (response) | attachment_count | attachmentCount | Replaced |
Attribute (response) | permitted_statuses | permittedStatus | Replaced |
Attribute (response) | permitted_attributes | permittedAttributes | Replaced |
Attribute (response) | permitted_actions | permittedActions | Replaced |
Attribute (response) | custom_attributes | customAttributes | Replaced |
Attribute (response) | created_at | createdAt | Replaced |
Attribute (response) | created_by | createdBy | Replaced |
Attribute (response) | updated_by | updatedAt | Replaced |
Attribute (response) | closed_by | closedBy | Replaced |
Attribute (response) | ng_issue_type_id | issueTypeId | Replaced |
Attribute (response) | ng_issue_subtype_id | issueSubtypeId | Replaced |
Attribute (response) | lbs_location | locationId | Replaced |
Attribute (response) | location_description | locationDetails | Replaced |
Attribute (response) | owner | ownerId | Replaced |
Attribute (response) | identifier | displayId | Replaced |
Attribute (response) | quality_urns | links | Replaced |
Attribute (response) | issue_type, issues_type_id, issue_sub_type, relationships, attachments_attributes, comments_attributes, root_cause, synced_at, close_version, close_at, closed_by, starting_version, markup_metadata, answer, answered_at, answered_by tags, target_urn, target_urn_page, collection_urn, pushpin_attributes, sheet_metadata, trades | Deleted | |
Attribute (response) | containerId, openedBy, openedAt, linkedDocuments, officialResponse: {response, respondedAt, respondedBy} | New |
The following table shows the differences in required request attributes between v1 and v2:
Request Attributes | Issues v1 | Issues v2 |
---|---|---|
type | required | x |
title | required | required |
ng_issue_type_id | required | x |
ng_issue_subtype_id | required | x |
status | x | required |
issueSubtypeId | x | required |
PATCH issues
category | Issues V1 | Issues V2 | Comments |
---|---|---|---|
Method and URI | PATCH /issues/v1/containers/:container_id/quality-issues/:id | PATCH /issues/v2/containers/{containerId}/issues/{issueId} | Replaced |
URI parameter | container_id | containerId | Replaced |
URI parameter | id | issueId | Replaced |
Attribute (request) | id, type, close_version | Deleted | |
Attribute (request) | due_date | dueDate | Replaced |
Attribute (request) | assign_to | assignTo | Replaced |
Attribute (request) | assign_to_type | assignToType | Replaced |
Attribute (request) | root_cause_id | rootCauseId | Replaced |
Attribute (request) | ng_issue_type_id | issueTypeId | Replaced |
Attribute (request) | ng_issue_subtype_id | issueSubtypeId | Replaced |
Attribute (request) | lbs_location | locationId | Replaced |
Attribute (request) | location_description | locationDetails | Replaced |
Attribute (request) | owner | ownerId | Replaced |
Attribute (request) | quality_urns | links | Replaced |
Attribute (request) | linkedDocuments | New | |
Attribute (request) | customAttributes | New | |
Attribute (request) | snapshotUrn | New | |
Attribute (request) | officialResponse: {response, respondedAt, respondedBy} | New | |
Attribute (response) | attributes | Deleted | |
Attribute (response) | due_date | dueDate | Replaced |
Attribute (response) | root_cause_id | rootCauseId | Replaced |
Attribute (response) | comment_count | commentCount | Replaced |
Attribute (response) | attachment_count | attachmentCount | Replaced |
Attribute (response) | permitted_statuses | permittedStatus | Replaced |
Attribute (response) | permitted_attributes | permittedAttributes | Replaced |
Attribute (response) | permitted_actions | permittedActions | Replaced |
Attribute (response) | custom_attributes | customAttributes | Replaced |
Attribute (response) | created_at | createdAt | Replaced |
Attribute (response) | created_by | createdBy | Replaced |
Attribute (response) | updated_by | updatedAt | Replaced |
Attribute (response) | closed_by | closedBy | Replaced |
Attribute (response) | ng_issue_type_id | issueTypeId | Replaced |
Attribute (response) | ng_issue_subtype_id | issueSubtypeId | Replaced |
Attribute (response) | lbs_location | locationId | Replaced |
Attribute (response) | location_description | locationDetails | Replaced |
Attribute (response) | owner | ownerId | Replaced |
Attribute (response) | identifier | displayId | Replaced |
Attribute (response) | quality_urns | links | Replaced |
Attribute (response) | issue_type, issues_type_id, issue_sub_type, relationships, attachments_attributes, comments_attributes, root_cause, synced_at, close_version, close_at, closed_by, starting_version, markup_metadata, answer, answered_at, answered_by tags, target_urn, target_urn_page, collection_urn, pushpin_attributes, sheet_metadata, trades | Deleted | |
Attribute (response) | containerId, openedBy, openedAt, linkedDocuments, officialResponse: {response, respondedAt, respondedBy} | New |
GET comments
category | Issues V1 | Issues V2 | Comments |
---|---|---|---|
Method and URI | GET /issues/v1/containers/:container_id/quality-issues/:id/comments | GET /issues/v2/containers/{containerId}/issues/{issueId}/comments | Replaced |
URI parameter | container_id | containerId | Replaced |
URI parameter | id | issueId | Replaced |
Query String Parameter | limit, offset | New | |
Attribute (response) | pagination: {limit, offset, totalResults} | New | |
Attribute (response) | attributes | Deleted | |
Attribute (response) | relationships, links, type, synced_at | Deleted | |
Attribute (response) | created_at | createdAt | Replaced |
Attribute (response) | updated_at | updatedAt | Replaced |
Attribute (response) | created_by | createdBy | Replaced |
Attribute (response) | issue_id | issueId | Replaced |
Attribute (response) | createdBy, deletedAt, permittedActions, permittedAttributes | New |
POST comments
category | Issues V1 | Issues V2 | Comments |
---|---|---|---|
Method and URI | POST /issues/v1/containers/:container_id/comments | POST /issues/v2/containers/{containerId}/issues/{issueId}/comments | Replaced |
URI parameter | container_id | containerId | Replaced |
URI parameter | id | issueId | Replaced |
Query String Parameter | limit, offset | New | |
Query String Parameter | fields[comments] | Deleted | |
Attributes (request) | type, attributes, issue_id | Deleted | |
Attribute (response) | pagination: {limit, offset, totalResults} | New | |
Attribute (response) | attributes | Deleted | |
Attribute (response) | relationships, links, type, synced_at | Deleted | |
Attribute (response) | created_at | createdAt | Replaced |
Attribute (response) | updated_at | updatedAt | Replaced |
Attribute (response) | created_by | createdBy | Replaced |
Attribute (response) | issue_id | issueId | Replaced |
Attribute (response) | createdBy, deletedAt, permittedActions, permittedAttributes | New |
GET attachemnts
category | Issues V1 | Issues V2 | Comments |
---|---|---|---|
Method and URI | GET /issues/v1/containers/:container_id/quality-issues/:id/attachments | GET /issues/v2/containers/{containerId}/issues/{issueId}/attachments | Replaced |
URI parameter | container_id | containerId | Replaced |
URI parameter | id | issueId | Replaced |
Query String Parameter | filter[synced_after], filter[created_at], page[limit], page[offset], include=, fields[attachments]=, sort | Deleted | |
Query String Parameter | filter[status]=``completed``, pre-upload , file-uploaded |
New | |
Query String Parameter | limit, offset | New | |
Attribute (response) | type, relationships, links, synced_at, url, url_page, urn_version | Deleted | |
Attribute (response) | pagination: {limit, offset, totalResults} | New | |
Attribute (response) | attributes | Deleted | |
Attribute (response) | issue_id | issueId | Deleted |
Attribute (response) | created_at | createdAt | Replaced |
Attribute (response) | updated_at | updatedAt | Replaced |
Attribute (response) | created_by | createdBy | Replaced |
Attribute (response) | attachement_type | attachmentType | Replaced |
Attribute (response) | markup_metadata | markupMetadata | Replaced |
Attribute (response) | permitted_actions | permittedActions | Replaced |
Attribute (response) | urn_type | urnType | Replaced |
Attribute (response) | deletedAt, deletedBy, permittedAttributes, wipUrn | New |
POST attachemnts
category | Issues V1 | Issues V2 | Comments |
---|---|---|---|
Method and URI | POST /issues/v1/containers/:container_id/attachments | POST /issues/v2/containers/{containerId}/issues/{issueId}/attachments | Replaced |
URI parameter | container_id | containerId | Replaced |
URI parameter | issueId | New | |
Query String Parameter | fields[attachments] | Deleted | |
Attribute (request) | type, issue_id | Deleted | |
Attribute (request) | attributes | Deleted | |
Attribute (request) | urn_type | urnType | Replaced |
Attribute (response) | type, relationships, links, synced_at, url, url_page, urn_version | Deleted | |
Attribute (response) | attributes | Deleted | |
Attribute (response) | issue_id | issueId | Deleted |
Attribute (response) | created_at | createdAt | Replaced |
Attribute (response) | updated_at | updatedAt | Replaced |
Attribute (response) | created_by | createdBy | Replaced |
Attribute (response) | attachement_type | attachmentType | Replaced |
Attribute (response) | markup_metadata | markupMetadata | Replaced |
Attribute (response) | permitted_actions | permittedActions | Replaced |
Attribute (response) | urn_type | urnType | Replaced |
Attribute (response) | deletedAt, deletedBy, permittedAttributes, wipUrn | New | |
Attribute (response) | resourceUrns, urnPage, urnVersion, setWipUrnRetries, clientVersion | New |
GET issue attribute definitions
No change
GET issue attribute mappings
No change