diff --git a/docs/apidocs.swagger.yaml b/docs/apidocs.swagger.yaml
index ca605c40..d42546f4 100644
--- a/docs/apidocs.swagger.yaml
+++ b/docs/apidocs.swagger.yaml
@@ -301,12 +301,16 @@ paths:
type: integer
format: int32
- name: pageToken
- description: "A page token, received from a previous `ListMemos` call.\r\nProvide this to retrieve the subsequent page."
+ description: |-
+ A page token, received from a previous `ListMemos` call.
+ Provide this to retrieve the subsequent page.
in: query
required: false
type: string
- name: filter
- description: "Filter is used to filter memos returned in the list.\r\nFormat: \"creator == 'users/{uid}' && visibilities == ['PUBLIC', 'PROTECTED']\""
+ description: |-
+ Filter is used to filter memos returned in the list.
+ Format: "creator == 'users/{uid}' && visibilities == ['PUBLIC', 'PROTECTED']"
in: query
required: false
type: string
@@ -347,12 +351,17 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "name is the name of the user to get stats for.\r\nFormat: users/{id}"
+ description: |-
+ name is the name of the user to get stats for.
+ Format: users/{id}
in: query
required: false
type: string
- name: timezone
- description: "timezone location\r\nFormat: uses tz identifier\r\nhttps://en.wikipedia.org/wiki/List_of_tz_database_time_zones"
+ description: |-
+ timezone location
+ Format: uses tz identifier
+ https://en.wikipedia.org/wiki/List_of_tz_database_time_zones
in: query
required: false
type: string
@@ -363,6 +372,27 @@ paths:
type: string
tags:
- MemoService
+ /api/v1/memos:by-uid/{uid}:
+ get:
+ summary: GetMemoByUid gets a memo by uid
+ operationId: MemoService_GetMemoByUid
+ responses:
+ "200":
+ description: A successful response.
+ schema:
+ $ref: '#/definitions/v1Memo'
+ default:
+ description: An unexpected error response.
+ schema:
+ $ref: '#/definitions/googlerpcStatus'
+ parameters:
+ - name: uid
+ description: The uid of the memo.
+ in: path
+ required: true
+ type: string
+ tags:
+ - MemoService
/api/v1/memos:export:
post:
summary: ExportMemos exports memos.
@@ -399,7 +429,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: filter
- description: "Filter is used to filter memos returned.\r\nFormat: \"creator == 'users/{uid}' && visibilities == ['PUBLIC', 'PROTECTED']\""
+ description: |-
+ Filter is used to filter memos returned.
+ Format: "creator == 'users/{uid}' && visibilities == ['PUBLIC', 'PROTECTED']"
in: query
required: false
type: string
@@ -532,7 +564,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: filter
- description: "Filter is used to filter users returned in the list.\r\nFormat: \"username == 'frank'\""
+ description: |-
+ Filter is used to filter users returned in the list.
+ Format: "username == 'frank'"
in: query
required: false
type: string
@@ -693,7 +727,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The resource name of the workspace setting.\r\nFormat: settings/{setting}"
+ description: |-
+ The resource name of the workspace setting.
+ Format: settings/{setting}
in: path
required: true
type: string
@@ -715,7 +751,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: setting.name
- description: "name is the name of the setting.\r\nFormat: settings/{setting}"
+ description: |-
+ name is the name of the setting.
+ Format: settings/{setting}
in: path
required: true
type: string
@@ -751,7 +789,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: identityProvider.name
- description: "The name of the identityProvider.\r\nFormat: identityProviders/{id}"
+ description: |-
+ The name of the identityProvider.
+ Format: identityProviders/{id}
in: path
required: true
type: string
@@ -789,7 +829,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: inbox.name
- description: "The name of the inbox.\r\nFormat: inboxes/{id}"
+ description: |-
+ The name of the inbox.
+ Format: inboxes/{id}
in: path
required: true
type: string
@@ -833,7 +875,10 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: memo.name
- description: "The name of the memo.\r\nFormat: memos/{id}\r\nid is the system generated id."
+ description: |-
+ The name of the memo.
+ Format: memos/{id}
+ id is the system generated id.
in: path
required: true
type: string
@@ -851,7 +896,9 @@ paths:
$ref: '#/definitions/v1RowStatus'
creator:
type: string
- title: "The name of the creator.\r\nFormat: users/{id}"
+ title: |-
+ The name of the creator.
+ Format: users/{id}
createTime:
type: string
format: date-time
@@ -904,7 +951,9 @@ paths:
readOnly: true
parent:
type: string
- title: "The name of the parent memo.\r\nFormat: memos/{id}"
+ title: |-
+ The name of the parent memo.
+ Format: memos/{id}
readOnly: true
tags:
- MemoService
@@ -923,7 +972,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name_1
- description: "The name of the identityProvider to get.\r\nFormat: identityProviders/{id}"
+ description: |-
+ The name of the identityProvider to get.
+ Format: identityProviders/{id}
in: path
required: true
type: string
@@ -945,7 +996,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name_1
- description: "The name of the identityProvider to delete.\r\nFormat: identityProviders/{id}"
+ description: |-
+ The name of the identityProvider to delete.
+ Format: identityProviders/{id}
in: path
required: true
type: string
@@ -967,7 +1020,10 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name_2
- description: "The name of the resource.\r\nFormat: resources/{id}\r\nid is the system generated unique identifier."
+ description: |-
+ The name of the resource.
+ Format: resources/{id}
+ id is the system generated unique identifier.
in: path
required: true
type: string
@@ -989,7 +1045,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name_2
- description: "The name of the inbox to delete.\r\nFormat: inboxes/{id}"
+ description: |-
+ The name of the inbox to delete.
+ Format: inboxes/{id}
in: path
required: true
type: string
@@ -1011,7 +1069,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name_3
- description: "The name of the memo.\r\nFormat: memos/{id}"
+ description: |-
+ The name of the memo.
+ Format: memos/{id}
in: path
required: true
type: string
@@ -1033,7 +1093,10 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name_3
- description: "The name of the resource.\r\nFormat: resources/{id}\r\nid is the system generated unique identifier."
+ description: |-
+ The name of the resource.
+ Format: resources/{id}
+ id is the system generated unique identifier.
in: path
required: true
type: string
@@ -1056,7 +1119,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name_4
- description: "The name of the memo.\r\nFormat: memos/{id}"
+ description: |-
+ The name of the memo.
+ Format: memos/{id}
in: path
required: true
type: string
@@ -1078,7 +1143,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the user.\r\nFormat: users/{id}"
+ description: |-
+ The name of the user.
+ Format: users/{id}
in: path
required: true
type: string
@@ -1100,7 +1167,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the user.\r\nFormat: users/{id}"
+ description: |-
+ The name of the user.
+ Format: users/{id}
in: path
required: true
type: string
@@ -1122,7 +1191,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the user.\r\nFormat: users/{id}"
+ description: |-
+ The name of the user.
+ Format: users/{id}
in: path
required: true
type: string
@@ -1143,7 +1214,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the user.\r\nFormat: users/{id}"
+ description: |-
+ The name of the user.
+ Format: users/{id}
in: path
required: true
type: string
@@ -1171,7 +1244,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the user.\r\nFormat: users/{id}"
+ description: |-
+ The name of the user.
+ Format: users/{id}
in: path
required: true
type: string
@@ -1198,7 +1273,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the memo.\r\nFormat: memos/{id}"
+ description: |-
+ The name of the memo.
+ Format: memos/{id}
in: path
required: true
type: string
@@ -1219,7 +1296,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the memo.\r\nFormat: memos/{id}"
+ description: |-
+ The name of the memo.
+ Format: memos/{id}
in: path
required: true
type: string
@@ -1246,7 +1325,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the memo.\r\nFormat: memos/{id}. Use \"memos/-\" to list all properties."
+ description: |-
+ The name of the memo.
+ Format: memos/{id}. Use "memos/-" to list all properties.
in: path
required: true
type: string
@@ -1269,7 +1350,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the memo.\r\nFormat: memos/{id}. Use \"memos/-\" to rebuild all memos."
+ description: |-
+ The name of the memo.
+ Format: memos/{id}. Use "memos/-" to rebuild all memos.
in: path
required: true
type: string
@@ -1296,7 +1379,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the memo.\r\nFormat: memos/{id}"
+ description: |-
+ The name of the memo.
+ Format: memos/{id}
in: path
required: true
type: string
@@ -1317,7 +1402,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the memo.\r\nFormat: memos/{id}"
+ description: |-
+ The name of the memo.
+ Format: memos/{id}
in: path
required: true
type: string
@@ -1344,7 +1431,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the memo.\r\nFormat: memos/{id}"
+ description: |-
+ The name of the memo.
+ Format: memos/{id}
in: path
required: true
type: string
@@ -1366,7 +1455,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the memo.\r\nFormat: memos/{id}"
+ description: |-
+ The name of the memo.
+ Format: memos/{id}
in: path
required: true
type: string
@@ -1393,7 +1484,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the memo.\r\nFormat: memos/{id}"
+ description: |-
+ The name of the memo.
+ Format: memos/{id}
in: path
required: true
type: string
@@ -1415,7 +1508,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the memo.\r\nFormat: memos/{id}"
+ description: |-
+ The name of the memo.
+ Format: memos/{id}
in: path
required: true
type: string
@@ -1442,7 +1537,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the user.\r\nFormat: users/{id}"
+ description: |-
+ The name of the user.
+ Format: users/{id}
in: path
required: true
type: string
@@ -1464,13 +1561,17 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: parent
- description: "The parent, who owns the tags.\r\nFormat: memos/{id}. Use \"memos/-\" to list all tags."
+ description: |-
+ The parent, who owns the tags.
+ Format: memos/{id}. Use "memos/-" to list all tags.
in: path
required: true
type: string
pattern: memos/[^/]+
- name: filter
- description: "Filter is used to filter memos.\r\nFormat: \"creator == 'users/{uid}' && visibilities == ['PUBLIC', 'PROTECTED']\""
+ description: |-
+ Filter is used to filter memos.
+ Format: "creator == 'users/{uid}' && visibilities == ['PUBLIC', 'PROTECTED']"
in: query
required: false
type: string
@@ -1492,7 +1593,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: parent
- description: "The parent, who owns the tags.\r\nFormat: memos/{id}. Use \"memos/-\" to delete all tags."
+ description: |-
+ The parent, who owns the tags.
+ Format: memos/{id}. Use "memos/-" to delete all tags.
in: path
required: true
type: string
@@ -1523,7 +1626,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: parent
- description: "The parent, who owns the tags.\r\nFormat: memos/{id}. Use \"memos/-\" to rename all tags."
+ description: |-
+ The parent, who owns the tags.
+ Format: memos/{id}. Use "memos/-" to rename all tags.
in: path
required: true
type: string
@@ -1550,7 +1655,10 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: resource.name
- description: "The name of the resource.\r\nFormat: resources/{id}\r\nid is the system generated unique identifier."
+ description: |-
+ The name of the resource.
+ Format: resources/{id}
+ id is the system generated unique identifier.
in: path
required: true
type: string
@@ -1582,7 +1690,9 @@ paths:
format: int64
memo:
type: string
- title: "The related memo.\r\nFormat: memos/{id}"
+ title: |-
+ The related memo.
+ Format: memos/{id}
tags:
- ResourceService
/api/v1/{setting.name}:
@@ -1600,7 +1710,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: setting.name
- description: "The name of the user.\r\nFormat: users/{id}"
+ description: |-
+ The name of the user.
+ Format: users/{id}
in: path
required: true
type: string
@@ -1637,7 +1749,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: user.name
- description: "The name of the user.\r\nFormat: users/{id}"
+ description: |-
+ The name of the user.
+ Format: users/{id}
in: path
required: true
type: string
@@ -1691,7 +1805,9 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the user.\r\nFormat: users/{id}"
+ description: |-
+ The name of the user.
+ Format: users/{id}
in: path
required: true
type: string
@@ -1724,7 +1840,10 @@ paths:
$ref: '#/definitions/googlerpcStatus'
parameters:
- name: name
- description: "The name of the resource.\r\nFormat: resources/{id}\r\nid is the system generated unique identifier."
+ description: |-
+ The name of the resource.
+ Format: resources/{id}
+ id is the system generated unique identifier.
in: path
required: true
type: string
@@ -1905,7 +2024,9 @@ definitions:
properties:
name:
type: string
- title: "The name of the identityProvider.\r\nFormat: identityProviders/{id}"
+ title: |-
+ The name of the identityProvider.
+ Format: identityProviders/{id}
type:
$ref: '#/definitions/apiv1IdentityProviderType'
title:
@@ -1949,7 +2070,9 @@ definitions:
properties:
name:
type: string
- title: "The name of the user.\r\nFormat: users/{id}"
+ title: |-
+ The name of the user.
+ Format: users/{id}
locale:
type: string
description: The preferred locale of the user.
@@ -2011,7 +2134,9 @@ definitions:
properties:
name:
type: string
- title: "name is the name of the setting.\r\nFormat: settings/{setting}"
+ title: |-
+ name is the name of the setting.
+ Format: settings/{setting}
generalSetting:
$ref: '#/definitions/apiv1WorkspaceGeneralSetting'
storageSetting:
@@ -2026,7 +2151,9 @@ definitions:
description: storage_type is the storage type.
filepathTemplate:
type: string
- title: "The template of file path.\r\ne.g. assets/{timestamp}_{filename}"
+ title: |-
+ The template of file path.
+ e.g. assets/{timestamp}_{filename}
uploadSizeLimitMb:
type: string
format: int64
@@ -2295,7 +2422,9 @@ definitions:
additionalProperties:
type: integer
format: int32
- description: "stats is the stats of memo creating/updating activities.\r\nkey is the year-month-day string. e.g. \"2020-01-01\"."
+ description: |-
+ stats is the stats of memo creating/updating activities.
+ key is the year-month-day string. e.g. "2020-01-01".
v1HeadingNode:
type: object
properties:
@@ -2329,7 +2458,9 @@ definitions:
properties:
name:
type: string
- title: "The name of the inbox.\r\nFormat: inboxes/{id}"
+ title: |-
+ The name of the inbox.
+ Format: inboxes/{id}
sender:
type: string
title: 'Format: users/{id}'
@@ -2449,7 +2580,10 @@ definitions:
additionalProperties:
type: integer
format: int32
- description: "tag_amounts is the amount of tags.\r\nkey is the tag name. e.g. \"tag1\".\r\nvalue is the amount of the tag."
+ description: |-
+ tag_amounts is the amount of tags.
+ key is the tag name. e.g. "tag1".
+ value is the amount of the tag.
v1ListMemosResponse:
type: object
properties:
@@ -2460,7 +2594,9 @@ definitions:
$ref: '#/definitions/v1Memo'
nextPageToken:
type: string
- description: "A token, which can be sent as `page_token` to retrieve the next page.\r\nIf this field is omitted, there are no subsequent pages."
+ description: |-
+ A token, which can be sent as `page_token` to retrieve the next page.
+ If this field is omitted, there are no subsequent pages.
v1ListResourcesResponse:
type: object
properties:
@@ -2508,7 +2644,10 @@ definitions:
properties:
name:
type: string
- description: "The name of the memo.\r\nFormat: memos/{id}\r\nid is the system generated id."
+ description: |-
+ The name of the memo.
+ Format: memos/{id}
+ id is the system generated id.
uid:
type: string
description: The user defined id of the memo.
@@ -2516,7 +2655,9 @@ definitions:
$ref: '#/definitions/v1RowStatus'
creator:
type: string
- title: "The name of the creator.\r\nFormat: users/{id}"
+ title: |-
+ The name of the creator.
+ Format: users/{id}
createTime:
type: string
format: date-time
@@ -2569,7 +2710,9 @@ definitions:
readOnly: true
parent:
type: string
- title: "The name of the parent memo.\r\nFormat: memos/{id}"
+ title: |-
+ The name of the parent memo.
+ Format: memos/{id}
readOnly: true
v1MemoProperty:
type: object
@@ -2591,10 +2734,14 @@ definitions:
properties:
memo:
type: string
- title: "The name of memo.\r\nFormat: \"memos/{uid}\""
+ title: |-
+ The name of memo.
+ Format: "memos/{uid}"
relatedMemo:
type: string
- title: "The name of related memo.\r\nFormat: \"memos/{uid}\""
+ title: |-
+ The name of related memo.
+ Format: "memos/{uid}"
type:
$ref: '#/definitions/v1MemoRelationType'
v1MemoRelationType:
@@ -2743,7 +2890,9 @@ definitions:
format: int32
creator:
type: string
- title: "The name of the creator.\r\nFormat: users/{id}"
+ title: |-
+ The name of the creator.
+ Format: users/{id}
contentId:
type: string
reactionType:
@@ -2777,7 +2926,10 @@ definitions:
properties:
name:
type: string
- description: "The name of the resource.\r\nFormat: resources/{id}\r\nid is the system generated unique identifier."
+ description: |-
+ The name of the resource.
+ Format: resources/{id}
+ id is the system generated unique identifier.
uid:
type: string
description: The user defined id of the resource.
@@ -2799,7 +2951,9 @@ definitions:
format: int64
memo:
type: string
- title: "The related memo.\r\nFormat: memos/{id}"
+ title: |-
+ The related memo.
+ Format: memos/{id}
v1RestoreMarkdownRequest:
type: object
properties:
@@ -2923,7 +3077,9 @@ definitions:
properties:
name:
type: string
- title: "The name of the user.\r\nFormat: users/{id}"
+ title: |-
+ The name of the user.
+ Format: users/{id}
id:
type: integer
format: int32
@@ -2997,7 +3153,9 @@ definitions:
properties:
owner:
type: string
- title: "The name of instance owner.\r\nFormat: \"users/{id}\""
+ title: |-
+ The name of instance owner.
+ Format: "users/{id}"
version:
type: string
title: version is the current version of instance
diff --git a/proto/api/v1/memo_service.proto b/proto/api/v1/memo_service.proto
index 97bdca12..72bd77db 100644
--- a/proto/api/v1/memo_service.proto
+++ b/proto/api/v1/memo_service.proto
@@ -37,6 +37,11 @@ service MemoService {
option (google.api.http) = {get: "/api/v1/{name=memos/*}"};
option (google.api.method_signature) = "name";
}
+ // GetMemoByUid gets a memo by uid
+ rpc GetMemoByUid(GetMemoByUidRequest) returns (Memo) {
+ option (google.api.http) = {get: "/api/v1/memos:by-uid/{uid}"};
+ option (google.api.method_signature) = "uid";
+ }
// UpdateMemo updates a memo.
rpc UpdateMemo(UpdateMemoRequest) returns (Memo) {
option (google.api.http) = {
@@ -254,6 +259,11 @@ message GetMemoRequest {
string name = 1;
}
+message GetMemoByUidRequest {
+ // The uid of the memo.
+ string uid = 1;
+}
+
message UpdateMemoRequest {
Memo memo = 1;
diff --git a/proto/gen/api/v1/memo_service.pb.go b/proto/gen/api/v1/memo_service.pb.go
index 5d1ed4ea..8c89d93b 100644
--- a/proto/gen/api/v1/memo_service.pb.go
+++ b/proto/gen/api/v1/memo_service.pb.go
@@ -673,6 +673,54 @@ func (x *GetMemoRequest) GetName() string {
return ""
}
+type GetMemoByUidRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // The uid of the memo.
+ Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"`
+}
+
+func (x *GetMemoByUidRequest) Reset() {
+ *x = GetMemoByUidRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_api_v1_memo_service_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GetMemoByUidRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GetMemoByUidRequest) ProtoMessage() {}
+
+func (x *GetMemoByUidRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_api_v1_memo_service_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GetMemoByUidRequest.ProtoReflect.Descriptor instead.
+func (*GetMemoByUidRequest) Descriptor() ([]byte, []int) {
+ return file_api_v1_memo_service_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *GetMemoByUidRequest) GetUid() string {
+ if x != nil {
+ return x.Uid
+ }
+ return ""
+}
+
type UpdateMemoRequest struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -685,7 +733,7 @@ type UpdateMemoRequest struct {
func (x *UpdateMemoRequest) Reset() {
*x = UpdateMemoRequest{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -698,7 +746,7 @@ func (x *UpdateMemoRequest) String() string {
func (*UpdateMemoRequest) ProtoMessage() {}
func (x *UpdateMemoRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[8]
+ mi := &file_api_v1_memo_service_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -711,7 +759,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{8}
+ return file_api_v1_memo_service_proto_rawDescGZIP(), []int{9}
}
func (x *UpdateMemoRequest) GetMemo() *Memo {
@@ -741,7 +789,7 @@ type DeleteMemoRequest struct {
func (x *DeleteMemoRequest) Reset() {
*x = DeleteMemoRequest{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -754,7 +802,7 @@ func (x *DeleteMemoRequest) String() string {
func (*DeleteMemoRequest) ProtoMessage() {}
func (x *DeleteMemoRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[9]
+ mi := &file_api_v1_memo_service_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -767,7 +815,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{9}
+ return file_api_v1_memo_service_proto_rawDescGZIP(), []int{10}
}
func (x *DeleteMemoRequest) GetName() string {
@@ -789,7 +837,7 @@ type ExportMemosRequest struct {
func (x *ExportMemosRequest) Reset() {
*x = ExportMemosRequest{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -802,7 +850,7 @@ func (x *ExportMemosRequest) String() string {
func (*ExportMemosRequest) ProtoMessage() {}
func (x *ExportMemosRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[10]
+ mi := &file_api_v1_memo_service_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -815,7 +863,7 @@ func (x *ExportMemosRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ExportMemosRequest.ProtoReflect.Descriptor instead.
func (*ExportMemosRequest) 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 *ExportMemosRequest) GetFilter() string {
@@ -836,7 +884,7 @@ type ExportMemosResponse struct {
func (x *ExportMemosResponse) Reset() {
*x = ExportMemosResponse{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -849,7 +897,7 @@ func (x *ExportMemosResponse) String() string {
func (*ExportMemosResponse) ProtoMessage() {}
func (x *ExportMemosResponse) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[11]
+ mi := &file_api_v1_memo_service_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -862,7 +910,7 @@ func (x *ExportMemosResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ExportMemosResponse.ProtoReflect.Descriptor instead.
func (*ExportMemosResponse) 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 *ExportMemosResponse) GetContent() []byte {
@@ -885,7 +933,7 @@ type ListMemoPropertiesRequest struct {
func (x *ListMemoPropertiesRequest) Reset() {
*x = ListMemoPropertiesRequest{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -898,7 +946,7 @@ func (x *ListMemoPropertiesRequest) String() string {
func (*ListMemoPropertiesRequest) ProtoMessage() {}
func (x *ListMemoPropertiesRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[12]
+ mi := &file_api_v1_memo_service_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -911,7 +959,7 @@ func (x *ListMemoPropertiesRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListMemoPropertiesRequest.ProtoReflect.Descriptor instead.
func (*ListMemoPropertiesRequest) 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 *ListMemoPropertiesRequest) GetName() string {
@@ -932,7 +980,7 @@ type ListMemoPropertiesResponse struct {
func (x *ListMemoPropertiesResponse) Reset() {
*x = ListMemoPropertiesResponse{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -945,7 +993,7 @@ func (x *ListMemoPropertiesResponse) String() string {
func (*ListMemoPropertiesResponse) ProtoMessage() {}
func (x *ListMemoPropertiesResponse) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[13]
+ mi := &file_api_v1_memo_service_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -958,7 +1006,7 @@ func (x *ListMemoPropertiesResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListMemoPropertiesResponse.ProtoReflect.Descriptor instead.
func (*ListMemoPropertiesResponse) 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 *ListMemoPropertiesResponse) GetProperties() []*MemoProperty {
@@ -981,7 +1029,7 @@ type RebuildMemoPropertyRequest struct {
func (x *RebuildMemoPropertyRequest) Reset() {
*x = RebuildMemoPropertyRequest{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -994,7 +1042,7 @@ func (x *RebuildMemoPropertyRequest) String() string {
func (*RebuildMemoPropertyRequest) ProtoMessage() {}
func (x *RebuildMemoPropertyRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[14]
+ mi := &file_api_v1_memo_service_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1007,7 +1055,7 @@ func (x *RebuildMemoPropertyRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use RebuildMemoPropertyRequest.ProtoReflect.Descriptor instead.
func (*RebuildMemoPropertyRequest) 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 *RebuildMemoPropertyRequest) GetName() string {
@@ -1033,7 +1081,7 @@ type ListMemoTagsRequest struct {
func (x *ListMemoTagsRequest) Reset() {
*x = ListMemoTagsRequest{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -1046,7 +1094,7 @@ func (x *ListMemoTagsRequest) String() string {
func (*ListMemoTagsRequest) ProtoMessage() {}
func (x *ListMemoTagsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[15]
+ mi := &file_api_v1_memo_service_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1059,7 +1107,7 @@ func (x *ListMemoTagsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListMemoTagsRequest.ProtoReflect.Descriptor instead.
func (*ListMemoTagsRequest) 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 *ListMemoTagsRequest) GetParent() string {
@@ -1090,7 +1138,7 @@ type ListMemoTagsResponse struct {
func (x *ListMemoTagsResponse) Reset() {
*x = ListMemoTagsResponse{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -1103,7 +1151,7 @@ func (x *ListMemoTagsResponse) String() string {
func (*ListMemoTagsResponse) ProtoMessage() {}
func (x *ListMemoTagsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[16]
+ mi := &file_api_v1_memo_service_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1116,7 +1164,7 @@ func (x *ListMemoTagsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListMemoTagsResponse.ProtoReflect.Descriptor instead.
func (*ListMemoTagsResponse) 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 *ListMemoTagsResponse) GetTagAmounts() map[string]int32 {
@@ -1141,7 +1189,7 @@ type RenameMemoTagRequest struct {
func (x *RenameMemoTagRequest) Reset() {
*x = RenameMemoTagRequest{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -1154,7 +1202,7 @@ func (x *RenameMemoTagRequest) String() string {
func (*RenameMemoTagRequest) ProtoMessage() {}
func (x *RenameMemoTagRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[17]
+ mi := &file_api_v1_memo_service_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1167,7 +1215,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{17}
+ return file_api_v1_memo_service_proto_rawDescGZIP(), []int{18}
}
func (x *RenameMemoTagRequest) GetParent() string {
@@ -1206,7 +1254,7 @@ type DeleteMemoTagRequest struct {
func (x *DeleteMemoTagRequest) Reset() {
*x = DeleteMemoTagRequest{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -1219,7 +1267,7 @@ func (x *DeleteMemoTagRequest) String() string {
func (*DeleteMemoTagRequest) ProtoMessage() {}
func (x *DeleteMemoTagRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[18]
+ mi := &file_api_v1_memo_service_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1232,7 +1280,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{18}
+ return file_api_v1_memo_service_proto_rawDescGZIP(), []int{19}
}
func (x *DeleteMemoTagRequest) GetParent() string {
@@ -1270,7 +1318,7 @@ type SetMemoResourcesRequest struct {
func (x *SetMemoResourcesRequest) Reset() {
*x = SetMemoResourcesRequest{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -1283,7 +1331,7 @@ func (x *SetMemoResourcesRequest) String() string {
func (*SetMemoResourcesRequest) ProtoMessage() {}
func (x *SetMemoResourcesRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[19]
+ mi := &file_api_v1_memo_service_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1296,7 +1344,7 @@ func (x *SetMemoResourcesRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use SetMemoResourcesRequest.ProtoReflect.Descriptor instead.
func (*SetMemoResourcesRequest) 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 *SetMemoResourcesRequest) GetName() string {
@@ -1326,7 +1374,7 @@ type ListMemoResourcesRequest struct {
func (x *ListMemoResourcesRequest) Reset() {
*x = ListMemoResourcesRequest{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -1339,7 +1387,7 @@ func (x *ListMemoResourcesRequest) String() string {
func (*ListMemoResourcesRequest) ProtoMessage() {}
func (x *ListMemoResourcesRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[20]
+ mi := &file_api_v1_memo_service_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1352,7 +1400,7 @@ func (x *ListMemoResourcesRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListMemoResourcesRequest.ProtoReflect.Descriptor instead.
func (*ListMemoResourcesRequest) 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 *ListMemoResourcesRequest) GetName() string {
@@ -1373,7 +1421,7 @@ type ListMemoResourcesResponse struct {
func (x *ListMemoResourcesResponse) Reset() {
*x = ListMemoResourcesResponse{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -1386,7 +1434,7 @@ func (x *ListMemoResourcesResponse) String() string {
func (*ListMemoResourcesResponse) ProtoMessage() {}
func (x *ListMemoResourcesResponse) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[21]
+ mi := &file_api_v1_memo_service_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1399,7 +1447,7 @@ func (x *ListMemoResourcesResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use ListMemoResourcesResponse.ProtoReflect.Descriptor instead.
func (*ListMemoResourcesResponse) 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 *ListMemoResourcesResponse) GetResources() []*Resource {
@@ -1423,7 +1471,7 @@ type SetMemoRelationsRequest struct {
func (x *SetMemoRelationsRequest) Reset() {
*x = SetMemoRelationsRequest{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -1436,7 +1484,7 @@ func (x *SetMemoRelationsRequest) String() string {
func (*SetMemoRelationsRequest) ProtoMessage() {}
func (x *SetMemoRelationsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[22]
+ mi := &file_api_v1_memo_service_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1449,7 +1497,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{22}
+ return file_api_v1_memo_service_proto_rawDescGZIP(), []int{23}
}
func (x *SetMemoRelationsRequest) GetName() string {
@@ -1479,7 +1527,7 @@ type ListMemoRelationsRequest struct {
func (x *ListMemoRelationsRequest) Reset() {
*x = ListMemoRelationsRequest{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -1492,7 +1540,7 @@ func (x *ListMemoRelationsRequest) String() string {
func (*ListMemoRelationsRequest) ProtoMessage() {}
func (x *ListMemoRelationsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[23]
+ mi := &file_api_v1_memo_service_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1505,7 +1553,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{23}
+ return file_api_v1_memo_service_proto_rawDescGZIP(), []int{24}
}
func (x *ListMemoRelationsRequest) GetName() string {
@@ -1526,7 +1574,7 @@ type ListMemoRelationsResponse struct {
func (x *ListMemoRelationsResponse) Reset() {
*x = ListMemoRelationsResponse{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -1539,7 +1587,7 @@ func (x *ListMemoRelationsResponse) String() string {
func (*ListMemoRelationsResponse) ProtoMessage() {}
func (x *ListMemoRelationsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[24]
+ mi := &file_api_v1_memo_service_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1552,7 +1600,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{24}
+ return file_api_v1_memo_service_proto_rawDescGZIP(), []int{25}
}
func (x *ListMemoRelationsResponse) GetRelations() []*MemoRelation {
@@ -1576,7 +1624,7 @@ type CreateMemoCommentRequest struct {
func (x *CreateMemoCommentRequest) Reset() {
*x = CreateMemoCommentRequest{}
if protoimpl.UnsafeEnabled {
- 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)
}
@@ -1589,7 +1637,7 @@ func (x *CreateMemoCommentRequest) String() string {
func (*CreateMemoCommentRequest) ProtoMessage() {}
func (x *CreateMemoCommentRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[25]
+ mi := &file_api_v1_memo_service_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1602,7 +1650,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{25}
+ return file_api_v1_memo_service_proto_rawDescGZIP(), []int{26}
}
func (x *CreateMemoCommentRequest) GetName() string {
@@ -1632,7 +1680,7 @@ type ListMemoCommentsRequest struct {
func (x *ListMemoCommentsRequest) Reset() {
*x = ListMemoCommentsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_api_v1_memo_service_proto_msgTypes[26]
+ mi := &file_api_v1_memo_service_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1645,7 +1693,7 @@ func (x *ListMemoCommentsRequest) String() string {
func (*ListMemoCommentsRequest) ProtoMessage() {}
func (x *ListMemoCommentsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[26]
+ mi := &file_api_v1_memo_service_proto_msgTypes[27]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1658,7 +1706,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{26}
+ return file_api_v1_memo_service_proto_rawDescGZIP(), []int{27}
}
func (x *ListMemoCommentsRequest) GetName() string {
@@ -1679,7 +1727,7 @@ type ListMemoCommentsResponse struct {
func (x *ListMemoCommentsResponse) Reset() {
*x = ListMemoCommentsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_api_v1_memo_service_proto_msgTypes[27]
+ mi := &file_api_v1_memo_service_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1692,7 +1740,7 @@ func (x *ListMemoCommentsResponse) String() string {
func (*ListMemoCommentsResponse) ProtoMessage() {}
func (x *ListMemoCommentsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[27]
+ mi := &file_api_v1_memo_service_proto_msgTypes[28]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1705,7 +1753,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{27}
+ return file_api_v1_memo_service_proto_rawDescGZIP(), []int{28}
}
func (x *ListMemoCommentsResponse) GetMemos() []*Memo {
@@ -1734,7 +1782,7 @@ type GetUserMemosStatsRequest struct {
func (x *GetUserMemosStatsRequest) Reset() {
*x = GetUserMemosStatsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_api_v1_memo_service_proto_msgTypes[28]
+ mi := &file_api_v1_memo_service_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1747,7 +1795,7 @@ func (x *GetUserMemosStatsRequest) String() string {
func (*GetUserMemosStatsRequest) ProtoMessage() {}
func (x *GetUserMemosStatsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[28]
+ mi := &file_api_v1_memo_service_proto_msgTypes[29]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1760,7 +1808,7 @@ func (x *GetUserMemosStatsRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetUserMemosStatsRequest.ProtoReflect.Descriptor instead.
func (*GetUserMemosStatsRequest) Descriptor() ([]byte, []int) {
- return file_api_v1_memo_service_proto_rawDescGZIP(), []int{28}
+ return file_api_v1_memo_service_proto_rawDescGZIP(), []int{29}
}
func (x *GetUserMemosStatsRequest) GetName() string {
@@ -1797,7 +1845,7 @@ type GetUserMemosStatsResponse struct {
func (x *GetUserMemosStatsResponse) Reset() {
*x = GetUserMemosStatsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_api_v1_memo_service_proto_msgTypes[29]
+ mi := &file_api_v1_memo_service_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1810,7 +1858,7 @@ func (x *GetUserMemosStatsResponse) String() string {
func (*GetUserMemosStatsResponse) ProtoMessage() {}
func (x *GetUserMemosStatsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[29]
+ mi := &file_api_v1_memo_service_proto_msgTypes[30]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1823,7 +1871,7 @@ func (x *GetUserMemosStatsResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetUserMemosStatsResponse.ProtoReflect.Descriptor instead.
func (*GetUserMemosStatsResponse) Descriptor() ([]byte, []int) {
- return file_api_v1_memo_service_proto_rawDescGZIP(), []int{29}
+ return file_api_v1_memo_service_proto_rawDescGZIP(), []int{30}
}
func (x *GetUserMemosStatsResponse) GetStats() map[string]int32 {
@@ -1846,7 +1894,7 @@ type ListMemoReactionsRequest struct {
func (x *ListMemoReactionsRequest) Reset() {
*x = ListMemoReactionsRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_api_v1_memo_service_proto_msgTypes[30]
+ mi := &file_api_v1_memo_service_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1859,7 +1907,7 @@ func (x *ListMemoReactionsRequest) String() string {
func (*ListMemoReactionsRequest) ProtoMessage() {}
func (x *ListMemoReactionsRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[30]
+ mi := &file_api_v1_memo_service_proto_msgTypes[31]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1872,7 +1920,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{30}
+ return file_api_v1_memo_service_proto_rawDescGZIP(), []int{31}
}
func (x *ListMemoReactionsRequest) GetName() string {
@@ -1893,7 +1941,7 @@ type ListMemoReactionsResponse struct {
func (x *ListMemoReactionsResponse) Reset() {
*x = ListMemoReactionsResponse{}
if protoimpl.UnsafeEnabled {
- mi := &file_api_v1_memo_service_proto_msgTypes[31]
+ mi := &file_api_v1_memo_service_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1906,7 +1954,7 @@ func (x *ListMemoReactionsResponse) String() string {
func (*ListMemoReactionsResponse) ProtoMessage() {}
func (x *ListMemoReactionsResponse) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[31]
+ mi := &file_api_v1_memo_service_proto_msgTypes[32]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1919,7 +1967,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{31}
+ return file_api_v1_memo_service_proto_rawDescGZIP(), []int{32}
}
func (x *ListMemoReactionsResponse) GetReactions() []*Reaction {
@@ -1943,7 +1991,7 @@ type UpsertMemoReactionRequest struct {
func (x *UpsertMemoReactionRequest) Reset() {
*x = UpsertMemoReactionRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_api_v1_memo_service_proto_msgTypes[32]
+ mi := &file_api_v1_memo_service_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1956,7 +2004,7 @@ func (x *UpsertMemoReactionRequest) String() string {
func (*UpsertMemoReactionRequest) ProtoMessage() {}
func (x *UpsertMemoReactionRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[32]
+ mi := &file_api_v1_memo_service_proto_msgTypes[33]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1969,7 +2017,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{32}
+ return file_api_v1_memo_service_proto_rawDescGZIP(), []int{33}
}
func (x *UpsertMemoReactionRequest) GetName() string {
@@ -1997,7 +2045,7 @@ type DeleteMemoReactionRequest struct {
func (x *DeleteMemoReactionRequest) Reset() {
*x = DeleteMemoReactionRequest{}
if protoimpl.UnsafeEnabled {
- mi := &file_api_v1_memo_service_proto_msgTypes[33]
+ mi := &file_api_v1_memo_service_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -2010,7 +2058,7 @@ func (x *DeleteMemoReactionRequest) String() string {
func (*DeleteMemoReactionRequest) ProtoMessage() {}
func (x *DeleteMemoReactionRequest) ProtoReflect() protoreflect.Message {
- mi := &file_api_v1_memo_service_proto_msgTypes[33]
+ mi := &file_api_v1_memo_service_proto_msgTypes[34]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -2023,7 +2071,7 @@ 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{33}
+ return file_api_v1_memo_service_proto_rawDescGZIP(), []int{34}
}
func (x *DeleteMemoReactionRequest) GetReactionId() int32 {
@@ -2151,339 +2199,348 @@ var file_api_v1_memo_service_proto_rawDesc = []byte{
0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x05,
0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x22, 0x24, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f,
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x78, 0x0a, 0x11, 0x55,
- 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
- 0x12, 0x26, 0x0a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
- 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65,
- 0x6d, 0x6f, 0x52, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61,
- 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
- 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
- 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74,
- 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x27, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d,
- 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
- 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2c,
- 0x0a, 0x12, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x2f, 0x0a, 0x13,
- 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x2f, 0x0a,
- 0x19, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
- 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
- 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x58,
- 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72,
- 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0a,
- 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e,
- 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72,
- 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x22, 0x30, 0x0a, 0x1a, 0x52, 0x65, 0x62, 0x75,
- 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
- 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x45, 0x0a, 0x13, 0x4c, 0x69,
- 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c,
- 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65,
- 0x72, 0x22, 0xaa, 0x01, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x54, 0x61,
- 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0b, 0x74, 0x61,
- 0x67, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
- 0x32, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c,
- 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
- 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x67, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e,
- 0x74, 0x72, 0x79, 0x52, 0x0a, 0x74, 0x61, 0x67, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a,
- 0x3d, 0x0a, 0x0f, 0x54, 0x61, 0x67, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74,
- 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x60,
- 0x0a, 0x14, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x54, 0x61, 0x67, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x17,
- 0x0a, 0x07, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x06, 0x6f, 0x6c, 0x64, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x65, 0x77, 0x5f, 0x74,
- 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x65, 0x77, 0x54, 0x61, 0x67,
- 0x22, 0x72, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x54, 0x61,
- 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65,
- 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74,
- 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74,
- 0x61, 0x67, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x6c,
- 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
- 0x52, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x4d,
- 0x65, 0x6d, 0x6f, 0x73, 0x22, 0x63, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52,
- 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x27, 0x0a, 0x13, 0x47,
+ 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x42, 0x79, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x75, 0x69, 0x64, 0x22, 0x78, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65,
+ 0x6d, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x6d, 0x65, 0x6d,
+ 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e,
+ 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x04, 0x6d, 0x65, 0x6d,
+ 0x6f, 0x12, 0x3b, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61,
+ 0x73, 0x6b, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x73, 0x6b, 0x22, 0x27,
+ 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2c, 0x0a, 0x12, 0x45, 0x78, 0x70, 0x6f, 0x72,
+ 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a,
+ 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66,
+ 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x2f, 0x0a, 0x13, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4d,
+ 0x65, 0x6d, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07,
+ 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63,
+ 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x2f, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65,
+ 0x6d, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x58, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x4d,
+ 0x65, 0x6d, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
+ 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x6d, 0x6f,
+ 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65,
+ 0x73, 0x22, 0x30, 0x0a, 0x1a, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x6f,
+ 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e,
- 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73,
- 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61,
- 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x09,
- 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0x2e, 0x0a, 0x18, 0x4c, 0x69, 0x73,
- 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65,
- 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x51, 0x0a, 0x19, 0x4c, 0x69, 0x73,
- 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
- 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x6d, 0x6f,
- 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
- 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0x67, 0x0a, 0x17,
- 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x72,
- 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a,
- 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65,
- 0x6d, 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x61,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2e, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d,
- 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x55, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d,
- 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
- 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70,
- 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f,
- 0x6e, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x69, 0x0a, 0x18,
- 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
- 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x07,
- 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
- 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65,
- 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07,
- 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x2d, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x4d,
- 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x44, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65,
- 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
- 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,
- 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x05, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x22, 0x62, 0x0a, 0x18,
- 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x53, 0x74, 0x61, 0x74,
+ 0x61, 0x6d, 0x65, 0x22, 0x45, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x54,
+ 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61,
+ 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65,
+ 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0xaa, 0x01, 0x0a, 0x14, 0x4c,
+ 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0b, 0x74, 0x61, 0x67, 0x5f, 0x61, 0x6d, 0x6f, 0x75, 0x6e,
+ 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
+ 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f,
+ 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x54, 0x61, 0x67,
+ 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x74, 0x61,
+ 0x67, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x1a, 0x3d, 0x0a, 0x0f, 0x54, 0x61, 0x67, 0x41,
+ 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b,
+ 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a,
+ 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61,
+ 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x60, 0x0a, 0x14, 0x52, 0x65, 0x6e, 0x61, 0x6d,
+ 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
+ 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x6f, 0x6c, 0x64, 0x5f, 0x74,
+ 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x6c, 0x64, 0x54, 0x61, 0x67,
+ 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x65, 0x77, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x6e, 0x65, 0x77, 0x54, 0x61, 0x67, 0x22, 0x72, 0x0a, 0x14, 0x44, 0x65, 0x6c,
+ 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x74, 0x61, 0x67,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x74, 0x61, 0x67, 0x12, 0x30, 0x0a, 0x14, 0x64,
+ 0x65, 0x6c, 0x65, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6d, 0x65,
+ 0x6d, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x74,
+ 0x65, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x22, 0x63, 0x0a,
+ 0x17, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08,
- 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
- 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74,
- 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
- 0x22, 0x9f, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6d, 0x6f,
- 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48,
- 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e,
- 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74,
- 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72,
- 0x79, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74,
- 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
- 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
- 0x38, 0x01, 0x22, 0x2e, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65,
- 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x09,
+ 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x16, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52,
+ 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x73, 0x22, 0x2e, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65,
+ 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12,
0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
0x6d, 0x65, 0x22, 0x51, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65,
- 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
- 0x34, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03,
+ 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
+ 0x34, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
- 0x31, 0x2e, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x61, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x63, 0x0a, 0x19, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4d,
- 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
- 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x52, 0x08, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x3c, 0x0a, 0x19, 0x44, 0x65,
- 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65,
- 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x2a, 0x50, 0x0a, 0x0a, 0x56, 0x69, 0x73, 0x69,
- 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x16, 0x56, 0x49, 0x53, 0x49, 0x42, 0x49,
- 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
- 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12,
- 0x0d, 0x0a, 0x09, 0x50, 0x52, 0x4f, 0x54, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a,
- 0x0a, 0x06, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x43, 0x10, 0x03, 0x32, 0xc5, 0x16, 0x0a, 0x0b, 0x4d,
- 0x65, 0x6d, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x0a, 0x43, 0x72,
- 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x12, 0x1f, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
- 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65,
- 0x6d, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x6d, 0x65, 0x6d, 0x6f,
- 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x22, 0x18, 0x82,
- 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x3a, 0x01, 0x2a, 0x22, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
- 0x31, 0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x12, 0x63, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x4d,
- 0x65, 0x6d, 0x6f, 0x73, 0x12, 0x1e, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69,
- 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x52, 0x65, 0x71,
- 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69,
- 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f,
- 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x12, 0x70, 0x0a, 0x0b,
- 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x12, 0x20, 0x2e, 0x6d, 0x65,
- 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63,
- 0x68, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e,
- 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61,
- 0x72, 0x63, 0x68, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
- 0x31, 0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x3a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x62,
- 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x12, 0x1c, 0x2e, 0x6d, 0x65, 0x6d, 0x6f,
- 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e,
- 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x22, 0x25, 0xda, 0x41, 0x04,
- 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69,
- 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f,
- 0x2a, 0x7d, 0x12, 0x7f, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f,
- 0x12, 0x1f, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e,
- 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
- 0x74, 0x1a, 0x12, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,
- 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x22, 0x3c, 0xda, 0x41, 0x10, 0x6d, 0x65, 0x6d, 0x6f, 0x2c, 0x75,
- 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23,
- 0x3a, 0x04, 0x6d, 0x65, 0x6d, 0x6f, 0x32, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
- 0x7b, 0x6d, 0x65, 0x6d, 0x6f, 0x2e, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
- 0x2f, 0x2a, 0x7d, 0x12, 0x6c, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d,
- 0x6f, 0x12, 0x1f, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,
- 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x25, 0xda, 0x41, 0x04, 0x6e,
- 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f,
- 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a,
- 0x7d, 0x12, 0x73, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x73,
- 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e,
- 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
- 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
- 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x52, 0x65, 0x73,
- 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a,
- 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x3a,
- 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x92, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4d,
- 0x65, 0x6d, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x2e,
- 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73,
- 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52,
- 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61,
- 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x72,
- 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
- 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d,
- 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x8d, 0x01, 0x0a, 0x13,
- 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65,
- 0x72, 0x74, 0x79, 0x12, 0x28, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e,
- 0x76, 0x31, 0x2e, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x72,
- 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e,
- 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
- 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a,
- 0x22, 0x29, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d,
- 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
- 0x69, 0x65, 0x73, 0x3a, 0x72, 0x65, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x7c, 0x0a, 0x0c, 0x4c,
- 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x54, 0x61, 0x67, 0x73, 0x12, 0x21, 0x2e, 0x6d, 0x65,
- 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d,
- 0x65, 0x6d, 0x6f, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22,
- 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69,
- 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
- 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, 0x69,
- 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6d, 0x65, 0x6d, 0x6f,
- 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x12, 0x7c, 0x0a, 0x0d, 0x52, 0x65, 0x6e,
- 0x61, 0x6d, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x54, 0x61, 0x67, 0x12, 0x22, 0x2e, 0x6d, 0x65, 0x6d,
- 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65,
- 0x4d, 0x65, 0x6d, 0x6f, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
- 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
- 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x01,
- 0x2a, 0x32, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65,
- 0x6e, 0x74, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x61, 0x67, 0x73,
- 0x3a, 0x72, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x78, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74,
- 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x54, 0x61, 0x67, 0x12, 0x22, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
- 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65,
- 0x6d, 0x6f, 0x54, 0x61, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
- 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
- 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x2a, 0x23, 0x2f, 0x61,
- 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6d, 0x65,
- 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x74, 0x61, 0x67,
- 0x7d, 0x12, 0x85, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x73,
- 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61,
- 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x73,
- 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e,
- 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
- 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x32, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3,
- 0xe4, 0x93, 0x02, 0x25, 0x3a, 0x01, 0x2a, 0x32, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
- 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x2f,
- 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x11, 0x4c, 0x69,
- 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12,
- 0x26, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c,
- 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e,
- 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52,
- 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x2f, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12,
- 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d,
- 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
- 0x73, 0x12, 0x85, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x6c,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61,
- 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x6c,
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e,
- 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
- 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x32, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3,
- 0xe4, 0x93, 0x02, 0x25, 0x3a, 0x01, 0x2a, 0x32, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
- 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x2f,
- 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x11, 0x4c, 0x69,
- 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
- 0x26, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c,
- 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e,
- 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52,
- 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x2f, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12,
- 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d,
- 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e,
- 0x73, 0x12, 0x88, 0x01, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f,
- 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e,
- 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d,
- 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
- 0x12, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d,
- 0x65, 0x6d, 0x6f, 0x22, 0x37, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93,
- 0x02, 0x2a, 0x3a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x1f, 0x2f, 0x61, 0x70,
- 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
- 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x91, 0x01, 0x0a,
- 0x10, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
- 0x73, 0x12, 0x25, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,
- 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
- 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
- 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f,
- 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
- 0x22, 0x2e, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12,
- 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d,
- 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73,
- 0x12, 0x8c, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6d, 0x6f,
- 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x26, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61,
- 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6d,
- 0x6f, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27,
- 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65,
+ 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f,
+ 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0x67, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f,
+ 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
+ 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e,
+ 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2e,
+ 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
+ 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x55,
+ 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x72,
+ 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a,
+ 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65,
+ 0x6d, 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x6c, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x69, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d,
+ 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61,
+ 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74,
+ 0x22, 0x2d, 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d,
+ 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e,
+ 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22,
+ 0x44, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65,
+ 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x6d,
+ 0x65, 0x6d, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x65, 0x6d,
+ 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x05,
+ 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x22, 0x62, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72,
+ 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x7a, 0x6f, 0x6e,
+ 0x65, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x9f, 0x01, 0x0a, 0x19, 0x47, 0x65,
0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52,
- 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0xda, 0x41, 0x08, 0x75, 0x73, 0x65, 0x72,
- 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x61, 0x70, 0x69,
- 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x12,
- 0x95, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x61, 0x63,
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70,
- 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x61,
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x73,
+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61,
+ 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6d,
+ 0x6f, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
+ 0x53, 0x74, 0x61, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74,
+ 0x73, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
+ 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
+ 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
+ 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x2e, 0x0a, 0x18, 0x4c,
+ 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x51, 0x0a, 0x19, 0x4c,
+ 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65,
+ 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x63,
+ 0x0a, 0x19, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e,
+ 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
+ 0x32, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,
+ 0x2e, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x72, 0x65, 0x61, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x22, 0x3c, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d,
+ 0x6f, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
+ 0x64, 0x2a, 0x50, 0x0a, 0x0a, 0x56, 0x69, 0x73, 0x69, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12,
+ 0x1a, 0x0a, 0x16, 0x56, 0x49, 0x53, 0x49, 0x42, 0x49, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e,
+ 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50,
+ 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x52, 0x4f, 0x54,
+ 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x55, 0x42, 0x4c, 0x49,
+ 0x43, 0x10, 0x03, 0x32, 0xb6, 0x17, 0x0a, 0x0b, 0x4d, 0x65, 0x6d, 0x6f, 0x53, 0x65, 0x72, 0x76,
+ 0x69, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d,
+ 0x6f, 0x12, 0x1f, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,
+ 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
+ 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x3a, 0x01,
+ 0x2a, 0x22, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
+ 0x12, 0x63, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x12, 0x1e, 0x2e,
0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73,
- 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65,
- 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82,
- 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b,
- 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x65,
- 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x89, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x73, 0x65,
- 0x72, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27,
- 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70,
- 0x73, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
- 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e,
- 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22,
+ 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e,
+ 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73,
+ 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15,
+ 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
+ 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x12, 0x70, 0x0a, 0x0b, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d,
+ 0x65, 0x6d, 0x6f, 0x73, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69,
+ 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61,
+ 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4d, 0x65, 0x6d, 0x6f,
+ 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02,
+ 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
+ 0x3a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x62, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4d, 0x65,
+ 0x6d, 0x6f, 0x12, 0x1c, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
+ 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x12, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e,
+ 0x4d, 0x65, 0x6d, 0x6f, 0x22, 0x25, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4,
+ 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x6f, 0x0a, 0x0c, 0x47,
+ 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x42, 0x79, 0x55, 0x69, 0x64, 0x12, 0x21, 0x2e, 0x6d, 0x65,
+ 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65,
+ 0x6d, 0x6f, 0x42, 0x79, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12,
+ 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65,
+ 0x6d, 0x6f, 0x22, 0x28, 0xda, 0x41, 0x03, 0x75, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c,
+ 0x12, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x3a,
+ 0x62, 0x79, 0x2d, 0x75, 0x69, 0x64, 0x2f, 0x7b, 0x75, 0x69, 0x64, 0x7d, 0x12, 0x7f, 0x0a, 0x0a,
+ 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x12, 0x1f, 0x2e, 0x6d, 0x65, 0x6d,
+ 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
+ 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x6d, 0x65,
+ 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x22,
+ 0x3c, 0xda, 0x41, 0x10, 0x6d, 0x65, 0x6d, 0x6f, 0x2c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
+ 0x6d, 0x61, 0x73, 0x6b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x04, 0x6d, 0x65, 0x6d, 0x6f,
+ 0x32, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6d, 0x65, 0x6d, 0x6f, 0x2e,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x6c, 0x0a,
+ 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x12, 0x1f, 0x2e, 0x6d, 0x65,
+ 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
+ 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
+ 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
+ 0x6d, 0x70, 0x74, 0x79, 0x22, 0x25, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4,
+ 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61,
+ 0x6d, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x12, 0x73, 0x0a, 0x0b, 0x45,
+ 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x6d,
+ 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74,
+ 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d,
+ 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f,
+ 0x72, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+ 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x01, 0x2a, 0x22, 0x14, 0x2f, 0x61, 0x70, 0x69,
+ 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x3a, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74,
+ 0x12, 0x92, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x72, 0x6f,
+ 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x27, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e,
+ 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x50,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x1a, 0x28, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e,
+ 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69,
+ 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93,
+ 0x02, 0x23, 0x12, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d,
+ 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65,
+ 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x8d, 0x01, 0x0a, 0x13, 0x52, 0x65, 0x62, 0x75, 0x69, 0x6c,
+ 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x28, 0x2e,
+ 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x62,
+ 0x75, 0x69, 0x6c, 0x64, 0x4d, 0x65, 0x6d, 0x6f, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22,
+ 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x22, 0x29, 0x2f, 0x61, 0x70, 0x69,
+ 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f,
+ 0x2a, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x3a, 0x72, 0x65,
+ 0x62, 0x75, 0x69, 0x6c, 0x64, 0x12, 0x7c, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d,
+ 0x6f, 0x54, 0x61, 0x67, 0x73, 0x12, 0x21, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70,
+ 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x54, 0x61, 0x67,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
+ 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f,
+ 0x54, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3,
+ 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70,
+ 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74,
+ 0x61, 0x67, 0x73, 0x12, 0x7c, 0x0a, 0x0d, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x65, 0x6d,
+ 0x6f, 0x54, 0x61, 0x67, 0x12, 0x22, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69,
+ 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x54, 0x61,
+ 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
+ 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79,
+ 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x01, 0x2a, 0x32, 0x24, 0x2f, 0x61, 0x70,
+ 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6d, 0x65, 0x6d,
+ 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x74, 0x61, 0x67, 0x73, 0x3a, 0x72, 0x65, 0x6e, 0x61, 0x6d,
+ 0x65, 0x12, 0x78, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x54,
+ 0x61, 0x67, 0x12, 0x22, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
+ 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x54, 0x61, 0x67, 0x52,
+ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2b,
+ 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x2a, 0x23, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
+ 0x7b, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d,
+ 0x2f, 0x74, 0x61, 0x67, 0x73, 0x2f, 0x7b, 0x74, 0x61, 0x67, 0x7d, 0x12, 0x85, 0x01, 0x0a, 0x10,
+ 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73,
+ 0x12, 0x25, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e,
+ 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22,
0x32, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x3a, 0x01,
- 0x2a, 0x22, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65,
- 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x73, 0x12, 0x8c, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65,
- 0x6d, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x6d, 0x65, 0x6d,
- 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
- 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
- 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x35, 0xda, 0x41, 0x0b,
- 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02,
- 0x21, 0x2a, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x61, 0x63, 0x74,
- 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69,
- 0x64, 0x7d, 0x42, 0xa8, 0x01, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
- 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x10, 0x4d, 0x65, 0x6d, 0x6f, 0x53, 0x65, 0x72,
- 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x67, 0x69, 0x74,
- 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x75, 0x73, 0x65, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
- 0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e,
- 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x31, 0xa2, 0x02, 0x03,
- 0x4d, 0x41, 0x58, 0xaa, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x70, 0x69, 0x2e,
- 0x56, 0x31, 0xca, 0x02, 0x0c, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56,
- 0x31, 0xe2, 0x02, 0x18, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31,
- 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x4d,
- 0x65, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70,
- 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x2a, 0x32, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
+ 0x63, 0x65, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f,
+ 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x26, 0x2e, 0x6d, 0x65, 0x6d, 0x6f,
+ 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d,
+ 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,
+ 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0xda, 0x41, 0x04, 0x6e,
+ 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f,
+ 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a,
+ 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x85, 0x01, 0x0a, 0x10,
+ 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x12, 0x25, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e,
+ 0x53, 0x65, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22,
+ 0x32, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x3a, 0x01,
+ 0x2a, 0x32, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65,
+ 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f,
+ 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x2e, 0x6d, 0x65, 0x6d, 0x6f,
+ 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d,
+ 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,
+ 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0xda, 0x41, 0x04, 0x6e,
+ 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12, 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f,
+ 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a,
+ 0x7d, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x88, 0x01, 0x0a, 0x11,
+ 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+ 0x74, 0x12, 0x26, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,
+ 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65,
+ 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x6d, 0x65, 0x6d, 0x6f,
+ 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x6f, 0x22, 0x37, 0xda,
+ 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x3a, 0x07, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b,
+ 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x63, 0x6f,
+ 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x91, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x4d,
+ 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x6d, 0x65,
+ 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d,
+ 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
+ 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0xda, 0x41, 0x04, 0x6e,
+ 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f,
+ 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a,
+ 0x7d, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x8c, 0x01, 0x0a, 0x11, 0x47,
+ 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73,
+ 0x12, 0x26, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e,
+ 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x53, 0x74, 0x61, 0x74,
+ 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
+ 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4d,
+ 0x65, 0x6d, 0x6f, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x22, 0x26, 0xda, 0x41, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3,
+ 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x65,
+ 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x11, 0x4c, 0x69,
+ 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12,
+ 0x26, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c,
+ 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e,
+ 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x6d, 0x6f, 0x52,
+ 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x22, 0x2f, 0xda, 0x41, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x12,
+ 0x20, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d,
+ 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x12, 0x89, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x6d, 0x6f,
+ 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
+ 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x73, 0x65, 0x72, 0x74, 0x4d, 0x65,
+ 0x6d, 0x6f, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+ 0x74, 0x1a, 0x16, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76, 0x31,
+ 0x2e, 0x52, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x32, 0xda, 0x41, 0x04, 0x6e, 0x61,
+ 0x6d, 0x65, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x3a, 0x01, 0x2a, 0x22, 0x20, 0x2f, 0x61, 0x70,
+ 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
+ 0x2f, 0x2a, 0x7d, 0x2f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x8c, 0x01,
+ 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65, 0x61, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69,
+ 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x6d, 0x6f, 0x52, 0x65,
+ 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e,
+ 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
+ 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x35, 0xda, 0x41, 0x0b, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69,
+ 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x2a, 0x1f, 0x2f, 0x61, 0x70,
+ 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b,
+ 0x72, 0x65, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x42, 0xa8, 0x01, 0x0a,
+ 0x10, 0x63, 0x6f, 0x6d, 0x2e, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x76,
+ 0x31, 0x42, 0x10, 0x4d, 0x65, 0x6d, 0x6f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72,
+ 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f,
+ 0x6d, 0x2f, 0x75, 0x73, 0x65, 0x6d, 0x65, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x65, 0x6d, 0x6f, 0x73,
+ 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76,
+ 0x31, 0x3b, 0x61, 0x70, 0x69, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x4d, 0x41, 0x58, 0xaa, 0x02, 0x0c,
+ 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x70, 0x69, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0c, 0x4d,
+ 0x65, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x18, 0x4d, 0x65,
+ 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x70, 0x69, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65,
+ 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0e, 0x4d, 0x65, 0x6d, 0x6f, 0x73, 0x3a, 0x3a,
+ 0x41, 0x70, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -2499,7 +2556,7 @@ func file_api_v1_memo_service_proto_rawDescGZIP() []byte {
}
var file_api_v1_memo_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_api_v1_memo_service_proto_msgTypes = make([]protoimpl.MessageInfo, 36)
+var file_api_v1_memo_service_proto_msgTypes = make([]protoimpl.MessageInfo, 37)
var file_api_v1_memo_service_proto_goTypes = []any{
(Visibility)(0), // 0: memos.api.v1.Visibility
(*Memo)(nil), // 1: memos.api.v1.Memo
@@ -2510,116 +2567,119 @@ var file_api_v1_memo_service_proto_goTypes = []any{
(*SearchMemosRequest)(nil), // 6: memos.api.v1.SearchMemosRequest
(*SearchMemosResponse)(nil), // 7: memos.api.v1.SearchMemosResponse
(*GetMemoRequest)(nil), // 8: memos.api.v1.GetMemoRequest
- (*UpdateMemoRequest)(nil), // 9: memos.api.v1.UpdateMemoRequest
- (*DeleteMemoRequest)(nil), // 10: memos.api.v1.DeleteMemoRequest
- (*ExportMemosRequest)(nil), // 11: memos.api.v1.ExportMemosRequest
- (*ExportMemosResponse)(nil), // 12: memos.api.v1.ExportMemosResponse
- (*ListMemoPropertiesRequest)(nil), // 13: memos.api.v1.ListMemoPropertiesRequest
- (*ListMemoPropertiesResponse)(nil), // 14: memos.api.v1.ListMemoPropertiesResponse
- (*RebuildMemoPropertyRequest)(nil), // 15: memos.api.v1.RebuildMemoPropertyRequest
- (*ListMemoTagsRequest)(nil), // 16: memos.api.v1.ListMemoTagsRequest
- (*ListMemoTagsResponse)(nil), // 17: memos.api.v1.ListMemoTagsResponse
- (*RenameMemoTagRequest)(nil), // 18: memos.api.v1.RenameMemoTagRequest
- (*DeleteMemoTagRequest)(nil), // 19: memos.api.v1.DeleteMemoTagRequest
- (*SetMemoResourcesRequest)(nil), // 20: memos.api.v1.SetMemoResourcesRequest
- (*ListMemoResourcesRequest)(nil), // 21: memos.api.v1.ListMemoResourcesRequest
- (*ListMemoResourcesResponse)(nil), // 22: memos.api.v1.ListMemoResourcesResponse
- (*SetMemoRelationsRequest)(nil), // 23: memos.api.v1.SetMemoRelationsRequest
- (*ListMemoRelationsRequest)(nil), // 24: memos.api.v1.ListMemoRelationsRequest
- (*ListMemoRelationsResponse)(nil), // 25: memos.api.v1.ListMemoRelationsResponse
- (*CreateMemoCommentRequest)(nil), // 26: memos.api.v1.CreateMemoCommentRequest
- (*ListMemoCommentsRequest)(nil), // 27: memos.api.v1.ListMemoCommentsRequest
- (*ListMemoCommentsResponse)(nil), // 28: memos.api.v1.ListMemoCommentsResponse
- (*GetUserMemosStatsRequest)(nil), // 29: memos.api.v1.GetUserMemosStatsRequest
- (*GetUserMemosStatsResponse)(nil), // 30: memos.api.v1.GetUserMemosStatsResponse
- (*ListMemoReactionsRequest)(nil), // 31: memos.api.v1.ListMemoReactionsRequest
- (*ListMemoReactionsResponse)(nil), // 32: memos.api.v1.ListMemoReactionsResponse
- (*UpsertMemoReactionRequest)(nil), // 33: memos.api.v1.UpsertMemoReactionRequest
- (*DeleteMemoReactionRequest)(nil), // 34: memos.api.v1.DeleteMemoReactionRequest
- nil, // 35: memos.api.v1.ListMemoTagsResponse.TagAmountsEntry
- nil, // 36: memos.api.v1.GetUserMemosStatsResponse.StatsEntry
- (RowStatus)(0), // 37: memos.api.v1.RowStatus
- (*timestamppb.Timestamp)(nil), // 38: google.protobuf.Timestamp
- (*Node)(nil), // 39: memos.api.v1.Node
- (*Resource)(nil), // 40: memos.api.v1.Resource
- (*MemoRelation)(nil), // 41: memos.api.v1.MemoRelation
- (*Reaction)(nil), // 42: memos.api.v1.Reaction
- (*fieldmaskpb.FieldMask)(nil), // 43: google.protobuf.FieldMask
- (*emptypb.Empty)(nil), // 44: google.protobuf.Empty
+ (*GetMemoByUidRequest)(nil), // 9: memos.api.v1.GetMemoByUidRequest
+ (*UpdateMemoRequest)(nil), // 10: memos.api.v1.UpdateMemoRequest
+ (*DeleteMemoRequest)(nil), // 11: memos.api.v1.DeleteMemoRequest
+ (*ExportMemosRequest)(nil), // 12: memos.api.v1.ExportMemosRequest
+ (*ExportMemosResponse)(nil), // 13: memos.api.v1.ExportMemosResponse
+ (*ListMemoPropertiesRequest)(nil), // 14: memos.api.v1.ListMemoPropertiesRequest
+ (*ListMemoPropertiesResponse)(nil), // 15: memos.api.v1.ListMemoPropertiesResponse
+ (*RebuildMemoPropertyRequest)(nil), // 16: memos.api.v1.RebuildMemoPropertyRequest
+ (*ListMemoTagsRequest)(nil), // 17: memos.api.v1.ListMemoTagsRequest
+ (*ListMemoTagsResponse)(nil), // 18: memos.api.v1.ListMemoTagsResponse
+ (*RenameMemoTagRequest)(nil), // 19: memos.api.v1.RenameMemoTagRequest
+ (*DeleteMemoTagRequest)(nil), // 20: memos.api.v1.DeleteMemoTagRequest
+ (*SetMemoResourcesRequest)(nil), // 21: memos.api.v1.SetMemoResourcesRequest
+ (*ListMemoResourcesRequest)(nil), // 22: memos.api.v1.ListMemoResourcesRequest
+ (*ListMemoResourcesResponse)(nil), // 23: memos.api.v1.ListMemoResourcesResponse
+ (*SetMemoRelationsRequest)(nil), // 24: memos.api.v1.SetMemoRelationsRequest
+ (*ListMemoRelationsRequest)(nil), // 25: memos.api.v1.ListMemoRelationsRequest
+ (*ListMemoRelationsResponse)(nil), // 26: memos.api.v1.ListMemoRelationsResponse
+ (*CreateMemoCommentRequest)(nil), // 27: memos.api.v1.CreateMemoCommentRequest
+ (*ListMemoCommentsRequest)(nil), // 28: memos.api.v1.ListMemoCommentsRequest
+ (*ListMemoCommentsResponse)(nil), // 29: memos.api.v1.ListMemoCommentsResponse
+ (*GetUserMemosStatsRequest)(nil), // 30: memos.api.v1.GetUserMemosStatsRequest
+ (*GetUserMemosStatsResponse)(nil), // 31: memos.api.v1.GetUserMemosStatsResponse
+ (*ListMemoReactionsRequest)(nil), // 32: memos.api.v1.ListMemoReactionsRequest
+ (*ListMemoReactionsResponse)(nil), // 33: memos.api.v1.ListMemoReactionsResponse
+ (*UpsertMemoReactionRequest)(nil), // 34: memos.api.v1.UpsertMemoReactionRequest
+ (*DeleteMemoReactionRequest)(nil), // 35: memos.api.v1.DeleteMemoReactionRequest
+ nil, // 36: memos.api.v1.ListMemoTagsResponse.TagAmountsEntry
+ nil, // 37: memos.api.v1.GetUserMemosStatsResponse.StatsEntry
+ (RowStatus)(0), // 38: memos.api.v1.RowStatus
+ (*timestamppb.Timestamp)(nil), // 39: google.protobuf.Timestamp
+ (*Node)(nil), // 40: memos.api.v1.Node
+ (*Resource)(nil), // 41: memos.api.v1.Resource
+ (*MemoRelation)(nil), // 42: memos.api.v1.MemoRelation
+ (*Reaction)(nil), // 43: memos.api.v1.Reaction
+ (*fieldmaskpb.FieldMask)(nil), // 44: google.protobuf.FieldMask
+ (*emptypb.Empty)(nil), // 45: google.protobuf.Empty
}
var file_api_v1_memo_service_proto_depIdxs = []int32{
- 37, // 0: memos.api.v1.Memo.row_status:type_name -> memos.api.v1.RowStatus
- 38, // 1: memos.api.v1.Memo.create_time:type_name -> google.protobuf.Timestamp
- 38, // 2: memos.api.v1.Memo.update_time:type_name -> google.protobuf.Timestamp
- 38, // 3: memos.api.v1.Memo.display_time:type_name -> google.protobuf.Timestamp
- 39, // 4: memos.api.v1.Memo.nodes:type_name -> memos.api.v1.Node
+ 38, // 0: memos.api.v1.Memo.row_status:type_name -> memos.api.v1.RowStatus
+ 39, // 1: memos.api.v1.Memo.create_time:type_name -> google.protobuf.Timestamp
+ 39, // 2: memos.api.v1.Memo.update_time:type_name -> google.protobuf.Timestamp
+ 39, // 3: memos.api.v1.Memo.display_time:type_name -> google.protobuf.Timestamp
+ 40, // 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
- 40, // 6: memos.api.v1.Memo.resources:type_name -> memos.api.v1.Resource
- 41, // 7: memos.api.v1.Memo.relations:type_name -> memos.api.v1.MemoRelation
- 42, // 8: memos.api.v1.Memo.reactions:type_name -> memos.api.v1.Reaction
+ 41, // 6: memos.api.v1.Memo.resources:type_name -> memos.api.v1.Resource
+ 42, // 7: memos.api.v1.Memo.relations:type_name -> memos.api.v1.MemoRelation
+ 43, // 8: memos.api.v1.Memo.reactions:type_name -> memos.api.v1.Reaction
2, // 9: memos.api.v1.Memo.property:type_name -> memos.api.v1.MemoProperty
0, // 10: memos.api.v1.CreateMemoRequest.visibility:type_name -> memos.api.v1.Visibility
1, // 11: memos.api.v1.ListMemosResponse.memos:type_name -> memos.api.v1.Memo
1, // 12: memos.api.v1.SearchMemosResponse.memos:type_name -> memos.api.v1.Memo
1, // 13: memos.api.v1.UpdateMemoRequest.memo:type_name -> memos.api.v1.Memo
- 43, // 14: memos.api.v1.UpdateMemoRequest.update_mask:type_name -> google.protobuf.FieldMask
+ 44, // 14: memos.api.v1.UpdateMemoRequest.update_mask:type_name -> google.protobuf.FieldMask
2, // 15: memos.api.v1.ListMemoPropertiesResponse.properties:type_name -> memos.api.v1.MemoProperty
- 35, // 16: memos.api.v1.ListMemoTagsResponse.tag_amounts:type_name -> memos.api.v1.ListMemoTagsResponse.TagAmountsEntry
- 40, // 17: memos.api.v1.SetMemoResourcesRequest.resources:type_name -> memos.api.v1.Resource
- 40, // 18: memos.api.v1.ListMemoResourcesResponse.resources:type_name -> memos.api.v1.Resource
- 41, // 19: memos.api.v1.SetMemoRelationsRequest.relations:type_name -> memos.api.v1.MemoRelation
- 41, // 20: memos.api.v1.ListMemoRelationsResponse.relations:type_name -> memos.api.v1.MemoRelation
+ 36, // 16: memos.api.v1.ListMemoTagsResponse.tag_amounts:type_name -> memos.api.v1.ListMemoTagsResponse.TagAmountsEntry
+ 41, // 17: memos.api.v1.SetMemoResourcesRequest.resources:type_name -> memos.api.v1.Resource
+ 41, // 18: memos.api.v1.ListMemoResourcesResponse.resources:type_name -> memos.api.v1.Resource
+ 42, // 19: memos.api.v1.SetMemoRelationsRequest.relations:type_name -> memos.api.v1.MemoRelation
+ 42, // 20: memos.api.v1.ListMemoRelationsResponse.relations:type_name -> memos.api.v1.MemoRelation
3, // 21: memos.api.v1.CreateMemoCommentRequest.comment:type_name -> memos.api.v1.CreateMemoRequest
1, // 22: memos.api.v1.ListMemoCommentsResponse.memos:type_name -> memos.api.v1.Memo
- 36, // 23: memos.api.v1.GetUserMemosStatsResponse.stats:type_name -> memos.api.v1.GetUserMemosStatsResponse.StatsEntry
- 42, // 24: memos.api.v1.ListMemoReactionsResponse.reactions:type_name -> memos.api.v1.Reaction
- 42, // 25: memos.api.v1.UpsertMemoReactionRequest.reaction:type_name -> memos.api.v1.Reaction
+ 37, // 23: memos.api.v1.GetUserMemosStatsResponse.stats:type_name -> memos.api.v1.GetUserMemosStatsResponse.StatsEntry
+ 43, // 24: memos.api.v1.ListMemoReactionsResponse.reactions:type_name -> memos.api.v1.Reaction
+ 43, // 25: memos.api.v1.UpsertMemoReactionRequest.reaction:type_name -> memos.api.v1.Reaction
3, // 26: memos.api.v1.MemoService.CreateMemo:input_type -> memos.api.v1.CreateMemoRequest
4, // 27: memos.api.v1.MemoService.ListMemos:input_type -> memos.api.v1.ListMemosRequest
6, // 28: memos.api.v1.MemoService.SearchMemos:input_type -> memos.api.v1.SearchMemosRequest
8, // 29: memos.api.v1.MemoService.GetMemo:input_type -> memos.api.v1.GetMemoRequest
- 9, // 30: memos.api.v1.MemoService.UpdateMemo:input_type -> memos.api.v1.UpdateMemoRequest
- 10, // 31: memos.api.v1.MemoService.DeleteMemo:input_type -> memos.api.v1.DeleteMemoRequest
- 11, // 32: memos.api.v1.MemoService.ExportMemos:input_type -> memos.api.v1.ExportMemosRequest
- 13, // 33: memos.api.v1.MemoService.ListMemoProperties:input_type -> memos.api.v1.ListMemoPropertiesRequest
- 15, // 34: memos.api.v1.MemoService.RebuildMemoProperty:input_type -> memos.api.v1.RebuildMemoPropertyRequest
- 16, // 35: memos.api.v1.MemoService.ListMemoTags:input_type -> memos.api.v1.ListMemoTagsRequest
- 18, // 36: memos.api.v1.MemoService.RenameMemoTag:input_type -> memos.api.v1.RenameMemoTagRequest
- 19, // 37: memos.api.v1.MemoService.DeleteMemoTag:input_type -> memos.api.v1.DeleteMemoTagRequest
- 20, // 38: memos.api.v1.MemoService.SetMemoResources:input_type -> memos.api.v1.SetMemoResourcesRequest
- 21, // 39: memos.api.v1.MemoService.ListMemoResources:input_type -> memos.api.v1.ListMemoResourcesRequest
- 23, // 40: memos.api.v1.MemoService.SetMemoRelations:input_type -> memos.api.v1.SetMemoRelationsRequest
- 24, // 41: memos.api.v1.MemoService.ListMemoRelations:input_type -> memos.api.v1.ListMemoRelationsRequest
- 26, // 42: memos.api.v1.MemoService.CreateMemoComment:input_type -> memos.api.v1.CreateMemoCommentRequest
- 27, // 43: memos.api.v1.MemoService.ListMemoComments:input_type -> memos.api.v1.ListMemoCommentsRequest
- 29, // 44: memos.api.v1.MemoService.GetUserMemosStats:input_type -> memos.api.v1.GetUserMemosStatsRequest
- 31, // 45: memos.api.v1.MemoService.ListMemoReactions:input_type -> memos.api.v1.ListMemoReactionsRequest
- 33, // 46: memos.api.v1.MemoService.UpsertMemoReaction:input_type -> memos.api.v1.UpsertMemoReactionRequest
- 34, // 47: memos.api.v1.MemoService.DeleteMemoReaction:input_type -> memos.api.v1.DeleteMemoReactionRequest
- 1, // 48: memos.api.v1.MemoService.CreateMemo:output_type -> memos.api.v1.Memo
- 5, // 49: memos.api.v1.MemoService.ListMemos:output_type -> memos.api.v1.ListMemosResponse
- 7, // 50: memos.api.v1.MemoService.SearchMemos:output_type -> memos.api.v1.SearchMemosResponse
- 1, // 51: memos.api.v1.MemoService.GetMemo:output_type -> memos.api.v1.Memo
- 1, // 52: memos.api.v1.MemoService.UpdateMemo:output_type -> memos.api.v1.Memo
- 44, // 53: memos.api.v1.MemoService.DeleteMemo:output_type -> google.protobuf.Empty
- 12, // 54: memos.api.v1.MemoService.ExportMemos:output_type -> memos.api.v1.ExportMemosResponse
- 14, // 55: memos.api.v1.MemoService.ListMemoProperties:output_type -> memos.api.v1.ListMemoPropertiesResponse
- 44, // 56: memos.api.v1.MemoService.RebuildMemoProperty:output_type -> google.protobuf.Empty
- 17, // 57: memos.api.v1.MemoService.ListMemoTags:output_type -> memos.api.v1.ListMemoTagsResponse
- 44, // 58: memos.api.v1.MemoService.RenameMemoTag:output_type -> google.protobuf.Empty
- 44, // 59: memos.api.v1.MemoService.DeleteMemoTag:output_type -> google.protobuf.Empty
- 44, // 60: memos.api.v1.MemoService.SetMemoResources:output_type -> google.protobuf.Empty
- 22, // 61: memos.api.v1.MemoService.ListMemoResources:output_type -> memos.api.v1.ListMemoResourcesResponse
- 44, // 62: memos.api.v1.MemoService.SetMemoRelations:output_type -> google.protobuf.Empty
- 25, // 63: memos.api.v1.MemoService.ListMemoRelations:output_type -> memos.api.v1.ListMemoRelationsResponse
- 1, // 64: memos.api.v1.MemoService.CreateMemoComment:output_type -> memos.api.v1.Memo
- 28, // 65: memos.api.v1.MemoService.ListMemoComments:output_type -> memos.api.v1.ListMemoCommentsResponse
- 30, // 66: memos.api.v1.MemoService.GetUserMemosStats:output_type -> memos.api.v1.GetUserMemosStatsResponse
- 32, // 67: memos.api.v1.MemoService.ListMemoReactions:output_type -> memos.api.v1.ListMemoReactionsResponse
- 42, // 68: memos.api.v1.MemoService.UpsertMemoReaction:output_type -> memos.api.v1.Reaction
- 44, // 69: memos.api.v1.MemoService.DeleteMemoReaction:output_type -> google.protobuf.Empty
- 48, // [48:70] is the sub-list for method output_type
- 26, // [26:48] is the sub-list for method input_type
+ 9, // 30: memos.api.v1.MemoService.GetMemoByUid:input_type -> memos.api.v1.GetMemoByUidRequest
+ 10, // 31: memos.api.v1.MemoService.UpdateMemo:input_type -> memos.api.v1.UpdateMemoRequest
+ 11, // 32: memos.api.v1.MemoService.DeleteMemo:input_type -> memos.api.v1.DeleteMemoRequest
+ 12, // 33: memos.api.v1.MemoService.ExportMemos:input_type -> memos.api.v1.ExportMemosRequest
+ 14, // 34: memos.api.v1.MemoService.ListMemoProperties:input_type -> memos.api.v1.ListMemoPropertiesRequest
+ 16, // 35: memos.api.v1.MemoService.RebuildMemoProperty:input_type -> memos.api.v1.RebuildMemoPropertyRequest
+ 17, // 36: memos.api.v1.MemoService.ListMemoTags:input_type -> memos.api.v1.ListMemoTagsRequest
+ 19, // 37: memos.api.v1.MemoService.RenameMemoTag:input_type -> memos.api.v1.RenameMemoTagRequest
+ 20, // 38: memos.api.v1.MemoService.DeleteMemoTag:input_type -> memos.api.v1.DeleteMemoTagRequest
+ 21, // 39: memos.api.v1.MemoService.SetMemoResources:input_type -> memos.api.v1.SetMemoResourcesRequest
+ 22, // 40: memos.api.v1.MemoService.ListMemoResources:input_type -> memos.api.v1.ListMemoResourcesRequest
+ 24, // 41: memos.api.v1.MemoService.SetMemoRelations:input_type -> memos.api.v1.SetMemoRelationsRequest
+ 25, // 42: memos.api.v1.MemoService.ListMemoRelations:input_type -> memos.api.v1.ListMemoRelationsRequest
+ 27, // 43: memos.api.v1.MemoService.CreateMemoComment:input_type -> memos.api.v1.CreateMemoCommentRequest
+ 28, // 44: memos.api.v1.MemoService.ListMemoComments:input_type -> memos.api.v1.ListMemoCommentsRequest
+ 30, // 45: memos.api.v1.MemoService.GetUserMemosStats:input_type -> memos.api.v1.GetUserMemosStatsRequest
+ 32, // 46: memos.api.v1.MemoService.ListMemoReactions:input_type -> memos.api.v1.ListMemoReactionsRequest
+ 34, // 47: memos.api.v1.MemoService.UpsertMemoReaction:input_type -> memos.api.v1.UpsertMemoReactionRequest
+ 35, // 48: memos.api.v1.MemoService.DeleteMemoReaction:input_type -> memos.api.v1.DeleteMemoReactionRequest
+ 1, // 49: memos.api.v1.MemoService.CreateMemo:output_type -> memos.api.v1.Memo
+ 5, // 50: memos.api.v1.MemoService.ListMemos:output_type -> memos.api.v1.ListMemosResponse
+ 7, // 51: memos.api.v1.MemoService.SearchMemos:output_type -> memos.api.v1.SearchMemosResponse
+ 1, // 52: memos.api.v1.MemoService.GetMemo:output_type -> memos.api.v1.Memo
+ 1, // 53: memos.api.v1.MemoService.GetMemoByUid:output_type -> memos.api.v1.Memo
+ 1, // 54: memos.api.v1.MemoService.UpdateMemo:output_type -> memos.api.v1.Memo
+ 45, // 55: memos.api.v1.MemoService.DeleteMemo:output_type -> google.protobuf.Empty
+ 13, // 56: memos.api.v1.MemoService.ExportMemos:output_type -> memos.api.v1.ExportMemosResponse
+ 15, // 57: memos.api.v1.MemoService.ListMemoProperties:output_type -> memos.api.v1.ListMemoPropertiesResponse
+ 45, // 58: memos.api.v1.MemoService.RebuildMemoProperty:output_type -> google.protobuf.Empty
+ 18, // 59: memos.api.v1.MemoService.ListMemoTags:output_type -> memos.api.v1.ListMemoTagsResponse
+ 45, // 60: memos.api.v1.MemoService.RenameMemoTag:output_type -> google.protobuf.Empty
+ 45, // 61: memos.api.v1.MemoService.DeleteMemoTag:output_type -> google.protobuf.Empty
+ 45, // 62: memos.api.v1.MemoService.SetMemoResources:output_type -> google.protobuf.Empty
+ 23, // 63: memos.api.v1.MemoService.ListMemoResources:output_type -> memos.api.v1.ListMemoResourcesResponse
+ 45, // 64: memos.api.v1.MemoService.SetMemoRelations:output_type -> google.protobuf.Empty
+ 26, // 65: memos.api.v1.MemoService.ListMemoRelations:output_type -> memos.api.v1.ListMemoRelationsResponse
+ 1, // 66: memos.api.v1.MemoService.CreateMemoComment:output_type -> memos.api.v1.Memo
+ 29, // 67: memos.api.v1.MemoService.ListMemoComments:output_type -> memos.api.v1.ListMemoCommentsResponse
+ 31, // 68: memos.api.v1.MemoService.GetUserMemosStats:output_type -> memos.api.v1.GetUserMemosStatsResponse
+ 33, // 69: memos.api.v1.MemoService.ListMemoReactions:output_type -> memos.api.v1.ListMemoReactionsResponse
+ 43, // 70: memos.api.v1.MemoService.UpsertMemoReaction:output_type -> memos.api.v1.Reaction
+ 45, // 71: memos.api.v1.MemoService.DeleteMemoReaction:output_type -> google.protobuf.Empty
+ 49, // [49:72] is the sub-list for method output_type
+ 26, // [26:49] is the sub-list for method input_type
26, // [26:26] is the sub-list for extension type_name
26, // [26:26] is the sub-list for extension extendee
0, // [0:26] is the sub-list for field type_name
@@ -2733,7 +2793,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[8].Exporter = func(v any, i int) any {
- switch v := v.(*UpdateMemoRequest); i {
+ switch v := v.(*GetMemoByUidRequest); i {
case 0:
return &v.state
case 1:
@@ -2745,7 +2805,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[9].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteMemoRequest); i {
+ switch v := v.(*UpdateMemoRequest); i {
case 0:
return &v.state
case 1:
@@ -2757,7 +2817,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[10].Exporter = func(v any, i int) any {
- switch v := v.(*ExportMemosRequest); i {
+ switch v := v.(*DeleteMemoRequest); i {
case 0:
return &v.state
case 1:
@@ -2769,7 +2829,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[11].Exporter = func(v any, i int) any {
- switch v := v.(*ExportMemosResponse); i {
+ switch v := v.(*ExportMemosRequest); i {
case 0:
return &v.state
case 1:
@@ -2781,7 +2841,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[12].Exporter = func(v any, i int) any {
- switch v := v.(*ListMemoPropertiesRequest); i {
+ switch v := v.(*ExportMemosResponse); i {
case 0:
return &v.state
case 1:
@@ -2793,7 +2853,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[13].Exporter = func(v any, i int) any {
- switch v := v.(*ListMemoPropertiesResponse); i {
+ switch v := v.(*ListMemoPropertiesRequest); i {
case 0:
return &v.state
case 1:
@@ -2805,7 +2865,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[14].Exporter = func(v any, i int) any {
- switch v := v.(*RebuildMemoPropertyRequest); i {
+ switch v := v.(*ListMemoPropertiesResponse); i {
case 0:
return &v.state
case 1:
@@ -2817,7 +2877,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[15].Exporter = func(v any, i int) any {
- switch v := v.(*ListMemoTagsRequest); i {
+ switch v := v.(*RebuildMemoPropertyRequest); i {
case 0:
return &v.state
case 1:
@@ -2829,7 +2889,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[16].Exporter = func(v any, i int) any {
- switch v := v.(*ListMemoTagsResponse); i {
+ switch v := v.(*ListMemoTagsRequest); i {
case 0:
return &v.state
case 1:
@@ -2841,7 +2901,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[17].Exporter = func(v any, i int) any {
- switch v := v.(*RenameMemoTagRequest); i {
+ switch v := v.(*ListMemoTagsResponse); i {
case 0:
return &v.state
case 1:
@@ -2853,7 +2913,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[18].Exporter = func(v any, i int) any {
- switch v := v.(*DeleteMemoTagRequest); i {
+ switch v := v.(*RenameMemoTagRequest); i {
case 0:
return &v.state
case 1:
@@ -2865,7 +2925,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[19].Exporter = func(v any, i int) any {
- switch v := v.(*SetMemoResourcesRequest); i {
+ switch v := v.(*DeleteMemoTagRequest); i {
case 0:
return &v.state
case 1:
@@ -2877,7 +2937,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[20].Exporter = func(v any, i int) any {
- switch v := v.(*ListMemoResourcesRequest); i {
+ switch v := v.(*SetMemoResourcesRequest); i {
case 0:
return &v.state
case 1:
@@ -2889,7 +2949,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[21].Exporter = func(v any, i int) any {
- switch v := v.(*ListMemoResourcesResponse); i {
+ switch v := v.(*ListMemoResourcesRequest); i {
case 0:
return &v.state
case 1:
@@ -2901,7 +2961,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[22].Exporter = func(v any, i int) any {
- switch v := v.(*SetMemoRelationsRequest); i {
+ switch v := v.(*ListMemoResourcesResponse); i {
case 0:
return &v.state
case 1:
@@ -2913,7 +2973,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[23].Exporter = func(v any, i int) any {
- switch v := v.(*ListMemoRelationsRequest); i {
+ switch v := v.(*SetMemoRelationsRequest); i {
case 0:
return &v.state
case 1:
@@ -2925,7 +2985,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[24].Exporter = func(v any, i int) any {
- switch v := v.(*ListMemoRelationsResponse); i {
+ switch v := v.(*ListMemoRelationsRequest); i {
case 0:
return &v.state
case 1:
@@ -2937,7 +2997,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[25].Exporter = func(v any, i int) any {
- switch v := v.(*CreateMemoCommentRequest); i {
+ switch v := v.(*ListMemoRelationsResponse); i {
case 0:
return &v.state
case 1:
@@ -2949,7 +3009,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[26].Exporter = func(v any, i int) any {
- switch v := v.(*ListMemoCommentsRequest); i {
+ switch v := v.(*CreateMemoCommentRequest); i {
case 0:
return &v.state
case 1:
@@ -2961,7 +3021,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[27].Exporter = func(v any, i int) any {
- switch v := v.(*ListMemoCommentsResponse); i {
+ switch v := v.(*ListMemoCommentsRequest); i {
case 0:
return &v.state
case 1:
@@ -2973,7 +3033,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[28].Exporter = func(v any, i int) any {
- switch v := v.(*GetUserMemosStatsRequest); i {
+ switch v := v.(*ListMemoCommentsResponse); i {
case 0:
return &v.state
case 1:
@@ -2985,7 +3045,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[29].Exporter = func(v any, i int) any {
- switch v := v.(*GetUserMemosStatsResponse); i {
+ switch v := v.(*GetUserMemosStatsRequest); i {
case 0:
return &v.state
case 1:
@@ -2997,7 +3057,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[30].Exporter = func(v any, i int) any {
- switch v := v.(*ListMemoReactionsRequest); i {
+ switch v := v.(*GetUserMemosStatsResponse); i {
case 0:
return &v.state
case 1:
@@ -3009,7 +3069,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[31].Exporter = func(v any, i int) any {
- switch v := v.(*ListMemoReactionsResponse); i {
+ switch v := v.(*ListMemoReactionsRequest); i {
case 0:
return &v.state
case 1:
@@ -3021,7 +3081,7 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[32].Exporter = func(v any, i int) any {
- switch v := v.(*UpsertMemoReactionRequest); i {
+ switch v := v.(*ListMemoReactionsResponse); i {
case 0:
return &v.state
case 1:
@@ -3033,6 +3093,18 @@ func file_api_v1_memo_service_proto_init() {
}
}
file_api_v1_memo_service_proto_msgTypes[33].Exporter = func(v any, i int) any {
+ switch v := v.(*UpsertMemoReactionRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_api_v1_memo_service_proto_msgTypes[34].Exporter = func(v any, i int) any {
switch v := v.(*DeleteMemoReactionRequest); i {
case 0:
return &v.state
@@ -3052,7 +3124,7 @@ func file_api_v1_memo_service_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_api_v1_memo_service_proto_rawDesc,
NumEnums: 1,
- NumMessages: 36,
+ NumMessages: 37,
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 b20d3116..94ba3af9 100644
--- a/proto/gen/api/v1/memo_service.pb.gw.go
+++ b/proto/gen/api/v1/memo_service.pb.gw.go
@@ -181,6 +181,58 @@ func local_request_MemoService_GetMemo_0(ctx context.Context, marshaler runtime.
}
+func request_MemoService_GetMemoByUid_0(ctx context.Context, marshaler runtime.Marshaler, client MemoServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GetMemoByUidRequest
+ var metadata runtime.ServerMetadata
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["uid"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "uid")
+ }
+
+ protoReq.Uid, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "uid", err)
+ }
+
+ msg, err := client.GetMemoByUid(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
+ return msg, metadata, err
+
+}
+
+func local_request_MemoService_GetMemoByUid_0(ctx context.Context, marshaler runtime.Marshaler, server MemoServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
+ var protoReq GetMemoByUidRequest
+ var metadata runtime.ServerMetadata
+
+ var (
+ val string
+ ok bool
+ err error
+ _ = err
+ )
+
+ val, ok = pathParams["uid"]
+ if !ok {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "uid")
+ }
+
+ protoReq.Uid, err = runtime.String(val)
+ if err != nil {
+ return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "uid", err)
+ }
+
+ msg, err := server.GetMemoByUid(ctx, &protoReq)
+ return msg, metadata, err
+
+}
+
var (
filter_MemoService_UpdateMemo_0 = &utilities.DoubleArray{Encoding: map[string]int{"memo": 0, "name": 1}, Base: []int{1, 2, 1, 0, 0}, Check: []int{0, 1, 2, 3, 2}}
)
@@ -1333,6 +1385,31 @@ func RegisterMemoServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux
})
+ mux.Handle("GET", pattern_MemoService_GetMemoByUid_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ var stream runtime.ServerTransportStream
+ ctx = grpc.NewContextWithServerTransportStream(ctx, &stream)
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/memos.api.v1.MemoService/GetMemoByUid", runtime.WithHTTPPathPattern("/api/v1/memos:by-uid/{uid}"))
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := local_request_MemoService_GetMemoByUid_0(annotatedContext, inboundMarshaler, server, req, pathParams)
+ md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer())
+ annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
+ if err != nil {
+ runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_MemoService_GetMemoByUid_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
mux.Handle("PATCH", pattern_MemoService_UpdateMemo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@@ -1912,6 +1989,28 @@ func RegisterMemoServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux
})
+ mux.Handle("GET", pattern_MemoService_GetMemoByUid_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
+ ctx, cancel := context.WithCancel(req.Context())
+ defer cancel()
+ inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
+ var err error
+ var annotatedContext context.Context
+ annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/memos.api.v1.MemoService/GetMemoByUid", runtime.WithHTTPPathPattern("/api/v1/memos:by-uid/{uid}"))
+ if err != nil {
+ runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
+ return
+ }
+ resp, md, err := request_MemoService_GetMemoByUid_0(annotatedContext, inboundMarshaler, client, req, pathParams)
+ annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md)
+ if err != nil {
+ runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err)
+ return
+ }
+
+ forward_MemoService_GetMemoByUid_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
+
+ })
+
mux.Handle("PATCH", pattern_MemoService_UpdateMemo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@@ -2320,6 +2419,8 @@ var (
pattern_MemoService_GetMemo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 2, 5, 3}, []string{"api", "v1", "memos", "name"}, ""))
+ pattern_MemoService_GetMemoByUid_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "memos:by-uid", "uid"}, ""))
+
pattern_MemoService_UpdateMemo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 2, 5, 3}, []string{"api", "v1", "memos", "memo.name"}, ""))
pattern_MemoService_DeleteMemo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 2, 5, 3}, []string{"api", "v1", "memos", "name"}, ""))
@@ -2366,6 +2467,8 @@ var (
forward_MemoService_GetMemo_0 = runtime.ForwardResponseMessage
+ forward_MemoService_GetMemoByUid_0 = runtime.ForwardResponseMessage
+
forward_MemoService_UpdateMemo_0 = runtime.ForwardResponseMessage
forward_MemoService_DeleteMemo_0 = runtime.ForwardResponseMessage
diff --git a/proto/gen/api/v1/memo_service_grpc.pb.go b/proto/gen/api/v1/memo_service_grpc.pb.go
index 7303f319..95792346 100644
--- a/proto/gen/api/v1/memo_service_grpc.pb.go
+++ b/proto/gen/api/v1/memo_service_grpc.pb.go
@@ -24,6 +24,7 @@ const (
MemoService_ListMemos_FullMethodName = "/memos.api.v1.MemoService/ListMemos"
MemoService_SearchMemos_FullMethodName = "/memos.api.v1.MemoService/SearchMemos"
MemoService_GetMemo_FullMethodName = "/memos.api.v1.MemoService/GetMemo"
+ MemoService_GetMemoByUid_FullMethodName = "/memos.api.v1.MemoService/GetMemoByUid"
MemoService_UpdateMemo_FullMethodName = "/memos.api.v1.MemoService/UpdateMemo"
MemoService_DeleteMemo_FullMethodName = "/memos.api.v1.MemoService/DeleteMemo"
MemoService_ExportMemos_FullMethodName = "/memos.api.v1.MemoService/ExportMemos"
@@ -56,6 +57,8 @@ type MemoServiceClient interface {
SearchMemos(ctx context.Context, in *SearchMemosRequest, opts ...grpc.CallOption) (*SearchMemosResponse, error)
// GetMemo gets a memo.
GetMemo(ctx context.Context, in *GetMemoRequest, opts ...grpc.CallOption) (*Memo, error)
+ // GetMemoByUid gets a memo by uid
+ GetMemoByUid(ctx context.Context, in *GetMemoByUidRequest, opts ...grpc.CallOption) (*Memo, error)
// UpdateMemo updates a memo.
UpdateMemo(ctx context.Context, in *UpdateMemoRequest, opts ...grpc.CallOption) (*Memo, error)
// DeleteMemo deletes a memo.
@@ -142,6 +145,16 @@ func (c *memoServiceClient) GetMemo(ctx context.Context, in *GetMemoRequest, opt
return out, nil
}
+func (c *memoServiceClient) GetMemoByUid(ctx context.Context, in *GetMemoByUidRequest, opts ...grpc.CallOption) (*Memo, error) {
+ cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
+ out := new(Memo)
+ err := c.cc.Invoke(ctx, MemoService_GetMemoByUid_FullMethodName, in, out, cOpts...)
+ if err != nil {
+ return nil, err
+ }
+ return out, nil
+}
+
func (c *memoServiceClient) UpdateMemo(ctx context.Context, in *UpdateMemoRequest, opts ...grpc.CallOption) (*Memo, error) {
cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
out := new(Memo)
@@ -334,6 +347,8 @@ type MemoServiceServer interface {
SearchMemos(context.Context, *SearchMemosRequest) (*SearchMemosResponse, error)
// GetMemo gets a memo.
GetMemo(context.Context, *GetMemoRequest) (*Memo, error)
+ // GetMemoByUid gets a memo by uid
+ GetMemoByUid(context.Context, *GetMemoByUidRequest) (*Memo, error)
// UpdateMemo updates a memo.
UpdateMemo(context.Context, *UpdateMemoRequest) (*Memo, error)
// DeleteMemo deletes a memo.
@@ -389,6 +404,9 @@ func (UnimplementedMemoServiceServer) SearchMemos(context.Context, *SearchMemosR
func (UnimplementedMemoServiceServer) GetMemo(context.Context, *GetMemoRequest) (*Memo, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetMemo not implemented")
}
+func (UnimplementedMemoServiceServer) GetMemoByUid(context.Context, *GetMemoByUidRequest) (*Memo, error) {
+ return nil, status.Errorf(codes.Unimplemented, "method GetMemoByUid not implemented")
+}
func (UnimplementedMemoServiceServer) UpdateMemo(context.Context, *UpdateMemoRequest) (*Memo, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateMemo not implemented")
}
@@ -528,6 +546,24 @@ func _MemoService_GetMemo_Handler(srv interface{}, ctx context.Context, dec func
return interceptor(ctx, in, info, handler)
}
+func _MemoService_GetMemoByUid_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+ in := new(GetMemoByUidRequest)
+ if err := dec(in); err != nil {
+ return nil, err
+ }
+ if interceptor == nil {
+ return srv.(MemoServiceServer).GetMemoByUid(ctx, in)
+ }
+ info := &grpc.UnaryServerInfo{
+ Server: srv,
+ FullMethod: MemoService_GetMemoByUid_FullMethodName,
+ }
+ handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+ return srv.(MemoServiceServer).GetMemoByUid(ctx, req.(*GetMemoByUidRequest))
+ }
+ return interceptor(ctx, in, info, handler)
+}
+
func _MemoService_UpdateMemo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(UpdateMemoRequest)
if err := dec(in); err != nil {
@@ -875,6 +911,10 @@ var MemoService_ServiceDesc = grpc.ServiceDesc{
MethodName: "GetMemo",
Handler: _MemoService_GetMemo_Handler,
},
+ {
+ MethodName: "GetMemoByUid",
+ Handler: _MemoService_GetMemoByUid_Handler,
+ },
{
MethodName: "UpdateMemo",
Handler: _MemoService_UpdateMemo_Handler,
diff --git a/server/router/api/v1/memo_service.go b/server/router/api/v1/memo_service.go
index 15367e1d..31e562d5 100644
--- a/server/router/api/v1/memo_service.go
+++ b/server/router/api/v1/memo_service.go
@@ -205,6 +205,36 @@ func (s *APIV1Service) GetMemo(ctx context.Context, request *v1pb.GetMemoRequest
return memoMessage, nil
}
+func (s *APIV1Service) GetMemoByUID(ctx context.Context, request *v1pb.GetMemoByUidRequest) (*v1pb.Memo, error) {
+ memo, err := s.Store.GetMemo(ctx, &store.FindMemo{
+ UID: &request.Uid,
+ })
+ if err != nil {
+ return nil, err
+ }
+ if memo == nil {
+ return nil, status.Errorf(codes.NotFound, "memo not found")
+ }
+ if memo.Visibility != store.Public {
+ user, err := s.GetCurrentUser(ctx)
+ if err != nil {
+ return nil, status.Errorf(codes.Internal, "failed to get user")
+ }
+ if user == nil {
+ return nil, status.Errorf(codes.PermissionDenied, "permission denied")
+ }
+ if memo.Visibility == store.Private && memo.CreatorID != user.ID {
+ return nil, status.Errorf(codes.PermissionDenied, "permission denied")
+ }
+ }
+
+ memoMessage, err := s.convertMemoFromStore(ctx, memo)
+ if err != nil {
+ return nil, errors.Wrap(err, "failed to convert memo")
+ }
+ return memoMessage, nil
+}
+
func (s *APIV1Service) UpdateMemo(ctx context.Context, request *v1pb.UpdateMemoRequest) (*v1pb.Memo, error) {
id, err := ExtractMemoIDFromName(request.Memo.Name)
if err != nil {
@@ -968,9 +998,6 @@ func (s *APIV1Service) buildMemoFindWithFilter(ctx context.Context, find *store.
}
find.CreatorID = &user.ID
}
- if filter.UID != nil {
- find.UID = filter.UID
- }
if filter.RowStatus != nil {
find.RowStatus = filter.RowStatus
}
@@ -1059,7 +1086,6 @@ type SearchMemosFilter struct {
DisplayTimeBefore *int64
DisplayTimeAfter *int64
Creator *string
- UID *string
RowStatus *store.RowStatus
Random bool
Limit *int
@@ -1122,9 +1148,6 @@ func findSearchMemosField(callExpr *expr.Expr_Call, filter *SearchMemosFilter) {
} else if idExpr.Name == "creator" {
creator := callExpr.Args[1].GetConstExpr().GetStringValue()
filter.Creator = &creator
- } else if idExpr.Name == "uid" {
- uid := callExpr.Args[1].GetConstExpr().GetStringValue()
- filter.UID = &uid
} else if idExpr.Name == "row_status" {
rowStatus := store.RowStatus(callExpr.Args[1].GetConstExpr().GetStringValue())
filter.RowStatus = &rowStatus
diff --git a/web/src/components/MemoContent/EmbeddedContent/EmbeddedMemo.tsx b/web/src/components/MemoContent/EmbeddedContent/EmbeddedMemo.tsx
index cee52878..4f69ef09 100644
--- a/web/src/components/MemoContent/EmbeddedContent/EmbeddedMemo.tsx
+++ b/web/src/components/MemoContent/EmbeddedContent/EmbeddedMemo.tsx
@@ -13,22 +13,22 @@ interface Props {
params: string;
}
-const EmbeddedMemo = ({ resourceId, params: paramsStr }: Props) => {
+const EmbeddedMemo = ({ resourceId: uid, params: paramsStr }: Props) => {
const context = useContext(RendererContext);
const loadingState = useLoading();
const memoStore = useMemoStore();
- const memo = memoStore.getMemoByUid(resourceId);
- const resourceName = `memos/${resourceId}`;
+ const memo = memoStore.getMemoByUid(uid);
+ const resourceName = `memos/${uid}`;
useEffect(() => {
- memoStore.searchMemos(`uid == "${resourceId}" && include_comments == true`).finally(() => loadingState.setFinish());
- }, [resourceId]);
+ memoStore.fetchMemoByUid(uid).finally(() => loadingState.setFinish());
+ }, [uid]);
if (loadingState.isLoading) {
return null;
}
if (!memo) {
- return ;
+ return ;
}
if (memo.name === context.memoName || context.embeddedMemos.has(resourceName)) {
return ;
diff --git a/web/src/components/MemoContent/ReferencedContent/ReferencedMemo.tsx b/web/src/components/MemoContent/ReferencedContent/ReferencedMemo.tsx
index d6ec55eb..5d14c9eb 100644
--- a/web/src/components/MemoContent/ReferencedContent/ReferencedMemo.tsx
+++ b/web/src/components/MemoContent/ReferencedContent/ReferencedMemo.tsx
@@ -9,22 +9,22 @@ interface Props {
params: string;
}
-const ReferencedMemo = ({ resourceId, params: paramsStr }: Props) => {
+const ReferencedMemo = ({ resourceId: uid, params: paramsStr }: Props) => {
const navigateTo = useNavigateTo();
const loadingState = useLoading();
const memoStore = useMemoStore();
- const memo = memoStore.getMemoByUid(resourceId);
+ const memo = memoStore.getMemoByUid(uid);
const params = new URLSearchParams(paramsStr);
useEffect(() => {
- memoStore.searchMemos(`uid == "${resourceId}" && include_comments == true`).finally(() => loadingState.setFinish());
- }, [resourceId]);
+ memoStore.fetchMemoByUid(uid).finally(() => loadingState.setFinish());
+ }, [uid]);
if (loadingState.isLoading) {
return null;
}
if (!memo) {
- return ;
+ return ;
}
const paramsText = params.has("text") ? params.get("text") : undefined;
diff --git a/web/src/pages/MemoDetail.tsx b/web/src/pages/MemoDetail.tsx
index 229d4cef..cc3d15da 100644
--- a/web/src/pages/MemoDetail.tsx
+++ b/web/src/pages/MemoDetail.tsx
@@ -34,7 +34,7 @@ const MemoDetail = () => {
// Prepare memo.
useEffect(() => {
if (uid) {
- memoStore.searchMemos(`uid == "${uid}"`).catch((error: ClientError) => {
+ memoStore.fetchMemoByUid(uid).catch((error: ClientError) => {
toast.error(error.details);
navigateTo("/403");
});
diff --git a/web/src/store/v1/memo.ts b/web/src/store/v1/memo.ts
index f03f0ebe..f4e695ec 100644
--- a/web/src/store/v1/memo.ts
+++ b/web/src/store/v1/memo.ts
@@ -59,6 +59,15 @@ export const useMemoStore = create(
set({ stateId: uniqueId(), memoMapByName: memoMap });
return memos;
},
+ fetchMemoByUid: async (uid: string) => {
+ const memo = await memoServiceClient.getMemoByUid({
+ uid,
+ });
+ const memoMap = get().memoMapByName;
+ memoMap[memo.name] = memo;
+ set({ stateId: uniqueId(), memoMapByName: memoMap });
+ return memo;
+ },
getMemoByUid: (uid: string) => {
const memoMap = get().memoMapByName;
return Object.values(memoMap).find((memo) => memo.uid === uid);