diff --git a/Makefile b/Makefile index b98227b3cdace7fdabf7849386a91eb3f134a01a..12b9f0834fd93f385735da38d444435d4a92d5c9 100644 --- a/Makefile +++ b/Makefile @@ -19,10 +19,8 @@ SERVICERECOVERING=$(shell find $(PKGDIR) -name "recovering_middleware.go" -type # Генерация grpc-клиентов для go proto: protoc-check protoc-gen-go-check $(PROTOGOFILES) - echo "Generated all protobuf Go files" - echo $(ALLPROTO) - echo $(PROTODIR) - find $(PROTODIR) -name '*.proto' + @echo "Generate Go from proto files" + @find $(PROTODIR) -name '*.proto' %.pb.go: %.proto @protoc -I=$(PROTODIR) --experimental_allow_proto3_optional --go_out=$(DSTDIR) --go-grpc_out=$(DSTDIR) --go_opt=paths=source_relative --go-grpc_opt=paths=source_relative "$<" diff --git a/Taskfile.yaml b/Taskfile.yaml index 244b11e774703bd26b17efaeadb51d279456384e..8a16d687681a42527f9dca01dd01fef0790c0aca 100644 --- a/Taskfile.yaml +++ b/Taskfile.yaml @@ -1,5 +1,10 @@ version: '3' + +vars: + PROTODIR: perxis-proto/proto + PBDIR: pb + tasks: mocks: deps: @@ -12,3 +17,32 @@ tasks: cmds: - mockery --all --dir proto --output proto/mocks + + proto: + sources: + - '{{ .PROTODIR }}/**/*.proto' +# generates: +# - '{{ .PBDIR }}/*.go' + ignore_error: true # Ргнорировать ошибки, РёР·-Р·Р° status/status.proto +# silent: true + cmds: + - for: sources + cmd: echo {{ .ITEM }} +# cmd: '[ "{{.FILE}}" != "perxis-proto/proto/status/status.proto" ]' +# - protoc --proto_path={{ .PROTODIR }} --experimental_allow_proto3_optional --go_out={{ .PBDIR }} --go-grpc_out={{ .PBDIR }} --go_opt=paths=source_relative --go-grpc_opt=paths=source_relative {{ .FILE }} + + + # cmd: protoc --proto_path={{ .PROTODIR }} --experimental_allow_proto3_optional --go_out={{ .PBDIR }} --go-grpc_out={{ .PBDIR }} --go_opt=paths=source_relative --go-grpc_opt=paths=source_relative {{ .ITEM }} +# task: proto_file +# vars: +# FILE: '{{ .ITEM }}' +# ignore_error: true + + + proto_file: + sources: + - '{{ .FILE }}' + cmds: + - '[ "{{.FILE}}" != "perxis-proto/proto/status/status.proto" ]' # Ргнорировать ошибки, РёР·-Р·Р° status/status.proto + - protoc --proto_path={{ .PROTODIR }} --experimental_allow_proto3_optional --go_out={{ .PBDIR }} --go-grpc_out={{ .PBDIR }} --go_opt=paths=source_relative --go-grpc_opt=paths=source_relative {{ .FILE }} + silent: true \ No newline at end of file diff --git a/pkg/collections/mocks/CollectionCreatedObserver.go b/pkg/collections/mocks/CollectionCreatedObserver.go new file mode 100644 index 0000000000000000000000000000000000000000..55b38993e7a3ed0d92c4d7f16047834caeb4ef3e --- /dev/null +++ b/pkg/collections/mocks/CollectionCreatedObserver.go @@ -0,0 +1,54 @@ +// Code generated by mockery v2.33.3. DO NOT EDIT. + +package mocks + +import ( + context "context" + + collections "git.perx.ru/perxis/perxis-go/pkg/collections" + + mock "github.com/stretchr/testify/mock" +) + +// CollectionCreatedObserver is an autogenerated mock type for the CollectionCreatedObserver type +type CollectionCreatedObserver struct { + mock.Mock +} + +// OnCollectionCreated provides a mock function with given fields: ctx, coll +func (_m *CollectionCreatedObserver) OnCollectionCreated(ctx context.Context, coll *collections.Collection) (string, error) { + ret := _m.Called(ctx, coll) + + var r0 string + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *collections.Collection) (string, error)); ok { + return rf(ctx, coll) + } + if rf, ok := ret.Get(0).(func(context.Context, *collections.Collection) string); ok { + r0 = rf(ctx, coll) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(context.Context, *collections.Collection) error); ok { + r1 = rf(ctx, coll) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// NewCollectionCreatedObserver creates a new instance of CollectionCreatedObserver. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewCollectionCreatedObserver(t interface { + mock.TestingT + Cleanup(func()) +}) *CollectionCreatedObserver { + mock := &CollectionCreatedObserver{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/pkg/collections/mocks/CollectionDeletedObserver.go b/pkg/collections/mocks/CollectionDeletedObserver.go new file mode 100644 index 0000000000000000000000000000000000000000..a529def57ce8131e20ad9d03fc00d4038b318fff --- /dev/null +++ b/pkg/collections/mocks/CollectionDeletedObserver.go @@ -0,0 +1,54 @@ +// Code generated by mockery v2.33.3. DO NOT EDIT. + +package mocks + +import ( + context "context" + + collections "git.perx.ru/perxis/perxis-go/pkg/collections" + + mock "github.com/stretchr/testify/mock" +) + +// CollectionDeletedObserver is an autogenerated mock type for the CollectionDeletedObserver type +type CollectionDeletedObserver struct { + mock.Mock +} + +// OnCollectionDeleted provides a mock function with given fields: ctx, coll +func (_m *CollectionDeletedObserver) OnCollectionDeleted(ctx context.Context, coll *collections.Collection) (string, error) { + ret := _m.Called(ctx, coll) + + var r0 string + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *collections.Collection) (string, error)); ok { + return rf(ctx, coll) + } + if rf, ok := ret.Get(0).(func(context.Context, *collections.Collection) string); ok { + r0 = rf(ctx, coll) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(context.Context, *collections.Collection) error); ok { + r1 = rf(ctx, coll) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// NewCollectionDeletedObserver creates a new instance of CollectionDeletedObserver. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewCollectionDeletedObserver(t interface { + mock.TestingT + Cleanup(func()) +}) *CollectionDeletedObserver { + mock := &CollectionDeletedObserver{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/pkg/collections/mocks/CollectionPreUpdateObserver.go b/pkg/collections/mocks/CollectionPreUpdateObserver.go new file mode 100644 index 0000000000000000000000000000000000000000..6d1fa2f25c1bb46e8143495a368ac44650375b79 --- /dev/null +++ b/pkg/collections/mocks/CollectionPreUpdateObserver.go @@ -0,0 +1,54 @@ +// Code generated by mockery v2.33.3. DO NOT EDIT. + +package mocks + +import ( + context "context" + + collections "git.perx.ru/perxis/perxis-go/pkg/collections" + + mock "github.com/stretchr/testify/mock" +) + +// CollectionPreUpdateObserver is an autogenerated mock type for the CollectionPreUpdateObserver type +type CollectionPreUpdateObserver struct { + mock.Mock +} + +// OnCollectionPreUpdate provides a mock function with given fields: ctx, before, coll +func (_m *CollectionPreUpdateObserver) OnCollectionPreUpdate(ctx context.Context, before *collections.Collection, coll *collections.Collection) (string, error) { + ret := _m.Called(ctx, before, coll) + + var r0 string + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *collections.Collection, *collections.Collection) (string, error)); ok { + return rf(ctx, before, coll) + } + if rf, ok := ret.Get(0).(func(context.Context, *collections.Collection, *collections.Collection) string); ok { + r0 = rf(ctx, before, coll) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(context.Context, *collections.Collection, *collections.Collection) error); ok { + r1 = rf(ctx, before, coll) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// NewCollectionPreUpdateObserver creates a new instance of CollectionPreUpdateObserver. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewCollectionPreUpdateObserver(t interface { + mock.TestingT + Cleanup(func()) +}) *CollectionPreUpdateObserver { + mock := &CollectionPreUpdateObserver{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/pkg/collections/mocks/CollectionSetSchemaObserver.go b/pkg/collections/mocks/CollectionSetSchemaObserver.go new file mode 100644 index 0000000000000000000000000000000000000000..5453aef6abf21f03075b5be16fd2e252e736d0e2 --- /dev/null +++ b/pkg/collections/mocks/CollectionSetSchemaObserver.go @@ -0,0 +1,54 @@ +// Code generated by mockery v2.33.3. DO NOT EDIT. + +package mocks + +import ( + context "context" + + collections "git.perx.ru/perxis/perxis-go/pkg/collections" + + mock "github.com/stretchr/testify/mock" +) + +// CollectionSetSchemaObserver is an autogenerated mock type for the CollectionSetSchemaObserver type +type CollectionSetSchemaObserver struct { + mock.Mock +} + +// OnCollectionSetSchema provides a mock function with given fields: ctx, before, coll +func (_m *CollectionSetSchemaObserver) OnCollectionSetSchema(ctx context.Context, before *collections.Collection, coll *collections.Collection) (string, error) { + ret := _m.Called(ctx, before, coll) + + var r0 string + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *collections.Collection, *collections.Collection) (string, error)); ok { + return rf(ctx, before, coll) + } + if rf, ok := ret.Get(0).(func(context.Context, *collections.Collection, *collections.Collection) string); ok { + r0 = rf(ctx, before, coll) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(context.Context, *collections.Collection, *collections.Collection) error); ok { + r1 = rf(ctx, before, coll) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// NewCollectionSetSchemaObserver creates a new instance of CollectionSetSchemaObserver. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewCollectionSetSchemaObserver(t interface { + mock.TestingT + Cleanup(func()) +}) *CollectionSetSchemaObserver { + mock := &CollectionSetSchemaObserver{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/pkg/collections/mocks/CollectionUpdatedObserver.go b/pkg/collections/mocks/CollectionUpdatedObserver.go new file mode 100644 index 0000000000000000000000000000000000000000..4a0dc34dd9abeab91d1e2219d75fddceecc1fa5b --- /dev/null +++ b/pkg/collections/mocks/CollectionUpdatedObserver.go @@ -0,0 +1,54 @@ +// Code generated by mockery v2.33.3. DO NOT EDIT. + +package mocks + +import ( + context "context" + + collections "git.perx.ru/perxis/perxis-go/pkg/collections" + + mock "github.com/stretchr/testify/mock" +) + +// CollectionUpdatedObserver is an autogenerated mock type for the CollectionUpdatedObserver type +type CollectionUpdatedObserver struct { + mock.Mock +} + +// OnCollectionUpdated provides a mock function with given fields: ctx, before, after +func (_m *CollectionUpdatedObserver) OnCollectionUpdated(ctx context.Context, before *collections.Collection, after *collections.Collection) (string, error) { + ret := _m.Called(ctx, before, after) + + var r0 string + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, *collections.Collection, *collections.Collection) (string, error)); ok { + return rf(ctx, before, after) + } + if rf, ok := ret.Get(0).(func(context.Context, *collections.Collection, *collections.Collection) string); ok { + r0 = rf(ctx, before, after) + } else { + r0 = ret.Get(0).(string) + } + + if rf, ok := ret.Get(1).(func(context.Context, *collections.Collection, *collections.Collection) error); ok { + r1 = rf(ctx, before, after) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// NewCollectionUpdatedObserver creates a new instance of CollectionUpdatedObserver. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewCollectionUpdatedObserver(t interface { + mock.TestingT + Cleanup(func()) +}) *CollectionUpdatedObserver { + mock := &CollectionUpdatedObserver{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/pkg/extension/action.go b/pkg/extension/action.go index 9e4247c03e42e743ddd3710dd916d1a39635c52d..d4839a8adf4698545007e296fc0c17d311de8969 100644 --- a/pkg/extension/action.go +++ b/pkg/extension/action.go @@ -6,11 +6,6 @@ import ( "github.com/mitchellh/mapstructure" ) -const ( - ActionsCollectionID = "space_actions" - ActionsCollectionName = "Настройки/Действия" -) - type ( ActionKind = pb.Action_Kind ResponseState = pb.ActionResponse_State diff --git a/pkg/extension/client.go b/pkg/extension/client.go index fc7276552f11ff086934e8d524541c77249d6d22..f2076c1b933365beaa7dc88808a3354502adedc9 100644 --- a/pkg/extension/client.go +++ b/pkg/extension/client.go @@ -3,18 +3,21 @@ package extension import ( "context" - "git.perx.ru/perxis/perxis-go/pkg/errors" + "git.perx.ru/perxis/perxis-go/pkg/operation" pb "git.perx.ru/perxis/perxis-go/proto/extensions" "google.golang.org/grpc" ) +// Client описывает клиент для расширений type Client struct { - client pb.ExtensionClient + client pb.ExtensionServiceClient + opsClient operation.Client } func NewClient(conn *grpc.ClientConn) *Client { return &Client{ - client: pb.NewExtensionClient(conn), + client: pb.NewExtensionServiceClient(conn), + opsClient: operation.NewClient(conn), } } @@ -22,61 +25,78 @@ func (c Client) GetDescriptor() *ExtensionDescriptor { return nil } -type results interface { - GetResults() []*RequestResult -} - -func getErrors(out results, err, wrapErr error) error { +func (c Client) wait(ctx context.Context, fn func(context.Context) (*operation.Proto, error)) error { + pbOperation, err := fn(ctx) if err != nil { return err } - res := out.GetResults() + op := operation.Wrap(c.opsClient, pbOperation) + if err = op.Wait(ctx); err != nil { + return err + } - var errs []error - for _, r := range res { - if r.State == RequestError { - err := errors.New(r.GetError()) - if msg := r.GetMsg(); msg != "" { - err = errors.WithDetail(err, msg) - } - errs = append(errs, ExtensionError(err, r.Extension)) - } + return op.Error() +} - if r.UpdateAvailable { - errs = append(errs, ExtensionError(ErrUpdateAvailable, r.Extension)) - } +func (c *Client) InstallOperation(ctx context.Context, req *InstallRequest) (*operation.Operation, error) { + pbOperation, err := c.client.Install(ctx, req) + if err != nil { + return nil, err } + return operation.Wrap(c.opsClient, pbOperation), nil +} - if len(errs) > 0 { - return errors.WithErrors(wrapErr, errs...) +func (c *Client) Install(ctx context.Context, req *InstallRequest) error { + op, err := c.InstallOperation(ctx, req) + if err != nil { + return err } - - return nil + if err := op.Wait(ctx); err != nil { + return err + } + return op.Error() } -func (c Client) Install(ctx context.Context, in *InstallRequest) error { - out, err := c.client.Install(ctx, in) - return getErrors(out, err, ErrInstall) +func (c *Client) UninstallOperation(ctx context.Context, req *UninstallRequest) (*operation.Operation, error) { + pbOperation, err := c.client.Uninstall(ctx, req) + if err != nil { + return nil, err + } + return operation.Wrap(c.opsClient, pbOperation), nil } -func (c Client) Check(ctx context.Context, in *CheckRequest) error { - out, err := c.client.Check(ctx, in) - return getErrors(out, err, ErrCheck) +func (c *Client) Uninstall(ctx context.Context, req *UninstallRequest) error { + op, err := c.UninstallOperation(ctx, req) + if err != nil { + return err + } + if err := op.Wait(ctx); err != nil { + return err + } + return op.Error() } -func (c Client) Update(ctx context.Context, in *UpdateRequest) error { - out, err := c.client.Update(ctx, in) - return getErrors(out, err, ErrUpdate) +func (c *Client) CheckOperation(ctx context.Context, req *CheckRequest) (*operation.Operation, error) { + pbOperation, err := c.client.Check(ctx, req) + if err != nil { + return nil, err + } + return operation.Wrap(c.opsClient, pbOperation), nil } -func (c Client) Uninstall(ctx context.Context, in *UninstallRequest) error { - out, err := c.client.Uninstall(ctx, in) - return getErrors(out, err, ErrUninstall) +func (c *Client) Check(ctx context.Context, req *CheckRequest) error { + op, err := c.CheckOperation(ctx, req) + if err != nil { + return err + } + if err := op.Wait(ctx); err != nil { + return err + } + return op.Error() } func (c Client) Action(ctx context.Context, in *ActionRequest) (*ActionResponse, error) { out, err := c.client.Action(ctx, in) return out, err - //return ActionResponseFromPB(out), err } diff --git a/pkg/extension/extension.go b/pkg/extension/extension.go index fb8044c7a2f4c76b775840c5628319196a0493ae..1166b9d3f87d0ab711702b8b4335c32658a76d8c 100644 --- a/pkg/extension/extension.go +++ b/pkg/extension/extension.go @@ -11,12 +11,6 @@ import ( ) const ( - RequestOK = pb.ExtensionRequestResult_OK - RequestError = pb.ExtensionRequestResult_ERROR - - ExtensionsCollectionID = "space_extensions" - ExtensionsCollectionName = "Настройки/Расширения" - StatePending = pb.SpaceExtensions_PENDING StateInstalled = pb.SpaceExtensions_INSTALLED StateInProgress = pb.SpaceExtensions_IN_PROGRESS @@ -26,15 +20,9 @@ const ( ) type ( - InstallRequest = pb.InstallRequest - InstallResponse = pb.InstallResponse - CheckRequest = pb.CheckRequest - CheckResponse = pb.CheckResponse - UpdateRequest = pb.UpdateRequest - UpdateResponse = pb.UpdateResponse - UninstallRequest = pb.UninstallRequest - UninstallResponse = pb.UninstallResponse - RequestResult = pb.ExtensionRequestResult + InstallRequest = pb.InstallRequest + CheckRequest = pb.CheckRequest + UninstallRequest = pb.UninstallRequest ExtensionDescriptor = pb.ExtensionDescriptor SpaceExtensionsState = pb.SpaceExtensions_State @@ -71,9 +59,6 @@ type Extension interface { // Check вызывается для проверки состояния расширения Check(ctx context.Context, in *CheckRequest) error - // Update вызывается для обновления вресии расширения - Update(ctx context.Context, in *UpdateRequest) error - // Uninstall вызывается для удаления расширения РёР· пространства Uninstall(ctx context.Context, in *UninstallRequest) error @@ -82,7 +67,7 @@ type Extension interface { } func CheckInstalled(ctx context.Context, content *content.Content, spaceID, envID, extension string) (bool, error) { - res, _, err := content.Items.Find(ctx, spaceID, envID, ExtensionsCollectionID, + res, _, err := content.Items.Find(ctx, spaceID, envID, StatusCollectionID, &items.Filter{Q: []string{fmt.Sprintf("extension == '%s'", extension)}}) if err != nil { diff --git a/pkg/extension/schema.go b/pkg/extension/schema.go new file mode 100644 index 0000000000000000000000000000000000000000..3e47823172d9ed67060cf60d798de3ba33d17d52 --- /dev/null +++ b/pkg/extension/schema.go @@ -0,0 +1,125 @@ +package extension + +import ( + "git.perx.ru/perxis/perxis-go/pkg/collections" + "git.perx.ru/perxis/perxis-go/pkg/references" + "git.perx.ru/perxis/perxis-go/pkg/schema" + "git.perx.ru/perxis/perxis-go/pkg/schema/field" + "git.perx.ru/perxis/perxis-go/pkg/schema/validate" + pb "git.perx.ru/perxis/perxis-go/proto/extensions" +) + +const ( + StatusCollectionID = "space_extensions" + StatusCollectionName = "Настройки/Расширения" + + ActionsCollectionID = "space_actions" + ActionsCollectionName = "Настройки/Действия" +) + +// NewActionsCollection - создает коллекцию для хранения действий расширений РІ пространстве +func NewActionsCollection(spaceID, envID string) *collections.Collection { + return &collections.Collection{ + ID: ActionsCollectionID, + SpaceID: spaceID, + EnvID: envID, + Name: ActionsCollectionName, + Schema: getActionsSchema(), + Hidden: true, + } +} + +func getActionsSchema() *schema.Schema { + enum := make([]validate.EnumOpt, len(pb.Action_Kind_name)) + for v, n := range pb.Action_Kind_name { + enum[v] = validate.EnumOpt{Name: n, Value: float64(v)} + } + + action := schema.New( + "extension", field.String(validate.Required()).SetTitle("Расширение").SetTextSearch(true), + "action", field.String(validate.Required()).SetTitle("Действия").SetTextSearch(true), + "name", field.String().SetTitle("Название").SetTextSearch(true), + "description", field.String().SetTitle("Описание"), + "icon", field.String().SetTitle("Название РёРєРѕРЅРєРё"), + "image", references.Field([]string{"media"}).SetTitle("Рзображение"). + WithUI(&field.UI{Widget: "Media"}), + "groups", field.Array(field.String().SetAdditionalValues()).SetTitle("Группы"). + SetDescription("Группировка действий РІ пользовательском интерфейсе"). + WithUI(&field.UI{Widget: "SelectList"}), + "kind", field.Number( + field.NumberFormatInt, + validate.Enum(enum...), + ).SetTitle("Р’РёРґ").WithUI(&field.UI{Widget: "Select"}), + "classes", field.Array(field.String().SetAdditionalValues()).SetTitle("Класс"). + WithUI(&field.UI{Widget: "SelectList"}). + SetDescription("Классы данных, Рє которым применимо действие"). + SetIndexed(true), + "refs", field.Array(references.Field(nil)).SetTitle("Ссылки"). + WithUI(&field.UI{Widget: "BlockList"}), + "params_collection", field.String().SetTitle("Коллекция параметров"). + SetDescription("ID коллекции для хранения параметров действия").WithUI(&field.UI{Widget: "Collection"}), + "navigation_action", field.Bool().SetTitle("Навигация"). + SetDescription("Выполняется переход пользователя РІ пользовательском интерфейсе"). + WithUI(&field.UI{Widget: "Checkbox"}), + "navigation_route", field.String().SetTitle("Путь РІ интерфейсе"), + ) + + // Includes + action.SetIncludes( + field.Include{Ref: "hoop_item_options", Optional: true}, + ) + + //UI + action.Field.UI.ListView = &field.View{Options: map[string]interface{}{ + "fields": []string{"action", "name", "extension", "kind"}, + "sort": []string{"action"}, + "page_size": 50, + }} + + action.Field.UI.Options["title"] = "name" + action.Field.UI.Options["subtitle"] = "action" + action.Field.UI.Options["collection_icon"] = "SettingOutlined/RocketOutlined" + + return action +} + +// NewStatusCollection - создает коллекцию для хранения статусов расширений РІ пространстве +func NewStatusCollection(spaceID, envID string) *collections.Collection { + sch := schema.New( + "id", field.String(validate.Required()).SetUnique(true).SetTitle("Расширение"), + "title", field.String().SetTitle("Название"), + "version", field.String().SetTitle("Установленная версия"), + "status_error", field.String().SetTitle("Ошибка"), + "status_msg", field.String().SetTitle("Сообщение"), + "extension_state", field.Number( + field.NumberFormatInt, + validate.Enum( + validate.EnumOpt{Name: StateInstalled.String(), Value: float64(StateInstalled)}, + validate.EnumOpt{Name: StateFail.String(), Value: float64(StateFail)}, + validate.EnumOpt{Name: StatePending.String(), Value: float64(StatePending)}, + validate.EnumOpt{Name: StateInProgress.String(), Value: float64(StateInProgress)}, + ), + ).SetTitle("Состояние").WithUI(&field.UI{Widget: "Select"}), + ) + + //UI + sch.Field.UI.ListView = &field.View{Options: map[string]interface{}{ + "fields": []string{"id", "title", "updated_at", "updated_by"}, + "sort": []string{"title"}, + "page_size": 50, + }} + + sch.Field.UI.Options["title"] = "title" + sch.Field.UI.Options["subtitle"] = "id" + sch.Field.UI.Options["key"] = "id" + sch.Field.UI.Options["collection_icon"] = "SettingOutlined/ApiOutlined" + + return &collections.Collection{ + ID: StatusCollectionID, + SpaceID: spaceID, + EnvID: envID, + Name: StatusCollectionName, + Schema: sch, + Hidden: true, + } +} diff --git a/pkg/extension/server.go b/pkg/extension/server.go index f9b603f50ffb6109f89551a7e3b92b5c355761d4..2d509d7620113ae7d04db9ee7900dc297cf347d2 100644 --- a/pkg/extension/server.go +++ b/pkg/extension/server.go @@ -2,85 +2,106 @@ package extension import ( "context" + "strings" "git.perx.ru/perxis/perxis-go/pkg/action" "git.perx.ru/perxis/perxis-go/pkg/errors" + "git.perx.ru/perxis/perxis-go/pkg/operation" pb "git.perx.ru/perxis/perxis-go/proto/extensions" + "google.golang.org/protobuf/proto" ) type Server struct { - services map[string]Extension - pb.UnimplementedExtensionServer + extensions map[string]Extension + operations operation.Service + pb.UnimplementedExtensionServiceServer } func NewServer(svc ...Extension) *Server { srv := &Server{ - services: make(map[string]Extension, len(svc)), + extensions: make(map[string]Extension, len(svc)), } for _, s := range svc { - srv.services[s.GetDescriptor().Extension] = s + srv.extensions[s.GetDescriptor().Extension] = s } + srv.operations = operation.NewDefaultService() return srv } -func getResult(ext string, err error) *RequestResult { - res := new(RequestResult) - res.Extension = ext - res.State = RequestOK - - if err != nil { - res.State = RequestError - res.Error = err.Error() - errs := errors.GetErrors(err) - if errs == nil { - errs = append(errs, err) - } - for _, e := range errs { - res.Msg += errors.GetDetail(e) + "\n" +func (s *Server) getExtensions(ctx context.Context, extensions []string) ([]Extension, error) { + var res []Extension + for _, ext := range extensions { + e, ok := s.extensions[ext] + if !ok { + return nil, errors.Wrap(ErrUnknownExtension, ext) } + + res = append(res, e) } - return res + return res, nil } -func (srv *Server) getResults(extensions []string, fn func(svc Extension) error) []*RequestResult { +func (s *Server) Install(ctx context.Context, req *InstallRequest) (*operation.Proto, error) { + exts, err := s.getExtensions(ctx, req.Extensions) + if err != nil { + return nil, err + } - var results []*RequestResult + desc := "Install extensions " + strings.Join(req.Extensions, ", ") + op, err := s.operations.Create(ctx, desc, + func(ctx context.Context) (proto.Message, error) { + for _, ext := range exts { + if err := ext.Install(ctx, req); err != nil { + return nil, errors.Wrap(err, ext.GetDescriptor().Extension) + } + } + return nil, nil + }) - for _, e := range extensions { - svc, ok := srv.services[e] - if !ok { - results = append(results, getResult(e, ErrUnknownExtension)) - continue - } + return op.Proto(), err +} - err := fn(svc) - results = append(results, getResult(e, err)) +func (s *Server) Uninstall(ctx context.Context, req *UninstallRequest) (*operation.Proto, error) { + exts, err := s.getExtensions(ctx, req.Extensions) + if err != nil { + return nil, err } - return results -} + desc := "Uninstall extensions " + strings.Join(req.Extensions, ", ") + op, err := s.operations.Create(ctx, desc, + func(ctx context.Context) (proto.Message, error) { + for _, ext := range exts { + if err := ext.Uninstall(ctx, req); err != nil { + return nil, errors.Wrap(err, ext.GetDescriptor().Extension) + } + } + return nil, nil + }) -func (srv *Server) Install(ctx context.Context, request *InstallRequest) (*InstallResponse, error) { - res := srv.getResults(request.Extensions, func(svc Extension) error { return svc.Install(ctx, request) }) - return &InstallResponse{Results: res}, nil + return op.Proto(), err } -func (srv *Server) Check(ctx context.Context, request *CheckRequest) (*CheckResponse, error) { - res := srv.getResults(request.Extensions, func(svc Extension) error { return svc.Check(ctx, request) }) - return &CheckResponse{Results: res}, nil -} +func (s *Server) Check(ctx context.Context, req *CheckRequest) (*operation.Proto, error) { + exts, err := s.getExtensions(ctx, req.Extensions) + if err != nil { + return nil, err + } -func (srv *Server) Uninstall(ctx context.Context, request *UninstallRequest) (*UninstallResponse, error) { - res := srv.getResults(request.Extensions, func(svc Extension) error { return svc.Uninstall(ctx, request) }) - return &UninstallResponse{Results: res}, nil -} + desc := "Check extensions " + strings.Join(req.Extensions, ", ") + op, err := s.operations.Create(ctx, desc, + func(ctx context.Context) (proto.Message, error) { + for _, ext := range exts { + if err := ext.Check(ctx, req); err != nil { + return nil, errors.Wrap(err, ext.GetDescriptor().Extension) + } + } + return nil, nil + }) -func (srv *Server) Update(ctx context.Context, request *UpdateRequest) (*UpdateResponse, error) { - res := srv.getResults(request.Extensions, func(svc Extension) error { return svc.Update(ctx, request) }) - return &UpdateResponse{Results: res}, nil + return op.Proto(), err } -func (srv *Server) Action(ctx context.Context, in *pb.ActionRequest) (*pb.ActionResponse, error) { +func (s *Server) Action(ctx context.Context, in *pb.ActionRequest) (*pb.ActionResponse, error) { actionURL, err := action.NewURL(in.Action) if err != nil { return nil, err @@ -93,7 +114,7 @@ func (srv *Server) Action(ctx context.Context, in *pb.ActionRequest) (*pb.Action return nil, errors.New("extension ID required") } - svc, ok := srv.services[ext] + svc, ok := s.extensions[in.Extension] if !ok { return nil, ErrUnknownExtension } @@ -113,9 +134,9 @@ func (srv *Server) Action(ctx context.Context, in *pb.ActionRequest) (*pb.Action return out, nil } -func (srv *Server) Start() error { +func (s *Server) Start() error { var errs []error - for _, svc := range srv.services { + for _, svc := range s.extensions { if r, ok := svc.(Runnable); ok { if err := r.Start(); err != nil { errs = append(errs, err) @@ -130,9 +151,9 @@ func (srv *Server) Start() error { return nil } -func (srv *Server) Stop() error { +func (s *Server) Stop() error { var errs []error - for _, svc := range srv.services { + for _, svc := range s.extensions { if r, ok := svc.(Runnable); ok { if err := r.Stop(); err != nil { errs = append(errs, err) diff --git a/pkg/extension/service/extension.go b/pkg/extension/service/extension.go index 6d9608ab6877acdc94bfcad0bd62e5fa21eef181..370e56529f1581db74f7dd9a2df4b7ba0b5138bf 100644 --- a/pkg/extension/service/extension.go +++ b/pkg/extension/service/extension.go @@ -147,10 +147,6 @@ func (s *Extension) Check(ctx context.Context, in *extension.CheckRequest) error return s.GetSetup(in.SpaceId, in.EnvId).Check(ctx) } -func (s *Extension) Update(ctx context.Context, in *extension.UpdateRequest) error { - return s.GetSetup(in.SpaceId, in.EnvId).WithForce(in.Force).Install(ctx) -} - func (s *Extension) Uninstall(ctx context.Context, in *extension.UninstallRequest) error { return s.GetSetup(in.SpaceId, in.EnvId).WithForce(in.Force).WithRemove(in.Remove).Uninstall(ctx) } diff --git a/pkg/extension/storage.go b/pkg/extension/storage.go new file mode 100644 index 0000000000000000000000000000000000000000..20e213b94be2f33ee261992c890f013a3e20ce0d --- /dev/null +++ b/pkg/extension/storage.go @@ -0,0 +1,82 @@ +package extension + +import ( + "context" + + pb "git.perx.ru/perxis/perxis-go/proto/extensions" + + "git.perx.ru/perxis/perxis-go/pkg/content" + "git.perx.ru/perxis/perxis-go/pkg/items" +) + +type Status = pb.GetExtensionsResponse_Status + +// Storage описывает интерфейс хранилища состояний расширений +type Storage interface { + GetStatus(ctx context.Context, spaceID, envID string, extension string) (*Status, error) + SetStatus(ctx context.Context, spaceID, envID string, extension string, status *Status) error + DeleteStatus(ctx context.Context, spaceID, envID string, extension string) error +} + +type storage struct { + content *content.Content +} + +func NewStorage(content *content.Content) Storage { + return &storage{content: content} +} + +// GetStatus возвращает состояние расширения РІ пространстве +func (s *storage) GetStatus(ctx context.Context, spaceID, envID string, extension string) (*Status, error) { + res, err := s.content.Items.Get(ctx, spaceID, envID, StatusCollectionID, extension) + + if err != nil { + return nil, err + } + + d := res.Data + + msg, _ := d["status_msg"].(string) + errmsg, _ := d["status_error"].(string) + ver, _ := d["version"].(string) + + return &Status{ + Msg: msg, + Error: errmsg, + Installed: true, + InstalledVersion: ver, + }, nil +} + +// SetStatus устанавливает состояние расширения РІ пространстве +func (s *storage) SetStatus(ctx context.Context, spaceID, envID string, extension string, status *Status) error { + item := &items.Item{ + ID: extension, + SpaceID: spaceID, + EnvID: envID, + CollectionID: StatusCollectionID, + } + + item.Set("version", status.InstalledVersion) + item.Set("status_msg", status.Msg) + item.Set("status_error", status.Error) + + i, _ := s.content.Items.Get(ctx, spaceID, envID, StatusCollectionID, extension) + if i == nil { + _, err := s.content.Items.Create(ctx, i) + return err + } + + return s.content.Items.Update(ctx, i) +} + +// DeleteStatus удаляет состояние расширения РІ пространстве (РїСЂРё удалении расширения) +func (s *storage) DeleteStatus(ctx context.Context, spaceID, envID string, extension string) error { + item := &items.Item{ + ID: extension, + SpaceID: spaceID, + EnvID: envID, + CollectionID: StatusCollectionID, + } + return s.content.Items.Delete(ctx, item) +} diff --git a/pkg/items/mocks/Decoder.go b/pkg/items/mocks/Decoder.go new file mode 100644 index 0000000000000000000000000000000000000000..b1dbd9aa526cf4fe4a62d29f652c3e2a513924b3 --- /dev/null +++ b/pkg/items/mocks/Decoder.go @@ -0,0 +1,41 @@ +// Code generated by mockery v2.33.3. DO NOT EDIT. + +package mocks + +import ( + items "git.perx.ru/perxis/perxis-go/pkg/items" + mock "github.com/stretchr/testify/mock" +) + +// Decoder is an autogenerated mock type for the Decoder type +type Decoder struct { + mock.Mock +} + +// Decode provides a mock function with given fields: value, item +func (_m *Decoder) Decode(value interface{}, item *items.Item) error { + ret := _m.Called(value, item) + + var r0 error + if rf, ok := ret.Get(0).(func(interface{}, *items.Item) error); ok { + r0 = rf(value, item) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// NewDecoder creates a new instance of Decoder. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewDecoder(t interface { + mock.TestingT + Cleanup(func()) +}) *Decoder { + mock := &Decoder{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/pkg/items/mocks/Encoder.go b/pkg/items/mocks/Encoder.go new file mode 100644 index 0000000000000000000000000000000000000000..c19203b2448930eb75e62195837a1b22cd9cfe42 --- /dev/null +++ b/pkg/items/mocks/Encoder.go @@ -0,0 +1,53 @@ +// Code generated by mockery v2.33.3. DO NOT EDIT. + +package mocks + +import ( + items "git.perx.ru/perxis/perxis-go/pkg/items" + mock "github.com/stretchr/testify/mock" +) + +// Encoder is an autogenerated mock type for the Encoder type +type Encoder struct { + mock.Mock +} + +// Encode provides a mock function with given fields: item +func (_m *Encoder) Encode(item *items.Item) (interface{}, error) { + ret := _m.Called(item) + + var r0 interface{} + var r1 error + if rf, ok := ret.Get(0).(func(*items.Item) (interface{}, error)); ok { + return rf(item) + } + if rf, ok := ret.Get(0).(func(*items.Item) interface{}); ok { + r0 = rf(item) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(interface{}) + } + } + + if rf, ok := ret.Get(1).(func(*items.Item) error); ok { + r1 = rf(item) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// NewEncoder creates a new instance of Encoder. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewEncoder(t interface { + mock.TestingT + Cleanup(func()) +}) *Encoder { + mock := &Encoder{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/pkg/operation/operation.go b/pkg/operation/operation.go index ae2731ec0d3c3908b14de7df7467578819c07e02..fdecd1ed4f65a80aec3b370c472b9c27255e50f7 100644 --- a/pkg/operation/operation.go +++ b/pkg/operation/operation.go @@ -20,6 +20,10 @@ const DefaultPollInterval = time.Second type Client = common.OperationServiceClient type Proto = common.Operation +func NewClient(conn *grpc.ClientConn) Client { + return common.NewOperationServiceClient(conn) +} + // Operation обертка над `common.Operation` для работы СЃ продолжительными операциями. // Позволяет получить результат операции, проверить статус, отменить операцию type Operation struct { @@ -27,9 +31,7 @@ type Operation struct { client Client retention time.Duration - cancelFunc func(ctx context.Context) - - newTimer func(time.Duration) (func() <-chan time.Time, func() bool) + cancelFunc func() } // New создает РЅРѕРІСѓСЋ операцию @@ -49,9 +51,8 @@ func Wrap(client Client, proto *Proto) *Operation { } return &Operation{ - proto: proto, - client: client, - newTimer: time.NewTimer(), + proto: proto, + client: client, } } @@ -113,6 +114,19 @@ func (o *Operation) SetCreatedAt(t time.Time) { o.proto.CreatedAt = timestamppb.New(t) } +// IsExpired возвращает true если операция просрочена +func (o *Operation) IsExpired() bool { + createdAt := o.CreatedAt() + if o.retention != 0 && !createdAt.IsZero() && time.Since(createdAt) > o.retention { + return true + } + return false +} + +func (o *Operation) SetModifiedAt(t time.Time) { + o.proto.ModifiedAt = timestamppb.New(t) +} + // SetResponse устанавливает результат операции func (o *Operation) SetResponse(m proto.Message) error { resp, err := anypb.New(m) @@ -126,14 +140,13 @@ func (o *Operation) SetResponse(m proto.Message) error { } // SetCancelFunc устанавливает функцию отмены операции -func (o *Operation) SetCancelFunc(cancelFunc func(ctx context.Context)) { +func (o *Operation) SetCancelFunc(cancelFunc func()) { o.cancelFunc = cancelFunc } // SetError устанавливает ошибку операции func (o *Operation) SetError(err error) { o.proto.Result = &common.Operation_Error{Error: err.Error()} - o.proto.Done = true } // Error возвращает ошибку операции @@ -144,20 +157,15 @@ func (o *Operation) Error() error { return nil } +func (o *Operation) SetDone(done bool) { + o.proto.Done = done +} + // SetRetention устанавливает время хранения операции func (o *Operation) SetRetention(retention time.Duration) { o.retention = retention } -// IsExpired возвращает true если операция просрочена -func (o *Operation) IsExpired() bool { - createdAt := o.CreatedAt() - if o.retention != 0 && !createdAt.IsZero() && time.Since(createdAt) > o.retention { - return true - } - return false -} - // Cancel отменяет операцию func (o *Operation) Cancel() error { req := &common.CancelOperationRequest{OperationId: o.Id()} @@ -182,15 +190,13 @@ func (o *Operation) Poll(ctx context.Context, opts ...grpc.CallOption) error { // Wait ожидает завершения операции func (o *Operation) Wait(ctx context.Context, opts ...grpc.CallOption) error { - return o.waitInterval(ctx, DefaultPollInterval, opts...) + return o.WaitInterval(ctx, DefaultPollInterval, opts...) } // waitInterval ожидает завершения операции СЃ указанным интервалом РѕРїСЂРѕСЃР° -func (o *Operation) waitInterval(ctx context.Context, pollInterval time.Duration, opts ...grpc.CallOption) error { +func (o *Operation) WaitInterval(ctx context.Context, pollInterval time.Duration, opts ...grpc.CallOption) error { for !o.IsDone() { - err := o.Poll(ctx, opts...) - - if err != nil { + if err := o.Poll(ctx, opts...); err != nil { return errors.Wrap(err, "operation poll fail") } @@ -199,11 +205,11 @@ func (o *Operation) waitInterval(ctx context.Context, pollInterval time.Duration } interval := pollInterval - wait, stop := o.newTimer(interval) + timer := time.NewTimer(interval) select { - case <-wait(): + case <-timer.C: case <-ctx.Done(): - stop() + timer.Stop() return errors.Wrap(ctx.Err(), "operation wait timeout") } } diff --git a/pkg/operation/operation_test.go b/pkg/operation/operation_test.go index e769214556d16b91b24974de90bef8ab20554a0c..3c42657bf206cdc5f1b638325c55fa18260c90c5 100644 --- a/pkg/operation/operation_test.go +++ b/pkg/operation/operation_test.go @@ -6,6 +6,10 @@ import ( "testing" "time" + "github.com/stretchr/testify/require" + + "git.perx.ru/perxis/perxis-go/proto/common" + "github.com/stretchr/testify/mock" "git.perx.ru/perxis/perxis-go/proto/mocks" @@ -30,21 +34,61 @@ func TestOperation(t *testing.T) { } func TestOperation_Wait(t *testing.T) { - count := 0 + var count int client := &mocks.OperationServiceClient{} - client.On("Get", mock.Anything, mock.Anything, mock.Anything).Run(func(args mock.Arguments) { - fmt.Println(count) + call := client.On("Get", mock.Anything, mock.Anything, mock.Anything) + call.Run(func(args mock.Arguments) { + r := args.Get(1).(*common.GetOperationRequest) + require.Equal(t, "test", r.OperationId) + p := &Proto{ + Id: "test", + Description: fmt.Sprintf("count=%d", count), + } + + if count == 10 { + p.Done = true + } + + call.Return(p, nil) count++ - }).Return(&Proto{Id: "test"}, nil) + }) + + t.Run("Ok", func(t *testing.T) { + count = 0 + op := Wrap(client, &Proto{ + Id: "test", + }) + + ctx, cancel := context.WithTimeout(context.Background(), time.Second) + defer cancel() - op := Wrap(client, &Proto{ - Id: "test", + err := op.WaitInterval(ctx, time.Millisecond*10) + assert.NoError(t, err) }) - assert.NotNil(t, op) - ctx, cancel := context.WithTimeout(context.Background(), time.Second) - defer cancel() + t.Run("Timeout", func(t *testing.T) { + count = 0 + op := Wrap(client, &Proto{ + Id: "test", + }) + + ctx, cancel := context.WithTimeout(context.Background(), time.Millisecond*30) + defer cancel() + + err := op.WaitInterval(ctx, time.Millisecond*10) + assert.ErrorIs(t, err, context.DeadlineExceeded) + }) - assert.Error(t, op.Wait(ctx)) - mock.AssertExpectationsForObjects(t, client) + t.Run("Cancel", func(t *testing.T) { + count = 0 + op := Wrap(client, &Proto{ + Id: "test", + }) + + ctx, cancel := context.WithTimeout(context.Background(), time.Second) + time.AfterFunc(time.Millisecond*30, cancel) + + err := op.WaitInterval(ctx, time.Millisecond*10) + assert.ErrorIs(t, err, context.Canceled) + }) } diff --git a/pkg/operation/service.go b/pkg/operation/service.go index 2bf8282899167d10cd7e21e319da9fcc75d692a1..93de883a3520dedc2450aa3b135cc705b6efbc88 100644 --- a/pkg/operation/service.go +++ b/pkg/operation/service.go @@ -5,7 +5,9 @@ import ( "sync" "time" + "git.perx.ru/perxis/perxis-go/pkg/auth" "git.perx.ru/perxis/perxis-go/pkg/errors" + "google.golang.org/protobuf/proto" ) const ( @@ -13,10 +15,22 @@ const ( DefaultCleanupInterval = time.Minute ) +// Service интерфейс сервиса для работы СЃ продолжительными операциями type Service interface { + + // Create создает РЅРѕРІСѓСЋ операцию Рё запускает ее РІ фоне + Create(ctx context.Context, desc string, fn func(ctx context.Context) (proto.Message, error)) (*Operation, error) + + // Set сохраняет операцию РІ хранилище Set(ctx context.Context, op *Operation) error + + // Get возвращает операцию РїРѕ ее идентификатору Get(ctx context.Context, id string) (*Operation, error) + + // Cancel отменяет операцию РїРѕ ее идентификатору Cancel(ctx context.Context, id string) (*Operation, error) + + // Cleanup удаляет просроченные операции Cleanup() } @@ -71,9 +85,8 @@ func (s *service) Set(_ context.Context, op *Operation) error { } s.mu.Lock() - defer s.mu.Unlock() - s.ops[op.Id()] = op + s.mu.Unlock() s.CleanupIfNeeded() return nil @@ -92,7 +105,7 @@ func (s *service) Get(_ context.Context, id string) (*Operation, error) { // Cancel отменяет операцию РїРѕ ее идентификатору func (s *service) Cancel(ctx context.Context, id string) (*Operation, error) { - s.mu.Lock() + s.mu.RLock() defer s.mu.Unlock() op, ok := s.ops[id] if !ok { @@ -100,8 +113,36 @@ func (s *service) Cancel(ctx context.Context, id string) (*Operation, error) { } if op.cancelFunc != nil { - op.cancelFunc(ctx) + op.cancelFunc() } return op, nil } + +func (s *service) Create(ctx context.Context, desc string, fn func(ctx context.Context) (proto.Message, error)) (*Operation, error) { + principal := auth.GetPrincipal(ctx) + op := New(&Proto{ + Description: desc, + CreatedBy: principal.GetID(ctx), + }) + + // Создаем новый контекст для фоновой операции без Deadline + opCtx, cancel := context.WithCancel(auth.WithPrincipal(context.Background(), principal)) + op.SetCancelFunc(cancel) + s.Set(opCtx, op) + + go func() { + response, err := fn(opCtx) + if err != nil { + op.SetError(err) + } + if response != nil { + op.SetResponse(response) + } + op.SetModifiedAt(time.Now()) + op.SetDone(true) + s.Set(opCtx, op) + }() + + return op, nil +} diff --git a/proto/clients/clients.pb.go b/proto/clients/clients.pb.go index 4c75762d6119e199e3113a4086a198f102ef09aa..a492dbad2bd2bfa0dd320e869f28f9b1ea5146fd 100644 --- a/proto/clients/clients.pb.go +++ b/proto/clients/clients.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.3 // source: clients/clients.proto package clients diff --git a/proto/clients/clients_grpc.pb.go b/proto/clients/clients_grpc.pb.go index 9b701db881a10acc1021de4e49cbf3b5ff4acd8a..f8fdf0cda264fa6e99aa20ecf495050dc1231fc7 100644 --- a/proto/clients/clients_grpc.pb.go +++ b/proto/clients/clients_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v4.23.4 +// - protoc v4.24.3 // source: clients/clients.proto package clients diff --git a/proto/collaborators/collaborators.pb.go b/proto/collaborators/collaborators.pb.go index 0e35a00e51a759c48db1aae8e683f04083e7c672..e07247b5dce02708390f23a576462dcb965b772d 100644 --- a/proto/collaborators/collaborators.pb.go +++ b/proto/collaborators/collaborators.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.29.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: collaborators/collaborators.proto package collaborators diff --git a/proto/collaborators/collaborators_grpc.pb.go b/proto/collaborators/collaborators_grpc.pb.go index 71a9d8a059f7851368d6a4467e2962657ef648a4..47ff522c1b57c72665fbca4741f698e6bb97b80f 100644 --- a/proto/collaborators/collaborators_grpc.pb.go +++ b/proto/collaborators/collaborators_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.21.12 +// - protoc v4.24.3 // source: collaborators/collaborators.proto package collaborators diff --git a/proto/collections/collections.pb.go b/proto/collections/collections.pb.go index 71712728599d799f2bbeb975196a8fc75b77e042..225e67abf5eb63d4fd92fbe1593ebb6d645f6280 100644 --- a/proto/collections/collections.pb.go +++ b/proto/collections/collections.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.3 // source: collections/collections.proto package collections diff --git a/proto/collections/collections_grpc.pb.go b/proto/collections/collections_grpc.pb.go index eef27369eed0b0501ee45365e6195e4c52ea85c5..f0ccc6b2725c15048c8bfa812a5ea6f42aa8e2e4 100644 --- a/proto/collections/collections_grpc.pb.go +++ b/proto/collections/collections_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v4.23.4 +// - protoc v4.24.3 // source: collections/collections.proto package collections diff --git a/proto/common/common.pb.go b/proto/common/common.pb.go index c0c2391032978279a1e7fa3c46d5bc1d9bb11eb6..770194bc62fe07eb05880a41f5ecc0e8d34c2e69 100644 --- a/proto/common/common.pb.go +++ b/proto/common/common.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.29.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: common/common.proto package common diff --git a/proto/delivery/delivery.pb.go b/proto/delivery/delivery.pb.go index 142adddfaed2fc36900ff4e056b8df6396ec83df..a8673b3e6f8ded57f397a25ca78ae7538d3351ee 100644 --- a/proto/delivery/delivery.pb.go +++ b/proto/delivery/delivery.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.29.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: delivery/delivery.proto package delivery diff --git a/proto/delivery/delivery_grpc.pb.go b/proto/delivery/delivery_grpc.pb.go index 9be07eae1c2e3938c618692fd0a7a80ba68ee432..3840ca0fc32236f38b8c92eac59c56994996be23 100644 --- a/proto/delivery/delivery_grpc.pb.go +++ b/proto/delivery/delivery_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.21.12 +// - protoc v4.24.3 // source: delivery/delivery.proto package delivery diff --git a/proto/environments/environments.pb.go b/proto/environments/environments.pb.go index cec837936e68784f4edc1615f8139194fb1e7027..8dd2d620cd51e0df031c738d8409585481974062 100644 --- a/proto/environments/environments.pb.go +++ b/proto/environments/environments.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.3 // source: environments/environments.proto package environments diff --git a/proto/environments/environments_grpc.pb.go b/proto/environments/environments_grpc.pb.go index c71798565954f2f7cfc10b170fa34e31c1ae6abe..63268a0ba508b1e00b189a7588573fd12c47c0fb 100644 --- a/proto/environments/environments_grpc.pb.go +++ b/proto/environments/environments_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v4.23.4 +// - protoc v4.24.3 // source: environments/environments.proto package environments diff --git a/proto/extensions/extension.pb.go b/proto/extensions/extension.pb.go index a74f1cea28680560beea1a8e6a08db8c70342ecf..fb16b2260731d272b9c53e7d685af14f9734a67a 100644 --- a/proto/extensions/extension.pb.go +++ b/proto/extensions/extension.pb.go @@ -11,7 +11,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.3 // source: extensions/extension.proto package extensions @@ -96,165 +96,6 @@ func (Target) EnumDescriptor() ([]byte, []int) { return file_extensions_extension_proto_rawDescGZIP(), []int{0} } -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[1].Descriptor() -} - -func (ExtensionRequestResult_State) Type() protoreflect.EnumType { - return &file_extensions_extension_proto_enumTypes[1] -} - -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[2].Descriptor() -} - -func (ActionResponse_State) Type() protoreflect.EnumType { - return &file_extensions_extension_proto_enumTypes[2] -} - -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} -} - -type ActionResponse_Format int32 - -const ( - ActionResponse_PLAIN ActionResponse_Format = 0 - ActionResponse_HTML ActionResponse_Format = 1 - ActionResponse_MARKDOWN ActionResponse_Format = 2 -) - -// Enum value maps for ActionResponse_Format. -var ( - ActionResponse_Format_name = map[int32]string{ - 0: "PLAIN", - 1: "HTML", - 2: "MARKDOWN", - } - ActionResponse_Format_value = map[string]int32{ - "PLAIN": 0, - "HTML": 1, - "MARKDOWN": 2, - } -) - -func (x ActionResponse_Format) Enum() *ActionResponse_Format { - p := new(ActionResponse_Format) - *p = x - return p -} - -func (x ActionResponse_Format) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (ActionResponse_Format) Descriptor() protoreflect.EnumDescriptor { - return file_extensions_extension_proto_enumTypes[3].Descriptor() -} - -func (ActionResponse_Format) Type() protoreflect.EnumType { - return &file_extensions_extension_proto_enumTypes[3] -} - -func (x ActionResponse_Format) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use ActionResponse_Format.Descriptor instead. -func (ActionResponse_Format) EnumDescriptor() ([]byte, []int) { - return file_extensions_extension_proto_rawDescGZIP(), []int{10, 1} -} - // Kind описывает c какой сущность системы связано действие Рё что требуется передать РІ качестве параметров // Рнтерфейс загружает пользовательские действия Рё отображает РёС… РІ интерфейсе РІ зависимости РѕС‚ ActionType. type Action_Kind int32 @@ -311,823 +152,20 @@ func (x Action_Kind) String() string { } func (Action_Kind) Descriptor() protoreflect.EnumDescriptor { - return file_extensions_extension_proto_enumTypes[4].Descriptor() -} - -func (Action_Kind) Type() protoreflect.EnumType { - return &file_extensions_extension_proto_enumTypes[4] -} - -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"` // Состояние расширение - Target Target `protobuf:"varint,10010,opt,name=target,proto3,enum=extensions.Target" json:"target,omitempty"` // Как открывать результат выполнения действия РІ пользовательском интерфейсе (переопределяет значение РІ Action) - Format ActionResponse_Format `protobuf:"varint,10050,opt,name=format,proto3,enum=extensions.ActionResponse_Format" json:"format,omitempty"` // Формат полей msg Рё error - Msg string `protobuf:"bytes,10100,opt,name=msg,proto3" json:"msg,omitempty"` // Сообщение Рѕ выполнении действия - Title string `protobuf:"bytes,10110,opt,name=title,proto3" json:"title,omitempty"` // Текст для отображения РІ интерфейсе - Image string `protobuf:"bytes,10140,opt,name=image,proto3" json:"image,omitempty"` // Рзображение для отображения РІ интерфейсе (шапке РѕРєРЅР°) - Error string `protobuf:"bytes,10200,opt,name=error,proto3" json:"error,omitempty"` // Сообщение РІ случае ошибки (дополнительно Рє msg) - 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) GetTarget() Target { - if x != nil { - return x.Target - } - return Target_DEFAULT -} - -func (x *ActionResponse) GetFormat() ActionResponse_Format { - if x != nil { - return x.Format - } - return ActionResponse_PLAIN -} - -func (x *ActionResponse) GetMsg() string { - if x != nil { - return x.Msg - } - return "" -} - -func (x *ActionResponse) GetTitle() string { - if x != nil { - return x.Title - } - return "" -} - -func (x *ActionResponse) GetImage() string { - if x != nil { - return x.Image - } - 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 + return file_extensions_extension_proto_enumTypes[1].Descriptor() } -func (x *ActionResponse) GetMetadata() map[string]string { - if x != nil { - return x.Metadata - } - return nil +func (Action_Kind) Type() protoreflect.EnumType { + return &file_extensions_extension_proto_enumTypes[1] } -func (x *ActionResponse) GetRefs() []*references.Reference { - if x != nil { - return x.Refs - } - return nil +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{0, 0} } // * @@ -1222,7 +260,7 @@ type Action struct { func (x *Action) Reset() { *x = Action{} if protoimpl.UnsafeEnabled { - mi := &file_extensions_extension_proto_msgTypes[11] + mi := &file_extensions_extension_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1235,7 +273,7 @@ func (x *Action) String() string { func (*Action) ProtoMessage() {} func (x *Action) ProtoReflect() protoreflect.Message { - mi := &file_extensions_extension_proto_msgTypes[11] + mi := &file_extensions_extension_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1248,7 +286,7 @@ func (x *Action) ProtoReflect() protoreflect.Message { // Deprecated: Use Action.ProtoReflect.Descriptor instead. func (*Action) Descriptor() ([]byte, []int) { - return file_extensions_extension_proto_rawDescGZIP(), []int{11} + return file_extensions_extension_proto_rawDescGZIP(), []int{0} } func (x *Action) GetExtension() string { @@ -1377,6 +415,139 @@ func (x *Action) GetConfirm() bool { return false } +// 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[1] + 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[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 ActionRequest.ProtoReflect.Descriptor instead. +func (*ActionRequest) Descriptor() ([]byte, []int) { + return file_extensions_extension_proto_rawDescGZIP(), []int{1} +} + +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 +} + var File_extensions_extension_proto protoreflect.FileDescriptor var file_extensions_extension_proto_rawDesc = []byte{ @@ -1384,230 +555,99 @@ var file_extensions_extension_proto_rawDesc = []byte{ 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, 0xed, 0x04, 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, 0x2b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x18, 0x9a, 0x4e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x65, 0x78, 0x74, 0x65, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xab, 0x06, 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, 0x2b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x18, 0xfe, 0x4e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, - 0xc2, 0x4e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 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, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x12, 0x11, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0xf4, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x12, 0x15, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0xfe, 0x4e, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x15, 0x0a, 0x05, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x18, 0x9c, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, - 0x67, 0x65, 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, - 0x2b, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, 0x41, - 0x49, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x54, 0x4d, 0x4c, 0x10, 0x01, 0x12, 0x0c, - 0x0a, 0x08, 0x4d, 0x41, 0x52, 0x4b, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x22, 0xab, 0x06, 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, - 0x2b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0xfe, 0x4e, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x12, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x06, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x88, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, - 0x61, 0x72, 0x65, 0x6e, 0x74, 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, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x17, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x18, + 0x88, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 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, 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, 0x12, 0x19, 0x0a, 0x07, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x75, 0x6e, 0x18, 0x98, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x61, 0x75, 0x74, 0x6f, 0x72, 0x75, 0x6e, 0x12, 0x19, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x72, 0x6d, 0x18, 0xa2, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x72, 0x6d, 0x22, 0x95, 0x01, 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, 0x12, 0x0e, 0x0a, 0x09, 0x4d, 0x41, 0x49, 0x4e, 0x5f, 0x4d, 0x45, 0x4e, 0x55, - 0x10, 0x90, 0x4e, 0x12, 0x15, 0x0a, 0x10, 0x4d, 0x41, 0x49, 0x4e, 0x5f, 0x4d, 0x45, 0x4e, 0x55, - 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x10, 0x9a, 0x4e, 0x2a, 0x67, 0x0a, 0x06, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4d, 0x4f, 0x44, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, - 0x57, 0x49, 0x44, 0x45, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x41, 0x49, 0x4e, 0x10, 0x04, - 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x52, 0x41, 0x57, 0x45, 0x52, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, - 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x09, - 0x0a, 0x05, 0x42, 0x4c, 0x41, 0x4e, 0x4b, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, - 0x45, 0x10, 0x64, 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, + 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, 0x12, 0x19, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x75, 0x6e, + 0x18, 0x98, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, 0x75, 0x74, 0x6f, 0x72, 0x75, 0x6e, + 0x12, 0x19, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x18, 0xa2, 0x52, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x22, 0x95, 0x01, 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, 0x12, 0x0e, 0x0a, 0x09, + 0x4d, 0x41, 0x49, 0x4e, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x10, 0x90, 0x4e, 0x12, 0x15, 0x0a, 0x10, + 0x4d, 0x41, 0x49, 0x4e, 0x5f, 0x4d, 0x45, 0x4e, 0x55, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, + 0x10, 0x9a, 0x4e, 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, 0x2a, 0x67, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, + 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x4d, 0x4f, 0x44, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x57, 0x49, 0x44, 0x45, 0x10, + 0x02, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x41, 0x49, 0x4e, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x44, + 0x52, 0x41, 0x57, 0x45, 0x52, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x4e, 0x4f, 0x54, 0x49, 0x46, + 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x4c, 0x41, + 0x4e, 0x4b, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x64, 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 ( @@ -1622,65 +662,30 @@ func file_extensions_extension_proto_rawDescGZIP() []byte { return file_extensions_extension_proto_rawDescData } -var file_extensions_extension_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_extensions_extension_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_extensions_extension_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_extensions_extension_proto_msgTypes = make([]protoimpl.MessageInfo, 3) var file_extensions_extension_proto_goTypes = []interface{}{ - (Target)(0), // 0: extensions.Target - (ExtensionRequestResult_State)(0), // 1: extensions.ExtensionRequestResult.State - (ActionResponse_State)(0), // 2: extensions.ActionResponse.State - (ActionResponse_Format)(0), // 3: extensions.ActionResponse.Format - (Action_Kind)(0), // 4: extensions.Action.Kind - (*InstallRequest)(nil), // 5: extensions.InstallRequest - (*ExtensionRequestResult)(nil), // 6: extensions.ExtensionRequestResult - (*InstallResponse)(nil), // 7: extensions.InstallResponse - (*UninstallRequest)(nil), // 8: extensions.UninstallRequest - (*UninstallResponse)(nil), // 9: extensions.UninstallResponse - (*UpdateRequest)(nil), // 10: extensions.UpdateRequest - (*UpdateResponse)(nil), // 11: extensions.UpdateResponse - (*CheckRequest)(nil), // 12: extensions.CheckRequest - (*CheckResponse)(nil), // 13: extensions.CheckResponse - (*ActionRequest)(nil), // 14: extensions.ActionRequest - (*ActionResponse)(nil), // 15: extensions.ActionResponse - (*Action)(nil), // 16: extensions.Action - nil, // 17: extensions.ActionRequest.MetadataEntry - nil, // 18: extensions.ActionResponse.MetadataEntry - (*references.Reference)(nil), // 19: content.references.Reference + (Target)(0), // 0: extensions.Target + (Action_Kind)(0), // 1: extensions.Action.Kind + (*Action)(nil), // 2: extensions.Action + (*ActionRequest)(nil), // 3: extensions.ActionRequest + nil, // 4: extensions.ActionRequest.MetadataEntry + (*references.Reference)(nil), // 5: content.references.Reference } var file_extensions_extension_proto_depIdxs = []int32{ - 1, // 0: extensions.ExtensionRequestResult.state:type_name -> extensions.ExtensionRequestResult.State - 6, // 1: extensions.InstallResponse.results:type_name -> extensions.ExtensionRequestResult - 6, // 2: extensions.UninstallResponse.results:type_name -> extensions.ExtensionRequestResult - 6, // 3: extensions.UpdateResponse.results:type_name -> extensions.ExtensionRequestResult - 6, // 4: extensions.CheckResponse.results:type_name -> extensions.ExtensionRequestResult - 17, // 5: extensions.ActionRequest.metadata:type_name -> extensions.ActionRequest.MetadataEntry - 19, // 6: extensions.ActionRequest.refs:type_name -> content.references.Reference - 19, // 7: extensions.ActionRequest.params:type_name -> content.references.Reference - 2, // 8: extensions.ActionResponse.state:type_name -> extensions.ActionResponse.State - 0, // 9: extensions.ActionResponse.target:type_name -> extensions.Target - 3, // 10: extensions.ActionResponse.format:type_name -> extensions.ActionResponse.Format - 16, // 11: extensions.ActionResponse.next:type_name -> extensions.Action - 18, // 12: extensions.ActionResponse.metadata:type_name -> extensions.ActionResponse.MetadataEntry - 19, // 13: extensions.ActionResponse.refs:type_name -> content.references.Reference - 0, // 14: extensions.Action.target:type_name -> extensions.Target - 19, // 15: extensions.Action.image:type_name -> content.references.Reference - 4, // 16: extensions.Action.kind:type_name -> extensions.Action.Kind - 19, // 17: extensions.Action.refs:type_name -> content.references.Reference - 14, // 18: extensions.Action.request:type_name -> extensions.ActionRequest - 5, // 19: extensions.Extension.Install:input_type -> extensions.InstallRequest - 12, // 20: extensions.Extension.Check:input_type -> extensions.CheckRequest - 10, // 21: extensions.Extension.Update:input_type -> extensions.UpdateRequest - 8, // 22: extensions.Extension.Uninstall:input_type -> extensions.UninstallRequest - 14, // 23: extensions.Extension.Action:input_type -> extensions.ActionRequest - 7, // 24: extensions.Extension.Install:output_type -> extensions.InstallResponse - 13, // 25: extensions.Extension.Check:output_type -> extensions.CheckResponse - 11, // 26: extensions.Extension.Update:output_type -> extensions.UpdateResponse - 9, // 27: extensions.Extension.Uninstall:output_type -> extensions.UninstallResponse - 15, // 28: extensions.Extension.Action:output_type -> extensions.ActionResponse - 24, // [24:29] is the sub-list for method output_type - 19, // [19:24] is the sub-list for method input_type - 19, // [19:19] is the sub-list for extension type_name - 19, // [19:19] is the sub-list for extension extendee - 0, // [0:19] is the sub-list for field type_name + 0, // 0: extensions.Action.target:type_name -> extensions.Target + 5, // 1: extensions.Action.image:type_name -> content.references.Reference + 1, // 2: extensions.Action.kind:type_name -> extensions.Action.Kind + 5, // 3: extensions.Action.refs:type_name -> content.references.Reference + 3, // 4: extensions.Action.request:type_name -> extensions.ActionRequest + 4, // 5: extensions.ActionRequest.metadata:type_name -> extensions.ActionRequest.MetadataEntry + 5, // 6: extensions.ActionRequest.refs:type_name -> content.references.Reference + 5, // 7: extensions.ActionRequest.params:type_name -> content.references.Reference + 8, // [8:8] is the sub-list for method output_type + 8, // [8:8] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name } func init() { file_extensions_extension_proto_init() } @@ -1690,7 +695,7 @@ func file_extensions_extension_proto_init() { } if !protoimpl.UnsafeEnabled { file_extensions_extension_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InstallRequest); i { + switch v := v.(*Action); i { case 0: return &v.state case 1: @@ -1702,102 +707,6 @@ func file_extensions_extension_proto_init() { } } 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 @@ -1809,40 +718,16 @@ func file_extensions_extension_proto_init() { 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: 5, - NumMessages: 14, + NumEnums: 2, + NumMessages: 3, NumExtensions: 0, - NumServices: 1, + NumServices: 0, }, GoTypes: file_extensions_extension_proto_goTypes, DependencyIndexes: file_extensions_extension_proto_depIdxs, diff --git a/proto/extensions/extension_grpc.pb.go b/proto/extensions/extension_grpc.pb.go deleted file mode 100644 index 784527d37db21be2337aa3406ef3dd83eb87e940..0000000000000000000000000000000000000000 --- a/proto/extensions/extension_grpc.pb.go +++ /dev/null @@ -1,319 +0,0 @@ -//* -//# Расширения (Extensions) -// -//Расширения представляют СЃРѕР±РѕР№ отдельные сервисы предоставляющие дополнительные возможности для пользователей. Сервис -//может предоставлять несколько расширений одновременно. -// -//Для координации взаимодействия используется сервис менеджер расширений (Extension Manager). Для предоставления СЃРІРѕРёС… функций РІ систему сервис должен -//зарегистрироваться РЅР° контроллере. -// - -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.3.0 -// - protoc v4.23.4 -// source: extensions/extension.proto - -package extensions - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 - -const ( - Extension_Install_FullMethodName = "/extensions.Extension/Install" - Extension_Check_FullMethodName = "/extensions.Extension/Check" - Extension_Update_FullMethodName = "/extensions.Extension/Update" - Extension_Uninstall_FullMethodName = "/extensions.Extension/Uninstall" - Extension_Action_FullMethodName = "/extensions.Extension/Action" -) - -// ExtensionClient is the client API for Extension service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type ExtensionClient interface { - // Для установки расширения выполняется запрос Рє сервису СЃ указанием расширений которые должны быть установлены. Если - // расширение СѓР¶Рµ установлено процесс возвращает ошибку. - Install(ctx context.Context, in *InstallRequest, opts ...grpc.CallOption) (*InstallResponse, error) - // РњРѕР¶РЅРѕ запросить проверку статуса установки для расширения. РџСЂРё этом расширение проверяет наличие необходимых данных РІ - // пространстве или наличие РЅРѕРІРѕР№ версии расширения Рё сообщает РѕР± этом. Никаких действий СЃ данными пространства РЅРµ - // производится. - Check(ctx context.Context, in *CheckRequest, opts ...grpc.CallOption) (*CheckResponse, error) - // Сервис выполняет необходимые действия СЃ данными Рё миграции для соответствия РЅСѓР¶РЅРѕР№ версии расширения. - // Если расширение РЅРµ установлено процесс обновления возвращает ошибку. - Update(ctx context.Context, in *UpdateRequest, opts ...grpc.CallOption) (*UpdateResponse, error) - // Удаление расширения РёР· пространства. - Uninstall(ctx context.Context, in *UninstallRequest, opts ...grpc.CallOption) (*UninstallResponse, error) - // Пользовательские Действия (Actions) - // - // Пользовательские действия позволяют расширить функционал пользовательского интерфейса путем - // добавления РІ интерфейс элементов взаимодействуя СЃ которыми пользователь может вызывать реакцию РЅР° - // сервере или переход РІ интерфейсе. - // - // Пользовательские действия добавляются РїСЂРё установке расширений РІ системную коллекции `System/Actions`. - // Коллекция создается автоматически менеджером расширений. РџСЂРё установке так Р¶Рµ отображается меню `Действия` - // доступное для всех пользователей. - // - // Примеры пользовательских действий: - // - "Собрать сайт" - добавляется Perxis.Web для СЃР±РѕСЂРєРё сайта, доступна пользователю через меню, - // параметры space_id, env_id. РџСЂРё вызове выполняется запрос РЅР° сервер ProcessAction. - // - "Посмотреть задачи" - добавляется Tasks для перехода РЅР° коллекцию задач. Отображается РІ меню, - // параметры space_id, env_id. - // - // Приложения так Р¶Рµ РјРѕРіСѓС‚ использовать действия для вызова обработки РІ РґСЂСѓРіРёС… приложениях РїСЂРё - // необходимости. - Action(ctx context.Context, in *ActionRequest, opts ...grpc.CallOption) (*ActionResponse, error) -} - -type extensionClient struct { - cc grpc.ClientConnInterface -} - -func NewExtensionClient(cc grpc.ClientConnInterface) ExtensionClient { - return &extensionClient{cc} -} - -func (c *extensionClient) Install(ctx context.Context, in *InstallRequest, opts ...grpc.CallOption) (*InstallResponse, error) { - out := new(InstallResponse) - err := c.cc.Invoke(ctx, Extension_Install_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *extensionClient) Check(ctx context.Context, in *CheckRequest, opts ...grpc.CallOption) (*CheckResponse, error) { - out := new(CheckResponse) - err := c.cc.Invoke(ctx, Extension_Check_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *extensionClient) Update(ctx context.Context, in *UpdateRequest, opts ...grpc.CallOption) (*UpdateResponse, error) { - out := new(UpdateResponse) - err := c.cc.Invoke(ctx, Extension_Update_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *extensionClient) Uninstall(ctx context.Context, in *UninstallRequest, opts ...grpc.CallOption) (*UninstallResponse, error) { - out := new(UninstallResponse) - err := c.cc.Invoke(ctx, Extension_Uninstall_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *extensionClient) Action(ctx context.Context, in *ActionRequest, opts ...grpc.CallOption) (*ActionResponse, error) { - out := new(ActionResponse) - err := c.cc.Invoke(ctx, Extension_Action_FullMethodName, in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// ExtensionServer is the server API for Extension service. -// All implementations must embed UnimplementedExtensionServer -// for forward compatibility -type ExtensionServer interface { - // Для установки расширения выполняется запрос Рє сервису СЃ указанием расширений которые должны быть установлены. Если - // расширение СѓР¶Рµ установлено процесс возвращает ошибку. - Install(context.Context, *InstallRequest) (*InstallResponse, error) - // РњРѕР¶РЅРѕ запросить проверку статуса установки для расширения. РџСЂРё этом расширение проверяет наличие необходимых данных РІ - // пространстве или наличие РЅРѕРІРѕР№ версии расширения Рё сообщает РѕР± этом. Никаких действий СЃ данными пространства РЅРµ - // производится. - Check(context.Context, *CheckRequest) (*CheckResponse, error) - // Сервис выполняет необходимые действия СЃ данными Рё миграции для соответствия РЅСѓР¶РЅРѕР№ версии расширения. - // Если расширение РЅРµ установлено процесс обновления возвращает ошибку. - Update(context.Context, *UpdateRequest) (*UpdateResponse, error) - // Удаление расширения РёР· пространства. - Uninstall(context.Context, *UninstallRequest) (*UninstallResponse, error) - // Пользовательские Действия (Actions) - // - // Пользовательские действия позволяют расширить функционал пользовательского интерфейса путем - // добавления РІ интерфейс элементов взаимодействуя СЃ которыми пользователь может вызывать реакцию РЅР° - // сервере или переход РІ интерфейсе. - // - // Пользовательские действия добавляются РїСЂРё установке расширений РІ системную коллекции `System/Actions`. - // Коллекция создается автоматически менеджером расширений. РџСЂРё установке так Р¶Рµ отображается меню `Действия` - // доступное для всех пользователей. - // - // Примеры пользовательских действий: - // - "Собрать сайт" - добавляется Perxis.Web для СЃР±РѕСЂРєРё сайта, доступна пользователю через меню, - // параметры space_id, env_id. РџСЂРё вызове выполняется запрос РЅР° сервер ProcessAction. - // - "Посмотреть задачи" - добавляется Tasks для перехода РЅР° коллекцию задач. Отображается РІ меню, - // параметры space_id, env_id. - // - // Приложения так Р¶Рµ РјРѕРіСѓС‚ использовать действия для вызова обработки РІ РґСЂСѓРіРёС… приложениях РїСЂРё - // необходимости. - Action(context.Context, *ActionRequest) (*ActionResponse, error) - mustEmbedUnimplementedExtensionServer() -} - -// UnimplementedExtensionServer must be embedded to have forward compatible implementations. -type UnimplementedExtensionServer struct { -} - -func (UnimplementedExtensionServer) Install(context.Context, *InstallRequest) (*InstallResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Install not implemented") -} -func (UnimplementedExtensionServer) Check(context.Context, *CheckRequest) (*CheckResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Check not implemented") -} -func (UnimplementedExtensionServer) Update(context.Context, *UpdateRequest) (*UpdateResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Update not implemented") -} -func (UnimplementedExtensionServer) Uninstall(context.Context, *UninstallRequest) (*UninstallResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Uninstall not implemented") -} -func (UnimplementedExtensionServer) Action(context.Context, *ActionRequest) (*ActionResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Action not implemented") -} -func (UnimplementedExtensionServer) mustEmbedUnimplementedExtensionServer() {} - -// UnsafeExtensionServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to ExtensionServer will -// result in compilation errors. -type UnsafeExtensionServer interface { - mustEmbedUnimplementedExtensionServer() -} - -func RegisterExtensionServer(s grpc.ServiceRegistrar, srv ExtensionServer) { - s.RegisterService(&Extension_ServiceDesc, srv) -} - -func _Extension_Install_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(InstallRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ExtensionServer).Install(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: Extension_Install_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ExtensionServer).Install(ctx, req.(*InstallRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Extension_Check_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CheckRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ExtensionServer).Check(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: Extension_Check_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ExtensionServer).Check(ctx, req.(*CheckRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Extension_Update_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UpdateRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ExtensionServer).Update(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: Extension_Update_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ExtensionServer).Update(ctx, req.(*UpdateRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Extension_Uninstall_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UninstallRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ExtensionServer).Uninstall(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: Extension_Uninstall_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ExtensionServer).Uninstall(ctx, req.(*UninstallRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _Extension_Action_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ActionRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ExtensionServer).Action(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: Extension_Action_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ExtensionServer).Action(ctx, req.(*ActionRequest)) - } - return interceptor(ctx, in, info, handler) -} - -// Extension_ServiceDesc is the grpc.ServiceDesc for Extension service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var Extension_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "extensions.Extension", - HandlerType: (*ExtensionServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "Install", - Handler: _Extension_Install_Handler, - }, - { - MethodName: "Check", - Handler: _Extension_Check_Handler, - }, - { - MethodName: "Update", - Handler: _Extension_Update_Handler, - }, - { - MethodName: "Uninstall", - Handler: _Extension_Uninstall_Handler, - }, - { - MethodName: "Action", - Handler: _Extension_Action_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "extensions/extension.proto", -} diff --git a/proto/extensions/extension_service.pb.go b/proto/extensions/extension_service.pb.go index f4d0b11103c6cafa6097cb2cd7074b88e6467aed..f8f4cd445770862142c6c7d30463fe26189ec1d0 100644 --- a/proto/extensions/extension_service.pb.go +++ b/proto/extensions/extension_service.pb.go @@ -84,7 +84,7 @@ func (x ActionResponse_State) Number() protoreflect.EnumNumber { // Deprecated: Use ActionResponse_State.Descriptor instead. func (ActionResponse_State) EnumDescriptor() ([]byte, []int) { - return file_extensions_extension_service_proto_rawDescGZIP(), []int{4, 0} + return file_extensions_extension_service_proto_rawDescGZIP(), []int{3, 0} } type ActionResponse_Format int32 @@ -133,7 +133,7 @@ func (x ActionResponse_Format) Number() protoreflect.EnumNumber { // Deprecated: Use ActionResponse_Format.Descriptor instead. func (ActionResponse_Format) EnumDescriptor() ([]byte, []int) { - return file_extensions_extension_service_proto_rawDescGZIP(), []int{4, 1} + return file_extensions_extension_service_proto_rawDescGZIP(), []int{3, 1} } // InstallRequest - запрос РЅР° установку расширений @@ -216,56 +216,6 @@ func (x *InstallRequest) GetUpdate() bool { return false } -// ExtensionList - возвращает СЃРїРёСЃРѕРє состояний расширений РІ результате выполнения операции `common.Operation` -// (СЃРј. `common.OperationService`) -// Р’ методах Install, Uninstall, Check возвращается СЃРїРёСЃРѕРє состояний расширений РІ результате выполнения операции -type ExtensionList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Results []*Extension `protobuf:"bytes,10000,rep,name=results,proto3" json:"results,omitempty"` // РЎРїРёСЃРѕРє состояний расширений -} - -func (x *ExtensionList) Reset() { - *x = ExtensionList{} - if protoimpl.UnsafeEnabled { - mi := &file_extensions_extension_service_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ExtensionList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ExtensionList) ProtoMessage() {} - -func (x *ExtensionList) ProtoReflect() protoreflect.Message { - mi := &file_extensions_extension_service_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 ExtensionList.ProtoReflect.Descriptor instead. -func (*ExtensionList) Descriptor() ([]byte, []int) { - return file_extensions_extension_service_proto_rawDescGZIP(), []int{1} -} - -func (x *ExtensionList) GetResults() []*Extension { - if x != nil { - return x.Results - } - return nil -} - // UninstallRequest - запрос РЅР° удаление расширений type UninstallRequest struct { state protoimpl.MessageState @@ -282,7 +232,7 @@ type UninstallRequest struct { func (x *UninstallRequest) Reset() { *x = UninstallRequest{} if protoimpl.UnsafeEnabled { - mi := &file_extensions_extension_service_proto_msgTypes[2] + mi := &file_extensions_extension_service_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -295,7 +245,7 @@ func (x *UninstallRequest) String() string { func (*UninstallRequest) ProtoMessage() {} func (x *UninstallRequest) ProtoReflect() protoreflect.Message { - mi := &file_extensions_extension_service_proto_msgTypes[2] + mi := &file_extensions_extension_service_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -308,7 +258,7 @@ func (x *UninstallRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UninstallRequest.ProtoReflect.Descriptor instead. func (*UninstallRequest) Descriptor() ([]byte, []int) { - return file_extensions_extension_service_proto_rawDescGZIP(), []int{2} + return file_extensions_extension_service_proto_rawDescGZIP(), []int{1} } func (x *UninstallRequest) GetExtensions() []string { @@ -360,7 +310,7 @@ type CheckRequest struct { func (x *CheckRequest) Reset() { *x = CheckRequest{} if protoimpl.UnsafeEnabled { - mi := &file_extensions_extension_service_proto_msgTypes[3] + mi := &file_extensions_extension_service_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -373,7 +323,7 @@ func (x *CheckRequest) String() string { func (*CheckRequest) ProtoMessage() {} func (x *CheckRequest) ProtoReflect() protoreflect.Message { - mi := &file_extensions_extension_service_proto_msgTypes[3] + mi := &file_extensions_extension_service_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -386,7 +336,7 @@ func (x *CheckRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CheckRequest.ProtoReflect.Descriptor instead. func (*CheckRequest) Descriptor() ([]byte, []int) { - return file_extensions_extension_service_proto_rawDescGZIP(), []int{3} + return file_extensions_extension_service_proto_rawDescGZIP(), []int{2} } func (x *CheckRequest) GetExtensions() []string { @@ -430,7 +380,7 @@ type ActionResponse struct { func (x *ActionResponse) Reset() { *x = ActionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_extensions_extension_service_proto_msgTypes[4] + mi := &file_extensions_extension_service_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -443,7 +393,7 @@ func (x *ActionResponse) String() string { func (*ActionResponse) ProtoMessage() {} func (x *ActionResponse) ProtoReflect() protoreflect.Message { - mi := &file_extensions_extension_service_proto_msgTypes[4] + mi := &file_extensions_extension_service_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -456,7 +406,7 @@ func (x *ActionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ActionResponse.ProtoReflect.Descriptor instead. func (*ActionResponse) Descriptor() ([]byte, []int) { - return file_extensions_extension_service_proto_rawDescGZIP(), []int{4} + return file_extensions_extension_service_proto_rawDescGZIP(), []int{3} } func (x *ActionResponse) GetState() ActionResponse_State { @@ -549,87 +499,83 @@ var file_extensions_extension_service_proto_rawDesc = []byte{ 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, 0x12, 0x17, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0xd8, 0x4f, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x0d, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x90, 0x4e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 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, 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, 0xed, 0x04, 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, 0x2b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x18, 0x9a, 0x4e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0xc2, - 0x4e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 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, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x12, 0x11, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0xf4, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x12, 0x15, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0xfe, 0x4e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x15, 0x0a, 0x05, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x18, 0x9c, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, - 0x65, 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, 0x2b, - 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, 0x41, 0x49, - 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x54, 0x4d, 0x4c, 0x10, 0x01, 0x12, 0x0c, 0x0a, - 0x08, 0x4d, 0x41, 0x52, 0x4b, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x32, 0x89, 0x02, 0x0a, 0x10, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x3a, 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, 0x11, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x3e, 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, 0x11, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x36, 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, - 0x11, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 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, + 0x08, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 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, 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, 0xed, 0x04, 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, 0x2b, 0x0a, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x9a, + 0x4e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x12, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x06, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0xc2, 0x4e, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x21, 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, 0x46, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x11, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0xf4, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x15, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0xfe, 0x4e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x15, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x18, 0x9c, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 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, 0x2b, 0x0a, 0x06, 0x46, + 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x09, 0x0a, 0x05, 0x50, 0x4c, 0x41, 0x49, 0x4e, 0x10, 0x00, + 0x12, 0x08, 0x0a, 0x04, 0x48, 0x54, 0x4d, 0x4c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x4d, 0x41, + 0x52, 0x4b, 0x44, 0x4f, 0x57, 0x4e, 0x10, 0x02, 0x32, 0x89, 0x02, 0x0a, 0x10, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3a, 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, 0x11, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x3e, 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, 0x11, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x00, 0x12, 0x36, 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, 0x11, 0x2e, 0x63, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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 ( @@ -645,44 +591,41 @@ func file_extensions_extension_service_proto_rawDescGZIP() []byte { } var file_extensions_extension_service_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_extensions_extension_service_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_extensions_extension_service_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_extensions_extension_service_proto_goTypes = []interface{}{ (ActionResponse_State)(0), // 0: extensions.ActionResponse.State (ActionResponse_Format)(0), // 1: extensions.ActionResponse.Format (*InstallRequest)(nil), // 2: extensions.InstallRequest - (*ExtensionList)(nil), // 3: extensions.ExtensionList - (*UninstallRequest)(nil), // 4: extensions.UninstallRequest - (*CheckRequest)(nil), // 5: extensions.CheckRequest - (*ActionResponse)(nil), // 6: extensions.ActionResponse - nil, // 7: extensions.ActionResponse.MetadataEntry - (*Extension)(nil), // 8: extensions.Extension - (Target)(0), // 9: extensions.Target - (*Action)(nil), // 10: extensions.Action - (*references.Reference)(nil), // 11: content.references.Reference - (*ActionRequest)(nil), // 12: extensions.ActionRequest - (*common.Operation)(nil), // 13: common.Operation + (*UninstallRequest)(nil), // 3: extensions.UninstallRequest + (*CheckRequest)(nil), // 4: extensions.CheckRequest + (*ActionResponse)(nil), // 5: extensions.ActionResponse + nil, // 6: extensions.ActionResponse.MetadataEntry + (Target)(0), // 7: extensions.Target + (*Action)(nil), // 8: extensions.Action + (*references.Reference)(nil), // 9: content.references.Reference + (*ActionRequest)(nil), // 10: extensions.ActionRequest + (*common.Operation)(nil), // 11: common.Operation } var file_extensions_extension_service_proto_depIdxs = []int32{ - 8, // 0: extensions.ExtensionList.results:type_name -> extensions.Extension - 0, // 1: extensions.ActionResponse.state:type_name -> extensions.ActionResponse.State - 9, // 2: extensions.ActionResponse.target:type_name -> extensions.Target - 1, // 3: extensions.ActionResponse.format:type_name -> extensions.ActionResponse.Format - 10, // 4: extensions.ActionResponse.next:type_name -> extensions.Action - 7, // 5: extensions.ActionResponse.metadata:type_name -> extensions.ActionResponse.MetadataEntry - 11, // 6: extensions.ActionResponse.refs:type_name -> content.references.Reference - 2, // 7: extensions.ExtensionService.Install:input_type -> extensions.InstallRequest - 4, // 8: extensions.ExtensionService.Uninstall:input_type -> extensions.UninstallRequest - 5, // 9: extensions.ExtensionService.Check:input_type -> extensions.CheckRequest - 12, // 10: extensions.ExtensionService.Action:input_type -> extensions.ActionRequest - 13, // 11: extensions.ExtensionService.Install:output_type -> common.Operation - 13, // 12: extensions.ExtensionService.Uninstall:output_type -> common.Operation - 13, // 13: extensions.ExtensionService.Check:output_type -> common.Operation - 6, // 14: extensions.ExtensionService.Action:output_type -> extensions.ActionResponse - 11, // [11:15] is the sub-list for method output_type - 7, // [7:11] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 0, // 0: extensions.ActionResponse.state:type_name -> extensions.ActionResponse.State + 7, // 1: extensions.ActionResponse.target:type_name -> extensions.Target + 1, // 2: extensions.ActionResponse.format:type_name -> extensions.ActionResponse.Format + 8, // 3: extensions.ActionResponse.next:type_name -> extensions.Action + 6, // 4: extensions.ActionResponse.metadata:type_name -> extensions.ActionResponse.MetadataEntry + 9, // 5: extensions.ActionResponse.refs:type_name -> content.references.Reference + 2, // 6: extensions.ExtensionService.Install:input_type -> extensions.InstallRequest + 3, // 7: extensions.ExtensionService.Uninstall:input_type -> extensions.UninstallRequest + 4, // 8: extensions.ExtensionService.Check:input_type -> extensions.CheckRequest + 10, // 9: extensions.ExtensionService.Action:input_type -> extensions.ActionRequest + 11, // 10: extensions.ExtensionService.Install:output_type -> common.Operation + 11, // 11: extensions.ExtensionService.Uninstall:output_type -> common.Operation + 11, // 12: extensions.ExtensionService.Check:output_type -> common.Operation + 5, // 13: extensions.ExtensionService.Action:output_type -> extensions.ActionResponse + 10, // [10:14] is the sub-list for method output_type + 6, // [6:10] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name } func init() { file_extensions_extension_service_proto_init() } @@ -705,18 +648,6 @@ func file_extensions_extension_service_proto_init() { } } file_extensions_extension_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExtensionList); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_extensions_extension_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UninstallRequest); i { case 0: return &v.state @@ -728,7 +659,7 @@ func file_extensions_extension_service_proto_init() { return nil } } - file_extensions_extension_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_extensions_extension_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckRequest); i { case 0: return &v.state @@ -740,7 +671,7 @@ func file_extensions_extension_service_proto_init() { return nil } } - file_extensions_extension_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_extensions_extension_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ActionResponse); i { case 0: return &v.state @@ -759,7 +690,7 @@ func file_extensions_extension_service_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_extensions_extension_service_proto_rawDesc, NumEnums: 2, - NumMessages: 6, + NumMessages: 5, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/extensions/manager.pb.go b/proto/extensions/manager.pb.go index cb5b209259d642794eb201b9bb60bbf60c87d3f9..0b19b498061cf31c8918a210259340f666de9431 100644 --- a/proto/extensions/manager.pb.go +++ b/proto/extensions/manager.pb.go @@ -28,7 +28,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.3 // source: extensions/manager.proto package extensions @@ -96,10 +96,120 @@ func (x SpaceExtensions_State) Number() protoreflect.EnumNumber { // Deprecated: Use SpaceExtensions_State.Descriptor instead. func (SpaceExtensions_State) EnumDescriptor() ([]byte, []int) { - return file_extensions_manager_proto_rawDescGZIP(), []int{8, 0} + return file_extensions_manager_proto_rawDescGZIP(), []int{10, 0} } -// ServiceDescription описание сервиса +type GetExtensionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Extensions []string `protobuf:"bytes,1,rep,name=extensions,proto3" json:"extensions,omitempty"` // РРјСЏ расширения + SpaceId string `protobuf:"bytes,2,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"` // Пространство имен расширения + EnvId string `protobuf:"bytes,3,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"` // Рдентификатор окружения +} + +func (x *GetExtensionsRequest) Reset() { + *x = GetExtensionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_extensions_manager_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetExtensionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetExtensionsRequest) ProtoMessage() {} + +func (x *GetExtensionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_extensions_manager_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 GetExtensionsRequest.ProtoReflect.Descriptor instead. +func (*GetExtensionsRequest) Descriptor() ([]byte, []int) { + return file_extensions_manager_proto_rawDescGZIP(), []int{0} +} + +func (x *GetExtensionsRequest) GetExtensions() []string { + if x != nil { + return x.Extensions + } + return nil +} + +func (x *GetExtensionsRequest) GetSpaceId() string { + if x != nil { + return x.SpaceId + } + return "" +} + +func (x *GetExtensionsRequest) GetEnvId() string { + if x != nil { + return x.EnvId + } + return "" +} + +type GetExtensionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status []*GetExtensionsResponse_Status `protobuf:"bytes,1,rep,name=status,proto3" json:"status,omitempty"` +} + +func (x *GetExtensionsResponse) Reset() { + *x = GetExtensionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_extensions_manager_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetExtensionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetExtensionsResponse) ProtoMessage() {} + +func (x *GetExtensionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_extensions_manager_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 GetExtensionsResponse.ProtoReflect.Descriptor instead. +func (*GetExtensionsResponse) Descriptor() ([]byte, []int) { + return file_extensions_manager_proto_rawDescGZIP(), []int{1} +} + +func (x *GetExtensionsResponse) GetStatus() []*GetExtensionsResponse_Status { + if x != nil { + return x.Status + } + return nil +} + +// ServiceDescription описание расширения (возвращается сервисом РїСЂРё регистрации) type ExtensionDescriptor struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -118,7 +228,7 @@ type ExtensionDescriptor struct { func (x *ExtensionDescriptor) Reset() { *x = ExtensionDescriptor{} if protoimpl.UnsafeEnabled { - mi := &file_extensions_manager_proto_msgTypes[0] + mi := &file_extensions_manager_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -131,7 +241,7 @@ func (x *ExtensionDescriptor) String() string { func (*ExtensionDescriptor) ProtoMessage() {} func (x *ExtensionDescriptor) ProtoReflect() protoreflect.Message { - mi := &file_extensions_manager_proto_msgTypes[0] + mi := &file_extensions_manager_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -144,7 +254,7 @@ func (x *ExtensionDescriptor) ProtoReflect() protoreflect.Message { // Deprecated: Use ExtensionDescriptor.ProtoReflect.Descriptor instead. func (*ExtensionDescriptor) Descriptor() ([]byte, []int) { - return file_extensions_manager_proto_rawDescGZIP(), []int{0} + return file_extensions_manager_proto_rawDescGZIP(), []int{2} } func (x *ExtensionDescriptor) GetExtension() string { @@ -214,7 +324,7 @@ type RegisterExtensionsRequest struct { func (x *RegisterExtensionsRequest) Reset() { *x = RegisterExtensionsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_extensions_manager_proto_msgTypes[1] + mi := &file_extensions_manager_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -227,7 +337,7 @@ func (x *RegisterExtensionsRequest) String() string { func (*RegisterExtensionsRequest) ProtoMessage() {} func (x *RegisterExtensionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_extensions_manager_proto_msgTypes[1] + mi := &file_extensions_manager_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -240,7 +350,7 @@ func (x *RegisterExtensionsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RegisterExtensionsRequest.ProtoReflect.Descriptor instead. func (*RegisterExtensionsRequest) Descriptor() ([]byte, []int) { - return file_extensions_manager_proto_rawDescGZIP(), []int{1} + return file_extensions_manager_proto_rawDescGZIP(), []int{3} } func (x *RegisterExtensionsRequest) GetExtensions() []*ExtensionDescriptor { @@ -259,7 +369,7 @@ type RegisterExtensionsResponse struct { func (x *RegisterExtensionsResponse) Reset() { *x = RegisterExtensionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_extensions_manager_proto_msgTypes[2] + mi := &file_extensions_manager_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -272,7 +382,7 @@ func (x *RegisterExtensionsResponse) String() string { func (*RegisterExtensionsResponse) ProtoMessage() {} func (x *RegisterExtensionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_extensions_manager_proto_msgTypes[2] + mi := &file_extensions_manager_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -285,7 +395,7 @@ func (x *RegisterExtensionsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RegisterExtensionsResponse.ProtoReflect.Descriptor instead. func (*RegisterExtensionsResponse) Descriptor() ([]byte, []int) { - return file_extensions_manager_proto_rawDescGZIP(), []int{2} + return file_extensions_manager_proto_rawDescGZIP(), []int{4} } type UnregisterExtensionsRequest struct { @@ -299,7 +409,7 @@ type UnregisterExtensionsRequest struct { func (x *UnregisterExtensionsRequest) Reset() { *x = UnregisterExtensionsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_extensions_manager_proto_msgTypes[3] + mi := &file_extensions_manager_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -312,7 +422,7 @@ func (x *UnregisterExtensionsRequest) String() string { func (*UnregisterExtensionsRequest) ProtoMessage() {} func (x *UnregisterExtensionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_extensions_manager_proto_msgTypes[3] + mi := &file_extensions_manager_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -325,7 +435,7 @@ func (x *UnregisterExtensionsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UnregisterExtensionsRequest.ProtoReflect.Descriptor instead. func (*UnregisterExtensionsRequest) Descriptor() ([]byte, []int) { - return file_extensions_manager_proto_rawDescGZIP(), []int{3} + return file_extensions_manager_proto_rawDescGZIP(), []int{5} } func (x *UnregisterExtensionsRequest) GetExtensions() []*ExtensionDescriptor { @@ -344,7 +454,7 @@ type UnregisterExtensionsResponse struct { func (x *UnregisterExtensionsResponse) Reset() { *x = UnregisterExtensionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_extensions_manager_proto_msgTypes[4] + mi := &file_extensions_manager_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -357,7 +467,7 @@ func (x *UnregisterExtensionsResponse) String() string { func (*UnregisterExtensionsResponse) ProtoMessage() {} func (x *UnregisterExtensionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_extensions_manager_proto_msgTypes[4] + mi := &file_extensions_manager_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -370,7 +480,7 @@ func (x *UnregisterExtensionsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UnregisterExtensionsResponse.ProtoReflect.Descriptor instead. func (*UnregisterExtensionsResponse) Descriptor() ([]byte, []int) { - return file_extensions_manager_proto_rawDescGZIP(), []int{4} + return file_extensions_manager_proto_rawDescGZIP(), []int{6} } type ListExtensionsFilter struct { @@ -384,7 +494,7 @@ type ListExtensionsFilter struct { func (x *ListExtensionsFilter) Reset() { *x = ListExtensionsFilter{} if protoimpl.UnsafeEnabled { - mi := &file_extensions_manager_proto_msgTypes[5] + mi := &file_extensions_manager_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -397,7 +507,7 @@ func (x *ListExtensionsFilter) String() string { func (*ListExtensionsFilter) ProtoMessage() {} func (x *ListExtensionsFilter) ProtoReflect() protoreflect.Message { - mi := &file_extensions_manager_proto_msgTypes[5] + mi := &file_extensions_manager_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -410,7 +520,7 @@ func (x *ListExtensionsFilter) ProtoReflect() protoreflect.Message { // Deprecated: Use ListExtensionsFilter.ProtoReflect.Descriptor instead. func (*ListExtensionsFilter) Descriptor() ([]byte, []int) { - return file_extensions_manager_proto_rawDescGZIP(), []int{5} + return file_extensions_manager_proto_rawDescGZIP(), []int{7} } func (x *ListExtensionsFilter) GetExtension() []string { @@ -431,7 +541,7 @@ type ListExtensionsRequest struct { func (x *ListExtensionsRequest) Reset() { *x = ListExtensionsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_extensions_manager_proto_msgTypes[6] + mi := &file_extensions_manager_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -444,7 +554,7 @@ func (x *ListExtensionsRequest) String() string { func (*ListExtensionsRequest) ProtoMessage() {} func (x *ListExtensionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_extensions_manager_proto_msgTypes[6] + mi := &file_extensions_manager_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -457,7 +567,7 @@ func (x *ListExtensionsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListExtensionsRequest.ProtoReflect.Descriptor instead. func (*ListExtensionsRequest) Descriptor() ([]byte, []int) { - return file_extensions_manager_proto_rawDescGZIP(), []int{6} + return file_extensions_manager_proto_rawDescGZIP(), []int{8} } func (x *ListExtensionsRequest) GetFilter() *ListExtensionsFilter { @@ -478,7 +588,7 @@ type ListExtensionsResponse struct { func (x *ListExtensionsResponse) Reset() { *x = ListExtensionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_extensions_manager_proto_msgTypes[7] + mi := &file_extensions_manager_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -491,7 +601,7 @@ func (x *ListExtensionsResponse) String() string { func (*ListExtensionsResponse) ProtoMessage() {} func (x *ListExtensionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_extensions_manager_proto_msgTypes[7] + mi := &file_extensions_manager_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -504,7 +614,7 @@ func (x *ListExtensionsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListExtensionsResponse.ProtoReflect.Descriptor instead. func (*ListExtensionsResponse) Descriptor() ([]byte, []int) { - return file_extensions_manager_proto_rawDescGZIP(), []int{7} + return file_extensions_manager_proto_rawDescGZIP(), []int{9} } func (x *ListExtensionsResponse) GetExtensions() []*ExtensionDescriptor { @@ -514,6 +624,8 @@ func (x *ListExtensionsResponse) GetExtensions() []*ExtensionDescriptor { return nil } +// Описание коллекций +// space_extensions (Пространство/Расширения) type SpaceExtensions struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -531,7 +643,7 @@ type SpaceExtensions struct { func (x *SpaceExtensions) Reset() { *x = SpaceExtensions{} if protoimpl.UnsafeEnabled { - mi := &file_extensions_manager_proto_msgTypes[8] + mi := &file_extensions_manager_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -544,7 +656,7 @@ func (x *SpaceExtensions) String() string { func (*SpaceExtensions) ProtoMessage() {} func (x *SpaceExtensions) ProtoReflect() protoreflect.Message { - mi := &file_extensions_manager_proto_msgTypes[8] + mi := &file_extensions_manager_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -557,7 +669,7 @@ func (x *SpaceExtensions) ProtoReflect() protoreflect.Message { // Deprecated: Use SpaceExtensions.ProtoReflect.Descriptor instead. func (*SpaceExtensions) Descriptor() ([]byte, []int) { - return file_extensions_manager_proto_rawDescGZIP(), []int{8} + return file_extensions_manager_proto_rawDescGZIP(), []int{10} } func (x *SpaceExtensions) GetExtension() string { @@ -609,109 +721,247 @@ func (x *SpaceExtensions) GetStatusMsg() string { return "" } +type GetExtensionsResponse_Status struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + 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) + NotFound bool `protobuf:"varint,10350,opt,name=not_found,json=notFound,proto3" json:"not_found,omitempty"` // Расширение РЅРµ найдено + Installed bool `protobuf:"varint,10400,opt,name=installed,proto3" json:"installed,omitempty"` // Расширение установлено + UpdateAvailable bool `protobuf:"varint,10500,opt,name=update_available,json=updateAvailable,proto3" json:"update_available,omitempty"` // Доступно обновление + InstalledVersion string `protobuf:"bytes,10510,opt,name=installed_version,json=installedVersion,proto3" json:"installed_version,omitempty"` // Установленная версия расширения + AvailableVersion string `protobuf:"bytes,10520,opt,name=available_version,json=availableVersion,proto3" json:"available_version,omitempty"` // Доступная версия расширения +} + +func (x *GetExtensionsResponse_Status) Reset() { + *x = GetExtensionsResponse_Status{} + if protoimpl.UnsafeEnabled { + mi := &file_extensions_manager_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetExtensionsResponse_Status) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetExtensionsResponse_Status) ProtoMessage() {} + +func (x *GetExtensionsResponse_Status) ProtoReflect() protoreflect.Message { + mi := &file_extensions_manager_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 GetExtensionsResponse_Status.ProtoReflect.Descriptor instead. +func (*GetExtensionsResponse_Status) Descriptor() ([]byte, []int) { + return file_extensions_manager_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *GetExtensionsResponse_Status) GetExtension() string { + if x != nil { + return x.Extension + } + return "" +} + +func (x *GetExtensionsResponse_Status) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetExtensionsResponse_Status) GetError() string { + if x != nil { + return x.Error + } + return "" +} + +func (x *GetExtensionsResponse_Status) GetNotFound() bool { + if x != nil { + return x.NotFound + } + return false +} + +func (x *GetExtensionsResponse_Status) GetInstalled() bool { + if x != nil { + return x.Installed + } + return false +} + +func (x *GetExtensionsResponse_Status) GetUpdateAvailable() bool { + if x != nil { + return x.UpdateAvailable + } + return false +} + +func (x *GetExtensionsResponse_Status) GetInstalledVersion() string { + if x != nil { + return x.InstalledVersion + } + return "" +} + +func (x *GetExtensionsResponse_Status) GetAvailableVersion() string { + if x != nil { + return x.AvailableVersion + } + return "" +} + var File_extensions_manager_proto protoreflect.FileDescriptor var file_extensions_manager_proto_rawDesc = []byte{ 0x0a, 0x18, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xea, 0x02, 0x0a, 0x13, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 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, 0x15, 0x0a, - 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x9a, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0xa4, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0xf4, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x13, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xfe, 0x4e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x12, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a, 0x04, 0x64, 0x65, 0x70, 0x73, 0x18, 0xd8, 0x4f, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x49, 0x0a, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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, 0x5c, 0x0a, 0x19, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x3f, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x5e, 0x0a, 0x1b, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x68, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0x1e, 0x0a, 0x1c, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x34, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, - 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x59, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0xb5, 0x02, 0x0a, 0x0f, 0x53, 0x70, 0x61, 0x63, 0x65, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 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, 0x15, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, - 0x9a, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x19, 0x0a, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xf4, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a, 0x04, 0x64, 0x65, 0x70, 0x73, - 0x18, 0xd8, 0x4f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x70, 0x73, 0x12, 0x38, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0xbc, 0x50, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0xa0, 0x51, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x84, 0x52, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x73, 0x67, 0x22, 0x3e, 0x0a, 0x05, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, - 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x01, - 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, - 0x02, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x03, 0x32, 0xc1, 0x02, 0x0a, 0x10, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, - 0x12, 0x65, 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x14, 0x55, 0x6e, 0x72, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x27, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x55, 0x6e, 0x72, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x73, 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, + 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, + 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x15, 0x0a, 0x06, 0x65, 0x6e, 0x76, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6e, 0x76, 0x49, 0x64, + 0x22, 0xf2, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x1a, 0x96, 0x02, 0x0a, + 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x1c, 0x0a, 0x09, 0x6e, 0x6f, 0x74, 0x5f, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0xee, 0x50, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1d, + 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0xa0, 0x51, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, + 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x84, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x8e, + 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x98, 0x52, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xea, 0x02, 0x0a, 0x13, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 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, 0x15, 0x0a, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x9a, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0xa4, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0xf4, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x30, 0x0a, 0x13, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xfe, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x12, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a, 0x04, 0x64, 0x65, 0x70, 0x73, 0x18, 0xd8, 0x4f, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x70, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x49, 0x0a, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 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, 0x5c, 0x0a, 0x19, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3f, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, + 0x0a, 0x1b, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, + 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x6f, 0x72, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x1e, + 0x0a, 0x1c, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, + 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x59, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x22, 0xb5, 0x02, 0x0a, 0x0f, 0x53, 0x70, 0x61, 0x63, 0x65, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 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, 0x15, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x9a, + 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xf4, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a, 0x04, 0x64, 0x65, 0x70, 0x73, 0x18, + 0xd8, 0x4f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x70, 0x73, 0x12, 0x38, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0xbc, 0x50, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0xa0, 0x51, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x84, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, 0x73, 0x67, 0x22, 0x3e, 0x0a, 0x05, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, + 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, + 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, + 0x12, 0x08, 0x0a, 0x04, 0x46, 0x41, 0x49, 0x4c, 0x10, 0x03, 0x32, 0x99, 0x03, 0x0a, 0x10, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, + 0x65, 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x14, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, + 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x55, 0x6e, 0x72, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x56, + 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x20, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x21, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 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 ( @@ -727,38 +977,44 @@ func file_extensions_manager_proto_rawDescGZIP() []byte { } var file_extensions_manager_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_extensions_manager_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_extensions_manager_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_extensions_manager_proto_goTypes = []interface{}{ (SpaceExtensions_State)(0), // 0: extensions.SpaceExtensions.State - (*ExtensionDescriptor)(nil), // 1: extensions.ExtensionDescriptor - (*RegisterExtensionsRequest)(nil), // 2: extensions.RegisterExtensionsRequest - (*RegisterExtensionsResponse)(nil), // 3: extensions.RegisterExtensionsResponse - (*UnregisterExtensionsRequest)(nil), // 4: extensions.UnregisterExtensionsRequest - (*UnregisterExtensionsResponse)(nil), // 5: extensions.UnregisterExtensionsResponse - (*ListExtensionsFilter)(nil), // 6: extensions.ListExtensionsFilter - (*ListExtensionsRequest)(nil), // 7: extensions.ListExtensionsRequest - (*ListExtensionsResponse)(nil), // 8: extensions.ListExtensionsResponse - (*SpaceExtensions)(nil), // 9: extensions.SpaceExtensions - nil, // 10: extensions.ExtensionDescriptor.MetadataEntry + (*GetExtensionsRequest)(nil), // 1: extensions.GetExtensionsRequest + (*GetExtensionsResponse)(nil), // 2: extensions.GetExtensionsResponse + (*ExtensionDescriptor)(nil), // 3: extensions.ExtensionDescriptor + (*RegisterExtensionsRequest)(nil), // 4: extensions.RegisterExtensionsRequest + (*RegisterExtensionsResponse)(nil), // 5: extensions.RegisterExtensionsResponse + (*UnregisterExtensionsRequest)(nil), // 6: extensions.UnregisterExtensionsRequest + (*UnregisterExtensionsResponse)(nil), // 7: extensions.UnregisterExtensionsResponse + (*ListExtensionsFilter)(nil), // 8: extensions.ListExtensionsFilter + (*ListExtensionsRequest)(nil), // 9: extensions.ListExtensionsRequest + (*ListExtensionsResponse)(nil), // 10: extensions.ListExtensionsResponse + (*SpaceExtensions)(nil), // 11: extensions.SpaceExtensions + (*GetExtensionsResponse_Status)(nil), // 12: extensions.GetExtensionsResponse.Status + nil, // 13: extensions.ExtensionDescriptor.MetadataEntry } var file_extensions_manager_proto_depIdxs = []int32{ - 10, // 0: extensions.ExtensionDescriptor.metadata:type_name -> extensions.ExtensionDescriptor.MetadataEntry - 1, // 1: extensions.RegisterExtensionsRequest.extensions:type_name -> extensions.ExtensionDescriptor - 1, // 2: extensions.UnregisterExtensionsRequest.extensions:type_name -> extensions.ExtensionDescriptor - 6, // 3: extensions.ListExtensionsRequest.filter:type_name -> extensions.ListExtensionsFilter - 1, // 4: extensions.ListExtensionsResponse.extensions:type_name -> extensions.ExtensionDescriptor - 0, // 5: extensions.SpaceExtensions.state:type_name -> extensions.SpaceExtensions.State - 2, // 6: extensions.ExtensionManager.RegisterExtensions:input_type -> extensions.RegisterExtensionsRequest - 4, // 7: extensions.ExtensionManager.UnregisterExtensions:input_type -> extensions.UnregisterExtensionsRequest - 7, // 8: extensions.ExtensionManager.ListExtensions:input_type -> extensions.ListExtensionsRequest - 3, // 9: extensions.ExtensionManager.RegisterExtensions:output_type -> extensions.RegisterExtensionsResponse - 5, // 10: extensions.ExtensionManager.UnregisterExtensions:output_type -> extensions.UnregisterExtensionsResponse - 8, // 11: extensions.ExtensionManager.ListExtensions:output_type -> extensions.ListExtensionsResponse - 9, // [9:12] is the sub-list for method output_type - 6, // [6:9] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 12, // 0: extensions.GetExtensionsResponse.status:type_name -> extensions.GetExtensionsResponse.Status + 13, // 1: extensions.ExtensionDescriptor.metadata:type_name -> extensions.ExtensionDescriptor.MetadataEntry + 3, // 2: extensions.RegisterExtensionsRequest.extensions:type_name -> extensions.ExtensionDescriptor + 3, // 3: extensions.UnregisterExtensionsRequest.extensions:type_name -> extensions.ExtensionDescriptor + 8, // 4: extensions.ListExtensionsRequest.filter:type_name -> extensions.ListExtensionsFilter + 3, // 5: extensions.ListExtensionsResponse.extensions:type_name -> extensions.ExtensionDescriptor + 0, // 6: extensions.SpaceExtensions.state:type_name -> extensions.SpaceExtensions.State + 4, // 7: extensions.ExtensionManager.RegisterExtensions:input_type -> extensions.RegisterExtensionsRequest + 6, // 8: extensions.ExtensionManager.UnregisterExtensions:input_type -> extensions.UnregisterExtensionsRequest + 9, // 9: extensions.ExtensionManager.ListExtensions:input_type -> extensions.ListExtensionsRequest + 1, // 10: extensions.ExtensionManager.GetExtensions:input_type -> extensions.GetExtensionsRequest + 5, // 11: extensions.ExtensionManager.RegisterExtensions:output_type -> extensions.RegisterExtensionsResponse + 7, // 12: extensions.ExtensionManager.UnregisterExtensions:output_type -> extensions.UnregisterExtensionsResponse + 10, // 13: extensions.ExtensionManager.ListExtensions:output_type -> extensions.ListExtensionsResponse + 2, // 14: extensions.ExtensionManager.GetExtensions:output_type -> extensions.GetExtensionsResponse + 11, // [11:15] is the sub-list for method output_type + 7, // [7:11] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name } func init() { file_extensions_manager_proto_init() } @@ -768,7 +1024,7 @@ func file_extensions_manager_proto_init() { } if !protoimpl.UnsafeEnabled { file_extensions_manager_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExtensionDescriptor); i { + switch v := v.(*GetExtensionsRequest); i { case 0: return &v.state case 1: @@ -780,7 +1036,7 @@ func file_extensions_manager_proto_init() { } } file_extensions_manager_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterExtensionsRequest); i { + switch v := v.(*GetExtensionsResponse); i { case 0: return &v.state case 1: @@ -792,7 +1048,7 @@ func file_extensions_manager_proto_init() { } } file_extensions_manager_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterExtensionsResponse); i { + switch v := v.(*ExtensionDescriptor); i { case 0: return &v.state case 1: @@ -804,7 +1060,7 @@ func file_extensions_manager_proto_init() { } } file_extensions_manager_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnregisterExtensionsRequest); i { + switch v := v.(*RegisterExtensionsRequest); i { case 0: return &v.state case 1: @@ -816,7 +1072,7 @@ func file_extensions_manager_proto_init() { } } file_extensions_manager_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnregisterExtensionsResponse); i { + switch v := v.(*RegisterExtensionsResponse); i { case 0: return &v.state case 1: @@ -828,7 +1084,7 @@ func file_extensions_manager_proto_init() { } } file_extensions_manager_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListExtensionsFilter); i { + switch v := v.(*UnregisterExtensionsRequest); i { case 0: return &v.state case 1: @@ -840,7 +1096,7 @@ func file_extensions_manager_proto_init() { } } file_extensions_manager_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListExtensionsRequest); i { + switch v := v.(*UnregisterExtensionsResponse); i { case 0: return &v.state case 1: @@ -852,7 +1108,7 @@ func file_extensions_manager_proto_init() { } } file_extensions_manager_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListExtensionsResponse); i { + switch v := v.(*ListExtensionsFilter); i { case 0: return &v.state case 1: @@ -864,6 +1120,30 @@ func file_extensions_manager_proto_init() { } } file_extensions_manager_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListExtensionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_extensions_manager_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListExtensionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_extensions_manager_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SpaceExtensions); i { case 0: return &v.state @@ -875,6 +1155,18 @@ func file_extensions_manager_proto_init() { return nil } } + file_extensions_manager_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetExtensionsResponse_Status); 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{ @@ -882,7 +1174,7 @@ func file_extensions_manager_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_extensions_manager_proto_rawDesc, NumEnums: 1, - NumMessages: 10, + NumMessages: 13, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/extensions/manager_grpc.pb.go b/proto/extensions/manager_grpc.pb.go index aa5a5105bffb683691d866f65127857d5453192c..635cc20ec63212d3514ae351109b40ee7952ce7a 100644 --- a/proto/extensions/manager_grpc.pb.go +++ b/proto/extensions/manager_grpc.pb.go @@ -28,7 +28,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v4.23.4 +// - protoc v4.24.3 // source: extensions/manager.proto package extensions @@ -49,6 +49,7 @@ const ( ExtensionManager_RegisterExtensions_FullMethodName = "/extensions.ExtensionManager/RegisterExtensions" ExtensionManager_UnregisterExtensions_FullMethodName = "/extensions.ExtensionManager/UnregisterExtensions" ExtensionManager_ListExtensions_FullMethodName = "/extensions.ExtensionManager/ListExtensions" + ExtensionManager_GetExtensions_FullMethodName = "/extensions.ExtensionManager/GetExtensions" ) // ExtensionManagerClient is the client API for ExtensionManager service. @@ -71,6 +72,8 @@ type ExtensionManagerClient interface { UnregisterExtensions(ctx context.Context, in *UnregisterExtensionsRequest, opts ...grpc.CallOption) (*UnregisterExtensionsResponse, error) // Получить СЃРїРёСЃРѕРє зарегистрированных сервисов ListExtensions(ctx context.Context, in *ListExtensionsRequest, opts ...grpc.CallOption) (*ListExtensionsResponse, error) + // GetExtensionStatus - получить статус расширения + GetExtensions(ctx context.Context, in *GetExtensionsRequest, opts ...grpc.CallOption) (*GetExtensionsResponse, error) } type extensionManagerClient struct { @@ -108,6 +111,15 @@ func (c *extensionManagerClient) ListExtensions(ctx context.Context, in *ListExt return out, nil } +func (c *extensionManagerClient) GetExtensions(ctx context.Context, in *GetExtensionsRequest, opts ...grpc.CallOption) (*GetExtensionsResponse, error) { + out := new(GetExtensionsResponse) + err := c.cc.Invoke(ctx, ExtensionManager_GetExtensions_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // ExtensionManagerServer is the server API for ExtensionManager service. // All implementations must embed UnimplementedExtensionManagerServer // for forward compatibility @@ -128,6 +140,8 @@ type ExtensionManagerServer interface { UnregisterExtensions(context.Context, *UnregisterExtensionsRequest) (*UnregisterExtensionsResponse, error) // Получить СЃРїРёСЃРѕРє зарегистрированных сервисов ListExtensions(context.Context, *ListExtensionsRequest) (*ListExtensionsResponse, error) + // GetExtensionStatus - получить статус расширения + GetExtensions(context.Context, *GetExtensionsRequest) (*GetExtensionsResponse, error) mustEmbedUnimplementedExtensionManagerServer() } @@ -144,6 +158,9 @@ func (UnimplementedExtensionManagerServer) UnregisterExtensions(context.Context, func (UnimplementedExtensionManagerServer) ListExtensions(context.Context, *ListExtensionsRequest) (*ListExtensionsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListExtensions not implemented") } +func (UnimplementedExtensionManagerServer) GetExtensions(context.Context, *GetExtensionsRequest) (*GetExtensionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetExtensions not implemented") +} func (UnimplementedExtensionManagerServer) mustEmbedUnimplementedExtensionManagerServer() {} // UnsafeExtensionManagerServer may be embedded to opt out of forward compatibility for this service. @@ -211,6 +228,24 @@ func _ExtensionManager_ListExtensions_Handler(srv interface{}, ctx context.Conte return interceptor(ctx, in, info, handler) } +func _ExtensionManager_GetExtensions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetExtensionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExtensionManagerServer).GetExtensions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ExtensionManager_GetExtensions_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExtensionManagerServer).GetExtensions(ctx, req.(*GetExtensionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + // ExtensionManager_ServiceDesc is the grpc.ServiceDesc for ExtensionManager service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) @@ -230,6 +265,10 @@ var ExtensionManager_ServiceDesc = grpc.ServiceDesc{ MethodName: "ListExtensions", Handler: _ExtensionManager_ListExtensions_Handler, }, + { + MethodName: "GetExtensions", + Handler: _ExtensionManager_GetExtensions_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "extensions/manager.proto", diff --git a/proto/extensions/manager_service.pb.go b/proto/extensions/manager_service.pb.go new file mode 100644 index 0000000000000000000000000000000000000000..7091339cb953ba2fd88bef31d8f4942f901b9b7f --- /dev/null +++ b/proto/extensions/manager_service.pb.go @@ -0,0 +1,1191 @@ +//* +// +//# Менеджер расширений +// +//Реализует функционал РїРѕ координации расширений РІ системе Рё служит единой точкой доступа для работы СЃ расширениями: +//- Регистрирует РІСЃРµ расширения РІ едином реестре +//- Предоставляет доступ Рє реестру расширений РЅР° получение доступных расширений РІ системе +//- Контролирует процесс установки расширения, устанавливает РІСЃРµ необходимые зависимости РІ правильном РїРѕСЂСЏРґРєРµ +//- Контролирует создание системной коллекции `system_extensions` (System/Extensions) Рё создание/удалений РІ ней установленных расширений +//- Контролирует создание системной коллекции `system_actions` (System/Actions). Выполняет удаление всех действий связанных +//СЃ расширением РїСЂРё его удалении. +//- Выполняет переадресацию запросов РЅР° действия для расширений +// +//Менеджер расширений для контроля установленных расширений использует системные коллекции. РџСЂРё обращении Рє сервису контента +//используются системный уровень прав для создания необходимых коллекций Рё получения данных: +//1. `system_extensions` (System Extensions) - доступна только системным пользователям +//2. `system_actions` (System Actions) - РїРѕ умолчанию доступна только системным пользователям, настройки доступа РЅР° чтение +//выдаются пользователям вручную. Р’ зависимости РѕС‚ пользователя РІ интерфейсе отображаются те или иные доступные действия. +// +//Проверка наличия коллекций Рё создание РІ случае РёС… отсутствия выполняется РІ момент установки расширений. После установки +//расширения РІ коллекцию `system_extensions` добавляется запись РѕР± установленном расширении. Действия добавляются РІ +//коллекцию `system_actions` расширениями РїРѕ собственному усмотрению РїСЂРё установке. +// +//Для обращения Рє расширениям используются права текущего пользователя запрашивающего операцию. Если пользователь РЅРµ +//обладает необходимыми правами для выполнения действия то операция вернет ошибку. +// + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.31.0 +// protoc v4.24.3 +// source: extensions/manager_service.proto + +package extensions + +import ( + 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 SpaceExtensions_State int32 + +const ( + SpaceExtensions_PENDING SpaceExtensions_State = 0 + SpaceExtensions_INSTALLED SpaceExtensions_State = 1 + SpaceExtensions_IN_PROGRESS SpaceExtensions_State = 2 + SpaceExtensions_FAIL SpaceExtensions_State = 3 +) + +// Enum value maps for SpaceExtensions_State. +var ( + SpaceExtensions_State_name = map[int32]string{ + 0: "PENDING", + 1: "INSTALLED", + 2: "IN_PROGRESS", + 3: "FAIL", + } + SpaceExtensions_State_value = map[string]int32{ + "PENDING": 0, + "INSTALLED": 1, + "IN_PROGRESS": 2, + "FAIL": 3, + } +) + +func (x SpaceExtensions_State) Enum() *SpaceExtensions_State { + p := new(SpaceExtensions_State) + *p = x + return p +} + +func (x SpaceExtensions_State) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SpaceExtensions_State) Descriptor() protoreflect.EnumDescriptor { + return file_extensions_manager_service_proto_enumTypes[0].Descriptor() +} + +func (SpaceExtensions_State) Type() protoreflect.EnumType { + return &file_extensions_manager_service_proto_enumTypes[0] +} + +func (x SpaceExtensions_State) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SpaceExtensions_State.Descriptor instead. +func (SpaceExtensions_State) EnumDescriptor() ([]byte, []int) { + return file_extensions_manager_service_proto_rawDescGZIP(), []int{10, 0} +} + +type GetExtensionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Extensions []string `protobuf:"bytes,1,rep,name=extensions,proto3" json:"extensions,omitempty"` // РРјСЏ расширения + SpaceId string `protobuf:"bytes,2,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"` // Пространство имен расширения + EnvId string `protobuf:"bytes,3,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"` // Рдентификатор окружения +} + +func (x *GetExtensionsRequest) Reset() { + *x = GetExtensionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_extensions_manager_service_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetExtensionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetExtensionsRequest) ProtoMessage() {} + +func (x *GetExtensionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_extensions_manager_service_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 GetExtensionsRequest.ProtoReflect.Descriptor instead. +func (*GetExtensionsRequest) Descriptor() ([]byte, []int) { + return file_extensions_manager_service_proto_rawDescGZIP(), []int{0} +} + +func (x *GetExtensionsRequest) GetExtensions() []string { + if x != nil { + return x.Extensions + } + return nil +} + +func (x *GetExtensionsRequest) GetSpaceId() string { + if x != nil { + return x.SpaceId + } + return "" +} + +func (x *GetExtensionsRequest) GetEnvId() string { + if x != nil { + return x.EnvId + } + return "" +} + +type GetExtensionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Status []*GetExtensionsResponse_Status `protobuf:"bytes,1,rep,name=status,proto3" json:"status,omitempty"` +} + +func (x *GetExtensionsResponse) Reset() { + *x = GetExtensionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_extensions_manager_service_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetExtensionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetExtensionsResponse) ProtoMessage() {} + +func (x *GetExtensionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_extensions_manager_service_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 GetExtensionsResponse.ProtoReflect.Descriptor instead. +func (*GetExtensionsResponse) Descriptor() ([]byte, []int) { + return file_extensions_manager_service_proto_rawDescGZIP(), []int{1} +} + +func (x *GetExtensionsResponse) GetStatus() []*GetExtensionsResponse_Status { + if x != nil { + return x.Status + } + return nil +} + +// ServiceDescription описание расширения (возвращается сервисом РїСЂРё регистрации) +type ExtensionDescriptor struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Extension string `protobuf:"bytes,10000,opt,name=extension,proto3" json:"extension,omitempty"` // РРјСЏ расширения + Title string `protobuf:"bytes,10010,opt,name=title,proto3" json:"title,omitempty"` // Название расширения + Description string `protobuf:"bytes,10020,opt,name=description,proto3" json:"description,omitempty"` // Описание расширения + Version string `protobuf:"bytes,10100,opt,name=version,proto3" json:"version,omitempty"` // Версия расширения + VersionDescription string `protobuf:"bytes,10110,opt,name=version_description,json=versionDescription,proto3" json:"version_description,omitempty"` // Описание версии + Deps []string `protobuf:"bytes,10200,rep,name=deps,proto3" json:"deps,omitempty"` // Зависимости РѕС‚ РґСЂСѓРіРёС… расширений + Url string `protobuf:"bytes,5,opt,name=url,proto3" json:"url,omitempty"` // Адрес для внутри сети, коммуникация между сервисами + Metadata map[string]string `protobuf:"bytes,6,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Метаданные сервиса, смотрите документацию РїРѕ сервису +} + +func (x *ExtensionDescriptor) Reset() { + *x = ExtensionDescriptor{} + if protoimpl.UnsafeEnabled { + mi := &file_extensions_manager_service_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ExtensionDescriptor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExtensionDescriptor) ProtoMessage() {} + +func (x *ExtensionDescriptor) ProtoReflect() protoreflect.Message { + mi := &file_extensions_manager_service_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 ExtensionDescriptor.ProtoReflect.Descriptor instead. +func (*ExtensionDescriptor) Descriptor() ([]byte, []int) { + return file_extensions_manager_service_proto_rawDescGZIP(), []int{2} +} + +func (x *ExtensionDescriptor) GetExtension() string { + if x != nil { + return x.Extension + } + return "" +} + +func (x *ExtensionDescriptor) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *ExtensionDescriptor) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *ExtensionDescriptor) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *ExtensionDescriptor) GetVersionDescription() string { + if x != nil { + return x.VersionDescription + } + return "" +} + +func (x *ExtensionDescriptor) GetDeps() []string { + if x != nil { + return x.Deps + } + return nil +} + +func (x *ExtensionDescriptor) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *ExtensionDescriptor) GetMetadata() map[string]string { + if x != nil { + return x.Metadata + } + return nil +} + +type RegisterExtensionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Extensions []*ExtensionDescriptor `protobuf:"bytes,1,rep,name=extensions,proto3" json:"extensions,omitempty"` +} + +func (x *RegisterExtensionsRequest) Reset() { + *x = RegisterExtensionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_extensions_manager_service_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterExtensionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterExtensionsRequest) ProtoMessage() {} + +func (x *RegisterExtensionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_extensions_manager_service_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 RegisterExtensionsRequest.ProtoReflect.Descriptor instead. +func (*RegisterExtensionsRequest) Descriptor() ([]byte, []int) { + return file_extensions_manager_service_proto_rawDescGZIP(), []int{3} +} + +func (x *RegisterExtensionsRequest) GetExtensions() []*ExtensionDescriptor { + if x != nil { + return x.Extensions + } + return nil +} + +type RegisterExtensionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *RegisterExtensionsResponse) Reset() { + *x = RegisterExtensionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_extensions_manager_service_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *RegisterExtensionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RegisterExtensionsResponse) ProtoMessage() {} + +func (x *RegisterExtensionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_extensions_manager_service_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 RegisterExtensionsResponse.ProtoReflect.Descriptor instead. +func (*RegisterExtensionsResponse) Descriptor() ([]byte, []int) { + return file_extensions_manager_service_proto_rawDescGZIP(), []int{4} +} + +type UnregisterExtensionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Extensions []*ExtensionDescriptor `protobuf:"bytes,1,rep,name=extensions,proto3" json:"extensions,omitempty"` +} + +func (x *UnregisterExtensionsRequest) Reset() { + *x = UnregisterExtensionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_extensions_manager_service_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnregisterExtensionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnregisterExtensionsRequest) ProtoMessage() {} + +func (x *UnregisterExtensionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_extensions_manager_service_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 UnregisterExtensionsRequest.ProtoReflect.Descriptor instead. +func (*UnregisterExtensionsRequest) Descriptor() ([]byte, []int) { + return file_extensions_manager_service_proto_rawDescGZIP(), []int{5} +} + +func (x *UnregisterExtensionsRequest) GetExtensions() []*ExtensionDescriptor { + if x != nil { + return x.Extensions + } + return nil +} + +type UnregisterExtensionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *UnregisterExtensionsResponse) Reset() { + *x = UnregisterExtensionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_extensions_manager_service_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UnregisterExtensionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnregisterExtensionsResponse) ProtoMessage() {} + +func (x *UnregisterExtensionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_extensions_manager_service_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 UnregisterExtensionsResponse.ProtoReflect.Descriptor instead. +func (*UnregisterExtensionsResponse) Descriptor() ([]byte, []int) { + return file_extensions_manager_service_proto_rawDescGZIP(), []int{6} +} + +type ListExtensionsFilter struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Extension []string `protobuf:"bytes,1,rep,name=extension,proto3" json:"extension,omitempty"` // РЎРїРёСЃРѕРє имен сервисов для получения результатов. РЎРїРёСЃРѕРє может содержать регулярные выражения. +} + +func (x *ListExtensionsFilter) Reset() { + *x = ListExtensionsFilter{} + if protoimpl.UnsafeEnabled { + mi := &file_extensions_manager_service_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListExtensionsFilter) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListExtensionsFilter) ProtoMessage() {} + +func (x *ListExtensionsFilter) ProtoReflect() protoreflect.Message { + mi := &file_extensions_manager_service_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 ListExtensionsFilter.ProtoReflect.Descriptor instead. +func (*ListExtensionsFilter) Descriptor() ([]byte, []int) { + return file_extensions_manager_service_proto_rawDescGZIP(), []int{7} +} + +func (x *ListExtensionsFilter) GetExtension() []string { + if x != nil { + return x.Extension + } + return nil +} + +type ListExtensionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Filter *ListExtensionsFilter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"` +} + +func (x *ListExtensionsRequest) Reset() { + *x = ListExtensionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_extensions_manager_service_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListExtensionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListExtensionsRequest) ProtoMessage() {} + +func (x *ListExtensionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_extensions_manager_service_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListExtensionsRequest.ProtoReflect.Descriptor instead. +func (*ListExtensionsRequest) Descriptor() ([]byte, []int) { + return file_extensions_manager_service_proto_rawDescGZIP(), []int{8} +} + +func (x *ListExtensionsRequest) GetFilter() *ListExtensionsFilter { + if x != nil { + return x.Filter + } + return nil +} + +type ListExtensionsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Extensions []*ExtensionDescriptor `protobuf:"bytes,1,rep,name=extensions,proto3" json:"extensions,omitempty"` +} + +func (x *ListExtensionsResponse) Reset() { + *x = ListExtensionsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_extensions_manager_service_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListExtensionsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListExtensionsResponse) ProtoMessage() {} + +func (x *ListExtensionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_extensions_manager_service_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 ListExtensionsResponse.ProtoReflect.Descriptor instead. +func (*ListExtensionsResponse) Descriptor() ([]byte, []int) { + return file_extensions_manager_service_proto_rawDescGZIP(), []int{9} +} + +func (x *ListExtensionsResponse) GetExtensions() []*ExtensionDescriptor { + if x != nil { + return x.Extensions + } + return nil +} + +// Описание коллекций +// space_extensions (Пространство/Расширения) +type SpaceExtensions struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Extension string `protobuf:"bytes,10000,opt,name=extension,proto3" json:"extension,omitempty"` + Title string `protobuf:"bytes,10010,opt,name=title,proto3" json:"title,omitempty"` + Version string `protobuf:"bytes,10100,opt,name=version,proto3" json:"version,omitempty"` + Deps []string `protobuf:"bytes,10200,rep,name=deps,proto3" json:"deps,omitempty"` + State SpaceExtensions_State `protobuf:"varint,10300,opt,name=state,proto3,enum=extensions.SpaceExtensions_State" json:"state,omitempty"` + StatusError string `protobuf:"bytes,10400,opt,name=status_error,json=statusError,proto3" json:"status_error,omitempty"` // Сообщение Рє ошибке + StatusMsg string `protobuf:"bytes,10500,opt,name=status_msg,json=statusMsg,proto3" json:"status_msg,omitempty"` // Сообщение Рє статусу +} + +func (x *SpaceExtensions) Reset() { + *x = SpaceExtensions{} + if protoimpl.UnsafeEnabled { + mi := &file_extensions_manager_service_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SpaceExtensions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SpaceExtensions) ProtoMessage() {} + +func (x *SpaceExtensions) ProtoReflect() protoreflect.Message { + mi := &file_extensions_manager_service_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 SpaceExtensions.ProtoReflect.Descriptor instead. +func (*SpaceExtensions) Descriptor() ([]byte, []int) { + return file_extensions_manager_service_proto_rawDescGZIP(), []int{10} +} + +func (x *SpaceExtensions) GetExtension() string { + if x != nil { + return x.Extension + } + return "" +} + +func (x *SpaceExtensions) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *SpaceExtensions) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *SpaceExtensions) GetDeps() []string { + if x != nil { + return x.Deps + } + return nil +} + +func (x *SpaceExtensions) GetState() SpaceExtensions_State { + if x != nil { + return x.State + } + return SpaceExtensions_PENDING +} + +func (x *SpaceExtensions) GetStatusError() string { + if x != nil { + return x.StatusError + } + return "" +} + +func (x *SpaceExtensions) GetStatusMsg() string { + if x != nil { + return x.StatusMsg + } + return "" +} + +type GetExtensionsResponse_Status struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + 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) + NotFound bool `protobuf:"varint,10350,opt,name=not_found,json=notFound,proto3" json:"not_found,omitempty"` // Расширение РЅРµ найдено + Installed bool `protobuf:"varint,10400,opt,name=installed,proto3" json:"installed,omitempty"` // Расширение установлено + UpdateAvailable bool `protobuf:"varint,10500,opt,name=update_available,json=updateAvailable,proto3" json:"update_available,omitempty"` // Доступно обновление + InstalledVersion string `protobuf:"bytes,10510,opt,name=installed_version,json=installedVersion,proto3" json:"installed_version,omitempty"` // Установленная версия расширения + AvailableVersion string `protobuf:"bytes,10520,opt,name=available_version,json=availableVersion,proto3" json:"available_version,omitempty"` // Доступная версия расширения +} + +func (x *GetExtensionsResponse_Status) Reset() { + *x = GetExtensionsResponse_Status{} + if protoimpl.UnsafeEnabled { + mi := &file_extensions_manager_service_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetExtensionsResponse_Status) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetExtensionsResponse_Status) ProtoMessage() {} + +func (x *GetExtensionsResponse_Status) ProtoReflect() protoreflect.Message { + mi := &file_extensions_manager_service_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 GetExtensionsResponse_Status.ProtoReflect.Descriptor instead. +func (*GetExtensionsResponse_Status) Descriptor() ([]byte, []int) { + return file_extensions_manager_service_proto_rawDescGZIP(), []int{1, 0} +} + +func (x *GetExtensionsResponse_Status) GetExtension() string { + if x != nil { + return x.Extension + } + return "" +} + +func (x *GetExtensionsResponse_Status) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetExtensionsResponse_Status) GetError() string { + if x != nil { + return x.Error + } + return "" +} + +func (x *GetExtensionsResponse_Status) GetNotFound() bool { + if x != nil { + return x.NotFound + } + return false +} + +func (x *GetExtensionsResponse_Status) GetInstalled() bool { + if x != nil { + return x.Installed + } + return false +} + +func (x *GetExtensionsResponse_Status) GetUpdateAvailable() bool { + if x != nil { + return x.UpdateAvailable + } + return false +} + +func (x *GetExtensionsResponse_Status) GetInstalledVersion() string { + if x != nil { + return x.InstalledVersion + } + return "" +} + +func (x *GetExtensionsResponse_Status) GetAvailableVersion() string { + if x != nil { + return x.AvailableVersion + } + return "" +} + +var File_extensions_manager_service_proto protoreflect.FileDescriptor + +var file_extensions_manager_service_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x68, + 0x0a, 0x14, 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, + 0x64, 0x12, 0x15, 0x0a, 0x06, 0x65, 0x6e, 0x76, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x65, 0x6e, 0x76, 0x49, 0x64, 0x22, 0xf2, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x1a, 0x96, 0x02, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x1c, 0x0a, 0x09, 0x6e, 0x6f, 0x74, 0x5f, + 0x66, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0xee, 0x50, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e, 0x6f, + 0x74, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, + 0x6c, 0x65, 0x64, 0x18, 0xa0, 0x51, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x6e, 0x73, 0x74, + 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x84, 0x52, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x8e, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, + 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x2c, 0x0a, 0x11, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x98, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x76, 0x61, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xea, 0x02, + 0x0a, 0x13, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 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, 0x15, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x9a, 0x4e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xa4, 0x4e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0xf4, 0x4e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x13, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0xfe, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a, 0x04, 0x64, + 0x65, 0x70, 0x73, 0x18, 0xd8, 0x4f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x70, 0x73, + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, + 0x72, 0x6c, 0x12, 0x49, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x06, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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, 0x5c, 0x0a, 0x19, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x1c, 0x0a, 0x1a, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5e, 0x0a, 0x1b, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x1e, 0x0a, 0x1c, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, + 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x15, + 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x38, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, + 0x59, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x0a, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xb5, 0x02, 0x0a, 0x0f, 0x53, + 0x70, 0x61, 0x63, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 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, 0x15, 0x0a, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x9a, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0xf4, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x13, 0x0a, 0x04, 0x64, 0x65, 0x70, 0x73, 0x18, 0xd8, 0x4f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, + 0x64, 0x65, 0x70, 0x73, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0xbc, 0x50, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x22, + 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0xa0, + 0x51, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6d, 0x73, 0x67, + 0x18, 0x84, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4d, + 0x73, 0x67, 0x22, 0x3e, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x50, + 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x49, 0x4e, 0x53, 0x54, + 0x41, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x49, 0x4e, 0x5f, 0x50, 0x52, + 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x41, 0x49, 0x4c, + 0x10, 0x03, 0x32, 0xa0, 0x03, 0x0a, 0x17, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x65, + 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x25, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x65, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, + 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x14, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x2e, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x55, 0x6e, 0x72, 0x65, 0x67, + 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x55, 0x6e, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x59, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x56, 0x0a, + 0x0d, 0x47, 0x65, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x20, + 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 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_manager_service_proto_rawDescOnce sync.Once + file_extensions_manager_service_proto_rawDescData = file_extensions_manager_service_proto_rawDesc +) + +func file_extensions_manager_service_proto_rawDescGZIP() []byte { + file_extensions_manager_service_proto_rawDescOnce.Do(func() { + file_extensions_manager_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_extensions_manager_service_proto_rawDescData) + }) + return file_extensions_manager_service_proto_rawDescData +} + +var file_extensions_manager_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_extensions_manager_service_proto_msgTypes = make([]protoimpl.MessageInfo, 13) +var file_extensions_manager_service_proto_goTypes = []interface{}{ + (SpaceExtensions_State)(0), // 0: extensions.SpaceExtensions.State + (*GetExtensionsRequest)(nil), // 1: extensions.GetExtensionsRequest + (*GetExtensionsResponse)(nil), // 2: extensions.GetExtensionsResponse + (*ExtensionDescriptor)(nil), // 3: extensions.ExtensionDescriptor + (*RegisterExtensionsRequest)(nil), // 4: extensions.RegisterExtensionsRequest + (*RegisterExtensionsResponse)(nil), // 5: extensions.RegisterExtensionsResponse + (*UnregisterExtensionsRequest)(nil), // 6: extensions.UnregisterExtensionsRequest + (*UnregisterExtensionsResponse)(nil), // 7: extensions.UnregisterExtensionsResponse + (*ListExtensionsFilter)(nil), // 8: extensions.ListExtensionsFilter + (*ListExtensionsRequest)(nil), // 9: extensions.ListExtensionsRequest + (*ListExtensionsResponse)(nil), // 10: extensions.ListExtensionsResponse + (*SpaceExtensions)(nil), // 11: extensions.SpaceExtensions + (*GetExtensionsResponse_Status)(nil), // 12: extensions.GetExtensionsResponse.Status + nil, // 13: extensions.ExtensionDescriptor.MetadataEntry +} +var file_extensions_manager_service_proto_depIdxs = []int32{ + 12, // 0: extensions.GetExtensionsResponse.status:type_name -> extensions.GetExtensionsResponse.Status + 13, // 1: extensions.ExtensionDescriptor.metadata:type_name -> extensions.ExtensionDescriptor.MetadataEntry + 3, // 2: extensions.RegisterExtensionsRequest.extensions:type_name -> extensions.ExtensionDescriptor + 3, // 3: extensions.UnregisterExtensionsRequest.extensions:type_name -> extensions.ExtensionDescriptor + 8, // 4: extensions.ListExtensionsRequest.filter:type_name -> extensions.ListExtensionsFilter + 3, // 5: extensions.ListExtensionsResponse.extensions:type_name -> extensions.ExtensionDescriptor + 0, // 6: extensions.SpaceExtensions.state:type_name -> extensions.SpaceExtensions.State + 4, // 7: extensions.ExtensionManagerService.RegisterExtensions:input_type -> extensions.RegisterExtensionsRequest + 6, // 8: extensions.ExtensionManagerService.UnregisterExtensions:input_type -> extensions.UnregisterExtensionsRequest + 9, // 9: extensions.ExtensionManagerService.ListExtensions:input_type -> extensions.ListExtensionsRequest + 1, // 10: extensions.ExtensionManagerService.GetExtensions:input_type -> extensions.GetExtensionsRequest + 5, // 11: extensions.ExtensionManagerService.RegisterExtensions:output_type -> extensions.RegisterExtensionsResponse + 7, // 12: extensions.ExtensionManagerService.UnregisterExtensions:output_type -> extensions.UnregisterExtensionsResponse + 10, // 13: extensions.ExtensionManagerService.ListExtensions:output_type -> extensions.ListExtensionsResponse + 2, // 14: extensions.ExtensionManagerService.GetExtensions:output_type -> extensions.GetExtensionsResponse + 11, // [11:15] is the sub-list for method output_type + 7, // [7:11] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name +} + +func init() { file_extensions_manager_service_proto_init() } +func file_extensions_manager_service_proto_init() { + if File_extensions_manager_service_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_extensions_manager_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetExtensionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_extensions_manager_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetExtensionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_extensions_manager_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ExtensionDescriptor); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_extensions_manager_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterExtensionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_extensions_manager_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterExtensionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_extensions_manager_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnregisterExtensionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_extensions_manager_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnregisterExtensionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_extensions_manager_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListExtensionsFilter); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_extensions_manager_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListExtensionsRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_extensions_manager_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ListExtensionsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_extensions_manager_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SpaceExtensions); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_extensions_manager_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetExtensionsResponse_Status); 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_manager_service_proto_rawDesc, + NumEnums: 1, + NumMessages: 13, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_extensions_manager_service_proto_goTypes, + DependencyIndexes: file_extensions_manager_service_proto_depIdxs, + EnumInfos: file_extensions_manager_service_proto_enumTypes, + MessageInfos: file_extensions_manager_service_proto_msgTypes, + }.Build() + File_extensions_manager_service_proto = out.File + file_extensions_manager_service_proto_rawDesc = nil + file_extensions_manager_service_proto_goTypes = nil + file_extensions_manager_service_proto_depIdxs = nil +} diff --git a/proto/extensions/manager_service_grpc.pb.go b/proto/extensions/manager_service_grpc.pb.go new file mode 100644 index 0000000000000000000000000000000000000000..5d83652ff60c8210214501e0da0a1aa8fc23bcf3 --- /dev/null +++ b/proto/extensions/manager_service_grpc.pb.go @@ -0,0 +1,276 @@ +//* +// +//# Менеджер расширений +// +//Реализует функционал РїРѕ координации расширений РІ системе Рё служит единой точкой доступа для работы СЃ расширениями: +//- Регистрирует РІСЃРµ расширения РІ едином реестре +//- Предоставляет доступ Рє реестру расширений РЅР° получение доступных расширений РІ системе +//- Контролирует процесс установки расширения, устанавливает РІСЃРµ необходимые зависимости РІ правильном РїРѕСЂСЏРґРєРµ +//- Контролирует создание системной коллекции `system_extensions` (System/Extensions) Рё создание/удалений РІ ней установленных расширений +//- Контролирует создание системной коллекции `system_actions` (System/Actions). Выполняет удаление всех действий связанных +//СЃ расширением РїСЂРё его удалении. +//- Выполняет переадресацию запросов РЅР° действия для расширений +// +//Менеджер расширений для контроля установленных расширений использует системные коллекции. РџСЂРё обращении Рє сервису контента +//используются системный уровень прав для создания необходимых коллекций Рё получения данных: +//1. `system_extensions` (System Extensions) - доступна только системным пользователям +//2. `system_actions` (System Actions) - РїРѕ умолчанию доступна только системным пользователям, настройки доступа РЅР° чтение +//выдаются пользователям вручную. Р’ зависимости РѕС‚ пользователя РІ интерфейсе отображаются те или иные доступные действия. +// +//Проверка наличия коллекций Рё создание РІ случае РёС… отсутствия выполняется РІ момент установки расширений. После установки +//расширения РІ коллекцию `system_extensions` добавляется запись РѕР± установленном расширении. Действия добавляются РІ +//коллекцию `system_actions` расширениями РїРѕ собственному усмотрению РїСЂРё установке. +// +//Для обращения Рє расширениям используются права текущего пользователя запрашивающего операцию. Если пользователь РЅРµ +//обладает необходимыми правами для выполнения действия то операция вернет ошибку. +// + +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.24.3 +// source: extensions/manager_service.proto + +package extensions + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + ExtensionManagerService_RegisterExtensions_FullMethodName = "/extensions.ExtensionManagerService/RegisterExtensions" + ExtensionManagerService_UnregisterExtensions_FullMethodName = "/extensions.ExtensionManagerService/UnregisterExtensions" + ExtensionManagerService_ListExtensions_FullMethodName = "/extensions.ExtensionManagerService/ListExtensions" + ExtensionManagerService_GetExtensions_FullMethodName = "/extensions.ExtensionManagerService/GetExtensions" +) + +// ExtensionManagerServiceClient is the client API for ExtensionManagerService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type ExtensionManagerServiceClient interface { + // ## Регистрация расширений + // + // Регистрация\Дерегистрация происходить через сервис менеджера расширений (Extension Manager). Р’ процессе регистрации сервис сообщает + // Рѕ поддерживаемых сервисом действиях (Actions) Рё версии сервиса Рё зависимостях: + // 1. Действия (Actions) - перечень действия которые обрабатываются сервисом. Включает РІ себя как системные действия, + // так Рё пользовательские, которые РјРѕРіСѓС‚ быть использованы РІ интерфейсе; + // 2. РРјСЏ сервиса/расширения - название сервиса внутри системы; + // 3. Версия сервиса - сервис сообщает текущую версию сервиса. Контроллер сообщает пользователю Рѕ возможности обновления + // расширения РїСЂРё смене версии; + // 4. Описание версии - содержит информацию РѕР± изменениях РІ последних версиях расширения; + // 5. Зависимости - перечень расширений которые необходимы сервису для функционирования. РџСЂРё установке сервиса + // РІСЃРµ расширения РѕС‚ которых РѕРЅ зависит, Р±СѓРґСѓС‚ так Р¶Рµ установлены. + RegisterExtensions(ctx context.Context, in *RegisterExtensionsRequest, opts ...grpc.CallOption) (*RegisterExtensionsResponse, error) + UnregisterExtensions(ctx context.Context, in *UnregisterExtensionsRequest, opts ...grpc.CallOption) (*UnregisterExtensionsResponse, error) + // Получить СЃРїРёСЃРѕРє зарегистрированных сервисов + ListExtensions(ctx context.Context, in *ListExtensionsRequest, opts ...grpc.CallOption) (*ListExtensionsResponse, error) + // GetExtensionStatus - получить статус расширения + GetExtensions(ctx context.Context, in *GetExtensionsRequest, opts ...grpc.CallOption) (*GetExtensionsResponse, error) +} + +type extensionManagerServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewExtensionManagerServiceClient(cc grpc.ClientConnInterface) ExtensionManagerServiceClient { + return &extensionManagerServiceClient{cc} +} + +func (c *extensionManagerServiceClient) RegisterExtensions(ctx context.Context, in *RegisterExtensionsRequest, opts ...grpc.CallOption) (*RegisterExtensionsResponse, error) { + out := new(RegisterExtensionsResponse) + err := c.cc.Invoke(ctx, ExtensionManagerService_RegisterExtensions_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *extensionManagerServiceClient) UnregisterExtensions(ctx context.Context, in *UnregisterExtensionsRequest, opts ...grpc.CallOption) (*UnregisterExtensionsResponse, error) { + out := new(UnregisterExtensionsResponse) + err := c.cc.Invoke(ctx, ExtensionManagerService_UnregisterExtensions_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *extensionManagerServiceClient) ListExtensions(ctx context.Context, in *ListExtensionsRequest, opts ...grpc.CallOption) (*ListExtensionsResponse, error) { + out := new(ListExtensionsResponse) + err := c.cc.Invoke(ctx, ExtensionManagerService_ListExtensions_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *extensionManagerServiceClient) GetExtensions(ctx context.Context, in *GetExtensionsRequest, opts ...grpc.CallOption) (*GetExtensionsResponse, error) { + out := new(GetExtensionsResponse) + err := c.cc.Invoke(ctx, ExtensionManagerService_GetExtensions_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// ExtensionManagerServiceServer is the server API for ExtensionManagerService service. +// All implementations must embed UnimplementedExtensionManagerServiceServer +// for forward compatibility +type ExtensionManagerServiceServer interface { + // ## Регистрация расширений + // + // Регистрация\Дерегистрация происходить через сервис менеджера расширений (Extension Manager). Р’ процессе регистрации сервис сообщает + // Рѕ поддерживаемых сервисом действиях (Actions) Рё версии сервиса Рё зависимостях: + // 1. Действия (Actions) - перечень действия которые обрабатываются сервисом. Включает РІ себя как системные действия, + // так Рё пользовательские, которые РјРѕРіСѓС‚ быть использованы РІ интерфейсе; + // 2. РРјСЏ сервиса/расширения - название сервиса внутри системы; + // 3. Версия сервиса - сервис сообщает текущую версию сервиса. Контроллер сообщает пользователю Рѕ возможности обновления + // расширения РїСЂРё смене версии; + // 4. Описание версии - содержит информацию РѕР± изменениях РІ последних версиях расширения; + // 5. Зависимости - перечень расширений которые необходимы сервису для функционирования. РџСЂРё установке сервиса + // РІСЃРµ расширения РѕС‚ которых РѕРЅ зависит, Р±СѓРґСѓС‚ так Р¶Рµ установлены. + RegisterExtensions(context.Context, *RegisterExtensionsRequest) (*RegisterExtensionsResponse, error) + UnregisterExtensions(context.Context, *UnregisterExtensionsRequest) (*UnregisterExtensionsResponse, error) + // Получить СЃРїРёСЃРѕРє зарегистрированных сервисов + ListExtensions(context.Context, *ListExtensionsRequest) (*ListExtensionsResponse, error) + // GetExtensionStatus - получить статус расширения + GetExtensions(context.Context, *GetExtensionsRequest) (*GetExtensionsResponse, error) + mustEmbedUnimplementedExtensionManagerServiceServer() +} + +// UnimplementedExtensionManagerServiceServer must be embedded to have forward compatible implementations. +type UnimplementedExtensionManagerServiceServer struct { +} + +func (UnimplementedExtensionManagerServiceServer) RegisterExtensions(context.Context, *RegisterExtensionsRequest) (*RegisterExtensionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method RegisterExtensions not implemented") +} +func (UnimplementedExtensionManagerServiceServer) UnregisterExtensions(context.Context, *UnregisterExtensionsRequest) (*UnregisterExtensionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UnregisterExtensions not implemented") +} +func (UnimplementedExtensionManagerServiceServer) ListExtensions(context.Context, *ListExtensionsRequest) (*ListExtensionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListExtensions not implemented") +} +func (UnimplementedExtensionManagerServiceServer) GetExtensions(context.Context, *GetExtensionsRequest) (*GetExtensionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetExtensions not implemented") +} +func (UnimplementedExtensionManagerServiceServer) mustEmbedUnimplementedExtensionManagerServiceServer() { +} + +// UnsafeExtensionManagerServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to ExtensionManagerServiceServer will +// result in compilation errors. +type UnsafeExtensionManagerServiceServer interface { + mustEmbedUnimplementedExtensionManagerServiceServer() +} + +func RegisterExtensionManagerServiceServer(s grpc.ServiceRegistrar, srv ExtensionManagerServiceServer) { + s.RegisterService(&ExtensionManagerService_ServiceDesc, srv) +} + +func _ExtensionManagerService_RegisterExtensions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RegisterExtensionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExtensionManagerServiceServer).RegisterExtensions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ExtensionManagerService_RegisterExtensions_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExtensionManagerServiceServer).RegisterExtensions(ctx, req.(*RegisterExtensionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ExtensionManagerService_UnregisterExtensions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UnregisterExtensionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExtensionManagerServiceServer).UnregisterExtensions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ExtensionManagerService_UnregisterExtensions_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExtensionManagerServiceServer).UnregisterExtensions(ctx, req.(*UnregisterExtensionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ExtensionManagerService_ListExtensions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListExtensionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExtensionManagerServiceServer).ListExtensions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ExtensionManagerService_ListExtensions_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExtensionManagerServiceServer).ListExtensions(ctx, req.(*ListExtensionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _ExtensionManagerService_GetExtensions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetExtensionsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ExtensionManagerServiceServer).GetExtensions(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ExtensionManagerService_GetExtensions_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ExtensionManagerServiceServer).GetExtensions(ctx, req.(*GetExtensionsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +// ExtensionManagerService_ServiceDesc is the grpc.ServiceDesc for ExtensionManagerService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var ExtensionManagerService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "extensions.ExtensionManagerService", + HandlerType: (*ExtensionManagerServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "RegisterExtensions", + Handler: _ExtensionManagerService_RegisterExtensions_Handler, + }, + { + MethodName: "UnregisterExtensions", + Handler: _ExtensionManagerService_UnregisterExtensions_Handler, + }, + { + MethodName: "ListExtensions", + Handler: _ExtensionManagerService_ListExtensions_Handler, + }, + { + MethodName: "GetExtensions", + Handler: _ExtensionManagerService_GetExtensions_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "extensions/manager_service.proto", +} diff --git a/proto/files/files.pb.go b/proto/files/files.pb.go index aa4c401790f2198c902b0bf2ab2b04f81c37390e..8f93164f9b2f1957fd62aca0fe29a7cdc62d4b29 100644 --- a/proto/files/files.pb.go +++ b/proto/files/files.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.29.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: files/files.proto package files diff --git a/proto/files/files_grpc.pb.go b/proto/files/files_grpc.pb.go index ee2444091e3d3fa32ee913d3ea76a3de24588c79..234e28599a99f74e704121aeda9e82a9f37005b4 100644 --- a/proto/files/files_grpc.pb.go +++ b/proto/files/files_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.21.12 +// - protoc v4.24.3 // source: files/files.proto package files diff --git a/proto/images/images.pb.go b/proto/images/images.pb.go index 0142bf158096fa9dcb535aabc323e9e405dee60f..4f95cb6da087725f8af05fbca35955d9e02c7608 100644 --- a/proto/images/images.pb.go +++ b/proto/images/images.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.29.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: images/images.proto package images diff --git a/proto/images/images_grpc.pb.go b/proto/images/images_grpc.pb.go index 94d3cef36b1c51b7b0256d54a4fc26936cc9fcec..272c6580743f491a78834708bdcacfef2a166f86 100644 --- a/proto/images/images_grpc.pb.go +++ b/proto/images/images_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.21.12 +// - protoc v4.24.3 // source: images/images.proto package images diff --git a/proto/invitations/invitations.pb.go b/proto/invitations/invitations.pb.go index 7ebe5e43aa3cd9463ba7c00c3e60fbdafc262db8..1e9fd729c0ffba1903d60f70ba8f89041684b11d 100644 --- a/proto/invitations/invitations.pb.go +++ b/proto/invitations/invitations.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.29.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: invitations/invitations.proto package invitations diff --git a/proto/invitations/invitations_grpc.pb.go b/proto/invitations/invitations_grpc.pb.go index cb7a47924a439fae10ca3dbc8ae37951e9b8a09b..d5137fec4deee51fb509d7ee0ba9e0c235f57668 100644 --- a/proto/invitations/invitations_grpc.pb.go +++ b/proto/invitations/invitations_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.21.12 +// - protoc v4.24.3 // source: invitations/invitations.proto package invitations diff --git a/proto/items/items.pb.go b/proto/items/items.pb.go index c334f0d43f428774856cfddcc36a59a4b834a91b..577d218baf66aae7881a4d084307e47bec73f44b 100644 --- a/proto/items/items.pb.go +++ b/proto/items/items.pb.go @@ -8,8 +8,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.30.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: items/items.proto package items diff --git a/proto/items/items_grpc.pb.go b/proto/items/items_grpc.pb.go index 7c7d321a9b1a57290a874dc8723679e9b6e755f2..b246b7627a8bbbdaaba51165e9f7b7e936691a11 100644 --- a/proto/items/items_grpc.pb.go +++ b/proto/items/items_grpc.pb.go @@ -9,7 +9,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.21.12 +// - protoc v4.24.3 // source: items/items.proto package items diff --git a/proto/locales/locales.pb.go b/proto/locales/locales.pb.go index b4976bef329f5416bf10bd25f2dc2d8559b15d97..6ed197b9a1d42660f0211daaaba01f7334ff93df 100644 --- a/proto/locales/locales.pb.go +++ b/proto/locales/locales.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.29.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: locales/locales.proto package locales diff --git a/proto/locales/locales_grpc.pb.go b/proto/locales/locales_grpc.pb.go index 6d2cc59bfb68665cb229a72830e646c7eb0aa30d..d8f5e712b8b06e5646d56020c1e0cb06ae24545f 100644 --- a/proto/locales/locales_grpc.pb.go +++ b/proto/locales/locales_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.21.12 +// - protoc v4.24.3 // source: locales/locales.proto package locales diff --git a/proto/members/members.pb.go b/proto/members/members.pb.go index f64cccf98ba400727fa1fa8e621978fb9b2133c2..a939a3f8189f6f100b61a4ad070a3c4fb30fb023 100644 --- a/proto/members/members.pb.go +++ b/proto/members/members.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.29.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: members/members.proto package members diff --git a/proto/members/members_grpc.pb.go b/proto/members/members_grpc.pb.go index 8e8a103fd6254175c04f60df28c710ea72e3a060..c0216bfe1d7c10c12a4d02d32b5ba6774cfcd59c 100644 --- a/proto/members/members_grpc.pb.go +++ b/proto/members/members_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.21.12 +// - protoc v4.24.3 // source: members/members.proto package members diff --git a/proto/organizations/organizations.pb.go b/proto/organizations/organizations.pb.go index fa19fd7b92e181a9bac136d55a0a9805cb68f3c0..b744640573280053557944e9cbd93a43b0be7b46 100644 --- a/proto/organizations/organizations.pb.go +++ b/proto/organizations/organizations.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.29.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: organizations/organizations.proto package organizations diff --git a/proto/organizations/organizations_grpc.pb.go b/proto/organizations/organizations_grpc.pb.go index 5e49e478a36c39bc65d5f48b559c63f04dcbed1a..dc737ac9a2eb95cb6c977f537216942dfd4164d7 100644 --- a/proto/organizations/organizations_grpc.pb.go +++ b/proto/organizations/organizations_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.21.12 +// - protoc v4.24.3 // source: organizations/organizations.proto package organizations diff --git a/proto/references/references.pb.go b/proto/references/references.pb.go index 3ed0a65b0a7aa010299850c3315ad745e939442b..64895f9fa4b2e475dbc9444ee9998fc3d4204699 100644 --- a/proto/references/references.pb.go +++ b/proto/references/references.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.3 // source: references/references.proto package references diff --git a/proto/references/references_grpc.pb.go b/proto/references/references_grpc.pb.go index 61a8dbdb68a115dbf67c8f6211227b58c7d363cf..750571cede9b697ed3392cd96941b2db54934fcb 100644 --- a/proto/references/references_grpc.pb.go +++ b/proto/references/references_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v4.23.4 +// - protoc v4.24.3 // source: references/references.proto package references @@ -31,14 +31,14 @@ type ReferencesClient interface { Get(ctx context.Context, in *GetRequest, opts ...grpc.CallOption) (*GetResponse, error) // Publish принимает СЃРїРёСЃРѕРє ссылок РЅР° записи Рё публикует РёС… СЃ учетом вложенных ссылок. // - // - Р’ случае если флаг `recursive` установлен РІ true, то Р±СѓРґСѓС‚ рекурсивно опубликованы - // РІСЃРµ записи РЅР° которые ссылаются найденные записи. - // - Если флаг `recursive` установлен РІ false, то Р±СѓРґСѓС‚ опубликованы записи - // только РёР· СЃРїРёСЃРєР° `references` РІ случае если РѕРЅРё РЅРµ содержат РЅРµ опубликованных - // ссылок. Р’ противном случае возвращается СЃРїРёСЃРѕРє РЅРµ опубликованных записей `unpublished` - // которые требуют публикации. РЎРїРёСЃРѕРє `published` РїСЂРё этом будет пустым. Р’ случае если флаг - // `force` установлен РІ true, то записи Р±СѓРґСѓС‚ опубликованы даже если РѕРЅРё содержат - // РЅРµ опубликованные ссылки. + // - Р’ случае если флаг `recursive` установлен РІ true, то Р±СѓРґСѓС‚ рекурсивно опубликованы + // РІСЃРµ записи РЅР° которые ссылаются найденные записи. + // - Если флаг `recursive` установлен РІ false, то Р±СѓРґСѓС‚ опубликованы записи + // только РёР· СЃРїРёСЃРєР° `references` РІ случае если РѕРЅРё РЅРµ содержат РЅРµ опубликованных + // ссылок. Р’ противном случае возвращается СЃРїРёСЃРѕРє РЅРµ опубликованных записей `unpublished` + // которые требуют публикации. РЎРїРёСЃРѕРє `published` РїСЂРё этом будет пустым. Р’ случае если флаг + // `force` установлен РІ true, то записи Р±СѓРґСѓС‚ опубликованы даже если РѕРЅРё содержат + // РЅРµ опубликованные ссылки. Publish(ctx context.Context, in *PublishRequest, opts ...grpc.CallOption) (*PublishResponse, error) } @@ -76,14 +76,14 @@ type ReferencesServer interface { Get(context.Context, *GetRequest) (*GetResponse, error) // Publish принимает СЃРїРёСЃРѕРє ссылок РЅР° записи Рё публикует РёС… СЃ учетом вложенных ссылок. // - // - Р’ случае если флаг `recursive` установлен РІ true, то Р±СѓРґСѓС‚ рекурсивно опубликованы - // РІСЃРµ записи РЅР° которые ссылаются найденные записи. - // - Если флаг `recursive` установлен РІ false, то Р±СѓРґСѓС‚ опубликованы записи - // только РёР· СЃРїРёСЃРєР° `references` РІ случае если РѕРЅРё РЅРµ содержат РЅРµ опубликованных - // ссылок. Р’ противном случае возвращается СЃРїРёСЃРѕРє РЅРµ опубликованных записей `unpublished` - // которые требуют публикации. РЎРїРёСЃРѕРє `published` РїСЂРё этом будет пустым. Р’ случае если флаг - // `force` установлен РІ true, то записи Р±СѓРґСѓС‚ опубликованы даже если РѕРЅРё содержат - // РЅРµ опубликованные ссылки. + // - Р’ случае если флаг `recursive` установлен РІ true, то Р±СѓРґСѓС‚ рекурсивно опубликованы + // РІСЃРµ записи РЅР° которые ссылаются найденные записи. + // - Если флаг `recursive` установлен РІ false, то Р±СѓРґСѓС‚ опубликованы записи + // только РёР· СЃРїРёСЃРєР° `references` РІ случае если РѕРЅРё РЅРµ содержат РЅРµ опубликованных + // ссылок. Р’ противном случае возвращается СЃРїРёСЃРѕРє РЅРµ опубликованных записей `unpublished` + // которые требуют публикации. РЎРїРёСЃРѕРє `published` РїСЂРё этом будет пустым. Р’ случае если флаг + // `force` установлен РІ true, то записи Р±СѓРґСѓС‚ опубликованы даже если РѕРЅРё содержат + // РЅРµ опубликованные ссылки. Publish(context.Context, *PublishRequest) (*PublishResponse, error) mustEmbedUnimplementedReferencesServer() } diff --git a/proto/roles/roles.pb.go b/proto/roles/roles.pb.go index 56a202a4fbe3cec46e1b6221bceb1050b031d373..0d70814977a6b765b8377739bd3f43704b98ec02 100644 --- a/proto/roles/roles.pb.go +++ b/proto/roles/roles.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.29.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: roles/roles.proto package roles diff --git a/proto/roles/roles_grpc.pb.go b/proto/roles/roles_grpc.pb.go index 596c13fb4a72989aa5b4334908fc45c5fa97fcc6..13000eb2e08429aa6fcc93d5e133d4e3012c05ff 100644 --- a/proto/roles/roles_grpc.pb.go +++ b/proto/roles/roles_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.21.12 +// - protoc v4.24.3 // source: roles/roles.proto package roles diff --git a/proto/spaces/spaces.pb.go b/proto/spaces/spaces.pb.go index 6fb15d8af880c6a8cd39704cee97c860d210fbac..d5c57b12ed99209be6e6bfeb15e5627c7eb58b40 100644 --- a/proto/spaces/spaces.pb.go +++ b/proto/spaces/spaces.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 -// protoc v4.23.4 +// protoc v4.24.3 // source: spaces/spaces.proto package spaces diff --git a/proto/spaces/spaces_grpc.pb.go b/proto/spaces/spaces_grpc.pb.go index f62bfa6dc1670c60e95a2d98a1db13275f43a3fe..18aa43b307fd40ad17480082c2cc104dea50ed9c 100644 --- a/proto/spaces/spaces_grpc.pb.go +++ b/proto/spaces/spaces_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v4.23.4 +// - protoc v4.24.3 // source: spaces/spaces.proto package spaces diff --git a/proto/users/users.pb.go b/proto/users/users.pb.go index 8ab0e5ce776aa5aade419ce8e8adc81ee8df5d18..18f49f1a3c2e75c911a5f783e9f008da8d9c4c79 100644 --- a/proto/users/users.pb.go +++ b/proto/users/users.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.29.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: users/users.proto package users diff --git a/proto/users/users_grpc.pb.go b/proto/users/users_grpc.pb.go index 8229c3b7e1b390aacdcd127a71efa166c138a494..30a2b84431e53679e4b92f0f3db43ffc8d0e190c 100644 --- a/proto/users/users_grpc.pb.go +++ b/proto/users/users_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.21.12 +// - protoc v4.24.3 // source: users/users.proto package users diff --git a/proto/versions/account/versions.pb.go b/proto/versions/account/versions.pb.go index c9e0a8db89275bd866540cd39cd3e8444642caa3..9db5b3d2864ba0de22a950db158d66c3f488a36c 100644 --- a/proto/versions/account/versions.pb.go +++ b/proto/versions/account/versions.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.29.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: versions/account/versions.proto package account diff --git a/proto/versions/account/versions_grpc.pb.go b/proto/versions/account/versions_grpc.pb.go index 2d017713cdd8731f90283b3596d6c391dc7acd49..6d3fd60aff0ad0692c3a2ec698607ee4c59b9f97 100644 --- a/proto/versions/account/versions_grpc.pb.go +++ b/proto/versions/account/versions_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.21.12 +// - protoc v4.24.3 // source: versions/account/versions.proto package account diff --git a/proto/versions/content/versions.pb.go b/proto/versions/content/versions.pb.go index ad5fdb6eb88f9898488b5875d51939edd55853b7..c399b1a29d2e793d7918eaa456670d4b2a6d02ce 100644 --- a/proto/versions/content/versions.pb.go +++ b/proto/versions/content/versions.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.29.0 -// protoc v3.21.12 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: versions/content/versions.proto package content diff --git a/proto/versions/content/versions_grpc.pb.go b/proto/versions/content/versions_grpc.pb.go index f106e46d75acdbf07e54757730a3e078b3159ef4..25198d3383a04d58c15a85d83673445386e347b2 100644 --- a/proto/versions/content/versions_grpc.pb.go +++ b/proto/versions/content/versions_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.3.0 -// - protoc v3.21.12 +// - protoc v4.24.3 // source: versions/content/versions.proto package content