# Protocol Documentation ## Table of Contents - [service/service.proto](#service/service.proto) - [ClientCommands](#anytype.ClientCommands) - [changes.proto](#changes.proto) - [BlockChanges](#anytype.BlockChanges) - [BlocksListSingleChange](#anytype.BlocksListSingleChange) - [Change](#anytype.Change) - [Change.Block](#anytype.Change.Block) - [Change.Block.Children](#anytype.Change.Block.Children) - [Change.Block.Content](#anytype.Change.Block.Content) - [Change.Block.Content.Dashboard](#anytype.Change.Block.Content.Dashboard) - [Change.Block.Content.Media](#anytype.Change.Block.Content.Media) - [Change.Block.Content.Page](#anytype.Change.Block.Content.Page) - [Change.Block.Content.Text](#anytype.Change.Block.Content.Text) - [Change.Block.Header](#anytype.Change.Block.Header) - [commands.proto](#commands.proto) - [Rpc](#anytype.Rpc) - [Rpc.Account](#anytype.Rpc.Account) - [Rpc.Account.Create](#anytype.Rpc.Account.Create) - [Rpc.Account.Create.Request](#anytype.Rpc.Account.Create.Request) - [Rpc.Account.Create.Response](#anytype.Rpc.Account.Create.Response) - [Rpc.Account.Create.Response.Error](#anytype.Rpc.Account.Create.Response.Error) - [Rpc.Account.Recover](#anytype.Rpc.Account.Recover) - [Rpc.Account.Recover.Request](#anytype.Rpc.Account.Recover.Request) - [Rpc.Account.Recover.Response](#anytype.Rpc.Account.Recover.Response) - [Rpc.Account.Recover.Response.Error](#anytype.Rpc.Account.Recover.Response.Error) - [Rpc.Account.Select](#anytype.Rpc.Account.Select) - [Rpc.Account.Select.Request](#anytype.Rpc.Account.Select.Request) - [Rpc.Account.Select.Response](#anytype.Rpc.Account.Select.Response) - [Rpc.Account.Select.Response.Error](#anytype.Rpc.Account.Select.Response.Error) - [Rpc.Block](#anytype.Rpc.Block) - [Rpc.Block.Create](#anytype.Rpc.Block.Create) - [Rpc.Block.Create.Request](#anytype.Rpc.Block.Create.Request) - [Rpc.Block.Create.Response](#anytype.Rpc.Block.Create.Response) - [Rpc.Block.Create.Response.Error](#anytype.Rpc.Block.Create.Response.Error) - [Rpc.Block.History](#anytype.Rpc.Block.History) - [Rpc.Block.History.Move](#anytype.Rpc.Block.History.Move) - [Rpc.Block.History.Move.Request](#anytype.Rpc.Block.History.Move.Request) - [Rpc.Block.History.Move.Response](#anytype.Rpc.Block.History.Move.Response) - [Rpc.Block.History.Move.Response.Error](#anytype.Rpc.Block.History.Move.Response.Error) - [Rpc.Block.Open](#anytype.Rpc.Block.Open) - [Rpc.Block.Open.Request](#anytype.Rpc.Block.Open.Request) - [Rpc.Block.Open.Response](#anytype.Rpc.Block.Open.Response) - [Rpc.Block.Open.Response.Error](#anytype.Rpc.Block.Open.Response.Error) - [Rpc.Block.Update](#anytype.Rpc.Block.Update) - [Rpc.Block.Update.Request](#anytype.Rpc.Block.Update.Request) - [Rpc.Block.Update.Response](#anytype.Rpc.Block.Update.Response) - [Rpc.Block.Update.Response.Error](#anytype.Rpc.Block.Update.Response.Error) - [Rpc.Image](#anytype.Rpc.Image) - [Rpc.Image.Get](#anytype.Rpc.Image.Get) - [Rpc.Image.Get.Blob](#anytype.Rpc.Image.Get.Blob) - [Rpc.Image.Get.Blob.Request](#anytype.Rpc.Image.Get.Blob.Request) - [Rpc.Image.Get.Blob.Response](#anytype.Rpc.Image.Get.Blob.Response) - [Rpc.Image.Get.Blob.Response.Error](#anytype.Rpc.Image.Get.Blob.Response.Error) - [Rpc.Image.Get.File](#anytype.Rpc.Image.Get.File) - [Rpc.Image.Get.File.Request](#anytype.Rpc.Image.Get.File.Request) - [Rpc.Image.Get.File.Response](#anytype.Rpc.Image.Get.File.Response) - [Rpc.Image.Get.File.Response.Error](#anytype.Rpc.Image.Get.File.Response.Error) - [Rpc.Ipfs](#anytype.Rpc.Ipfs) - [Rpc.Ipfs.Get](#anytype.Rpc.Ipfs.Get) - [Rpc.Ipfs.Get.File](#anytype.Rpc.Ipfs.Get.File) - [Rpc.Ipfs.Get.File.Request](#anytype.Rpc.Ipfs.Get.File.Request) - [Rpc.Ipfs.Get.File.Response](#anytype.Rpc.Ipfs.Get.File.Response) - [Rpc.Ipfs.Get.File.Response.Error](#anytype.Rpc.Ipfs.Get.File.Response.Error) - [Rpc.Log](#anytype.Rpc.Log) - [Rpc.Log.Send](#anytype.Rpc.Log.Send) - [Rpc.Log.Send.Request](#anytype.Rpc.Log.Send.Request) - [Rpc.Log.Send.Response](#anytype.Rpc.Log.Send.Response) - [Rpc.Log.Send.Response.Error](#anytype.Rpc.Log.Send.Response.Error) - [Rpc.Version](#anytype.Rpc.Version) - [Rpc.Version.Get](#anytype.Rpc.Version.Get) - [Rpc.Version.Get.Request](#anytype.Rpc.Version.Get.Request) - [Rpc.Version.Get.Response](#anytype.Rpc.Version.Get.Response) - [Rpc.Version.Get.Response.Error](#anytype.Rpc.Version.Get.Response.Error) - [Rpc.Wallet](#anytype.Rpc.Wallet) - [Rpc.Wallet.Create](#anytype.Rpc.Wallet.Create) - [Rpc.Wallet.Create.Request](#anytype.Rpc.Wallet.Create.Request) - [Rpc.Wallet.Create.Response](#anytype.Rpc.Wallet.Create.Response) - [Rpc.Wallet.Create.Response.Error](#anytype.Rpc.Wallet.Create.Response.Error) - [Rpc.Wallet.Recover](#anytype.Rpc.Wallet.Recover) - [Rpc.Wallet.Recover.Request](#anytype.Rpc.Wallet.Recover.Request) - [Rpc.Wallet.Recover.Response](#anytype.Rpc.Wallet.Recover.Response) - [Rpc.Wallet.Recover.Response.Error](#anytype.Rpc.Wallet.Recover.Response.Error) - [Rpc.Account.Create.Response.Error.Code](#anytype.Rpc.Account.Create.Response.Error.Code) - [Rpc.Account.Recover.Response.Error.Code](#anytype.Rpc.Account.Recover.Response.Error.Code) - [Rpc.Account.Select.Response.Error.Code](#anytype.Rpc.Account.Select.Response.Error.Code) - [Rpc.Block.Create.Response.Error.Code](#anytype.Rpc.Block.Create.Response.Error.Code) - [Rpc.Block.History.Move.Response.Error.Code](#anytype.Rpc.Block.History.Move.Response.Error.Code) - [Rpc.Block.Open.Response.Error.Code](#anytype.Rpc.Block.Open.Response.Error.Code) - [Rpc.Block.Update.Response.Error.Code](#anytype.Rpc.Block.Update.Response.Error.Code) - [Rpc.Image.Get.Blob.Response.Error.Code](#anytype.Rpc.Image.Get.Blob.Response.Error.Code) - [Rpc.Image.Get.File.Response.Error.Code](#anytype.Rpc.Image.Get.File.Response.Error.Code) - [Rpc.Ipfs.Get.File.Response.Error.Code](#anytype.Rpc.Ipfs.Get.File.Response.Error.Code) - [Rpc.Log.Send.Request.Level](#anytype.Rpc.Log.Send.Request.Level) - [Rpc.Log.Send.Response.Error.Code](#anytype.Rpc.Log.Send.Response.Error.Code) - [Rpc.Version.Get.Response.Error.Code](#anytype.Rpc.Version.Get.Response.Error.Code) - [Rpc.Wallet.Create.Response.Error.Code](#anytype.Rpc.Wallet.Create.Response.Error.Code) - [Rpc.Wallet.Recover.Response.Error.Code](#anytype.Rpc.Wallet.Recover.Response.Error.Code) - [events.proto](#events.proto) - [Event](#anytype.Event) - [Event.Account](#anytype.Event.Account) - [Event.Account.Show](#anytype.Event.Account.Show) - [Event.Block](#anytype.Event.Block) - [Event.Block.Create](#anytype.Event.Block.Create) - [Event.Block.FilesUpload](#anytype.Event.Block.FilesUpload) - [Event.Block.Show](#anytype.Event.Block.Show) - [Event.Block.Update](#anytype.Event.Block.Update) - [Event.User](#anytype.Event.User) - [Event.User.Block](#anytype.Event.User.Block) - [Event.User.Block.Join](#anytype.Event.User.Block.Join) - [Event.User.Block.Left](#anytype.Event.User.Block.Left) - [Event.User.Block.SelectRange](#anytype.Event.User.Block.SelectRange) - [Event.User.Block.TextRange](#anytype.Event.User.Block.TextRange) - [models.proto](#models.proto) - [Model](#anytype.Model) - [Model.Account](#anytype.Model.Account) - [Model.Account.Avatar](#anytype.Model.Account.Avatar) - [Model.Block](#anytype.Model.Block) - [Model.Block.Content](#anytype.Model.Block.Content) - [Model.Block.Content.Dashboard](#anytype.Model.Block.Content.Dashboard) - [Model.Block.Content.Dataview](#anytype.Model.Block.Content.Dataview) - [Model.Block.Content.Div](#anytype.Model.Block.Content.Div) - [Model.Block.Content.Layout](#anytype.Model.Block.Content.Layout) - [Model.Block.Content.Media](#anytype.Model.Block.Content.Media) - [Model.Block.Content.Media.FilePreview](#anytype.Model.Block.Content.Media.FilePreview) - [Model.Block.Content.Media.ImagePreview](#anytype.Model.Block.Content.Media.ImagePreview) - [Model.Block.Content.Media.VideoPreview](#anytype.Model.Block.Content.Media.VideoPreview) - [Model.Block.Content.Page](#anytype.Model.Block.Content.Page) - [Model.Block.Content.Text](#anytype.Model.Block.Content.Text) - [Model.Block.Content.Text.Mark](#anytype.Model.Block.Content.Text.Mark) - [Model.Block.Content.Text.Marks](#anytype.Model.Block.Content.Text.Marks) - [Model.Block.Header](#anytype.Model.Block.Header) - [Model.Block.Header.Permissions](#anytype.Model.Block.Header.Permissions) - [Model.Image](#anytype.Model.Image) - [Model.Preview](#anytype.Model.Preview) - [Model.Preview.Link](#anytype.Model.Preview.Link) - [Model.Range](#anytype.Model.Range) - [Model.Struct](#anytype.Model.Struct) - [Model.Struct.FieldsEntry](#anytype.Model.Struct.FieldsEntry) - [Model.Struct.ListValue](#anytype.Model.Struct.ListValue) - [Model.Struct.Value](#anytype.Model.Struct.Value) - [Model.Video](#anytype.Model.Video) - [Model.Block.Content.Dashboard.Style](#anytype.Model.Block.Content.Dashboard.Style) - [Model.Block.Content.Layout.Style](#anytype.Model.Block.Content.Layout.Style) - [Model.Block.Content.Media.State](#anytype.Model.Block.Content.Media.State) - [Model.Block.Content.Page.Style](#anytype.Model.Block.Content.Page.Style) - [Model.Block.Content.Text.Mark.Type](#anytype.Model.Block.Content.Text.Mark.Type) - [Model.Block.Content.Text.MarkerType](#anytype.Model.Block.Content.Text.MarkerType) - [Model.Block.Content.Text.Style](#anytype.Model.Block.Content.Text.Style) - [Model.Block.Header.Type](#anytype.Model.Block.Header.Type) - [Model.Image.Size](#anytype.Model.Image.Size) - [Model.Preview.Link.Type](#anytype.Model.Preview.Link.Type) - [Model.Struct.NullValue](#anytype.Model.Struct.NullValue) - [Model.Video.Size](#anytype.Model.Video.Size) - [Scalar Value Types](#scalar-value-types)

