2023-07-30 00:12:16 +08:00
# Protocol Documentation
< a name = "top" > < / a >
## Table of Contents
2023-07-30 01:35:00 +08:00
- [api/v2/common.proto ](#api_v2_common-proto )
- [RowStatus ](#memos-api-v2-RowStatus )
2023-07-30 00:12:16 +08:00
- [api/v2/tag_service.proto ](#api_v2_tag_service-proto )
- [ListTagsRequest ](#memos-api-v2-ListTagsRequest )
- [ListTagsResponse ](#memos-api-v2-ListTagsResponse )
- [Tag ](#memos-api-v2-Tag )
- [TagService ](#memos-api-v2-TagService )
2023-07-30 01:35:00 +08:00
- [api/v2/user_service.proto ](#api_v2_user_service-proto )
- [GetUserRequest ](#memos-api-v2-GetUserRequest )
- [GetUserResponse ](#memos-api-v2-GetUserResponse )
- [User ](#memos-api-v2-User )
2023-07-30 09:53:24 +08:00
- [UserSetting ](#memos-api-v2-UserSetting )
- [UserSettingValue ](#memos-api-v2-UserSettingValue )
2023-07-30 01:35:00 +08:00
- [Role ](#memos-api-v2-Role )
2023-07-30 09:53:24 +08:00
- [UserSetting.Key ](#memos-api-v2-UserSetting-Key )
- [Visibility ](#memos-api-v2-Visibility )
2023-07-30 01:35:00 +08:00
- [UserService ](#memos-api-v2-UserService )
2023-07-30 00:12:16 +08:00
- [Scalar Value Types ](#scalar-value-types )
2023-07-30 01:35:00 +08:00
< a name = "api_v2_common-proto" > < / a >
< p align = "right" > < a href = "#top" > Top< / a > < / p >
## api/v2/common.proto
< a name = "memos-api-v2-RowStatus" > < / a >
### RowStatus
| Name | Number | Description |
| ---- | ------ | ----------- |
| ROW_STATUS_UNSPECIFIED | 0 | |
| ACTIVE | 1 | |
| ARCHIVED | 2 | |
2023-07-30 00:12:16 +08:00
< a name = "api_v2_tag_service-proto" > < / a >
< p align = "right" > < a href = "#top" > Top< / a > < / p >
## api/v2/tag_service.proto
< a name = "memos-api-v2-ListTagsRequest" > < / a >
### ListTagsRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| creator_id | [int32 ](#int32 ) | | |
< a name = "memos-api-v2-ListTagsResponse" > < / a >
### ListTagsResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| tags | [Tag ](#memos-api-v2-Tag ) | repeated | |
< a name = "memos-api-v2-Tag" > < / a >
### Tag
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string ](#string ) | | |
| creator_id | [int32 ](#int32 ) | | |
< a name = "memos-api-v2-TagService" > < / a >
### TagService
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| ListTags | [ListTagsRequest ](#memos-api-v2-ListTagsRequest ) | [ListTagsResponse ](#memos-api-v2-ListTagsResponse ) | |
2023-07-30 01:35:00 +08:00
< a name = "api_v2_user_service-proto" > < / a >
< p align = "right" > < a href = "#top" > Top< / a > < / p >
## api/v2/user_service.proto
< a name = "memos-api-v2-GetUserRequest" > < / a >
### GetUserRequest
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| name | [string ](#string ) | | |
< a name = "memos-api-v2-GetUserResponse" > < / a >
### GetUserResponse
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user | [User ](#memos-api-v2-User ) | | |
< a name = "memos-api-v2-User" > < / a >
### User
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| id | [int32 ](#int32 ) | | |
| row_status | [RowStatus ](#memos-api-v2-RowStatus ) | | |
| created_ts | [int64 ](#int64 ) | | |
| updated_ts | [int64 ](#int64 ) | | |
| username | [string ](#string ) | | |
| role | [Role ](#memos-api-v2-Role ) | | |
| email | [string ](#string ) | | |
| nickname | [string ](#string ) | | |
| open_id | [string ](#string ) | | |
| avatar_url | [string ](#string ) | | |
2023-07-30 09:53:24 +08:00
| settings | [UserSetting ](#memos-api-v2-UserSetting ) | repeated | |
< a name = "memos-api-v2-UserSetting" > < / a >
### UserSetting
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| user_id | [int32 ](#int32 ) | | The user id of the setting. |
| key | [UserSetting.Key ](#memos-api-v2-UserSetting-Key ) | | The key of the setting. |
| value | [UserSettingValue ](#memos-api-v2-UserSettingValue ) | | The value of the setting. |
< a name = "memos-api-v2-UserSettingValue" > < / a >
### UserSettingValue
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| string_value | [string ](#string ) | | Default value as a string. |
| visibility_value | [Visibility ](#memos-api-v2-Visibility ) | | |
2023-07-30 01:35:00 +08:00
< a name = "memos-api-v2-Role" > < / a >
### Role
| Name | Number | Description |
| ---- | ------ | ----------- |
| ROLE_UNSPECIFIED | 0 | |
| HOST | 1 | |
| ADMIN | 2 | |
| USER | 3 | |
2023-07-30 09:53:24 +08:00
< a name = "memos-api-v2-UserSetting-Key" > < / a >
### UserSetting.Key
| Name | Number | Description |
| ---- | ------ | ----------- |
| KEY_UNSPECIFIED | 0 | |
| LOCALE | 1 | The preferred locale. |
| APPEARANCE | 2 | The preferred appearance. |
| MEMO_VISIBILITY | 3 | The default visibility of the memo when creating a new memo. |
| TELEGRAM_USER_ID | 4 | User' s telegram id |
< a name = "memos-api-v2-Visibility" > < / a >
### Visibility
| Name | Number | Description |
| ---- | ------ | ----------- |
| VISIBILITY_UNSPECIFIED | 0 | |
| PRIVATE | 1 | |
| PROTECTED | 2 | |
| PUBLIC | 3 | |
2023-07-30 01:35:00 +08:00
< a name = "memos-api-v2-UserService" > < / a >
### UserService
| Method Name | Request Type | Response Type | Description |
| ----------- | ------------ | ------------- | ------------|
| GetUser | [GetUserRequest ](#memos-api-v2-GetUserRequest ) | [GetUserResponse ](#memos-api-v2-GetUserResponse ) | |
2023-07-30 00:12:16 +08:00
## Scalar Value Types
| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
| ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- |
| < a name = "double" / > double | | double | double | float | float64 | double | float | Float |
| < a name = "float" / > float | | float | float | float | float32 | float | float | Float |
| < a name = "int32" / > int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| < a name = "int64" / > int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| < a name = "uint32" / > uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
| < a name = "uint64" / > uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
| < a name = "sint32" / > sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| < a name = "sint64" / > sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| < a name = "fixed32" / > fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
| < a name = "fixed64" / > fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
| < a name = "sfixed32" / > sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| < a name = "sfixed64" / > sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| < a name = "bool" / > bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass |
| < a name = "string" / > string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
| < a name = "bytes" / > bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |