damsel/proto/withdrawals_provider_adapter.thrift
Evgeny Levenets 36907b0e50
DC-83: add RBKWallet to party management (#325)
* DC-83: add RBKWallet to party management (#311)

* DC-83: new exceptions for wallets & contractors (#330)

* CDS-57: introduce identity storage service (#338)

* HOOK-86: Hooks for wallets (#337)

* HG-364 CDS-57 Rename indentity docs erlang namespace. (#339)

Renamig is caused by review rbkmoney/cds#55

* HG-364 CDS-57 Simplify cds ident protocol. Move mask functions to API (#340)

* HG-371: Introduce simplistic withdrawal processing (#333)

* HG-371: add cumulative limits (#341)

* add turnover limits to wallet service terms
* add some thoughts in form of TODOs

* Add rbkmoney to DigitalWalletProvider enum (#343)

* DC-92: add ability to compute terms for wallet (#344)
2018-07-17 17:32:10 +03:00

110 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.

include "base.thrift"
include "msgpack.thrift"
include "domain.thrift"
include "withdrawals_domain.thrift"
namespace java com.rbkmoney.damsel.withdrawals.provider_adapter
namespace erlang wthadpt
typedef domain.Failure Failure
/**
* Adapter options.
*/
typedef domain.ProxyOptions Options
/**
* Непрозрачное для процессинга состояние адаптера, связанное с определённой сессией взаимодействия с
* третьей стороной.
*/
typedef msgpack.Value InternalState
/**
* Требование адаптера к процессингу, отражающее дальнейший прогресс сессии взаимодействия с третьей
* стороной.
*/
union Intent {
1: FinishIntent finish
2: SleepIntent sleep
}
/**
* Требование завершить сессию взаимодействия с третьей стороной.
*/
struct FinishIntent {
1: required FinishStatus status
}
/**
* Статус, c которым завершилась сессия взаимодействия с третьей стороной.
*/
union FinishStatus {
/** Успешное завершение взаимодействия. */
1: Success success
/** Неуспешное завершение взаимодействия с пояснением возникшей проблемы. */
2: Failure failure
}
struct Success {
1: required domain.TransactionInfo trx_info
}
/**
* Требование прервать на определённое время сессию взаимодействия, с намерением продолжить её потом.
*/
struct SleepIntent {
/** Таймер, определяющий когда следует продолжить взаимодействие. */
1: required base.Timer timer
}
///
/**
* Данные вывода, необходимые для обращения к провайдеру.
*/
struct Withdrawal {
1: required base.ID id
2: required Cash body
3: required Destination destination
4: optional Identity sender
5: optional Identity receiver
}
typedef withdrawals_domain.Destination Destination
typedef withdrawals_domain.Identity Identity
struct Cash {
1: required domain.Amount amount
2: required domain.Currency currency
}
///
/**
* Результат обращения к адаптеру в рамках сессии.
*
* В результате обращения адаптер может решить, следует ли:
* - завершить сессию взаимодействия с провайдером (FinishIntent); или
* - просто приостановить на определённое время (SleepIntent), обновив своё состояние, которое
* вернётся к нему в последующем запросе.
*/
struct ProcessResult {
1: required Intent intent
2: optional InternalState next_state
}
service Adapter {
/**
* Запрос к адаптеру на проведение взаимодействия с провайдером в рамках платежной сессии.
*/
ProcessResult ProcessWithdrawal (
1: Withdrawal withdrawal
2: InternalState state
3: Options opts
)
throws (
)
}