Top

## service/service.proto ### ClientCommands | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | WalletCreate | [Rpc.Wallet.Create.Request](#anytype.Rpc.Wallet.Create.Request) | [Rpc.Wallet.Create.Response](#anytype.Rpc.Wallet.Create.Response) | | | WalletRecover | [Rpc.Wallet.Recover.Request](#anytype.Rpc.Wallet.Recover.Request) | [Rpc.Wallet.Recover.Response](#anytype.Rpc.Wallet.Recover.Response) | | | AccountRecover | [Rpc.Account.Recover.Request](#anytype.Rpc.Account.Recover.Request) | [Rpc.Account.Recover.Response](#anytype.Rpc.Account.Recover.Response) | | | AccountCreate | [Rpc.Account.Create.Request](#anytype.Rpc.Account.Create.Request) | [Rpc.Account.Create.Response](#anytype.Rpc.Account.Create.Response) | | | AccountSelect | [Rpc.Account.Select.Request](#anytype.Rpc.Account.Select.Request) | [Rpc.Account.Select.Response](#anytype.Rpc.Account.Select.Response) | | | ImageGetBlob | [Rpc.Image.Get.Blob.Request](#anytype.Rpc.Image.Get.Blob.Request) | [Rpc.Image.Get.Blob.Response](#anytype.Rpc.Image.Get.Blob.Response) | | | VersionGet | [Rpc.Version.Get.Request](#anytype.Rpc.Version.Get.Request) | [Rpc.Version.Get.Response](#anytype.Rpc.Version.Get.Response) | | | LogSend | [Rpc.Log.Send.Request](#anytype.Rpc.Log.Send.Request) | [Rpc.Log.Send.Response](#anytype.Rpc.Log.Send.Response) | | | BlockOpen | [Rpc.Block.Open.Request](#anytype.Rpc.Block.Open.Request) | [Rpc.Block.Open.Response](#anytype.Rpc.Block.Open.Response) | | | BlockCreate | [Rpc.Block.Create.Request](#anytype.Rpc.Block.Create.Request) | [Rpc.Block.Create.Response](#anytype.Rpc.Block.Create.Response) | | | BlockUpdate | [Rpc.Block.Update.Request](#anytype.Rpc.Block.Update.Request) | [Rpc.Block.Update.Response](#anytype.Rpc.Block.Update.Response) | | | BlockHistoryMove | [Rpc.Block.History.Move.Request](#anytype.Rpc.Block.History.Move.Request) | [Rpc.Block.History.Move.Response](#anytype.Rpc.Block.History.Move.Response) | rpc BlockFilesUpload (Block Rpc.History.Move.Request) returns (BlockRpc..History Move.Response); |

