mirror of
https://github.com/valitydev/damsel.git
synced 2024-11-06 09:45:21 +00:00
5e569fcaaa
* HG-116: Fix a couple of consistency and clarity issues * HG-116: Introduce JSON-like type * HG-116: Fix JSON types and introduce msgpack types * HG-116: Remove the notion of schema revision * HG-116: Introduce invoice info, better term needed * HG-116: Rename `SmthPredicate` -> `SmthDecision` * HG-116: Add missing namespace declarations * HG-116: Try to get rid of keyword conflicts * HG-116: Mention missing support for extreme floats
86 lines
3.3 KiB
Thrift
86 lines
3.3 KiB
Thrift
include "base.thrift"
|
||
include "user_interaction.thrift"
|
||
|
||
namespace java com.rbkmoney.damsel.proxy
|
||
|
||
/**
|
||
* Непрозрачное для процессинга состояние прокси, связанное с определённой сессией взаимодействия
|
||
* с третьей стороной.
|
||
*/
|
||
typedef base.Opaque ProxyState
|
||
|
||
|
||
/**
|
||
* Запрос/ответ прокси при обработке обратного вызова в рамках сессии.
|
||
*/
|
||
typedef base.Opaque Callback
|
||
typedef base.Opaque CallbackResponse
|
||
|
||
/**
|
||
* Требование прокси к процессингу, отражающее дальнейший прогресс сессии взаимодействия
|
||
* с третьей стороной.
|
||
*/
|
||
union Intent {
|
||
1: FinishIntent finish
|
||
2: SleepIntent sleep
|
||
3: SuspendIntent suspend
|
||
}
|
||
|
||
/**
|
||
* Требование завершить сессию взаимодействия с третьей стороной.
|
||
*/
|
||
struct FinishIntent {
|
||
1: required FinishStatus status
|
||
}
|
||
|
||
/**
|
||
* Статус, c которым завершилась сессия взаимодействия с третьей стороной.
|
||
*/
|
||
union FinishStatus {
|
||
/** Успешное завершение взаимодействия. */
|
||
1: Success success
|
||
/** Неуспешное завершение взаимодействия с пояснением возникшей проблемы. */
|
||
2: Failure failure
|
||
}
|
||
|
||
struct Success {}
|
||
|
||
struct Failure {
|
||
1: required string code
|
||
2: optional string description
|
||
}
|
||
|
||
/**
|
||
* Требование прервать на определённое время сессию взаимодействия, с намерением продолжить
|
||
* её потом.
|
||
*/
|
||
struct SleepIntent {
|
||
/** Таймер, определяющий когда следует продолжить взаимодействие. */
|
||
1: required base.Timer timer
|
||
}
|
||
|
||
/**
|
||
* Требование приостановить сессию взаимодействия, с продолжением по факту прихода обратного
|
||
* запроса (callback), либо с неуспешным завершением по факту истечения заданного времени
|
||
* ожидания.
|
||
*/
|
||
struct SuspendIntent {
|
||
/**
|
||
* Ассоциация, по которой обработчик обратного запроса сможет идентифицировать сессию
|
||
* взаимодействия с третьей стороной, чтобы продолжить по ней взаимодействие.
|
||
*/
|
||
1: required base.Tag tag
|
||
|
||
/**
|
||
* Таймер, определяющий время, в течение которого процессинг ожидает обратный запрос.
|
||
* Если не задан явно, время ожидания определяется на стороне процессинга.
|
||
*/
|
||
2: optional base.Timer timeout
|
||
|
||
/**
|
||
* Взаимодействие с пользователем, в случае если таковое необходимо для продолжения прогресса
|
||
* в рамках сессии взаимодействия.
|
||
*/
|
||
3: optional user_interaction.UserInteraction user_interaction
|
||
}
|