openapi: 3.0.1 info: title: Compass Action Items Support API version: '2023-05-30T22:28:43Z' description: HorizonIQ Compass REST API - manage bare metal and cloud infrastructure resources (servers, devices, managed firewalls, OS images, SSL certificates, billing, users, support cases, and action items) on the HorizonIQ (formerly INAP) Compass platform. Assembled from the per-endpoint OpenAPI fragments published at https://compass-horizoniq.readme.io/reference; operationIds and the documented Bearer securityScheme added by API Evangelist. servers: - url: https://api.compass.horizoniq.com/{basePath} variables: basePath: default: v1 security: - bearerAuth: [] tags: - name: Support description: Endpoints related to support cases paths: /support-cases/{caseId}/attachments/{attachmentId}: get: description: Downloads a single support case attachment. parameters: - description: The ID of the support case, can be retrieved from the support case list endpoint. in: path name: caseId required: true schema: type: string - description: The ID of the support case attachment, can be retrieved from the support case attachment list endpoint. in: path name: attachmentId required: true schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/SupportCaseAttachmentGetModel' description: 200 response summary: Download Attachment tags: - Support operationId: getSupportCasesByCaseIdAttachmentsByAttachmentId /support-cases/{caseId}/attachments: get: description: Retrieves a JSON object containing all attachments for support case. parameters: - description: Limits the number of returned objects. in: query name: limit schema: type: string - description: The ID of the support case, can be retrieved from the support case list endpoint. in: path name: caseId required: true schema: type: string - description: Designates the start index of the object list. in: query name: offset schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string - description: Object list sort direction. in: query name: direction schema: type: string - description: Name of key on which to sort object list. in: query name: sortby schema: type: string - in: query name: filter schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/SupportCaseAttachmentListModel' description: 200 response summary: Get Support Case Attachments tags: - Support operationId: getSupportCasesByCaseIdAttachments post: description: Upload one or more attachments for support case using multipart/form-data Content-type header. parameters: - description: The ID of the support case, can be retrieved from the support case list endpoint. in: path name: caseId required: true schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/SupportCaseAttachmentUploadFormModel' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SuccessModel' description: 200 response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 500 response summary: Upload Attachment tags: - Support operationId: createSupportCasesByCaseIdAttachments /support-cases/{caseId}/comments: get: description: Retrieves a JSON object containing all comments for support case. parameters: - description: Limits the number of returned objects. in: query name: limit schema: type: string - description: The ID of the support case, can be retrieved from the support case list endpoint. in: path name: caseId required: true schema: type: string - description: Designates the start index of the object list. in: query name: offset schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string - description: Object list sort direction. in: query name: direction schema: type: string - description: Name of key on which to sort object list. in: query name: sortby schema: type: string - in: query name: filter schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/SupportCaseCommentListModel' description: 200 response summary: Get Support Case Comments tags: - Support operationId: getSupportCasesByCaseIdComments post: description: Adds a comment on the support case indicated by caseId. parameters: - description: The ID of the support case, can be retrieved from the support case list endpoint. in: path name: caseId required: true schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/SupportCaseCommentPostModel' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SupportCaseCommentAddedModel' description: 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 400 response '500': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 500 response summary: Comment On Support Case tags: - Support operationId: createSupportCasesByCaseIdComments /support-cases/{caseId}: get: description: Retrieves a JSON object containing a single support case by case ID. parameters: - description: The ID of the support case, can be retrieved from the support case list endpoint. in: path name: caseId required: true schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/SupportCaseGetModel' description: 200 response '404': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 404 response summary: Get Support Case tags: - Support operationId: getSupportCasesByCaseId patch: description: 'Updates the state of the case.

