Get desktop application:
View/edit binary Protocol Buffers messages
Bank provides operations for interacting with bank accounts. All operations operate for the authenticated user (identified via an "authorization" request header, where the type is "token" and the credential is the customer's ID).
OpenAccount creates an account with the type and given initial deposit as its balance.
CloseAccount closes the indicated account. An account can only be closed if its balance is zero.
GetAccounts lists all accounts for the current customer.
GetTransactions streams all transactions that match the given criteria. If the given start date is not specified, transactions since beginning of time are included. Similarly, if the given end date is not specified, transactions all the way to the presnet are included.
Deposit increases the balance of an account by depositing funds into it.
Withdraw decreases the balance of an account by withdrawing funds from it.
Transfer moves money from one account to another. The source and destination accounts can be with this bank (e.g. "local" account numbers) or can be external accounts, identified by their ACH routing and account numbers.
Support provides an interactive chat service, for customers to interact with the bank's support agents. A single stream, for either of the two methods, is a stateful connection to a single "chat session". Streams are initially disconnected (not part of any session). A stream must be disconnected from a session (via customer hang up or via agent leaving a session) before it can be connected to a new one.
ChatCustomer is used by a customer-facing app to send the customer's messages to a chat session. The customer is how initiates and terminates (via "hangup") a chat session. Only customers may invoke this method (e.g. requests must include customer auth credentials).
init is used when a chat stream is not part of a chat session. This is a stream's initial state, as well as the state after a "hang_up" request is sent. This creates a new state session or resumes an existing one.
msg is used to send the customer's messages to support agents.
hang_up is used to terminate a chat session. If a stream is broken, but the session was not terminated, the client may initiate a new stream and use init to resume that session. Sessions are not terminated unless done so explicitly via sending this kind of request on the stream.
session is sent from the server when the stream is connected to a chat session. This happens after an init request is sent and the stream is connected to either a new or resumed session.
msg is sent from the server to convey agents' messages to the customer.
ChatAgent is used by an agent-facing app to allow an agent to reply to a customer's messages in a chat session. The agent may accept a chat session, which defaults to the session awaiting an agent for the longest period of time (FIFO queue).
accept is used when an agent wants to join a customer chat session. It can be used to connect to a specific session (by ID), or to just accept the session for which the customer has been waiting the longest (e.g. poll a FIFO queue of sessions awaiting a support agent). It is possible for multiple agents to be connected to the same chat session.
msg is used to send a message to the customer. It will also be delivered to any other connected support agents.
leave_session allows an agent to exit a chat session. They can always re-enter later by sending an accept message for that session ID.
accepted_session provides the detail of a chat session. The server sends this message after the agent has accepted a chat session.
msg is sent by the server when the customer, or another support agent, sends a message in stream's current session.
session_ended notifies the support agent that their currently connected chat session has been terminated by the customer.
Used in:
Used as response type in: Bank.OpenAccount
Used as field type in:
Used in:
,Used in:
,Used as response type in: Bank.Deposit, Bank.Withdraw
Used in:
,Used in:
Used in:
Used in:
Used in:
,Used in:
Used in:
, ,