20#ifndef ORES_IAM_MESSAGING_SESSION_PROTOCOL_HPP
21#define ORES_IAM_MESSAGING_SESSION_PROTOCOL_HPP
26#include "ores.iam.api/domain/session.hpp"
28namespace ores::iam::messaging {
30struct list_sessions_request {
31 using response_type =
struct list_sessions_response;
32 static constexpr std::string_view nats_subject =
"iam.v1.sessions.list";
33 std::string account_id;
38struct list_sessions_response {
39 std::vector<ores::iam::domain::session> sessions;
43struct get_active_sessions_request {
44 using response_type =
struct get_active_sessions_response;
45 static constexpr std::string_view nats_subject =
"iam.v1.sessions.active";
48struct get_active_sessions_response {
49 std::vector<ores::iam::domain::session> sessions;
52struct get_session_statistics_request {
53 std::string account_id;
54 std::chrono::system_clock::time_point start_time;
55 std::chrono::system_clock::time_point end_time;
58struct get_session_statistics_response {
59 std::vector<ores::iam::domain::session_statistics> statistics;