syntax = "proto3"; package komp_ac.currency_conversion; service CurrencyConversion { rpc ConvertCurrency(ConvertCurrencyRequest) returns (ConvertCurrencyResponse); rpc ResolveRate(ResolveRateRequest) returns (ResolvedFxRate); rpc ListRequiredCurrencies(ListRequiredCurrenciesRequest) returns (ListRequiredCurrenciesResponse); } message ConvertCurrencyRequest { string amount = 1; string source_currency = 2; string target_currency = 3; string source = 4; string as_of_date = 5; } message ResolveRateRequest { string source_currency = 1; string target_currency = 2; string source = 3; string as_of_date = 4; } message FxRateComponent { string currency = 1; string units_per_base = 2; } message ResolvedFxRate { string source_currency = 1; string target_currency = 2; string rate = 3; string effective_date = 4; string source = 5; int64 rate_set_id = 6; int32 revision = 7; string base_currency = 8; repeated FxRateComponent components = 9; } message ConvertCurrencyResponse { string amount = 1; string currency = 2; ResolvedFxRate resolved_rate = 3; } message ListRequiredCurrenciesRequest {} message ListRequiredCurrenciesResponse { repeated string currencies = 1; }