| syntax = "proto3"; |
| |
| package cast.v2; |
| |
| import "google/protobuf/empty.proto"; |
| import "cast/cast_core/api/v2/cast_message.proto"; |
| import "cast/cast_core/api/v2/url_rewrite.proto"; |
| import "cast/cast_core/api/web/message_channel.proto"; |
| |
| option optimize_for = LITE_RUNTIME; |
| |
| // Cast application Service |
| // |
| // This service is implemented by the Runtime and represents services |
| // specific to a Cast application. |
| service RuntimeApplicationService { |
| // Notifies the runtime that a new Cast V2 virtual connection has been opened. |
| rpc OnVirtualConnectionOpen(VirtualConnectionInfo) |
| returns (google.protobuf.Empty); |
| |
| // Notifies the runtime that a Cast V2 virtual connection has been closed. |
| rpc OnVirtualConnectionClosed(VirtualConnectionInfo) |
| returns (google.protobuf.Empty); |
| |
| // Sends a Cast message to the runtime. |
| rpc SendCastMessage(CastMessage) returns (CastMessageResponse); |
| |
| // Set the URL rewrite rules that the Runtime will use to contact the MSP |
| // This is called when the rewrite rules are changed |
| // A non streaming API for simplicity |
| rpc SetUrlRewriteRules(SetUrlRewriteRulesRequest) |
| returns (SetUrlRewriteRulesResponse); |
| |
| // "MessageConnectorService" provides the transport for MessagePorts. |
| // MessagePorts are connected using other services (e.g. ApiBindings), then |
| // registered with the MessageConnectorService to communicate over IPC |
| rpc PostMessage(cast.web.Message) returns (cast.web.MessagePortStatus); |
| } |
| |
| // Request to set the URL rewrite rules on the runtime application. |
| message SetUrlRewriteRulesRequest { |
| // URL rewrite rules. |
| UrlRequestRewriteRules rules = 1; |
| } |
| |
| message SetUrlRewriteRulesResponse {} |
| |
| // Request by the sender to open or close a virtual connection to the Cast |
| // runtime. |
| message VirtualConnectionInfo { |
| // The source of the virtual connection request. Connections from the |
| // sender platform use an id of 'sender-0' and connections from applications |
| // use a unique ID. |
| string source_id = 1; |
| // The destination of the connection request. Connections to the Cast |
| // receiver platform use an id of 'receiver-0' and connections to applications |
| // use the Cast session id. |
| string destination_id = 2; |
| } |