20#ifndef ORES_IAM_MESSAGING_ACCOUNT_PARTY_PROTOCOL_HPP
21#define ORES_IAM_MESSAGING_ACCOUNT_PARTY_PROTOCOL_HPP
25#include "ores.iam.api/domain/account_party.hpp"
27namespace ores::iam::messaging {
29struct account_party_key {
30 std::string account_id;
34struct get_account_parties_request {
35 using response_type =
struct get_account_parties_response;
36 static constexpr std::string_view nats_subject =
"iam.v1.account-parties.list";
41struct get_account_parties_response {
42 std::vector<ores::iam::domain::account_party> account_parties;
43 int total_available_count = 0;
46struct get_account_parties_by_account_request {
47 using response_type =
struct get_account_parties_by_account_response;
48 static constexpr std::string_view nats_subject =
"iam.v1.account-parties.by-account";
49 std::string account_id;
52struct get_account_parties_by_account_response {
53 std::vector<ores::iam::domain::account_party> account_parties;
56struct save_account_party_request {
57 using response_type =
struct save_account_party_response;
58 static constexpr std::string_view nats_subject =
"iam.v1.account-parties.save";
59 std::vector<ores::iam::domain::account_party> account_parties;
62struct save_account_party_response {
67struct delete_account_party_request {
68 using response_type =
struct delete_account_party_response;
69 static constexpr std::string_view nats_subject =
"iam.v1.account-parties.delete";
70 std::vector<account_party_key> keys;
73struct delete_account_party_response {