syntax = "proto3";

package go.micro.client;

// Micro is the micro client interface
service Micro {
	// Call allows a single request to be made
	rpc Call(Request) returns (Response) {};
	// Stream is a bidirectional stream
	rpc Stream(stream Request) returns (stream Response) {};
	// Publish publishes a message and returns an empty Message
	rpc Publish(Message) returns (Message) {};
}

message Request {
	string service = 1;
	string endpoint = 2;
	string content_type = 3;
	bytes body = 4;
}

message Response {
	bytes body = 1;
}

message Message {
	string topic = 1;
	string content_type = 2;
	bytes body = 3;
}