Tickets

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:

NameTypeDescription
accountIdString (Required)The account for which the ticket is being created (for example hybrid:12345).
subjectString (Required)The subject line for the ticket.
categoryString (Required)The category name. The categories are Account, Billing and Payments, Request for Information, Change, and Incident.
subcategoryString (Required)The subcategory name.
severityStringThe severity of your request, please use the /accounts endpoint to determine what severities available to your account.
commentObjectThis object can be used to provide a description of your ticket.
comment.textString (Required)A detailed description of the nature of your request
comment.attachmentsobjectAttachement related to comment
comment.attachments.filenameStringName of the attached file
comment.attachments.uuidStringUUID of the attached file
resourcesStringThe URLs of the resources affected by the issue described in the ticket.
recipientsArrayList 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:

NameTypeDescription
ticketIdStringThe UUID of the ticket.
accountIdStringThe ID of the account for which the ticket is being created.
subjectStringThe subject line for the ticket.
statusStringThe status of the ticket.
severityStringThe severity of the issue. Available severities are Low, Normal, High, Urgent, and Emergency.
resourcesStringThe URLs of the resources affected by the issue described in the ticket.
categoryStringThe category name. The categories are Account, Billing & Payment, Request for Information, Change, and Incident.
subcategoryStringThe subcategory name. There is one subcategory, General.
createdStringThe date and time the ticket was created.
modifiedStringThe date and time the ticket was last updated.
modifiedByObjectThe user whom last modified the ticket, typically this is the last user to comment on the ticket.
modifiedBy.idStringThe 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.nameStringEither the name of the account user or the first name and last initial of Racker who last modified the ticket.
modifiedBy.rolesListThe 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.typeListThe type of user who last modified the ticket, this is either customer or racker.
createdByObjectThe user whom created the ticket.
createdBy.idStringThe 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.nameStringEither the name of the account user or the first name and last initial of Racker who created the ticket.
createdBy.rolesListThe 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.typeListThe type of user who created the ticket, this is either customer or racker.
commentsListAll comments associated with the ticket.
comments.idStringThe comment ID of the individual comment.
comments.textStringThe text content of the comment.
comments.createdStringThe date and time the comment was created.
comments.authorObjectInformation about the author of the comment.
comments.author.idStringThe 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.nameStringEither the name of the account user or the first name and last initial of Racker who created the ticket.
comments.author.rolesListThe 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.typeListThe type of user who created the ticket, this is either customer or racker.
comment.attachmentsobjectAttachement related to comment
comment.attachments.filenameStringName of the attached file
comment.attachments.uuidStringUUID of the attached file
comment.attachments.upload_urlStringUpload url of the attached file it is available if request is without uuid
comment.attachments.urlStringurl of the attached file it is available if request is with uuid
classificationStringThe classification of the ticket. The classifications are Service Request, Change, and Incident.
recipientsobjectList of all recipients for notification of tickets.
recipients.typeStringType of recipient contact.
recipients.valueStringrecipient 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:

CodeNameDescription
200SuccessThe request succeeded.
429Too Many RequestsThe 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.

NameTypeDescription
ticketIdString (Required)The ticket ID stored through the Ticketing API.

The request has the following body parameters:

NameTypeDescription
statusStringUpdate the status to close the ticket. The only option is Closed.
resourcesArrayUpdate the resources of open ticket. This option replaces the existing resources with the request body.

Request example

The following example shows the JSON request

    1. For updating the status of a ticket:
{
    "status": "Closed"
}
    1. 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.

{
 "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:

CodeDescription
200The request succeeded.
404The ticket was not found.
429The 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.

NameTypeDescription
ticketIdString (Required)The ticket ID stored through the Ticketing API.

The add comment request has the following body parameters:

NameTypeDescription
commentObjectA comment about the issue described in the ticket.
comment.textString (Required)A comment providing information about the current state of your support request
comment.attachmentsobjectAttachement related to comment
comment.attachments.filenameStringName of the attached file
comment.attachments.uuidStringUUID 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:

CodeNameDescription
200SuccessThe request succeeded.
404Not FoundThe ticket was not found.
429Too Many RequestsThe 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.