Top

## changes.proto ### BlockChanges | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | changes | [BlocksListSingleChange](#anytype.BlocksListSingleChange) | repeated | | ### BlocksListSingleChange | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | repeated | | | text | [Change.Block.Content.Text](#anytype.Change.Block.Content.Text) | | | | blockHeader | [Change.Block.Header](#anytype.Change.Block.Header) | | | | blockChildren | [Change.Block.Children](#anytype.Change.Block.Children) | | | | page | [Change.Block.Content.Page](#anytype.Change.Block.Content.Page) | | | | dashboard | [Change.Block.Content.Dashboard](#anytype.Change.Block.Content.Dashboard) | | | | media | [Change.Block.Content.Media](#anytype.Change.Block.Content.Media) | | | ### Change ### Change.Block ### Change.Block.Children | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | children | [string](#string) | repeated | | ### Change.Block.Content ### Change.Block.Content.Dashboard | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | style | [Model.Block.Content.Dashboard.Style](#anytype.Model.Block.Content.Dashboard.Style) | | | | header | [Model.Block.Header](#anytype.Model.Block.Header) | | not a dashboard header – one of children | ### Change.Block.Content.Media | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | link | [string](#string) | | | | state | [Model.Block.Content.Media.State](#anytype.Model.Block.Content.Media.State) | | | ### Change.Block.Content.Page | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | style | [Model.Block.Content.Page.Style](#anytype.Model.Block.Content.Page.Style) | | | | block | [Model.Block](#anytype.Model.Block) | | | ### Change.Block.Content.Text | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | text | [string](#string) | | | | style | [Model.Block.Content.Text.Style](#anytype.Model.Block.Content.Text.Style) | | | | marks | [Model.Block.Content.Text.Marks](#anytype.Model.Block.Content.Text.Marks) | | | | toggleable | [bool](#bool) | | | | markerType | [Model.Block.Content.Text.MarkerType](#anytype.Model.Block.Content.Text.MarkerType) | | | | checkable | [bool](#bool) | | | | checked | [bool](#bool) | | | ### Change.Block.Header | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | | | type | [Model.Block.Header.Type](#anytype.Model.Block.Header.Type) | | | | name | [string](#string) | | | | icon | [string](#string) | | | | permissions | [Model.Block.Header.Permissions](#anytype.Model.Block.Header.Permissions) | | |

