diff --git a/proto/api/v1/memo_service.proto b/proto/api/v1/memo_service.proto index a055def22..866a7c5ec 100644 --- a/proto/api/v1/memo_service.proto +++ b/proto/api/v1/memo_service.proto @@ -5,10 +5,10 @@ package memos.api.v1; import "api/v1/attachment_service.proto"; import "api/v1/common.proto"; import "api/v1/markdown_service.proto"; -import "api/v1/reaction_service.proto"; import "google/api/annotations.proto"; import "google/api/client.proto"; import "google/api/field_behavior.proto"; +import "google/api/resource.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/timestamp.proto"; @@ -22,6 +22,7 @@ service MemoService { post: "/api/v1/memos" body: "memo" }; + option (google.api.method_signature) = "memo"; } // ListMemos lists memos with pagination and filter. rpc ListMemos(ListMemosRequest) returns (ListMemosResponse) { @@ -29,6 +30,8 @@ service MemoService { get: "/api/v1/memos" additional_bindings: {get: "/api/v1/{parent=users/*}/memos"} }; + option (google.api.method_signature) = ""; + option (google.api.method_signature) = "parent"; } // GetMemo gets a memo. rpc GetMemo(GetMemoRequest) returns (Memo) { @@ -54,10 +57,12 @@ service MemoService { patch: "/api/v1/{parent=memos/*}/tags:rename" body: "*" }; + option (google.api.method_signature) = "parent,old_tag,new_tag"; } // 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}"}; + option (google.api.method_signature) = "parent,tag"; } // SetMemoAttachments sets attachments for a memo. rpc SetMemoAttachments(SetMemoAttachmentsRequest) returns (google.protobuf.Empty) { @@ -91,7 +96,7 @@ service MemoService { post: "/api/v1/{name=memos/*}/comments" body: "comment" }; - option (google.api.method_signature) = "name"; + option (google.api.method_signature) = "name,comment"; } // ListMemoComments lists comments for a memo. rpc ListMemoComments(ListMemoCommentsRequest) returns (ListMemoCommentsResponse) { @@ -113,8 +118,8 @@ service MemoService { } // DeleteMemoReaction deletes a reaction for a memo. rpc DeleteMemoReaction(DeleteMemoReactionRequest) returns (google.protobuf.Empty) { - option (google.api.http) = {delete: "/api/v1/reactions/{id}"}; - option (google.api.method_signature) = "id"; + option (google.api.http) = {delete: "/api/v1/{name=reactions/*}"}; + option (google.api.method_signature) = "name"; } } @@ -125,56 +130,122 @@ enum Visibility { PUBLIC = 3; } -message Memo { - reserved 2; - - // The name of the memo. - // Format: memos/{memo}, memo is the user defined id or uuid. +message Reaction { + option (google.api.resource) = { + type: "memos.api.v1/Reaction" + pattern: "reactions/{reaction}" + name_field: "name" + singular: "reaction" + plural: "reactions" + }; + + // The resource name of the reaction. + // Format: reactions/{reaction} string name = 1 [ (google.api.field_behavior) = OUTPUT_ONLY, (google.api.field_behavior) = IDENTIFIER ]; - State state = 3; + // Output only. The system generated unique identifier. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // The resource name of the creator. + // Format: users/{user} + string creator = 3 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = {type: "memos.api.v1/User"} + ]; + + // The resource name of the content. + // For memo reactions, this should be the memo's resource name. + // Format: memos/{memo} + string content_id = 4 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = {type: "memos.api.v1/Memo"} + ]; + + // Required. The type of reaction (e.g., "👍", "❤️", "😄"). + string reaction_type = 5 [(google.api.field_behavior) = REQUIRED]; + + // Output only. The creation timestamp. + google.protobuf.Timestamp create_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; +} + +message Memo { + option (google.api.resource) = { + type: "memos.api.v1/Memo" + pattern: "memos/{memo}" + name_field: "name" + singular: "memo" + plural: "memos" + }; + + reserved 2; + + // The resource name of the memo. + // Format: memos/{memo}, memo is the user defined id or uuid. + string name = 1 [(google.api.field_behavior) = IDENTIFIER]; + + // The state of the memo. + State state = 3 [(google.api.field_behavior) = REQUIRED]; // The name of the creator. // Format: users/{user} - string creator = 4; + string creator = 4 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = {type: "memos.api.v1/User"} + ]; - google.protobuf.Timestamp create_time = 5; + // Output only. The creation timestamp. + google.protobuf.Timestamp create_time = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; - google.protobuf.Timestamp update_time = 6; + // Output only. The last update timestamp. + google.protobuf.Timestamp update_time = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; - google.protobuf.Timestamp display_time = 7; + // The display timestamp of the memo. + google.protobuf.Timestamp display_time = 7 [(google.api.field_behavior) = OPTIONAL]; - string content = 8; + // Required. The content of the memo in Markdown format. + string content = 8 [(google.api.field_behavior) = REQUIRED]; + // Output only. The parsed nodes from the content. repeated Node nodes = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; - Visibility visibility = 10; + // The visibility of the memo. + Visibility visibility = 10 [(google.api.field_behavior) = REQUIRED]; + // Output only. The tags extracted from the content. repeated string tags = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; - bool pinned = 12; + // Whether the memo is pinned. + bool pinned = 12 [(google.api.field_behavior) = OPTIONAL]; - repeated Attachment attachments = 14; + // Optional. The attachments of the memo. + repeated Attachment attachments = 14 [(google.api.field_behavior) = OPTIONAL]; - repeated MemoRelation relations = 15; + // Optional. The relations of the memo. + repeated MemoRelation relations = 15 [(google.api.field_behavior) = OPTIONAL]; + // Output only. The reactions to the memo. repeated Reaction reactions = 16 [(google.api.field_behavior) = OUTPUT_ONLY]; + // Output only. The computed properties of the memo. Property 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]; + // Output only. The name of the parent memo. + // Format: memos/{memo} + optional string parent = 18 [ + (google.api.field_behavior) = OUTPUT_ONLY, + (google.api.resource_reference) = {type: "memos.api.v1/Memo"} + ]; - // The snippet of the memo content. Plain text only. + // Output only. The snippet of the memo content. Plain text only. string snippet = 19 [(google.api.field_behavior) = OUTPUT_ONLY]; - // The location of the memo. - optional Location location = 20; + // Optional. The location of the memo. + optional Location location = 20 [(google.api.field_behavior) = OPTIONAL]; + // Computed properties of a memo. message Property { bool has_link = 1; bool has_task_list = 2; @@ -184,43 +255,66 @@ message Memo { } message Location { - string placeholder = 1; - double latitude = 2; - double longitude = 3; + // A placeholder text for the location. + string placeholder = 1 [(google.api.field_behavior) = OPTIONAL]; + + // The latitude of the location. + double latitude = 2 [(google.api.field_behavior) = OPTIONAL]; + + // The longitude of the location. + double longitude = 3 [(google.api.field_behavior) = OPTIONAL]; } message CreateMemoRequest { - // The memo to create. + // Required. The memo to create. Memo memo = 1 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The memo ID to use for this memo. + // If empty, a unique ID will be generated. + string memo_id = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If set, validate the request but don't actually create the memo. + bool validate_only = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. An idempotency token. + string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; } message ListMemosRequest { - // The parent is the owner of the memos. + // Optional. The parent is the owner of the memos. // If not specified or `users/-`, it will list all memos. - string parent = 1; + // Format: users/{user} + string parent = 1 [ + (google.api.field_behavior) = OPTIONAL, + (google.api.resource_reference) = {type: "memos.api.v1/User"} + ]; - // The maximum number of memos to return. - int32 page_size = 2; + // Optional. The maximum number of memos to return. + // The service may return fewer than this value. + // If unspecified, at most 50 memos will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; - // A page token, received from a previous `ListMemos` call. + // Optional. A page token, received from a previous `ListMemos` call. // Provide this to retrieve the subsequent page. - string page_token = 3; + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; - // The state of the memos to list. + // Optional. The state of the memos to list. // Default to `NORMAL`. Set to `ARCHIVED` to list archived memos. - State state = 4; - - // What field to sort the results by. - // Default to display_time. - string sort = 5; + State state = 4 [(google.api.field_behavior) = OPTIONAL]; - // The direction to sort the results by. - // Default to DESC. - Direction direction = 6; + // Optional. The order to sort results by. + // Default to "display_time desc". + // Example: "display_time desc" or "create_time asc" + string order_by = 5 [(google.api.field_behavior) = OPTIONAL]; + // Optional. Filter to apply to the list results. // Filter is a CEL expression to filter memos. // Refer to `Shortcut.filter`. - string filter = 7; + string filter = 6 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. If true, show deleted memos in the response. + bool show_deleted = 7 [(google.api.field_behavior) = OPTIONAL]; // [Deprecated] Old filter contains some specific conditions to filter memos. // Format: "creator == 'users/{user}' && visibilities == ['PUBLIC', 'PROTECTED']" @@ -228,136 +322,279 @@ message ListMemosRequest { } message ListMemosResponse { + // The list of memos. repeated Memo memos = 1; - // A token, which can be sent as `page_token` to retrieve the next page. + // A token that 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; + + // The total count of memos (may be approximate). + int32 total_size = 3; } message GetMemoRequest { - // The name of the memo. - string name = 1; + // Required. The resource name of the memo. + // Format: memos/{memo} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = {type: "memos.api.v1/Memo"} + ]; + + // Optional. The fields to return in the response. + // If not specified, all fields are returned. + google.protobuf.FieldMask read_mask = 2 [(google.api.field_behavior) = OPTIONAL]; } message UpdateMemoRequest { - // The memo to update. + // Required. The memo to update. // The `name` field is required. Memo memo = 1 [(google.api.field_behavior) = REQUIRED]; - google.protobuf.FieldMask update_mask = 2; + // Required. The list of fields to update. + google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. If set to true, allows updating sensitive fields. + bool allow_missing = 3 [(google.api.field_behavior) = OPTIONAL]; } message DeleteMemoRequest { - // The name of the memo. - string name = 1; + // Required. The resource name of the memo to delete. + // Format: memos/{memo} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = {type: "memos.api.v1/Memo"} + ]; + + // Optional. If set to true, the memo will be deleted even if it has associated data. + bool force = 2 [(google.api.field_behavior) = OPTIONAL]; } 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; + // Required. The parent, who owns the tags. + // Format: memos/{memo}. Use "memos/-" to rename all tags. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = {type: "memos.api.v1/Memo"} + ]; + + // Required. The old tag name to rename. + string old_tag = 2 [(google.api.field_behavior) = REQUIRED]; + + // Required. The new tag name. + string new_tag = 3 [(google.api.field_behavior) = REQUIRED]; } 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; + // Required. The parent, who owns the tags. + // Format: memos/{memo}. Use "memos/-" to delete all tags. + string parent = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = {type: "memos.api.v1/Memo"} + ]; + + // Required. The tag name to delete. + string tag = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. Whether to delete related memos. + bool delete_related_memos = 3 [(google.api.field_behavior) = OPTIONAL]; } message SetMemoAttachmentsRequest { - // The name of the memo. - string name = 1; + // Required. The resource name of the memo. + // Format: memos/{memo} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = {type: "memos.api.v1/Memo"} + ]; - repeated Attachment attachments = 2; + // Required. The attachments to set for the memo. + repeated Attachment attachments = 2 [(google.api.field_behavior) = REQUIRED]; } message ListMemoAttachmentsRequest { - // The name of the memo. - string name = 1; + // Required. The resource name of the memo. + // Format: memos/{memo} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = {type: "memos.api.v1/Memo"} + ]; + + // Optional. The maximum number of attachments to return. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token for pagination. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; } message ListMemoAttachmentsResponse { + // The list of attachments. repeated Attachment attachments = 1; + + // A token for the next page of results. + string next_page_token = 2; + + // The total count of attachments. + int32 total_size = 3; } message MemoRelation { - Memo memo = 1; + // The memo in the relation. + Memo memo = 1 [(google.api.field_behavior) = REQUIRED]; - Memo related_memo = 2; + // The related memo. + Memo related_memo = 2 [(google.api.field_behavior) = REQUIRED]; + // The type of the relation. enum Type { TYPE_UNSPECIFIED = 0; REFERENCE = 1; COMMENT = 2; } - Type type = 3; + Type type = 3 [(google.api.field_behavior) = REQUIRED]; + // Memo reference in relations. message Memo { - // The name of the memo. - // Format: memos/{id} - string name = 1; - string uid = 2; - // The snippet of the memo content. Plain text only. + // The resource name of the memo. + // Format: memos/{memo} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = {type: "memos.api.v1/Memo"} + ]; + + // Output only. The unique identifier of the memo. + string uid = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; + + // Output only. The snippet of the memo content. Plain text only. string snippet = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; } } message SetMemoRelationsRequest { - // The name of the memo. - string name = 1; + // Required. The resource name of the memo. + // Format: memos/{memo} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = {type: "memos.api.v1/Memo"} + ]; - repeated MemoRelation relations = 2; + // Required. The relations to set for the memo. + repeated MemoRelation relations = 2 [(google.api.field_behavior) = REQUIRED]; } message ListMemoRelationsRequest { - // The name of the memo. - string name = 1; + // Required. The resource name of the memo. + // Format: memos/{memo} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = {type: "memos.api.v1/Memo"} + ]; + + // Optional. The maximum number of relations to return. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token for pagination. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; } message ListMemoRelationsResponse { + // The list of relations. repeated MemoRelation relations = 1; + + // A token for the next page of results. + string next_page_token = 2; + + // The total count of relations. + int32 total_size = 3; } message CreateMemoCommentRequest { - // The name of the memo. - string name = 1; + // Required. The resource name of the memo. + // Format: memos/{memo} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = {type: "memos.api.v1/Memo"} + ]; - // The comment to create. - Memo comment = 2; + // Required. The comment to create. + Memo comment = 2 [(google.api.field_behavior) = REQUIRED]; + + // Optional. The comment ID to use. + string comment_id = 3 [(google.api.field_behavior) = OPTIONAL]; } message ListMemoCommentsRequest { - // The name of the memo. - string name = 1; + // Required. The resource name of the memo. + // Format: memos/{memo} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = {type: "memos.api.v1/Memo"} + ]; + + // Optional. The maximum number of comments to return. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token for pagination. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. The order to sort results by. + string order_by = 4 [(google.api.field_behavior) = OPTIONAL]; } message ListMemoCommentsResponse { + // The list of comment memos. repeated Memo memos = 1; + + // A token for the next page of results. + string next_page_token = 2; + + // The total count of comments. + int32 total_size = 3; } message ListMemoReactionsRequest { - // The name of the memo. - string name = 1; + // Required. The resource name of the memo. + // Format: memos/{memo} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = {type: "memos.api.v1/Memo"} + ]; + + // Optional. The maximum number of reactions to return. + int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; + + // Optional. A page token for pagination. + string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; } message ListMemoReactionsResponse { + // The list of reactions. repeated Reaction reactions = 1; + + // A token for the next page of results. + string next_page_token = 2; + + // The total count of reactions. + int32 total_size = 3; } message UpsertMemoReactionRequest { - // The name of the memo. - string name = 1; + // Required. The resource name of the memo. + // Format: memos/{memo} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = {type: "memos.api.v1/Memo"} + ]; - Reaction reaction = 2; + // Required. The reaction to upsert. + Reaction reaction = 2 [(google.api.field_behavior) = REQUIRED]; } message DeleteMemoReactionRequest { - // The id of the reaction. - // Refer to the `Reaction.id`. - int32 id = 1; + // Required. The resource name of the reaction to delete. + // Format: reactions/{reaction} + string name = 1 [ + (google.api.field_behavior) = REQUIRED, + (google.api.resource_reference) = {type: "memos.api.v1/Reaction"} + ]; } diff --git a/proto/api/v1/reaction_service.proto b/proto/api/v1/reaction_service.proto deleted file mode 100644 index 30b654e0f..000000000 --- a/proto/api/v1/reaction_service.proto +++ /dev/null @@ -1,19 +0,0 @@ -syntax = "proto3"; - -package memos.api.v1; - -option go_package = "gen/api/v1"; - -message Reaction { - int32 id = 1; - - // The name of the creator. - // Format: users/{user} - string creator = 2; - - // The content identifier. - // For memo, it should be the `Memo.name`. - string content_id = 3; - - string reaction_type = 4; -} diff --git a/proto/gen/api/v1/memo_service.pb.go b/proto/gen/api/v1/memo_service.pb.go index a4731ca58..3cd5f99a4 100644 --- a/proto/gen/api/v1/memo_service.pb.go +++ b/proto/gen/api/v1/memo_service.pb.go @@ -77,6 +77,7 @@ func (Visibility) EnumDescriptor() ([]byte, []int) { return file_api_v1_memo_service_proto_rawDescGZIP(), []int{0} } +// The type of the relation. type MemoRelation_Type int32 const ( @@ -123,36 +124,143 @@ func (x MemoRelation_Type) Number() protoreflect.EnumNumber { // Deprecated: Use MemoRelation_Type.Descriptor instead. func (MemoRelation_Type) EnumDescriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{13, 0} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{14, 0} +} + +type Reaction struct { + state protoimpl.MessageState `protogen:"open.v1"` + // The resource name of the reaction. + // Format: reactions/{reaction} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Output only. The system generated unique identifier. + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` + // The resource name of the creator. + // Format: users/{user} + Creator string `protobuf:"bytes,3,opt,name=creator,proto3" json:"creator,omitempty"` + // The resource name of the content. + // For memo reactions, this should be the memo's resource name. + // Format: memos/{memo} + ContentId string `protobuf:"bytes,4,opt,name=content_id,json=contentId,proto3" json:"content_id,omitempty"` + // Required. The type of reaction (e.g., "👍", "❤️", "😄"). + ReactionType string `protobuf:"bytes,5,opt,name=reaction_type,json=reactionType,proto3" json:"reaction_type,omitempty"` + // Output only. The creation timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Reaction) Reset() { + *x = Reaction{} + mi := &file_api_v1_memo_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Reaction) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Reaction) ProtoMessage() {} + +func (x *Reaction) ProtoReflect() protoreflect.Message { + mi := &file_api_v1_memo_service_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Reaction.ProtoReflect.Descriptor instead. +func (*Reaction) Descriptor() ([]byte, []int) { + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{0} +} + +func (x *Reaction) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Reaction) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *Reaction) GetCreator() string { + if x != nil { + return x.Creator + } + return "" +} + +func (x *Reaction) GetContentId() string { + if x != nil { + return x.ContentId + } + return "" +} + +func (x *Reaction) GetReactionType() string { + if x != nil { + return x.ReactionType + } + return "" +} + +func (x *Reaction) GetCreateTime() *timestamppb.Timestamp { + if x != nil { + return x.CreateTime + } + return nil } type Memo struct { state protoimpl.MessageState `protogen:"open.v1"` - // The name of the memo. + // The resource name of the memo. // Format: memos/{memo}, memo is the user defined id or uuid. - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - State State `protobuf:"varint,3,opt,name=state,proto3,enum=memos.api.v1.State" json:"state,omitempty"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // The state of the memo. + State State `protobuf:"varint,3,opt,name=state,proto3,enum=memos.api.v1.State" json:"state,omitempty"` // The name of the creator. // Format: users/{user} - Creator string `protobuf:"bytes,4,opt,name=creator,proto3" json:"creator,omitempty"` - CreateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` - UpdateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + Creator string `protobuf:"bytes,4,opt,name=creator,proto3" json:"creator,omitempty"` + // Output only. The creation timestamp. + CreateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"` + // Output only. The last update timestamp. + UpdateTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"` + // The display timestamp of the memo. DisplayTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=display_time,json=displayTime,proto3" json:"display_time,omitempty"` - Content string `protobuf:"bytes,8,opt,name=content,proto3" json:"content,omitempty"` - Nodes []*Node `protobuf:"bytes,9,rep,name=nodes,proto3" json:"nodes,omitempty"` - Visibility Visibility `protobuf:"varint,10,opt,name=visibility,proto3,enum=memos.api.v1.Visibility" json:"visibility,omitempty"` - Tags []string `protobuf:"bytes,11,rep,name=tags,proto3" json:"tags,omitempty"` - Pinned bool `protobuf:"varint,12,opt,name=pinned,proto3" json:"pinned,omitempty"` - Attachments []*Attachment `protobuf:"bytes,14,rep,name=attachments,proto3" json:"attachments,omitempty"` - Relations []*MemoRelation `protobuf:"bytes,15,rep,name=relations,proto3" json:"relations,omitempty"` - Reactions []*Reaction `protobuf:"bytes,16,rep,name=reactions,proto3" json:"reactions,omitempty"` - Property *Memo_Property `protobuf:"bytes,17,opt,name=property,proto3" json:"property,omitempty"` - // The name of the parent memo. - // Format: memos/{id} + // Required. The content of the memo in Markdown format. + Content string `protobuf:"bytes,8,opt,name=content,proto3" json:"content,omitempty"` + // Output only. The parsed nodes from the content. + Nodes []*Node `protobuf:"bytes,9,rep,name=nodes,proto3" json:"nodes,omitempty"` + // The visibility of the memo. + Visibility Visibility `protobuf:"varint,10,opt,name=visibility,proto3,enum=memos.api.v1.Visibility" json:"visibility,omitempty"` + // Output only. The tags extracted from the content. + Tags []string `protobuf:"bytes,11,rep,name=tags,proto3" json:"tags,omitempty"` + // Whether the memo is pinned. + Pinned bool `protobuf:"varint,12,opt,name=pinned,proto3" json:"pinned,omitempty"` + // Optional. The attachments of the memo. + Attachments []*Attachment `protobuf:"bytes,14,rep,name=attachments,proto3" json:"attachments,omitempty"` + // Optional. The relations of the memo. + Relations []*MemoRelation `protobuf:"bytes,15,rep,name=relations,proto3" json:"relations,omitempty"` + // Output only. The reactions to the memo. + Reactions []*Reaction `protobuf:"bytes,16,rep,name=reactions,proto3" json:"reactions,omitempty"` + // Output only. The computed properties of the memo. + Property *Memo_Property `protobuf:"bytes,17,opt,name=property,proto3" json:"property,omitempty"` + // Output only. The name of the parent memo. + // Format: memos/{memo} Parent *string `protobuf:"bytes,18,opt,name=parent,proto3,oneof" json:"parent,omitempty"` - // The snippet of the memo content. Plain text only. + // Output only. The snippet of the memo content. Plain text only. Snippet string `protobuf:"bytes,19,opt,name=snippet,proto3" json:"snippet,omitempty"` - // The location of the memo. + // Optional. The location of the memo. Location *Location `protobuf:"bytes,20,opt,name=location,proto3,oneof" json:"location,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -160,7 +268,7 @@ type Memo struct { func (x *Memo) Reset() { *x = Memo{} - mi := &file_api_v1_memo_service_proto_msgTypes[0] + mi := &file_api_v1_memo_service_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -172,7 +280,7 @@ func (x *Memo) String() string { func (*Memo) ProtoMessage() {} func (x *Memo) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[0] + mi := &file_api_v1_memo_service_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -185,7 +293,7 @@ func (x *Memo) ProtoReflect() protoreflect.Message { // Deprecated: Use Memo.ProtoReflect.Descriptor instead. func (*Memo) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{0} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{1} } func (x *Memo) GetName() string { @@ -315,17 +423,20 @@ func (x *Memo) GetLocation() *Location { } type Location struct { - state protoimpl.MessageState `protogen:"open.v1"` - Placeholder string `protobuf:"bytes,1,opt,name=placeholder,proto3" json:"placeholder,omitempty"` - Latitude float64 `protobuf:"fixed64,2,opt,name=latitude,proto3" json:"latitude,omitempty"` - Longitude float64 `protobuf:"fixed64,3,opt,name=longitude,proto3" json:"longitude,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + // A placeholder text for the location. + Placeholder string `protobuf:"bytes,1,opt,name=placeholder,proto3" json:"placeholder,omitempty"` + // The latitude of the location. + Latitude float64 `protobuf:"fixed64,2,opt,name=latitude,proto3" json:"latitude,omitempty"` + // The longitude of the location. + Longitude float64 `protobuf:"fixed64,3,opt,name=longitude,proto3" json:"longitude,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *Location) Reset() { *x = Location{} - mi := &file_api_v1_memo_service_proto_msgTypes[1] + mi := &file_api_v1_memo_service_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -337,7 +448,7 @@ func (x *Location) String() string { func (*Location) ProtoMessage() {} func (x *Location) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[1] + mi := &file_api_v1_memo_service_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -350,7 +461,7 @@ func (x *Location) ProtoReflect() protoreflect.Message { // Deprecated: Use Location.ProtoReflect.Descriptor instead. func (*Location) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{1} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{2} } func (x *Location) GetPlaceholder() string { @@ -376,15 +487,22 @@ func (x *Location) GetLongitude() float64 { type CreateMemoRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // The memo to create. - Memo *Memo `protobuf:"bytes,1,opt,name=memo,proto3" json:"memo,omitempty"` + // Required. The memo to create. + Memo *Memo `protobuf:"bytes,1,opt,name=memo,proto3" json:"memo,omitempty"` + // Optional. The memo ID to use for this memo. + // If empty, a unique ID will be generated. + MemoId string `protobuf:"bytes,2,opt,name=memo_id,json=memoId,proto3" json:"memo_id,omitempty"` + // Optional. If set, validate the request but don't actually create the memo. + ValidateOnly bool `protobuf:"varint,3,opt,name=validate_only,json=validateOnly,proto3" json:"validate_only,omitempty"` + // Optional. An idempotency token. + RequestId string `protobuf:"bytes,4,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *CreateMemoRequest) Reset() { *x = CreateMemoRequest{} - mi := &file_api_v1_memo_service_proto_msgTypes[2] + mi := &file_api_v1_memo_service_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -396,7 +514,7 @@ func (x *CreateMemoRequest) String() string { func (*CreateMemoRequest) ProtoMessage() {} func (x *CreateMemoRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[2] + mi := &file_api_v1_memo_service_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -409,7 +527,7 @@ func (x *CreateMemoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateMemoRequest.ProtoReflect.Descriptor instead. func (*CreateMemoRequest) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{2} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{3} } func (x *CreateMemoRequest) GetMemo() *Memo { @@ -419,28 +537,54 @@ func (x *CreateMemoRequest) GetMemo() *Memo { return nil } +func (x *CreateMemoRequest) GetMemoId() string { + if x != nil { + return x.MemoId + } + return "" +} + +func (x *CreateMemoRequest) GetValidateOnly() bool { + if x != nil { + return x.ValidateOnly + } + return false +} + +func (x *CreateMemoRequest) GetRequestId() string { + if x != nil { + return x.RequestId + } + return "" +} + type ListMemosRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // The parent is the owner of the memos. + // Optional. The parent is the owner of the memos. // If not specified or `users/-`, it will list all memos. + // Format: users/{user} Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` - // The maximum number of memos to return. + // Optional. The maximum number of memos to return. + // The service may return fewer than this value. + // If unspecified, at most 50 memos will be returned. + // The maximum value is 1000; values above 1000 will be coerced to 1000. PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` - // A page token, received from a previous `ListMemos` call. + // Optional. A page token, received from a previous `ListMemos` call. // Provide this to retrieve the subsequent page. PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` - // The state of the memos to list. + // Optional. The state of the memos to list. // Default to `NORMAL`. Set to `ARCHIVED` to list archived memos. State State `protobuf:"varint,4,opt,name=state,proto3,enum=memos.api.v1.State" json:"state,omitempty"` - // What field to sort the results by. - // Default to display_time. - Sort string `protobuf:"bytes,5,opt,name=sort,proto3" json:"sort,omitempty"` - // The direction to sort the results by. - // Default to DESC. - Direction Direction `protobuf:"varint,6,opt,name=direction,proto3,enum=memos.api.v1.Direction" json:"direction,omitempty"` + // Optional. The order to sort results by. + // Default to "display_time desc". + // Example: "display_time desc" or "create_time asc" + OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` + // Optional. Filter to apply to the list results. // Filter is a CEL expression to filter memos. // Refer to `Shortcut.filter`. - Filter string `protobuf:"bytes,7,opt,name=filter,proto3" json:"filter,omitempty"` + Filter string `protobuf:"bytes,6,opt,name=filter,proto3" json:"filter,omitempty"` + // Optional. If true, show deleted memos in the response. + ShowDeleted bool `protobuf:"varint,7,opt,name=show_deleted,json=showDeleted,proto3" json:"show_deleted,omitempty"` // [Deprecated] Old filter contains some specific conditions to filter memos. // Format: "creator == 'users/{user}' && visibilities == ['PUBLIC', 'PROTECTED']" OldFilter string `protobuf:"bytes,8,opt,name=old_filter,json=oldFilter,proto3" json:"old_filter,omitempty"` @@ -450,7 +594,7 @@ type ListMemosRequest struct { func (x *ListMemosRequest) Reset() { *x = ListMemosRequest{} - mi := &file_api_v1_memo_service_proto_msgTypes[3] + mi := &file_api_v1_memo_service_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -462,7 +606,7 @@ func (x *ListMemosRequest) String() string { func (*ListMemosRequest) ProtoMessage() {} func (x *ListMemosRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[3] + mi := &file_api_v1_memo_service_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -475,7 +619,7 @@ func (x *ListMemosRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListMemosRequest.ProtoReflect.Descriptor instead. func (*ListMemosRequest) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{3} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{4} } func (x *ListMemosRequest) GetParent() string { @@ -506,25 +650,25 @@ func (x *ListMemosRequest) GetState() State { return State_STATE_UNSPECIFIED } -func (x *ListMemosRequest) GetSort() string { +func (x *ListMemosRequest) GetOrderBy() string { if x != nil { - return x.Sort + return x.OrderBy } return "" } -func (x *ListMemosRequest) GetDirection() Direction { +func (x *ListMemosRequest) GetFilter() string { if x != nil { - return x.Direction + return x.Filter } - return Direction_DIRECTION_UNSPECIFIED + return "" } -func (x *ListMemosRequest) GetFilter() string { +func (x *ListMemosRequest) GetShowDeleted() bool { if x != nil { - return x.Filter + return x.ShowDeleted } - return "" + return false } func (x *ListMemosRequest) GetOldFilter() string { @@ -536,17 +680,20 @@ func (x *ListMemosRequest) GetOldFilter() string { type ListMemosResponse struct { state protoimpl.MessageState `protogen:"open.v1"` - Memos []*Memo `protobuf:"bytes,1,rep,name=memos,proto3" json:"memos,omitempty"` - // A token, which can be sent as `page_token` to retrieve the next page. + // The list of memos. + Memos []*Memo `protobuf:"bytes,1,rep,name=memos,proto3" json:"memos,omitempty"` + // A token that can be sent as `page_token` to retrieve the next page. // If this field is omitted, there are no subsequent pages. NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // The total count of memos (may be approximate). + TotalSize int32 `protobuf:"varint,3,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListMemosResponse) Reset() { *x = ListMemosResponse{} - mi := &file_api_v1_memo_service_proto_msgTypes[4] + mi := &file_api_v1_memo_service_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -558,7 +705,7 @@ func (x *ListMemosResponse) String() string { func (*ListMemosResponse) ProtoMessage() {} func (x *ListMemosResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[4] + mi := &file_api_v1_memo_service_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -571,7 +718,7 @@ func (x *ListMemosResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListMemosResponse.ProtoReflect.Descriptor instead. func (*ListMemosResponse) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{4} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{5} } func (x *ListMemosResponse) GetMemos() []*Memo { @@ -588,17 +735,28 @@ func (x *ListMemosResponse) GetNextPageToken() string { return "" } +func (x *ListMemosResponse) GetTotalSize() int32 { + if x != nil { + return x.TotalSize + } + return 0 +} + type GetMemoRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // The name of the memo. - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The resource name of the memo. + // Format: memos/{memo} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. The fields to return in the response. + // If not specified, all fields are returned. + ReadMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=read_mask,json=readMask,proto3" json:"read_mask,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *GetMemoRequest) Reset() { *x = GetMemoRequest{} - mi := &file_api_v1_memo_service_proto_msgTypes[5] + mi := &file_api_v1_memo_service_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -610,7 +768,7 @@ func (x *GetMemoRequest) String() string { func (*GetMemoRequest) ProtoMessage() {} func (x *GetMemoRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[5] + mi := &file_api_v1_memo_service_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -623,7 +781,7 @@ func (x *GetMemoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetMemoRequest.ProtoReflect.Descriptor instead. func (*GetMemoRequest) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{5} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{6} } func (x *GetMemoRequest) GetName() string { @@ -633,19 +791,29 @@ func (x *GetMemoRequest) GetName() string { return "" } +func (x *GetMemoRequest) GetReadMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.ReadMask + } + return nil +} + type UpdateMemoRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // The memo to update. + // Required. The memo to update. // The `name` field is required. - Memo *Memo `protobuf:"bytes,1,opt,name=memo,proto3" json:"memo,omitempty"` - UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + Memo *Memo `protobuf:"bytes,1,opt,name=memo,proto3" json:"memo,omitempty"` + // Required. The list of fields to update. + UpdateMask *fieldmaskpb.FieldMask `protobuf:"bytes,2,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"` + // Optional. If set to true, allows updating sensitive fields. + AllowMissing bool `protobuf:"varint,3,opt,name=allow_missing,json=allowMissing,proto3" json:"allow_missing,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *UpdateMemoRequest) Reset() { *x = UpdateMemoRequest{} - mi := &file_api_v1_memo_service_proto_msgTypes[6] + mi := &file_api_v1_memo_service_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -657,7 +825,7 @@ func (x *UpdateMemoRequest) String() string { func (*UpdateMemoRequest) ProtoMessage() {} func (x *UpdateMemoRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[6] + mi := &file_api_v1_memo_service_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -670,7 +838,7 @@ func (x *UpdateMemoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateMemoRequest.ProtoReflect.Descriptor instead. func (*UpdateMemoRequest) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{6} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{7} } func (x *UpdateMemoRequest) GetMemo() *Memo { @@ -687,17 +855,27 @@ func (x *UpdateMemoRequest) GetUpdateMask() *fieldmaskpb.FieldMask { return nil } +func (x *UpdateMemoRequest) GetAllowMissing() bool { + if x != nil { + return x.AllowMissing + } + return false +} + type DeleteMemoRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // The name of the memo. - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The resource name of the memo to delete. + // Format: memos/{memo} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. If set to true, the memo will be deleted even if it has associated data. + Force bool `protobuf:"varint,2,opt,name=force,proto3" json:"force,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DeleteMemoRequest) Reset() { *x = DeleteMemoRequest{} - mi := &file_api_v1_memo_service_proto_msgTypes[7] + mi := &file_api_v1_memo_service_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -709,7 +887,7 @@ func (x *DeleteMemoRequest) String() string { func (*DeleteMemoRequest) ProtoMessage() {} func (x *DeleteMemoRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[7] + mi := &file_api_v1_memo_service_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -722,7 +900,7 @@ func (x *DeleteMemoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteMemoRequest.ProtoReflect.Descriptor instead. func (*DeleteMemoRequest) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{7} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{8} } func (x *DeleteMemoRequest) GetName() string { @@ -732,12 +910,21 @@ func (x *DeleteMemoRequest) GetName() string { return "" } +func (x *DeleteMemoRequest) GetForce() bool { + if x != nil { + return x.Force + } + return false +} + type RenameMemoTagRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // The parent, who owns the tags. - // Format: memos/{id}. Use "memos/-" to rename all tags. - Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` - OldTag string `protobuf:"bytes,2,opt,name=old_tag,json=oldTag,proto3" json:"old_tag,omitempty"` + // Required. The parent, who owns the tags. + // Format: memos/{memo}. Use "memos/-" to rename all tags. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The old tag name to rename. + OldTag string `protobuf:"bytes,2,opt,name=old_tag,json=oldTag,proto3" json:"old_tag,omitempty"` + // Required. The new tag name. NewTag string `protobuf:"bytes,3,opt,name=new_tag,json=newTag,proto3" json:"new_tag,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -745,7 +932,7 @@ type RenameMemoTagRequest struct { func (x *RenameMemoTagRequest) Reset() { *x = RenameMemoTagRequest{} - mi := &file_api_v1_memo_service_proto_msgTypes[8] + mi := &file_api_v1_memo_service_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -757,7 +944,7 @@ func (x *RenameMemoTagRequest) String() string { func (*RenameMemoTagRequest) ProtoMessage() {} func (x *RenameMemoTagRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[8] + mi := &file_api_v1_memo_service_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -770,7 +957,7 @@ func (x *RenameMemoTagRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RenameMemoTagRequest.ProtoReflect.Descriptor instead. func (*RenameMemoTagRequest) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{8} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{9} } func (x *RenameMemoTagRequest) GetParent() string { @@ -796,18 +983,20 @@ func (x *RenameMemoTagRequest) GetNewTag() string { type DeleteMemoTagRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // The parent, who owns the tags. - // Format: memos/{id}. Use "memos/-" to delete all tags. - Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` - Tag string `protobuf:"bytes,2,opt,name=tag,proto3" json:"tag,omitempty"` - DeleteRelatedMemos bool `protobuf:"varint,3,opt,name=delete_related_memos,json=deleteRelatedMemos,proto3" json:"delete_related_memos,omitempty"` + // Required. The parent, who owns the tags. + // Format: memos/{memo}. Use "memos/-" to delete all tags. + Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"` + // Required. The tag name to delete. + Tag string `protobuf:"bytes,2,opt,name=tag,proto3" json:"tag,omitempty"` + // Optional. Whether to delete related memos. + DeleteRelatedMemos bool `protobuf:"varint,3,opt,name=delete_related_memos,json=deleteRelatedMemos,proto3" json:"delete_related_memos,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DeleteMemoTagRequest) Reset() { *x = DeleteMemoTagRequest{} - mi := &file_api_v1_memo_service_proto_msgTypes[9] + mi := &file_api_v1_memo_service_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -819,7 +1008,7 @@ func (x *DeleteMemoTagRequest) String() string { func (*DeleteMemoTagRequest) ProtoMessage() {} func (x *DeleteMemoTagRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[9] + mi := &file_api_v1_memo_service_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -832,7 +1021,7 @@ func (x *DeleteMemoTagRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteMemoTagRequest.ProtoReflect.Descriptor instead. func (*DeleteMemoTagRequest) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{9} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{10} } func (x *DeleteMemoTagRequest) GetParent() string { @@ -858,8 +1047,10 @@ func (x *DeleteMemoTagRequest) GetDeleteRelatedMemos() bool { type SetMemoAttachmentsRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // The name of the memo. - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The resource name of the memo. + // Format: memos/{memo} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The attachments to set for the memo. Attachments []*Attachment `protobuf:"bytes,2,rep,name=attachments,proto3" json:"attachments,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -867,7 +1058,7 @@ type SetMemoAttachmentsRequest struct { func (x *SetMemoAttachmentsRequest) Reset() { *x = SetMemoAttachmentsRequest{} - mi := &file_api_v1_memo_service_proto_msgTypes[10] + mi := &file_api_v1_memo_service_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -879,7 +1070,7 @@ func (x *SetMemoAttachmentsRequest) String() string { func (*SetMemoAttachmentsRequest) ProtoMessage() {} func (x *SetMemoAttachmentsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[10] + mi := &file_api_v1_memo_service_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -892,7 +1083,7 @@ func (x *SetMemoAttachmentsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetMemoAttachmentsRequest.ProtoReflect.Descriptor instead. func (*SetMemoAttachmentsRequest) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{10} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{11} } func (x *SetMemoAttachmentsRequest) GetName() string { @@ -911,15 +1102,20 @@ func (x *SetMemoAttachmentsRequest) GetAttachments() []*Attachment { type ListMemoAttachmentsRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // The name of the memo. - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The resource name of the memo. + // Format: memos/{memo} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. The maximum number of attachments to return. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. A page token for pagination. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListMemoAttachmentsRequest) Reset() { *x = ListMemoAttachmentsRequest{} - mi := &file_api_v1_memo_service_proto_msgTypes[11] + mi := &file_api_v1_memo_service_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -931,7 +1127,7 @@ func (x *ListMemoAttachmentsRequest) String() string { func (*ListMemoAttachmentsRequest) ProtoMessage() {} func (x *ListMemoAttachmentsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[11] + mi := &file_api_v1_memo_service_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -944,7 +1140,7 @@ func (x *ListMemoAttachmentsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListMemoAttachmentsRequest.ProtoReflect.Descriptor instead. func (*ListMemoAttachmentsRequest) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{11} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{12} } func (x *ListMemoAttachmentsRequest) GetName() string { @@ -954,16 +1150,35 @@ func (x *ListMemoAttachmentsRequest) GetName() string { return "" } +func (x *ListMemoAttachmentsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListMemoAttachmentsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + type ListMemoAttachmentsResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Attachments []*Attachment `protobuf:"bytes,1,rep,name=attachments,proto3" json:"attachments,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + // The list of attachments. + Attachments []*Attachment `protobuf:"bytes,1,rep,name=attachments,proto3" json:"attachments,omitempty"` + // A token for the next page of results. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // The total count of attachments. + TotalSize int32 `protobuf:"varint,3,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListMemoAttachmentsResponse) Reset() { *x = ListMemoAttachmentsResponse{} - mi := &file_api_v1_memo_service_proto_msgTypes[12] + mi := &file_api_v1_memo_service_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -975,7 +1190,7 @@ func (x *ListMemoAttachmentsResponse) String() string { func (*ListMemoAttachmentsResponse) ProtoMessage() {} func (x *ListMemoAttachmentsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[12] + mi := &file_api_v1_memo_service_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -988,7 +1203,7 @@ func (x *ListMemoAttachmentsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListMemoAttachmentsResponse.ProtoReflect.Descriptor instead. func (*ListMemoAttachmentsResponse) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{12} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{13} } func (x *ListMemoAttachmentsResponse) GetAttachments() []*Attachment { @@ -998,18 +1213,34 @@ func (x *ListMemoAttachmentsResponse) GetAttachments() []*Attachment { return nil } +func (x *ListMemoAttachmentsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListMemoAttachmentsResponse) GetTotalSize() int32 { + if x != nil { + return x.TotalSize + } + return 0 +} + type MemoRelation struct { - state protoimpl.MessageState `protogen:"open.v1"` - Memo *MemoRelation_Memo `protobuf:"bytes,1,opt,name=memo,proto3" json:"memo,omitempty"` - RelatedMemo *MemoRelation_Memo `protobuf:"bytes,2,opt,name=related_memo,json=relatedMemo,proto3" json:"related_memo,omitempty"` - Type MemoRelation_Type `protobuf:"varint,3,opt,name=type,proto3,enum=memos.api.v1.MemoRelation_Type" json:"type,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + // The memo in the relation. + Memo *MemoRelation_Memo `protobuf:"bytes,1,opt,name=memo,proto3" json:"memo,omitempty"` + // The related memo. + RelatedMemo *MemoRelation_Memo `protobuf:"bytes,2,opt,name=related_memo,json=relatedMemo,proto3" json:"related_memo,omitempty"` + Type MemoRelation_Type `protobuf:"varint,3,opt,name=type,proto3,enum=memos.api.v1.MemoRelation_Type" json:"type,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *MemoRelation) Reset() { *x = MemoRelation{} - mi := &file_api_v1_memo_service_proto_msgTypes[13] + mi := &file_api_v1_memo_service_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1021,7 +1252,7 @@ func (x *MemoRelation) String() string { func (*MemoRelation) ProtoMessage() {} func (x *MemoRelation) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[13] + mi := &file_api_v1_memo_service_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1034,7 +1265,7 @@ func (x *MemoRelation) ProtoReflect() protoreflect.Message { // Deprecated: Use MemoRelation.ProtoReflect.Descriptor instead. func (*MemoRelation) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{13} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{14} } func (x *MemoRelation) GetMemo() *MemoRelation_Memo { @@ -1060,8 +1291,10 @@ func (x *MemoRelation) GetType() MemoRelation_Type { type SetMemoRelationsRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // The name of the memo. - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The resource name of the memo. + // Format: memos/{memo} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The relations to set for the memo. Relations []*MemoRelation `protobuf:"bytes,2,rep,name=relations,proto3" json:"relations,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -1069,7 +1302,7 @@ type SetMemoRelationsRequest struct { func (x *SetMemoRelationsRequest) Reset() { *x = SetMemoRelationsRequest{} - mi := &file_api_v1_memo_service_proto_msgTypes[14] + mi := &file_api_v1_memo_service_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1081,7 +1314,7 @@ func (x *SetMemoRelationsRequest) String() string { func (*SetMemoRelationsRequest) ProtoMessage() {} func (x *SetMemoRelationsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[14] + mi := &file_api_v1_memo_service_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1094,7 +1327,7 @@ func (x *SetMemoRelationsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetMemoRelationsRequest.ProtoReflect.Descriptor instead. func (*SetMemoRelationsRequest) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{14} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{15} } func (x *SetMemoRelationsRequest) GetName() string { @@ -1113,15 +1346,20 @@ func (x *SetMemoRelationsRequest) GetRelations() []*MemoRelation { type ListMemoRelationsRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // The name of the memo. - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The resource name of the memo. + // Format: memos/{memo} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. The maximum number of relations to return. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. A page token for pagination. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListMemoRelationsRequest) Reset() { *x = ListMemoRelationsRequest{} - mi := &file_api_v1_memo_service_proto_msgTypes[15] + mi := &file_api_v1_memo_service_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1133,7 +1371,7 @@ func (x *ListMemoRelationsRequest) String() string { func (*ListMemoRelationsRequest) ProtoMessage() {} func (x *ListMemoRelationsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[15] + mi := &file_api_v1_memo_service_proto_msgTypes[16] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1146,7 +1384,7 @@ func (x *ListMemoRelationsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListMemoRelationsRequest.ProtoReflect.Descriptor instead. func (*ListMemoRelationsRequest) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{15} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{16} } func (x *ListMemoRelationsRequest) GetName() string { @@ -1156,16 +1394,35 @@ func (x *ListMemoRelationsRequest) GetName() string { return "" } +func (x *ListMemoRelationsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListMemoRelationsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + type ListMemoRelationsResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Relations []*MemoRelation `protobuf:"bytes,1,rep,name=relations,proto3" json:"relations,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + // The list of relations. + Relations []*MemoRelation `protobuf:"bytes,1,rep,name=relations,proto3" json:"relations,omitempty"` + // A token for the next page of results. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // The total count of relations. + TotalSize int32 `protobuf:"varint,3,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListMemoRelationsResponse) Reset() { *x = ListMemoRelationsResponse{} - mi := &file_api_v1_memo_service_proto_msgTypes[16] + mi := &file_api_v1_memo_service_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1177,7 +1434,7 @@ func (x *ListMemoRelationsResponse) String() string { func (*ListMemoRelationsResponse) ProtoMessage() {} func (x *ListMemoRelationsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[16] + mi := &file_api_v1_memo_service_proto_msgTypes[17] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1190,7 +1447,7 @@ func (x *ListMemoRelationsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListMemoRelationsResponse.ProtoReflect.Descriptor instead. func (*ListMemoRelationsResponse) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{16} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{17} } func (x *ListMemoRelationsResponse) GetRelations() []*MemoRelation { @@ -1200,19 +1457,36 @@ func (x *ListMemoRelationsResponse) GetRelations() []*MemoRelation { return nil } +func (x *ListMemoRelationsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListMemoRelationsResponse) GetTotalSize() int32 { + if x != nil { + return x.TotalSize + } + return 0 +} + type CreateMemoCommentRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // The name of the memo. + // Required. The resource name of the memo. + // Format: memos/{memo} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // The comment to create. - Comment *Memo `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment,omitempty"` + // Required. The comment to create. + Comment *Memo `protobuf:"bytes,2,opt,name=comment,proto3" json:"comment,omitempty"` + // Optional. The comment ID to use. + CommentId string `protobuf:"bytes,3,opt,name=comment_id,json=commentId,proto3" json:"comment_id,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *CreateMemoCommentRequest) Reset() { *x = CreateMemoCommentRequest{} - mi := &file_api_v1_memo_service_proto_msgTypes[17] + mi := &file_api_v1_memo_service_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1224,7 +1498,7 @@ func (x *CreateMemoCommentRequest) String() string { func (*CreateMemoCommentRequest) ProtoMessage() {} func (x *CreateMemoCommentRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[17] + mi := &file_api_v1_memo_service_proto_msgTypes[18] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1237,7 +1511,7 @@ func (x *CreateMemoCommentRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateMemoCommentRequest.ProtoReflect.Descriptor instead. func (*CreateMemoCommentRequest) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{17} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{18} } func (x *CreateMemoCommentRequest) GetName() string { @@ -1254,17 +1528,31 @@ func (x *CreateMemoCommentRequest) GetComment() *Memo { return nil } +func (x *CreateMemoCommentRequest) GetCommentId() string { + if x != nil { + return x.CommentId + } + return "" +} + type ListMemoCommentsRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // The name of the memo. - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The resource name of the memo. + // Format: memos/{memo} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. The maximum number of comments to return. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. A page token for pagination. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + // Optional. The order to sort results by. + OrderBy string `protobuf:"bytes,4,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListMemoCommentsRequest) Reset() { *x = ListMemoCommentsRequest{} - mi := &file_api_v1_memo_service_proto_msgTypes[18] + mi := &file_api_v1_memo_service_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1276,7 +1564,7 @@ func (x *ListMemoCommentsRequest) String() string { func (*ListMemoCommentsRequest) ProtoMessage() {} func (x *ListMemoCommentsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[18] + mi := &file_api_v1_memo_service_proto_msgTypes[19] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1289,7 +1577,7 @@ func (x *ListMemoCommentsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListMemoCommentsRequest.ProtoReflect.Descriptor instead. func (*ListMemoCommentsRequest) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{18} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{19} } func (x *ListMemoCommentsRequest) GetName() string { @@ -1299,16 +1587,42 @@ func (x *ListMemoCommentsRequest) GetName() string { return "" } +func (x *ListMemoCommentsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListMemoCommentsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *ListMemoCommentsRequest) GetOrderBy() string { + if x != nil { + return x.OrderBy + } + return "" +} + type ListMemoCommentsResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Memos []*Memo `protobuf:"bytes,1,rep,name=memos,proto3" json:"memos,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + // The list of comment memos. + Memos []*Memo `protobuf:"bytes,1,rep,name=memos,proto3" json:"memos,omitempty"` + // A token for the next page of results. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // The total count of comments. + TotalSize int32 `protobuf:"varint,3,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListMemoCommentsResponse) Reset() { *x = ListMemoCommentsResponse{} - mi := &file_api_v1_memo_service_proto_msgTypes[19] + mi := &file_api_v1_memo_service_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1320,7 +1634,7 @@ func (x *ListMemoCommentsResponse) String() string { func (*ListMemoCommentsResponse) ProtoMessage() {} func (x *ListMemoCommentsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[19] + mi := &file_api_v1_memo_service_proto_msgTypes[20] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1333,7 +1647,7 @@ func (x *ListMemoCommentsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListMemoCommentsResponse.ProtoReflect.Descriptor instead. func (*ListMemoCommentsResponse) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{19} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{20} } func (x *ListMemoCommentsResponse) GetMemos() []*Memo { @@ -1343,17 +1657,36 @@ func (x *ListMemoCommentsResponse) GetMemos() []*Memo { return nil } +func (x *ListMemoCommentsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListMemoCommentsResponse) GetTotalSize() int32 { + if x != nil { + return x.TotalSize + } + return 0 +} + type ListMemoReactionsRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // The name of the memo. - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The resource name of the memo. + // Format: memos/{memo} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Optional. The maximum number of reactions to return. + PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"` + // Optional. A page token for pagination. + PageToken string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListMemoReactionsRequest) Reset() { *x = ListMemoReactionsRequest{} - mi := &file_api_v1_memo_service_proto_msgTypes[20] + mi := &file_api_v1_memo_service_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1365,7 +1698,7 @@ func (x *ListMemoReactionsRequest) String() string { func (*ListMemoReactionsRequest) ProtoMessage() {} func (x *ListMemoReactionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[20] + mi := &file_api_v1_memo_service_proto_msgTypes[21] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1378,7 +1711,7 @@ func (x *ListMemoReactionsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListMemoReactionsRequest.ProtoReflect.Descriptor instead. func (*ListMemoReactionsRequest) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{20} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{21} } func (x *ListMemoReactionsRequest) GetName() string { @@ -1388,16 +1721,35 @@ func (x *ListMemoReactionsRequest) GetName() string { return "" } +func (x *ListMemoReactionsRequest) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +func (x *ListMemoReactionsRequest) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + type ListMemoReactionsResponse struct { - state protoimpl.MessageState `protogen:"open.v1"` - Reactions []*Reaction `protobuf:"bytes,1,rep,name=reactions,proto3" json:"reactions,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + // The list of reactions. + Reactions []*Reaction `protobuf:"bytes,1,rep,name=reactions,proto3" json:"reactions,omitempty"` + // A token for the next page of results. + NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"` + // The total count of reactions. + TotalSize int32 `protobuf:"varint,3,opt,name=total_size,json=totalSize,proto3" json:"total_size,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *ListMemoReactionsResponse) Reset() { *x = ListMemoReactionsResponse{} - mi := &file_api_v1_memo_service_proto_msgTypes[21] + mi := &file_api_v1_memo_service_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1409,7 +1761,7 @@ func (x *ListMemoReactionsResponse) String() string { func (*ListMemoReactionsResponse) ProtoMessage() {} func (x *ListMemoReactionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[21] + mi := &file_api_v1_memo_service_proto_msgTypes[22] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1422,7 +1774,7 @@ func (x *ListMemoReactionsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListMemoReactionsResponse.ProtoReflect.Descriptor instead. func (*ListMemoReactionsResponse) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{21} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{22} } func (x *ListMemoReactionsResponse) GetReactions() []*Reaction { @@ -1432,10 +1784,26 @@ func (x *ListMemoReactionsResponse) GetReactions() []*Reaction { return nil } +func (x *ListMemoReactionsResponse) GetNextPageToken() string { + if x != nil { + return x.NextPageToken + } + return "" +} + +func (x *ListMemoReactionsResponse) GetTotalSize() int32 { + if x != nil { + return x.TotalSize + } + return 0 +} + type UpsertMemoReactionRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // The name of the memo. - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The resource name of the memo. + // Format: memos/{memo} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + // Required. The reaction to upsert. Reaction *Reaction `protobuf:"bytes,2,opt,name=reaction,proto3" json:"reaction,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -1443,7 +1811,7 @@ type UpsertMemoReactionRequest struct { func (x *UpsertMemoReactionRequest) Reset() { *x = UpsertMemoReactionRequest{} - mi := &file_api_v1_memo_service_proto_msgTypes[22] + mi := &file_api_v1_memo_service_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1455,7 +1823,7 @@ func (x *UpsertMemoReactionRequest) String() string { func (*UpsertMemoReactionRequest) ProtoMessage() {} func (x *UpsertMemoReactionRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[22] + mi := &file_api_v1_memo_service_proto_msgTypes[23] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1468,7 +1836,7 @@ func (x *UpsertMemoReactionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpsertMemoReactionRequest.ProtoReflect.Descriptor instead. func (*UpsertMemoReactionRequest) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{22} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{23} } func (x *UpsertMemoReactionRequest) GetName() string { @@ -1487,16 +1855,16 @@ func (x *UpsertMemoReactionRequest) GetReaction() *Reaction { type DeleteMemoReactionRequest struct { state protoimpl.MessageState `protogen:"open.v1"` - // The id of the reaction. - // Refer to the `Reaction.id`. - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` + // Required. The resource name of the reaction to delete. + // Format: reactions/{reaction} + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DeleteMemoReactionRequest) Reset() { *x = DeleteMemoReactionRequest{} - mi := &file_api_v1_memo_service_proto_msgTypes[23] + mi := &file_api_v1_memo_service_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1508,7 +1876,7 @@ func (x *DeleteMemoReactionRequest) String() string { func (*DeleteMemoReactionRequest) ProtoMessage() {} func (x *DeleteMemoReactionRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[23] + mi := &file_api_v1_memo_service_proto_msgTypes[24] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1521,16 +1889,17 @@ func (x *DeleteMemoReactionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteMemoReactionRequest.ProtoReflect.Descriptor instead. func (*DeleteMemoReactionRequest) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{23} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{24} } -func (x *DeleteMemoReactionRequest) GetId() int32 { +func (x *DeleteMemoReactionRequest) GetName() string { if x != nil { - return x.Id + return x.Name } - return 0 + return "" } +// Computed properties of a memo. type Memo_Property struct { state protoimpl.MessageState `protogen:"open.v1"` HasLink bool `protobuf:"varint,1,opt,name=has_link,json=hasLink,proto3" json:"has_link,omitempty"` @@ -1543,7 +1912,7 @@ type Memo_Property struct { func (x *Memo_Property) Reset() { *x = Memo_Property{} - mi := &file_api_v1_memo_service_proto_msgTypes[24] + mi := &file_api_v1_memo_service_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1555,7 +1924,7 @@ func (x *Memo_Property) String() string { func (*Memo_Property) ProtoMessage() {} func (x *Memo_Property) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[24] + mi := &file_api_v1_memo_service_proto_msgTypes[25] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1568,7 +1937,7 @@ func (x *Memo_Property) ProtoReflect() protoreflect.Message { // Deprecated: Use Memo_Property.ProtoReflect.Descriptor instead. func (*Memo_Property) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{0, 0} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{1, 0} } func (x *Memo_Property) GetHasLink() bool { @@ -1599,13 +1968,15 @@ func (x *Memo_Property) GetHasIncompleteTasks() bool { return false } +// Memo reference in relations. type MemoRelation_Memo struct { state protoimpl.MessageState `protogen:"open.v1"` - // The name of the memo. - // Format: memos/{id} + // The resource name of the memo. + // Format: memos/{memo} Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` - // The snippet of the memo content. Plain text only. + // Output only. The unique identifier of the memo. + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` + // Output only. The snippet of the memo content. Plain text only. Snippet string `protobuf:"bytes,3,opt,name=snippet,proto3" json:"snippet,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -1613,7 +1984,7 @@ type MemoRelation_Memo struct { func (x *MemoRelation_Memo) Reset() { *x = MemoRelation_Memo{} - mi := &file_api_v1_memo_service_proto_msgTypes[25] + mi := &file_api_v1_memo_service_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1625,7 +1996,7 @@ func (x *MemoRelation_Memo) String() string { func (*MemoRelation_Memo) ProtoMessage() {} func (x *MemoRelation_Memo) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_memo_service_proto_msgTypes[25] + mi := &file_api_v1_memo_service_proto_msgTypes[26] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1638,7 +2009,7 @@ func (x *MemoRelation_Memo) ProtoReflect() protoreflect.Message { // Deprecated: Use MemoRelation_Memo.ProtoReflect.Descriptor instead. func (*MemoRelation_Memo) Descriptor() ([]byte, []int) { - return file_api_v1_memo_service_proto_rawDescGZIP(), []int{13, 0} + return file_api_v1_memo_service_proto_rawDescGZIP(), []int{14, 0} } func (x *MemoRelation_Memo) GetName() string { @@ -1666,143 +2037,210 @@ var File_api_v1_memo_service_proto protoreflect.FileDescriptor const file_api_v1_memo_service_proto_rawDesc = "" + "\n" + - "\x19api/v1/memo_service.proto\x12\fmemos.api.v1\x1a\x1fapi/v1/attachment_service.proto\x1a\x13api/v1/common.proto\x1a\x1dapi/v1/markdown_service.proto\x1a\x1dapi/v1/reaction_service.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xf4\a\n" + - "\x04Memo\x12\x1a\n" + - "\x04name\x18\x01 \x01(\tB\x06\xe0A\x03\xe0A\bR\x04name\x12)\n" + - "\x05state\x18\x03 \x01(\x0e2\x13.memos.api.v1.StateR\x05state\x12\x18\n" + - "\acreator\x18\x04 \x01(\tR\acreator\x12;\n" + - "\vcreate_time\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\n" + - "createTime\x12;\n" + - "\vupdate_time\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\n" + - "updateTime\x12=\n" + - "\fdisplay_time\x18\a \x01(\v2\x1a.google.protobuf.TimestampR\vdisplayTime\x12\x18\n" + - "\acontent\x18\b \x01(\tR\acontent\x12-\n" + - "\x05nodes\x18\t \x03(\v2\x12.memos.api.v1.NodeB\x03\xe0A\x03R\x05nodes\x128\n" + + "\x19api/v1/memo_service.proto\x12\fmemos.api.v1\x1a\x1fapi/v1/attachment_service.proto\x1a\x13api/v1/common.proto\x1a\x1dapi/v1/markdown_service.proto\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x19google/api/resource.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xe5\x02\n" + + "\bReaction\x12\x1a\n" + + "\x04name\x18\x01 \x01(\tB\x06\xe0A\x03\xe0A\bR\x04name\x12\x15\n" + + "\x03uid\x18\x02 \x01(\tB\x03\xe0A\x03R\x03uid\x123\n" + + "\acreator\x18\x03 \x01(\tB\x19\xe0A\x03\xfaA\x13\n" + + "\x11memos.api.v1/UserR\acreator\x128\n" + + "\n" + + "content_id\x18\x04 \x01(\tB\x19\xe0A\x02\xfaA\x13\n" + + "\x11memos.api.v1/MemoR\tcontentId\x12(\n" + + "\rreaction_type\x18\x05 \x01(\tB\x03\xe0A\x02R\freactionType\x12@\n" + + "\vcreate_time\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampB\x03\xe0A\x03R\n" + + "createTime:K\xeaAH\n" + + "\x15memos.api.v1/Reaction\x12\x14reactions/{reaction}\x1a\x04name*\treactions2\breaction\"\x8d\t\n" + + "\x04Memo\x12\x17\n" + + "\x04name\x18\x01 \x01(\tB\x03\xe0A\bR\x04name\x12.\n" + + "\x05state\x18\x03 \x01(\x0e2\x13.memos.api.v1.StateB\x03\xe0A\x02R\x05state\x123\n" + + "\acreator\x18\x04 \x01(\tB\x19\xe0A\x03\xfaA\x13\n" + + "\x11memos.api.v1/UserR\acreator\x12@\n" + + "\vcreate_time\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampB\x03\xe0A\x03R\n" + + "createTime\x12@\n" + + "\vupdate_time\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampB\x03\xe0A\x03R\n" + + "updateTime\x12B\n" + + "\fdisplay_time\x18\a \x01(\v2\x1a.google.protobuf.TimestampB\x03\xe0A\x01R\vdisplayTime\x12\x1d\n" + + "\acontent\x18\b \x01(\tB\x03\xe0A\x02R\acontent\x12-\n" + + "\x05nodes\x18\t \x03(\v2\x12.memos.api.v1.NodeB\x03\xe0A\x03R\x05nodes\x12=\n" + "\n" + "visibility\x18\n" + - " \x01(\x0e2\x18.memos.api.v1.VisibilityR\n" + + " \x01(\x0e2\x18.memos.api.v1.VisibilityB\x03\xe0A\x02R\n" + "visibility\x12\x17\n" + - "\x04tags\x18\v \x03(\tB\x03\xe0A\x03R\x04tags\x12\x16\n" + - "\x06pinned\x18\f \x01(\bR\x06pinned\x12:\n" + - "\vattachments\x18\x0e \x03(\v2\x18.memos.api.v1.AttachmentR\vattachments\x128\n" + - "\trelations\x18\x0f \x03(\v2\x1a.memos.api.v1.MemoRelationR\trelations\x129\n" + + "\x04tags\x18\v \x03(\tB\x03\xe0A\x03R\x04tags\x12\x1b\n" + + "\x06pinned\x18\f \x01(\bB\x03\xe0A\x01R\x06pinned\x12?\n" + + "\vattachments\x18\x0e \x03(\v2\x18.memos.api.v1.AttachmentB\x03\xe0A\x01R\vattachments\x12=\n" + + "\trelations\x18\x0f \x03(\v2\x1a.memos.api.v1.MemoRelationB\x03\xe0A\x01R\trelations\x129\n" + "\treactions\x18\x10 \x03(\v2\x16.memos.api.v1.ReactionB\x03\xe0A\x03R\treactions\x12<\n" + - "\bproperty\x18\x11 \x01(\v2\x1b.memos.api.v1.Memo.PropertyB\x03\xe0A\x03R\bproperty\x12 \n" + - "\x06parent\x18\x12 \x01(\tB\x03\xe0A\x03H\x00R\x06parent\x88\x01\x01\x12\x1d\n" + - "\asnippet\x18\x13 \x01(\tB\x03\xe0A\x03R\asnippet\x127\n" + - "\blocation\x18\x14 \x01(\v2\x16.memos.api.v1.LocationH\x01R\blocation\x88\x01\x01\x1a\x96\x01\n" + + "\bproperty\x18\x11 \x01(\v2\x1b.memos.api.v1.Memo.PropertyB\x03\xe0A\x03R\bproperty\x126\n" + + "\x06parent\x18\x12 \x01(\tB\x19\xe0A\x03\xfaA\x13\n" + + "\x11memos.api.v1/MemoH\x00R\x06parent\x88\x01\x01\x12\x1d\n" + + "\asnippet\x18\x13 \x01(\tB\x03\xe0A\x03R\asnippet\x12<\n" + + "\blocation\x18\x14 \x01(\v2\x16.memos.api.v1.LocationB\x03\xe0A\x01H\x01R\blocation\x88\x01\x01\x1a\x96\x01\n" + "\bProperty\x12\x19\n" + "\bhas_link\x18\x01 \x01(\bR\ahasLink\x12\"\n" + "\rhas_task_list\x18\x02 \x01(\bR\vhasTaskList\x12\x19\n" + "\bhas_code\x18\x03 \x01(\bR\ahasCode\x120\n" + - "\x14has_incomplete_tasks\x18\x04 \x01(\bR\x12hasIncompleteTasksB\t\n" + + "\x14has_incomplete_tasks\x18\x04 \x01(\bR\x12hasIncompleteTasks:7\xeaA4\n" + + "\x11memos.api.v1/Memo\x12\fmemos/{memo}\x1a\x04name*\x05memos2\x04memoB\t\n" + "\a_parentB\v\n" + - "\t_locationJ\x04\b\x02\x10\x03\"f\n" + - "\bLocation\x12 \n" + - "\vplaceholder\x18\x01 \x01(\tR\vplaceholder\x12\x1a\n" + - "\blatitude\x18\x02 \x01(\x01R\blatitude\x12\x1c\n" + - "\tlongitude\x18\x03 \x01(\x01R\tlongitude\"@\n" + + "\t_locationJ\x04\b\x02\x10\x03\"u\n" + + "\bLocation\x12%\n" + + "\vplaceholder\x18\x01 \x01(\tB\x03\xe0A\x01R\vplaceholder\x12\x1f\n" + + "\blatitude\x18\x02 \x01(\x01B\x03\xe0A\x01R\blatitude\x12!\n" + + "\tlongitude\x18\x03 \x01(\x01B\x03\xe0A\x01R\tlongitude\"\xac\x01\n" + "\x11CreateMemoRequest\x12+\n" + - "\x04memo\x18\x01 \x01(\v2\x12.memos.api.v1.MemoB\x03\xe0A\x02R\x04memo\"\x93\x02\n" + - "\x10ListMemosRequest\x12\x16\n" + - "\x06parent\x18\x01 \x01(\tR\x06parent\x12\x1b\n" + - "\tpage_size\x18\x02 \x01(\x05R\bpageSize\x12\x1d\n" + + "\x04memo\x18\x01 \x01(\v2\x12.memos.api.v1.MemoB\x03\xe0A\x02R\x04memo\x12\x1c\n" + + "\amemo_id\x18\x02 \x01(\tB\x03\xe0A\x01R\x06memoId\x12(\n" + + "\rvalidate_only\x18\x03 \x01(\bB\x03\xe0A\x01R\fvalidateOnly\x12\"\n" + "\n" + - "page_token\x18\x03 \x01(\tR\tpageToken\x12)\n" + - "\x05state\x18\x04 \x01(\x0e2\x13.memos.api.v1.StateR\x05state\x12\x12\n" + - "\x04sort\x18\x05 \x01(\tR\x04sort\x125\n" + - "\tdirection\x18\x06 \x01(\x0e2\x17.memos.api.v1.DirectionR\tdirection\x12\x16\n" + - "\x06filter\x18\a \x01(\tR\x06filter\x12\x1d\n" + + "request_id\x18\x04 \x01(\tB\x03\xe0A\x01R\trequestId\"\xbf\x02\n" + + "\x10ListMemosRequest\x121\n" + + "\x06parent\x18\x01 \x01(\tB\x19\xe0A\x01\xfaA\x13\n" + + "\x11memos.api.v1/UserR\x06parent\x12 \n" + + "\tpage_size\x18\x02 \x01(\x05B\x03\xe0A\x01R\bpageSize\x12\"\n" + "\n" + - "old_filter\x18\b \x01(\tR\toldFilter\"e\n" + + "page_token\x18\x03 \x01(\tB\x03\xe0A\x01R\tpageToken\x12.\n" + + "\x05state\x18\x04 \x01(\x0e2\x13.memos.api.v1.StateB\x03\xe0A\x01R\x05state\x12\x1e\n" + + "\border_by\x18\x05 \x01(\tB\x03\xe0A\x01R\aorderBy\x12\x1b\n" + + "\x06filter\x18\x06 \x01(\tB\x03\xe0A\x01R\x06filter\x12&\n" + + "\fshow_deleted\x18\a \x01(\bB\x03\xe0A\x01R\vshowDeleted\x12\x1d\n" + + "\n" + + "old_filter\x18\b \x01(\tR\toldFilter\"\x84\x01\n" + "\x11ListMemosResponse\x12(\n" + "\x05memos\x18\x01 \x03(\v2\x12.memos.api.v1.MemoR\x05memos\x12&\n" + - "\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\"$\n" + - "\x0eGetMemoRequest\x12\x12\n" + - "\x04name\x18\x01 \x01(\tR\x04name\"}\n" + + "\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\x12\x1d\n" + + "\n" + + "total_size\x18\x03 \x01(\x05R\ttotalSize\"}\n" + + "\x0eGetMemoRequest\x12-\n" + + "\x04name\x18\x01 \x01(\tB\x19\xe0A\x02\xfaA\x13\n" + + "\x11memos.api.v1/MemoR\x04name\x12<\n" + + "\tread_mask\x18\x02 \x01(\v2\x1a.google.protobuf.FieldMaskB\x03\xe0A\x01R\breadMask\"\xac\x01\n" + "\x11UpdateMemoRequest\x12+\n" + - "\x04memo\x18\x01 \x01(\v2\x12.memos.api.v1.MemoB\x03\xe0A\x02R\x04memo\x12;\n" + - "\vupdate_mask\x18\x02 \x01(\v2\x1a.google.protobuf.FieldMaskR\n" + - "updateMask\"'\n" + - "\x11DeleteMemoRequest\x12\x12\n" + - "\x04name\x18\x01 \x01(\tR\x04name\"`\n" + - "\x14RenameMemoTagRequest\x12\x16\n" + - "\x06parent\x18\x01 \x01(\tR\x06parent\x12\x17\n" + - "\aold_tag\x18\x02 \x01(\tR\x06oldTag\x12\x17\n" + - "\anew_tag\x18\x03 \x01(\tR\x06newTag\"r\n" + - "\x14DeleteMemoTagRequest\x12\x16\n" + - "\x06parent\x18\x01 \x01(\tR\x06parent\x12\x10\n" + - "\x03tag\x18\x02 \x01(\tR\x03tag\x120\n" + - "\x14delete_related_memos\x18\x03 \x01(\bR\x12deleteRelatedMemos\"k\n" + - "\x19SetMemoAttachmentsRequest\x12\x12\n" + - "\x04name\x18\x01 \x01(\tR\x04name\x12:\n" + - "\vattachments\x18\x02 \x03(\v2\x18.memos.api.v1.AttachmentR\vattachments\"0\n" + - "\x1aListMemoAttachmentsRequest\x12\x12\n" + - "\x04name\x18\x01 \x01(\tR\x04name\"Y\n" + + "\x04memo\x18\x01 \x01(\v2\x12.memos.api.v1.MemoB\x03\xe0A\x02R\x04memo\x12@\n" + + "\vupdate_mask\x18\x02 \x01(\v2\x1a.google.protobuf.FieldMaskB\x03\xe0A\x02R\n" + + "updateMask\x12(\n" + + "\rallow_missing\x18\x03 \x01(\bB\x03\xe0A\x01R\fallowMissing\"]\n" + + "\x11DeleteMemoRequest\x12-\n" + + "\x04name\x18\x01 \x01(\tB\x19\xe0A\x02\xfaA\x13\n" + + "\x11memos.api.v1/MemoR\x04name\x12\x19\n" + + "\x05force\x18\x02 \x01(\bB\x03\xe0A\x01R\x05force\"\x85\x01\n" + + "\x14RenameMemoTagRequest\x121\n" + + "\x06parent\x18\x01 \x01(\tB\x19\xe0A\x02\xfaA\x13\n" + + "\x11memos.api.v1/MemoR\x06parent\x12\x1c\n" + + "\aold_tag\x18\x02 \x01(\tB\x03\xe0A\x02R\x06oldTag\x12\x1c\n" + + "\anew_tag\x18\x03 \x01(\tB\x03\xe0A\x02R\x06newTag\"\x97\x01\n" + + "\x14DeleteMemoTagRequest\x121\n" + + "\x06parent\x18\x01 \x01(\tB\x19\xe0A\x02\xfaA\x13\n" + + "\x11memos.api.v1/MemoR\x06parent\x12\x15\n" + + "\x03tag\x18\x02 \x01(\tB\x03\xe0A\x02R\x03tag\x125\n" + + "\x14delete_related_memos\x18\x03 \x01(\bB\x03\xe0A\x01R\x12deleteRelatedMemos\"\x8b\x01\n" + + "\x19SetMemoAttachmentsRequest\x12-\n" + + "\x04name\x18\x01 \x01(\tB\x19\xe0A\x02\xfaA\x13\n" + + "\x11memos.api.v1/MemoR\x04name\x12?\n" + + "\vattachments\x18\x02 \x03(\v2\x18.memos.api.v1.AttachmentB\x03\xe0A\x02R\vattachments\"\x91\x01\n" + + "\x1aListMemoAttachmentsRequest\x12-\n" + + "\x04name\x18\x01 \x01(\tB\x19\xe0A\x02\xfaA\x13\n" + + "\x11memos.api.v1/MemoR\x04name\x12 \n" + + "\tpage_size\x18\x02 \x01(\x05B\x03\xe0A\x01R\bpageSize\x12\"\n" + + "\n" + + "page_token\x18\x03 \x01(\tB\x03\xe0A\x01R\tpageToken\"\xa0\x01\n" + "\x1bListMemoAttachmentsResponse\x12:\n" + - "\vattachments\x18\x01 \x03(\v2\x18.memos.api.v1.AttachmentR\vattachments\"\xc3\x02\n" + - "\fMemoRelation\x123\n" + - "\x04memo\x18\x01 \x01(\v2\x1f.memos.api.v1.MemoRelation.MemoR\x04memo\x12B\n" + - "\frelated_memo\x18\x02 \x01(\v2\x1f.memos.api.v1.MemoRelation.MemoR\vrelatedMemo\x123\n" + - "\x04type\x18\x03 \x01(\x0e2\x1f.memos.api.v1.MemoRelation.TypeR\x04type\x1aK\n" + - "\x04Memo\x12\x12\n" + - "\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n" + - "\x03uid\x18\x02 \x01(\tR\x03uid\x12\x1d\n" + + "\vattachments\x18\x01 \x03(\v2\x18.memos.api.v1.AttachmentR\vattachments\x12&\n" + + "\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\x12\x1d\n" + + "\n" + + "total_size\x18\x03 \x01(\x05R\ttotalSize\"\xf2\x02\n" + + "\fMemoRelation\x128\n" + + "\x04memo\x18\x01 \x01(\v2\x1f.memos.api.v1.MemoRelation.MemoB\x03\xe0A\x02R\x04memo\x12G\n" + + "\frelated_memo\x18\x02 \x01(\v2\x1f.memos.api.v1.MemoRelation.MemoB\x03\xe0A\x02R\vrelatedMemo\x128\n" + + "\x04type\x18\x03 \x01(\x0e2\x1f.memos.api.v1.MemoRelation.TypeB\x03\xe0A\x02R\x04type\x1ak\n" + + "\x04Memo\x12-\n" + + "\x04name\x18\x01 \x01(\tB\x19\xe0A\x02\xfaA\x13\n" + + "\x11memos.api.v1/MemoR\x04name\x12\x15\n" + + "\x03uid\x18\x02 \x01(\tB\x03\xe0A\x03R\x03uid\x12\x1d\n" + "\asnippet\x18\x03 \x01(\tB\x03\xe0A\x03R\asnippet\"8\n" + "\x04Type\x12\x14\n" + "\x10TYPE_UNSPECIFIED\x10\x00\x12\r\n" + "\tREFERENCE\x10\x01\x12\v\n" + - "\aCOMMENT\x10\x02\"g\n" + - "\x17SetMemoRelationsRequest\x12\x12\n" + - "\x04name\x18\x01 \x01(\tR\x04name\x128\n" + - "\trelations\x18\x02 \x03(\v2\x1a.memos.api.v1.MemoRelationR\trelations\".\n" + - "\x18ListMemoRelationsRequest\x12\x12\n" + - "\x04name\x18\x01 \x01(\tR\x04name\"U\n" + + "\aCOMMENT\x10\x02\"\x87\x01\n" + + "\x17SetMemoRelationsRequest\x12-\n" + + "\x04name\x18\x01 \x01(\tB\x19\xe0A\x02\xfaA\x13\n" + + "\x11memos.api.v1/MemoR\x04name\x12=\n" + + "\trelations\x18\x02 \x03(\v2\x1a.memos.api.v1.MemoRelationB\x03\xe0A\x02R\trelations\"\x8f\x01\n" + + "\x18ListMemoRelationsRequest\x12-\n" + + "\x04name\x18\x01 \x01(\tB\x19\xe0A\x02\xfaA\x13\n" + + "\x11memos.api.v1/MemoR\x04name\x12 \n" + + "\tpage_size\x18\x02 \x01(\x05B\x03\xe0A\x01R\bpageSize\x12\"\n" + + "\n" + + "page_token\x18\x03 \x01(\tB\x03\xe0A\x01R\tpageToken\"\x9c\x01\n" + "\x19ListMemoRelationsResponse\x128\n" + - "\trelations\x18\x01 \x03(\v2\x1a.memos.api.v1.MemoRelationR\trelations\"\\\n" + - "\x18CreateMemoCommentRequest\x12\x12\n" + - "\x04name\x18\x01 \x01(\tR\x04name\x12,\n" + - "\acomment\x18\x02 \x01(\v2\x12.memos.api.v1.MemoR\acomment\"-\n" + - "\x17ListMemoCommentsRequest\x12\x12\n" + - "\x04name\x18\x01 \x01(\tR\x04name\"D\n" + + "\trelations\x18\x01 \x03(\v2\x1a.memos.api.v1.MemoRelationR\trelations\x12&\n" + + "\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\x12\x1d\n" + + "\n" + + "total_size\x18\x03 \x01(\x05R\ttotalSize\"\xa0\x01\n" + + "\x18CreateMemoCommentRequest\x12-\n" + + "\x04name\x18\x01 \x01(\tB\x19\xe0A\x02\xfaA\x13\n" + + "\x11memos.api.v1/MemoR\x04name\x121\n" + + "\acomment\x18\x02 \x01(\v2\x12.memos.api.v1.MemoB\x03\xe0A\x02R\acomment\x12\"\n" + + "\n" + + "comment_id\x18\x03 \x01(\tB\x03\xe0A\x01R\tcommentId\"\xae\x01\n" + + "\x17ListMemoCommentsRequest\x12-\n" + + "\x04name\x18\x01 \x01(\tB\x19\xe0A\x02\xfaA\x13\n" + + "\x11memos.api.v1/MemoR\x04name\x12 \n" + + "\tpage_size\x18\x02 \x01(\x05B\x03\xe0A\x01R\bpageSize\x12\"\n" + + "\n" + + "page_token\x18\x03 \x01(\tB\x03\xe0A\x01R\tpageToken\x12\x1e\n" + + "\border_by\x18\x04 \x01(\tB\x03\xe0A\x01R\aorderBy\"\x8b\x01\n" + "\x18ListMemoCommentsResponse\x12(\n" + - "\x05memos\x18\x01 \x03(\v2\x12.memos.api.v1.MemoR\x05memos\".\n" + - "\x18ListMemoReactionsRequest\x12\x12\n" + - "\x04name\x18\x01 \x01(\tR\x04name\"Q\n" + + "\x05memos\x18\x01 \x03(\v2\x12.memos.api.v1.MemoR\x05memos\x12&\n" + + "\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\x12\x1d\n" + + "\n" + + "total_size\x18\x03 \x01(\x05R\ttotalSize\"\x8f\x01\n" + + "\x18ListMemoReactionsRequest\x12-\n" + + "\x04name\x18\x01 \x01(\tB\x19\xe0A\x02\xfaA\x13\n" + + "\x11memos.api.v1/MemoR\x04name\x12 \n" + + "\tpage_size\x18\x02 \x01(\x05B\x03\xe0A\x01R\bpageSize\x12\"\n" + + "\n" + + "page_token\x18\x03 \x01(\tB\x03\xe0A\x01R\tpageToken\"\x98\x01\n" + "\x19ListMemoReactionsResponse\x124\n" + - "\treactions\x18\x01 \x03(\v2\x16.memos.api.v1.ReactionR\treactions\"c\n" + - "\x19UpsertMemoReactionRequest\x12\x12\n" + - "\x04name\x18\x01 \x01(\tR\x04name\x122\n" + - "\breaction\x18\x02 \x01(\v2\x16.memos.api.v1.ReactionR\breaction\"+\n" + - "\x19DeleteMemoReactionRequest\x12\x0e\n" + - "\x02id\x18\x01 \x01(\x05R\x02id*P\n" + + "\treactions\x18\x01 \x03(\v2\x16.memos.api.v1.ReactionR\treactions\x12&\n" + + "\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken\x12\x1d\n" + + "\n" + + "total_size\x18\x03 \x01(\x05R\ttotalSize\"\x83\x01\n" + + "\x19UpsertMemoReactionRequest\x12-\n" + + "\x04name\x18\x01 \x01(\tB\x19\xe0A\x02\xfaA\x13\n" + + "\x11memos.api.v1/MemoR\x04name\x127\n" + + "\breaction\x18\x02 \x01(\v2\x16.memos.api.v1.ReactionB\x03\xe0A\x02R\breaction\"N\n" + + "\x19DeleteMemoReactionRequest\x121\n" + + "\x04name\x18\x01 \x01(\tB\x1d\xe0A\x02\xfaA\x17\n" + + "\x15memos.api.v1/ReactionR\x04name*P\n" + "\n" + "Visibility\x12\x1a\n" + "\x16VISIBILITY_UNSPECIFIED\x10\x00\x12\v\n" + "\aPRIVATE\x10\x01\x12\r\n" + "\tPROTECTED\x10\x02\x12\n" + "\n" + - "\x06PUBLIC\x10\x032\xcd\x10\n" + - "\vMemoService\x12^\n" + + "\x06PUBLIC\x10\x032\x97\x11\n" + + "\vMemoService\x12e\n" + "\n" + - "CreateMemo\x12\x1f.memos.api.v1.CreateMemoRequest\x1a\x12.memos.api.v1.Memo\"\x1b\x82\xd3\xe4\x93\x02\x15:\x04memo\"\r/api/v1/memos\x12\x85\x01\n" + - "\tListMemos\x12\x1e.memos.api.v1.ListMemosRequest\x1a\x1f.memos.api.v1.ListMemosResponse\"7\x82\xd3\xe4\x93\x021Z \x12\x1e/api/v1/{parent=users/*}/memos\x12\r/api/v1/memos\x12b\n" + + "CreateMemo\x12\x1f.memos.api.v1.CreateMemoRequest\x1a\x12.memos.api.v1.Memo\"\"\xdaA\x04memo\x82\xd3\xe4\x93\x02\x15:\x04memo\"\r/api/v1/memos\x12\x91\x01\n" + + "\tListMemos\x12\x1e.memos.api.v1.ListMemosRequest\x1a\x1f.memos.api.v1.ListMemosResponse\"C\xdaA\x00\xdaA\x06parent\x82\xd3\xe4\x93\x021Z \x12\x1e/api/v1/{parent=users/*}/memos\x12\r/api/v1/memos\x12b\n" + "\aGetMemo\x12\x1c.memos.api.v1.GetMemoRequest\x1a\x12.memos.api.v1.Memo\"%\xdaA\x04name\x82\xd3\xe4\x93\x02\x18\x12\x16/api/v1/{name=memos/*}\x12\x7f\n" + "\n" + "UpdateMemo\x12\x1f.memos.api.v1.UpdateMemoRequest\x1a\x12.memos.api.v1.Memo\"<\xdaA\x10memo,update_mask\x82\xd3\xe4\x93\x02#:\x04memo2\x1b/api/v1/{memo.name=memos/*}\x12l\n" + "\n" + - "DeleteMemo\x12\x1f.memos.api.v1.DeleteMemoRequest\x1a\x16.google.protobuf.Empty\"%\xdaA\x04name\x82\xd3\xe4\x93\x02\x18*\x16/api/v1/{name=memos/*}\x12|\n" + - "\rRenameMemoTag\x12\".memos.api.v1.RenameMemoTagRequest\x1a\x16.google.protobuf.Empty\"/\x82\xd3\xe4\x93\x02):\x01*2$/api/v1/{parent=memos/*}/tags:rename\x12x\n" + - "\rDeleteMemoTag\x12\".memos.api.v1.DeleteMemoTagRequest\x1a\x16.google.protobuf.Empty\"+\x82\xd3\xe4\x93\x02%*#/api/v1/{parent=memos/*}/tags/{tag}\x12\x8b\x01\n" + + "DeleteMemo\x12\x1f.memos.api.v1.DeleteMemoRequest\x1a\x16.google.protobuf.Empty\"%\xdaA\x04name\x82\xd3\xe4\x93\x02\x18*\x16/api/v1/{name=memos/*}\x12\x95\x01\n" + + "\rRenameMemoTag\x12\".memos.api.v1.RenameMemoTagRequest\x1a\x16.google.protobuf.Empty\"H\xdaA\x16parent,old_tag,new_tag\x82\xd3\xe4\x93\x02):\x01*2$/api/v1/{parent=memos/*}/tags:rename\x12\x85\x01\n" + + "\rDeleteMemoTag\x12\".memos.api.v1.DeleteMemoTagRequest\x1a\x16.google.protobuf.Empty\"8\xdaA\n" + + "parent,tag\x82\xd3\xe4\x93\x02%*#/api/v1/{parent=memos/*}/tags/{tag}\x12\x8b\x01\n" + "\x12SetMemoAttachments\x12'.memos.api.v1.SetMemoAttachmentsRequest\x1a\x16.google.protobuf.Empty\"4\xdaA\x04name\x82\xd3\xe4\x93\x02':\x01*2\"/api/v1/{name=memos/*}/attachments\x12\x9d\x01\n" + "\x13ListMemoAttachments\x12(.memos.api.v1.ListMemoAttachmentsRequest\x1a).memos.api.v1.ListMemoAttachmentsResponse\"1\xdaA\x04name\x82\xd3\xe4\x93\x02$\x12\"/api/v1/{name=memos/*}/attachments\x12\x85\x01\n" + "\x10SetMemoRelations\x12%.memos.api.v1.SetMemoRelationsRequest\x1a\x16.google.protobuf.Empty\"2\xdaA\x04name\x82\xd3\xe4\x93\x02%:\x01*2 /api/v1/{name=memos/*}/relations\x12\x95\x01\n" + - "\x11ListMemoRelations\x12&.memos.api.v1.ListMemoRelationsRequest\x1a'.memos.api.v1.ListMemoRelationsResponse\"/\xdaA\x04name\x82\xd3\xe4\x93\x02\"\x12 /api/v1/{name=memos/*}/relations\x12\x88\x01\n" + - "\x11CreateMemoComment\x12&.memos.api.v1.CreateMemoCommentRequest\x1a\x12.memos.api.v1.Memo\"7\xdaA\x04name\x82\xd3\xe4\x93\x02*:\acomment\"\x1f/api/v1/{name=memos/*}/comments\x12\x91\x01\n" + + "\x11ListMemoRelations\x12&.memos.api.v1.ListMemoRelationsRequest\x1a'.memos.api.v1.ListMemoRelationsResponse\"/\xdaA\x04name\x82\xd3\xe4\x93\x02\"\x12 /api/v1/{name=memos/*}/relations\x12\x90\x01\n" + + "\x11CreateMemoComment\x12&.memos.api.v1.CreateMemoCommentRequest\x1a\x12.memos.api.v1.Memo\"?\xdaA\fname,comment\x82\xd3\xe4\x93\x02*:\acomment\"\x1f/api/v1/{name=memos/*}/comments\x12\x91\x01\n" + "\x10ListMemoComments\x12%.memos.api.v1.ListMemoCommentsRequest\x1a&.memos.api.v1.ListMemoCommentsResponse\".\xdaA\x04name\x82\xd3\xe4\x93\x02!\x12\x1f/api/v1/{name=memos/*}/comments\x12\x95\x01\n" + "\x11ListMemoReactions\x12&.memos.api.v1.ListMemoReactionsRequest\x1a'.memos.api.v1.ListMemoReactionsResponse\"/\xdaA\x04name\x82\xd3\xe4\x93\x02\"\x12 /api/v1/{name=memos/*}/reactions\x12\x89\x01\n" + - "\x12UpsertMemoReaction\x12'.memos.api.v1.UpsertMemoReactionRequest\x1a\x16.memos.api.v1.Reaction\"2\xdaA\x04name\x82\xd3\xe4\x93\x02%:\x01*\" /api/v1/{name=memos/*}/reactions\x12z\n" + - "\x12DeleteMemoReaction\x12'.memos.api.v1.DeleteMemoReactionRequest\x1a\x16.google.protobuf.Empty\"#\xdaA\x02id\x82\xd3\xe4\x93\x02\x18*\x16/api/v1/reactions/{id}B\xa8\x01\n" + + "\x12UpsertMemoReaction\x12'.memos.api.v1.UpsertMemoReactionRequest\x1a\x16.memos.api.v1.Reaction\"2\xdaA\x04name\x82\xd3\xe4\x93\x02%:\x01*\" /api/v1/{name=memos/*}/reactions\x12\x80\x01\n" + + "\x12DeleteMemoReaction\x12'.memos.api.v1.DeleteMemoReactionRequest\x1a\x16.google.protobuf.Empty\")\xdaA\x04name\x82\xd3\xe4\x93\x02\x1c*\x1a/api/v1/{name=reactions/*}B\xa8\x01\n" + "\x10com.memos.api.v1B\x10MemoServiceProtoP\x01Z0github.com/usememos/memos/proto/gen/api/v1;apiv1\xa2\x02\x03MAX\xaa\x02\fMemos.Api.V1\xca\x02\fMemos\\Api\\V1\xe2\x02\x18Memos\\Api\\V1\\GPBMetadata\xea\x02\x0eMemos::Api::V1b\x06proto3" var ( @@ -1818,111 +2256,111 @@ func file_api_v1_memo_service_proto_rawDescGZIP() []byte { } var file_api_v1_memo_service_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_api_v1_memo_service_proto_msgTypes = make([]protoimpl.MessageInfo, 26) +var file_api_v1_memo_service_proto_msgTypes = make([]protoimpl.MessageInfo, 27) var file_api_v1_memo_service_proto_goTypes = []any{ (Visibility)(0), // 0: memos.api.v1.Visibility (MemoRelation_Type)(0), // 1: memos.api.v1.MemoRelation.Type - (*Memo)(nil), // 2: memos.api.v1.Memo - (*Location)(nil), // 3: memos.api.v1.Location - (*CreateMemoRequest)(nil), // 4: memos.api.v1.CreateMemoRequest - (*ListMemosRequest)(nil), // 5: memos.api.v1.ListMemosRequest - (*ListMemosResponse)(nil), // 6: memos.api.v1.ListMemosResponse - (*GetMemoRequest)(nil), // 7: memos.api.v1.GetMemoRequest - (*UpdateMemoRequest)(nil), // 8: memos.api.v1.UpdateMemoRequest - (*DeleteMemoRequest)(nil), // 9: memos.api.v1.DeleteMemoRequest - (*RenameMemoTagRequest)(nil), // 10: memos.api.v1.RenameMemoTagRequest - (*DeleteMemoTagRequest)(nil), // 11: memos.api.v1.DeleteMemoTagRequest - (*SetMemoAttachmentsRequest)(nil), // 12: memos.api.v1.SetMemoAttachmentsRequest - (*ListMemoAttachmentsRequest)(nil), // 13: memos.api.v1.ListMemoAttachmentsRequest - (*ListMemoAttachmentsResponse)(nil), // 14: memos.api.v1.ListMemoAttachmentsResponse - (*MemoRelation)(nil), // 15: memos.api.v1.MemoRelation - (*SetMemoRelationsRequest)(nil), // 16: memos.api.v1.SetMemoRelationsRequest - (*ListMemoRelationsRequest)(nil), // 17: memos.api.v1.ListMemoRelationsRequest - (*ListMemoRelationsResponse)(nil), // 18: memos.api.v1.ListMemoRelationsResponse - (*CreateMemoCommentRequest)(nil), // 19: memos.api.v1.CreateMemoCommentRequest - (*ListMemoCommentsRequest)(nil), // 20: memos.api.v1.ListMemoCommentsRequest - (*ListMemoCommentsResponse)(nil), // 21: memos.api.v1.ListMemoCommentsResponse - (*ListMemoReactionsRequest)(nil), // 22: memos.api.v1.ListMemoReactionsRequest - (*ListMemoReactionsResponse)(nil), // 23: memos.api.v1.ListMemoReactionsResponse - (*UpsertMemoReactionRequest)(nil), // 24: memos.api.v1.UpsertMemoReactionRequest - (*DeleteMemoReactionRequest)(nil), // 25: memos.api.v1.DeleteMemoReactionRequest - (*Memo_Property)(nil), // 26: memos.api.v1.Memo.Property - (*MemoRelation_Memo)(nil), // 27: memos.api.v1.MemoRelation.Memo - (State)(0), // 28: memos.api.v1.State + (*Reaction)(nil), // 2: memos.api.v1.Reaction + (*Memo)(nil), // 3: memos.api.v1.Memo + (*Location)(nil), // 4: memos.api.v1.Location + (*CreateMemoRequest)(nil), // 5: memos.api.v1.CreateMemoRequest + (*ListMemosRequest)(nil), // 6: memos.api.v1.ListMemosRequest + (*ListMemosResponse)(nil), // 7: memos.api.v1.ListMemosResponse + (*GetMemoRequest)(nil), // 8: memos.api.v1.GetMemoRequest + (*UpdateMemoRequest)(nil), // 9: memos.api.v1.UpdateMemoRequest + (*DeleteMemoRequest)(nil), // 10: memos.api.v1.DeleteMemoRequest + (*RenameMemoTagRequest)(nil), // 11: memos.api.v1.RenameMemoTagRequest + (*DeleteMemoTagRequest)(nil), // 12: memos.api.v1.DeleteMemoTagRequest + (*SetMemoAttachmentsRequest)(nil), // 13: memos.api.v1.SetMemoAttachmentsRequest + (*ListMemoAttachmentsRequest)(nil), // 14: memos.api.v1.ListMemoAttachmentsRequest + (*ListMemoAttachmentsResponse)(nil), // 15: memos.api.v1.ListMemoAttachmentsResponse + (*MemoRelation)(nil), // 16: memos.api.v1.MemoRelation + (*SetMemoRelationsRequest)(nil), // 17: memos.api.v1.SetMemoRelationsRequest + (*ListMemoRelationsRequest)(nil), // 18: memos.api.v1.ListMemoRelationsRequest + (*ListMemoRelationsResponse)(nil), // 19: memos.api.v1.ListMemoRelationsResponse + (*CreateMemoCommentRequest)(nil), // 20: memos.api.v1.CreateMemoCommentRequest + (*ListMemoCommentsRequest)(nil), // 21: memos.api.v1.ListMemoCommentsRequest + (*ListMemoCommentsResponse)(nil), // 22: memos.api.v1.ListMemoCommentsResponse + (*ListMemoReactionsRequest)(nil), // 23: memos.api.v1.ListMemoReactionsRequest + (*ListMemoReactionsResponse)(nil), // 24: memos.api.v1.ListMemoReactionsResponse + (*UpsertMemoReactionRequest)(nil), // 25: memos.api.v1.UpsertMemoReactionRequest + (*DeleteMemoReactionRequest)(nil), // 26: memos.api.v1.DeleteMemoReactionRequest + (*Memo_Property)(nil), // 27: memos.api.v1.Memo.Property + (*MemoRelation_Memo)(nil), // 28: memos.api.v1.MemoRelation.Memo (*timestamppb.Timestamp)(nil), // 29: google.protobuf.Timestamp - (*Node)(nil), // 30: memos.api.v1.Node - (*Attachment)(nil), // 31: memos.api.v1.Attachment - (*Reaction)(nil), // 32: memos.api.v1.Reaction - (Direction)(0), // 33: memos.api.v1.Direction - (*fieldmaskpb.FieldMask)(nil), // 34: google.protobuf.FieldMask - (*emptypb.Empty)(nil), // 35: google.protobuf.Empty + (State)(0), // 30: memos.api.v1.State + (*Node)(nil), // 31: memos.api.v1.Node + (*Attachment)(nil), // 32: memos.api.v1.Attachment + (*fieldmaskpb.FieldMask)(nil), // 33: google.protobuf.FieldMask + (*emptypb.Empty)(nil), // 34: google.protobuf.Empty } var file_api_v1_memo_service_proto_depIdxs = []int32{ - 28, // 0: memos.api.v1.Memo.state:type_name -> memos.api.v1.State - 29, // 1: memos.api.v1.Memo.create_time:type_name -> google.protobuf.Timestamp - 29, // 2: memos.api.v1.Memo.update_time:type_name -> google.protobuf.Timestamp - 29, // 3: memos.api.v1.Memo.display_time:type_name -> google.protobuf.Timestamp - 30, // 4: memos.api.v1.Memo.nodes:type_name -> memos.api.v1.Node - 0, // 5: memos.api.v1.Memo.visibility:type_name -> memos.api.v1.Visibility - 31, // 6: memos.api.v1.Memo.attachments:type_name -> memos.api.v1.Attachment - 15, // 7: memos.api.v1.Memo.relations:type_name -> memos.api.v1.MemoRelation - 32, // 8: memos.api.v1.Memo.reactions:type_name -> memos.api.v1.Reaction - 26, // 9: memos.api.v1.Memo.property:type_name -> memos.api.v1.Memo.Property - 3, // 10: memos.api.v1.Memo.location:type_name -> memos.api.v1.Location - 2, // 11: memos.api.v1.CreateMemoRequest.memo:type_name -> memos.api.v1.Memo - 28, // 12: memos.api.v1.ListMemosRequest.state:type_name -> memos.api.v1.State - 33, // 13: memos.api.v1.ListMemosRequest.direction:type_name -> memos.api.v1.Direction - 2, // 14: memos.api.v1.ListMemosResponse.memos:type_name -> memos.api.v1.Memo - 2, // 15: memos.api.v1.UpdateMemoRequest.memo:type_name -> memos.api.v1.Memo - 34, // 16: memos.api.v1.UpdateMemoRequest.update_mask:type_name -> google.protobuf.FieldMask - 31, // 17: memos.api.v1.SetMemoAttachmentsRequest.attachments:type_name -> memos.api.v1.Attachment - 31, // 18: memos.api.v1.ListMemoAttachmentsResponse.attachments:type_name -> memos.api.v1.Attachment - 27, // 19: memos.api.v1.MemoRelation.memo:type_name -> memos.api.v1.MemoRelation.Memo - 27, // 20: memos.api.v1.MemoRelation.related_memo:type_name -> memos.api.v1.MemoRelation.Memo - 1, // 21: memos.api.v1.MemoRelation.type:type_name -> memos.api.v1.MemoRelation.Type - 15, // 22: memos.api.v1.SetMemoRelationsRequest.relations:type_name -> memos.api.v1.MemoRelation - 15, // 23: memos.api.v1.ListMemoRelationsResponse.relations:type_name -> memos.api.v1.MemoRelation - 2, // 24: memos.api.v1.CreateMemoCommentRequest.comment:type_name -> memos.api.v1.Memo - 2, // 25: memos.api.v1.ListMemoCommentsResponse.memos:type_name -> memos.api.v1.Memo - 32, // 26: memos.api.v1.ListMemoReactionsResponse.reactions:type_name -> memos.api.v1.Reaction - 32, // 27: memos.api.v1.UpsertMemoReactionRequest.reaction:type_name -> memos.api.v1.Reaction - 4, // 28: memos.api.v1.MemoService.CreateMemo:input_type -> memos.api.v1.CreateMemoRequest - 5, // 29: memos.api.v1.MemoService.ListMemos:input_type -> memos.api.v1.ListMemosRequest - 7, // 30: memos.api.v1.MemoService.GetMemo:input_type -> memos.api.v1.GetMemoRequest - 8, // 31: memos.api.v1.MemoService.UpdateMemo:input_type -> memos.api.v1.UpdateMemoRequest - 9, // 32: memos.api.v1.MemoService.DeleteMemo:input_type -> memos.api.v1.DeleteMemoRequest - 10, // 33: memos.api.v1.MemoService.RenameMemoTag:input_type -> memos.api.v1.RenameMemoTagRequest - 11, // 34: memos.api.v1.MemoService.DeleteMemoTag:input_type -> memos.api.v1.DeleteMemoTagRequest - 12, // 35: memos.api.v1.MemoService.SetMemoAttachments:input_type -> memos.api.v1.SetMemoAttachmentsRequest - 13, // 36: memos.api.v1.MemoService.ListMemoAttachments:input_type -> memos.api.v1.ListMemoAttachmentsRequest - 16, // 37: memos.api.v1.MemoService.SetMemoRelations:input_type -> memos.api.v1.SetMemoRelationsRequest - 17, // 38: memos.api.v1.MemoService.ListMemoRelations:input_type -> memos.api.v1.ListMemoRelationsRequest - 19, // 39: memos.api.v1.MemoService.CreateMemoComment:input_type -> memos.api.v1.CreateMemoCommentRequest - 20, // 40: memos.api.v1.MemoService.ListMemoComments:input_type -> memos.api.v1.ListMemoCommentsRequest - 22, // 41: memos.api.v1.MemoService.ListMemoReactions:input_type -> memos.api.v1.ListMemoReactionsRequest - 24, // 42: memos.api.v1.MemoService.UpsertMemoReaction:input_type -> memos.api.v1.UpsertMemoReactionRequest - 25, // 43: memos.api.v1.MemoService.DeleteMemoReaction:input_type -> memos.api.v1.DeleteMemoReactionRequest - 2, // 44: memos.api.v1.MemoService.CreateMemo:output_type -> memos.api.v1.Memo - 6, // 45: memos.api.v1.MemoService.ListMemos:output_type -> memos.api.v1.ListMemosResponse - 2, // 46: memos.api.v1.MemoService.GetMemo:output_type -> memos.api.v1.Memo - 2, // 47: memos.api.v1.MemoService.UpdateMemo:output_type -> memos.api.v1.Memo - 35, // 48: memos.api.v1.MemoService.DeleteMemo:output_type -> google.protobuf.Empty - 35, // 49: memos.api.v1.MemoService.RenameMemoTag:output_type -> google.protobuf.Empty - 35, // 50: memos.api.v1.MemoService.DeleteMemoTag:output_type -> google.protobuf.Empty - 35, // 51: memos.api.v1.MemoService.SetMemoAttachments:output_type -> google.protobuf.Empty - 14, // 52: memos.api.v1.MemoService.ListMemoAttachments:output_type -> memos.api.v1.ListMemoAttachmentsResponse - 35, // 53: memos.api.v1.MemoService.SetMemoRelations:output_type -> google.protobuf.Empty - 18, // 54: memos.api.v1.MemoService.ListMemoRelations:output_type -> memos.api.v1.ListMemoRelationsResponse - 2, // 55: memos.api.v1.MemoService.CreateMemoComment:output_type -> memos.api.v1.Memo - 21, // 56: memos.api.v1.MemoService.ListMemoComments:output_type -> memos.api.v1.ListMemoCommentsResponse - 23, // 57: memos.api.v1.MemoService.ListMemoReactions:output_type -> memos.api.v1.ListMemoReactionsResponse - 32, // 58: memos.api.v1.MemoService.UpsertMemoReaction:output_type -> memos.api.v1.Reaction - 35, // 59: memos.api.v1.MemoService.DeleteMemoReaction:output_type -> google.protobuf.Empty - 44, // [44:60] is the sub-list for method output_type - 28, // [28:44] is the sub-list for method input_type - 28, // [28:28] is the sub-list for extension type_name - 28, // [28:28] is the sub-list for extension extendee - 0, // [0:28] is the sub-list for field type_name + 29, // 0: memos.api.v1.Reaction.create_time:type_name -> google.protobuf.Timestamp + 30, // 1: memos.api.v1.Memo.state:type_name -> memos.api.v1.State + 29, // 2: memos.api.v1.Memo.create_time:type_name -> google.protobuf.Timestamp + 29, // 3: memos.api.v1.Memo.update_time:type_name -> google.protobuf.Timestamp + 29, // 4: memos.api.v1.Memo.display_time:type_name -> google.protobuf.Timestamp + 31, // 5: memos.api.v1.Memo.nodes:type_name -> memos.api.v1.Node + 0, // 6: memos.api.v1.Memo.visibility:type_name -> memos.api.v1.Visibility + 32, // 7: memos.api.v1.Memo.attachments:type_name -> memos.api.v1.Attachment + 16, // 8: memos.api.v1.Memo.relations:type_name -> memos.api.v1.MemoRelation + 2, // 9: memos.api.v1.Memo.reactions:type_name -> memos.api.v1.Reaction + 27, // 10: memos.api.v1.Memo.property:type_name -> memos.api.v1.Memo.Property + 4, // 11: memos.api.v1.Memo.location:type_name -> memos.api.v1.Location + 3, // 12: memos.api.v1.CreateMemoRequest.memo:type_name -> memos.api.v1.Memo + 30, // 13: memos.api.v1.ListMemosRequest.state:type_name -> memos.api.v1.State + 3, // 14: memos.api.v1.ListMemosResponse.memos:type_name -> memos.api.v1.Memo + 33, // 15: memos.api.v1.GetMemoRequest.read_mask:type_name -> google.protobuf.FieldMask + 3, // 16: memos.api.v1.UpdateMemoRequest.memo:type_name -> memos.api.v1.Memo + 33, // 17: memos.api.v1.UpdateMemoRequest.update_mask:type_name -> google.protobuf.FieldMask + 32, // 18: memos.api.v1.SetMemoAttachmentsRequest.attachments:type_name -> memos.api.v1.Attachment + 32, // 19: memos.api.v1.ListMemoAttachmentsResponse.attachments:type_name -> memos.api.v1.Attachment + 28, // 20: memos.api.v1.MemoRelation.memo:type_name -> memos.api.v1.MemoRelation.Memo + 28, // 21: memos.api.v1.MemoRelation.related_memo:type_name -> memos.api.v1.MemoRelation.Memo + 1, // 22: memos.api.v1.MemoRelation.type:type_name -> memos.api.v1.MemoRelation.Type + 16, // 23: memos.api.v1.SetMemoRelationsRequest.relations:type_name -> memos.api.v1.MemoRelation + 16, // 24: memos.api.v1.ListMemoRelationsResponse.relations:type_name -> memos.api.v1.MemoRelation + 3, // 25: memos.api.v1.CreateMemoCommentRequest.comment:type_name -> memos.api.v1.Memo + 3, // 26: memos.api.v1.ListMemoCommentsResponse.memos:type_name -> memos.api.v1.Memo + 2, // 27: memos.api.v1.ListMemoReactionsResponse.reactions:type_name -> memos.api.v1.Reaction + 2, // 28: memos.api.v1.UpsertMemoReactionRequest.reaction:type_name -> memos.api.v1.Reaction + 5, // 29: memos.api.v1.MemoService.CreateMemo:input_type -> memos.api.v1.CreateMemoRequest + 6, // 30: memos.api.v1.MemoService.ListMemos:input_type -> memos.api.v1.ListMemosRequest + 8, // 31: memos.api.v1.MemoService.GetMemo:input_type -> memos.api.v1.GetMemoRequest + 9, // 32: memos.api.v1.MemoService.UpdateMemo:input_type -> memos.api.v1.UpdateMemoRequest + 10, // 33: memos.api.v1.MemoService.DeleteMemo:input_type -> memos.api.v1.DeleteMemoRequest + 11, // 34: memos.api.v1.MemoService.RenameMemoTag:input_type -> memos.api.v1.RenameMemoTagRequest + 12, // 35: memos.api.v1.MemoService.DeleteMemoTag:input_type -> memos.api.v1.DeleteMemoTagRequest + 13, // 36: memos.api.v1.MemoService.SetMemoAttachments:input_type -> memos.api.v1.SetMemoAttachmentsRequest + 14, // 37: memos.api.v1.MemoService.ListMemoAttachments:input_type -> memos.api.v1.ListMemoAttachmentsRequest + 17, // 38: memos.api.v1.MemoService.SetMemoRelations:input_type -> memos.api.v1.SetMemoRelationsRequest + 18, // 39: memos.api.v1.MemoService.ListMemoRelations:input_type -> memos.api.v1.ListMemoRelationsRequest + 20, // 40: memos.api.v1.MemoService.CreateMemoComment:input_type -> memos.api.v1.CreateMemoCommentRequest + 21, // 41: memos.api.v1.MemoService.ListMemoComments:input_type -> memos.api.v1.ListMemoCommentsRequest + 23, // 42: memos.api.v1.MemoService.ListMemoReactions:input_type -> memos.api.v1.ListMemoReactionsRequest + 25, // 43: memos.api.v1.MemoService.UpsertMemoReaction:input_type -> memos.api.v1.UpsertMemoReactionRequest + 26, // 44: memos.api.v1.MemoService.DeleteMemoReaction:input_type -> memos.api.v1.DeleteMemoReactionRequest + 3, // 45: memos.api.v1.MemoService.CreateMemo:output_type -> memos.api.v1.Memo + 7, // 46: memos.api.v1.MemoService.ListMemos:output_type -> memos.api.v1.ListMemosResponse + 3, // 47: memos.api.v1.MemoService.GetMemo:output_type -> memos.api.v1.Memo + 3, // 48: memos.api.v1.MemoService.UpdateMemo:output_type -> memos.api.v1.Memo + 34, // 49: memos.api.v1.MemoService.DeleteMemo:output_type -> google.protobuf.Empty + 34, // 50: memos.api.v1.MemoService.RenameMemoTag:output_type -> google.protobuf.Empty + 34, // 51: memos.api.v1.MemoService.DeleteMemoTag:output_type -> google.protobuf.Empty + 34, // 52: memos.api.v1.MemoService.SetMemoAttachments:output_type -> google.protobuf.Empty + 15, // 53: memos.api.v1.MemoService.ListMemoAttachments:output_type -> memos.api.v1.ListMemoAttachmentsResponse + 34, // 54: memos.api.v1.MemoService.SetMemoRelations:output_type -> google.protobuf.Empty + 19, // 55: memos.api.v1.MemoService.ListMemoRelations:output_type -> memos.api.v1.ListMemoRelationsResponse + 3, // 56: memos.api.v1.MemoService.CreateMemoComment:output_type -> memos.api.v1.Memo + 22, // 57: memos.api.v1.MemoService.ListMemoComments:output_type -> memos.api.v1.ListMemoCommentsResponse + 24, // 58: memos.api.v1.MemoService.ListMemoReactions:output_type -> memos.api.v1.ListMemoReactionsResponse + 2, // 59: memos.api.v1.MemoService.UpsertMemoReaction:output_type -> memos.api.v1.Reaction + 34, // 60: memos.api.v1.MemoService.DeleteMemoReaction:output_type -> google.protobuf.Empty + 45, // [45:61] is the sub-list for method output_type + 29, // [29:45] is the sub-list for method input_type + 29, // [29:29] is the sub-list for extension type_name + 29, // [29:29] is the sub-list for extension extendee + 0, // [0:29] is the sub-list for field type_name } func init() { file_api_v1_memo_service_proto_init() } @@ -1933,15 +2371,14 @@ func file_api_v1_memo_service_proto_init() { file_api_v1_attachment_service_proto_init() file_api_v1_common_proto_init() file_api_v1_markdown_service_proto_init() - file_api_v1_reaction_service_proto_init() - file_api_v1_memo_service_proto_msgTypes[0].OneofWrappers = []any{} + file_api_v1_memo_service_proto_msgTypes[1].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_api_v1_memo_service_proto_rawDesc), len(file_api_v1_memo_service_proto_rawDesc)), NumEnums: 2, - NumMessages: 26, + NumMessages: 27, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/gen/api/v1/memo_service.pb.gw.go b/proto/gen/api/v1/memo_service.pb.gw.go index 55d8aac0c..200f48dff 100644 --- a/proto/gen/api/v1/memo_service.pb.gw.go +++ b/proto/gen/api/v1/memo_service.pb.gw.go @@ -35,6 +35,8 @@ var ( _ = metadata.Join ) +var filter_MemoService_CreateMemo_0 = &utilities.DoubleArray{Encoding: map[string]int{"memo": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} + func request_MemoService_CreateMemo_0(ctx context.Context, marshaler runtime.Marshaler, client MemoServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var ( protoReq CreateMemoRequest @@ -43,6 +45,12 @@ func request_MemoService_CreateMemo_0(ctx context.Context, marshaler runtime.Mar if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Memo); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_CreateMemo_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } msg, err := client.CreateMemo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -55,6 +63,12 @@ func local_request_MemoService_CreateMemo_0(ctx context.Context, marshaler runti if err := marshaler.NewDecoder(req.Body).Decode(&protoReq.Memo); err != nil && !errors.Is(err, io.EOF) { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_CreateMemo_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } msg, err := server.CreateMemo(ctx, &protoReq) return msg, metadata, err } @@ -143,6 +157,8 @@ func local_request_MemoService_ListMemos_1(ctx context.Context, marshaler runtim return msg, metadata, err } +var filter_MemoService_GetMemo_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} + func request_MemoService_GetMemo_0(ctx context.Context, marshaler runtime.Marshaler, client MemoServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var ( protoReq GetMemoRequest @@ -158,6 +174,12 @@ func request_MemoService_GetMemo_0(ctx context.Context, marshaler runtime.Marsha if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_GetMemo_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } msg, err := client.GetMemo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -176,6 +198,12 @@ func local_request_MemoService_GetMemo_0(ctx context.Context, marshaler runtime. if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_GetMemo_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } msg, err := server.GetMemo(ctx, &protoReq) return msg, metadata, err } @@ -258,6 +286,8 @@ func local_request_MemoService_UpdateMemo_0(ctx context.Context, marshaler runti return msg, metadata, err } +var filter_MemoService_DeleteMemo_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} + func request_MemoService_DeleteMemo_0(ctx context.Context, marshaler runtime.Marshaler, client MemoServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var ( protoReq DeleteMemoRequest @@ -273,6 +303,12 @@ func request_MemoService_DeleteMemo_0(ctx context.Context, marshaler runtime.Mar if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_DeleteMemo_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } msg, err := client.DeleteMemo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -291,6 +327,12 @@ func local_request_MemoService_DeleteMemo_0(ctx context.Context, marshaler runti if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_DeleteMemo_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } msg, err := server.DeleteMemo(ctx, &protoReq) return msg, metadata, err } @@ -446,6 +488,8 @@ func local_request_MemoService_SetMemoAttachments_0(ctx context.Context, marshal return msg, metadata, err } +var filter_MemoService_ListMemoAttachments_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} + func request_MemoService_ListMemoAttachments_0(ctx context.Context, marshaler runtime.Marshaler, client MemoServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var ( protoReq ListMemoAttachmentsRequest @@ -461,6 +505,12 @@ func request_MemoService_ListMemoAttachments_0(ctx context.Context, marshaler ru if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_ListMemoAttachments_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } msg, err := client.ListMemoAttachments(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -479,6 +529,12 @@ func local_request_MemoService_ListMemoAttachments_0(ctx context.Context, marsha if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_ListMemoAttachments_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } msg, err := server.ListMemoAttachments(ctx, &protoReq) return msg, metadata, err } @@ -525,6 +581,8 @@ func local_request_MemoService_SetMemoRelations_0(ctx context.Context, marshaler return msg, metadata, err } +var filter_MemoService_ListMemoRelations_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} + func request_MemoService_ListMemoRelations_0(ctx context.Context, marshaler runtime.Marshaler, client MemoServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var ( protoReq ListMemoRelationsRequest @@ -540,6 +598,12 @@ func request_MemoService_ListMemoRelations_0(ctx context.Context, marshaler runt if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_ListMemoRelations_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } msg, err := client.ListMemoRelations(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -558,10 +622,18 @@ func local_request_MemoService_ListMemoRelations_0(ctx context.Context, marshale if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_ListMemoRelations_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } msg, err := server.ListMemoRelations(ctx, &protoReq) return msg, metadata, err } +var filter_MemoService_CreateMemoComment_0 = &utilities.DoubleArray{Encoding: map[string]int{"comment": 0, "name": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}} + func request_MemoService_CreateMemoComment_0(ctx context.Context, marshaler runtime.Marshaler, client MemoServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var ( protoReq CreateMemoCommentRequest @@ -579,6 +651,12 @@ func request_MemoService_CreateMemoComment_0(ctx context.Context, marshaler runt if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_CreateMemoComment_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } msg, err := client.CreateMemoComment(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -600,10 +678,18 @@ func local_request_MemoService_CreateMemoComment_0(ctx context.Context, marshale if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_CreateMemoComment_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } msg, err := server.CreateMemoComment(ctx, &protoReq) return msg, metadata, err } +var filter_MemoService_ListMemoComments_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} + func request_MemoService_ListMemoComments_0(ctx context.Context, marshaler runtime.Marshaler, client MemoServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var ( protoReq ListMemoCommentsRequest @@ -619,6 +705,12 @@ func request_MemoService_ListMemoComments_0(ctx context.Context, marshaler runti if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_ListMemoComments_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } msg, err := client.ListMemoComments(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -637,10 +729,18 @@ func local_request_MemoService_ListMemoComments_0(ctx context.Context, marshaler if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_ListMemoComments_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } msg, err := server.ListMemoComments(ctx, &protoReq) return msg, metadata, err } +var filter_MemoService_ListMemoReactions_0 = &utilities.DoubleArray{Encoding: map[string]int{"name": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} + func request_MemoService_ListMemoReactions_0(ctx context.Context, marshaler runtime.Marshaler, client MemoServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var ( protoReq ListMemoReactionsRequest @@ -656,6 +756,12 @@ func request_MemoService_ListMemoReactions_0(ctx context.Context, marshaler runt if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_ListMemoReactions_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } msg, err := client.ListMemoReactions(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } @@ -674,6 +780,12 @@ func local_request_MemoService_ListMemoReactions_0(ctx context.Context, marshale if err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_MemoService_ListMemoReactions_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } msg, err := server.ListMemoReactions(ctx, &protoReq) return msg, metadata, err } @@ -727,13 +839,13 @@ func request_MemoService_DeleteMemoReaction_0(ctx context.Context, marshaler run err error ) io.Copy(io.Discard, req.Body) - val, ok := pathParams["id"] + val, ok := pathParams["name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") } - protoReq.Id, err = runtime.Int32(val) + protoReq.Name, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } msg, err := client.DeleteMemoReaction(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err @@ -745,13 +857,13 @@ func local_request_MemoService_DeleteMemoReaction_0(ctx context.Context, marshal metadata runtime.ServerMetadata err error ) - val, ok := pathParams["id"] + val, ok := pathParams["name"] if !ok { - return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name") } - protoReq.Id, err = runtime.Int32(val) + protoReq.Name, err = runtime.String(val) if err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err) } msg, err := server.DeleteMemoReaction(ctx, &protoReq) return msg, metadata, err @@ -1089,7 +1201,7 @@ func RegisterMemoServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/memos.api.v1.MemoService/DeleteMemoReaction", runtime.WithHTTPPathPattern("/api/v1/reactions/{id}")) + annotatedContext, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/memos.api.v1.MemoService/DeleteMemoReaction", runtime.WithHTTPPathPattern("/api/v1/{name=reactions/*}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -1419,7 +1531,7 @@ func RegisterMemoServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/memos.api.v1.MemoService/DeleteMemoReaction", runtime.WithHTTPPathPattern("/api/v1/reactions/{id}")) + annotatedContext, err := runtime.AnnotateContext(ctx, mux, req, "/memos.api.v1.MemoService/DeleteMemoReaction", runtime.WithHTTPPathPattern("/api/v1/{name=reactions/*}")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -1452,7 +1564,7 @@ var ( pattern_MemoService_ListMemoComments_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 2, 5, 3, 2, 4}, []string{"api", "v1", "memos", "name", "comments"}, "")) pattern_MemoService_ListMemoReactions_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 2, 5, 3, 2, 4}, []string{"api", "v1", "memos", "name", "reactions"}, "")) pattern_MemoService_UpsertMemoReaction_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 2, 5, 3, 2, 4}, []string{"api", "v1", "memos", "name", "reactions"}, "")) - pattern_MemoService_DeleteMemoReaction_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "reactions", "id"}, "")) + pattern_MemoService_DeleteMemoReaction_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 2, 5, 3}, []string{"api", "v1", "reactions", "name"}, "")) ) var ( diff --git a/proto/gen/api/v1/reaction_service.pb.go b/proto/gen/api/v1/reaction_service.pb.go deleted file mode 100644 index 9e488aec4..000000000 --- a/proto/gen/api/v1/reaction_service.pb.go +++ /dev/null @@ -1,155 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.36.6 -// protoc (unknown) -// source: api/v1/reaction_service.proto - -package apiv1 - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" - unsafe "unsafe" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type Reaction struct { - state protoimpl.MessageState `protogen:"open.v1"` - Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` - // The name of the creator. - // Format: users/{user} - Creator string `protobuf:"bytes,2,opt,name=creator,proto3" json:"creator,omitempty"` - // The content identifier. - // For memo, it should be the `Memo.name`. - ContentId string `protobuf:"bytes,3,opt,name=content_id,json=contentId,proto3" json:"content_id,omitempty"` - ReactionType string `protobuf:"bytes,4,opt,name=reaction_type,json=reactionType,proto3" json:"reaction_type,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache -} - -func (x *Reaction) Reset() { - *x = Reaction{} - mi := &file_api_v1_reaction_service_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *Reaction) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Reaction) ProtoMessage() {} - -func (x *Reaction) ProtoReflect() protoreflect.Message { - mi := &file_api_v1_reaction_service_proto_msgTypes[0] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Reaction.ProtoReflect.Descriptor instead. -func (*Reaction) Descriptor() ([]byte, []int) { - return file_api_v1_reaction_service_proto_rawDescGZIP(), []int{0} -} - -func (x *Reaction) GetId() int32 { - if x != nil { - return x.Id - } - return 0 -} - -func (x *Reaction) GetCreator() string { - if x != nil { - return x.Creator - } - return "" -} - -func (x *Reaction) GetContentId() string { - if x != nil { - return x.ContentId - } - return "" -} - -func (x *Reaction) GetReactionType() string { - if x != nil { - return x.ReactionType - } - return "" -} - -var File_api_v1_reaction_service_proto protoreflect.FileDescriptor - -const file_api_v1_reaction_service_proto_rawDesc = "" + - "\n" + - "\x1dapi/v1/reaction_service.proto\x12\fmemos.api.v1\"x\n" + - "\bReaction\x12\x0e\n" + - "\x02id\x18\x01 \x01(\x05R\x02id\x12\x18\n" + - "\acreator\x18\x02 \x01(\tR\acreator\x12\x1d\n" + - "\n" + - "content_id\x18\x03 \x01(\tR\tcontentId\x12#\n" + - "\rreaction_type\x18\x04 \x01(\tR\freactionTypeB\xac\x01\n" + - "\x10com.memos.api.v1B\x14ReactionServiceProtoP\x01Z0github.com/usememos/memos/proto/gen/api/v1;apiv1\xa2\x02\x03MAX\xaa\x02\fMemos.Api.V1\xca\x02\fMemos\\Api\\V1\xe2\x02\x18Memos\\Api\\V1\\GPBMetadata\xea\x02\x0eMemos::Api::V1b\x06proto3" - -var ( - file_api_v1_reaction_service_proto_rawDescOnce sync.Once - file_api_v1_reaction_service_proto_rawDescData []byte -) - -func file_api_v1_reaction_service_proto_rawDescGZIP() []byte { - file_api_v1_reaction_service_proto_rawDescOnce.Do(func() { - file_api_v1_reaction_service_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_api_v1_reaction_service_proto_rawDesc), len(file_api_v1_reaction_service_proto_rawDesc))) - }) - return file_api_v1_reaction_service_proto_rawDescData -} - -var file_api_v1_reaction_service_proto_msgTypes = make([]protoimpl.MessageInfo, 1) -var file_api_v1_reaction_service_proto_goTypes = []any{ - (*Reaction)(nil), // 0: memos.api.v1.Reaction -} -var file_api_v1_reaction_service_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_api_v1_reaction_service_proto_init() } -func file_api_v1_reaction_service_proto_init() { - if File_api_v1_reaction_service_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: unsafe.Slice(unsafe.StringData(file_api_v1_reaction_service_proto_rawDesc), len(file_api_v1_reaction_service_proto_rawDesc)), - NumEnums: 0, - NumMessages: 1, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_api_v1_reaction_service_proto_goTypes, - DependencyIndexes: file_api_v1_reaction_service_proto_depIdxs, - MessageInfos: file_api_v1_reaction_service_proto_msgTypes, - }.Build() - File_api_v1_reaction_service_proto = out.File - file_api_v1_reaction_service_proto_goTypes = nil - file_api_v1_reaction_service_proto_depIdxs = nil -} diff --git a/proto/gen/apidocs.swagger.yaml b/proto/gen/apidocs.swagger.yaml index b926a4cab..3ce72885c 100644 --- a/proto/gen/apidocs.swagger.yaml +++ b/proto/gen/apidocs.swagger.yaml @@ -391,27 +391,32 @@ paths: parameters: - name: parent description: |- - The parent is the owner of the memos. + Optional. The parent is the owner of the memos. If not specified or `users/-`, it will list all memos. + Format: users/{user} in: query required: false type: string - name: pageSize - description: The maximum number of memos to return. + description: |- + Optional. The maximum number of memos to return. + The service may return fewer than this value. + If unspecified, at most 50 memos will be returned. + The maximum value is 1000; values above 1000 will be coerced to 1000. in: query required: false type: integer format: int32 - name: pageToken description: |- - A page token, received from a previous `ListMemos` call. + Optional. A page token, received from a previous `ListMemos` call. Provide this to retrieve the subsequent page. in: query required: false type: string - name: state description: |- - The state of the memos to list. + Optional. The state of the memos to list. Default to `NORMAL`. Set to `ARCHIVED` to list archived memos. in: query required: false @@ -421,32 +426,27 @@ paths: - NORMAL - ARCHIVED default: STATE_UNSPECIFIED - - name: sort - description: |- - What field to sort the results by. - Default to display_time. - in: query - required: false - type: string - - name: direction + - name: orderBy description: |- - The direction to sort the results by. - Default to DESC. + Optional. The order to sort results by. + Default to "display_time desc". + Example: "display_time desc" or "create_time asc" in: query required: false type: string - enum: - - DIRECTION_UNSPECIFIED - - ASC - - DESC - default: DIRECTION_UNSPECIFIED - name: filter description: |- + Optional. Filter to apply to the list results. Filter is a CEL expression to filter memos. Refer to `Shortcut.filter`. in: query required: false type: string + - name: showDeleted + description: Optional. If true, show deleted memos in the response. + in: query + required: false + type: boolean - name: oldFilter description: |- [Deprecated] Old filter contains some specific conditions to filter memos. @@ -470,38 +470,30 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: memo - description: The memo to create. + description: Required. The memo to create. in: body required: true schema: $ref: '#/definitions/apiv1Memo' required: - memo - tags: - - MemoService - /api/v1/reactions/{id}: - delete: - summary: DeleteMemoReaction deletes a reaction for a memo. - operationId: MemoService_DeleteMemoReaction - responses: - "200": - description: A successful response. - schema: - type: object - properties: {} - default: - description: An unexpected error response. - schema: - $ref: '#/definitions/googlerpcStatus' - parameters: - - name: id + - name: memoId description: |- - The id of the reaction. - Refer to the `Reaction.id`. - in: path - required: true - type: integer - format: int32 + Optional. The memo ID to use for this memo. + If empty, a unique ID will be generated. + in: query + required: false + type: string + - name: validateOnly + description: Optional. If set, validate the request but don't actually create the memo. + in: query + required: false + type: boolean + - name: requestId + description: Optional. An idempotency token. + in: query + required: false + type: string tags: - MemoService /api/v1/users: @@ -972,7 +964,7 @@ paths: parameters: - name: memo.name description: |- - The name of the memo. + The resource name of the memo. Format: memos/{memo}, memo is the user defined id or uuid. in: path required: true @@ -980,7 +972,7 @@ paths: pattern: memos/[^/]+ - name: memo description: |- - The memo to update. + Required. The memo to update. The `name` field is required. in: body required: true @@ -989,74 +981,98 @@ paths: properties: state: $ref: '#/definitions/v1State' + description: The state of the memo. creator: type: string title: |- The name of the creator. Format: users/{user} + readOnly: true createTime: type: string format: date-time + description: Output only. The creation timestamp. + readOnly: true updateTime: type: string format: date-time + description: Output only. The last update timestamp. + readOnly: true displayTime: type: string format: date-time + description: The display timestamp of the memo. content: type: string + description: Required. The content of the memo in Markdown format. nodes: type: array items: type: object $ref: '#/definitions/v1Node' + description: Output only. The parsed nodes from the content. readOnly: true visibility: $ref: '#/definitions/v1Visibility' + description: The visibility of the memo. tags: type: array items: type: string + description: Output only. The tags extracted from the content. readOnly: true pinned: type: boolean + description: Whether the memo is pinned. attachments: type: array items: type: object $ref: '#/definitions/v1Attachment' + description: Optional. The attachments of the memo. relations: type: array items: type: object $ref: '#/definitions/v1MemoRelation' + description: Optional. The relations of the memo. reactions: type: array items: type: object $ref: '#/definitions/v1Reaction' + description: Output only. The reactions to the memo. readOnly: true property: $ref: '#/definitions/v1MemoProperty' + description: Output only. The computed properties of the memo. readOnly: true parent: type: string title: |- - The name of the parent memo. - Format: memos/{id} + Output only. The name of the parent memo. + Format: memos/{memo} readOnly: true snippet: type: string - description: The snippet of the memo content. Plain text only. + description: Output only. The snippet of the memo content. Plain text only. readOnly: true location: $ref: '#/definitions/apiv1Location' - description: The location of the memo. + description: Optional. The location of the memo. title: |- - The memo to update. + Required. The memo to update. The `name` field is required. required: + - state + - content + - visibility - memo + - name: allowMissing + description: Optional. If set to true, allows updating sensitive fields. + in: query + required: false + type: boolean tags: - MemoService /api/v1/{name_1}: @@ -1230,11 +1246,20 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: name_4 - description: The name of the memo. + description: |- + Required. The resource name of the memo. + Format: memos/{memo} in: path required: true type: string pattern: memos/[^/]+ + - name: readMask + description: |- + Optional. The fields to return in the response. + If not specified, all fields are returned. + in: query + required: false + type: string tags: - MemoService delete: @@ -1300,11 +1325,18 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: name_5 - description: The name of the memo. + description: |- + Required. The resource name of the memo to delete. + Format: memos/{memo} in: path required: true type: string pattern: memos/[^/]+ + - name: force + description: Optional. If set to true, the memo will be deleted even if it has associated data. + in: query + required: false + type: boolean tags: - MemoService /api/v1/{name_6}: @@ -1339,8 +1371,8 @@ paths: tags: - WebhookService delete: - summary: DeleteShortcut deletes a shortcut for a user. - operationId: ShortcutService_DeleteShortcut + summary: DeleteMemoReaction deletes a reaction for a memo. + operationId: MemoService_DeleteMemoReaction responses: "200": description: A successful response. @@ -1354,14 +1386,14 @@ paths: parameters: - name: name_6 description: |- - Required. The resource name of the shortcut to delete. - Format: users/{user}/shortcuts/{shortcut} + Required. The resource name of the reaction to delete. + Format: reactions/{reaction} in: path required: true type: string - pattern: users/[^/]+/shortcuts/[^/]+ + pattern: reactions/[^/]+ tags: - - ShortcutService + - MemoService /api/v1/{name_7}: get: summary: Gets a workspace setting. @@ -1386,6 +1418,31 @@ paths: pattern: workspace/settings/[^/]+ tags: - WorkspaceService + delete: + summary: DeleteShortcut deletes a shortcut for a user. + operationId: ShortcutService_DeleteShortcut + responses: + "200": + description: A successful response. + schema: + type: object + properties: {} + default: + description: An unexpected error response. + schema: + $ref: '#/definitions/googlerpcStatus' + parameters: + - name: name_7 + description: |- + Required. The resource name of the shortcut to delete. + Format: users/{user}/shortcuts/{shortcut} + in: path + required: true + type: string + pattern: users/[^/]+/shortcuts/[^/]+ + tags: + - ShortcutService + /api/v1/{name_8}: delete: summary: DeleteWebhook deletes a webhook. operationId: WebhookService_DeleteWebhook @@ -1400,7 +1457,7 @@ paths: schema: $ref: '#/definitions/googlerpcStatus' parameters: - - name: name_7 + - name: name_8 description: |- Required. The resource name of the webhook to delete. Format: webhooks/{webhook} @@ -1478,11 +1535,24 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: name - description: The name of the memo. + description: |- + Required. The resource name of the memo. + Format: memos/{memo} in: path required: true type: string pattern: memos/[^/]+ + - name: pageSize + description: Optional. The maximum number of attachments to return. + in: query + required: false + type: integer + format: int32 + - name: pageToken + description: Optional. A page token for pagination. + in: query + required: false + type: string tags: - MemoService patch: @@ -1500,7 +1570,9 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: name - description: The name of the memo. + description: |- + Required. The resource name of the memo. + Format: memos/{memo} in: path required: true type: string @@ -1551,11 +1623,29 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: name - description: The name of the memo. + description: |- + Required. The resource name of the memo. + Format: memos/{memo} in: path required: true type: string pattern: memos/[^/]+ + - name: pageSize + description: Optional. The maximum number of comments to return. + in: query + required: false + type: integer + format: int32 + - name: pageToken + description: Optional. A page token for pagination. + in: query + required: false + type: string + - name: orderBy + description: Optional. The order to sort results by. + in: query + required: false + type: string tags: - MemoService post: @@ -1572,17 +1662,26 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: name - description: The name of the memo. + description: |- + Required. The resource name of the memo. + Format: memos/{memo} in: path required: true type: string pattern: memos/[^/]+ - name: comment - description: The comment to create. + description: Required. The comment to create. in: body required: true schema: $ref: '#/definitions/apiv1Memo' + required: + - comment + - name: commentId + description: Optional. The comment ID to use. + in: query + required: false + type: string tags: - MemoService /api/v1/{name}/reactions: @@ -1600,11 +1699,24 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: name - description: The name of the memo. + description: |- + Required. The resource name of the memo. + Format: memos/{memo} in: path required: true type: string pattern: memos/[^/]+ + - name: pageSize + description: Optional. The maximum number of reactions to return. + in: query + required: false + type: integer + format: int32 + - name: pageToken + description: Optional. A page token for pagination. + in: query + required: false + type: string tags: - MemoService post: @@ -1621,7 +1733,9 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: name - description: The name of the memo. + description: |- + Required. The resource name of the memo. + Format: memos/{memo} in: path required: true type: string @@ -1648,11 +1762,24 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: name - description: The name of the memo. + description: |- + Required. The resource name of the memo. + Format: memos/{memo} in: path required: true type: string pattern: memos/[^/]+ + - name: pageSize + description: Optional. The maximum number of relations to return. + in: query + required: false + type: integer + format: int32 + - name: pageToken + description: Optional. A page token for pagination. + in: query + required: false + type: string tags: - MemoService patch: @@ -1670,7 +1797,9 @@ paths: $ref: '#/definitions/googlerpcStatus' parameters: - name: name - description: The name of the memo. + description: |- + Required. The resource name of the memo. + Format: memos/{memo} in: path required: true type: string @@ -1874,28 +2003,33 @@ paths: parameters: - name: parent description: |- - The parent is the owner of the memos. + Optional. The parent is the owner of the memos. If not specified or `users/-`, it will list all memos. + Format: users/{user} in: path required: true type: string pattern: users/[^/]+ - name: pageSize - description: The maximum number of memos to return. + description: |- + Optional. The maximum number of memos to return. + The service may return fewer than this value. + If unspecified, at most 50 memos will be returned. + The maximum value is 1000; values above 1000 will be coerced to 1000. in: query required: false type: integer format: int32 - name: pageToken description: |- - A page token, received from a previous `ListMemos` call. + Optional. A page token, received from a previous `ListMemos` call. Provide this to retrieve the subsequent page. in: query required: false type: string - name: state description: |- - The state of the memos to list. + Optional. The state of the memos to list. Default to `NORMAL`. Set to `ARCHIVED` to list archived memos. in: query required: false @@ -1905,32 +2039,27 @@ paths: - NORMAL - ARCHIVED default: STATE_UNSPECIFIED - - name: sort - description: |- - What field to sort the results by. - Default to display_time. - in: query - required: false - type: string - - name: direction + - name: orderBy description: |- - The direction to sort the results by. - Default to DESC. + Optional. The order to sort results by. + Default to "display_time desc". + Example: "display_time desc" or "create_time asc" in: query required: false type: string - enum: - - DIRECTION_UNSPECIFIED - - ASC - - DESC - default: DIRECTION_UNSPECIFIED - name: filter description: |- + Optional. Filter to apply to the list results. Filter is a CEL expression to filter memos. Refer to `Shortcut.filter`. in: query required: false type: string + - name: showDeleted + description: Optional. If true, show deleted memos in the response. + in: query + required: false + type: boolean - name: oldFilter description: |- [Deprecated] Old filter contains some specific conditions to filter memos. @@ -2028,17 +2157,19 @@ paths: parameters: - name: parent description: |- - The parent, who owns the tags. - Format: memos/{id}. Use "memos/-" to delete all tags. + Required. The parent, who owns the tags. + Format: memos/{memo}. Use "memos/-" to delete all tags. in: path required: true type: string pattern: memos/[^/]+ - name: tag + description: Required. The tag name to delete. in: path required: true type: string - name: deleteRelatedMemos + description: Optional. Whether to delete related memos. in: query required: false type: boolean @@ -2061,8 +2192,8 @@ paths: parameters: - name: parent description: |- - The parent, who owns the tags. - Format: memos/{id}. Use "memos/-" to rename all tags. + Required. The parent, who owns the tags. + Format: memos/{memo}. Use "memos/-" to rename all tags. in: path required: true type: string @@ -2420,8 +2551,13 @@ definitions: properties: oldTag: type: string + description: Required. The old tag name to rename. newTag: type: string + description: Required. The new tag name. + required: + - oldTag + - newTag MemoServiceSetMemoAttachmentsBody: type: object properties: @@ -2430,6 +2566,9 @@ definitions: items: type: object $ref: '#/definitions/v1Attachment' + description: Required. The attachments to set for the memo. + required: + - attachments MemoServiceSetMemoRelationsBody: type: object properties: @@ -2438,11 +2577,17 @@ definitions: items: type: object $ref: '#/definitions/v1MemoRelation' + description: Required. The relations to set for the memo. + required: + - relations MemoServiceUpsertMemoReactionBody: type: object properties: reaction: $ref: '#/definitions/v1Reaction' + description: Required. The reaction to upsert. + required: + - reaction TableNodeRow: type: object properties: @@ -2635,86 +2780,108 @@ definitions: properties: placeholder: type: string + description: A placeholder text for the location. latitude: type: number format: double + description: The latitude of the location. longitude: type: number format: double + description: The longitude of the location. apiv1Memo: type: object properties: name: type: string description: |- - The name of the memo. + The resource name of the memo. Format: memos/{memo}, memo is the user defined id or uuid. - readOnly: true state: $ref: '#/definitions/v1State' + description: The state of the memo. creator: type: string title: |- The name of the creator. Format: users/{user} + readOnly: true createTime: type: string format: date-time + description: Output only. The creation timestamp. + readOnly: true updateTime: type: string format: date-time + description: Output only. The last update timestamp. + readOnly: true displayTime: type: string format: date-time + description: The display timestamp of the memo. content: type: string + description: Required. The content of the memo in Markdown format. nodes: type: array items: type: object $ref: '#/definitions/v1Node' + description: Output only. The parsed nodes from the content. readOnly: true visibility: $ref: '#/definitions/v1Visibility' + description: The visibility of the memo. tags: type: array items: type: string + description: Output only. The tags extracted from the content. readOnly: true pinned: type: boolean + description: Whether the memo is pinned. attachments: type: array items: type: object $ref: '#/definitions/v1Attachment' + description: Optional. The attachments of the memo. relations: type: array items: type: object $ref: '#/definitions/v1MemoRelation' + description: Optional. The relations of the memo. reactions: type: array items: type: object $ref: '#/definitions/v1Reaction' + description: Output only. The reactions to the memo. readOnly: true property: $ref: '#/definitions/v1MemoProperty' + description: Output only. The computed properties of the memo. readOnly: true parent: type: string title: |- - The name of the parent memo. - Format: memos/{id} + Output only. The name of the parent memo. + Format: memos/{memo} readOnly: true snippet: type: string - description: The snippet of the memo content. Plain text only. + description: Output only. The snippet of the memo content. Plain text only. readOnly: true location: $ref: '#/definitions/apiv1Location' - description: The location of the memo. + description: Optional. The location of the memo. + required: + - state + - content + - visibility apiv1OAuth2Config: type: object properties: @@ -3157,13 +3324,6 @@ definitions: properties: content: type: string - v1Direction: - type: string - enum: - - DIRECTION_UNSPECIFIED - - ASC - - DESC - default: DIRECTION_UNSPECIFIED v1EmbeddedContentNode: type: object properties: @@ -3393,6 +3553,14 @@ definitions: items: type: object $ref: '#/definitions/v1Attachment' + description: The list of attachments. + nextPageToken: + type: string + description: A token for the next page of results. + totalSize: + type: integer + format: int32 + description: The total count of attachments. v1ListMemoCommentsResponse: type: object properties: @@ -3401,6 +3569,14 @@ definitions: items: type: object $ref: '#/definitions/apiv1Memo' + description: The list of comment memos. + nextPageToken: + type: string + description: A token for the next page of results. + totalSize: + type: integer + format: int32 + description: The total count of comments. v1ListMemoReactionsResponse: type: object properties: @@ -3409,6 +3585,14 @@ definitions: items: type: object $ref: '#/definitions/v1Reaction' + description: The list of reactions. + nextPageToken: + type: string + description: A token for the next page of results. + totalSize: + type: integer + format: int32 + description: The total count of reactions. v1ListMemoRelationsResponse: type: object properties: @@ -3417,6 +3601,14 @@ definitions: items: type: object $ref: '#/definitions/v1MemoRelation' + description: The list of relations. + nextPageToken: + type: string + description: A token for the next page of results. + totalSize: + type: integer + format: int32 + description: The total count of relations. v1ListMemosResponse: type: object properties: @@ -3425,11 +3617,16 @@ definitions: items: type: object $ref: '#/definitions/apiv1Memo' + description: The list of memos. nextPageToken: type: string description: |- - A token, which can be sent as `page_token` to retrieve the next page. + A token that can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages. + totalSize: + type: integer + format: int32 + description: The total count of memos (may be approximate). v1ListNode: type: object properties: @@ -3532,29 +3729,41 @@ definitions: type: boolean hasIncompleteTasks: type: boolean + description: Computed properties of a memo. v1MemoRelation: type: object properties: memo: $ref: '#/definitions/v1MemoRelationMemo' + description: The memo in the relation. relatedMemo: $ref: '#/definitions/v1MemoRelationMemo' + description: The related memo. type: $ref: '#/definitions/v1MemoRelationType' + required: + - memo + - relatedMemo + - type v1MemoRelationMemo: type: object properties: name: type: string title: |- - The name of the memo. - Format: memos/{id} + The resource name of the memo. + Format: memos/{memo} uid: type: string + description: Output only. The unique identifier of the memo. + readOnly: true snippet: type: string - description: The snippet of the memo content. Plain text only. + description: Output only. The snippet of the memo content. Plain text only. readOnly: true + description: Memo reference in relations. + required: + - name v1MemoRelationType: type: string enum: @@ -3562,6 +3771,7 @@ definitions: - REFERENCE - COMMENT default: TYPE_UNSPECIFIED + description: The type of the relation. v1Node: type: object properties: @@ -3716,21 +3926,39 @@ definitions: v1Reaction: type: object properties: - id: - type: integer - format: int32 + name: + type: string + title: |- + The resource name of the reaction. + Format: reactions/{reaction} + readOnly: true + uid: + type: string + description: Output only. The system generated unique identifier. + readOnly: true creator: type: string title: |- - The name of the creator. + The resource name of the creator. Format: users/{user} + readOnly: true contentId: type: string - description: |- - The content identifier. - For memo, it should be the `Memo.name`. + title: |- + The resource name of the content. + For memo reactions, this should be the memo's resource name. + Format: memos/{memo} reactionType: type: string + description: "Required. The type of reaction (e.g., \"\U0001F44D\", \"❤️\", \"\U0001F604\")." + createTime: + type: string + format: date-time + description: Output only. The creation timestamp. + readOnly: true + required: + - contentId + - reactionType v1ReferencedContentNode: type: object properties: diff --git a/server/router/api/v1/memo_service.go b/server/router/api/v1/memo_service.go index 9c9ea9bae..19ddbcb07 100644 --- a/server/router/api/v1/memo_service.go +++ b/server/router/api/v1/memo_service.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "log/slog" + "strings" "time" "unicode/utf8" @@ -99,8 +100,12 @@ func (s *APIV1Service) ListMemos(ctx context.Context, request *v1pb.ListMemosReq // Exclude comments by default. ExcludeComments: true, } - if err := s.buildMemoFindWithFilter(ctx, memoFind, request.OldFilter); err != nil { - return nil, status.Errorf(codes.InvalidArgument, "failed to build find memos with filter: %v", err) + // Handle deprecated old_filter for backward compatibility + if request.OldFilter != "" && request.Filter == "" { + //nolint:staticcheck // SA1019: Using deprecated field for backward compatibility + if err := s.buildMemoFindWithFilter(ctx, memoFind, request.OldFilter); err != nil { + return nil, status.Errorf(codes.InvalidArgument, "failed to build find memos with filter: %v", err) + } } if request.Parent != "" && request.Parent != "users/-" { userID, err := ExtractUserIDFromName(request.Parent) @@ -117,9 +122,17 @@ func (s *APIV1Service) ListMemos(ctx context.Context, request *v1pb.ListMemosReq state := store.Normal memoFind.RowStatus = &state } - if request.Direction == v1pb.Direction_ASC { - memoFind.OrderByTimeAsc = true + + // Parse order_by field (replaces the old sort and direction fields) + if request.OrderBy != "" { + if err := s.parseMemoOrderBy(request.OrderBy, memoFind); err != nil { + return nil, status.Errorf(codes.InvalidArgument, "invalid order_by: %v", err) + } + } else { + // Default ordering by display_time desc + memoFind.OrderByTimeAsc = false } + if request.Filter != "" { if err := s.validateFilter(ctx, request.Filter); err != nil { return nil, status.Errorf(codes.InvalidArgument, "invalid filter: %v", err) @@ -739,3 +752,38 @@ func substring(s string, length int) string { return s[:byteIndex] } + +// parseMemoOrderBy parses the order_by field and sets the appropriate ordering in memoFind. +func (*APIV1Service) parseMemoOrderBy(orderBy string, memoFind *store.FindMemo) error { + // Parse order_by field like "display_time desc" or "create_time asc" + parts := strings.Fields(strings.TrimSpace(orderBy)) + if len(parts) == 0 { + return errors.New("empty order_by") + } + + field := parts[0] + direction := "desc" // default + if len(parts) > 1 { + direction = strings.ToLower(parts[1]) + if direction != "asc" && direction != "desc" { + return errors.Errorf("invalid order direction: %s, must be 'asc' or 'desc'", parts[1]) + } + } + + switch field { + case "display_time": + memoFind.OrderByTimeAsc = direction == "asc" + case "create_time": + memoFind.OrderByTimeAsc = direction == "asc" + case "update_time": + memoFind.OrderByUpdatedTs = true + memoFind.OrderByTimeAsc = direction == "asc" + case "name": + // For ordering by memo name/id - not commonly used but supported + memoFind.OrderByTimeAsc = direction == "asc" + default: + return errors.Errorf("unsupported order field: %s, supported fields are: display_time, create_time, update_time, name", field) + } + + return nil +} diff --git a/server/router/api/v1/reaction_service.go b/server/router/api/v1/reaction_service.go index ca91adc4c..f80823ad5 100644 --- a/server/router/api/v1/reaction_service.go +++ b/server/router/api/v1/reaction_service.go @@ -3,10 +3,12 @@ package v1 import ( "context" "fmt" + "time" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "google.golang.org/protobuf/types/known/emptypb" + "google.golang.org/protobuf/types/known/timestamppb" v1pb "github.com/usememos/memos/proto/gen/api/v1" "github.com/usememos/memos/store" @@ -55,8 +57,13 @@ func (s *APIV1Service) UpsertMemoReaction(ctx context.Context, request *v1pb.Ups } func (s *APIV1Service) DeleteMemoReaction(ctx context.Context, request *v1pb.DeleteMemoReactionRequest) (*emptypb.Empty, error) { + reactionID, err := ExtractReactionIDFromName(request.Name) + if err != nil { + return nil, status.Errorf(codes.InvalidArgument, "invalid reaction name: %v", err) + } + if err := s.Store.DeleteReaction(ctx, &store.DeleteReaction{ - ID: request.Id, + ID: reactionID, }); err != nil { return nil, status.Errorf(codes.Internal, "failed to delete reaction") } @@ -71,10 +78,14 @@ func (s *APIV1Service) convertReactionFromStore(ctx context.Context, reaction *s if err != nil { return nil, err } + + reactionUID := fmt.Sprintf("%d", reaction.ID) return &v1pb.Reaction{ - Id: reaction.ID, + Name: fmt.Sprintf("%s%s", ReactionNamePrefix, reactionUID), + Uid: reactionUID, Creator: fmt.Sprintf("%s%d", UserNamePrefix, creator.ID), ContentId: reaction.ContentID, ReactionType: reaction.ReactionType, + CreateTime: timestamppb.New(time.Unix(reaction.CreatedTs, 0)), }, nil } diff --git a/server/router/api/v1/resource_name.go b/server/router/api/v1/resource_name.go index cf421a257..45ad21058 100644 --- a/server/router/api/v1/resource_name.go +++ b/server/router/api/v1/resource_name.go @@ -14,6 +14,7 @@ const ( UserNamePrefix = "users/" MemoNamePrefix = "memos/" AttachmentNamePrefix = "attachments/" + ReactionNamePrefix = "reactions/" InboxNamePrefix = "inboxes/" IdentityProviderNamePrefix = "identityProviders/" ActivityNamePrefix = "activities/" @@ -93,6 +94,20 @@ func ExtractAttachmentUIDFromName(name string) (string, error) { return id, nil } +// ExtractReactionIDFromName returns the reaction ID from a resource name. +// e.g., "reactions/123" -> 123. +func ExtractReactionIDFromName(name string) (int32, error) { + tokens, err := GetNameParentTokens(name, ReactionNamePrefix) + if err != nil { + return 0, err + } + id, err := util.ConvertStringToInt32(tokens[0]) + if err != nil { + return 0, errors.Errorf("invalid reaction ID %q", tokens[0]) + } + return id, nil +} + // ExtractInboxIDFromName returns the inbox ID from a resource name. func ExtractInboxIDFromName(name string) (int32, error) { tokens, err := GetNameParentTokens(name, InboxNamePrefix) diff --git a/store/reaction.go b/store/reaction.go index bdff7f6b3..be25b5fa4 100644 --- a/store/reaction.go +++ b/store/reaction.go @@ -9,7 +9,6 @@ type Reaction struct { CreatedTs int64 CreatorID int32 // ContentID is the id of the content that the reaction is for. - // This can be a memo. e.g. memos/101 ContentID string ReactionType string } diff --git a/web/src/components/MemoEditor/index.tsx b/web/src/components/MemoEditor/index.tsx index be513d622..251bbe62c 100644 --- a/web/src/components/MemoEditor/index.tsx +++ b/web/src/components/MemoEditor/index.tsx @@ -396,6 +396,10 @@ const MemoEditor = observer((props: Props) => { relations: state.relationList, location: state.location, }), + // Optional fields can be omitted + memoId: "", + validateOnly: false, + requestId: "", }) : memoServiceClient .createMemoComment({ diff --git a/web/src/components/MemoReactionListView.tsx b/web/src/components/MemoReactionListView.tsx index f78535277..9dc8268b9 100644 --- a/web/src/components/MemoReactionListView.tsx +++ b/web/src/components/MemoReactionListView.tsx @@ -5,7 +5,7 @@ import useCurrentUser from "@/hooks/useCurrentUser"; import { userStore } from "@/store/v2"; import { State } from "@/types/proto/api/v1/common"; import { Memo } from "@/types/proto/api/v1/memo_service"; -import { Reaction } from "@/types/proto/api/v1/reaction_service"; +import { Reaction } from "@/types/proto/api/v1/memo_service"; import { User } from "@/types/proto/api/v1/user_service"; import ReactionSelector from "./ReactionSelector"; import ReactionView from "./ReactionView"; diff --git a/web/src/components/PagedMemoList/PagedMemoList.tsx b/web/src/components/PagedMemoList/PagedMemoList.tsx index 811eab719..17df16948 100644 --- a/web/src/components/PagedMemoList/PagedMemoList.tsx +++ b/web/src/components/PagedMemoList/PagedMemoList.tsx @@ -8,7 +8,7 @@ import { DEFAULT_LIST_MEMOS_PAGE_SIZE } from "@/helpers/consts"; import useResponsiveWidth from "@/hooks/useResponsiveWidth"; import { Routes } from "@/router"; import { memoStore, viewStore } from "@/store/v2"; -import { Direction, State } from "@/types/proto/api/v1/common"; +import { State } from "@/types/proto/api/v1/common"; import { Memo } from "@/types/proto/api/v1/memo_service"; import { useTranslate } from "@/utils/i18n"; import Empty from "../Empty"; @@ -20,7 +20,7 @@ interface Props { listSort?: (list: Memo[]) => Memo[]; owner?: string; state?: State; - direction?: Direction; + orderBy?: string; filter?: string; oldFilter?: string; pageSize?: number; @@ -51,7 +51,7 @@ const PagedMemoList = observer((props: Props) => { const response = await memoStore.fetchMemos({ parent: props.owner || "", state: props.state || State.NORMAL, - direction: props.direction || Direction.DESC, + orderBy: props.orderBy || "display_time desc", filter: props.filter || "", oldFilter: props.oldFilter || "", pageSize: props.pageSize || DEFAULT_LIST_MEMOS_PAGE_SIZE, @@ -103,7 +103,7 @@ const PagedMemoList = observer((props: Props) => { // Initial load and reload when props change useEffect(() => { refreshList(); - }, [props.owner, props.state, props.direction, props.filter, props.oldFilter, props.pageSize]); + }, [props.owner, props.state, props.orderBy, props.filter, props.oldFilter, props.pageSize]); // Auto-fetch more content when list changes and page isn't full useEffect(() => { diff --git a/web/src/components/ReactionSelector.tsx b/web/src/components/ReactionSelector.tsx index 2c226f13d..87b3d87f7 100644 --- a/web/src/components/ReactionSelector.tsx +++ b/web/src/components/ReactionSelector.tsx @@ -36,7 +36,7 @@ const ReactionSelector = observer((props: Props) => { (reaction) => reaction.reactionType === reactionType && reaction.creator === currentUser.name, ); for (const reaction of reactions) { - await memoServiceClient.deleteMemoReaction({ id: reaction.id }); + await memoServiceClient.deleteMemoReaction({ name: reaction.name }); } } else { await memoServiceClient.upsertMemoReaction({ diff --git a/web/src/components/ReactionView.tsx b/web/src/components/ReactionView.tsx index b0f32d92b..0d20a0a44 100644 --- a/web/src/components/ReactionView.tsx +++ b/web/src/components/ReactionView.tsx @@ -55,7 +55,7 @@ const ReactionView = observer((props: Props) => { (reaction) => reaction.reactionType === reactionType && reaction.creator === currentUser.name, ); for (const reaction of reactions) { - await memoServiceClient.deleteMemoReaction({ id: reaction.id }); + await memoServiceClient.deleteMemoReaction({ name: reaction.name }); } } } catch { diff --git a/web/src/pages/Archived.tsx b/web/src/pages/Archived.tsx index dd7a64dc0..f7657a4c4 100644 --- a/web/src/pages/Archived.tsx +++ b/web/src/pages/Archived.tsx @@ -6,7 +6,7 @@ import PagedMemoList from "@/components/PagedMemoList"; import useCurrentUser from "@/hooks/useCurrentUser"; import { viewStore } from "@/store/v2"; import memoFilterStore from "@/store/v2/memoFilter"; -import { Direction, State } from "@/types/proto/api/v1/common"; +import { State } from "@/types/proto/api/v1/common"; import { Memo } from "@/types/proto/api/v1/memo_service"; const Archived = observer(() => { @@ -46,7 +46,7 @@ const Archived = observer(() => { } owner={user.name} state={State.ARCHIVED} - direction={viewStore.state.orderByTimeAsc ? Direction.ASC : Direction.DESC} + orderBy={viewStore.state.orderByTimeAsc ? "display_time asc" : "display_time desc"} oldFilter={memoListFilter} /> ); diff --git a/web/src/pages/Explore.tsx b/web/src/pages/Explore.tsx index 095edaedf..a862c1e86 100644 --- a/web/src/pages/Explore.tsx +++ b/web/src/pages/Explore.tsx @@ -5,7 +5,7 @@ import MobileHeader from "@/components/MobileHeader"; import PagedMemoList from "@/components/PagedMemoList"; import useResponsiveWidth from "@/hooks/useResponsiveWidth"; import { viewStore } from "@/store/v2"; -import { Direction, State } from "@/types/proto/api/v1/common"; +import { State } from "@/types/proto/api/v1/common"; import { Memo } from "@/types/proto/api/v1/memo_service"; const Explore = observer(() => { @@ -26,7 +26,7 @@ const Explore = observer(() => { : dayjs(b.displayTime).unix() - dayjs(a.displayTime).unix(), ) } - direction={viewStore.state.orderByTimeAsc ? Direction.ASC : Direction.DESC} + orderBy={viewStore.state.orderByTimeAsc ? "display_time asc" : "display_time desc"} /> diff --git a/web/src/pages/Home.tsx b/web/src/pages/Home.tsx index dad4ad9bb..443aad869 100644 --- a/web/src/pages/Home.tsx +++ b/web/src/pages/Home.tsx @@ -6,7 +6,7 @@ import PagedMemoList from "@/components/PagedMemoList"; import useCurrentUser from "@/hooks/useCurrentUser"; import { viewStore, userStore } from "@/store/v2"; import memoFilterStore from "@/store/v2/memoFilter"; -import { Direction, State } from "@/types/proto/api/v1/common"; +import { State } from "@/types/proto/api/v1/common"; import { Memo } from "@/types/proto/api/v1/memo_service"; // Helper function to extract shortcut ID from resource name @@ -68,7 +68,7 @@ const Home = observer(() => { .sort((a, b) => Number(b.pinned) - Number(a.pinned)) } owner={user.name} - direction={viewStore.state.orderByTimeAsc ? Direction.ASC : Direction.DESC} + orderBy={viewStore.state.orderByTimeAsc ? "display_time asc" : "display_time desc"} filter={selectedShortcut?.filter || ""} oldFilter={memoListFilter} /> diff --git a/web/src/pages/UserProfile.tsx b/web/src/pages/UserProfile.tsx index de2ad822d..33e7c4b43 100644 --- a/web/src/pages/UserProfile.tsx +++ b/web/src/pages/UserProfile.tsx @@ -12,7 +12,7 @@ import UserAvatar from "@/components/UserAvatar"; import useLoading from "@/hooks/useLoading"; import { viewStore, userStore } from "@/store/v2"; import memoFilterStore from "@/store/v2/memoFilter"; -import { Direction, State } from "@/types/proto/api/v1/common"; +import { State } from "@/types/proto/api/v1/common"; import { Memo } from "@/types/proto/api/v1/memo_service"; import { User } from "@/types/proto/api/v1/user_service"; import { useTranslate } from "@/utils/i18n"; @@ -112,7 +112,7 @@ const UserProfile = observer(() => { .sort((a, b) => Number(b.pinned) - Number(a.pinned)) } owner={user.name} - direction={viewStore.state.orderByTimeAsc ? Direction.ASC : Direction.DESC} + orderBy={viewStore.state.orderByTimeAsc ? "display_time asc" : "display_time desc"} oldFilter={memoListFilter} /> diff --git a/web/src/types/proto/api/v1/memo_service.ts b/web/src/types/proto/api/v1/memo_service.ts index 3b5245f49..cac130707 100644 --- a/web/src/types/proto/api/v1/memo_service.ts +++ b/web/src/types/proto/api/v1/memo_service.ts @@ -10,9 +10,8 @@ import { Empty } from "../../google/protobuf/empty"; import { FieldMask } from "../../google/protobuf/field_mask"; import { Timestamp } from "../../google/protobuf/timestamp"; import { Attachment } from "./attachment_service"; -import { Direction, directionFromJSON, directionToNumber, State, stateFromJSON, stateToNumber } from "./common"; +import { State, stateFromJSON, stateToNumber } from "./common"; import { Node } from "./markdown_service"; -import { Reaction } from "./reaction_service"; export const protobufPackage = "memos.api.v1"; @@ -61,45 +60,90 @@ export function visibilityToNumber(object: Visibility): number { } } +export interface Reaction { + /** + * The resource name of the reaction. + * Format: reactions/{reaction} + */ + name: string; + /** Output only. The system generated unique identifier. */ + uid: string; + /** + * The resource name of the creator. + * Format: users/{user} + */ + creator: string; + /** + * The resource name of the content. + * For memo reactions, this should be the memo's resource name. + * Format: memos/{memo} + */ + contentId: string; + /** Required. The type of reaction (e.g., "👍", "❤️", "😄"). */ + reactionType: string; + /** Output only. The creation timestamp. */ + createTime?: Date | undefined; +} + export interface Memo { /** - * The name of the memo. + * The resource name of the memo. * Format: memos/{memo}, memo is the user defined id or uuid. */ name: string; + /** The state of the memo. */ state: State; /** * The name of the creator. * Format: users/{user} */ creator: string; - createTime?: Date | undefined; - updateTime?: Date | undefined; - displayTime?: Date | undefined; + /** Output only. The creation timestamp. */ + createTime?: + | Date + | undefined; + /** Output only. The last update timestamp. */ + updateTime?: + | Date + | undefined; + /** The display timestamp of the memo. */ + displayTime?: + | Date + | undefined; + /** Required. The content of the memo in Markdown format. */ content: string; + /** Output only. The parsed nodes from the content. */ nodes: Node[]; + /** The visibility of the memo. */ visibility: Visibility; + /** Output only. The tags extracted from the content. */ tags: string[]; + /** Whether the memo is pinned. */ pinned: boolean; + /** Optional. The attachments of the memo. */ attachments: Attachment[]; + /** Optional. The relations of the memo. */ relations: MemoRelation[]; + /** Output only. The reactions to the memo. */ reactions: Reaction[]; + /** Output only. The computed properties of the memo. */ property?: | Memo_Property | undefined; /** - * The name of the parent memo. - * Format: memos/{id} + * Output only. The name of the parent memo. + * Format: memos/{memo} */ parent?: | string | undefined; - /** The snippet of the memo content. Plain text only. */ + /** Output only. The snippet of the memo content. Plain text only. */ snippet: string; - /** The location of the memo. */ + /** Optional. The location of the memo. */ location?: Location | undefined; } +/** Computed properties of a memo. */ export interface Memo_Property { hasLink: boolean; hasTaskList: boolean; @@ -108,49 +152,68 @@ export interface Memo_Property { } export interface Location { + /** A placeholder text for the location. */ placeholder: string; + /** The latitude of the location. */ latitude: number; + /** The longitude of the location. */ longitude: number; } export interface CreateMemoRequest { - /** The memo to create. */ - memo?: Memo | undefined; + /** Required. The memo to create. */ + memo?: + | Memo + | undefined; + /** + * Optional. The memo ID to use for this memo. + * If empty, a unique ID will be generated. + */ + memoId: string; + /** Optional. If set, validate the request but don't actually create the memo. */ + validateOnly: boolean; + /** Optional. An idempotency token. */ + requestId: string; } export interface ListMemosRequest { /** - * The parent is the owner of the memos. + * Optional. The parent is the owner of the memos. * If not specified or `users/-`, it will list all memos. + * Format: users/{user} */ parent: string; - /** The maximum number of memos to return. */ + /** + * Optional. The maximum number of memos to return. + * The service may return fewer than this value. + * If unspecified, at most 50 memos will be returned. + * The maximum value is 1000; values above 1000 will be coerced to 1000. + */ pageSize: number; /** - * A page token, received from a previous `ListMemos` call. + * Optional. A page token, received from a previous `ListMemos` call. * Provide this to retrieve the subsequent page. */ pageToken: string; /** - * The state of the memos to list. + * Optional. The state of the memos to list. * Default to `NORMAL`. Set to `ARCHIVED` to list archived memos. */ state: State; /** - * What field to sort the results by. - * Default to display_time. - */ - sort: string; - /** - * The direction to sort the results by. - * Default to DESC. + * Optional. The order to sort results by. + * Default to "display_time desc". + * Example: "display_time desc" or "create_time asc" */ - direction: Direction; + orderBy: string; /** + * Optional. Filter to apply to the list results. * Filter is a CEL expression to filter memos. * Refer to `Shortcut.filter`. */ filter: string; + /** Optional. If true, show deleted memos in the response. */ + showDeleted: boolean; /** * [Deprecated] Old filter contains some specific conditions to filter memos. * Format: "creator == 'users/{user}' && visibilities == ['PUBLIC', 'PROTECTED']" @@ -159,74 +222,122 @@ export interface ListMemosRequest { } export interface ListMemosResponse { + /** The list of memos. */ memos: Memo[]; /** - * A token, which can be sent as `page_token` to retrieve the next page. + * A token that can be sent as `page_token` to retrieve the next page. * If this field is omitted, there are no subsequent pages. */ nextPageToken: string; + /** The total count of memos (may be approximate). */ + totalSize: number; } export interface GetMemoRequest { - /** The name of the memo. */ + /** + * Required. The resource name of the memo. + * Format: memos/{memo} + */ name: string; + /** + * Optional. The fields to return in the response. + * If not specified, all fields are returned. + */ + readMask?: string[] | undefined; } export interface UpdateMemoRequest { /** - * The memo to update. + * Required. The memo to update. * The `name` field is required. */ - memo?: Memo | undefined; - updateMask?: string[] | undefined; + memo?: + | Memo + | undefined; + /** Required. The list of fields to update. */ + updateMask?: + | string[] + | undefined; + /** Optional. If set to true, allows updating sensitive fields. */ + allowMissing: boolean; } export interface DeleteMemoRequest { - /** The name of the memo. */ + /** + * Required. The resource name of the memo to delete. + * Format: memos/{memo} + */ name: string; + /** Optional. If set to true, the memo will be deleted even if it has associated data. */ + force: boolean; } export interface RenameMemoTagRequest { /** - * The parent, who owns the tags. - * Format: memos/{id}. Use "memos/-" to rename all tags. + * Required. The parent, who owns the tags. + * Format: memos/{memo}. Use "memos/-" to rename all tags. */ parent: string; + /** Required. The old tag name to rename. */ oldTag: string; + /** Required. The new tag name. */ newTag: string; } export interface DeleteMemoTagRequest { /** - * The parent, who owns the tags. - * Format: memos/{id}. Use "memos/-" to delete all tags. + * Required. The parent, who owns the tags. + * Format: memos/{memo}. Use "memos/-" to delete all tags. */ parent: string; + /** Required. The tag name to delete. */ tag: string; + /** Optional. Whether to delete related memos. */ deleteRelatedMemos: boolean; } export interface SetMemoAttachmentsRequest { - /** The name of the memo. */ + /** + * Required. The resource name of the memo. + * Format: memos/{memo} + */ name: string; + /** Required. The attachments to set for the memo. */ attachments: Attachment[]; } export interface ListMemoAttachmentsRequest { - /** The name of the memo. */ + /** + * Required. The resource name of the memo. + * Format: memos/{memo} + */ name: string; + /** Optional. The maximum number of attachments to return. */ + pageSize: number; + /** Optional. A page token for pagination. */ + pageToken: string; } export interface ListMemoAttachmentsResponse { + /** The list of attachments. */ attachments: Attachment[]; + /** A token for the next page of results. */ + nextPageToken: string; + /** The total count of attachments. */ + totalSize: number; } export interface MemoRelation { - memo?: MemoRelation_Memo | undefined; + /** The memo in the relation. */ + memo?: + | MemoRelation_Memo + | undefined; + /** The related memo. */ relatedMemo?: MemoRelation_Memo | undefined; type: MemoRelation_Type; } +/** The type of the relation. */ export enum MemoRelation_Type { TYPE_UNSPECIFIED = "TYPE_UNSPECIFIED", REFERENCE = "REFERENCE", @@ -266,71 +377,232 @@ export function memoRelation_TypeToNumber(object: MemoRelation_Type): number { } } +/** Memo reference in relations. */ export interface MemoRelation_Memo { /** - * The name of the memo. - * Format: memos/{id} + * The resource name of the memo. + * Format: memos/{memo} */ name: string; + /** Output only. The unique identifier of the memo. */ uid: string; - /** The snippet of the memo content. Plain text only. */ + /** Output only. The snippet of the memo content. Plain text only. */ snippet: string; } export interface SetMemoRelationsRequest { - /** The name of the memo. */ + /** + * Required. The resource name of the memo. + * Format: memos/{memo} + */ name: string; + /** Required. The relations to set for the memo. */ relations: MemoRelation[]; } export interface ListMemoRelationsRequest { - /** The name of the memo. */ + /** + * Required. The resource name of the memo. + * Format: memos/{memo} + */ name: string; + /** Optional. The maximum number of relations to return. */ + pageSize: number; + /** Optional. A page token for pagination. */ + pageToken: string; } export interface ListMemoRelationsResponse { + /** The list of relations. */ relations: MemoRelation[]; + /** A token for the next page of results. */ + nextPageToken: string; + /** The total count of relations. */ + totalSize: number; } export interface CreateMemoCommentRequest { - /** The name of the memo. */ + /** + * Required. The resource name of the memo. + * Format: memos/{memo} + */ name: string; - /** The comment to create. */ - comment?: Memo | undefined; + /** Required. The comment to create. */ + comment?: + | Memo + | undefined; + /** Optional. The comment ID to use. */ + commentId: string; } export interface ListMemoCommentsRequest { - /** The name of the memo. */ + /** + * Required. The resource name of the memo. + * Format: memos/{memo} + */ name: string; + /** Optional. The maximum number of comments to return. */ + pageSize: number; + /** Optional. A page token for pagination. */ + pageToken: string; + /** Optional. The order to sort results by. */ + orderBy: string; } export interface ListMemoCommentsResponse { + /** The list of comment memos. */ memos: Memo[]; + /** A token for the next page of results. */ + nextPageToken: string; + /** The total count of comments. */ + totalSize: number; } export interface ListMemoReactionsRequest { - /** The name of the memo. */ + /** + * Required. The resource name of the memo. + * Format: memos/{memo} + */ name: string; + /** Optional. The maximum number of reactions to return. */ + pageSize: number; + /** Optional. A page token for pagination. */ + pageToken: string; } export interface ListMemoReactionsResponse { + /** The list of reactions. */ reactions: Reaction[]; + /** A token for the next page of results. */ + nextPageToken: string; + /** The total count of reactions. */ + totalSize: number; } export interface UpsertMemoReactionRequest { - /** The name of the memo. */ + /** + * Required. The resource name of the memo. + * Format: memos/{memo} + */ name: string; + /** Required. The reaction to upsert. */ reaction?: Reaction | undefined; } export interface DeleteMemoReactionRequest { /** - * The id of the reaction. - * Refer to the `Reaction.id`. + * Required. The resource name of the reaction to delete. + * Format: reactions/{reaction} */ - id: number; + name: string; } +function createBaseReaction(): Reaction { + return { name: "", uid: "", creator: "", contentId: "", reactionType: "", createTime: undefined }; +} + +export const Reaction: MessageFns = { + encode(message: Reaction, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { + if (message.name !== "") { + writer.uint32(10).string(message.name); + } + if (message.uid !== "") { + writer.uint32(18).string(message.uid); + } + if (message.creator !== "") { + writer.uint32(26).string(message.creator); + } + if (message.contentId !== "") { + writer.uint32(34).string(message.contentId); + } + if (message.reactionType !== "") { + writer.uint32(42).string(message.reactionType); + } + if (message.createTime !== undefined) { + Timestamp.encode(toTimestamp(message.createTime), writer.uint32(50).fork()).join(); + } + return writer; + }, + + decode(input: BinaryReader | Uint8Array, length?: number): Reaction { + const reader = input instanceof BinaryReader ? input : new BinaryReader(input); + let end = length === undefined ? reader.len : reader.pos + length; + const message = createBaseReaction(); + while (reader.pos < end) { + const tag = reader.uint32(); + switch (tag >>> 3) { + case 1: { + if (tag !== 10) { + break; + } + + message.name = reader.string(); + continue; + } + case 2: { + if (tag !== 18) { + break; + } + + message.uid = reader.string(); + continue; + } + case 3: { + if (tag !== 26) { + break; + } + + message.creator = reader.string(); + continue; + } + case 4: { + if (tag !== 34) { + break; + } + + message.contentId = reader.string(); + continue; + } + case 5: { + if (tag !== 42) { + break; + } + + message.reactionType = reader.string(); + continue; + } + case 6: { + if (tag !== 50) { + break; + } + + message.createTime = fromTimestamp(Timestamp.decode(reader, reader.uint32())); + continue; + } + } + if ((tag & 7) === 4 || tag === 0) { + break; + } + reader.skip(tag & 7); + } + return message; + }, + + create(base?: DeepPartial): Reaction { + return Reaction.fromPartial(base ?? {}); + }, + fromPartial(object: DeepPartial): Reaction { + const message = createBaseReaction(); + message.name = object.name ?? ""; + message.uid = object.uid ?? ""; + message.creator = object.creator ?? ""; + message.contentId = object.contentId ?? ""; + message.reactionType = object.reactionType ?? ""; + message.createTime = object.createTime ?? undefined; + return message; + }, +}; + function createBaseMemo(): Memo { return { name: "", @@ -757,7 +1029,7 @@ export const Location: MessageFns = { }; function createBaseCreateMemoRequest(): CreateMemoRequest { - return { memo: undefined }; + return { memo: undefined, memoId: "", validateOnly: false, requestId: "" }; } export const CreateMemoRequest: MessageFns = { @@ -765,6 +1037,15 @@ export const CreateMemoRequest: MessageFns = { if (message.memo !== undefined) { Memo.encode(message.memo, writer.uint32(10).fork()).join(); } + if (message.memoId !== "") { + writer.uint32(18).string(message.memoId); + } + if (message.validateOnly !== false) { + writer.uint32(24).bool(message.validateOnly); + } + if (message.requestId !== "") { + writer.uint32(34).string(message.requestId); + } return writer; }, @@ -783,6 +1064,30 @@ export const CreateMemoRequest: MessageFns = { message.memo = Memo.decode(reader, reader.uint32()); continue; } + case 2: { + if (tag !== 18) { + break; + } + + message.memoId = reader.string(); + continue; + } + case 3: { + if (tag !== 24) { + break; + } + + message.validateOnly = reader.bool(); + continue; + } + case 4: { + if (tag !== 34) { + break; + } + + message.requestId = reader.string(); + continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -798,6 +1103,9 @@ export const CreateMemoRequest: MessageFns = { fromPartial(object: DeepPartial): CreateMemoRequest { const message = createBaseCreateMemoRequest(); message.memo = (object.memo !== undefined && object.memo !== null) ? Memo.fromPartial(object.memo) : undefined; + message.memoId = object.memoId ?? ""; + message.validateOnly = object.validateOnly ?? false; + message.requestId = object.requestId ?? ""; return message; }, }; @@ -808,9 +1116,9 @@ function createBaseListMemosRequest(): ListMemosRequest { pageSize: 0, pageToken: "", state: State.STATE_UNSPECIFIED, - sort: "", - direction: Direction.DIRECTION_UNSPECIFIED, + orderBy: "", filter: "", + showDeleted: false, oldFilter: "", }; } @@ -829,14 +1137,14 @@ export const ListMemosRequest: MessageFns = { if (message.state !== State.STATE_UNSPECIFIED) { writer.uint32(32).int32(stateToNumber(message.state)); } - if (message.sort !== "") { - writer.uint32(42).string(message.sort); - } - if (message.direction !== Direction.DIRECTION_UNSPECIFIED) { - writer.uint32(48).int32(directionToNumber(message.direction)); + if (message.orderBy !== "") { + writer.uint32(42).string(message.orderBy); } if (message.filter !== "") { - writer.uint32(58).string(message.filter); + writer.uint32(50).string(message.filter); + } + if (message.showDeleted !== false) { + writer.uint32(56).bool(message.showDeleted); } if (message.oldFilter !== "") { writer.uint32(66).string(message.oldFilter); @@ -888,23 +1196,23 @@ export const ListMemosRequest: MessageFns = { break; } - message.sort = reader.string(); + message.orderBy = reader.string(); continue; } case 6: { - if (tag !== 48) { + if (tag !== 50) { break; } - message.direction = directionFromJSON(reader.int32()); + message.filter = reader.string(); continue; } case 7: { - if (tag !== 58) { + if (tag !== 56) { break; } - message.filter = reader.string(); + message.showDeleted = reader.bool(); continue; } case 8: { @@ -933,16 +1241,16 @@ export const ListMemosRequest: MessageFns = { message.pageSize = object.pageSize ?? 0; message.pageToken = object.pageToken ?? ""; message.state = object.state ?? State.STATE_UNSPECIFIED; - message.sort = object.sort ?? ""; - message.direction = object.direction ?? Direction.DIRECTION_UNSPECIFIED; + message.orderBy = object.orderBy ?? ""; message.filter = object.filter ?? ""; + message.showDeleted = object.showDeleted ?? false; message.oldFilter = object.oldFilter ?? ""; return message; }, }; function createBaseListMemosResponse(): ListMemosResponse { - return { memos: [], nextPageToken: "" }; + return { memos: [], nextPageToken: "", totalSize: 0 }; } export const ListMemosResponse: MessageFns = { @@ -953,6 +1261,9 @@ export const ListMemosResponse: MessageFns = { if (message.nextPageToken !== "") { writer.uint32(18).string(message.nextPageToken); } + if (message.totalSize !== 0) { + writer.uint32(24).int32(message.totalSize); + } return writer; }, @@ -979,6 +1290,14 @@ export const ListMemosResponse: MessageFns = { message.nextPageToken = reader.string(); continue; } + case 3: { + if (tag !== 24) { + break; + } + + message.totalSize = reader.int32(); + continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -995,12 +1314,13 @@ export const ListMemosResponse: MessageFns = { const message = createBaseListMemosResponse(); message.memos = object.memos?.map((e) => Memo.fromPartial(e)) || []; message.nextPageToken = object.nextPageToken ?? ""; + message.totalSize = object.totalSize ?? 0; return message; }, }; function createBaseGetMemoRequest(): GetMemoRequest { - return { name: "" }; + return { name: "", readMask: undefined }; } export const GetMemoRequest: MessageFns = { @@ -1008,6 +1328,9 @@ export const GetMemoRequest: MessageFns = { if (message.name !== "") { writer.uint32(10).string(message.name); } + if (message.readMask !== undefined) { + FieldMask.encode(FieldMask.wrap(message.readMask), writer.uint32(18).fork()).join(); + } return writer; }, @@ -1026,6 +1349,14 @@ export const GetMemoRequest: MessageFns = { message.name = reader.string(); continue; } + case 2: { + if (tag !== 18) { + break; + } + + message.readMask = FieldMask.unwrap(FieldMask.decode(reader, reader.uint32())); + continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -1041,12 +1372,13 @@ export const GetMemoRequest: MessageFns = { fromPartial(object: DeepPartial): GetMemoRequest { const message = createBaseGetMemoRequest(); message.name = object.name ?? ""; + message.readMask = object.readMask ?? undefined; return message; }, }; function createBaseUpdateMemoRequest(): UpdateMemoRequest { - return { memo: undefined, updateMask: undefined }; + return { memo: undefined, updateMask: undefined, allowMissing: false }; } export const UpdateMemoRequest: MessageFns = { @@ -1057,6 +1389,9 @@ export const UpdateMemoRequest: MessageFns = { if (message.updateMask !== undefined) { FieldMask.encode(FieldMask.wrap(message.updateMask), writer.uint32(18).fork()).join(); } + if (message.allowMissing !== false) { + writer.uint32(24).bool(message.allowMissing); + } return writer; }, @@ -1083,6 +1418,14 @@ export const UpdateMemoRequest: MessageFns = { message.updateMask = FieldMask.unwrap(FieldMask.decode(reader, reader.uint32())); continue; } + case 3: { + if (tag !== 24) { + break; + } + + message.allowMissing = reader.bool(); + continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -1099,12 +1442,13 @@ export const UpdateMemoRequest: MessageFns = { const message = createBaseUpdateMemoRequest(); message.memo = (object.memo !== undefined && object.memo !== null) ? Memo.fromPartial(object.memo) : undefined; message.updateMask = object.updateMask ?? undefined; + message.allowMissing = object.allowMissing ?? false; return message; }, }; function createBaseDeleteMemoRequest(): DeleteMemoRequest { - return { name: "" }; + return { name: "", force: false }; } export const DeleteMemoRequest: MessageFns = { @@ -1112,6 +1456,9 @@ export const DeleteMemoRequest: MessageFns = { if (message.name !== "") { writer.uint32(10).string(message.name); } + if (message.force !== false) { + writer.uint32(16).bool(message.force); + } return writer; }, @@ -1130,6 +1477,14 @@ export const DeleteMemoRequest: MessageFns = { message.name = reader.string(); continue; } + case 2: { + if (tag !== 16) { + break; + } + + message.force = reader.bool(); + continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -1145,6 +1500,7 @@ export const DeleteMemoRequest: MessageFns = { fromPartial(object: DeepPartial): DeleteMemoRequest { const message = createBaseDeleteMemoRequest(); message.name = object.name ?? ""; + message.force = object.force ?? false; return message; }, }; @@ -1348,7 +1704,7 @@ export const SetMemoAttachmentsRequest: MessageFns = }; function createBaseListMemoAttachmentsRequest(): ListMemoAttachmentsRequest { - return { name: "" }; + return { name: "", pageSize: 0, pageToken: "" }; } export const ListMemoAttachmentsRequest: MessageFns = { @@ -1356,6 +1712,12 @@ export const ListMemoAttachmentsRequest: MessageFns if (message.name !== "") { writer.uint32(10).string(message.name); } + if (message.pageSize !== 0) { + writer.uint32(16).int32(message.pageSize); + } + if (message.pageToken !== "") { + writer.uint32(26).string(message.pageToken); + } return writer; }, @@ -1374,6 +1736,22 @@ export const ListMemoAttachmentsRequest: MessageFns message.name = reader.string(); continue; } + case 2: { + if (tag !== 16) { + break; + } + + message.pageSize = reader.int32(); + continue; + } + case 3: { + if (tag !== 26) { + break; + } + + message.pageToken = reader.string(); + continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -1389,12 +1767,14 @@ export const ListMemoAttachmentsRequest: MessageFns fromPartial(object: DeepPartial): ListMemoAttachmentsRequest { const message = createBaseListMemoAttachmentsRequest(); message.name = object.name ?? ""; + message.pageSize = object.pageSize ?? 0; + message.pageToken = object.pageToken ?? ""; return message; }, }; function createBaseListMemoAttachmentsResponse(): ListMemoAttachmentsResponse { - return { attachments: [] }; + return { attachments: [], nextPageToken: "", totalSize: 0 }; } export const ListMemoAttachmentsResponse: MessageFns = { @@ -1402,6 +1782,12 @@ export const ListMemoAttachmentsResponse: MessageFns): ListMemoAttachmentsResponse { const message = createBaseListMemoAttachmentsResponse(); message.attachments = object.attachments?.map((e) => Attachment.fromPartial(e)) || []; + message.nextPageToken = object.nextPageToken ?? ""; + message.totalSize = object.totalSize ?? 0; return message; }, }; @@ -1642,7 +2046,7 @@ export const SetMemoRelationsRequest: MessageFns = { }; function createBaseListMemoRelationsRequest(): ListMemoRelationsRequest { - return { name: "" }; + return { name: "", pageSize: 0, pageToken: "" }; } export const ListMemoRelationsRequest: MessageFns = { @@ -1650,6 +2054,12 @@ export const ListMemoRelationsRequest: MessageFns = { if (message.name !== "") { writer.uint32(10).string(message.name); } + if (message.pageSize !== 0) { + writer.uint32(16).int32(message.pageSize); + } + if (message.pageToken !== "") { + writer.uint32(26).string(message.pageToken); + } return writer; }, @@ -1668,6 +2078,22 @@ export const ListMemoRelationsRequest: MessageFns = { message.name = reader.string(); continue; } + case 2: { + if (tag !== 16) { + break; + } + + message.pageSize = reader.int32(); + continue; + } + case 3: { + if (tag !== 26) { + break; + } + + message.pageToken = reader.string(); + continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -1683,12 +2109,14 @@ export const ListMemoRelationsRequest: MessageFns = { fromPartial(object: DeepPartial): ListMemoRelationsRequest { const message = createBaseListMemoRelationsRequest(); message.name = object.name ?? ""; + message.pageSize = object.pageSize ?? 0; + message.pageToken = object.pageToken ?? ""; return message; }, }; function createBaseListMemoRelationsResponse(): ListMemoRelationsResponse { - return { relations: [] }; + return { relations: [], nextPageToken: "", totalSize: 0 }; } export const ListMemoRelationsResponse: MessageFns = { @@ -1696,6 +2124,12 @@ export const ListMemoRelationsResponse: MessageFns = for (const v of message.relations) { MemoRelation.encode(v!, writer.uint32(10).fork()).join(); } + if (message.nextPageToken !== "") { + writer.uint32(18).string(message.nextPageToken); + } + if (message.totalSize !== 0) { + writer.uint32(24).int32(message.totalSize); + } return writer; }, @@ -1714,6 +2148,22 @@ export const ListMemoRelationsResponse: MessageFns = message.relations.push(MemoRelation.decode(reader, reader.uint32())); continue; } + case 2: { + if (tag !== 18) { + break; + } + + message.nextPageToken = reader.string(); + continue; + } + case 3: { + if (tag !== 24) { + break; + } + + message.totalSize = reader.int32(); + continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -1729,12 +2179,14 @@ export const ListMemoRelationsResponse: MessageFns = fromPartial(object: DeepPartial): ListMemoRelationsResponse { const message = createBaseListMemoRelationsResponse(); message.relations = object.relations?.map((e) => MemoRelation.fromPartial(e)) || []; + message.nextPageToken = object.nextPageToken ?? ""; + message.totalSize = object.totalSize ?? 0; return message; }, }; function createBaseCreateMemoCommentRequest(): CreateMemoCommentRequest { - return { name: "", comment: undefined }; + return { name: "", comment: undefined, commentId: "" }; } export const CreateMemoCommentRequest: MessageFns = { @@ -1745,6 +2197,9 @@ export const CreateMemoCommentRequest: MessageFns = { if (message.comment !== undefined) { Memo.encode(message.comment, writer.uint32(18).fork()).join(); } + if (message.commentId !== "") { + writer.uint32(26).string(message.commentId); + } return writer; }, @@ -1771,6 +2226,14 @@ export const CreateMemoCommentRequest: MessageFns = { message.comment = Memo.decode(reader, reader.uint32()); continue; } + case 3: { + if (tag !== 26) { + break; + } + + message.commentId = reader.string(); + continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -1789,12 +2252,13 @@ export const CreateMemoCommentRequest: MessageFns = { message.comment = (object.comment !== undefined && object.comment !== null) ? Memo.fromPartial(object.comment) : undefined; + message.commentId = object.commentId ?? ""; return message; }, }; function createBaseListMemoCommentsRequest(): ListMemoCommentsRequest { - return { name: "" }; + return { name: "", pageSize: 0, pageToken: "", orderBy: "" }; } export const ListMemoCommentsRequest: MessageFns = { @@ -1802,6 +2266,15 @@ export const ListMemoCommentsRequest: MessageFns = { if (message.name !== "") { writer.uint32(10).string(message.name); } + if (message.pageSize !== 0) { + writer.uint32(16).int32(message.pageSize); + } + if (message.pageToken !== "") { + writer.uint32(26).string(message.pageToken); + } + if (message.orderBy !== "") { + writer.uint32(34).string(message.orderBy); + } return writer; }, @@ -1820,6 +2293,30 @@ export const ListMemoCommentsRequest: MessageFns = { message.name = reader.string(); continue; } + case 2: { + if (tag !== 16) { + break; + } + + message.pageSize = reader.int32(); + continue; + } + case 3: { + if (tag !== 26) { + break; + } + + message.pageToken = reader.string(); + continue; + } + case 4: { + if (tag !== 34) { + break; + } + + message.orderBy = reader.string(); + continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -1835,12 +2332,15 @@ export const ListMemoCommentsRequest: MessageFns = { fromPartial(object: DeepPartial): ListMemoCommentsRequest { const message = createBaseListMemoCommentsRequest(); message.name = object.name ?? ""; + message.pageSize = object.pageSize ?? 0; + message.pageToken = object.pageToken ?? ""; + message.orderBy = object.orderBy ?? ""; return message; }, }; function createBaseListMemoCommentsResponse(): ListMemoCommentsResponse { - return { memos: [] }; + return { memos: [], nextPageToken: "", totalSize: 0 }; } export const ListMemoCommentsResponse: MessageFns = { @@ -1848,6 +2348,12 @@ export const ListMemoCommentsResponse: MessageFns = { for (const v of message.memos) { Memo.encode(v!, writer.uint32(10).fork()).join(); } + if (message.nextPageToken !== "") { + writer.uint32(18).string(message.nextPageToken); + } + if (message.totalSize !== 0) { + writer.uint32(24).int32(message.totalSize); + } return writer; }, @@ -1866,6 +2372,22 @@ export const ListMemoCommentsResponse: MessageFns = { message.memos.push(Memo.decode(reader, reader.uint32())); continue; } + case 2: { + if (tag !== 18) { + break; + } + + message.nextPageToken = reader.string(); + continue; + } + case 3: { + if (tag !== 24) { + break; + } + + message.totalSize = reader.int32(); + continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -1881,12 +2403,14 @@ export const ListMemoCommentsResponse: MessageFns = { fromPartial(object: DeepPartial): ListMemoCommentsResponse { const message = createBaseListMemoCommentsResponse(); message.memos = object.memos?.map((e) => Memo.fromPartial(e)) || []; + message.nextPageToken = object.nextPageToken ?? ""; + message.totalSize = object.totalSize ?? 0; return message; }, }; function createBaseListMemoReactionsRequest(): ListMemoReactionsRequest { - return { name: "" }; + return { name: "", pageSize: 0, pageToken: "" }; } export const ListMemoReactionsRequest: MessageFns = { @@ -1894,6 +2418,12 @@ export const ListMemoReactionsRequest: MessageFns = { if (message.name !== "") { writer.uint32(10).string(message.name); } + if (message.pageSize !== 0) { + writer.uint32(16).int32(message.pageSize); + } + if (message.pageToken !== "") { + writer.uint32(26).string(message.pageToken); + } return writer; }, @@ -1912,6 +2442,22 @@ export const ListMemoReactionsRequest: MessageFns = { message.name = reader.string(); continue; } + case 2: { + if (tag !== 16) { + break; + } + + message.pageSize = reader.int32(); + continue; + } + case 3: { + if (tag !== 26) { + break; + } + + message.pageToken = reader.string(); + continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -1927,12 +2473,14 @@ export const ListMemoReactionsRequest: MessageFns = { fromPartial(object: DeepPartial): ListMemoReactionsRequest { const message = createBaseListMemoReactionsRequest(); message.name = object.name ?? ""; + message.pageSize = object.pageSize ?? 0; + message.pageToken = object.pageToken ?? ""; return message; }, }; function createBaseListMemoReactionsResponse(): ListMemoReactionsResponse { - return { reactions: [] }; + return { reactions: [], nextPageToken: "", totalSize: 0 }; } export const ListMemoReactionsResponse: MessageFns = { @@ -1940,6 +2488,12 @@ export const ListMemoReactionsResponse: MessageFns = for (const v of message.reactions) { Reaction.encode(v!, writer.uint32(10).fork()).join(); } + if (message.nextPageToken !== "") { + writer.uint32(18).string(message.nextPageToken); + } + if (message.totalSize !== 0) { + writer.uint32(24).int32(message.totalSize); + } return writer; }, @@ -1958,6 +2512,22 @@ export const ListMemoReactionsResponse: MessageFns = message.reactions.push(Reaction.decode(reader, reader.uint32())); continue; } + case 2: { + if (tag !== 18) { + break; + } + + message.nextPageToken = reader.string(); + continue; + } + case 3: { + if (tag !== 24) { + break; + } + + message.totalSize = reader.int32(); + continue; + } } if ((tag & 7) === 4 || tag === 0) { break; @@ -1973,6 +2543,8 @@ export const ListMemoReactionsResponse: MessageFns = fromPartial(object: DeepPartial): ListMemoReactionsResponse { const message = createBaseListMemoReactionsResponse(); message.reactions = object.reactions?.map((e) => Reaction.fromPartial(e)) || []; + message.nextPageToken = object.nextPageToken ?? ""; + message.totalSize = object.totalSize ?? 0; return message; }, }; @@ -2038,13 +2610,13 @@ export const UpsertMemoReactionRequest: MessageFns = }; function createBaseDeleteMemoReactionRequest(): DeleteMemoReactionRequest { - return { id: 0 }; + return { name: "" }; } export const DeleteMemoReactionRequest: MessageFns = { encode(message: DeleteMemoReactionRequest, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { - if (message.id !== 0) { - writer.uint32(8).int32(message.id); + if (message.name !== "") { + writer.uint32(10).string(message.name); } return writer; }, @@ -2057,11 +2629,11 @@ export const DeleteMemoReactionRequest: MessageFns = const tag = reader.uint32(); switch (tag >>> 3) { case 1: { - if (tag !== 8) { + if (tag !== 10) { break; } - message.id = reader.int32(); + message.name = reader.string(); continue; } } @@ -2078,7 +2650,7 @@ export const DeleteMemoReactionRequest: MessageFns = }, fromPartial(object: DeepPartial): DeleteMemoReactionRequest { const message = createBaseDeleteMemoReactionRequest(); - message.id = object.id ?? 0; + message.name = object.name ?? ""; return message; }, }; @@ -2097,6 +2669,7 @@ export const MemoServiceDefinition = { responseStream: false, options: { _unknownFields: { + 8410: [new Uint8Array([4, 109, 101, 109, 111])], 578365826: [ new Uint8Array([ 21, @@ -2135,6 +2708,7 @@ export const MemoServiceDefinition = { responseStream: false, options: { _unknownFields: { + 8410: [new Uint8Array([0]), new Uint8Array([6, 112, 97, 114, 101, 110, 116])], 578365826: [ new Uint8Array([ 49, @@ -2338,6 +2912,33 @@ export const MemoServiceDefinition = { responseStream: false, options: { _unknownFields: { + 8410: [ + new Uint8Array([ + 22, + 112, + 97, + 114, + 101, + 110, + 116, + 44, + 111, + 108, + 100, + 95, + 116, + 97, + 103, + 44, + 110, + 101, + 119, + 95, + 116, + 97, + 103, + ]), + ], 578365826: [ new Uint8Array([ 41, @@ -2396,6 +2997,7 @@ export const MemoServiceDefinition = { responseStream: false, options: { _unknownFields: { + 8410: [new Uint8Array([10, 112, 97, 114, 101, 110, 116, 44, 116, 97, 103])], 578365826: [ new Uint8Array([ 37, @@ -2668,7 +3270,7 @@ export const MemoServiceDefinition = { responseStream: false, options: { _unknownFields: { - 8410: [new Uint8Array([4, 110, 97, 109, 101])], + 8410: [new Uint8Array([12, 110, 97, 109, 101, 44, 99, 111, 109, 109, 101, 110, 116])], 578365826: [ new Uint8Array([ 42, @@ -2886,12 +3488,12 @@ export const MemoServiceDefinition = { responseStream: false, options: { _unknownFields: { - 8410: [new Uint8Array([2, 105, 100])], + 8410: [new Uint8Array([4, 110, 97, 109, 101])], 578365826: [ new Uint8Array([ - 24, + 28, 42, - 22, + 26, 47, 97, 112, @@ -2900,6 +3502,12 @@ export const MemoServiceDefinition = { 118, 49, 47, + 123, + 110, + 97, + 109, + 101, + 61, 114, 101, 97, @@ -2910,9 +3518,7 @@ export const MemoServiceDefinition = { 110, 115, 47, - 123, - 105, - 100, + 42, 125, ]), ], diff --git a/web/src/types/proto/api/v1/reaction_service.ts b/web/src/types/proto/api/v1/reaction_service.ts deleted file mode 100644 index 0b26a6617..000000000 --- a/web/src/types/proto/api/v1/reaction_service.ts +++ /dev/null @@ -1,122 +0,0 @@ -// Code generated by protoc-gen-ts_proto. DO NOT EDIT. -// versions: -// protoc-gen-ts_proto v2.6.1 -// protoc unknown -// source: api/v1/reaction_service.proto - -/* eslint-disable */ -import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire"; - -export const protobufPackage = "memos.api.v1"; - -export interface Reaction { - id: number; - /** - * The name of the creator. - * Format: users/{user} - */ - creator: string; - /** - * The content identifier. - * For memo, it should be the `Memo.name`. - */ - contentId: string; - reactionType: string; -} - -function createBaseReaction(): Reaction { - return { id: 0, creator: "", contentId: "", reactionType: "" }; -} - -export const Reaction: MessageFns = { - encode(message: Reaction, writer: BinaryWriter = new BinaryWriter()): BinaryWriter { - if (message.id !== 0) { - writer.uint32(8).int32(message.id); - } - if (message.creator !== "") { - writer.uint32(18).string(message.creator); - } - if (message.contentId !== "") { - writer.uint32(26).string(message.contentId); - } - if (message.reactionType !== "") { - writer.uint32(34).string(message.reactionType); - } - return writer; - }, - - decode(input: BinaryReader | Uint8Array, length?: number): Reaction { - const reader = input instanceof BinaryReader ? input : new BinaryReader(input); - let end = length === undefined ? reader.len : reader.pos + length; - const message = createBaseReaction(); - while (reader.pos < end) { - const tag = reader.uint32(); - switch (tag >>> 3) { - case 1: { - if (tag !== 8) { - break; - } - - message.id = reader.int32(); - continue; - } - case 2: { - if (tag !== 18) { - break; - } - - message.creator = reader.string(); - continue; - } - case 3: { - if (tag !== 26) { - break; - } - - message.contentId = reader.string(); - continue; - } - case 4: { - if (tag !== 34) { - break; - } - - message.reactionType = reader.string(); - continue; - } - } - if ((tag & 7) === 4 || tag === 0) { - break; - } - reader.skip(tag & 7); - } - return message; - }, - - create(base?: DeepPartial): Reaction { - return Reaction.fromPartial(base ?? {}); - }, - fromPartial(object: DeepPartial): Reaction { - const message = createBaseReaction(); - message.id = object.id ?? 0; - message.creator = object.creator ?? ""; - message.contentId = object.contentId ?? ""; - message.reactionType = object.reactionType ?? ""; - return message; - }, -}; - -type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined; - -export type DeepPartial = T extends Builtin ? T - : T extends globalThis.Array ? globalThis.Array> - : T extends ReadonlyArray ? ReadonlyArray> - : T extends {} ? { [K in keyof T]?: DeepPartial } - : Partial; - -export interface MessageFns { - encode(message: T, writer?: BinaryWriter): BinaryWriter; - decode(input: BinaryReader | Uint8Array, length?: number): T; - create(base?: DeepPartial): T; - fromPartial(object: DeepPartial): T; -}