Skip to content
Snippets Groups Projects
Select Git revision
  • d3bc77010a01e885d61e68c86991e9257e89e58d
  • master default protected
  • fix/PRXS-3401-ValidateValidationOpts
  • feature/PRXS-3383-CollectionsRankSortAPI
  • feature/3149-LocaleCodeAsID-Feature
  • feature/PRXS-3383-CollectionsSort
  • feature/3109-SerializeFeature
  • release/0.33
  • feature/3109-RecoverySchema
  • feature/3109-feature
  • fix/PRXS-3369-ValidateFields
  • refactor/PRXS-3306-MovePkgGroup1
  • refactor/6-pkg-refactor-expr
  • fix/PRXS-3360-TemplateBuilderPatch
  • feature/3293-MongoV2
  • feature/3272-GoVersionUp
  • feature/PRXS-3218-HideTemplateActions
  • feature/PRXS-3234-PruneIdents
  • feature/3146-UpdateItemStorageInterface
  • feature/3274-ObjectIndexesFixes
  • feature/PRXS-3143-3235-ReferenceOptions
  • v0.33.1
  • v0.32.0
  • v0.31.1
  • v0.31.0
  • v0.30.0
  • v0.29.0
  • v0.28.0
  • v0.27.0-alpha.1+16
  • v0.27.0-alpha.1+15
  • v0.27.0-alpha.1+14
  • v0.27.0-alpha.1+13
  • v0.27.0-alpha.1+12
  • v0.27.0-alpha.1+11
  • v0.27.0-alpha.1+10
  • v0.27.0-alpha.1+9
  • v0.27.0-alpha.1+8
  • v0.27.0-alpha.1+7
  • v0.27.0-alpha.1+6
  • v0.27.0-alpha.1+5
  • v0.27.0-alpha.1+4
41 results

extension.pb.go

