damsel/proto/base.thrift

88 lines
3.1 KiB
Thrift
Raw Normal View History

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