Top

## commands.proto ### Rpc ### Rpc.Account ### Rpc.Account.Create ### Rpc.Account.Create.Request Front end to middleware request-to-create-an account | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | name | [string](#string) | | Account name | | avatarLocalPath | [string](#string) | | Path to an image, that will be used as an avatar of this account | | avatarColor | [string](#string) | | Avatar color as an alternative for avatar image | ### Rpc.Account.Create.Response Middleware-to-front-end response for an account creation request, that can contain a NULL error and created account or a non-NULL error and an empty account | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | error | [Rpc.Account.Create.Response.Error](#anytype.Rpc.Account.Create.Response.Error) | | Error while trying to create an account | | account | [Model.Account](#anytype.Model.Account) | | A newly created account; In case of a failure, i.e. error is non-NULL, the account model should contain empty/default-value fields | ### Rpc.Account.Create.Response.Error | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | code | [Rpc.Account.Create.Response.Error.Code](#anytype.Rpc.Account.Create.Response.Error.Code) | | | | description | [string](#string) | | | ### Rpc.Account.Recover ### Rpc.Account.Recover.Request Front end to middleware request-to-start-search of an accounts for a recovered mnemonic. Each of an account that would be found will come with an AccountAdd event ### Rpc.Account.Recover.Response Middleware-to-front-end response to an account recover request, that can contain a NULL error and created account or a non-NULL error and an empty account | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | error | [Rpc.Account.Recover.Response.Error](#anytype.Rpc.Account.Recover.Response.Error) | | Error while trying to recover an account | ### Rpc.Account.Recover.Response.Error | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | code | [Rpc.Account.Recover.Response.Error.Code](#anytype.Rpc.Account.Recover.Response.Error.Code) | | | | description | [string](#string) | | | ### Rpc.Account.Select ### Rpc.Account.Select.Request Front end to middleware request-to-launch-a specific account using account id and a root path User can select an account from those, that came with an AccountAdd events | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | Id of a selected account | | rootPath | [string](#string) | | Root path is optional, set if this is a first request | ### Rpc.Account.Select.Response Middleware-to-front-end response for an account select request, that can contain a NULL error and selected account or a non-NULL error and an empty account | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | error | [Rpc.Account.Select.Response.Error](#anytype.Rpc.Account.Select.Response.Error) | | Error while trying to launch/select an account | | account | [Model.Account](#anytype.Model.Account) | | Selected account | ### Rpc.Account.Select.Response.Error | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | code | [Rpc.Account.Select.Response.Error.Code](#anytype.Rpc.Account.Select.Response.Error.Code) | | | | description | [string](#string) | | | ### Rpc.Block ### Rpc.Block.Create ### Rpc.Block.Create.Request | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | type | [Model.Block.Header.Type](#anytype.Model.Block.Header.Type) | | | | contextBlockId | [string](#string) | | | ### Rpc.Block.Create.Response | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | error | [Rpc.Block.Create.Response.Error](#anytype.Rpc.Block.Create.Response.Error) | | | ### Rpc.Block.Create.Response.Error | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | code | [Rpc.Block.Create.Response.Error.Code](#anytype.Rpc.Block.Create.Response.Error.Code) | | | | description | [string](#string) | | | ### Rpc.Block.History ### Rpc.Block.History.Move ### Rpc.Block.History.Move.Request | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | | | contextBlockId | [string](#string) | | | | moveForward | [bool](#bool) | | | ### Rpc.Block.History.Move.Response | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | error | [Rpc.Block.History.Move.Response.Error](#anytype.Rpc.Block.History.Move.Response.Error) | | | ### Rpc.Block.History.Move.Response.Error | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | code | [Rpc.Block.History.Move.Response.Error.Code](#anytype.Rpc.Block.History.Move.Response.Error.Code) | | | | description | [string](#string) | | | ### Rpc.Block.Open ### Rpc.Block.Open.Request | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | | ### Rpc.Block.Open.Response | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | error | [Rpc.Block.Open.Response.Error](#anytype.Rpc.Block.Open.Response.Error) | | | | blockHeader | [Model.Block.Header](#anytype.Model.Block.Header) | | | ### Rpc.Block.Open.Response.Error | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | code | [Rpc.Block.Open.Response.Error.Code](#anytype.Rpc.Block.Open.Response.Error.Code) | | | | description | [string](#string) | | | ### Rpc.Block.Update ### Rpc.Block.Update.Request | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | changes | [BlockChanges](#anytype.BlockChanges) | | | ### Rpc.Block.Update.Response | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | error | [Rpc.Block.Update.Response.Error](#anytype.Rpc.Block.Update.Response.Error) | | | ### Rpc.Block.Update.Response.Error | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | code | [Rpc.Block.Update.Response.Error.Code](#anytype.Rpc.Block.Update.Response.Error.Code) | | | | description | [string](#string) | | | ### Rpc.Image ### Rpc.Image.Get ### Rpc.Image.Get.Blob ### Rpc.Image.Get.Blob.Request | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | | | size | [Model.Image.Size](#anytype.Model.Image.Size) | | | ### Rpc.Image.Get.Blob.Response | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | error | [Rpc.Image.Get.Blob.Response.Error](#anytype.Rpc.Image.Get.Blob.Response.Error) | | | | blob | [bytes](#bytes) | | | ### Rpc.Image.Get.Blob.Response.Error | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | code | [Rpc.Image.Get.Blob.Response.Error.Code](#anytype.Rpc.Image.Get.Blob.Response.Error.Code) | | | | description | [string](#string) | | | ### Rpc.Image.Get.File ### Rpc.Image.Get.File.Request | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | | | size | [Model.Image.Size](#anytype.Model.Image.Size) | | | ### Rpc.Image.Get.File.Response | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | error | [Rpc.Image.Get.File.Response.Error](#anytype.Rpc.Image.Get.File.Response.Error) | | | | localPath | [string](#string) | | | ### Rpc.Image.Get.File.Response.Error | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | code | [Rpc.Image.Get.File.Response.Error.Code](#anytype.Rpc.Image.Get.File.Response.Error.Code) | | | | description | [string](#string) | | | ### Rpc.Ipfs ### Rpc.Ipfs.Get ### Rpc.Ipfs.Get.File ### Rpc.Ipfs.Get.File.Request | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | | ### Rpc.Ipfs.Get.File.Response | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | error | [Rpc.Ipfs.Get.File.Response.Error](#anytype.Rpc.Ipfs.Get.File.Response.Error) | | | | data | [bytes](#bytes) | | | | media | [string](#string) | | | | name | [string](#string) | | | ### Rpc.Ipfs.Get.File.Response.Error | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | code | [Rpc.Ipfs.Get.File.Response.Error.Code](#anytype.Rpc.Ipfs.Get.File.Response.Error.Code) | | | | description | [string](#string) | | | ### Rpc.Log ### Rpc.Log.Send ### Rpc.Log.Send.Request | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | message | [string](#string) | | | | level | [Rpc.Log.Send.Request.Level](#anytype.Rpc.Log.Send.Request.Level) | | | ### Rpc.Log.Send.Response | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | error | [Rpc.Log.Send.Response.Error](#anytype.Rpc.Log.Send.Response.Error) | | | ### Rpc.Log.Send.Response.Error | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | code | [Rpc.Log.Send.Response.Error.Code](#anytype.Rpc.Log.Send.Response.Error.Code) | | | | description | [string](#string) | | | ### Rpc.Version ### Rpc.Version.Get ### Rpc.Version.Get.Request ### Rpc.Version.Get.Response | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | error | [Rpc.Version.Get.Response.Error](#anytype.Rpc.Version.Get.Response.Error) | | | | version | [string](#string) | | | ### Rpc.Version.Get.Response.Error | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | code | [Rpc.Version.Get.Response.Error.Code](#anytype.Rpc.Version.Get.Response.Error.Code) | | | | description | [string](#string) | | | ### Rpc.Wallet ### Rpc.Wallet.Create ### Rpc.Wallet.Create.Request Front-end-to-middleware request to create a new wallet | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | rootPath | [string](#string) | | Path to a wallet directory | ### Rpc.Wallet.Create.Response Middleware-to-front-end response, that can contain mnemonic of a created account and a NULL error or an empty mnemonic and a non-NULL error | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | error | [Rpc.Wallet.Create.Response.Error](#anytype.Rpc.Wallet.Create.Response.Error) | | | | mnemonic | [string](#string) | | Mnemonic of a new account (sequence of words, divided by spaces) | ### Rpc.Wallet.Create.Response.Error | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | code | [Rpc.Wallet.Create.Response.Error.Code](#anytype.Rpc.Wallet.Create.Response.Error.Code) | | | | description | [string](#string) | | | ### Rpc.Wallet.Recover ### Rpc.Wallet.Recover.Request Front end to middleware request-to-recover-a wallet with this mnemonic and a rootPath | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | rootPath | [string](#string) | | Path to a wallet directory | | mnemonic | [string](#string) | | Mnemonic of a wallet to recover | ### Rpc.Wallet.Recover.Response Middleware-to-front-end response, that can contain a NULL error or a non-NULL error | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | error | [Rpc.Wallet.Recover.Response.Error](#anytype.Rpc.Wallet.Recover.Response.Error) | | Error while trying to recover a wallet | ### Rpc.Wallet.Recover.Response.Error | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | code | [Rpc.Wallet.Recover.Response.Error.Code](#anytype.Rpc.Wallet.Recover.Response.Error.Code) | | | | description | [string](#string) | | | ### Rpc.Account.Create.Response.Error.Code | Name | Number | Description | | ---- | ------ | ----------- | | NULL | 0 | No error; Account should be non-empty | | UNKNOWN_ERROR | 1 | Any other errors | | BAD_INPUT | 2 | Avatar or name is not correct | | ACCOUNT_CREATED_BUT_FAILED_TO_START_NODE | 101 | | | ACCOUNT_CREATED_BUT_FAILED_TO_SET_NAME | 102 | | | ACCOUNT_CREATED_BUT_FAILED_TO_SET_AVATAR | 103 | | ### Rpc.Account.Recover.Response.Error.Code | Name | Number | Description | | ---- | ------ | ----------- | | NULL | 0 | No error; | | UNKNOWN_ERROR | 1 | Any other errors | | BAD_INPUT | 2 | | | NO_ACCOUNTS_FOUND | 101 | | | NEED_TO_RECOVER_WALLET_FIRST | 102 | | | FAILED_TO_CREATE_LOCAL_REPO | 103 | | | LOCAL_REPO_EXISTS_BUT_CORRUPTED | 104 | | | FAILED_TO_RUN_NODE | 105 | | | WALLET_RECOVER_NOT_PERFORMED | 106 | | ### Rpc.Account.Select.Response.Error.Code | Name | Number | Description | | ---- | ------ | ----------- | | NULL | 0 | No error | | UNKNOWN_ERROR | 1 | Any other errors | | BAD_INPUT | 2 | Id or root path is wrong | | FAILED_TO_CREATE_LOCAL_REPO | 101 | | | LOCAL_REPO_EXISTS_BUT_CORRUPTED | 102 | | | FAILED_TO_RUN_NODE | 103 | | | FAILED_TO_FIND_ACCOUNT_INFO | 104 | | | LOCAL_REPO_NOT_EXISTS_AND_MNEMONIC_NOT_SET | 105 | | ### Rpc.Block.Create.Response.Error.Code | Name | Number | Description | | ---- | ------ | ----------- | | NULL | 0 | | | UNKNOWN_ERROR | 1 | | | BAD_INPUT | 2 | ... | ### Rpc.Block.History.Move.Response.Error.Code | Name | Number | Description | | ---- | ------ | ----------- | | NULL | 0 | | | UNKNOWN_ERROR | 1 | | | BAD_INPUT | 2 | | | CAN_NOT_MOVE | 3 | ... | ### Rpc.Block.Open.Response.Error.Code | Name | Number | Description | | ---- | ------ | ----------- | | NULL | 0 | | | UNKNOWN_ERROR | 1 | | | BAD_INPUT | 2 | ... | ### Rpc.Block.Update.Response.Error.Code | Name | Number | Description | | ---- | ------ | ----------- | | NULL | 0 | | | UNKNOWN_ERROR | 1 | | | BAD_INPUT | 2 | ... | ### Rpc.Image.Get.Blob.Response.Error.Code | Name | Number | Description | | ---- | ------ | ----------- | | NULL | 0 | | | UNKNOWN_ERROR | 1 | | | BAD_INPUT | 2 | ... | | NOT_FOUND | 101 | | | TIMEOUT | 102 | | ### Rpc.Image.Get.File.Response.Error.Code | Name | Number | Description | | ---- | ------ | ----------- | | NULL | 0 | | | UNKNOWN_ERROR | 1 | | | BAD_INPUT | 2 | ... | | NOT_FOUND | 101 | | | TIMEOUT | 102 | | ### Rpc.Ipfs.Get.File.Response.Error.Code | Name | Number | Description | | ---- | ------ | ----------- | | NULL | 0 | | | UNKNOWN_ERROR | 1 | | | BAD_INPUT | 2 | ... | | NOT_FOUND | 101 | | | TIMEOUT | 102 | | ### Rpc.Log.Send.Request.Level | Name | Number | Description | | ---- | ------ | ----------- | | DEBUG | 0 | | | ERROR | 1 | | | FATAL | 2 | | | INFO | 3 | | | PANIC | 4 | | | WARNING | 5 | | ### Rpc.Log.Send.Response.Error.Code | Name | Number | Description | | ---- | ------ | ----------- | | NULL | 0 | | | UNKNOWN_ERROR | 1 | | | BAD_INPUT | 2 | | | NOT_FOUND | 101 | | | TIMEOUT | 102 | | ### Rpc.Version.Get.Response.Error.Code | Name | Number | Description | | ---- | ------ | ----------- | | NULL | 0 | | | UNKNOWN_ERROR | 1 | | | BAD_INPUT | 2 | | | VERSION_IS_EMPTY | 3 | | | NOT_FOUND | 101 | | | TIMEOUT | 102 | | ### Rpc.Wallet.Create.Response.Error.Code | Name | Number | Description | | ---- | ------ | ----------- | | NULL | 0 | No error; mnemonic should be non-empty | | UNKNOWN_ERROR | 1 | Any other errors | | BAD_INPUT | 2 | Root path is wrong | | FAILED_TO_CREATE_LOCAL_REPO | 101 | ... | ### Rpc.Wallet.Recover.Response.Error.Code | Name | Number | Description | | ---- | ------ | ----------- | | NULL | 0 | No error; wallet successfully recovered | | UNKNOWN_ERROR | 1 | Any other errors | | BAD_INPUT | 2 | Root path or mnemonic is wrong | | FAILED_TO_CREATE_LOCAL_REPO | 101 | |

