diff --git a/perxis-proto b/perxis-proto index 606cf8070bc9a930cadd5117bf49cc119ff3a16e..dc83f92e5b9bb690c52486ee326a798365afd85f 160000 --- a/perxis-proto +++ b/perxis-proto @@ -1 +1 @@ -Subproject commit 606cf8070bc9a930cadd5117bf49cc119ff3a16e +Subproject commit dc83f92e5b9bb690c52486ee326a798365afd85f diff --git a/pkg/data/strings.go b/pkg/data/strings.go index 36c3e6943526b17ed821476bc387382a4f72cb51..f393e989536fafe05cdc5be8ec3fec4596856cfe 100644 --- a/pkg/data/strings.go +++ b/pkg/data/strings.go @@ -89,3 +89,20 @@ func GlobToRegexp(s string) string { return replacer.Replace(s) } + +func GetRegexMatches(s string, matches ...string) []string { + var res []string + for _, match := range matches { + if match == "" { + continue + } + if s == match || match == ".*" { + res = append(res, match) + continue + } + if ok, _ := regexp.MatchString(match, s); ok { + res = append(res, match) + } + } + return res +} diff --git a/pkg/extension/extension.go b/pkg/extension/extension.go index e5362ac2c5864ef93262af93725272f3bf5a28d3..0e13061bd5a0256c073576c45ab8f41f40c8cd55 100644 --- a/pkg/extension/extension.go +++ b/pkg/extension/extension.go @@ -12,10 +12,11 @@ import ( ) const ( - StatePending = pb.State_PENDING - StateInstalled = pb.State_INSTALLED - StateInProgress = pb.State_IN_PROGRESS - StateFail = pb.State_FAIL + StateNotInstalled = pb.State_NOT_INSTALLED + StatePending = pb.State_PENDING + StateInstalled = pb.State_INSTALLED + StateInProgress = pb.State_IN_PROGRESS + StateFail = pb.State_FAIL MetadataKey = "extension" ) @@ -71,7 +72,7 @@ func CheckInstalled(ctx context.Context, content *content.Content, spaceID, envI if err != nil { return false, err } - return status.Installed, nil + return status.State == StateInstalled, nil } func isMetadataEqual(s1, s2 *schema.Schema) bool { diff --git a/pkg/extension/manager.go b/pkg/extension/manager.go index e8c0a0f76ed7e704bd6a58f4b2a0a80ad4c3025b..9de5dc4e71c1160a7277181a64085ebf6ab86032 100644 --- a/pkg/extension/manager.go +++ b/pkg/extension/manager.go @@ -13,37 +13,20 @@ type Manager interface { Extension RegisterExtensions(ctx context.Context, ext ...*ExtensionConnector) error UnregisterExtensions(ctx context.Context, ext ...*ExtensionConnector) error - ListRegisteredExtensions(ctx context.Context, extensions []string) ([]*ExtensionConnector, error) - ListExtensions(ctx context.Context, space, env string, extensions []string, opts ...ListExtensionsOption) ([]*Info, error) + ListRegisteredExtensions(ctx context.Context, extensions ...string) ([]*ExtensionConnector, error) + ListExtensions(ctx context.Context, space, env string, filter *ListExtensionsFilter) ([]*Info, error) } -type ( - ListExtensionsOptions struct { - Installed bool - NotInstalled bool - } - - ListExtensionsOption func(o *ListExtensionsOptions) -) - -func WithInstalled() ListExtensionsOption { - return func(o *ListExtensionsOptions) { - o.Installed = true - } -} - -func WithNotInstalled() ListExtensionsOption { - return func(o *ListExtensionsOptions) { - o.NotInstalled = true - } +type ListExtensionsFilter struct { + Extensions []string + States []State } -func NewListExtensionsOptions(options ...ListExtensionsOption) *ListExtensionsOptions { - opt := new(ListExtensionsOptions) - for _, o := range options { - o(opt) +func NewListExtensionsFilter(extensions []string, states ...State) *ListExtensionsFilter { + return &ListExtensionsFilter{ + Extensions: extensions, + States: states, } - return opt } type ExtensionConnector struct { diff --git a/pkg/extension/manager_client.go b/pkg/extension/manager_client.go index 80f808abbc31b3f67e63d22d374bdc8eaa1cda23..d15d0dd0dd9eb53c5183f1faacc655c01dd494a1 100644 --- a/pkg/extension/manager_client.go +++ b/pkg/extension/manager_client.go @@ -57,7 +57,7 @@ func (c *ManagerClient) UnregisterExtensions(ctx context.Context, exts ...*Exten return err } -func (c *ManagerClient) ListRegisteredExtensions(ctx context.Context, extensions []string) ([]*ExtensionConnector, error) { +func (c *ManagerClient) ListRegisteredExtensions(ctx context.Context, extensions ...string) ([]*ExtensionConnector, error) { resp, err := c.manager.ListRegisteredExtensions(ctx, &pb.ListRegisteredExtensionsRequest{Extension: extensions}, grpc.WaitForReady(true)) if err != nil { return nil, err @@ -71,14 +71,15 @@ func (c *ManagerClient) ListRegisteredExtensions(ctx context.Context, extensions return exts, nil } -func (c *ManagerClient) ListExtensions(ctx context.Context, space, env string, extensions []string, opts ...ListExtensionsOption) ([]*Info, error) { - options := NewListExtensionsOptions(opts...) +func (c *ManagerClient) ListExtensions(ctx context.Context, space, env string, filter *ListExtensionsFilter) ([]*Info, error) { + if filter == nil { + filter = new(ListExtensionsFilter) + } resp, err := c.manager.ListExtensions(ctx, &pb.ListExtensionsRequest{ - Extensions: extensions, - SpaceId: space, - EnvId: env, - Installed: options.Installed, - NotInstalled: options.NotInstalled, + Extensions: filter.Extensions, + SpaceId: space, + EnvId: env, + State: filter.States, }, grpc.WaitForReady(true)) if err != nil { return nil, err diff --git a/pkg/extension/middleware/error_logging_middleware.go b/pkg/extension/middleware/error_logging_middleware.go index fa2dc0500cd87a2a58b19bd581cb97293be14dea..e7dec72ba015ffe7e75a7bf0736f3a20cd7f4204 100644 --- a/pkg/extension/middleware/error_logging_middleware.go +++ b/pkg/extension/middleware/error_logging_middleware.go @@ -63,24 +63,24 @@ func (m *errorLoggingMiddleware) Install(ctx context.Context, in *extension.Inst return m.next.Install(ctx, in) } -func (m *errorLoggingMiddleware) ListExtensions(ctx context.Context, space string, env string, extensions []string, opts ...extension.ListExtensionsOption) (ipa1 []*extension.Info, err error) { +func (m *errorLoggingMiddleware) ListExtensions(ctx context.Context, space string, env string, filter *extension.ListExtensionsFilter) (ipa1 []*extension.Info, err error) { logger := m.logger defer func() { if err != nil { logger.Warn("response error", zap.Error(err)) } }() - return m.next.ListExtensions(ctx, space, env, extensions, opts...) + return m.next.ListExtensions(ctx, space, env, filter) } -func (m *errorLoggingMiddleware) ListRegisteredExtensions(ctx context.Context, extensions []string) (epa1 []*extension.ExtensionConnector, err error) { +func (m *errorLoggingMiddleware) ListRegisteredExtensions(ctx context.Context, extensions ...string) (epa1 []*extension.ExtensionConnector, err error) { logger := m.logger defer func() { if err != nil { logger.Warn("response error", zap.Error(err)) } }() - return m.next.ListRegisteredExtensions(ctx, extensions) + return m.next.ListRegisteredExtensions(ctx, extensions...) } func (m *errorLoggingMiddleware) RegisterExtensions(ctx context.Context, ext ...*extension.ExtensionConnector) (err error) { diff --git a/pkg/extension/middleware/logging_middleware.go b/pkg/extension/middleware/logging_middleware.go index 9cccb48347e244d5504789656eeb83670d3334ba..8ae37929d26a9dbccf40ab1030d73b708d3d96ba 100644 --- a/pkg/extension/middleware/logging_middleware.go +++ b/pkg/extension/middleware/logging_middleware.go @@ -169,15 +169,14 @@ func (m *loggingMiddleware) Install(ctx context.Context, in *extension.InstallRe return err } -func (m *loggingMiddleware) ListExtensions(ctx context.Context, space string, env string, extensions []string, opts ...extension.ListExtensionsOption) (ipa1 []*extension.Info, err error) { +func (m *loggingMiddleware) ListExtensions(ctx context.Context, space string, env string, filter *extension.ListExtensionsFilter) (ipa1 []*extension.Info, err error) { begin := time.Now() var fields []zapcore.Field for k, v := range map[string]interface{}{ - "ctx": ctx, - "space": space, - "env": env, - "extensions": extensions, - "opts": opts} { + "ctx": ctx, + "space": space, + "env": env, + "filter": filter} { if k == "ctx" { fields = append(fields, zap.String("principal", fmt.Sprint(auth.GetPrincipal(ctx)))) continue @@ -187,7 +186,7 @@ func (m *loggingMiddleware) ListExtensions(ctx context.Context, space string, en m.logger.Debug("ListExtensions.Request", fields...) - ipa1, err = m.next.ListExtensions(ctx, space, env, extensions, opts...) + ipa1, err = m.next.ListExtensions(ctx, space, env, filter) fields = []zapcore.Field{ zap.Duration("time", time.Since(begin)), @@ -209,7 +208,7 @@ func (m *loggingMiddleware) ListExtensions(ctx context.Context, space string, en return ipa1, err } -func (m *loggingMiddleware) ListRegisteredExtensions(ctx context.Context, extensions []string) (epa1 []*extension.ExtensionConnector, err error) { +func (m *loggingMiddleware) ListRegisteredExtensions(ctx context.Context, extensions ...string) (epa1 []*extension.ExtensionConnector, err error) { begin := time.Now() var fields []zapcore.Field for k, v := range map[string]interface{}{ @@ -224,7 +223,7 @@ func (m *loggingMiddleware) ListRegisteredExtensions(ctx context.Context, extens m.logger.Debug("ListRegisteredExtensions.Request", fields...) - epa1, err = m.next.ListRegisteredExtensions(ctx, extensions) + epa1, err = m.next.ListRegisteredExtensions(ctx, extensions...) fields = []zapcore.Field{ zap.Duration("time", time.Since(begin)), diff --git a/pkg/extension/middleware/recovering_middleware.go b/pkg/extension/middleware/recovering_middleware.go index f0cf09fbf5eccf7ebb9f0a6e72548beb40c8aed4..d75af3364a31dd2e0961166a3a7dca573079f4e1 100644 --- a/pkg/extension/middleware/recovering_middleware.go +++ b/pkg/extension/middleware/recovering_middleware.go @@ -77,7 +77,7 @@ func (m *recoveringMiddleware) Install(ctx context.Context, in *extension.Instal return m.next.Install(ctx, in) } -func (m *recoveringMiddleware) ListExtensions(ctx context.Context, space string, env string, extensions []string, opts ...extension.ListExtensionsOption) (ipa1 []*extension.Info, err error) { +func (m *recoveringMiddleware) ListExtensions(ctx context.Context, space string, env string, filter *extension.ListExtensionsFilter) (ipa1 []*extension.Info, err error) { logger := m.logger defer func() { if r := recover(); r != nil { @@ -86,10 +86,10 @@ func (m *recoveringMiddleware) ListExtensions(ctx context.Context, space string, } }() - return m.next.ListExtensions(ctx, space, env, extensions, opts...) + return m.next.ListExtensions(ctx, space, env, filter) } -func (m *recoveringMiddleware) ListRegisteredExtensions(ctx context.Context, extensions []string) (epa1 []*extension.ExtensionConnector, err error) { +func (m *recoveringMiddleware) ListRegisteredExtensions(ctx context.Context, extensions ...string) (epa1 []*extension.ExtensionConnector, err error) { logger := m.logger defer func() { if r := recover(); r != nil { @@ -98,7 +98,7 @@ func (m *recoveringMiddleware) ListRegisteredExtensions(ctx context.Context, ext } }() - return m.next.ListRegisteredExtensions(ctx, extensions) + return m.next.ListRegisteredExtensions(ctx, extensions...) } func (m *recoveringMiddleware) RegisterExtensions(ctx context.Context, ext ...*extension.ExtensionConnector) (err error) { diff --git a/pkg/extension/mocks/Manager.go b/pkg/extension/mocks/Manager.go index 4742f6dd7198a9f6bd54deffb064671c21cf8c3b..907e79be06246a240d05ed8f264d3354ab76cbbe 100644 --- a/pkg/extension/mocks/Manager.go +++ b/pkg/extension/mocks/Manager.go @@ -86,32 +86,25 @@ func (_m *Manager) Install(ctx context.Context, in *extensions.InstallRequest) e return r0 } -// ListExtensions provides a mock function with given fields: ctx, space, env, _a3, opts -func (_m *Manager) ListExtensions(ctx context.Context, space string, env string, _a3 []string, opts ...extension.ListExtensionsOption) ([]*extensions.ListExtensionsResponse_ExtensionInfo, error) { - _va := make([]interface{}, len(opts)) - for _i := range opts { - _va[_i] = opts[_i] - } - var _ca []interface{} - _ca = append(_ca, ctx, space, env, _a3) - _ca = append(_ca, _va...) - ret := _m.Called(_ca...) +// ListExtensions provides a mock function with given fields: ctx, space, env, filter +func (_m *Manager) ListExtensions(ctx context.Context, space string, env string, filter *extension.ListExtensionsFilter) ([]*extensions.ListExtensionsResponse_ExtensionInfo, error) { + ret := _m.Called(ctx, space, env, filter) var r0 []*extensions.ListExtensionsResponse_ExtensionInfo var r1 error - if rf, ok := ret.Get(0).(func(context.Context, string, string, []string, ...extension.ListExtensionsOption) ([]*extensions.ListExtensionsResponse_ExtensionInfo, error)); ok { - return rf(ctx, space, env, _a3, opts...) + if rf, ok := ret.Get(0).(func(context.Context, string, string, *extension.ListExtensionsFilter) ([]*extensions.ListExtensionsResponse_ExtensionInfo, error)); ok { + return rf(ctx, space, env, filter) } - if rf, ok := ret.Get(0).(func(context.Context, string, string, []string, ...extension.ListExtensionsOption) []*extensions.ListExtensionsResponse_ExtensionInfo); ok { - r0 = rf(ctx, space, env, _a3, opts...) + if rf, ok := ret.Get(0).(func(context.Context, string, string, *extension.ListExtensionsFilter) []*extensions.ListExtensionsResponse_ExtensionInfo); ok { + r0 = rf(ctx, space, env, filter) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]*extensions.ListExtensionsResponse_ExtensionInfo) } } - if rf, ok := ret.Get(1).(func(context.Context, string, string, []string, ...extension.ListExtensionsOption) error); ok { - r1 = rf(ctx, space, env, _a3, opts...) + if rf, ok := ret.Get(1).(func(context.Context, string, string, *extension.ListExtensionsFilter) error); ok { + r1 = rf(ctx, space, env, filter) } else { r1 = ret.Error(1) } @@ -120,24 +113,31 @@ func (_m *Manager) ListExtensions(ctx context.Context, space string, env string, } // ListRegisteredExtensions provides a mock function with given fields: ctx, _a1 -func (_m *Manager) ListRegisteredExtensions(ctx context.Context, _a1 []string) ([]*extension.ExtensionConnector, error) { - ret := _m.Called(ctx, _a1) +func (_m *Manager) ListRegisteredExtensions(ctx context.Context, _a1 ...string) ([]*extension.ExtensionConnector, error) { + _va := make([]interface{}, len(_a1)) + for _i := range _a1 { + _va[_i] = _a1[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) var r0 []*extension.ExtensionConnector var r1 error - if rf, ok := ret.Get(0).(func(context.Context, []string) ([]*extension.ExtensionConnector, error)); ok { - return rf(ctx, _a1) + if rf, ok := ret.Get(0).(func(context.Context, ...string) ([]*extension.ExtensionConnector, error)); ok { + return rf(ctx, _a1...) } - if rf, ok := ret.Get(0).(func(context.Context, []string) []*extension.ExtensionConnector); ok { - r0 = rf(ctx, _a1) + if rf, ok := ret.Get(0).(func(context.Context, ...string) []*extension.ExtensionConnector); ok { + r0 = rf(ctx, _a1...) } else { if ret.Get(0) != nil { r0 = ret.Get(0).([]*extension.ExtensionConnector) } } - if rf, ok := ret.Get(1).(func(context.Context, []string) error); ok { - r1 = rf(ctx, _a1) + if rf, ok := ret.Get(1).(func(context.Context, ...string) error); ok { + r1 = rf(ctx, _a1...) } else { r1 = ret.Error(1) } diff --git a/pkg/extension/schema.go b/pkg/extension/schema.go index 1e44488e0918776fbe770f52b333bba8828317e8..1c34b71eb34a9ddeea9f519add93b03e15959914 100644 --- a/pkg/extension/schema.go +++ b/pkg/extension/schema.go @@ -12,8 +12,8 @@ import ( ) const ( - StatusCollectionID = "space_extensions" - StatusCollectionName = "Настройки/Расширения" + ExtensionsCollectionID = "space_extensions" + ExtensionsCollectionName = "Настройки/Расширения" ActionsCollectionID = "space_actions" ActionsCollectionName = "Настройки/Действия" @@ -141,10 +141,10 @@ func NewStatusCollection(spaceID, envID string) *collections.Collection { sch.Field.UI.Options["collection_icon"] = "SettingOutlined/ApiOutlined" return &collections.Collection{ - ID: StatusCollectionID, + ID: ExtensionsCollectionID, SpaceID: spaceID, EnvID: envID, - Name: StatusCollectionName, + Name: ExtensionsCollectionName, Schema: sch, Hidden: true, } diff --git a/pkg/extension/storage.go b/pkg/extension/storage.go index cf5478135ecf0912f389fd4f757c9b7bc8f41b44..b3d2f5003d0bbbe5c5a2ecc4d50f50decf45b088 100644 --- a/pkg/extension/storage.go +++ b/pkg/extension/storage.go @@ -15,7 +15,9 @@ import ( "git.perx.ru/perxis/perxis-go/pkg/items" ) -type Info = pb.ListExtensionsResponse_ExtensionInfo +type ( + Info = pb.ListExtensionsResponse_ExtensionInfo +) // Storage описывает интерфейс хранилища состояний расширений type Storage interface { @@ -37,7 +39,7 @@ func infoFromItem(extension string, item *items.Item) *Info { if item == nil { return &Info{ Extension: extension, - Installed: false, + State: StateNotInstalled, } } @@ -55,52 +57,38 @@ func infoFromItem(extension string, item *items.Item) *Info { State: State(state), Msg: msg, Error: errmsg, - Installed: State(state) == StateInstalled, InstalledVersion: ver, } } // GetExtension возвращает состояние расширения РІ пространстве func (s *storage) GetExtension(ctx context.Context, spaceID, envID string, extension string) (*Info, error) { - res, err := s.content.Items.Get(ctx, spaceID, envID, StatusCollectionID, extension) + res, err := s.content.Items.Get(ctx, spaceID, envID, ExtensionsCollectionID, extension) if err != nil && !strings.Contains(err.Error(), "not found") { return nil, err } return infoFromItem(extension, res), nil } -// FindExtensions возвращает состояния расширений РІ пространстве. Если расширение РЅРµ установлено, -// возвращается статус СЃ флагом `Installed: false`. Статусы возвращаются РІ том Р¶Рµ РїРѕСЂСЏРґРєРµ, что Рё -// переданные расширения +// FindExtensions возвращает состояния расширений РІ пространстве func (s *storage) FindExtensions(ctx context.Context, spaceID, envID string, extensions ...string) ([]*Info, error) { - - q := make([]interface{}, len(extensions)) - for _, e := range extensions { - q = append(q, fmt.Sprintf("id contains '%s'", e)) + var itemsFilter *items.Filter + if len(extensions) != 0 { + q := make([]interface{}, 0, len(extensions)+1) + for _, e := range extensions { + q = append(q, fmt.Sprintf("id contains '%s'", e)) + } } - itms, _, err := s.content.Items.Find(ctx, spaceID, envID, StatusCollectionID, items.NewFilter(q...)) + itms, _, err := s.content.Items.Find(ctx, spaceID, envID, ExtensionsCollectionID, itemsFilter) if err != nil && !strings.Contains(err.Error(), collections.ErrNotFound.Error()) { return nil, err } - res := make([]*Info, 0, len(itms)) - - if len(extensions) == 0 { - for _, item := range itms { - res = append(res, infoFromItem(item.ID, item)) - } - return res, nil + res := make([]*Info, len(itms)) + for i, item := range itms { + res[i] = infoFromItem(item.ID, item) } - - extensionToItem := make(map[string]*items.Item, len(itms)) - for _, item := range itms { - extensionToItem[item.ID] = item - } - for _, extension := range extensions { - res = append(res, infoFromItem(extension, extensionToItem[extension])) - } - return res, nil } @@ -114,7 +102,7 @@ func (s *storage) SetExtension(ctx context.Context, spaceID, envID string, exten ID: extension, SpaceID: spaceID, EnvID: envID, - CollectionID: StatusCollectionID, + CollectionID: ExtensionsCollectionID, Data: make(map[string]interface{}), } @@ -125,7 +113,7 @@ func (s *storage) SetExtension(ctx context.Context, spaceID, envID string, exten _ = item.Set("status_msg", status.Msg) _ = item.Set("status_error", status.Error) - i, _ := s.content.Items.Get(ctx, spaceID, envID, StatusCollectionID, extension) + i, _ := s.content.Items.Get(ctx, spaceID, envID, ExtensionsCollectionID, extension) if i == nil { _, err := s.content.Items.Create(ctx, item) return err @@ -140,7 +128,7 @@ func (s *storage) DeleteExtension(ctx context.Context, spaceID, envID string, ex ID: extension, SpaceID: spaceID, EnvID: envID, - CollectionID: StatusCollectionID, + CollectionID: ExtensionsCollectionID, } return s.content.Items.Delete(ctx, item) } diff --git a/pkg/files/middleware/error_logging_middleware.go b/pkg/files/middleware/error_logging_middleware.go index 683a7bc06598eabd703239b37ebaa7b2553703cf..18e9b65a502b6cacc1913a9c14cfe5ff0aac8a1c 100644 --- a/pkg/files/middleware/error_logging_middleware.go +++ b/pkg/files/middleware/error_logging_middleware.go @@ -1,9 +1,9 @@ -package middleware - // Code generated by gowrap. DO NOT EDIT. // template: ../../../assets/templates/middleware/error_log // gowrap: http://github.com/hexdigest/gowrap +package middleware + //go:generate gowrap gen -p git.perx.ru/perxis/perxis-go/pkg/files -i Files -t ../../../assets/templates/middleware/error_log -o error_logging_middleware.go -l "" import ( diff --git a/pkg/files/middleware/logging_middleware.go b/pkg/files/middleware/logging_middleware.go index b8a4d536a5c2cd909471496dde0df4650d2de9de..b295fa68cc8367021d5fa5e00a0c850cc27c7cee 100644 --- a/pkg/files/middleware/logging_middleware.go +++ b/pkg/files/middleware/logging_middleware.go @@ -1,9 +1,9 @@ -package middleware - // Code generated by gowrap. DO NOT EDIT. // template: ../../../assets/templates/middleware/access_log // gowrap: http://github.com/hexdigest/gowrap +package middleware + //go:generate gowrap gen -p git.perx.ru/perxis/perxis-go/pkg/files -i Files -t ../../../assets/templates/middleware/access_log -o logging_middleware.go -l "" import ( diff --git a/pkg/images/middleware/error_logging_middleware.go b/pkg/images/middleware/error_logging_middleware.go index 92d19a547460d18e36c4e6e6cdedb8a42814b5ea..749db73b2ed5682c9725c920ae4b850eff5e67e1 100644 --- a/pkg/images/middleware/error_logging_middleware.go +++ b/pkg/images/middleware/error_logging_middleware.go @@ -1,9 +1,9 @@ -package middleware - // Code generated by gowrap. DO NOT EDIT. // template: ../../../assets/templates/middleware/error_log // gowrap: http://github.com/hexdigest/gowrap +package middleware + //go:generate gowrap gen -p git.perx.ru/perxis/perxis-go/pkg/images -i Images -t ../../../assets/templates/middleware/error_log -o error_logging_middleware.go -l "" import ( diff --git a/pkg/images/middleware/logging_middleware.go b/pkg/images/middleware/logging_middleware.go index dccfa14a41ee601927c5be95e34bcce01e9bcdb0..fb7d0af4faecfde621e295b0da8e6f2e098e56a1 100644 --- a/pkg/images/middleware/logging_middleware.go +++ b/pkg/images/middleware/logging_middleware.go @@ -1,9 +1,9 @@ -package middleware - // Code generated by gowrap. DO NOT EDIT. // template: ../../../assets/templates/middleware/access_log // gowrap: http://github.com/hexdigest/gowrap +package middleware + //go:generate gowrap gen -p git.perx.ru/perxis/perxis-go/pkg/images -i Images -t ../../../assets/templates/middleware/access_log -o logging_middleware.go -l "" import ( diff --git a/pkg/items/middleware/error_logging_middleware.go b/pkg/items/middleware/error_logging_middleware.go index 91177dec0eb441d23e485c2f4e39617e95e36b1d..345d22ca2727d1516e4a7176e885195ab38f1d20 100644 --- a/pkg/items/middleware/error_logging_middleware.go +++ b/pkg/items/middleware/error_logging_middleware.go @@ -1,9 +1,9 @@ -package middleware - // Code generated by gowrap. DO NOT EDIT. // template: ../../../assets/templates/middleware/error_log // gowrap: http://github.com/hexdigest/gowrap +package middleware + //go:generate gowrap gen -p git.perx.ru/perxis/perxis-go/pkg/items -i Items -t ../../../assets/templates/middleware/error_log -o error_logging_middleware.go -l "" import ( diff --git a/pkg/items/middleware/logging_middleware.go b/pkg/items/middleware/logging_middleware.go index a2bb73c94d771764453afd1c337d29ce544d6a46..6ed28f90053eab68a44b1e5ac79d5228d7bfe9be 100644 --- a/pkg/items/middleware/logging_middleware.go +++ b/pkg/items/middleware/logging_middleware.go @@ -1,9 +1,9 @@ -package middleware - // Code generated by gowrap. DO NOT EDIT. // template: ../../../assets/templates/middleware/access_log // gowrap: http://github.com/hexdigest/gowrap +package middleware + //go:generate gowrap gen -p git.perx.ru/perxis/perxis-go/pkg/items -i Items -t ../../../assets/templates/middleware/access_log -o logging_middleware.go -l "" import ( diff --git a/pkg/references/middleware/error_logging_middleware.go b/pkg/references/middleware/error_logging_middleware.go index 0c6ecb64e6dba17c66bc24ca86063a8a41280871..0cfbf919e5acd70dc453494d15e9e8778afcca85 100644 --- a/pkg/references/middleware/error_logging_middleware.go +++ b/pkg/references/middleware/error_logging_middleware.go @@ -1,10 +1,10 @@ package middleware -// Code generated by gowrap. DO NOT EDIT. -// template: ../../../assets/templates/middleware/error_log -// gowrap: http://github.com/hexdigest/gowrap +// DO NOT EDIT! +// This code is generated with http://github.com/hexdigest/gowrap tool +// using ../../../assets/templates/middleware/error_log template -//go:generate gowrap gen -p git.perx.ru/perxis/perxis-go/pkg/references -i References -t ../../../assets/templates/middleware/error_log -o error_logging_middleware.go -l "" +//go:generate gowrap gen -p git.perx.ru/perxis/perxis-go/pkg/references -i References -t ../../../assets/templates/middleware/error_log -o error_logging_middleware.go import ( "context" diff --git a/pkg/references/middleware/logging_middleware.go b/pkg/references/middleware/logging_middleware.go index 6af2fecda59b2552d23ad5c55122335463bc7a38..a0f010ae99c2f9ce1eb726e5caba316379328a42 100644 --- a/pkg/references/middleware/logging_middleware.go +++ b/pkg/references/middleware/logging_middleware.go @@ -1,10 +1,10 @@ package middleware -// Code generated by gowrap. DO NOT EDIT. -// template: ../../../assets/templates/middleware/access_log -// gowrap: http://github.com/hexdigest/gowrap +// DO NOT EDIT! +// This code is generated with http://github.com/hexdigest/gowrap tool +// using ../../../assets/templates/middleware/access_log template -//go:generate gowrap gen -p git.perx.ru/perxis/perxis-go/pkg/references -i References -t ../../../assets/templates/middleware/access_log -o logging_middleware.go -l "" +//go:generate gowrap gen -p git.perx.ru/perxis/perxis-go/pkg/references -i References -t ../../../assets/templates/middleware/access_log -o logging_middleware.go import ( "context" diff --git a/proto/extensions/manager_service.pb.go b/proto/extensions/manager_service.pb.go index dc690c8ff40d0e61226d316c90da8d6642e1cbbf..8f352f1870fab3a81edfed16a1b1282e4d9eee08 100644 --- a/proto/extensions/manager_service.pb.go +++ b/proto/extensions/manager_service.pb.go @@ -50,28 +50,28 @@ const ( type State int32 const ( - State_UNKNOWN State = 0 - State_INSTALLED State = 1 - State_IN_PROGRESS State = 2 - State_FAIL State = 3 - State_PENDING State = 4 + State_NOT_INSTALLED State = 0 + State_INSTALLED State = 1 + State_IN_PROGRESS State = 2 + State_FAIL State = 3 + State_PENDING State = 4 ) // Enum value maps for State. var ( State_name = map[int32]string{ - 0: "UNKNOWN", + 0: "NOT_INSTALLED", 1: "INSTALLED", 2: "IN_PROGRESS", 3: "FAIL", 4: "PENDING", } State_value = map[string]int32{ - "UNKNOWN": 0, - "INSTALLED": 1, - "IN_PROGRESS": 2, - "FAIL": 3, - "PENDING": 4, + "NOT_INSTALLED": 0, + "INSTALLED": 1, + "IN_PROGRESS": 2, + "FAIL": 3, + "PENDING": 4, } ) @@ -102,26 +102,16 @@ func (State) EnumDescriptor() ([]byte, []int) { return file_extensions_manager_service_proto_rawDescGZIP(), []int{0} } -// ListExtensionsRequest - запрос РЅР° получение статуса расширений РІ пространстве Рё окружении. -// Если СЃРїРёСЃРѕРє расширений РІ запросе РЅРµ передан, возвращаются РІСЃРµ установленные расширения -// -// Рспользование флагов `installed`/`uninstalled`: -// - если РІ ListExtensionsRequest.extensions передан СЃРїРёСЃРѕРє расширений, то флаги игнорируются -// Рё возвращается информация Рѕ переданных РІ запросе расширениях -// - `installed:false, uninstalled:false` (равноценно `installed:true, uninstalled:false`) - -// возвращается информация РѕР± установленных расширениях -// - `installed:false, uninstalled:true` - вернуть только зарегистрированные, РЅРѕ РЅРµ установленные расширения -// - `installed:true, uninstalled:true` - вернуть информацию Рѕ всех зарегистрированных расширениях +// ListExtensionsRequest - запрос РЅР° получение статуса расширений РІ пространстве Рё окружении type ListExtensionsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Extensions []string `protobuf:"bytes,1,rep,name=extensions,proto3" json:"extensions,omitempty"` // РРјСЏ расширения (опционально), regexp - 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"` // Рдентификатор окружения - Installed bool `protobuf:"varint,4,opt,name=installed,proto3" json:"installed,omitempty"` // Вернуть установленные расширения (РїРѕ умолчанию) - NotInstalled bool `protobuf:"varint,5,opt,name=not_installed,json=notInstalled,proto3" json:"not_installed,omitempty"` // Вернуть РЅРµ установленные расширения + Extensions []string `protobuf:"bytes,1,rep,name=extensions,proto3" json:"extensions,omitempty"` // РРјСЏ расширения (опционально), regexp + 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"` // Рдентификатор окружения + State []State `protobuf:"varint,4,rep,packed,name=state,proto3,enum=extensions.State" json:"state,omitempty"` } func (x *ListExtensionsRequest) Reset() { @@ -177,21 +167,14 @@ func (x *ListExtensionsRequest) GetEnvId() string { return "" } -func (x *ListExtensionsRequest) GetInstalled() bool { +func (x *ListExtensionsRequest) GetState() []State { if x != nil { - return x.Installed - } - return false -} - -func (x *ListExtensionsRequest) GetNotInstalled() bool { - if x != nil { - return x.NotInstalled + return x.State } - return false + return nil } -// GetExtensionResponse - описание расширения +// ListExtensionsResponse - описание расширения type ListExtensionsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -685,7 +668,7 @@ func (x *SpaceExtensions) GetState() State { if x != nil { return x.State } - return State_UNKNOWN + return State_NOT_INSTALLED } func (x *SpaceExtensions) GetStatusError() string { @@ -713,7 +696,6 @@ type ListExtensionsResponse_ExtensionInfo struct { 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"` // Доступная версия расширения @@ -769,7 +751,7 @@ func (x *ListExtensionsResponse_ExtensionInfo) GetState() State { if x != nil { return x.State } - return State_UNKNOWN + return State_NOT_INSTALLED } func (x *ListExtensionsResponse_ExtensionInfo) GetMsg() string { @@ -793,13 +775,6 @@ func (x *ListExtensionsResponse_ExtensionInfo) GetNotFound() bool { return false } -func (x *ListExtensionsResponse_ExtensionInfo) GetInstalled() bool { - if x != nil { - return x.Installed - } - return false -} - func (x *ListExtensionsResponse_ExtensionInfo) GetUpdateAvailable() bool { if x != nil { return x.UpdateAvailable @@ -826,148 +801,145 @@ 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, 0xac, + 0x74, 0x6f, 0x12, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x92, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 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, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6e, - 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x6e, 0x6f, 0x74, 0x5f, - 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0c, 0x6e, 0x6f, 0x74, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x22, 0xcb, 0x03, - 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, 0x50, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 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, - 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, - 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xde, 0x02, 0x0a, 0x0d, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 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, 0x15, 0x0a, 0x05, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x18, 0xfe, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, - 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x88, 0x4f, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 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, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6e, 0x76, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x22, 0xac, 0x03, 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, 0x50, + 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x30, 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, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x1a, 0xbf, 0x02, 0x0a, 0x0d, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 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, 0x15, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0xfe, 0x4e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x88, 0x4f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 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, 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, 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, 0x3f, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x63, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 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, 0xe5, 0x01, 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, 0x28, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0xbc, 0x50, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x65, 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, 0x2a, 0x4b, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, - 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 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, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x32, - 0xc1, 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, + 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, 0x3f, 0x0a, 0x1f, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x63, 0x0a, 0x20, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 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, + 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, 0xe5, 0x01, 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, 0x28, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0xbc, 0x50, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x65, 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, 0x2a, 0x51, 0x0a, 0x05, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x11, 0x0a, 0x0d, 0x4e, 0x4f, 0x54, 0x5f, 0x49, 0x4e, 0x53, 0x54, 0x41, 0x4c, + 0x4c, 0x45, 0x44, 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, 0x12, + 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x32, 0xc1, 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, - 0x77, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, - 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, + 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, 0x77, 0x0a, 0x18, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, 0x64, 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, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x65, + 0x64, 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, 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, + 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 ( @@ -1000,26 +972,27 @@ var file_extensions_manager_service_proto_goTypes = []interface{}{ nil, // 12: extensions.ExtensionDescriptor.MetadataEntry } var file_extensions_manager_service_proto_depIdxs = []int32{ - 11, // 0: extensions.ListExtensionsResponse.extensions:type_name -> extensions.ListExtensionsResponse.ExtensionInfo - 12, // 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 - 3, // 4: extensions.ListRegisteredExtensionsResponse.extensions:type_name -> extensions.ExtensionDescriptor - 0, // 5: extensions.SpaceExtensions.state:type_name -> extensions.State - 0, // 6: extensions.ListExtensionsResponse.ExtensionInfo.state:type_name -> extensions.State - 4, // 7: extensions.ExtensionManagerService.RegisterExtensions:input_type -> extensions.RegisterExtensionsRequest - 6, // 8: extensions.ExtensionManagerService.UnregisterExtensions:input_type -> extensions.UnregisterExtensionsRequest - 8, // 9: extensions.ExtensionManagerService.ListRegisteredExtensions:input_type -> extensions.ListRegisteredExtensionsRequest - 1, // 10: extensions.ExtensionManagerService.ListExtensions:input_type -> extensions.ListExtensionsRequest - 5, // 11: extensions.ExtensionManagerService.RegisterExtensions:output_type -> extensions.RegisterExtensionsResponse - 7, // 12: extensions.ExtensionManagerService.UnregisterExtensions:output_type -> extensions.UnregisterExtensionsResponse - 9, // 13: extensions.ExtensionManagerService.ListRegisteredExtensions:output_type -> extensions.ListRegisteredExtensionsResponse - 2, // 14: extensions.ExtensionManagerService.ListExtensions:output_type -> extensions.ListExtensionsResponse - 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.ListExtensionsRequest.state:type_name -> extensions.State + 11, // 1: extensions.ListExtensionsResponse.extensions:type_name -> extensions.ListExtensionsResponse.ExtensionInfo + 12, // 2: extensions.ExtensionDescriptor.metadata:type_name -> extensions.ExtensionDescriptor.MetadataEntry + 3, // 3: extensions.RegisterExtensionsRequest.extensions:type_name -> extensions.ExtensionDescriptor + 3, // 4: extensions.UnregisterExtensionsRequest.extensions:type_name -> extensions.ExtensionDescriptor + 3, // 5: extensions.ListRegisteredExtensionsResponse.extensions:type_name -> extensions.ExtensionDescriptor + 0, // 6: extensions.SpaceExtensions.state:type_name -> extensions.State + 0, // 7: extensions.ListExtensionsResponse.ExtensionInfo.state:type_name -> extensions.State + 4, // 8: extensions.ExtensionManagerService.RegisterExtensions:input_type -> extensions.RegisterExtensionsRequest + 6, // 9: extensions.ExtensionManagerService.UnregisterExtensions:input_type -> extensions.UnregisterExtensionsRequest + 8, // 10: extensions.ExtensionManagerService.ListRegisteredExtensions:input_type -> extensions.ListRegisteredExtensionsRequest + 1, // 11: extensions.ExtensionManagerService.ListExtensions:input_type -> extensions.ListExtensionsRequest + 5, // 12: extensions.ExtensionManagerService.RegisterExtensions:output_type -> extensions.RegisterExtensionsResponse + 7, // 13: extensions.ExtensionManagerService.UnregisterExtensions:output_type -> extensions.UnregisterExtensionsResponse + 9, // 14: extensions.ExtensionManagerService.ListRegisteredExtensions:output_type -> extensions.ListRegisteredExtensionsResponse + 2, // 15: extensions.ExtensionManagerService.ListExtensions:output_type -> extensions.ListExtensionsResponse + 12, // [12:16] is the sub-list for method output_type + 8, // [8:12] 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_manager_service_proto_init() }