**NOTE:: some cases cannot be placed on hold or re-opened through the API.**' parameters: - description: The ID of the support case, can be retrieved from the support case list endpoint. in: path name: caseId required: true schema: type: string - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/SupportCasePatchModel' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SupportCaseUpdatedModel' description: 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 400 response '501': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 501 response summary: Update Support Case State tags: - Support operationId: updateSupportCasesByCaseId /support-cases: get: description: Retrieves a JSON object containing a list of support cases. parameters: - description: Object list sort direction. in: query name: direction schema: type: string - description: Limits the number of returned objects. in: query name: limit schema: type: string - description: Name of key on which to sort object list. in: query name: sortby schema: type: string - description: Designates the start index of the object list. in: query name: offset schema: type: string - description: "Filter on object property.
**Example: ?filters[objectPropertyName]=objectPropertyValue**
\n[block:callout] { \"type\": \"info\", \"title\": \"Regular Expression Filtering.\", \"body\": \"The property value can be a valid regular expression to better define list results. The regex must contain valid delimiters such as /.\" } [/block]\n" in: query name: filters schema: type: object style: deepObject explode: true - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/SupportCaseListModel' description: 200 response summary: List Support Cases tags: - Support operationId: getSupportCases post: description: Creates a new support case. parameters: - description: Required with Compass API token.
Provide keyword **Bearer** and space before token. in: header name: Authorization required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/SupportCasePostModel' required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/SupportCaseGetModel' description: 200 response '400': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 400 response '501': content: application/json: schema: $ref: '#/components/schemas/ErrorModel' description: 501 response summary: Create Support Case tags: - Support operationId: createSupportCases components: schemas: SupportCategoryGetModel: type: object properties: departmentName: type: string name: type: string id: type: number department: $ref: '#/components/schemas/SupportDepartmentGetModel' subcategory: type: array items: $ref: '#/components/schemas/SupportSubcategoryGetModel' uuid: type: string SupportCaseListModel: type: object properties: total: type: integer offset: type: integer limit: type: integer sortBy: type: string list: type: array items: $ref: '#/components/schemas/SupportCaseGetModel' direction: type: integer SupportCasePostModel: required: - description - priority - shortDescription type: object properties: netsuiteBillingId: type: string description: type: string shortDescription: type: string priority: type: string enum: - Low - Moderate - High - Critical SupportCaseGetModel: type: object properties: billingId: type: string contactFirstName: type: string description: type: string contactType: type: string updatedDate: type: number deviceId: type: string deviceName: type: string uberClientId: type: number urgency: type: string id: type: string state: type: string department: type: string isReplyAllowed: type: boolean internalUuid: type: string contactEmail: type: string impact: type: string active: type: boolean shortDescription: type: string priority: type: string classification: type: string replyCount: type: string createdDate: type: number assignmentGroup: type: string contactLastName: type: string location: $ref: '#/components/schemas/SupportLocationGetModel' assignee: type: string category: $ref: '#/components/schemas/SupportCategoryGetModel' subcategory: $ref: '#/components/schemas/SupportSubcategoryGetModel' SupportCaseAttachmentListModel: type: object properties: total: type: integer offset: type: integer limit: type: integer sortBy: type: string list: type: array items: $ref: '#/components/schemas/SupportCaseAttachmentGetModel' direction: type: integer SupportCaseCommentGetModel: type: object properties: cc: type: string authorEmail: type: string createdDate: type: number authorName: type: string id: type: string to: type: string body: type: string SupportDepartmentGetModel: type: object properties: name: type: string id: type: string uuid: type: string ErrorModel: type: object properties: error: type: object properties: code: type: integer message: type: string SupportCaseCommentAddedModel: type: object properties: createdDate: type: number updatedBy: type: string caseNumber: type: string statusMessage: type: string status: type: string SupportCaseAttachmentUploadFormModel: required: - files0 type: object properties: files0: type: string format: binary files1: type: string format: binary SupportCaseCommentPostModel: required: - comment type: object properties: comment: type: string SupportCaseCommentListModel: type: object properties: total: type: integer offset: type: integer limit: type: integer sortBy: type: string list: type: array items: $ref: '#/components/schemas/SupportCaseCommentGetModel' direction: type: integer SupportCasePatchModel: required: - reason - state type: object properties: reason: type: string state: type: string enum: - open - closed - on_hold SupportLocationGetModel: type: object properties: country: type: string zipCode: type: string createdDate: type: number sysId: type: string city: type: string street: type: string name: type: string manageDcName: type: string state: type: string updatedDate: type: number locationCode: type: string uuid: type: string SupportCaseUpdatedModel: type: object properties: id: type: string state: type: string SuccessModel: type: object properties: success: type: boolean SupportCaseAttachmentGetModel: type: object properties: fileName: type: string createdDate: type: number fileSize: type: number id: type: string SupportSubcategoryGetModel: type: object properties: name: type: string id: type: number uuid: type: string securitySchemes: bearerAuth: type: http scheme: bearer description: 'API token issued from the Compass portal (Profile > API Tokens). Sent as `Authorization: Bearer `. See https://compass-horizoniq.readme.io/reference/authentication'