force-pubsub 0.2.0

Salesforce Pub/Sub API (gRPC) client for force-rs
Documentation
syntax = "proto3";

package eventbus.v1;

option java_package = "com.salesforce.eventbus.protobuf";

service PubSub {
    rpc GetTopic(TopicRequest) returns (TopicInfo);
    rpc GetSchema(SchemaRequest) returns (SchemaInfo);
    rpc Subscribe(stream FetchRequest) returns (stream FetchResponse);
    rpc Publish(PublishRequest) returns (PublishResponse);
    rpc PublishStream(stream PublishRequest) returns (stream PublishResponse);
}

message TopicRequest {
    string topic_name = 1;
}

message TopicInfo {
    string topic_name = 1;
    string topic_uri = 2;
    bool can_publish = 3;
    bool can_subscribe = 4;
    string schema_id = 5;
}

message SchemaRequest {
    string schema_id = 1;
}

message SchemaInfo {
    string schema_json = 1;
    string schema_id = 2;
}

enum ReplayPreset {
    LATEST = 0;
    EARLIEST = 1;
    CUSTOM = 2;
}

message FetchRequest {
    string topic_name = 1;
    ReplayPreset replay_preset = 2;
    bytes replay_id = 3;
    int32 num_requested = 4;
    optional string auth_refresh = 5;
}

message FetchResponse {
    string topic_name = 1;
    bytes latest_replay_id = 2;
    repeated ConsumerEvent events = 3;
    int32 pending_num_requested = 4;
    optional string rpc_id = 5;
}

message ConsumerEvent {
    EventHeader event = 1;
    bytes payload = 2;
}

message EventHeader {
    bytes replay_id = 1;
    string producer_partition_key = 2;
    map<string, AttributeValue> headers = 3;
    string schema_id = 4;
}

message AttributeValue {
    oneof value {
        string string_value = 1;
        bytes bytes_value = 2;
    }
}

message ProducerEvent {
    string schema_id = 1;
    bytes payload = 2;
}

message PublishRequest {
    string topic_name = 1;
    repeated ProducerEvent events = 2;
}

message PublishResult {
    bytes replay_id = 1;
    PubSubError error = 2;
}

message PublishResponse {
    string topic_name = 1;
    repeated PublishResult results = 2;
    optional string rpc_id = 3;
}

message PubSubError {
    int32 code = 1;
    string msg = 2;
    optional string key = 3;
}