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 3f090dffc541dcdee9f3dba7b0b8e6adc30931df..dda51dd888bdc3876818616116e3262b77337367 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 f683d0914d897de21dc052f93734c6604e69ced9..fa6efd5808c1b2d3c4840559150136a1b56262b3 100644 --- a/pkg/extension/server.go +++ b/pkg/extension/server.go @@ -2,86 +2,107 @@ package extension import ( "context" + "strings" "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) { - svc, ok := srv.services[in.Extension] + svc, ok := s.extensions[in.Extension] if !ok { return nil, ErrUnknownExtension } @@ -101,9 +122,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) @@ -118,9 +139,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 1ee716d9c1d8066b2e1c5a6adbd082382ae30dc0..d88bcec9579815208b18d7b5f958cb1a4f8bbfbb 100644 --- a/pkg/extension/service/extension.go +++ b/pkg/extension/service/extension.go @@ -146,10 +146,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 23120cb2360e06a7b62529ff92183044efebe791..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 @@ -31,114 +31,69 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type ExtensionRequestResult_State int32 +// Target - определяет как открывать результат выполнения действия в пользовательском интерфейсе +type Target 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 // Требуются дополнительные данные для выполнения запроса + Target_DEFAULT Target = 0 // По умолчанию (если нет других условий, то MODAL) + Target_MODAL Target = 1 // Открывать в модальном окне + Target_WIDE Target = 2 // Открывать в широком модальном окне + Target_MAIN Target = 4 // Открывать в главной рабочей области (часть без меню) + Target_DRAWER Target = 5 // Открывать в боковой панели + Target_NOTIFICATION Target = 6 // Открывать виде всплывающего уведомлении + Target_BLANK Target = 7 // Открывать в новой вкладке + Target_NONE Target = 100 // Не отображать результат ) -// Enum value maps for ExtensionRequestResult_State. +// Enum value maps for Target. 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, + Target_name = map[int32]string{ + 0: "DEFAULT", + 1: "MODAL", + 2: "WIDE", + 4: "MAIN", + 5: "DRAWER", + 6: "NOTIFICATION", + 7: "BLANK", + 100: "NONE", + } + Target_value = map[string]int32{ + "DEFAULT": 0, + "MODAL": 1, + "WIDE": 2, + "MAIN": 4, + "DRAWER": 5, + "NOTIFICATION": 6, + "BLANK": 7, + "NONE": 100, } ) -func (x ExtensionRequestResult_State) Enum() *ExtensionRequestResult_State { - p := new(ExtensionRequestResult_State) +func (x Target) Enum() *Target { + p := new(Target) *p = x return p } -func (x ExtensionRequestResult_State) String() string { +func (x Target) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } -func (ExtensionRequestResult_State) Descriptor() protoreflect.EnumDescriptor { +func (Target) Descriptor() protoreflect.EnumDescriptor { return file_extensions_extension_proto_enumTypes[0].Descriptor() } -func (ExtensionRequestResult_State) Type() protoreflect.EnumType { +func (Target) Type() protoreflect.EnumType { return &file_extensions_extension_proto_enumTypes[0] } -func (x ExtensionRequestResult_State) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use ExtensionRequestResult_State.Descriptor instead. -func (ExtensionRequestResult_State) EnumDescriptor() ([]byte, []int) { - return file_extensions_extension_proto_rawDescGZIP(), []int{1, 0} -} - -type ActionResponse_State int32 - -const ( - ActionResponse_DONE ActionResponse_State = 0 // Запрос завершен - ActionResponse_ERROR ActionResponse_State = 1 // Возникла ошибка - ActionResponse_PENDING ActionResponse_State = 2 // Запрос ожидает выполнения - ActionResponse_IN_PROGRESS ActionResponse_State = 3 // Запрос выполняется - ActionResponse_PARAMETERS_REQUIRED ActionResponse_State = 4 // Требуются дополнительные данные для выполнения запроса -) - -// Enum value maps for ActionResponse_State. -var ( - ActionResponse_State_name = map[int32]string{ - 0: "DONE", - 1: "ERROR", - 2: "PENDING", - 3: "IN_PROGRESS", - 4: "PARAMETERS_REQUIRED", - } - ActionResponse_State_value = map[string]int32{ - "DONE": 0, - "ERROR": 1, - "PENDING": 2, - "IN_PROGRESS": 3, - "PARAMETERS_REQUIRED": 4, - } -) - -func (x ActionResponse_State) Enum() *ActionResponse_State { - p := new(ActionResponse_State) - *p = x - return p -} - -func (x ActionResponse_State) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (ActionResponse_State) Descriptor() protoreflect.EnumDescriptor { - return file_extensions_extension_proto_enumTypes[1].Descriptor() -} - -func (ActionResponse_State) Type() protoreflect.EnumType { - return &file_extensions_extension_proto_enumTypes[1] -} - -func (x ActionResponse_State) Number() protoreflect.EnumNumber { +func (x Target) 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} +// Deprecated: Use Target.Descriptor instead. +func (Target) EnumDescriptor() ([]byte, []int) { + return file_extensions_extension_proto_rawDescGZIP(), []int{0} } // Kind описывает c какой сущность системы связано действие и что требуется передать в качестве параметров @@ -146,37 +101,43 @@ func (ActionResponse_State) EnumDescriptor() ([]byte, []int) { type Action_Kind int32 const ( - Action_DEFAULT Action_Kind = 0 // Действие не отображается в интерфейсе и могут используется для выполнения дополнительных запросов (см. `ActionResponse.next`) или напрямую из сторонних приложений. - Action_SPACE Action_Kind = 1 // Действие связано с пространством (требуется передача space_id). Отображается в меню "Действия". - Action_ENVIRONMENT Action_Kind = 2 // Действие связано с окружением (требуется передача space_id, env_id). Отображается в меню "Действия". - Action_COLLECTION Action_Kind = 3 // Действие связано с коллекцией (требуется передача space_id, env_id, collection_id). Отображается на экране списка записей. - Action_ITEM Action_Kind = 4 // Действие связано с записью (требуется передача space_id, env_id, collection_id, item_id). Отображается на экране редактирования записи. - Action_ITEMS Action_Kind = 5 // Действие связано с несколькими записями (требуется передача space_id, env_id, collection_id, item_ids). Отображается на экране списка записей. - Action_REVISION Action_Kind = 6 // Действие связано с ревизией записи (требуется передача space_id, env_id, collection_id, item_id, rev_id). На данный момент не используется. - Action_CREATE Action_Kind = 7 // Действие создание записи (требуется передача space_id, env_id, collection_id). + Action_DEFAULT Action_Kind = 0 // Действие не отображается в интерфейсе и могут используется для выполнения дополнительных запросов (см. `ActionResponse.next`) или напрямую из сторонних приложений. + Action_SPACE Action_Kind = 1 // Действие связано с пространством (требуется передача space_id). Отображается в меню "Действия". + Action_ENVIRONMENT Action_Kind = 2 // Действие связано с окружением (требуется передача space_id, env_id). Отображается в меню "Действия". + Action_COLLECTION Action_Kind = 3 // Действие связано с коллекцией (требуется передача space_id, env_id, collection_id). Отображается на экране списка записей. + Action_ITEM Action_Kind = 4 // Действие связано с записью (требуется передача space_id, env_id, collection_id, item_id). Отображается на экране редактирования записи. + Action_ITEMS Action_Kind = 5 // Действие связано с несколькими записями (требуется передача space_id, env_id, collection_id, item_ids). Отображается на экране списка записей. + Action_REVISION Action_Kind = 6 // Действие связано с ревизией записи (требуется передача space_id, env_id, collection_id, item_id, rev_id). На данный момент не используется. + Action_CREATE Action_Kind = 7 // Действие создание записи (требуется передача space_id, env_id, collection_id). + Action_MAIN_MENU Action_Kind = 10000 // Действие отображается в главном меню (требуется передача space_id, env_id) + Action_MAIN_MENU_BOTTOM Action_Kind = 10010 // Действие отображается в главном меню внизу (требуется передача space_id, env_id) ) // Enum value maps for Action_Kind. var ( Action_Kind_name = map[int32]string{ - 0: "DEFAULT", - 1: "SPACE", - 2: "ENVIRONMENT", - 3: "COLLECTION", - 4: "ITEM", - 5: "ITEMS", - 6: "REVISION", - 7: "CREATE", + 0: "DEFAULT", + 1: "SPACE", + 2: "ENVIRONMENT", + 3: "COLLECTION", + 4: "ITEM", + 5: "ITEMS", + 6: "REVISION", + 7: "CREATE", + 10000: "MAIN_MENU", + 10010: "MAIN_MENU_BOTTOM", } Action_Kind_value = map[string]int32{ - "DEFAULT": 0, - "SPACE": 1, - "ENVIRONMENT": 2, - "COLLECTION": 3, - "ITEM": 4, - "ITEMS": 5, - "REVISION": 6, - "CREATE": 7, + "DEFAULT": 0, + "SPACE": 1, + "ENVIRONMENT": 2, + "COLLECTION": 3, + "ITEM": 4, + "ITEMS": 5, + "REVISION": 6, + "CREATE": 7, + "MAIN_MENU": 10000, + "MAIN_MENU_BOTTOM": 10010, } ) @@ -191,11 +152,11 @@ func (x Action_Kind) String() string { } func (Action_Kind) Descriptor() protoreflect.EnumDescriptor { - return file_extensions_extension_proto_enumTypes[2].Descriptor() + return file_extensions_extension_proto_enumTypes[1].Descriptor() } func (Action_Kind) Type() protoreflect.EnumType { - return &file_extensions_extension_proto_enumTypes[2] + return &file_extensions_extension_proto_enumTypes[1] } func (x Action_Kind) Number() protoreflect.EnumNumber { @@ -204,22 +165,100 @@ func (x Action_Kind) Number() protoreflect.EnumNumber { // Deprecated: Use Action_Kind.Descriptor instead. func (Action_Kind) EnumDescriptor() ([]byte, []int) { - return file_extensions_extension_proto_rawDescGZIP(), []int{11, 0} + return file_extensions_extension_proto_rawDescGZIP(), []int{0, 0} } -type InstallRequest struct { +// * +// Action описывает как коллекцию в системе с предуставновленными действиями, так и возможные дальнейшие действия после +// получения ответа (см. `ActionResponse.next`) +// +// Если поле `request` присутствует, но не все требуемые поля заполнены, то значения для них берутся из текущих значений. +// +// Коллекция: space_actions (Пространство/Действия) +// Действия сохраненные в коллекции не содержат поля `request`. Значение заполняется текущими значениями. +// +// Пользовательские действия добавляются при установке расширений или при +// настройке в системную коллекции `Пространство/Действия` (system_actions). Расширения самостоятельно контролирует создание необходимых +// им действий в коллекции. +// +// Интерфейс загружает пользовательские действия и отображает их в интерфейсе соответствующим образом. +type Action 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"` // Игнорировать и автоматически исправлять ошибки установки + // DEPRECATED: Используйте `action` в формате URI + Extension string `protobuf:"bytes,10000,opt,name=extension,proto3" json:"extension,omitempty"` // Расширение + // Идентификатор действия (в формате URI) + // Варианты использования: + // - пустой - никаких действий не выполняется + // - `action_id` - простое действие (если установлено расширение, то оно используется) + // - `grpc:///extension_id/action_id` - полное действие с указанием расширения + // - `https://host/path` - действие по HTTP(S) + // - `ui:///path` - действие в интерфейсе + // - `/path` - действие в интерфейсе + // + // Пример: `https://example.com/api/v1/action` - будет выполнен запрос HTTP по указанному URL. + // Сервер может вернуть ответ в формате JSON или HTML/MD. Дальнейшие действия определяется оп заголовку ответа + // `Content-Type`: + // - `application/json` - ответ в формате JSON. Структура ответа соответствует `ActionResponse` и интерпретируется + // тем же способом что и ответ от GRPC. + // - `text/html` - ответ в формате HTML. Интерфейс отображает ответ в виде сообщения в IFrame + // - `text/markdown` - ответ в формате MD. Интерфейс отображает ответ в виде сообщения. + // + // Переменные `:var` заменяются на текуще значение в пользовательском интерфейсе + // Перечень переменных для подстановки: + // - :spaceId + // - :envId + // - :colId + // - :itemId + // + // Пример: `ui:///spaces/:spaceId/envs/:envId/cols/:colId` - будет выполнено действие в интерфейсе. + Action string `protobuf:"bytes,10100,opt,name=action,proto3" json:"action,omitempty"` + Target Target `protobuf:"varint,10110,opt,name=target,proto3,enum=extensions.Target" json:"target,omitempty"` // как должен отображаться результат действия + Parent string `protobuf:"bytes,10120,opt,name=parent,proto3" json:"parent,omitempty"` // Идентификатор родительского действия (для отображения в меню) + Name string `protobuf:"bytes,10200,opt,name=name,proto3" json:"name,omitempty"` // Название действия для отображения в интерфейсе (пункт меню, кнопка). + Description string `protobuf:"bytes,10210,opt,name=description,proto3" json:"description,omitempty"` // Описание действия для отображения в интерфейсе + Icon string `protobuf:"bytes,10220,opt,name=icon,proto3" json:"icon,omitempty"` // Название иконки для отображения действия в интерфейсе + Image *references.Reference `protobuf:"bytes,10230,opt,name=image,proto3" json:"image,omitempty"` // Изображение для отображения в действия в интерфейсе + Groups []string `protobuf:"bytes,10240,rep,name=groups,proto3" json:"groups,omitempty"` // Группы отображения действия в интерфейсе + Kind Action_Kind `protobuf:"varint,10300,opt,name=kind,proto3,enum=extensions.Action_Kind" json:"kind,omitempty"` // Указывает область действия (где отображается действие) + Classes []string `protobuf:"bytes,10310,rep,name=classes,proto3" json:"classes,omitempty"` // Классы данных к которым применимо действие (название коллекций или специальных групп в рамках которых данное действие применимо) + // Для `CREATE` действуют следующие правила: + // - Для создание записей в коллекции применимы действия которые содержат в classes название коллекции + // - Для создания записей в виджетах которые допускают создание записей (Block/BlockList) применимы действия которые содержат: + // - в classes хотя бы одно значение из classes виджета + // - если у виджета не указан classes, тогда названия коллекций которые могут быть использованы для создания элементов в поле (allowed_collections) + Refs []*references.Reference `protobuf:"bytes,10320,rep,name=refs,proto3" json:"refs,omitempty"` // Ссылки на записи используемые для выполнения действия (назначение ссылок зависит от действия и расширения) + // Коллекция для сохранения параметрами действия. Если параметр указан, то при выполнении действия будет открываться + // форма создания записи в указанной коллекции + ParamsCollection string `protobuf:"bytes,10330,opt,name=params_collection,json=paramsCollection,proto3" json:"params_collection,omitempty"` + Request *ActionRequest `protobuf:"bytes,10400,opt,name=request,proto3" json:"request,omitempty"` // Параметры запроса (используется в случае `ActionResponse.next`) + // DEPRECATED: Используйте `action_url` вместо `navigation_route` + NavigationAction bool `protobuf:"varint,10500,opt,name=navigation_action,json=navigationAction,proto3" json:"navigation_action,omitempty"` // Флаг указывающий что действие переносить пользователя в другую часть интерфейса, а не отправляет запрос на сервер + // navigation_route - Строка шаблон для перехода в интерфейсе + // При указании полного адреса (http(s)://xyz), URL открывается в новом окне браузера + // Относительный адрес в пользовательском интерфейсе переносит пользователя в соответствующий раздел без перезагрузки приложения + // + // Переменные `:var` заменяются на текуще значение в пользовательском интерфейсе (Пример: `/spaces/:spaceId/envs/:envId/cols/:colId`) + // Перечень переменных для подстановки: + // - :spaceId + // - :envId + // - :colId + // - :itemId + // + // DEPRECATED: Используйте `action_type == "NAVIGATION"` + NavigationRoute string `protobuf:"bytes,10510,opt,name=navigation_route,json=navigationRoute,proto3" json:"navigation_route,omitempty"` + // Параметр указывающий что действие выполняется автоматически + // Если указано, то действие выполняется автоматически каждый раз при загрузке приложения + Autorun bool `protobuf:"varint,10520,opt,name=autorun,proto3" json:"autorun,omitempty"` + // Параметр указывающий что действие требует подтверждения пользователя + // Перед выполнением действия пользователю отображается информация о действии и кнопки подтверждения/отмены + Confirm bool `protobuf:"varint,10530,opt,name=confirm,proto3" json:"confirm,omitempty"` } -func (x *InstallRequest) Reset() { - *x = InstallRequest{} +func (x *Action) Reset() { + *x = Action{} if protoimpl.UnsafeEnabled { mi := &file_extensions_extension_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -227,13 +266,13 @@ func (x *InstallRequest) Reset() { } } -func (x *InstallRequest) String() string { +func (x *Action) String() string { return protoimpl.X.MessageStringOf(x) } -func (*InstallRequest) ProtoMessage() {} +func (*Action) ProtoMessage() {} -func (x *InstallRequest) ProtoReflect() protoreflect.Message { +func (x *Action) ProtoReflect() protoreflect.Message { mi := &file_extensions_extension_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -245,194 +284,178 @@ func (x *InstallRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use InstallRequest.ProtoReflect.Descriptor instead. -func (*InstallRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use Action.ProtoReflect.Descriptor instead. +func (*Action) Descriptor() ([]byte, []int) { return file_extensions_extension_proto_rawDescGZIP(), []int{0} } -func (x *InstallRequest) GetExtensions() []string { +func (x *Action) GetExtension() string { if x != nil { - return x.Extensions + return x.Extension } - return nil + return "" } -func (x *InstallRequest) GetSpaceId() string { +func (x *Action) GetAction() string { if x != nil { - return x.SpaceId + return x.Action } return "" } -func (x *InstallRequest) GetEnvId() string { +func (x *Action) GetTarget() Target { if x != nil { - return x.EnvId + return x.Target } - return "" + return Target_DEFAULT } -func (x *InstallRequest) GetForce() bool { +func (x *Action) GetParent() string { if x != nil { - return x.Force + return x.Parent } - return false + return "" } -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 *Action) GetName() string { + if x != nil { + return x.Name + } + return "" } -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 *Action) GetDescription() string { + if x != nil { + return x.Description } + return "" } -func (x *ExtensionRequestResult) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *Action) GetIcon() string { + if x != nil { + return x.Icon + } + return "" } -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 +func (x *Action) GetImage() *references.Reference { + if x != nil { + return x.Image } - return mi.MessageOf(x) + return nil } -// Deprecated: Use ExtensionRequestResult.ProtoReflect.Descriptor instead. -func (*ExtensionRequestResult) Descriptor() ([]byte, []int) { - return file_extensions_extension_proto_rawDescGZIP(), []int{1} +func (x *Action) GetGroups() []string { + if x != nil { + return x.Groups + } + return nil } -func (x *ExtensionRequestResult) GetState() ExtensionRequestResult_State { +func (x *Action) GetKind() Action_Kind { if x != nil { - return x.State + return x.Kind } - return ExtensionRequestResult_OK + return Action_DEFAULT } -func (x *ExtensionRequestResult) GetExtension() string { +func (x *Action) GetClasses() []string { if x != nil { - return x.Extension + return x.Classes } - return "" + return nil } -func (x *ExtensionRequestResult) GetMsg() string { +func (x *Action) GetRefs() []*references.Reference { if x != nil { - return x.Msg + return x.Refs } - return "" + return nil } -func (x *ExtensionRequestResult) GetError() string { +func (x *Action) GetParamsCollection() string { if x != nil { - return x.Error + return x.ParamsCollection } return "" } -func (x *ExtensionRequestResult) GetUpdateAvailable() bool { +func (x *Action) GetRequest() *ActionRequest { if x != nil { - return x.UpdateAvailable + return x.Request } - 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"` // Список состояний расширений после установки + return nil } -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 *Action) GetNavigationAction() bool { + if x != nil { + return x.NavigationAction } + return false } -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 +func (x *Action) GetNavigationRoute() string { + if x != nil { + return x.NavigationRoute } - return mi.MessageOf(x) + return "" } -// Deprecated: Use InstallResponse.ProtoReflect.Descriptor instead. -func (*InstallResponse) Descriptor() ([]byte, []int) { - return file_extensions_extension_proto_rawDescGZIP(), []int{2} +func (x *Action) GetAutorun() bool { + if x != nil { + return x.Autorun + } + return false } -func (x *InstallResponse) GetResults() []*ExtensionRequestResult { +func (x *Action) GetConfirm() bool { if x != nil { - return x.Results + return x.Confirm } - return nil + return false } -type UninstallRequest struct { +// ActionRequest - запрос на выполнение действия к расширению (или менеджеру расширений) +type ActionRequest 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"` // Удалять расширения вне зависимости от возможных ошибок, без учета зависимостей + 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 *UninstallRequest) Reset() { - *x = UninstallRequest{} +func (x *ActionRequest) Reset() { + *x = ActionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_extensions_extension_proto_msgTypes[3] + mi := &file_extensions_extension_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UninstallRequest) String() string { +func (x *ActionRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UninstallRequest) ProtoMessage() {} +func (*ActionRequest) ProtoMessage() {} -func (x *UninstallRequest) ProtoReflect() protoreflect.Message { - mi := &file_extensions_extension_proto_msgTypes[3] +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 { @@ -443,724 +466,88 @@ func (x *UninstallRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UninstallRequest.ProtoReflect.Descriptor instead. -func (*UninstallRequest) Descriptor() ([]byte, []int) { - return file_extensions_extension_proto_rawDescGZIP(), []int{3} +// 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 *UninstallRequest) GetExtensions() []string { +func (x *ActionRequest) GetAction() string { if x != nil { - return x.Extensions + return x.Action } - return nil + return "" } -func (x *UninstallRequest) GetSpaceId() string { +func (x *ActionRequest) GetSpaceId() string { if x != nil { return x.SpaceId } return "" } -func (x *UninstallRequest) GetEnvId() string { +func (x *ActionRequest) GetEnvId() string { if x != nil { return x.EnvId } return "" } -func (x *UninstallRequest) GetRemove() bool { +func (x *ActionRequest) GetCollectionId() string { if x != nil { - return x.Remove + return x.CollectionId } - return false + return "" } -func (x *UninstallRequest) GetForce() bool { +func (x *ActionRequest) GetItemId() string { if x != nil { - return x.Force + return x.ItemId } - return false + return "" } -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 *ActionRequest) GetItemIds() []string { + if x != nil { + return x.ItemIds + } + return nil } -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 *ActionRequest) GetFields() []string { + if x != nil { + return x.Fields } + return nil } -func (x *UninstallResponse) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *ActionRequest) GetMetadata() map[string]string { + if x != nil { + return x.Metadata + } + return nil } -func (*UninstallResponse) ProtoMessage() {} - -func (x *UninstallResponse) ProtoReflect() protoreflect.Message { - mi := &file_extensions_extension_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UninstallResponse.ProtoReflect.Descriptor instead. -func (*UninstallResponse) Descriptor() ([]byte, []int) { - return file_extensions_extension_proto_rawDescGZIP(), []int{4} -} - -func (x *UninstallResponse) GetResults() []*ExtensionRequestResult { - if x != nil { - return x.Results - } - return nil -} - -type UpdateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Extensions []string `protobuf:"bytes,10000,rep,name=extensions,proto3" json:"extensions,omitempty"` // Список расширений для удаления - SpaceId string `protobuf:"bytes,10010,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"` // Пространство для удаления расширений - EnvId string `protobuf:"bytes,10020,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"` // Идентификатор окружения для установки (по умолчанию master) - Force bool `protobuf:"varint,10100,opt,name=force,proto3" json:"force,omitempty"` // Выполнять обновление и автоматически исправлять ошибки -} - -func (x *UpdateRequest) Reset() { - *x = UpdateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_extensions_extension_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UpdateRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateRequest) ProtoMessage() {} - -func (x *UpdateRequest) ProtoReflect() protoreflect.Message { - mi := &file_extensions_extension_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateRequest.ProtoReflect.Descriptor instead. -func (*UpdateRequest) Descriptor() ([]byte, []int) { - return file_extensions_extension_proto_rawDescGZIP(), []int{5} -} - -func (x *UpdateRequest) GetExtensions() []string { - if x != nil { - return x.Extensions - } - return nil -} - -func (x *UpdateRequest) GetSpaceId() string { - if x != nil { - return x.SpaceId - } - return "" -} - -func (x *UpdateRequest) GetEnvId() string { - if x != nil { - return x.EnvId - } - return "" -} - -func (x *UpdateRequest) GetForce() bool { - if x != nil { - return x.Force - } - return false -} - -type UpdateResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Results []*ExtensionRequestResult `protobuf:"bytes,10000,rep,name=results,proto3" json:"results,omitempty"` // Список состояний расширений после удаления -} - -func (x *UpdateResponse) Reset() { - *x = UpdateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_extensions_extension_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UpdateResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UpdateResponse) ProtoMessage() {} - -func (x *UpdateResponse) ProtoReflect() protoreflect.Message { - mi := &file_extensions_extension_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UpdateResponse.ProtoReflect.Descriptor instead. -func (*UpdateResponse) Descriptor() ([]byte, []int) { - return file_extensions_extension_proto_rawDescGZIP(), []int{6} -} - -func (x *UpdateResponse) GetResults() []*ExtensionRequestResult { - if x != nil { - return x.Results - } - return nil -} - -type CheckRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Extensions []string `protobuf:"bytes,10000,rep,name=extensions,proto3" json:"extensions,omitempty"` // Список расширений для удаления - SpaceId string `protobuf:"bytes,10010,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"` // Пространство для удаления расширений - EnvId string `protobuf:"bytes,10020,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"` // Идентификатор окружения для установки (по умолчанию master) -} - -func (x *CheckRequest) Reset() { - *x = CheckRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_extensions_extension_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CheckRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CheckRequest) ProtoMessage() {} - -func (x *CheckRequest) ProtoReflect() protoreflect.Message { - mi := &file_extensions_extension_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CheckRequest.ProtoReflect.Descriptor instead. -func (*CheckRequest) Descriptor() ([]byte, []int) { - return file_extensions_extension_proto_rawDescGZIP(), []int{7} -} - -func (x *CheckRequest) GetExtensions() []string { - if x != nil { - return x.Extensions - } - return nil -} - -func (x *CheckRequest) GetSpaceId() string { - if x != nil { - return x.SpaceId - } - return "" -} - -func (x *CheckRequest) GetEnvId() string { - if x != nil { - return x.EnvId - } - return "" -} - -type CheckResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Results []*ExtensionRequestResult `protobuf:"bytes,10000,rep,name=results,proto3" json:"results,omitempty"` // Список состояний расширений -} - -func (x *CheckResponse) Reset() { - *x = CheckResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_extensions_extension_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *CheckResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*CheckResponse) ProtoMessage() {} - -func (x *CheckResponse) ProtoReflect() protoreflect.Message { - mi := &file_extensions_extension_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use CheckResponse.ProtoReflect.Descriptor instead. -func (*CheckResponse) Descriptor() ([]byte, []int) { - return file_extensions_extension_proto_rawDescGZIP(), []int{8} -} - -func (x *CheckResponse) GetResults() []*ExtensionRequestResult { - if x != nil { - return x.Results - } - return nil -} - -// ActionRequest - запрос на выполнение действия к расширению (или менеджеру расширений) -type ActionRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Extension string `protobuf:"bytes,1000,opt,name=extension,proto3" json:"extension,omitempty"` - Action string `protobuf:"bytes,10100,opt,name=action,proto3" json:"action,omitempty"` - SpaceId string `protobuf:"bytes,10500,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"` - EnvId string `protobuf:"bytes,10510,opt,name=env_id,json=envId,proto3" json:"env_id,omitempty"` - CollectionId string `protobuf:"bytes,10520,opt,name=collection_id,json=collectionId,proto3" json:"collection_id,omitempty"` - ItemId string `protobuf:"bytes,10530,opt,name=item_id,json=itemId,proto3" json:"item_id,omitempty"` - ItemIds []string `protobuf:"bytes,10540,rep,name=item_ids,json=itemIds,proto3" json:"item_ids,omitempty"` - // Поля к которым применимо действие. В случае если действие выполняется из списка записей, содержит перечень - // полей которые пользователь выбрал для отображения в интерфейсе. - Fields []string `protobuf:"bytes,10550,rep,name=fields,proto3" json:"fields,omitempty"` - Metadata map[string]string `protobuf:"bytes,11000,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // Ссылки на записи используемые для выполнения действия (назначение ссылок зависит от действия и расширения) - Refs []*references.Reference `protobuf:"bytes,11010,rep,name=refs,proto3" json:"refs,omitempty"` - // Ссылка на документ с параметрами выполнения Action. - // Чтобы при выполнении действия открывалась форма параметров, необходимо указать `Action.params_collection` - Params *references.Reference `protobuf:"bytes,11020,opt,name=params,proto3" json:"params,omitempty"` -} - -func (x *ActionRequest) Reset() { - *x = ActionRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_extensions_extension_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ActionRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ActionRequest) ProtoMessage() {} - -func (x *ActionRequest) ProtoReflect() protoreflect.Message { - mi := &file_extensions_extension_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ActionRequest.ProtoReflect.Descriptor instead. -func (*ActionRequest) Descriptor() ([]byte, []int) { - return file_extensions_extension_proto_rawDescGZIP(), []int{9} -} - -func (x *ActionRequest) GetExtension() string { - if x != nil { - return x.Extension - } - return "" -} - -func (x *ActionRequest) GetAction() string { - if x != nil { - return x.Action - } - return "" -} - -func (x *ActionRequest) GetSpaceId() string { - if x != nil { - return x.SpaceId - } - return "" -} - -func (x *ActionRequest) GetEnvId() string { - if x != nil { - return x.EnvId - } - return "" -} - -func (x *ActionRequest) GetCollectionId() string { - if x != nil { - return x.CollectionId - } - return "" -} - -func (x *ActionRequest) GetItemId() string { - if x != nil { - return x.ItemId - } - return "" -} - -func (x *ActionRequest) GetItemIds() []string { - if x != nil { - return x.ItemIds - } - return nil -} - -func (x *ActionRequest) GetFields() []string { - if x != nil { - return x.Fields - } - return nil -} - -func (x *ActionRequest) GetMetadata() map[string]string { - if x != nil { - return x.Metadata - } - return nil -} - -func (x *ActionRequest) GetRefs() []*references.Reference { - if x != nil { - return x.Refs - } - return nil -} - -func (x *ActionRequest) GetParams() *references.Reference { - if x != nil { - return x.Params - } - return nil -} - -type ActionResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - State ActionResponse_State `protobuf:"varint,10000,opt,name=state,proto3,enum=extensions.ActionResponse_State" json:"state,omitempty"` // Состояние расширение - Msg string `protobuf:"bytes,10100,opt,name=msg,proto3" json:"msg,omitempty"` // Сообщение о выполнении действия - Error string `protobuf:"bytes,10200,opt,name=error,proto3" json:"error,omitempty"` // Сообщение в случае ошибки - Next []*Action `protobuf:"bytes,10300,rep,name=next,proto3" json:"next,omitempty"` // Следующие возможные действия. Интерфейс отображает как варианты дальнейших действий пользователя - Metadata map[string]string `protobuf:"bytes,10400,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // Метаданные запроса - Refs []*references.Reference `protobuf:"bytes,10320,rep,name=refs,proto3" json:"refs,omitempty"` // Ссылки на записи (назначение ссылок зависит от действия и расширения) -} - -func (x *ActionResponse) Reset() { - *x = ActionResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_extensions_extension_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ActionResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ActionResponse) ProtoMessage() {} - -func (x *ActionResponse) ProtoReflect() protoreflect.Message { - mi := &file_extensions_extension_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ActionResponse.ProtoReflect.Descriptor instead. -func (*ActionResponse) Descriptor() ([]byte, []int) { - return file_extensions_extension_proto_rawDescGZIP(), []int{10} -} - -func (x *ActionResponse) GetState() ActionResponse_State { - if x != nil { - return x.State - } - return ActionResponse_DONE -} - -func (x *ActionResponse) GetMsg() string { - if x != nil { - return x.Msg - } - return "" -} - -func (x *ActionResponse) GetError() string { - if x != nil { - return x.Error - } - return "" -} - -func (x *ActionResponse) GetNext() []*Action { - if x != nil { - return x.Next - } - return nil -} - -func (x *ActionResponse) GetMetadata() map[string]string { - if x != nil { - return x.Metadata - } - return nil -} - -func (x *ActionResponse) GetRefs() []*references.Reference { - if x != nil { - return x.Refs - } - return nil -} - -//* -//Action описывает как коллекцию в системе с предуставновленными действиями, так и возможные дальнейшие действия после -//получения ответа (см. `ActionResponse.next`) -// -//Если поле `request` присутствует, но не все требуемые поля заполнены, то значения для них берутся из текущих значений. -// -//Коллекция: space_actions (Пространство/Действия) -//Действия сохраненные в коллекции не содержат поля `request`. Значение заполняется текущими значениями. -// -//Пользовательские действия добавляются при установке расширений или при -//настройке в системную коллекции `Пространство/Действия` (system_actions). Расширения самостоятельно контролирует создание необходимых -//им действий в коллекции. -// -//Интерфейс загружает пользовательские действия и отображает их в интерфейсе соответствующим образом. -type Action struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Extension string `protobuf:"bytes,10000,opt,name=extension,proto3" json:"extension,omitempty"` // Расширение - Action string `protobuf:"bytes,10100,opt,name=action,proto3" json:"action,omitempty"` // Идентификатор действия - Name string `protobuf:"bytes,10200,opt,name=name,proto3" json:"name,omitempty"` // Название действия для отображения в интерфейсе (пункт меню, кнопка). - Description string `protobuf:"bytes,10210,opt,name=description,proto3" json:"description,omitempty"` // Описание действия для отображения в интерфейсе - Icon string `protobuf:"bytes,10220,opt,name=icon,proto3" json:"icon,omitempty"` // Название иконки для отображения действия в интерфейсе - Image *references.Reference `protobuf:"bytes,10230,opt,name=image,proto3" json:"image,omitempty"` // Изображение для отображения в действия в интерфейсе - Groups []string `protobuf:"bytes,10240,rep,name=groups,proto3" json:"groups,omitempty"` // Группы отображения действия в интерфейсе - Kind Action_Kind `protobuf:"varint,10300,opt,name=kind,proto3,enum=extensions.Action_Kind" json:"kind,omitempty"` // Указывает на что направлено действие - Classes []string `protobuf:"bytes,10310,rep,name=classes,proto3" json:"classes,omitempty"` // Классы данных к которым применимо действие (название коллекций или специальных групп в рамках которых данное действие применимо) - // Для `CREATE` действуют следующие правила: - // - Для создание записей в коллекции применимы действия которые содержат в classes название коллекции - // - Для создания записей в виджетах которые допускают создание записей (Block/BlockList) применимы действия которые содержат: - // - в classes хотя бы одно значение из classes виджета - // - если у виджета не указан classes, тогда названия коллекций которые могут быть использованы для создания элементов в поле (allowed_collections) - Refs []*references.Reference `protobuf:"bytes,10320,rep,name=refs,proto3" json:"refs,omitempty"` // Ссылки на записи используемые для выполнения действия (назначение ссылок зависит от действия и расширения) - // Коллекция для сохранения параметрами действия. Если параметр указан, то при выполнении действия будет открываться - // форма создания записи в указанной коллекции - ParamsCollection string `protobuf:"bytes,10330,opt,name=params_collection,json=paramsCollection,proto3" json:"params_collection,omitempty"` - Request *ActionRequest `protobuf:"bytes,10400,opt,name=request,proto3" json:"request,omitempty"` // Параметры запроса (используется в случае `ActionResponse.next`) - NavigationAction bool `protobuf:"varint,10500,opt,name=navigation_action,json=navigationAction,proto3" json:"navigation_action,omitempty"` // Флаг указывающий что действие переносить пользователя в другую часть интерфейса, а не отправляет запрос на сервер - // navigation_route - Строка шаблон для перехода в интерфейсе - // При указании полного адреса (http(s)://xyz), URL открывается в новом окне браузера - // Относительный адрес в пользовательском интерфейсе переносит пользователя в соответствующий раздел без перезагрузки приложения - // - // Переменные `:var` заменяются на текуще значение в пользовательском интерфейсе (Пример: `/spaces/:spaceId/envs/:envId/cols/:colId`) - // Перечень переменных для подстановки: - // - :spaceId - // - :envId - // - :colId - // - :itemId - // - NavigationRoute string `protobuf:"bytes,10510,opt,name=navigation_route,json=navigationRoute,proto3" json:"navigation_route,omitempty"` -} - -func (x *Action) Reset() { - *x = Action{} - if protoimpl.UnsafeEnabled { - mi := &file_extensions_extension_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *Action) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*Action) ProtoMessage() {} - -func (x *Action) ProtoReflect() protoreflect.Message { - mi := &file_extensions_extension_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use Action.ProtoReflect.Descriptor instead. -func (*Action) Descriptor() ([]byte, []int) { - return file_extensions_extension_proto_rawDescGZIP(), []int{11} -} - -func (x *Action) GetExtension() string { - if x != nil { - return x.Extension - } - return "" -} - -func (x *Action) GetAction() string { - if x != nil { - return x.Action - } - return "" -} - -func (x *Action) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *Action) GetDescription() string { - if x != nil { - return x.Description - } - return "" -} - -func (x *Action) GetIcon() string { - if x != nil { - return x.Icon - } - return "" -} - -func (x *Action) GetImage() *references.Reference { - if x != nil { - return x.Image - } - return nil -} - -func (x *Action) GetGroups() []string { - if x != nil { - return x.Groups - } - return nil -} - -func (x *Action) GetKind() Action_Kind { - if x != nil { - return x.Kind - } - return Action_DEFAULT -} - -func (x *Action) GetClasses() []string { - if x != nil { - return x.Classes - } - return nil -} - -func (x *Action) GetRefs() []*references.Reference { +func (x *ActionRequest) GetRefs() []*references.Reference { if x != nil { return x.Refs } return nil } -func (x *Action) GetParamsCollection() string { - if x != nil { - return x.ParamsCollection - } - return "" -} - -func (x *Action) GetRequest() *ActionRequest { +func (x *ActionRequest) GetParams() *references.Reference { if x != nil { - return x.Request + return x.Params } return nil } -func (x *Action) GetNavigationAction() bool { - if x != nil { - return x.NavigationAction - } - return false -} - -func (x *Action) GetNavigationRoute() string { - if x != nil { - return x.NavigationRoute - } - return "" -} - var File_extensions_extension_proto protoreflect.FileDescriptor var file_extensions_extension_proto_rawDesc = []byte{ @@ -1168,201 +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, + 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, 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, 0x04, 0x72, 0x65, 0x66, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x18, 0x8c, 0x56, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x2e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, - 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa9, 0x03, 0x0a, - 0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x37, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x90, 0x4e, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x20, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x11, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, - 0xf4, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x15, 0x0a, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0xd8, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x18, 0xbc, 0x50, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x6e, 0x65, 0x78, 0x74, 0x12, 0x45, 0x0a, 0x08, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0xa0, 0x51, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x32, 0x0a, 0x04, 0x72, 0x65, 0x66, 0x73, 0x18, 0xd0, 0x50, 0x20, 0x03, 0x28, + 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, 0x04, 0x72, 0x65, 0x66, 0x73, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x53, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x08, 0x0a, 0x04, - 0x44, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, - 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0f, - 0x0a, 0x0b, 0x49, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x03, 0x12, - 0x17, 0x0a, 0x13, 0x50, 0x41, 0x52, 0x41, 0x4d, 0x45, 0x54, 0x45, 0x52, 0x53, 0x5f, 0x52, 0x45, - 0x51, 0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x04, 0x22, 0x87, 0x05, 0x0a, 0x06, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x90, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xf4, 0x4e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0xd8, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x21, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0xe2, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x13, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0xec, 0x4f, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x18, 0xf6, 0x4f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x2e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, - 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x17, - 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x80, 0x50, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x2c, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, - 0xbc, 0x50, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x52, - 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x19, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, - 0x18, 0xc6, 0x50, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, - 0x12, 0x32, 0x0a, 0x04, 0x72, 0x65, 0x66, 0x73, 0x18, 0xd0, 0x50, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x2e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, - 0x6e, 0x63, 0x65, 0x73, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x04, - 0x72, 0x65, 0x66, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x5f, 0x63, - 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0xda, 0x50, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x43, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0xa0, 0x51, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x6e, 0x61, 0x76, 0x69, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x84, 0x52, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x8e, 0x52, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x6e, 0x61, 0x76, 0x69, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x22, 0x6e, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, - 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x50, 0x41, 0x43, 0x45, - 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x45, 0x4e, 0x56, 0x49, 0x52, 0x4f, 0x4e, 0x4d, 0x45, 0x4e, - 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x49, 0x4f, - 0x4e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x54, 0x45, 0x4d, 0x10, 0x04, 0x12, 0x09, 0x0a, - 0x05, 0x49, 0x54, 0x45, 0x4d, 0x53, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x56, 0x49, - 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, - 0x10, 0x07, 0x32, 0xe3, 0x02, 0x0a, 0x09, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x44, 0x0a, 0x07, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x12, 0x1a, 0x2e, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x05, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, - 0x18, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x12, 0x19, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x09, 0x55, 0x6e, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x12, 0x1c, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x55, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x19, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x65, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x2e, - 0x70, 0x65, 0x72, 0x78, 0x2e, 0x72, 0x75, 0x2f, 0x70, 0x65, 0x72, 0x78, 0x69, 0x73, 0x2f, 0x70, - 0x65, 0x72, 0x78, 0x69, 0x73, 0x2d, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3b, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 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 ( @@ -1377,60 +662,30 @@ func file_extensions_extension_proto_rawDescGZIP() []byte { return file_extensions_extension_proto_rawDescData } -var file_extensions_extension_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_extensions_extension_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_extensions_extension_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_extensions_extension_proto_msgTypes = make([]protoimpl.MessageInfo, 3) var file_extensions_extension_proto_goTypes = []interface{}{ - (ExtensionRequestResult_State)(0), // 0: extensions.ExtensionRequestResult.State - (ActionResponse_State)(0), // 1: extensions.ActionResponse.State - (Action_Kind)(0), // 2: extensions.Action.Kind - (*InstallRequest)(nil), // 3: extensions.InstallRequest - (*ExtensionRequestResult)(nil), // 4: extensions.ExtensionRequestResult - (*InstallResponse)(nil), // 5: extensions.InstallResponse - (*UninstallRequest)(nil), // 6: extensions.UninstallRequest - (*UninstallResponse)(nil), // 7: extensions.UninstallResponse - (*UpdateRequest)(nil), // 8: extensions.UpdateRequest - (*UpdateResponse)(nil), // 9: extensions.UpdateResponse - (*CheckRequest)(nil), // 10: extensions.CheckRequest - (*CheckResponse)(nil), // 11: extensions.CheckResponse - (*ActionRequest)(nil), // 12: extensions.ActionRequest - (*ActionResponse)(nil), // 13: extensions.ActionResponse - (*Action)(nil), // 14: extensions.Action - nil, // 15: extensions.ActionRequest.MetadataEntry - nil, // 16: extensions.ActionResponse.MetadataEntry - (*references.Reference)(nil), // 17: content.references.Reference + (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{ - 0, // 0: extensions.ExtensionRequestResult.state:type_name -> extensions.ExtensionRequestResult.State - 4, // 1: extensions.InstallResponse.results:type_name -> extensions.ExtensionRequestResult - 4, // 2: extensions.UninstallResponse.results:type_name -> extensions.ExtensionRequestResult - 4, // 3: extensions.UpdateResponse.results:type_name -> extensions.ExtensionRequestResult - 4, // 4: extensions.CheckResponse.results:type_name -> extensions.ExtensionRequestResult - 15, // 5: extensions.ActionRequest.metadata:type_name -> extensions.ActionRequest.MetadataEntry - 17, // 6: extensions.ActionRequest.refs:type_name -> content.references.Reference - 17, // 7: extensions.ActionRequest.params:type_name -> content.references.Reference - 1, // 8: extensions.ActionResponse.state:type_name -> extensions.ActionResponse.State - 14, // 9: extensions.ActionResponse.next:type_name -> extensions.Action - 16, // 10: extensions.ActionResponse.metadata:type_name -> extensions.ActionResponse.MetadataEntry - 17, // 11: extensions.ActionResponse.refs:type_name -> content.references.Reference - 17, // 12: extensions.Action.image:type_name -> content.references.Reference - 2, // 13: extensions.Action.kind:type_name -> extensions.Action.Kind - 17, // 14: extensions.Action.refs:type_name -> content.references.Reference - 12, // 15: extensions.Action.request:type_name -> extensions.ActionRequest - 3, // 16: extensions.Extension.Install:input_type -> extensions.InstallRequest - 10, // 17: extensions.Extension.Check:input_type -> extensions.CheckRequest - 8, // 18: extensions.Extension.Update:input_type -> extensions.UpdateRequest - 6, // 19: extensions.Extension.Uninstall:input_type -> extensions.UninstallRequest - 12, // 20: extensions.Extension.Action:input_type -> extensions.ActionRequest - 5, // 21: extensions.Extension.Install:output_type -> extensions.InstallResponse - 11, // 22: extensions.Extension.Check:output_type -> extensions.CheckResponse - 9, // 23: extensions.Extension.Update:output_type -> extensions.UpdateResponse - 7, // 24: extensions.Extension.Uninstall:output_type -> extensions.UninstallResponse - 13, // 25: extensions.Extension.Action:output_type -> extensions.ActionResponse - 21, // [21:26] is the sub-list for method output_type - 16, // [16:21] is the sub-list for method input_type - 16, // [16:16] is the sub-list for extension type_name - 16, // [16:16] is the sub-list for extension extendee - 0, // [0:16] is the sub-list for field type_name + 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() } @@ -1440,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: @@ -1452,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 @@ -1559,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: 3, - 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 550f0bdfada581863151e88ec94e4732d9a94508..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 be2193d80f6b5b7c1efc10db15cbdd2be63ec6ad..0b19b498061cf31c8918a210259340f666de9431 100644 --- a/proto/extensions/manager.pb.go +++ b/proto/extensions/manager.pb.go @@ -27,8 +27,8 @@ // 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: 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 093b6165f912a2f22f9482a8f3035ce3b2bc07e9..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 v3.21.12 +// - 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