Top

## events.proto ### Event | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | accountShow | [Event.Account.Show](#anytype.Event.Account.Show) | | show wallet's accounts that were loaded from local or remote source | | blockShow | [Event.Block.Show](#anytype.Event.Block.Show) | | | | blockUpdate | [Event.Block.Update](#anytype.Event.Block.Update) | | | | blockCreate | [Event.Block.Create](#anytype.Event.Block.Create) | | | | userBlockTextRange | [Event.User.Block.TextRange](#anytype.Event.User.Block.TextRange) | | | | userBlockJoin | [Event.User.Block.Join](#anytype.Event.User.Block.Join) | | | | userBlockLeft | [Event.User.Block.Left](#anytype.Event.User.Block.Left) | | | | userBlockSelectRange | [Event.User.Block.SelectRange](#anytype.Event.User.Block.SelectRange) | | | | filesUpload | [Event.Block.FilesUpload](#anytype.Event.Block.FilesUpload) | | | ### Event.Account ### Event.Account.Show Message, that will be sent to the front on each account found after an AccountRecoverRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | index | [int64](#int64) | | Number of an account in an all found accounts list | | account | [Model.Account](#anytype.Model.Account) | | An Account, that has been found for the mnemonic | ### Event.Block ### Event.Block.Create | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | block | [Model.Block](#anytype.Model.Block) | | | ### Event.Block.FilesUpload Middleware to front end event message, that will be sent on one of this scenarios: Precondition: user A opened a block 1. User A drops a set of files/pictures/videos 2. User A creates a MediaBlock and drops a single media, that corresponds to its type. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | filePath | [string](#string) | repeated | filepaths to the files | | blockId | [string](#string) | | if empty => create new blocks | ### Event.Block.Show | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | block | [Model.Block](#anytype.Model.Block) | | | ### Event.Block.Update | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | changes | [BlockChanges](#anytype.BlockChanges) | | | ### Event.User ### Event.User.Block ### Event.User.Block.Join Middleware to front end event message, that will be sent in this scenario: Precondition: user A opened a block 1. User B opens the same block 2. User A receives a message about p.1 | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | account | [Event.Account](#anytype.Event.Account) | | Account of the user, that opened a block | ### Event.User.Block.Left Middleware to front end event message, that will be sent in this scenario: Precondition: user A and user B opened the same block 1. User B closes the block 2. User A receives a message about p.1 | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | account | [Event.Account](#anytype.Event.Account) | | Account of the user, that left the block | ### Event.User.Block.SelectRange Middleware to front end event message, that will be sent in this scenario: Precondition: user A and user B opened the same block 1. User B selects some inner blocks 2. User A receives a message about p.1 | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | account | [Event.Account](#anytype.Event.Account) | | Account of the user, that selected blocks | | blockIdsArray | [string](#string) | repeated | Ids of selected blocks. | ### Event.User.Block.TextRange Middleware to front end event message, that will be sent in this scenario: Precondition: user A and user B opened the same block 1. User B sets cursor or selects a text region into a text block 2. User A receives a message about p.1 | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | account | [Event.Account](#anytype.Event.Account) | | Account of the user, that selected a text | | blockId | [string](#string) | | Id of the text block, that have a selection | | range | [Model.Range](#anytype.Model.Range) | | Range of the selection |

