damsel/proto/proxy.thrift
Andrew Mayorov 5e569fcaaa HG-116: Fix a couple of consistency and clarity issues (#97)
* 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
2016-12-13 20:23:13 +03:00

86 lines
3.3 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.

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
}