124 lines
2.9 KiB
Protocol Buffer
124 lines
2.9 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";
|
|
import "account.proto";
|
|
|
|
enum PublisherType {
|
|
PUBLISHER_TYPE_UNSPECIFIED = 0;
|
|
PUB_INDIVIDUAL = 1;
|
|
PUB_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 VerificationMark verification_mark = 10;
|
|
string account_id = 11;
|
|
optional string realm_id = 12;
|
|
google.protobuf.Timestamp created_at = 13;
|
|
google.protobuf.Timestamp updated_at = 14;
|
|
}
|
|
|
|
message GetPublisherRequest {
|
|
oneof query {
|
|
string name = 1;
|
|
string id = 2;
|
|
}
|
|
}
|
|
|
|
message GetPublisherResponse {
|
|
Publisher publisher = 1;
|
|
}
|
|
|
|
message GetPublisherBatchRequest {
|
|
repeated string ids = 1;
|
|
}
|
|
|
|
message ListPublishersRequest {
|
|
string account_id = 1; // filter by owner/member account
|
|
string realm_id = 2; // filter by realm
|
|
}
|
|
|
|
message ListPublishersResponse {
|
|
repeated Publisher publishers = 1;
|
|
}
|
|
|
|
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;
|
|
}
|
|
|
|
message IsPublisherMemberRequest {
|
|
string publisher_id = 1;
|
|
string account_id = 2;
|
|
PublisherMemberRole role = 3;
|
|
}
|
|
|
|
message IsPublisherMemberResponse {
|
|
bool valid = 1;
|
|
}
|
|
|
|
service PublisherService {
|
|
rpc GetPublisher(GetPublisherRequest) returns (GetPublisherResponse);
|
|
rpc GetPublisherBatch(GetPublisherBatchRequest) returns (ListPublishersResponse);
|
|
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);
|
|
rpc IsPublisherMember(IsPublisherMemberRequest) returns (IsPublisherMemberResponse);
|
|
}
|