Use the tickets API operations to create a ticket, add a comment, or update the status of a ticket. Rackspace Ticketing is currently limited to Dedicated Hosting or Managed Hosting products at Rackspace.
Post tickets
POST /tickets
Content-Type: application/vnd.ticketing.v2+json
Accept: application/vnd.ticketing.v2+json
Creates a new ticket within Rackspace.
For our dedicated and fazure accounts (account IDs prefixed hybrid:
), the user must have either the account_admin
or edit_ticket
role assigned to them. These roles can be managed within the my.rackspace.com portal.
For all other accounts, the user must have the identity:user-admin
or ticketing:admin
role. This role can be managed in the Cloud Control Panel.
Prerequisites
Before Creating the ticket user need to know :
- What type of Account user can use ? ( For account details please refer Accounts )
- In which Category - SubCategory user can create ticket ? ( For Category - subcategory relation details please refer Categories)
- List of Resources User has access to ? ( For Resouces list please refer Resources )
Note
To associate attachment to a ticket, the User first needs to upload that attachment in the Rackspace environment. For uploading any attachment please refer Attachments
Request parameters
The request has the following body parameters:
Name | Type | Description |
---|---|---|
accountId | String (Required) | The account for which the ticket is being created (for example hybrid:12345 ). |
subject | String (Required) | The subject line for the ticket. |
category | String (Required) | The category name. The categories are Account , Billing and Payments , Request for Information , Change , and Incident . |
subcategory | String (Required) | The subcategory name. |
severity | String | The severity of your request, please use the /accounts endpoint to determine what severities available to your account. |
comment | Object | This object can be used to provide a description of your ticket. |
comment.text | String (Required) | A detailed description of the nature of your request |
comment.attachments | object | Attachement related to comment |
comment.attachments.filename | String | Name of the attached file |
comment.attachments.uuid | String | UUID of the attached file |
resources | String | The URLs of the resources affected by the issue described in the ticket. |
recipients | Array | List of all the recipients for notification of tickets. |
Request example
The following example shows the JSON request for creating a ticket:
{
"accountId": "hybrid:12345",
"subject": "Help! We need more servers!",
"category": "Incident",
"subcategory": "Other",
"severity": "Urgent",
"comment": {
"text": "We are receiving a ton of traffic, we need more servers!"
"attachments": [
{
"filename": "server.log",
"uuid": "1234-server.log"
},
{
"filename": "database.log",
"uuid": "1234-database.log"
}
]
},
"recipients": [
"RPN-3322-23"
],
"resources": [
"https://resources.api.rackspace.com/resources/dedicated:00001",
"https://resources.api.rackspace.com/resources/dedicated:0002"
]
}
Response parameters
The response has the following body parameters:
Name | Type | Description |
---|---|---|
ticketId | String | The UUID of the ticket. |
accountId | String | The ID of the account for which the ticket is being created. |
subject | String | The subject line for the ticket. |
status | String | The status of the ticket. |
severity | String | The severity of the issue. Available severities are Low , Normal , High , Urgent , and Emergency . |
resources | String | The URLs of the resources affected by the issue described in the ticket. |
category | String | The category name. The categories are Account , Billing & Payment , Request for Information , Change , and Incident . |
subcategory | String | The subcategory name. There is one subcategory, General . |
created | String | The date and time the ticket was created. |
modified | String | The date and time the ticket was last updated. |
modifiedBy | Object | The user whom last modified the ticket, typically this is the last user to comment on the ticket. |
modifiedBy.id | String | The Rackspace Person Number (RPN) of the commenter if modified by someone within your account. This is empty if the last person to modify the ticket was a Racker. |
modifiedBy.name | String | Either the name of the account user or the first name and last initial of Racker who last modified the ticket. |
modifiedBy.roles | List | The roles assigned to the user who last modified the ticket. This is Primary , Administrative , or Technical if last modified by an account user or Racker if the ticket was last modified by Rackspace. |
modifiedBy.type | List | The type of user who last modified the ticket, this is either customer or racker . |
createdBy | Object | The user whom created the ticket. |
createdBy.id | String | The Rackspace Person Number (RPN) of the commenter if created by someone within your account. This is empty if the ticket was created by Rackspace. |
createdBy.name | String | Either the name of the account user or the first name and last initial of Racker who created the ticket. |
createdBy.roles | List | The roles assigned to the user who created the ticket. This is Primary , Administrative , or Technical if created by an account user or Racker if the ticket was created by Rackspace. |
createdBy.type | List | The type of user who created the ticket, this is either customer or racker . |
comments | List | All comments associated with the ticket. |
comments.id | String | The comment ID of the individual comment. |
comments.text | String | The text content of the comment. |
comments.created | String | The date and time the comment was created. |
comments.author | Object | Information about the author of the comment. |
comments.author.id | String | The Rackspace Person Number (RPN) of the commenter if created by someone within your account. This is empty if the ticket was created by Rackspace. |
comments.author.name | String | Either the name of the account user or the first name and last initial of Racker who created the ticket. |
comments.author.roles | List | The roles assigned to the user who created the ticket. This is Primary , Administrative , or Technical if created by an account user or Racker if the ticket was created by Rackspace. |
comments.author.type | List | The type of user who created the ticket, this is either customer or racker . |
comment.attachments | object | Attachement related to comment |
comment.attachments.filename | String | Name of the attached file |
comment.attachments.uuid | String | UUID of the attached file |
comment.attachments.upload_url | String | Upload url of the attached file it is available if request is without uuid |
comment.attachments.url | String | url of the attached file it is available if request is with uuid |
classification | String | The classification of the ticket. The classifications are Service Request , Change , and Incident . |
recipients | object | List of all recipients for notification of tickets. |
recipients.type | String | Type of recipient contact. |
recipients.value | String | recipient contact value. |
Response example
The following example shows the JSON response for the request:
{
"ticketId": "123456",
"accountId": "faws:12345",
"subject": "Help! We need more servers!",
"status": "In Progess",
"severity": "Normal",
"resources": [],
"category": "Incident",
"subcategory": "Other",
"created": "2018-04-03T16:44:27.644Z",
"modified": "2018-04-03T16:44:27.644Z",
"modifiedBy": {
"id": "12344",
"name": "Billing User",
"roles": [
"billing"
],
"type": "customer"
},
"createdBy": {
"id": "",
"name": "Rackspace R.",
"roles": [
"racker"
],
"type": "racker"
},
"comments": [
{
"text": "We are receiving a ton of traffic, we need more servers!",
"id": "170503-abc-0000001",
"author": {
"id": "2344567",
"name": "Billing User",
"roles": [
"billing"
],
"type": "customer"
},
"attachments": [
{
"uuid": "123465-storage.log",
"upload_url": "https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_9872494b-6265-40fe-a03b-502f2caca50d/c46b/c46b6c66-3619-11e8-9168-0050561a016d?temp_url_expires=1522638093&temp_url_sig=7bfb1d35ded258906e4b03c789ae36c8e5e80089",
"filename": "storage.log"
},
{
"uuid": "123465-database.log",
"upload_url": "https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_9872494b-6265-40fe-a03b-502f2caca50d/c46b/c46b6c66-3619-11e8-9168-0050561a016d?temp_url_expires=1522638093&temp_url_sig=7bfb1d35ded258906e4b03c789ae36c8e5e80089",
"filename": "database.log"
}
]
"created": "2018-04-03T16:44:27.644Z"
},
{
"text": "We are on it!",
"id": "170503-abc-0000002",
"author": {
"id": "",
"name": "Rackspace R.",
"roles": [
"racker"
],
"type": "racker"
},
"created": "2018-04-03T16:45:27.644Z"
}
],
"recipients": [
{
"type": "email",
"value": "email.com"
},
{
"type": "contact",
"value": "RPN-123-129e"
}
],
}
Response codes
This operation can have the following response codes:
Code | Name | Description |
---|---|---|
200 | Success | The request succeeded. |
429 | Too Many Requests | The application has a built-in rate limit of 1 request per minute. If you exceed this limit, you receive a 429 status code response until the cool off period has elapsed. |
Patch tickets
PATCH /tickets/{ticketId}
Content-Type: application/vnd.ticketing.v2+json
Accept: application/vnd.ticketing.v2+json
Updates the status of a ticket to ‘Closed’ or update the resources of a ticket.
A successful response returns a response code of 204, meaning the operation completed successfully. You can update your local record based upon the request that you sent, but your update is also populated by Cloud Feeds.
Note
Rackspace recommends the PATCH HTTP method. However, the PUT method is available for users with compatibility issues.
Request parameters
The request has the following URI parameters.
Name | Type | Description |
---|---|---|
ticketId | String (Required) | The ticket ID stored through the Ticketing API. |
The request has the following body parameters:
Name | Type | Description |
---|---|---|
status | String | Update the status to close the ticket. The only option is Closed . |
resources | Array | Update the resources of open ticket. This option replaces the existing resources with the request body. |
Request example
The following example shows the JSON request
-
- For updating the status of a ticket:
{
"status": "Closed"
}
-
- For updating the resources of a ticket:
This request will remove the existing resources if any exists and add the ones passed in the request body. If it’s required to keep the older resources also, need to pass them explicitly in the request body.
For e.g. If 5 resources are already present in the ticket and the now we send only 2 resources in payload, we will just keep the resources passed in payload and remove the existing ones irrespective if it’s same or different from older ones.
- For updating the resources of a ticket:
{
"resources": [
"https://staging.resources.api.rackspace.com/resources/dedicated:0168720",
"https://staging.resources.api.rackspace.com/resources/dedicated:0229128"
]
}
Response example
The following example shows the response for a response code 204 (No Content) request:
HTTP/1.1 204 No Content
Content-Length: 0
Content-Type: application/json
Date: Thu, 01 Nov 2017 21:45:47 GMT
The following example shows the JSON response for a response code 404 (Not Found) request:
{
"status": 404,
"message": "Ticket with this ID could not be found",
"faultCode": "ticketNotFound",
"moreInfo": "docs/ticketing/general-api-info/faults/#ticketNotFound"
}
Response codes
This operation can have the following response codes:
Code | Description |
---|---|
200 | The request succeeded. |
404 | The ticket was not found. |
429 | The application has a built-in rate limit of 5 requests per minute. If you exceed this limit, you receive a 429 status code response until the cool off period has elapsed. |
Post ticket comment
POST /tickets/{ticketId}/comments
Content-Type: application/vnd.ticketing.v2+json
Accept: application/vnd.ticketing.v2+json
Updates a ticket by adding a comment
A successful response returns a response code of 204, meaning the operation completed successfully. You can update your local record based upon the request you sent but your update is also populated via Cloud Feeds.
Request parameters
The request has the following URI parameters.
Name | Type | Description |
---|---|---|
ticketId | String (Required) | The ticket ID stored through the Ticketing API. |
The add comment request has the following body parameters:
Name | Type | Description |
---|---|---|
comment | Object | A comment about the issue described in the ticket. |
comment.text | String (Required) | A comment providing information about the current state of your support request |
comment.attachments | object | Attachement related to comment |
comment.attachments.filename | String | Name of the attached file |
comment.attachments.uuid | String | UUID of the attached file |
Note
To associate attachment to a comment, the User first needs to upload that attachment in the Rackspace environment. For uploading any attachment please refer Attachments
Request example
The following example shows the JSON request for adding a comment to a ticket:
{
"comment": {
"text": "Any updates on the new servers?",
"attachments": [
{
"filename": "server.log",
"uuid": "1234-server.log"
},
{
"filename": "database.log",
"uuid": "1234-database.log"
}
]
}
}
Response example
The following example shows the response for a response code 204 (No Content) request:
HTTP/1.1 204 No Content
Content-Length: 0
Content-Type: application/json
Date: Thu, 01 Nov 2017 21:45:47 GMT
The following example shows the JSON response for a response code 404 (Not found) request:
{
"status": 404,
"message": "Ticket with this ID could not be found",
"faultCode": "ticketNotFound",
"moreInfo": "docs/ticketing/general-api-info/faults/#ticketNotFound"
}
Response codes
This operation can have the following response codes:
Code | Name | Description |
---|---|---|
200 | Success | The request succeeded. |
404 | Not Found | The ticket was not found. |
429 | Too Many Requests | The application has a built-in rate limit of 5 requests per minute. If you exceed this limit, you receive a 429 status code response until the cool off period has elapsed. |