Top

## models.proto ### Model ### Model.Account Contains basic information about user account | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | User's thread id | | name | [string](#string) | | User name, that associated with this account | | avatar | [Model.Account.Avatar](#anytype.Model.Account.Avatar) | | Avatar of a user's account | ### Model.Account.Avatar Avatar of a user's account. It could be an image or color | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | image | [Model.Image](#anytype.Model.Image) | | Image of the avatar. Contains hash and size | | color | [string](#string) | | Color of the avatar, if no image | ### Model.Block | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | header | [Model.Block.Header](#anytype.Model.Block.Header) | | | | children | [string](#string) | repeated | | | dashboard | [Model.Block.Content.Dashboard](#anytype.Model.Block.Content.Dashboard) | | | | page | [Model.Block.Content.Page](#anytype.Model.Block.Content.Page) | | | | dataview | [Model.Block.Content.Dataview](#anytype.Model.Block.Content.Dataview) | | | | text | [Model.Block.Content.Text](#anytype.Model.Block.Content.Text) | | | | media | [Model.Block.Content.Media](#anytype.Model.Block.Content.Media) | | | | layout | [Model.Block.Content.Layout](#anytype.Model.Block.Content.Layout) | | | | div | [Model.Block.Content.Div](#anytype.Model.Block.Content.Div) | | | ### Model.Block.Content ### Model.Block.Content.Dashboard | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | style | [Model.Block.Content.Dashboard.Style](#anytype.Model.Block.Content.Dashboard.Style) | | | | headers | [Model.Block.Header](#anytype.Model.Block.Header) | repeated | | ### Model.Block.Content.Dataview ... ### Model.Block.Content.Div ### Model.Block.Content.Layout | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | style | [Model.Block.Content.Layout.Style](#anytype.Model.Block.Content.Layout.Style) | | | ### Model.Block.Content.Media | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | content | [bytes](#bytes) | | | | state | [Model.Block.Content.Media.State](#anytype.Model.Block.Content.Media.State) | | | | video | [Model.Block.Content.Media.VideoPreview](#anytype.Model.Block.Content.Media.VideoPreview) | | | | image | [Model.Block.Content.Media.ImagePreview](#anytype.Model.Block.Content.Media.ImagePreview) | | | | file | [Model.Block.Content.Media.FilePreview](#anytype.Model.Block.Content.Media.FilePreview) | | | ### Model.Block.Content.Media.FilePreview | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | name | [string](#string) | | | | icon | [string](#string) | | | ### Model.Block.Content.Media.ImagePreview | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | thumbnail | [bytes](#bytes) | | | | name | [string](#string) | | | | width | [int32](#int32) | | | ### Model.Block.Content.Media.VideoPreview | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | thumbnail | [bytes](#bytes) | | | | name | [string](#string) | | | | width | [int32](#int32) | | | ### Model.Block.Content.Page | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | style | [Model.Block.Content.Page.Style](#anytype.Model.Block.Content.Page.Style) | | | ### Model.Block.Content.Text | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | text | [string](#string) | | | | style | [Model.Block.Content.Text.Style](#anytype.Model.Block.Content.Text.Style) | | | | marksList | [Model.Block.Content.Text.Marks](#anytype.Model.Block.Content.Text.Marks) | | | | toggleable | [bool](#bool) | | | | markerType | [Model.Block.Content.Text.MarkerType](#anytype.Model.Block.Content.Text.MarkerType) | | | | checkable | [bool](#bool) | | | | checked | [bool](#bool) | | | ### Model.Block.Content.Text.Mark | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | range | [Model.Range](#anytype.Model.Range) | | | | type | [Model.Block.Content.Text.Mark.Type](#anytype.Model.Block.Content.Text.Mark.Type) | | | | param | [string](#string) | | link, color, etc | ### Model.Block.Content.Text.Marks | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | marks | [Model.Block.Content.Text.Mark](#anytype.Model.Block.Content.Text.Mark) | repeated | | ### Model.Block.Header | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | | | type | [Model.Block.Header.Type](#anytype.Model.Block.Header.Type) | | | | fields | [Model.Struct](#anytype.Model.Struct) | | | | permissions | [Model.Block.Header.Permissions](#anytype.Model.Block.Header.Permissions) | | | ### Model.Block.Header.Permissions | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | read | [bool](#bool) | | | | edit | [bool](#bool) | | | | remove | [bool](#bool) | | | | drag | [bool](#bool) | | | | dropOn | [bool](#bool) | | | ### Model.Image | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | | | sizes | [Model.Image.Size](#anytype.Model.Image.Size) | repeated | | ### Model.Preview ### Model.Preview.Link | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | title | [string](#string) | | | | description | [string](#string) | | | | imageUrl | [string](#string) | | | | url | [string](#string) | | | | faviconUrl | [string](#string) | | | | type | [Model.Preview.Link.Type](#anytype.Model.Preview.Link.Type) | | | ### Model.Range | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | from | [int32](#int32) | | | | to | [int32](#int32) | | | ### Model.Struct | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | fields | [Model.Struct.FieldsEntry](#anytype.Model.Struct.FieldsEntry) | repeated | Unordered map of dynamically typed values. | ### Model.Struct.FieldsEntry | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | key | [string](#string) | | | | value | [Model.Struct.Value](#anytype.Model.Struct.Value) | | | ### Model.Struct.ListValue `ListValue` is a wrapper around a repeated field of values. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | values | [Model.Struct.Value](#anytype.Model.Struct.Value) | repeated | | ### Model.Struct.Value `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of that variants, absence of any variant indicates an error. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | null_value | [Model.Struct.NullValue](#anytype.Model.Struct.NullValue) | | Represents a null value. | | number_value | [double](#double) | | Represents a double value. | | string_value | [string](#string) | | Represents a string value. | | bool_value | [bool](#bool) | | Represents a boolean value. | | struct_value | [Model.Struct](#anytype.Model.Struct) | | Represents a structured value. | | list_value | [Model.Struct.ListValue](#anytype.Model.Struct.ListValue) | | Represents a repeated `Value`. | ### Model.Video | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | id | [string](#string) | | | | sizes | [Model.Video.Size](#anytype.Model.Video.Size) | repeated | | ### Model.Block.Content.Dashboard.Style | Name | Number | Description | | ---- | ------ | ----------- | | MAIN_SCREEN | 0 | ... | ### Model.Block.Content.Layout.Style | Name | Number | Description | | ---- | ------ | ----------- | | ROW | 0 | | | COLUMN | 1 | | ### Model.Block.Content.Media.State | Name | Number | Description | | ---- | ------ | ----------- | | EMPTY | 0 | | | UPLOADING | 1 | | | PREVIEW | 2 | | | DOWNLOADING | 3 | | | DONE | 4 | | ### Model.Block.Content.Page.Style | Name | Number | Description | | ---- | ------ | ----------- | | EMPTY | 0 | | | TASK | 1 | | | BOOKMARK | 2 | | | SET | 3 | ... | ### Model.Block.Content.Text.Mark.Type | Name | Number | Description | | ---- | ------ | ----------- | | STRIKETHROUGH | 0 | | | KEYBOARD | 1 | | | ITALIC | 2 | | | BOLD | 3 | | | LINK | 4 | | ### Model.Block.Content.Text.MarkerType | Name | Number | Description | | ---- | ------ | ----------- | | none | 0 | | | number | 1 | | | bullet | 2 | | ### Model.Block.Content.Text.Style | Name | Number | Description | | ---- | ------ | ----------- | | p | 0 | | | h1 | 1 | | | h2 | 2 | | | h3 | 3 | | | h4 | 4 | | | quote | 5 | | | code | 6 | | ### Model.Block.Header.Type | Name | Number | Description | | ---- | ------ | ----------- | | DASHBOARD | 0 | | | PAGE | 1 | | | DATAVIEW | 2 | | | TEXT | 3 | | | FILE | 4 | | | PICTURE | 5 | | | VIDEO | 6 | | | BOOKMARK | 7 | | | LAYOUT | 8 | | | DIV | 9 | | ### Model.Image.Size | Name | Number | Description | | ---- | ------ | ----------- | | LARGE | 0 | | | SMALL | 1 | | | THUMB | 2 | | ### Model.Preview.Link.Type | Name | Number | Description | | ---- | ------ | ----------- | | PAGE | 0 | | | IMAGE | 1 | | | TEXT | 2 | | | UNEXPECTED | 3 | | ### Model.Struct.NullValue `NullValue` is a singleton enumeration to represent the null value for the | Name | Number | Description | | ---- | ------ | ----------- | | NULL_VALUE | 0 | | ### Model.Video.Size | Name | Number | Description | | ---- | ------ | ----------- | | SD_360p | 0 | | | SD_480p | 1 | | | HD_720p | 2 | | | HD_1080p | 3 | | | UHD_1440p | 4 | | | UHD_2160p | 5 | | ## Scalar Value Types | .proto Type | Notes | C++ Type | Java Type | Python Type | | ----------- | ----- | -------- | --------- | ----------- | | double | | double | double | float | | float | | float | float | float | | 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 | | 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 | | uint32 | Uses variable-length encoding. | uint32 | int | int/long | | uint64 | Uses variable-length encoding. | uint64 | long | int/long | | sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | | sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | | fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | | fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | | sfixed32 | Always four bytes. | int32 | int | int | | sfixed64 | Always eight bytes. | int64 | long | int/long | | bool | | bool | boolean | boolean | | string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | | bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str |