blob: e8bc21bab2956ddb9db3fbff01bf7812e2b91c69 [file] [log] [blame]
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;
}