damsel/proto/base.thrift
Andrew Mayorov fc2b572995 HG-60: Introduce a notion of user interaction and related events (#58)
* HG-60: Introduce a notion of user interaction and related events

* HG-60: Declare required namespaces

* HG-60: Imply more general templates

* HG-60: Simplify HTTP request significantly
2016-09-23 23:54:14 +03:00

95 lines
3.4 KiB
Thrift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Базовые, наиболее общие определения
*/
namespace java com.rbkmoney.damsel.base
/** Идентификатор */
typedef string ID
/** Пространство имён */
typedef string Namespace
/** Идентификатор некоторого события */
typedef i64 EventID
/** Непрозрачный для участника общения набор данных */
typedef binary Opaque
/** Набор данных, подлежащий интерпретации согласно типу содержимого. */
struct Content {
/** Тип содержимого, согласно [RFC2046](https://www.ietf.org/rfc/rfc2046) */
1: required string type
2: required binary data
}
/**
* Отметка во времени согласно RFC 3339.
*
* Строка должна содержать дату и время в 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
}
/** Исключение, сигнализирующее об отсутствии объекта или процесса */
exception NotFound {}