123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399 |
- syntax = "proto3";
- package memos.api.v1;
- import "api/v1/common.proto";
- import "api/v1/markdown_service.proto";
- import "api/v1/memo_relation_service.proto";
- import "api/v1/reaction_service.proto";
- import "api/v1/resource_service.proto";
- import "google/api/annotations.proto";
- import "google/api/client.proto";
- import "google/api/field_behavior.proto";
- import "google/protobuf/empty.proto";
- import "google/protobuf/field_mask.proto";
- import "google/protobuf/timestamp.proto";
- option go_package = "gen/api/v1";
- service MemoService {
- // CreateMemo creates a memo.
- rpc CreateMemo(CreateMemoRequest) returns (Memo) {
- option (google.api.http) = {
- post: "/api/v1/memos"
- body: "*"
- };
- }
- // ListMemos lists memos with pagination and filter.
- rpc ListMemos(ListMemosRequest) returns (ListMemosResponse) {
- option (google.api.http) = {get: "/api/v1/memos"};
- }
- // GetMemo gets a memo.
- rpc GetMemo(GetMemoRequest) returns (Memo) {
- option (google.api.http) = {get: "/api/v1/{name=memos/*}"};
- option (google.api.method_signature) = "name";
- }
- // GetMemoByUid gets a memo by uid
- rpc GetMemoByUid(GetMemoByUidRequest) returns (Memo) {
- option (google.api.http) = {get: "/api/v1/memos:by-uid/{uid}"};
- option (google.api.method_signature) = "uid";
- }
- // UpdateMemo updates a memo.
- rpc UpdateMemo(UpdateMemoRequest) returns (Memo) {
- option (google.api.http) = {
- patch: "/api/v1/{memo.name=memos/*}"
- body: "memo"
- };
- option (google.api.method_signature) = "memo,update_mask";
- }
- // DeleteMemo deletes a memo.
- rpc DeleteMemo(DeleteMemoRequest) returns (google.protobuf.Empty) {
- option (google.api.http) = {delete: "/api/v1/{name=memos/*}"};
- option (google.api.method_signature) = "name";
- }
- // ListMemoProperties lists memo properties.
- rpc ListMemoProperties(ListMemoPropertiesRequest) returns (ListMemoPropertiesResponse) {
- option (google.api.http) = {get: "/api/v1/{name=memos/*}/properties"};
- }
- // RebuildMemoProperty rebuilds a memo property.
- rpc RebuildMemoProperty(RebuildMemoPropertyRequest) returns (google.protobuf.Empty) {
- option (google.api.http) = {
- post: "/api/v1/{name=memos/*}/properties:rebuild"
- body: "*"
- };
- }
- // ListMemoTags lists tags for a memo.
- rpc ListMemoTags(ListMemoTagsRequest) returns (ListMemoTagsResponse) {
- option (google.api.http) = {get: "/api/v1/{parent=memos/*}/tags"};
- }
- // RenameMemoTag renames a tag for a memo.
- rpc RenameMemoTag(RenameMemoTagRequest) returns (google.protobuf.Empty) {
- option (google.api.http) = {
- patch: "/api/v1/{parent=memos/*}/tags:rename"
- body: "*"
- };
- }
- // DeleteMemoTag deletes a tag for a memo.
- rpc DeleteMemoTag(DeleteMemoTagRequest) returns (google.protobuf.Empty) {
- option (google.api.http) = {delete: "/api/v1/{parent=memos/*}/tags/{tag}"};
- }
- // SetMemoResources sets resources for a memo.
- rpc SetMemoResources(SetMemoResourcesRequest) returns (google.protobuf.Empty) {
- option (google.api.http) = {
- patch: "/api/v1/{name=memos/*}/resources"
- body: "*"
- };
- option (google.api.method_signature) = "name";
- }
- // ListMemoResources lists resources for a memo.
- rpc ListMemoResources(ListMemoResourcesRequest) returns (ListMemoResourcesResponse) {
- option (google.api.http) = {get: "/api/v1/{name=memos/*}/resources"};
- option (google.api.method_signature) = "name";
- }
- // SetMemoRelations sets relations for a memo.
- rpc SetMemoRelations(SetMemoRelationsRequest) returns (google.protobuf.Empty) {
- option (google.api.http) = {
- patch: "/api/v1/{name=memos/*}/relations"
- body: "*"
- };
- option (google.api.method_signature) = "name";
- }
- // ListMemoRelations lists relations for a memo.
- rpc ListMemoRelations(ListMemoRelationsRequest) returns (ListMemoRelationsResponse) {
- option (google.api.http) = {get: "/api/v1/{name=memos/*}/relations"};
- option (google.api.method_signature) = "name";
- }
- // CreateMemoComment creates a comment for a memo.
- rpc CreateMemoComment(CreateMemoCommentRequest) returns (Memo) {
- option (google.api.http) = {
- post: "/api/v1/{name=memos/*}/comments"
- body: "comment"
- };
- option (google.api.method_signature) = "name";
- }
- // ListMemoComments lists comments for a memo.
- rpc ListMemoComments(ListMemoCommentsRequest) returns (ListMemoCommentsResponse) {
- option (google.api.http) = {get: "/api/v1/{name=memos/*}/comments"};
- option (google.api.method_signature) = "name";
- }
- // ListMemoReactions lists reactions for a memo.
- rpc ListMemoReactions(ListMemoReactionsRequest) returns (ListMemoReactionsResponse) {
- option (google.api.http) = {get: "/api/v1/{name=memos/*}/reactions"};
- option (google.api.method_signature) = "name";
- }
- // UpsertMemoReaction upserts a reaction for a memo.
- rpc UpsertMemoReaction(UpsertMemoReactionRequest) returns (Reaction) {
- option (google.api.http) = {
- post: "/api/v1/{name=memos/*}/reactions"
- body: "*"
- };
- option (google.api.method_signature) = "name";
- }
- // DeleteMemoReaction deletes a reaction for a memo.
- rpc DeleteMemoReaction(DeleteMemoReactionRequest) returns (google.protobuf.Empty) {
- option (google.api.http) = {delete: "/api/v1/reactions/{reaction_id}"};
- option (google.api.method_signature) = "reaction_id";
- }
- }
- enum Visibility {
- VISIBILITY_UNSPECIFIED = 0;
- PRIVATE = 1;
- PROTECTED = 2;
- PUBLIC = 3;
- }
- message Memo {
- // The name of the memo.
- // Format: memos/{id}
- // id is the system generated id.
- string name = 1;
- // The user defined id of the memo.
- string uid = 2;
- RowStatus row_status = 3;
- // The name of the creator.
- // Format: users/{id}
- string creator = 4;
- google.protobuf.Timestamp create_time = 5;
- google.protobuf.Timestamp update_time = 6;
- google.protobuf.Timestamp display_time = 7;
- string content = 8;
- repeated Node nodes = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
- Visibility visibility = 10;
- repeated string tags = 11;
- bool pinned = 12;
- repeated Resource resources = 14;
- repeated MemoRelation relations = 15;
- repeated Reaction reactions = 16 [(google.api.field_behavior) = OUTPUT_ONLY];
- MemoProperty property = 17 [(google.api.field_behavior) = OUTPUT_ONLY];
- // The name of the parent memo.
- // Format: memos/{id}
- optional string parent = 18 [(google.api.field_behavior) = OUTPUT_ONLY];
- // The snippet of the memo content. Plain text only.
- string snippet = 19;
- // The location of the memo.
- optional Location location = 20;
- }
- message MemoProperty {
- repeated string tags = 1;
- bool has_link = 2;
- bool has_task_list = 3;
- bool has_code = 4;
- bool has_incomplete_tasks = 5;
- }
- message Location {
- string placeholder = 1;
- double latitude = 2;
- double longitude = 3;
- }
- message CreateMemoRequest {
- string content = 1;
- Visibility visibility = 2;
- repeated Resource resources = 3;
- repeated MemoRelation relations = 4;
- optional Location location = 5;
- }
- message ListMemosRequest {
- // The maximum number of memos to return.
- int32 page_size = 1;
- // A page token, received from a previous `ListMemos` call.
- // Provide this to retrieve the subsequent page.
- string page_token = 2;
- // Filter is used to filter memos returned in the list.
- // Format: "creator == 'users/{uid}' && visibilities == ['PUBLIC', 'PROTECTED']"
- string filter = 3;
- }
- message ListMemosResponse {
- repeated Memo memos = 1;
- // A token, which can be sent as `page_token` to retrieve the next page.
- // If this field is omitted, there are no subsequent pages.
- string next_page_token = 2;
- }
- message GetMemoRequest {
- // The name of the memo.
- // Format: memos/{id}
- string name = 1;
- }
- message GetMemoByUidRequest {
- // The uid of the memo.
- string uid = 1;
- }
- message UpdateMemoRequest {
- Memo memo = 1;
- google.protobuf.FieldMask update_mask = 2;
- }
- message DeleteMemoRequest {
- // The name of the memo.
- // Format: memos/{id}
- string name = 1;
- }
- message ListMemoPropertiesRequest {
- // The name of the memo.
- // Format: memos/{id}. Use "memos/-" to list all properties.
- string name = 1;
- }
- message ListMemoPropertiesResponse {
- repeated MemoPropertyEntity entities = 1;
- }
- message MemoPropertyEntity {
- // The name of the memo property.
- // Format: memos/{id}/properties/{property_id}
- string name = 1;
- MemoProperty property = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
- google.protobuf.Timestamp display_time = 3 [(google.api.field_behavior) = OUTPUT_ONLY];
- }
- message RebuildMemoPropertyRequest {
- // The name of the memo.
- // Format: memos/{id}. Use "memos/-" to rebuild all memos.
- string name = 1;
- }
- message ListMemoTagsRequest {
- // The parent, who owns the tags.
- // Format: memos/{id}. Use "memos/-" to list all tags.
- string parent = 1;
- // Filter is used to filter memos.
- // Format: "creator == 'users/{uid}' && visibilities == ['PUBLIC', 'PROTECTED']"
- string filter = 2;
- }
- message ListMemoTagsResponse {
- // tag_amounts is the amount of tags.
- // key is the tag name. e.g. "tag1".
- // value is the amount of the tag.
- map<string, int32> tag_amounts = 1;
- }
- message RenameMemoTagRequest {
- // The parent, who owns the tags.
- // Format: memos/{id}. Use "memos/-" to rename all tags.
- string parent = 1;
- string old_tag = 2;
- string new_tag = 3;
- }
- message DeleteMemoTagRequest {
- // The parent, who owns the tags.
- // Format: memos/{id}. Use "memos/-" to delete all tags.
- string parent = 1;
- string tag = 2;
- bool delete_related_memos = 3;
- }
- message SetMemoResourcesRequest {
- // The name of the memo.
- // Format: memos/{id}
- string name = 1;
- repeated Resource resources = 2;
- }
- message ListMemoResourcesRequest {
- // The name of the memo.
- // Format: memos/{id}
- string name = 1;
- }
- message ListMemoResourcesResponse {
- repeated Resource resources = 1;
- }
- message SetMemoRelationsRequest {
- // The name of the memo.
- // Format: memos/{id}
- string name = 1;
- repeated MemoRelation relations = 2;
- }
- message ListMemoRelationsRequest {
- // The name of the memo.
- // Format: memos/{id}
- string name = 1;
- }
- message ListMemoRelationsResponse {
- repeated MemoRelation relations = 1;
- }
- message CreateMemoCommentRequest {
- // The name of the memo.
- // Format: memos/{id}
- string name = 1;
- CreateMemoRequest comment = 2;
- }
- message ListMemoCommentsRequest {
- // The name of the memo.
- // Format: memos/{id}
- string name = 1;
- }
- message ListMemoCommentsResponse {
- repeated Memo memos = 1;
- }
- message ListMemoReactionsRequest {
- // The name of the memo.
- // Format: memos/{id}
- string name = 1;
- }
- message ListMemoReactionsResponse {
- repeated Reaction reactions = 1;
- }
- message UpsertMemoReactionRequest {
- // The name of the memo.
- // Format: memos/{id}
- string name = 1;
- Reaction reaction = 2;
- }
- message DeleteMemoReactionRequest {
- int32 reaction_id = 1;
- }
|