Unfuddle API: Attachments

Introduction top

Attachments represent a file that has been uploaded to a Message, Ticket, Comment or Notebook.

Updating, downloading and deleting attachments works as with other resources in the Unfuddle API. However, note that uploading attachments is a two step process. First, you must upload a file to the API, which will return to you a file upload key. This file upload key is then referenced when creating an attachment on a Message or Ticket.

Please note that the file upload key is only valid for a maximum of 30 minutes. If the key is not used to create an attachment within this 30 minute window, the uploaded file is permanently purged from the system.

Attachment Upload top

A file must first be uploaded to the Unfuddle API before it can be attached to a Message or Ticket.

URL:
/api/v1/projects/{id}/messages/{id}/attachments/upload
[POST]
/api/v1/projects/{id}/messages/{id}/comments/{id}/attachments/upload
[POST]
/api/v1/projects/{id}/tickets/{id}/attachments/upload
[POST]
/api/v1/projects/{id}/tickets/{id}/comments/{id}/attachments/upload
[POST]
/api/v1/projects/{id}/notebooks/{id}/attachments/upload
[POST]
Response Formats:
XML, JSON
Response Body:
<?xml version="1.0" encoding="UTF-8"?>
<upload><key> <!-- i.e. 'a7478121db112c8d50bc6e90dec9b0ff' --> </key></upload>
Example:
curl -i -u username:password -X POST \
  -H 'Accept: application/xml' \
  -H 'Content-Type: application/octet-stream' \
  -T /home/david/product_specification_v1.doc \
  http://mysubdomain.unfuddle.com/api/v1/projects/155/messages/10534/attachments/upload

Attachments top

The collection represents all Attachments for the given Message, Ticket or Notebook.

URL:
/api/v1/projects/{id}/messages/{id}/attachments
[GET, POST]
/api/v1/projects/{id}/messages/{id}/attachments/{id}
[GET, PUT, DELETE]
/api/v1/projects/{id}/messages/{id}/comments/{id}/attachments
[GET, POST]
/api/v1/projects/{id}/messages/{id}/comments/{id}/attachments/{id}
[GET, PUT, DELETE]
/api/v1/projects/{id}/tickets/{id}/attachments
[GET, POST]
/api/v1/projects/{id}/tickets/{id}/attachments/{id}
[GET, PUT, DELETE]
/api/v1/projects/{id}/tickets/{id}/comments/{id}/attachments
[GET, POST]
/api/v1/projects/{id}/tickets/{id}/comments/{id}/attachments/{id}
[GET, PUT, DELETE]
/api/v1/projects/{id}/notebooks/{id}/attachments
[GET, POST]
/api/v1/projects/{id}/notebooks/{id}/attachments/{id}
[GET, PUT, DELETE]
Response Formats:
XML, JSON
Request/Response Body:
See Attachment Data Model
Example:
curl -i -u username:password -X POST \
  -H 'Accept: application/xml' \
  -H 'Content-Type: application/xml' \
  -d '<attachment><filename>product_specification_v1.doc</filename><content-type>application/octet-stream</content-type><upload><key>0847a19e8147214cf9c0a036c1918988</key></upload></attachment>' \
  http://mysubdomain.unfuddle.com/api/v1/projects/155/messages/10534/attachments.xml

Attachment Download top

Downloads the specified attachment.

URL:
/api/v1/projects/{id}/messages/{id}/attachments/{id}/download
[GET]
/api/v1/projects/{id}/messages/{id}/comments/{id}/attachments/{id}/download
[GET]
/api/v1/projects/{id}/tickets/{id}/attachments/{id}/download
[GET]
/api/v1/projects/{id}/tickets/{id}/comments/{id}/attachments/{id}/download
[GET]
/api/v1/projects/{id}/notebooks/{id}/attachments/{id}/download
[GET]
Response Formats:
Content-type is as specified in the Attachment data model.
Example:
curl -i -u username:password -X GET \
http://mysubdomain.unfuddle.com/api/v1/projects/155/messages/10534/attachments/434/download