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);
 | |
| }
 |