Blame
  • extension.pb.go 68.37 KiB
    //*
    //# Расширения (Extensions)
    //
    //Расширения представляют собой отдельные сервисы предоставляющие дополнительные возможности для пользователей. Сервис
    //может предоставлять несколько расширений одновременно.
    //
    //Для координации взаимодействия используется сервис менеджер расширений (Extension Manager). Для предоставления своих функций в систему сервис должен
    //зарегистрироваться на контроллере.
    //
    
    // Code generated by protoc-gen-go. DO NOT EDIT.
    // versions:
    // 	protoc-gen-go v1.29.0
    // 	protoc        v3.21.12
    // source: extensions/extension.proto
    
    package extensions
    
    import (
    	references "git.perx.ru/perxis/perxis-go/proto/references"
    	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    	reflect "reflect"
    	sync "sync"
    )
    
    const (
    	// Verify that this generated code is sufficiently up-to-date.
    	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    	// Verify that runtime/protoimpl is sufficiently up-to-date.
    	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    )
    
    type ExtensionRequestResult_State int32
    
    const (
    	ExtensionRequestResult_OK                  ExtensionRequestResult_State = 0 // Запрос завершен
    	ExtensionRequestResult_ERROR               ExtensionRequestResult_State = 1 // Возникла ошибка
    	ExtensionRequestResult_PENDING             ExtensionRequestResult_State = 2 // Запрос ожидает выполнения
    	ExtensionRequestResult_IN_PROGRESS         ExtensionRequestResult_State = 3 // Запрос выполняется
    	ExtensionRequestResult_PARAMETERS_REQUIRED ExtensionRequestResult_State = 4 // Требуются дополнительные данные для выполнения запроса
    )
    
    // Enum value maps for ExtensionRequestResult_State.
    var (
    	ExtensionRequestResult_State_name = map[int32]string{
    		0: "OK",
    		1: "ERROR",
    		2: "PENDING",
    		3: "IN_PROGRESS",
    		4: "PARAMETERS_REQUIRED",
    	}
    	ExtensionRequestResult_State_value = map[string]int32{
    		"OK":                  0,
    		"ERROR":               1,
    		"PENDING":             2,
    		"IN_PROGRESS":         3,
    		"PARAMETERS_REQUIRED": 4,
    	}
    )
    
    func (x ExtensionRequestResult_State) Enum() *ExtensionRequestResult_State {
    	p := new(ExtensionRequestResult_State)
    	*p = x
    	return p
    }
    
    func (x ExtensionRequestResult_State) String() string {
    	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    }
    
    func (ExtensionRequestResult_State) Descriptor() protoreflect.EnumDescriptor {
    	return file_extensions_extension_proto_enumTypes[0].Descriptor()
    }
    
    func (ExtensionRequestResult_State) Type() protoreflect.EnumType {
    	return &file_extensions_extension_proto_enumTypes[0]
    }
    
    func (x ExtensionRequestResult_State) Number() protoreflect.EnumNumber {
    	return protoreflect.EnumNumber(x)
    }
    
    // Deprecated: Use ExtensionRequestResult_State.Descriptor instead.
    func (ExtensionRequestResult_State) EnumDescriptor() ([]byte, []int) {
    	return file_extensions_extension_proto_rawDescGZIP(), []int{1, 0}
    }
    
    type ActionResponse_State int32
    
    const (
    	ActionResponse_DONE                ActionResponse_State = 0 // Запрос завершен
    	ActionResponse_ERROR               ActionResponse_State = 1 // Возникла ошибка
    	ActionResponse_PENDING             ActionResponse_State = 2 // Запрос ожидает выполнения
    	ActionResponse_IN_PROGRESS         ActionResponse_State = 3 // Запрос выполняется
    	ActionResponse_PARAMETERS_REQUIRED ActionResponse_State = 4 // Требуются дополнительные данные для выполнения запроса
    )
    
    // Enum value maps for ActionResponse_State.
    var (
    	ActionResponse_State_name = map[int32]string{
    		0: "DONE",
    		1: "ERROR",
    		2: "PENDING",
    		3: "IN_PROGRESS",
    		4: "PARAMETERS_REQUIRED",
    	}
    	ActionResponse_State_value = map[string]int32{
    		"DONE":                0,
    		"ERROR":               1,
    		"PENDING":             2,
    		"IN_PROGRESS":         3,
    		"PARAMETERS_REQUIRED": 4,
    	}
    )
    
    func (x ActionResponse_State) Enum() *ActionResponse_State {
    	p := new(ActionResponse_State)
    	*p = x
    	return p
    }
    
    func (x ActionResponse_State) String() string {
    	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    }
    
    func (ActionResponse_State) Descriptor() protoreflect.EnumDescriptor {
    	return file_extensions_extension_proto_enumTypes[1].Descriptor()
    }
    
    func (ActionResponse_State) Type() protoreflect.EnumType {
    	return &file_extensions_extension_proto_enumTypes[1]
    }
    
    func (x ActionResponse_State) Number() protoreflect.EnumNumber {
    	return protoreflect.EnumNumber(x)
    }
    
    // Deprecated: Use ActionResponse_State.Descriptor instead.
    func (ActionResponse_State) EnumDescriptor() ([]byte, []int) {
    	return file_extensions_extension_proto_rawDescGZIP(), []int{10, 0}
    }
    
    // Kind описывает c какой сущность системы связано действие и что требуется передать в качестве параметров
    // Интерфейс загружает пользовательские действия и отображает их в интерфейсе в зависимости от ActionType.
    type Action_Kind int32
    
    const (
    	Action_DEFAULT     Action_Kind = 0 // Действие не отображается в интерфейсе и могут используется для выполнения дополнительных запросов (см. `ActionResponse.next`) или напрямую из сторонних приложений.
    	Action_SPACE       Action_Kind = 1 // Действие связано с пространством (требуется передача space_id). Отображается в меню "Действия".
    	Action_ENVIRONMENT Action_Kind = 2 // Действие связано с окружением (требуется передача space_id, env_id). Отображается в меню "Действия".
    	Action_COLLECTION  Action_Kind = 3 // Действие связано с коллекцией (требуется передача space_id, env_id, collection_id). Отображается на экране списка записей.
    	Action_ITEM        Action_Kind = 4 // Действие связано с записью (требуется передача space_id, env_id, collection_id, item_id). Отображается на экране редактирования записи.
    	Action_ITEMS       Action_Kind = 5 // Действие связано с несколькими записями (требуется передача space_id, env_id, collection_id, item_ids). Отображается на экране списка записей.
    	Action_REVISION    Action_Kind = 6 // Действие связано с ревизией записи (требуется передача space_id, env_id, collection_id, item_id, rev_id). На данный момент не используется.
    	Action_CREATE      Action_Kind = 7 // Действие создание записи (требуется передача space_id, env_id, collection_id).
    )
    
    // Enum value maps for Action_Kind.
    var (
    	Action_Kind_name = map[int32]string{
    		0: "DEFAULT",
    		1: "SPACE",
    		2: "ENVIRONMENT",
    		3: "COLLECTION",
    		4: "ITEM",
    		5: "ITEMS",
    		6: "REVISION",
    		7: "CREATE",
    	}
    	Action_Kind_value = map[string]int32{
    		"DEFAULT":     0,
    		"SPACE":       1,
    		"ENVIRONMENT": 2,
    		"COLLECTION":  3,
    		"ITEM":        4,
    		"ITEMS":       5,
    		"REVISION":    6,
    		"CREATE":      7,
    	}
    )
    
    func (x Action_Kind) Enum() *Action_Kind {
    	p := new(Action_Kind)
    	*p = x
    	return p
    }
    
    func (x Action_Kind) String() string {
    	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    }
    
    func (Action_Kind) Descriptor() protoreflect.EnumDescriptor {
    	return file_extensions_extension_proto_enumTypes[2].Descriptor()
    }
    
    func (Action_Kind) Type() protoreflect.EnumType {
    	return &file_extensions_extension_proto_enumTypes[2]
    }
    
    func (x Action_Kind) Number() protoreflect.EnumNumber {
    	return protoreflect.EnumNumber(x)
    }
    
    // Deprecated: Use Action_Kind.Descriptor instead.
    func (Action_Kind) EnumDescriptor() ([]byte, []int) {
    	return file_extensions_extension_proto_rawDescGZIP(), []int{11, 0}
    }
    
    type InstallRequest struct {
    	state         protoimpl.MessageState
    	sizeCache     protoimpl.SizeCache
    	unknownFields protoimpl.UnknownFields
    
    	Extensions []string `protobuf:"bytes,10000,rep,name=extensions,proto3" json:"extensions,omitempty"`          // Список расширений для установки
    	SpaceId    string   `protobuf:"bytes,10010,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"` // Пространство для установки расширений
    	EnvId      string   `protobuf:"bytes,10020,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"`       // Идентификатор окружения для установки (по умолчанию master)
    	Force      bool     `protobuf:"varint,10100,opt,name=force,proto3" json:"force,omitempty"`                   // Игнорировать и автоматически исправлять ошибки установки
    }
    
    func (x *InstallRequest) Reset() {
    	*x = InstallRequest{}
    	if protoimpl.UnsafeEnabled {
    		mi := &file_extensions_extension_proto_msgTypes[0]
    		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    		ms.StoreMessageInfo(mi)
    	}
    }
    
    func (x *InstallRequest) String() string {
    	return protoimpl.X.MessageStringOf(x)
    }
    
    func (*InstallRequest) ProtoMessage() {}
    
    func (x *InstallRequest) ProtoReflect() protoreflect.Message {
    	mi := &file_extensions_extension_proto_msgTypes[0]
    	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 InstallRequest.ProtoReflect.Descriptor instead.
    func (*InstallRequest) Descriptor() ([]byte, []int) {
    	return file_extensions_extension_proto_rawDescGZIP(), []int{0}
    }
    
    func (x *InstallRequest) GetExtensions() []string {
    	if x != nil {
    		return x.Extensions
    	}
    	return nil
    }
    
    func (x *InstallRequest) GetSpaceId() string {
    	if x != nil {
    		return x.SpaceId
    	}
    	return ""
    }
    
    func (x *InstallRequest) GetEnvId() string {
    	if x != nil {
    		return x.EnvId
    	}
    	return ""
    }
    
    func (x *InstallRequest) GetForce() bool {
    	if x != nil {
    		return x.Force
    	}
    	return false
    }
    
    type ExtensionRequestResult struct {
    	state         protoimpl.MessageState
    	sizeCache     protoimpl.SizeCache
    	unknownFields protoimpl.UnknownFields
    
    	State           ExtensionRequestResult_State `protobuf:"varint,10000,opt,name=state,proto3,enum=extensions.ExtensionRequestResult_State" json:"state,omitempty"` // Состояние расширение
    	Extension       string                       `protobuf:"bytes,10100,opt,name=extension,proto3" json:"extension,omitempty"`                                       // Имя расширения
    	Msg             string                       `protobuf:"bytes,10200,opt,name=msg,proto3" json:"msg,omitempty"`                                                   // Сообщение
    	Error           string                       `protobuf:"bytes,10300,opt,name=error,proto3" json:"error,omitempty"`                                               // Ошибка (state == ERROR)
    	UpdateAvailable bool                         `protobuf:"varint,10400,opt,name=update_available,json=updateAvailable,proto3" json:"update_available,omitempty"`   // Доступно обновление
    }
    
    func (x *ExtensionRequestResult) Reset() {
    	*x = ExtensionRequestResult{}
    	if protoimpl.UnsafeEnabled {
    		mi := &file_extensions_extension_proto_msgTypes[1]
    		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    		ms.StoreMessageInfo(mi)
    	}
    }
    
    func (x *ExtensionRequestResult) String() string {
    	return protoimpl.X.MessageStringOf(x)
    }
    
    func (*ExtensionRequestResult) ProtoMessage() {}
    
    func (x *ExtensionRequestResult) ProtoReflect() protoreflect.Message {
    	mi := &file_extensions_extension_proto_msgTypes[1]
    	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 ExtensionRequestResult.ProtoReflect.Descriptor instead.
    func (*ExtensionRequestResult) Descriptor() ([]byte, []int) {
    	return file_extensions_extension_proto_rawDescGZIP(), []int{1}
    }
    
    func (x *ExtensionRequestResult) GetState() ExtensionRequestResult_State {
    	if x != nil {
    		return x.State
    	}
    	return ExtensionRequestResult_OK
    }
    
    func (x *ExtensionRequestResult) GetExtension() string {
    	if x != nil {
    		return x.Extension
    	}
    	return ""
    }
    
    func (x *ExtensionRequestResult) GetMsg() string {
    	if x != nil {
    		return x.Msg
    	}
    	return ""
    }
    
    func (x *ExtensionRequestResult) GetError() string {
    	if x != nil {
    		return x.Error
    	}
    	return ""
    }
    
    func (x *ExtensionRequestResult) GetUpdateAvailable() bool {
    	if x != nil {
    		return x.UpdateAvailable
    	}
    	return false
    }
    
    type InstallResponse struct {
    	state         protoimpl.MessageState
    	sizeCache     protoimpl.SizeCache
    	unknownFields protoimpl.UnknownFields
    
    	Results []*ExtensionRequestResult `protobuf:"bytes,10000,rep,name=results,proto3" json:"results,omitempty"` // Список состояний расширений после установки
    }
    
    func (x *InstallResponse) Reset() {
    	*x = InstallResponse{}
    	if protoimpl.UnsafeEnabled {
    		mi := &file_extensions_extension_proto_msgTypes[2]
    		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    		ms.StoreMessageInfo(mi)
    	}
    }
    
    func (x *InstallResponse) String() string {
    	return protoimpl.X.MessageStringOf(x)
    }
    
    func (*InstallResponse) ProtoMessage() {}
    
    func (x *InstallResponse) ProtoReflect() protoreflect.Message {
    	mi := &file_extensions_extension_proto_msgTypes[2]
    	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 InstallResponse.ProtoReflect.Descriptor instead.
    func (*InstallResponse) Descriptor() ([]byte, []int) {
    	return file_extensions_extension_proto_rawDescGZIP(), []int{2}
    }
    
    func (x *InstallResponse) GetResults() []*ExtensionRequestResult {
    	if x != nil {
    		return x.Results
    	}
    	return nil
    }
    
    type UninstallRequest struct {
    	state         protoimpl.MessageState
    	sizeCache     protoimpl.SizeCache
    	unknownFields protoimpl.UnknownFields
    
    	Extensions []string `protobuf:"bytes,10000,rep,name=extensions,proto3" json:"extensions,omitempty"`          // Список расширений для удаления
    	SpaceId    string   `protobuf:"bytes,10010,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"` // Пространство для удаления расширений
    	EnvId      string   `protobuf:"bytes,10020,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"`       // Идентификатор окружения для установки (по умолчанию master)
    	Remove     bool     `protobuf:"varint,10100,opt,name=remove,proto3" json:"remove,omitempty"`                 // Удалить все коллекции и данные
    	Force      bool     `protobuf:"varint,10200,opt,name=force,proto3" json:"force,omitempty"`                   // Удалять расширения вне зависимости от возможных ошибок, без учета зависимостей
    }
    
    func (x *UninstallRequest) Reset() {
    	*x = UninstallRequest{}
    	if protoimpl.UnsafeEnabled {
    		mi := &file_extensions_extension_proto_msgTypes[3]
    		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    		ms.StoreMessageInfo(mi)
    	}
    }
    
    func (x *UninstallRequest) String() string {
    	return protoimpl.X.MessageStringOf(x)
    }
    
    func (*UninstallRequest) ProtoMessage() {}
    
    func (x *UninstallRequest) ProtoReflect() protoreflect.Message {
    	mi := &file_extensions_extension_proto_msgTypes[3]
    	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 UninstallRequest.ProtoReflect.Descriptor instead.
    func (*UninstallRequest) Descriptor() ([]byte, []int) {
    	return file_extensions_extension_proto_rawDescGZIP(), []int{3}
    }
    
    func (x *UninstallRequest) GetExtensions() []string {
    	if x != nil {
    		return x.Extensions
    	}
    	return nil
    }
    
    func (x *UninstallRequest) GetSpaceId() string {
    	if x != nil {
    		return x.SpaceId
    	}
    	return ""
    }
    
    func (x *UninstallRequest) GetEnvId() string {
    	if x != nil {
    		return x.EnvId
    	}
    	return ""
    }
    
    func (x *UninstallRequest) GetRemove() bool {
    	if x != nil {
    		return x.Remove
    	}
    	return false
    }
    
    func (x *UninstallRequest) GetForce() bool {
    	if x != nil {
    		return x.Force
    	}
    	return false
    }
    
    type UninstallResponse struct {
    	state         protoimpl.MessageState
    	sizeCache     protoimpl.SizeCache
    	unknownFields protoimpl.UnknownFields
    
    	Results []*ExtensionRequestResult `protobuf:"bytes,10000,rep,name=results,proto3" json:"results,omitempty"` // Список состояний расширений после удаления
    }
    
    func (x *UninstallResponse) Reset() {
    	*x = UninstallResponse{}
    	if protoimpl.UnsafeEnabled {
    		mi := &file_extensions_extension_proto_msgTypes[4]
    		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    		ms.StoreMessageInfo(mi)
    	}
    }
    
    func (x *UninstallResponse) String() string {
    	return protoimpl.X.MessageStringOf(x)
    }
    
    func (*UninstallResponse) ProtoMessage() {}
    
    func (x *UninstallResponse) ProtoReflect() protoreflect.Message {
    	mi := &file_extensions_extension_proto_msgTypes[4]
    	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 UninstallResponse.ProtoReflect.Descriptor instead.
    func (*UninstallResponse) Descriptor() ([]byte, []int) {
    	return file_extensions_extension_proto_rawDescGZIP(), []int{4}
    }
    
    func (x *UninstallResponse) GetResults() []*ExtensionRequestResult {
    	if x != nil {
    		return x.Results
    	}
    	return nil
    }
    
    type UpdateRequest struct {
    	state         protoimpl.MessageState
    	sizeCache     protoimpl.SizeCache
    	unknownFields protoimpl.UnknownFields
    
    	Extensions []string `protobuf:"bytes,10000,rep,name=extensions,proto3" json:"extensions,omitempty"`          // Список расширений для удаления
    	SpaceId    string   `protobuf:"bytes,10010,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"` // Пространство для удаления расширений
    	EnvId      string   `protobuf:"bytes,10020,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"`       // Идентификатор окружения для установки (по умолчанию master)
    	Force      bool     `protobuf:"varint,10100,opt,name=force,proto3" json:"force,omitempty"`                   // Выполнять обновление и автоматически исправлять ошибки
    }
    
    func (x *UpdateRequest) Reset() {
    	*x = UpdateRequest{}
    	if protoimpl.UnsafeEnabled {
    		mi := &file_extensions_extension_proto_msgTypes[5]
    		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    		ms.StoreMessageInfo(mi)
    	}
    }
    
    func (x *UpdateRequest) String() string {
    	return protoimpl.X.MessageStringOf(x)
    }
    
    func (*UpdateRequest) ProtoMessage() {}
    
    func (x *UpdateRequest) ProtoReflect() protoreflect.Message {
    	mi := &file_extensions_extension_proto_msgTypes[5]
    	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 UpdateRequest.ProtoReflect.Descriptor instead.
    func (*UpdateRequest) Descriptor() ([]byte, []int) {
    	return file_extensions_extension_proto_rawDescGZIP(), []int{5}
    }
    
    func (x *UpdateRequest) GetExtensions() []string {
    	if x != nil {
    		return x.Extensions
    	}
    	return nil
    }
    
    func (x *UpdateRequest) GetSpaceId() string {
    	if x != nil {
    		return x.SpaceId
    	}
    	return ""
    }
    
    func (x *UpdateRequest) GetEnvId() string {
    	if x != nil {
    		return x.EnvId
    	}
    	return ""
    }
    
    func (x *UpdateRequest) GetForce() bool {
    	if x != nil {
    		return x.Force
    	}
    	return false
    }
    
    type UpdateResponse struct {
    	state         protoimpl.MessageState
    	sizeCache     protoimpl.SizeCache
    	unknownFields protoimpl.UnknownFields
    
    	Results []*ExtensionRequestResult `protobuf:"bytes,10000,rep,name=results,proto3" json:"results,omitempty"` // Список состояний расширений после удаления
    }
    
    func (x *UpdateResponse) Reset() {
    	*x = UpdateResponse{}
    	if protoimpl.UnsafeEnabled {
    		mi := &file_extensions_extension_proto_msgTypes[6]
    		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    		ms.StoreMessageInfo(mi)
    	}
    }
    
    func (x *UpdateResponse) String() string {
    	return protoimpl.X.MessageStringOf(x)
    }
    
    func (*UpdateResponse) ProtoMessage() {}
    
    func (x *UpdateResponse) ProtoReflect() protoreflect.Message {
    	mi := &file_extensions_extension_proto_msgTypes[6]
    	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 UpdateResponse.ProtoReflect.Descriptor instead.
    func (*UpdateResponse) Descriptor() ([]byte, []int) {
    	return file_extensions_extension_proto_rawDescGZIP(), []int{6}
    }
    
    func (x *UpdateResponse) GetResults() []*ExtensionRequestResult {
    	if x != nil {
    		return x.Results
    	}
    	return nil
    }
    
    type CheckRequest struct {
    	state         protoimpl.MessageState
    	sizeCache     protoimpl.SizeCache
    	unknownFields protoimpl.UnknownFields
    
    	Extensions []string `protobuf:"bytes,10000,rep,name=extensions,proto3" json:"extensions,omitempty"`          // Список расширений для удаления
    	SpaceId    string   `protobuf:"bytes,10010,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"` // Пространство для удаления расширений
    	EnvId      string   `protobuf:"bytes,10020,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"`       // Идентификатор окружения для установки (по умолчанию master)
    }
    
    func (x *CheckRequest) Reset() {
    	*x = CheckRequest{}
    	if protoimpl.UnsafeEnabled {
    		mi := &file_extensions_extension_proto_msgTypes[7]
    		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    		ms.StoreMessageInfo(mi)
    	}
    }
    
    func (x *CheckRequest) String() string {
    	return protoimpl.X.MessageStringOf(x)
    }
    
    func (*CheckRequest) ProtoMessage() {}
    
    func (x *CheckRequest) ProtoReflect() protoreflect.Message {
    	mi := &file_extensions_extension_proto_msgTypes[7]
    	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 CheckRequest.ProtoReflect.Descriptor instead.
    func (*CheckRequest) Descriptor() ([]byte, []int) {
    	return file_extensions_extension_proto_rawDescGZIP(), []int{7}
    }
    
    func (x *CheckRequest) GetExtensions() []string {
    	if x != nil {
    		return x.Extensions
    	}
    	return nil
    }
    
    func (x *CheckRequest) GetSpaceId() string {
    	if x != nil {
    		return x.SpaceId
    	}
    	return ""
    }
    
    func (x *CheckRequest) GetEnvId() string {
    	if x != nil {
    		return x.EnvId
    	}
    	return ""
    }
    
    type CheckResponse struct {
    	state         protoimpl.MessageState
    	sizeCache     protoimpl.SizeCache
    	unknownFields protoimpl.UnknownFields
    
    	Results []*ExtensionRequestResult `protobuf:"bytes,10000,rep,name=results,proto3" json:"results,omitempty"` // Список состояний расширений
    }
    
    func (x *CheckResponse) Reset() {
    	*x = CheckResponse{}
    	if protoimpl.UnsafeEnabled {
    		mi := &file_extensions_extension_proto_msgTypes[8]
    		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    		ms.StoreMessageInfo(mi)
    	}
    }
    
    func (x *CheckResponse) String() string {
    	return protoimpl.X.MessageStringOf(x)
    }
    
    func (*CheckResponse) ProtoMessage() {}
    
    func (x *CheckResponse) ProtoReflect() protoreflect.Message {
    	mi := &file_extensions_extension_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 CheckResponse.ProtoReflect.Descriptor instead.
    func (*CheckResponse) Descriptor() ([]byte, []int) {
    	return file_extensions_extension_proto_rawDescGZIP(), []int{8}
    }
    
    func (x *CheckResponse) GetResults() []*ExtensionRequestResult {
    	if x != nil {
    		return x.Results
    	}
    	return nil
    }
    
    // ActionRequest - запрос на выполнение действия к расширению (или менеджеру расширений)
    type ActionRequest struct {
    	state         protoimpl.MessageState
    	sizeCache     protoimpl.SizeCache
    	unknownFields protoimpl.UnknownFields
    
    	Extension    string   `protobuf:"bytes,1000,opt,name=extension,proto3" json:"extension,omitempty"`
    	Action       string   `protobuf:"bytes,10100,opt,name=action,proto3" json:"action,omitempty"`
    	SpaceId      string   `protobuf:"bytes,10500,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"`
    	EnvId        string   `protobuf:"bytes,10510,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"`
    	CollectionId string   `protobuf:"bytes,10520,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"`
    	ItemId       string   `protobuf:"bytes,10530,opt,name=item_id,json=itemId,proto3" json:"item_id,omitempty"`
    	ItemIds      []string `protobuf:"bytes,10540,rep,name=item_ids,json=itemIds,proto3" json:"item_ids,omitempty"`
    	// Поля к которым применимо действие. В случае если действие выполняется из списка записей, содержит перечень
    	// полей которые пользователь выбрал для отображения в интерфейсе.
    	Fields   []string          `protobuf:"bytes,10550,rep,name=fields,proto3" json:"fields,omitempty"`
    	Metadata map[string]string `protobuf:"bytes,11000,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
    	// Ссылки на записи используемые для выполнения действия (назначение ссылок зависит от действия и расширения)
    	Refs []*references.Reference `protobuf:"bytes,11010,rep,name=refs,proto3" json:"refs,omitempty"`
    	// Ссылка на документ с параметрами выполнения Action.
    	// Чтобы при выполнении действия открывалась форма параметров, необходимо указать `Action.params_collection`
    	Params *references.Reference `protobuf:"bytes,11020,opt,name=params,proto3" json:"params,omitempty"`
    }
    
    func (x *ActionRequest) Reset() {
    	*x = ActionRequest{}
    	if protoimpl.UnsafeEnabled {
    		mi := &file_extensions_extension_proto_msgTypes[9]
    		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    		ms.StoreMessageInfo(mi)
    	}
    }
    
    func (x *ActionRequest) String() string {
    	return protoimpl.X.MessageStringOf(x)
    }
    
    func (*ActionRequest) ProtoMessage() {}
    
    func (x *ActionRequest) ProtoReflect() protoreflect.Message {
    	mi := &file_extensions_extension_proto_msgTypes[9]
    	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 ActionRequest.ProtoReflect.Descriptor instead.
    func (*ActionRequest) Descriptor() ([]byte, []int) {
    	return file_extensions_extension_proto_rawDescGZIP(), []int{9}
    }
    
    func (x *ActionRequest) GetExtension() string {
    	if x != nil {
    		return x.Extension
    	}
    	return ""
    }
    
    func (x *ActionRequest) GetAction() string {
    	if x != nil {
    		return x.Action
    	}
    	return ""
    }
    
    func (x *ActionRequest) GetSpaceId() string {
    	if x != nil {
    		return x.SpaceId
    	}
    	return ""
    }
    
    func (x *ActionRequest) GetEnvId() string {
    	if x != nil {
    		return x.EnvId
    	}
    	return ""
    }
    
    func (x *ActionRequest) GetCollectionId() string {
    	if x != nil {
    		return x.CollectionId
    	}
    	return ""
    }
    
    func (x *ActionRequest) GetItemId() string {
    	if x != nil {
    		return x.ItemId
    	}
    	return ""
    }
    
    func (x *ActionRequest) GetItemIds() []string {
    	if x != nil {
    		return x.ItemIds
    	}
    	return nil
    }
    
    func (x *ActionRequest) GetFields() []string {
    	if x != nil {
    		return x.Fields
    	}
    	return nil
    }
    
    func (x *ActionRequest) GetMetadata() map[string]string {
    	if x != nil {
    		return x.Metadata
    	}
    	return nil
    }
    
    func (x *ActionRequest) GetRefs() []*references.Reference {
    	if x != nil {
    		return x.Refs
    	}
    	return nil
    }
    
    func (x *ActionRequest) GetParams() *references.Reference {
    	if x != nil {
    		return x.Params
    	}
    	return nil
    }
    
    type ActionResponse struct {
    	state         protoimpl.MessageState
    	sizeCache     protoimpl.SizeCache
    	unknownFields protoimpl.UnknownFields
    
    	State    ActionResponse_State    `protobuf:"varint,10000,opt,name=state,proto3,enum=extensions.ActionResponse_State" json:"state,omitempty"`                                                         // Состояние расширение
    	Msg      string                  `protobuf:"bytes,10100,opt,name=msg,proto3" json:"msg,omitempty"`                                                                                                   // Сообщение о выполнении действия
    	Error    string                  `protobuf:"bytes,10200,opt,name=error,proto3" json:"error,omitempty"`                                                                                               // Сообщение в случае ошибки
    	Next     []*Action               `protobuf:"bytes,10300,rep,name=next,proto3" json:"next,omitempty"`                                                                                                 // Следующие возможные действия. Интерфейс отображает как варианты дальнейших действий пользователя
    	Metadata map[string]string       `protobuf:"bytes,10400,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Метаданные запроса
    	Refs     []*references.Reference `protobuf:"bytes,10320,rep,name=refs,proto3" json:"refs,omitempty"`                                                                                                 // Ссылки на записи (назначение ссылок зависит от действия и расширения)
    }
    
    func (x *ActionResponse) Reset() {
    	*x = ActionResponse{}
    	if protoimpl.UnsafeEnabled {
    		mi := &file_extensions_extension_proto_msgTypes[10]
    		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    		ms.StoreMessageInfo(mi)
    	}
    }
    
    func (x *ActionResponse) String() string {
    	return protoimpl.X.MessageStringOf(x)
    }
    
    func (*ActionResponse) ProtoMessage() {}
    
    func (x *ActionResponse) ProtoReflect() protoreflect.Message {
    	mi := &file_extensions_extension_proto_msgTypes[10]
    	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 ActionResponse.ProtoReflect.Descriptor instead.
    func (*ActionResponse) Descriptor() ([]byte, []int) {
    	return file_extensions_extension_proto_rawDescGZIP(), []int{10}
    }
    
    func (x *ActionResponse) GetState() ActionResponse_State {
    	if x != nil {
    		return x.State
    	}
    	return ActionResponse_DONE
    }
    
    func (x *ActionResponse) GetMsg() string {
    	if x != nil {
    		return x.Msg
    	}
    	return ""
    }
    
    func (x *ActionResponse) GetError() string {
    	if x != nil {
    		return x.Error
    	}
    	return ""
    }
    
    func (x *ActionResponse) GetNext() []*Action {
    	if x != nil {
    		return x.Next
    	}
    	return nil
    }
    
    func (x *ActionResponse) GetMetadata() map[string]string {
    	if x != nil {
    		return x.Metadata
    	}
    	return nil
    }
    
    func (x *ActionResponse) GetRefs() []*references.Reference {
    	if x != nil {
    		return x.Refs
    	}
    	return nil
    }
    
    // *
    // Action описывает как коллекцию в системе с предуставновленными действиями, так и возможные дальнейшие действия после
    // получения ответа  (см. `ActionResponse.next`)
    //
    // Если поле `request` присутствует, но не все требуемые поля заполнены, то значения для них берутся из текущих значений.
    //
    // Коллекция: space_actions (Пространство/Действия)
    // Действия сохраненные в коллекции не содержат поля `request`. Значение заполняется текущими значениями.
    //
    // Пользовательские действия добавляются при установке расширений или при
    // настройке в системную коллекции `Пространство/Действия` (system_actions). Расширения самостоятельно контролирует создание необходимых
    // им действий в коллекции.
    //
    // Интерфейс загружает пользовательские действия и отображает их в интерфейсе соответствующим образом.
    type Action struct {
    	state         protoimpl.MessageState
    	sizeCache     protoimpl.SizeCache
    	unknownFields protoimpl.UnknownFields
    
    	Extension   string                `protobuf:"bytes,10000,opt,name=extension,proto3" json:"extension,omitempty"`                    // Расширение
    	Action      string                `protobuf:"bytes,10100,opt,name=action,proto3" json:"action,omitempty"`                          // Идентификатор действия
    	Name        string                `protobuf:"bytes,10200,opt,name=name,proto3" json:"name,omitempty"`                              // Название действия для отображения в интерфейсе (пункт меню, кнопка).
    	Description string                `protobuf:"bytes,10210,opt,name=description,proto3" json:"description,omitempty"`                // Описание действия для отображения в интерфейсе
    	Icon        string                `protobuf:"bytes,10220,opt,name=icon,proto3" json:"icon,omitempty"`                              // Название иконки для отображения действия в интерфейсе
    	Image       *references.Reference `protobuf:"bytes,10230,opt,name=image,proto3" json:"image,omitempty"`                            // Изображение для отображения в действия в интерфейсе
    	Groups      []string              `protobuf:"bytes,10240,rep,name=groups,proto3" json:"groups,omitempty"`                          // Группы отображения действия в интерфейсе
    	Kind        Action_Kind           `protobuf:"varint,10300,opt,name=kind,proto3,enum=extensions.Action_Kind" json:"kind,omitempty"` // Указывает на что направлено действие
    	Classes     []string              `protobuf:"bytes,10310,rep,name=classes,proto3" json:"classes,omitempty"`                        // Классы данных к которым применимо действие (название коллекций или специальных групп в рамках которых данное действие применимо)
    	// Для `CREATE` действуют следующие правила:
    	// - Для создание записей в коллекции применимы действия которые содержат в classes название коллекции
    	// - Для создания записей в виджетах которые допускают создание записей (Block/BlockList) применимы действия которые содержат:
    	//   - в classes хотя бы одно значение из classes виджета
    	//   - если у виджета не указан classes, тогда названия коллекций которые могут быть использованы для создания элементов в поле (allowed_collections)
    	Refs []*references.Reference `protobuf:"bytes,10320,rep,name=refs,proto3" json:"refs,omitempty"` // Ссылки на записи используемые для выполнения действия (назначение ссылок зависит от действия и расширения)
    	// Коллекция для сохранения параметрами действия. Если параметр указан, то при выполнении действия будет открываться
    	// форма создания записи в указанной коллекции
    	ParamsCollection string         `protobuf:"bytes,10330,opt,name=params_collection,json=paramsCollection,proto3" json:"params_collection,omitempty"`
    	Request          *ActionRequest `protobuf:"bytes,10400,opt,name=request,proto3" json:"request,omitempty"`                                            // Параметры запроса (используется в случае `ActionResponse.next`)
    	NavigationAction bool           `protobuf:"varint,10500,opt,name=navigation_action,json=navigationAction,proto3" json:"navigation_action,omitempty"` // Флаг указывающий что действие переносить пользователя в другую часть интерфейса, а не отправляет запрос на сервер
    	// navigation_route - Строка шаблон для перехода в интерфейсе
    	// При указании полного адреса (http(s)://xyz), URL открывается в новом окне браузера
    	// Относительный адрес в пользовательском интерфейсе переносит пользователя в соответствующий раздел без перезагрузки приложения
    	//
    	// Переменные `:var` заменяются на текуще значение в пользовательском интерфейсе (Пример: `/spaces/:spaceId/envs/:envId/cols/:colId`)
    	// Перечень переменных для подстановки:
    	// - :spaceId
    	// - :envId
    	// - :colId
    	// - :itemId
    	NavigationRoute string `protobuf:"bytes,10510,opt,name=navigation_route,json=navigationRoute,proto3" json:"navigation_route,omitempty"`
    }
    
    func (x *Action) Reset() {
    	*x = Action{}
    	if protoimpl.UnsafeEnabled {
    		mi := &file_extensions_extension_proto_msgTypes[11]
    		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    		ms.StoreMessageInfo(mi)
    	}
    }
    
    func (x *Action) String() string {
    	return protoimpl.X.MessageStringOf(x)
    }
    
    func (*Action) ProtoMessage() {}
    
    func (x *Action) ProtoReflect() protoreflect.Message {
    	mi := &file_extensions_extension_proto_msgTypes[11]
    	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 Action.ProtoReflect.Descriptor instead.
    func (*Action) Descriptor() ([]byte, []int) {
    	return file_extensions_extension_proto_rawDescGZIP(), []int{11}
    }
    
    func (x *Action) GetExtension() string {
    	if x != nil {
    		return x.Extension
    	}
    	return ""
    }
    
    func (x *Action) GetAction() string {
    	if x != nil {
    		return x.Action
    	}
    	return ""
    }
    
    func (x *Action) GetName() string {
    	if x != nil {
    		return x.Name
    	}
    	return ""
    }
    
    func (x *Action) GetDescription() string {
    	if x != nil {
    		return x.Description
    	}
    	return ""
    }
    
    func (x *Action) GetIcon() string {
    	if x != nil {
    		return x.Icon
    	}
    	return ""
    }
    
    func (x *Action) GetImage() *references.Reference {
    	if x != nil {
    		return x.Image
    	}
    	return nil
    }
    
    func (x *Action) GetGroups() []string {
    	if x != nil {
    		return x.Groups
    	}
    	return nil
    }
    
    func (x *Action) GetKind() Action_Kind {
    	if x != nil {
    		return x.Kind
    	}
    	return Action_DEFAULT
    }
    
    func (x *Action) GetClasses() []string {
    	if x != nil {
    		return x.Classes
    	}
    	return nil
    }
    
    func (x *Action) GetRefs() []*references.Reference {
    	if x != nil {
    		return x.Refs
    	}
    	return nil
    }
    
    func (x *Action) GetParamsCollection() string {
    	if x != nil {
    		return x.ParamsCollection
    	}
    	return ""
    }
    
    func (x *Action) GetRequest() *ActionRequest {
    	if x != nil {
    		return x.Request
    	}
    	return nil
    }
    
    func (x *Action) GetNavigationAction() bool {
    	if x != nil {
    		return x.NavigationAction
    	}
    	return false
    }
    
    func (x *Action) GetNavigationRoute() string {
    	if x != nil {
    		return x.NavigationRoute
    	}
    	return ""
    }
    
    var File_extensions_extension_proto protoreflect.FileDescriptor
    
    var file_extensions_extension_proto_rawDesc = []byte{
    	0x0a, 0x1a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x65, 0x78, 0x74,
    	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x65, 0x78,
    	0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x1b, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
    	0x6e, 0x63, 0x65, 0x73, 0x2f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2e,
    	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7c, 0x0a, 0x0e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c,
    	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e,
    	0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x90, 0x4e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78,
    	0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63,
    	0x65, 0x5f, 0x69, 0x64, 0x18, 0x9a, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x70, 0x61,
    	0x63, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x76, 0x5f, 0x69, 0x64, 0x18, 0xa4,
    	0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6e, 0x76, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x05,
    	0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0xf4, 0x4e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f,
    	0x72, 0x63, 0x65, 0x22, 0xa1, 0x02, 0x0a, 0x16, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
    	0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3f,
    	0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x90, 0x4e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28,
    	0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65,
    	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75,
    	0x6c, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12,
    	0x1d, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xf4, 0x4e, 0x20,
    	0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x11,
    	0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0xd8, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73,
    	0x67, 0x12, 0x15, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0xbc, 0x50, 0x20, 0x01, 0x28,
    	0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61,
    	0x74, 0x65, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0xa0, 0x51, 0x20,
    	0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c,
    	0x61, 0x62, 0x6c, 0x65, 0x22, 0x51, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x06, 0x0a,
    	0x02, 0x4f, 0x4b, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x01,
    	0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0f, 0x0a,
    	0x0b, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, 0x12, 0x17,
    	0x0a, 0x13, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x53, 0x5f, 0x52, 0x45, 0x51,
    	0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x04, 0x22, 0x50, 0x0a, 0x0f, 0x49, 0x6e, 0x73, 0x74, 0x61,
    	0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x07, 0x72, 0x65,
    	0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x90, 0x4e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65,
    	0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73,
    	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
    	0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x97, 0x01, 0x0a, 0x10, 0x55, 0x6e,
    	0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f,
    	0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x90, 0x4e, 0x20,
    	0x03, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12,
    	0x1a, 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x9a, 0x4e, 0x20, 0x01,
    	0x28, 0x09, 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65,
    	0x6e, 0x76, 0x5f, 0x69, 0x64, 0x18, 0xa4, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6e,
    	0x76, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x18, 0xf4, 0x4e,
    	0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x15, 0x0a, 0x05,
    	0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0xd8, 0x4f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66, 0x6f,
    	0x72, 0x63, 0x65, 0x22, 0x52, 0x0a, 0x11, 0x55, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c,
    	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75,
    	0x6c, 0x74, 0x73, 0x18, 0x90, 0x4e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x78, 0x74,
    	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f,
    	0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07,
    	0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x7b, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74,
    	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65,
    	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x90, 0x4e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x65,
    	0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x70, 0x61,
    	0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x9a, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x70,
    	0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x76, 0x5f, 0x69, 0x64, 0x18,
    	0xa4, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6e, 0x76, 0x49, 0x64, 0x12, 0x15, 0x0a,
    	0x05, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x18, 0xf4, 0x4e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x66,
    	0x6f, 0x72, 0x63, 0x65, 0x22, 0x4f, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65,
    	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74,
    	0x73, 0x18, 0x90, 0x4e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e,
    	0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52,
    	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65,
    	0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x63, 0x0a, 0x0c, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65,
    	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
    	0x6f, 0x6e, 0x73, 0x18, 0x90, 0x4e, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65,
    	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f,
    	0x69, 0x64, 0x18, 0x9a, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65,
    	0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x76, 0x5f, 0x69, 0x64, 0x18, 0xa4, 0x4e, 0x20,
    	0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6e, 0x76, 0x49, 0x64, 0x22, 0x4e, 0x0a, 0x0d, 0x43, 0x68,
    	0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x07, 0x72,
    	0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x90, 0x4e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e,
    	0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e,
    	0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c,
    	0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0xdf, 0x03, 0x0a, 0x0d, 0x41,
    	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x09,
    	0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xe8, 0x07, 0x20, 0x01, 0x28, 0x09,
    	0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x06, 0x61,
    	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xf4, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63,
    	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64,
    	0x18, 0x84, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64,
    	0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x76, 0x5f, 0x69, 0x64, 0x18, 0x8e, 0x52, 0x20, 0x01, 0x28,
    	0x09, 0x52, 0x05, 0x65, 0x6e, 0x76, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6c, 0x6c,
    	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x98, 0x52, 0x20, 0x01, 0x28, 0x09,
    	0x52, 0x0c, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x18,
    	0x0a, 0x07, 0x69, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0xa2, 0x52, 0x20, 0x01, 0x28, 0x09,
    	0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x74, 0x65, 0x6d,
    	0x5f, 0x69, 0x64, 0x73, 0x18, 0xac, 0x52, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x69, 0x74, 0x65,
    	0x6d, 0x49, 0x64, 0x73, 0x12, 0x17, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0xb6,
    	0x52, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x44, 0x0a,
    	0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0xf8, 0x55, 0x20, 0x03, 0x28, 0x0b,
    	0x32, 0x27, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x63,
    	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x61,
    	0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64,
    	0x61, 0x74, 0x61, 0x12, 0x32, 0x0a, 0x04, 0x72, 0x65, 0x66, 0x73, 0x18, 0x82, 0x56, 0x20, 0x03,
    	0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x72, 0x65, 0x66,
    	0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
    	0x65, 0x52, 0x04, 0x72, 0x65, 0x66, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d,
    	0x73, 0x18, 0x8c, 0x56, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65,
    	0x6e, 0x74, 0x2e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65,
    	0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a,
    	0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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,
    	0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa9, 0x03, 0x0a,
    	0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
    	0x37, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x90, 0x4e, 0x20, 0x01, 0x28, 0x0e, 0x32,
    	0x20, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x63, 0x74,
    	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74,
    	0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x11, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18,
    	0xf4, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x15, 0x0a, 0x05, 0x65,
    	0x72, 0x72, 0x6f, 0x72, 0x18, 0xd8, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72,
    	0x6f, 0x72, 0x12, 0x27, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0xbc, 0x50, 0x20, 0x03, 0x28,
    	0x0b, 0x32, 0x12, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41,
    	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x12, 0x45, 0x0a, 0x08, 0x6d,
    	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0xa0, 0x51, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28,
    	0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69,
    	0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64,
    	0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
    	0x74, 0x61, 0x12, 0x32, 0x0a, 0x04, 0x72, 0x65, 0x66, 0x73, 0x18, 0xd0, 0x50, 0x20, 0x03, 0x28,
    	0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x72, 0x65, 0x66, 0x65,
    	0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
    	0x52, 0x04, 0x72, 0x65, 0x66, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
    	0x74, 0x61, 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, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
    	0x02, 0x38, 0x01, 0x22, 0x53, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x08, 0x0a, 0x04,
    	0x44, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10,
    	0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0f,
    	0x0a, 0x0b, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, 0x12,
    	0x17, 0x0a, 0x13, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x53, 0x5f, 0x52, 0x45,
    	0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x04, 0x22, 0x87, 0x05, 0x0a, 0x06, 0x41, 0x63, 0x74,
    	0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
    	0x18, 0x90, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
    	0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xf4, 0x4e, 0x20,
    	0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a, 0x04, 0x6e,
    	0x61, 0x6d, 0x65, 0x18, 0xd8, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
    	0x12, 0x21, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,
    	0xe2, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
    	0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0xec, 0x4f, 0x20, 0x01,
    	0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67,
    	0x65, 0x18, 0xf6, 0x4f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65,
    	0x6e, 0x74, 0x2e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65,
    	0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x17,
    	0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x80, 0x50, 0x20, 0x03, 0x28, 0x09, 0x52,
    	0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18,
    	0xbc, 0x50, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
    	0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52,
    	0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73,
    	0x18, 0xc6, 0x50, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73,
    	0x12, 0x32, 0x0a, 0x04, 0x72, 0x65, 0x66, 0x73, 0x18, 0xd0, 0x50, 0x20, 0x03, 0x28, 0x0b, 0x32,
    	0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65,
    	0x6e, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x04,
    	0x72, 0x65, 0x66, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x5f, 0x63,
    	0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xda, 0x50, 0x20, 0x01, 0x28, 0x09,
    	0x52, 0x10, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69,
    	0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0xa0, 0x51,
    	0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
    	0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52,
    	0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x6e, 0x61, 0x76, 0x69,
    	0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x84, 0x52,
    	0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e,
    	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61,
    	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x8e, 0x52, 0x20, 0x01, 0x28,
    	0x09, 0x52, 0x0f, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x75,
    	0x74, 0x65, 0x22, 0x6e, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45,
    	0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x41, 0x43, 0x45,
    	0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x45, 0x4e, 0x56, 0x49, 0x52, 0x4f, 0x4e, 0x4d, 0x45, 0x4e,
    	0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f,
    	0x4e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x54, 0x45, 0x4d, 0x10, 0x04, 0x12, 0x09, 0x0a,
    	0x05, 0x49, 0x54, 0x45, 0x4d, 0x53, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x56, 0x49,
    	0x53, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45,
    	0x10, 0x07, 0x32, 0xe3, 0x02, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
    	0x12, 0x44, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x12, 0x1a, 0x2e, 0x65, 0x78,
    	0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c,
    	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
    	0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70,
    	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12,
    	0x18, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x68, 0x65,
    	0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x65, 0x78, 0x74, 0x65,
    	0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70,
    	0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
    	0x12, 0x19, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x55, 0x70,
    	0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x65, 0x78,
    	0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52,
    	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x09, 0x55, 0x6e, 0x69,
    	0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69,
    	0x6f, 0x6e, 0x73, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x71,
    	0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e,
    	0x73, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f,
    	0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12,
    	0x19, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x63, 0x74,
    	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x74,
    	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
    	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x2e,
    	0x70, 0x65, 0x72, 0x78, 0x2e, 0x72, 0x75, 0x2f, 0x70, 0x65, 0x72, 0x78, 0x69, 0x73, 0x2f, 0x70,
    	0x65, 0x72, 0x78, 0x69, 0x73, 0x2d, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65,
    	0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3b, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73,
    	0x69, 0x6f, 0x6e, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
    }
    
    var (
    	file_extensions_extension_proto_rawDescOnce sync.Once
    	file_extensions_extension_proto_rawDescData = file_extensions_extension_proto_rawDesc
    )
    
    func file_extensions_extension_proto_rawDescGZIP() []byte {
    	file_extensions_extension_proto_rawDescOnce.Do(func() {
    		file_extensions_extension_proto_rawDescData = protoimpl.X.CompressGZIP(file_extensions_extension_proto_rawDescData)
    	})
    	return file_extensions_extension_proto_rawDescData
    }
    
    var file_extensions_extension_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
    var file_extensions_extension_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
    var file_extensions_extension_proto_goTypes = []interface{}{
    	(ExtensionRequestResult_State)(0), // 0: extensions.ExtensionRequestResult.State
    	(ActionResponse_State)(0),         // 1: extensions.ActionResponse.State
    	(Action_Kind)(0),                  // 2: extensions.Action.Kind
    	(*InstallRequest)(nil),            // 3: extensions.InstallRequest
    	(*ExtensionRequestResult)(nil),    // 4: extensions.ExtensionRequestResult
    	(*InstallResponse)(nil),           // 5: extensions.InstallResponse
    	(*UninstallRequest)(nil),          // 6: extensions.UninstallRequest
    	(*UninstallResponse)(nil),         // 7: extensions.UninstallResponse
    	(*UpdateRequest)(nil),             // 8: extensions.UpdateRequest
    	(*UpdateResponse)(nil),            // 9: extensions.UpdateResponse
    	(*CheckRequest)(nil),              // 10: extensions.CheckRequest
    	(*CheckResponse)(nil),             // 11: extensions.CheckResponse
    	(*ActionRequest)(nil),             // 12: extensions.ActionRequest
    	(*ActionResponse)(nil),            // 13: extensions.ActionResponse
    	(*Action)(nil),                    // 14: extensions.Action
    	nil,                               // 15: extensions.ActionRequest.MetadataEntry
    	nil,                               // 16: extensions.ActionResponse.MetadataEntry
    	(*references.Reference)(nil),      // 17: content.references.Reference
    }
    var file_extensions_extension_proto_depIdxs = []int32{
    	0,  // 0: extensions.ExtensionRequestResult.state:type_name -> extensions.ExtensionRequestResult.State
    	4,  // 1: extensions.InstallResponse.results:type_name -> extensions.ExtensionRequestResult
    	4,  // 2: extensions.UninstallResponse.results:type_name -> extensions.ExtensionRequestResult
    	4,  // 3: extensions.UpdateResponse.results:type_name -> extensions.ExtensionRequestResult
    	4,  // 4: extensions.CheckResponse.results:type_name -> extensions.ExtensionRequestResult
    	15, // 5: extensions.ActionRequest.metadata:type_name -> extensions.ActionRequest.MetadataEntry
    	17, // 6: extensions.ActionRequest.refs:type_name -> content.references.Reference
    	17, // 7: extensions.ActionRequest.params:type_name -> content.references.Reference
    	1,  // 8: extensions.ActionResponse.state:type_name -> extensions.ActionResponse.State
    	14, // 9: extensions.ActionResponse.next:type_name -> extensions.Action
    	16, // 10: extensions.ActionResponse.metadata:type_name -> extensions.ActionResponse.MetadataEntry
    	17, // 11: extensions.ActionResponse.refs:type_name -> content.references.Reference
    	17, // 12: extensions.Action.image:type_name -> content.references.Reference
    	2,  // 13: extensions.Action.kind:type_name -> extensions.Action.Kind
    	17, // 14: extensions.Action.refs:type_name -> content.references.Reference
    	12, // 15: extensions.Action.request:type_name -> extensions.ActionRequest
    	3,  // 16: extensions.Extension.Install:input_type -> extensions.InstallRequest
    	10, // 17: extensions.Extension.Check:input_type -> extensions.CheckRequest
    	8,  // 18: extensions.Extension.Update:input_type -> extensions.UpdateRequest
    	6,  // 19: extensions.Extension.Uninstall:input_type -> extensions.UninstallRequest
    	12, // 20: extensions.Extension.Action:input_type -> extensions.ActionRequest
    	5,  // 21: extensions.Extension.Install:output_type -> extensions.InstallResponse
    	11, // 22: extensions.Extension.Check:output_type -> extensions.CheckResponse
    	9,  // 23: extensions.Extension.Update:output_type -> extensions.UpdateResponse
    	7,  // 24: extensions.Extension.Uninstall:output_type -> extensions.UninstallResponse
    	13, // 25: extensions.Extension.Action:output_type -> extensions.ActionResponse
    	21, // [21:26] is the sub-list for method output_type
    	16, // [16:21] is the sub-list for method input_type
    	16, // [16:16] is the sub-list for extension type_name
    	16, // [16:16] is the sub-list for extension extendee
    	0,  // [0:16] is the sub-list for field type_name
    }
    
    func init() { file_extensions_extension_proto_init() }
    func file_extensions_extension_proto_init() {
    	if File_extensions_extension_proto != nil {
    		return
    	}
    	if !protoimpl.UnsafeEnabled {
    		file_extensions_extension_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
    			switch v := v.(*InstallRequest); i {
    			case 0:
    				return &v.state
    			case 1:
    				return &v.sizeCache
    			case 2:
    				return &v.unknownFields
    			default:
    				return nil
    			}
    		}
    		file_extensions_extension_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
    			switch v := v.(*ExtensionRequestResult); i {
    			case 0:
    				return &v.state
    			case 1:
    				return &v.sizeCache
    			case 2:
    				return &v.unknownFields
    			default:
    				return nil
    			}
    		}
    		file_extensions_extension_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
    			switch v := v.(*InstallResponse); i {
    			case 0:
    				return &v.state
    			case 1:
    				return &v.sizeCache
    			case 2:
    				return &v.unknownFields
    			default:
    				return nil
    			}
    		}
    		file_extensions_extension_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
    			switch v := v.(*UninstallRequest); i {
    			case 0:
    				return &v.state
    			case 1:
    				return &v.sizeCache
    			case 2:
    				return &v.unknownFields
    			default:
    				return nil
    			}
    		}
    		file_extensions_extension_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
    			switch v := v.(*UninstallResponse); i {
    			case 0:
    				return &v.state
    			case 1:
    				return &v.sizeCache
    			case 2:
    				return &v.unknownFields
    			default:
    				return nil
    			}
    		}
    		file_extensions_extension_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
    			switch v := v.(*UpdateRequest); i {
    			case 0:
    				return &v.state
    			case 1:
    				return &v.sizeCache
    			case 2:
    				return &v.unknownFields
    			default:
    				return nil
    			}
    		}
    		file_extensions_extension_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
    			switch v := v.(*UpdateResponse); i {
    			case 0:
    				return &v.state
    			case 1:
    				return &v.sizeCache
    			case 2:
    				return &v.unknownFields
    			default:
    				return nil
    			}
    		}
    		file_extensions_extension_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
    			switch v := v.(*CheckRequest); i {
    			case 0:
    				return &v.state
    			case 1:
    				return &v.sizeCache
    			case 2:
    				return &v.unknownFields
    			default:
    				return nil
    			}
    		}
    		file_extensions_extension_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
    			switch v := v.(*CheckResponse); i {
    			case 0:
    				return &v.state
    			case 1:
    				return &v.sizeCache
    			case 2:
    				return &v.unknownFields
    			default:
    				return nil
    			}
    		}
    		file_extensions_extension_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
    			switch v := v.(*ActionRequest); i {
    			case 0:
    				return &v.state
    			case 1:
    				return &v.sizeCache
    			case 2:
    				return &v.unknownFields
    			default:
    				return nil
    			}
    		}
    		file_extensions_extension_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
    			switch v := v.(*ActionResponse); i {
    			case 0:
    				return &v.state
    			case 1:
    				return &v.sizeCache
    			case 2:
    				return &v.unknownFields
    			default:
    				return nil
    			}
    		}
    		file_extensions_extension_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
    			switch v := v.(*Action); i {
    			case 0:
    				return &v.state
    			case 1:
    				return &v.sizeCache
    			case 2:
    				return &v.unknownFields
    			default:
    				return nil
    			}
    		}
    	}
    	type x struct{}
    	out := protoimpl.TypeBuilder{
    		File: protoimpl.DescBuilder{
    			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
    			RawDescriptor: file_extensions_extension_proto_rawDesc,
    			NumEnums:      3,
    			NumMessages:   14,
    			NumExtensions: 0,
    			NumServices:   1,
    		},
    		GoTypes:           file_extensions_extension_proto_goTypes,
    		DependencyIndexes: file_extensions_extension_proto_depIdxs,
    		EnumInfos:         file_extensions_extension_proto_enumTypes,
    		MessageInfos:      file_extensions_extension_proto_msgTypes,
    	}.Build()
    	File_extensions_extension_proto = out.File
    	file_extensions_extension_proto_rawDesc = nil
    	file_extensions_extension_proto_goTypes = nil
    	file_extensions_extension_proto_depIdxs = nil
    }