Files
Swarm/DysonNetwork.Shared/Proto/publisher.proto

109 lines
2.5 KiB
Protocol Buffer

syntax = "proto3";
package proto;
option csharp_namespace = "DysonNetwork.Shared.Proto";
import "google/protobuf/timestamp.proto";
import "google/protobuf/wrappers.proto";
import "file.proto";
enum PublisherType {
PUBLISHER_TYPE_UNSPECIFIED = 0;
INDIVIDUAL = 1;
ORGANIZATIONAL = 2;
}
enum PublisherMemberRole {
PUBLISHER_MEMBER_ROLE_UNSPECIFIED = 0;
OWNER = 100;
MANAGER = 75;
EDITOR = 50;
VIEWER = 25;
}
message PublisherFeature {
string id = 1;
string flag = 2;
google.protobuf.Timestamp expired_at = 3;
string publisher_id = 4;
google.protobuf.Timestamp created_at = 5;
google.protobuf.Timestamp updated_at = 6;
}
message PublisherMember {
string publisher_id = 1;
string account_id = 2;
PublisherMemberRole role = 3;
google.protobuf.Timestamp joined_at = 4;
google.protobuf.Timestamp created_at = 5;
google.protobuf.Timestamp updated_at = 6;
}
message Publisher {
string id = 1;
PublisherType type = 2;
string name = 3;
string nick = 4;
google.protobuf.StringValue bio = 5;
CloudFile picture = 8;
CloudFile background = 9;
optional bytes verification_mark = 10;
string account_id = 11;
string realm_id = 12;
google.protobuf.Timestamp created_at = 13;
google.protobuf.Timestamp updated_at = 14;
}
message GetPublisherRequest {
string name = 1;
}
message GetPublisherResponse {
Publisher publisher = 1;
}
message ListPublishersRequest {
string account_id = 1; // filter by owner/member account
string realm_id = 2; // filter by realm
int32 page_size = 3;
string page_token = 4;
string order_by = 5;
}
message ListPublishersResponse {
repeated Publisher publishers = 1;
string next_page_token = 2;
int32 total_size = 3;
}
message ListPublisherMembersRequest {
string publisher_id = 1;
}
message ListPublisherMembersResponse {
repeated PublisherMember members = 1;
}
message SetPublisherFeatureFlagRequest {
string publisher_id = 1;
string flag = 2;
}
message HasPublisherFeatureRequest {
string publisher_id = 1;
string flag = 2;
}
message HasPublisherFeatureResponse {
bool enabled = 1;
}
service PublisherService {
rpc GetPublisher(GetPublisherRequest) returns (GetPublisherResponse);
rpc ListPublishers(ListPublishersRequest) returns (ListPublishersResponse);
rpc ListPublisherMembers(ListPublisherMembersRequest) returns (ListPublisherMembersResponse);
rpc SetPublisherFeatureFlag(SetPublisherFeatureFlagRequest) returns (google.protobuf.StringValue); // returns optional message
rpc HasPublisherFeature(HasPublisherFeatureRequest) returns (HasPublisherFeatureResponse);
}