Программные интерфейсы (API)

REST API

 /*
 * Общие фильтры, который можно использовать для любой сущности
 * Filters:
 *    extended - преобразовать ссылки в json-объекты, например, чтобы узнать Email автора пожелания
 *    updatedAfter - получить записи измененные после updatedAfter (формат: YYYY-MM-DD HH:MM:SS, временная зона UTC+0)
 *    updatedBefore - получить записи измененные до updatedBefore (формат: YYYY-MM-DD HH:MM:SS, временная зона UTC+0)
 *    createdAfter - получить записи созданные после createdAfter (формат: YYYY-MM-DD HH:MM:SS, временная зона UTC+0)
 *    createdBefore - получить записи созданные до createdBefore (формат: YYYY-MM-DD HH:MM:SS, временная зона UTC+0)
 */
 
 /* 
  * Routes: /pm/<project-code>/api/v1/issues, /pm/<project-code>/api/v1/issues/{id}
  * Methods: GET, POST, PUT, DELETE
  * Formats: json
  * Filters: 
  *    in - получить записи с идентификаторами, перечисленными через запятую, например, /pm/my/api/v1/issues?in=1,2,3
  *    state - получить записи со статусами, системные имена которых перечислены через запятую, например, /pm/my/api/v1/issues?state=planned
  *    executor - email пользователя, на которого назначены пожелания или iam для фильтрации по авторизованному пользователю, например, /pm/my/api/v1/issues?executor=iam
  */
 public class Issue
 {
 	/* Идентификатор объекта */
 	public string Id;
 	/* Название пожелания */
 	public string Caption;
 	/* Описание пожелания */
 	public string Description;
 	/* Идентификатор типа пожелания */
 	public string Type;
 	/* Приоритет пожелания {1,2,3,4,5} */
 	public string Priority;
 	/* Оценка трудоемкости */
 	public string Estimation;
 	/* Идентификатор функции */
 	public string Function;
 	/* Исполнитель пожелания (при отключенных задачах), идентификатор пользователя в системе */
 	public string Owner;
 	/* Идентификатор релиза */
 	public string PlannedRelease;
 	/* Автор пожелания, идентификатор пользователя в системе */
 	public string Author;
 	/* Дата начала работы над пожеланием [YYYY-MM-DD hh:mm:ss] */
 	public string StartDate;
 	/* Дата окончания работы над пожеланием [YYYY-MM-DD hh:mm:ss] */
 	public string FinishDate;
 	/* Номер версии, в которой обнаружена ошибка */
 	public string SubmittedVersion;
 	/* Номер версии, в которой выполнено пожелание */
 	public string ClosedInVersion;
 	/* Порядковый номер пожелания */
 	public string OrderNum;
 	/* Дата создания записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordCreated;
 	/* Дата последнего изменения записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordModified;
 	/* Ссылочное имя состояния, в котором находится пожелание (readonly) */
 	public string State;
 }
 
 /* 
  * Routes: /pm/<project-code>/api/v1/issues/{issue-id}/attachments, /pm/<project-code>/api/v1/issues/{issue-id}/attachments/{id}
  * Methods: GET, POST, PUT, DELETE
  * Formats: json
  */
 public class IssueAttachment
 {
 	/* Идентификатор объекта */
 	public string Id;
 	/* MIME-тип приложения */
 	public string FileMime;
 	/* Имя файла приложения */
 	public string FileExt;
 	/* Содержимое файла в кодировке Base64 */
 	public string File;
 	/* Дата создания записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordCreated;
 	/* Дата последнего изменения записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordModified;
 }
 
 /* 
  * Routes: /pm/<project-code>/api/v1/issues/{issue-id}/comments, /pm/<project-code>/api/v1/issues/{issue-id}/comments/{id}
  * Methods: GET, POST, PUT, DELETE
  * Formats: json
  */
 public class IssueComment
 {
 	/* Идентификатор объекта */
 	public string Id;
 	/* Текст комментария */
 	public string Caption;
 	/* Ид пользователя, автора комментария */
 	public string AuthorId;
 	/* Дата создания записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordCreated;
 	/* Дата последнего изменения записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordModified;
 }
 
 /* 
  * Routes: /pm/<project-code>/api/v1/issues/{issue-id}/hours, /pm/<project-code>/api/v1/issues/{issue-id}/hours/{id}
  * Methods: GET, POST, PUT, DELETE
  * Formats: json
  */
 public class IssueHour
 {
 	/* Идентификатор объекта */
 	public string Id;
 	/* Пояснения к списанному времени */
 	public string Description;
 	/* Ид пожелания, по которому списано время */
 	public string Task;
 	/* Дата, к которой относится списанное время */
 	public string ReportDate;
 	/* Количество списанных часов */
 	public string Capacity;
 	/* Дата создания записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordCreated;
 	/* Дата последнего изменения записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordModified;
 }
 
 /* 
  * Routes: /pm/<project-code>/api/v1/tasks, /pm/<project-code>/api/v1/tasks/{id}
  * Methods: GET, POST, PUT, DELETE
  * Formats: json
  * Filters: 
  *    in - получить записи с идентификаторами, перечисленными через запятую, например, /pm/my/api/v1/tasks?in=1,2,3
  *    state - получить записи со статусами, системные имена которых перечислены через запятую, например, /pm/my/api/v1/tasks?state=planned
  *    executor - email пользователя, на которого назначены пожелания или iam для фильтрации по авторизованному пользователю, например, /pm/my/api/v1/issues?executor=iam
  */
 public class Task
 {
 	/* Идентификатор объекта */
 	public string Id;
 	/* Краткое описание задачи */
 	public string Caption;
 	/* Идентификатор итерации */
 	public string Release;
 	/* Идентификатор связанного пожелания */
 	public string ChangeRequest;
 	/* Идентификатор типа задачи */
 	public string TaskType;
 	/* Приоритет пожелания {1,...} */
 	public string Priority;
 	/* Плановая трудоемкость, ч. */
 	public string Planned;
 	/* Фактическая трудоемкость, ч. */
 	public string Fact;
 	/* Оставшаяся трудоемкость, ч. */
 	public string LeftWork;
 	/* Исполнитель задачи, идентификатор пользователя в системе */
 	public string Assignee;
 	/* Дата начала работы над задачей [YYYY-MM-DD hh:mm:ss] */
 	public string StartDate;
 	/* Дата окончания работы над задачей [YYYY-MM-DD hh:mm:ss] */
 	public string FinishDate;
 	/* Порядковый номер задачи */
 	public string OrderNum;
 	/* Дата создания записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordCreated;
 	/* Дата последнего изменения записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordModified;
 	/* Ссылочное имя состояния, в котором находится задача (readonly) */
 	public string State;
 }
 
 /* 
  * Routes: /pm/<project-code>/api/v1/tasks/{task-id}/attachments, /pm/<project-code>/api/v1/tasks/{task-id}/attachments/{id}
  * Methods: GET, POST, PUT, DELETE
  * Formats: json
  */
 public class TaskAttachment
 {
 	/* Идентификатор объекта */
 	public string Id;
 	/* MIME-тип приложения */
 	public string FileMime;
 	/* Имя файла приложения */
 	public string FileExt;
 	/* Содержимое файла в кодировке Base64 */
 	public string File;
 	/* Дата создания записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordCreated;
 	/* Дата последнего изменения записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordModified;
 }
 
 /* 
  * Routes: /pm/<project-code>/api/v1/tasks/{task-id}/comments, /pm/<project-code>/api/v1/tasks/{task-id}/comments/{id}
  * Methods: GET, POST, PUT, DELETE
  * Formats: json
  */
 public class TaskComment
 {
 	/* Идентификатор объекта */
 	public string Id;
 	/* Текст комментария */
 	public string Caption;
 	/* Ид пользователя, автора комментария */
 	public string AuthorId;
 	/* Дата создания записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordCreated;
 	/* Дата последнего изменения записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordModified;
 }
 
 /* 
  * Routes: /pm/<project-code>/api/v1/tasks/{task-id}/hours, /pm/<project-code>/api/v1/tasks/{task-id}/hours/{id}
  * Methods: GET, POST, PUT, DELETE
  * Formats: json
  */
 public class TaskHour
 {
 	/* Идентификатор объекта */
 	public string Id;
 	/* Пояснения к списанному времени */
 	public string Description;
 	/* Ид задачи, по которой списано время */
 	public string Task;
 	/* Дата, к которой относится списанное время */
 	public string ReportDate;
 	/* Количество списанных часов */
 	public string Capacity;
 	/* Дата создания записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordCreated;
 	/* Дата последнего изменения записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordModified;
 }
 
 /* 
  * Routes: /pm/<project-code>/api/v1/builds, /pm/<project-code>/api/v1/builds/{id}
  * Methods: GET, POST, PUT, DELETE
  * Formats: json
  */
 public class Build
 {
 	/* Идентификатор объекта */
 	public string Id;
 	/* Номер версии сборки */
 	public string Caption;
 	/* Описание сборки */
 	public string Description;
 	/* Состояние сборки {inprogress,ready,failed,deployed} */
 	public string State;
 	/* Идентификатор релиза */
 	public string Release;
 	/* Номер коммита для автоматического обновления поля "Выполнено в версии" у пожеланий */
 	public string BuildRevision;
 	/* Название приложения, к которому относится сборка */
 	public string Application;
 	/* Дата создания записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordCreated;
 	/* Дата последнего изменения записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordModified;
 }
 
 /* 
  * Route: /pm/<project-code>/api/v1/iterations, /pm/<project-code>/api/v1/iterations/{id}
  * Methods: GET, POST, PUT, DELETE
  * Formats: json
  * Filters: 
 *     filter - укажите current чтобы получить текущие итерации
  */
 public class Iteration
 {
 	/* Идентификатор объекта */
 	public string Id;
 	/* Номер итерации */
 	public string ReleaseNumber;
 	/* Принадлежность к релизу */
 	public string Version;
 	/* Скорость итерации (readonly) */
 	public string Velocity;
 	/* Плановая дата начала итерации [YYYY-MM-DD hh:mm:ss] */
 	public string StartDate;
 	/* Плановая дата окончания итерации [YYYY-MM-DD hh:mm:ss] */
 	public string FinishDate;
 	/* Оценка даты начала итерации [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string EstimatedStartDate;
 	/* Оценка даты окончания итерации [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string EstimatedFinishDate;
 	/* Дата создания записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordCreated;
 	/* Дата последнего изменения записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordModified;
 }
 
 /* 
  * Route: /pm/<project-code>/api/v1/releases, /pm/<project-code>/api/v1/releases/{id}
  * Methods: GET, POST, PUT, DELETE
  * Formats: json
  */
 public class Release
 {
 	/* Идентификатор объекта */
 	public string Id;
 	/* Номер релиза */
 	public string Caption;
 	/* Описание релиза */
 	public string Description;
 	/* Начальная скорость релиза */
 	public string InitialVelocity;
 	/* Скорость релиза (readonly) */
 	public string Velocity;
 	/* Плановая дата начала итерации [YYYY-MM-DD hh:mm:ss] */
 	public string StartDate;
 	/* Плановая дата окончания итерации [YYYY-MM-DD hh:mm:ss] */
 	public string FinishDate;
 	/* Оценка даты начала итерации [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string EstimatedStartDate;
 	/* Оценка даты окончания итерации [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string EstimatedFinishDate;
 	/* Дата создания записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordCreated;
 	/* Дата последнего изменения записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordModified;
 }
 
 /* 
  * Routes: /pm/<project-code>/api/v1/changes?class={classes}&date={YYYY-MM-DD}&granularity={day|hour}, /pm/<project-code>/api/v1/changes/{id}
  * Methods: GET, POST, PUT, DELETE
  * Formats: json
  * Filters: 
  *     class - получить изменения по сущностям, классы которых перечислены через запятую в строке classes,
  *     date - получить изменения на дату,
  *     granularity - получить изменения с указанной гранулярностью
  */
 public class Change
 {
 	/* Идентификатор объекта */
 	public string Id;
 	/* Вид изменения: added, modified, deleted, commented */
 	public string ChangeKind;
 	/* Название измененного объекта */
 	public string Caption;
 	/* Идентификатор измененного объекта */
 	public string ObjectId;
 	/* Название класса измененного объекта */
 	public string ClassName;
 	/* Список изменившихся атрибутов через запятую */
 	public string Attributes;
 	/* Содержание изменения в виде текстового описания*/
 	public string Content;
 	/* Автор изменения, идентификатор пользователя в системе */
 	public string SystemUser;
 	/* Дата создания записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordCreated;
 	/* Дата последнего изменения записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordModified;
 }
 
 /* 
  * Routes: /pm/<project-code>/api/v1/bugs, /pm/<project-code>/api/v1/issues/{id}
  * Methods: GET, POST, PUT, DELETE
  * Formats: json
  */
 public class Bug
 {
 	/* Идентификатор объекта */
 	public string Id;
 	/* Название пожелания */
 	public string Caption;
 	/* Описание пожелания */
 	public string Description;
 	/* Приоритет пожелания {1,2,3,4,5} */
 	public string Priority;
 	/* Идентификатор функции */
 	public string Function;
 	/* Номер версии, в которой обнаружена ошибка */
 	public string SubmittedVersion;
 	/* Дата создания записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordCreated;
 	/* Дата последнего изменения записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordModified;
 }
 
 /* 
  * Routes: /pm/<project-code>/api/v1/requirements, /pm/<project-code>/api/v1/requirements/{id}
  * Methods: GET, POST, PUT, DELETE
  * Formats: json
  */
 public class Requirement
 {
 	/* Идентификатор объекта */
 	public string Id;
 	/* Название требования */
 	public string Caption;
 	/* Содержание требования */
 	public string Content;
 	/* Идентификатор родительского требования (для объединения в документ) */
 	public string ParentPage;
 	/* Автор требования (идентификатор или объект типа Пользователь) */
 	public string Author;
 	/* Состояние требования */
 	public string State;
 	/* Тип требования (идентификатор или объект)*/
 	public string PageType;
 	/* Затраченное время, ч. */
 	public string Fact;
 	/* Дата создания записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordCreated;
 	/* Дата последнего изменения записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordModified;
 }
 
 /* 
  * Routes: /pm/<project-code>/api/v1/requirements/{requirement-id}/attachments, /pm/<project-code>/api/v1/requirements/{requirement-id}/attachments/{id}
  * Methods: GET, POST, PUT, DELETE
  * Formats: json
  */
 public class RequirementAttachment
 {
 	/* Идентификатор объекта */
 	public string Id;
 	/* MIME-тип приложения */
 	public string ContentMime;
 	/* Имя файла приложения */
 	public string ContentExt;
 	/* Содержимое файла в кодировке Base64 */
 	public string Content;
 	/* Дата создания записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordCreated;
 	/* Дата последнего изменения записи [YYYY-MM-DD hh:mm:ss] (readonly) */
 	public string RecordModified;
 }

Аутентификация

Пример использования на JavaScript

Пример использования из консоли

Пример использования на C#