2016-03-29 11:42:47 +00:00
|
|
|
|
/*
|
2016-03-31 15:38:04 +00:00
|
|
|
|
* Базовые, наиболее общие определения
|
2016-03-29 11:42:47 +00:00
|
|
|
|
*/
|
|
|
|
|
|
2016-06-21 15:45:09 +00:00
|
|
|
|
namespace java com.rbkmoney.damsel.base
|
|
|
|
|
|
2016-03-31 15:38:04 +00:00
|
|
|
|
/** Идентификатор */
|
2016-06-02 11:38:27 +00:00
|
|
|
|
typedef string ID
|
|
|
|
|
|
2016-08-05 08:28:00 +00:00
|
|
|
|
/** Пространство имён */
|
|
|
|
|
typedef string Namespace
|
|
|
|
|
|
2016-06-15 10:21:44 +00:00
|
|
|
|
/** Идентификатор некоторого события */
|
|
|
|
|
typedef i64 EventID
|
|
|
|
|
|
2016-06-02 11:38:27 +00:00
|
|
|
|
/** Непрозрачный для участника общения набор данных */
|
|
|
|
|
typedef binary Opaque
|
2016-03-31 15:38:04 +00:00
|
|
|
|
|
2016-04-01 14:54:20 +00:00
|
|
|
|
/**
|
2016-08-10 12:06:59 +00:00
|
|
|
|
* Отметка во времени согласно RFC 3339.
|
2016-04-01 14:54:20 +00:00
|
|
|
|
*
|
|
|
|
|
* Строка должна содержать дату и время в UTC в следующем формате:
|
|
|
|
|
* `2016-03-22T06:12:27Z`.
|
|
|
|
|
*/
|
2016-06-02 11:38:27 +00:00
|
|
|
|
typedef string Timestamp
|
|
|
|
|
|
|
|
|
|
/** Отображение из строки в строку */
|
|
|
|
|
typedef map<string, string> StringMap
|
2016-03-31 15:38:04 +00:00
|
|
|
|
|
2016-04-19 15:59:22 +00:00
|
|
|
|
/** Рациональное число. */
|
|
|
|
|
struct Rational {
|
|
|
|
|
1: required i64 p
|
|
|
|
|
2: required i64 q
|
|
|
|
|
}
|
|
|
|
|
|
2016-03-31 15:38:04 +00:00
|
|
|
|
/** Отрезок времени в секундах */
|
2016-06-02 11:38:27 +00:00
|
|
|
|
typedef i32 Timeout
|
2016-03-31 15:38:04 +00:00
|
|
|
|
|
|
|
|
|
/** Значение ассоциации */
|
2016-06-02 11:38:27 +00:00
|
|
|
|
typedef string Tag
|
2016-03-31 15:38:04 +00:00
|
|
|
|
|
|
|
|
|
/** Критерий остановки таймера */
|
|
|
|
|
union Timer {
|
|
|
|
|
/** Отрезок времени, после истечения которого таймер остановится */
|
2016-06-02 11:38:27 +00:00
|
|
|
|
1: Timeout timeout
|
2016-03-31 15:38:04 +00:00
|
|
|
|
/** Отметка во времени, при пересечении которой таймер остановится */
|
2016-06-02 11:38:27 +00:00
|
|
|
|
2: Timestamp deadline
|
2016-03-31 15:38:04 +00:00
|
|
|
|
}
|
|
|
|
|
|
2016-05-24 13:15:11 +00:00
|
|
|
|
/** Общий успех */
|
|
|
|
|
struct Ok {
|
|
|
|
|
}
|
|
|
|
|
|
2016-03-31 15:38:04 +00:00
|
|
|
|
/** Общая ошибка */
|
2016-03-29 11:42:47 +00:00
|
|
|
|
struct Error {
|
2016-03-31 15:38:04 +00:00
|
|
|
|
/** Уникальный признак ошибки, пригодный для обработки машиной */
|
2016-06-02 11:38:27 +00:00
|
|
|
|
1: required string code
|
2016-03-31 15:38:04 +00:00
|
|
|
|
/** Описание ошибки, пригодное для восприятия человеком */
|
2016-06-02 11:38:27 +00:00
|
|
|
|
2: optional string description
|
2016-03-29 11:42:47 +00:00
|
|
|
|
}
|
|
|
|
|
|
2016-03-31 15:38:04 +00:00
|
|
|
|
/** Общее исключение */
|
2016-03-29 11:42:47 +00:00
|
|
|
|
exception Failure {
|
2016-03-31 15:38:04 +00:00
|
|
|
|
/** Ошибка, которая привела к возникновению исключения */
|
2016-05-24 13:41:25 +00:00
|
|
|
|
//Нельзя назвать поле `error` из-за особенностей генерации thrift Go - приводит к одинаковым именам для функции и поля структуры
|
2016-06-02 11:38:27 +00:00
|
|
|
|
1: required Error e
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Исключение, сигнализирующее о возникновение транзиентной проблемы, которая с высокой
|
|
|
|
|
* вероятностью не повторится при последующих попытках
|
|
|
|
|
*/
|
|
|
|
|
exception TryLater {
|
|
|
|
|
/** Транзиентная ошибка, которая привела к возникновению исключения */
|
|
|
|
|
1: required Error e
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Исключение, сигнализирующее о непригодных с точки зрения бизнес-логики входных данных
|
|
|
|
|
*/
|
|
|
|
|
exception InvalidRequest {
|
|
|
|
|
/** Список пригодных для восприятия человеком ошибок во входных данных */
|
|
|
|
|
1: required list<string> errors
|
2016-03-29 11:42:47 +00:00
|
|
|
|
}
|
2016-04-01 14:54:20 +00:00
|
|
|
|
|
|
|
|
|
/** Исключение, сигнализирующее об отсутствии объекта или процесса */
|
|
|
|
|
exception NotFound {}
|