syntax = "proto3"; package ledger.v1; import "base/v1/msg.proto"; import "ledger/v1/msg.proto"; service GeneralLedgerService { rpc GetOperatingMode(base.v1.Empty) returns (OperatingModeResponse); // Operator-only; requires x-admin-token and an optimistic revision. rpc SetOperatingMode(SetOperatingModeRequest) returns (OperatingModeResponse); // Trusted internal execution; requires x-admin-token and GL_ONLY mode. rpc PostInternalJournal(AppendJournalRequest) returns (AppendJournalResponse); rpc GetUserBalances(GetUserBalancesRequest) returns (GetUserBalancesResponse); rpc Health(base.v1.Empty) returns (HealthResponse); rpc AppendJournal(AppendJournalRequest) returns (AppendJournalResponse); rpc AppendTransactionEvent(AppendTransactionEventRequest) returns (AppendTransactionEventResponse); rpc GetJournal(GetJournalRequest) returns (Journal); rpc ListEntries(ListEntriesRequest) returns (ListEntriesResponse); rpc GetBalance(GetBalanceRequest) returns (GetBalanceResponse); rpc ReplayJournals(ReplayJournalsRequest) returns (ReplayJournalsResponse); rpc EnqueueSettlement(EnqueueSettlementRequest) returns (EnqueueSettlementResponse); rpc GetSettlement(GetSettlementRequest) returns (Settlement); // Restricted operator command. Requires the configured x-admin-token metadata. rpc RetrySettlement(RetrySettlementRequest) returns (RetrySettlementResponse); // Operator-reviewed, terminal dismissal. Does not confirm or reverse payment. // Requires x-admin-token and a recorded reason; only unlocked failed settlements. rpc IgnoreSettlement(IgnoreSettlementRequest) returns (IgnoreSettlementResponse); }