From 28a9c1c929a50910c37c4e61e7ff808db4fdeb01 Mon Sep 17 00:00:00 2001 From: Juan Antonio Osorio Date: Tue, 7 Nov 2023 14:39:23 +0200 Subject: [PATCH] Implement profile update This implements the profile update method in the minder server. This was done last as it's kinda complex... as you can tell from the PR. We have to verify that the new profile is valid, that certain values like the project, name and provider don't change. Then we update the rules, and clean up the unused ones. And keep the instantiations in check. This, however, will be a very nice usability improvement. This also adds a profile update command --- cmd/cli/app/profile/profile_update.go | 109 + .../000006_entity_profiles_unique.down.sql | 16 + .../000006_entity_profiles_unique.up.sql | 18 + database/mock/store.go | 131 +- database/query/profile_status.sql | 9 + database/query/profiles.sql | 33 +- docs/docs/ref/proto.md | 23 + internal/controlplane/handlers_profile.go | 516 +++- internal/db/profile_status.sql.go | 20 + internal/db/profiles.sql.go | 224 +- internal/db/querier.go | 12 +- pkg/api/openapi/minder/v1/minder.swagger.json | 46 + pkg/api/protobuf/go/minder/v1/minder.pb.go | 2672 +++++++++-------- pkg/api/protobuf/go/minder/v1/minder.pb.gw.go | 85 + .../protobuf/go/minder/v1/minder_grpc.pb.go | 37 + proto/minder/v1/minder.proto | 22 +- 16 files changed, 2604 insertions(+), 1369 deletions(-) create mode 100644 cmd/cli/app/profile/profile_update.go create mode 100644 database/migrations/000006_entity_profiles_unique.down.sql create mode 100644 database/migrations/000006_entity_profiles_unique.up.sql diff --git a/cmd/cli/app/profile/profile_update.go b/cmd/cli/app/profile/profile_update.go new file mode 100644 index 0000000000..89ba9cb7aa --- /dev/null +++ b/cmd/cli/app/profile/profile_update.go @@ -0,0 +1,109 @@ +// +// Copyright 2023 Stacklok, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package profile + +import ( + "fmt" + "io" + "os" + "path/filepath" + + "github.com/spf13/cobra" + "github.com/spf13/viper" + + "github.com/stacklok/minder/internal/engine" + "github.com/stacklok/minder/internal/util" + pb "github.com/stacklok/minder/pkg/api/protobuf/go/minder/v1" +) + +// Profile_updateCmd represents the profile update command +var Profile_updateCmd = &cobra.Command{ + Use: "update", + Short: "Update a profile within a minder control plane", + Long: `The minder profile update subcommand lets you update profiles for a project +within a minder control plane.`, + PreRun: func(cmd *cobra.Command, args []string) { + if err := viper.BindPFlags(cmd.Flags()); err != nil { + fmt.Fprintf(os.Stderr, "Error binding flags: %s\n", err) + } + }, + RunE: func(cmd *cobra.Command, args []string) error { + f := util.GetConfigValue(viper.GetViper(), "file", "file", cmd, "").(string) + proj := viper.GetString("project") + + var err error + + var preader io.Reader + + if f == "" { + return fmt.Errorf("error: file must be set") + } + + if f == "-" { + preader = os.Stdin + } else { + f = filepath.Clean(f) + fopen, err := os.Open(f) + if err != nil { + return fmt.Errorf("error opening file: %w", err) + } + + defer fopen.Close() + + preader = fopen + } + + conn, err := util.GrpcForCommand(cmd, viper.GetViper()) + util.ExitNicelyOnError(err, "Error getting grpc connection") + defer conn.Close() + + client := pb.NewProfileServiceClient(conn) + ctx, cancel := util.GetAppContext() + defer cancel() + + p, err := engine.ParseYAML(preader) + if err != nil { + return fmt.Errorf("error reading profile from file: %w", err) + } + + if proj != "" { + if p.Context == nil { + p.Context = &pb.Context{} + } + + p.Context.Project = &proj + } + + // update a profile + resp, err := client.UpdateProfile(ctx, &pb.UpdateProfileRequest{ + Profile: p, + }) + if err != nil { + return fmt.Errorf("error updating profile: %w", err) + } + + table := initializeTable(cmd) + renderProfileTable(resp.GetProfile(), table) + table.Render() + return nil + }, +} + +func init() { + ProfileCmd.AddCommand(Profile_updateCmd) + Profile_updateCmd.Flags().StringP("file", "f", "", "Path to the YAML defining the profile (or - for stdin)") + Profile_updateCmd.Flags().StringP("project", "p", "", "Project to update the profile in") +} diff --git a/database/migrations/000006_entity_profiles_unique.down.sql b/database/migrations/000006_entity_profiles_unique.down.sql new file mode 100644 index 0000000000..70f57906bf --- /dev/null +++ b/database/migrations/000006_entity_profiles_unique.down.sql @@ -0,0 +1,16 @@ +-- Copyright 2023 Stacklok, Inc +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. + +-- drop index +DROP INDEX IF EXISTS entity_profiles_unique; \ No newline at end of file diff --git a/database/migrations/000006_entity_profiles_unique.up.sql b/database/migrations/000006_entity_profiles_unique.up.sql new file mode 100644 index 0000000000..f28a54018d --- /dev/null +++ b/database/migrations/000006_entity_profiles_unique.up.sql @@ -0,0 +1,18 @@ +-- Copyright 2023 Stacklok, Inc +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. + +-- We may only have a single entity profile per profile+entity combination, +-- so we can use a unique index to enforce this. +CREATE UNIQUE INDEX CONCURRENTLY IF NOT EXISTS entity_profiles_unique ON +entity_profiles (entity, profile_id); \ No newline at end of file diff --git a/database/mock/store.go b/database/mock/store.go index 1a34c054ff..73fc86b374 100644 --- a/database/mock/store.go +++ b/database/mock/store.go @@ -464,6 +464,20 @@ func (mr *MockStoreMockRecorder) DeleteProfile(arg0, arg1 interface{}) *gomock.C return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteProfile", reflect.TypeOf((*MockStore)(nil).DeleteProfile), arg0, arg1) } +// DeleteProfileForEntity mocks base method. +func (m *MockStore) DeleteProfileForEntity(arg0 context.Context, arg1 db.DeleteProfileForEntityParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteProfileForEntity", arg0, arg1) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteProfileForEntity indicates an expected call of DeleteProfileForEntity. +func (mr *MockStoreMockRecorder) DeleteProfileForEntity(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteProfileForEntity", reflect.TypeOf((*MockStore)(nil).DeleteProfileForEntity), arg0, arg1) +} + // DeleteProject mocks base method. func (m *MockStore) DeleteProject(arg0 context.Context, arg1 uuid.UUID) ([]db.DeleteProjectRow, error) { m.ctrl.T.Helper() @@ -535,6 +549,34 @@ func (mr *MockStoreMockRecorder) DeleteRole(arg0, arg1 interface{}) *gomock.Call return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRole", reflect.TypeOf((*MockStore)(nil).DeleteRole), arg0, arg1) } +// DeleteRuleInstantiation mocks base method. +func (m *MockStore) DeleteRuleInstantiation(arg0 context.Context, arg1 db.DeleteRuleInstantiationParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteRuleInstantiation", arg0, arg1) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteRuleInstantiation indicates an expected call of DeleteRuleInstantiation. +func (mr *MockStoreMockRecorder) DeleteRuleInstantiation(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRuleInstantiation", reflect.TypeOf((*MockStore)(nil).DeleteRuleInstantiation), arg0, arg1) +} + +// DeleteRuleStatusesForProfileAndRuleType mocks base method. +func (m *MockStore) DeleteRuleStatusesForProfileAndRuleType(arg0 context.Context, arg1 db.DeleteRuleStatusesForProfileAndRuleTypeParams) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteRuleStatusesForProfileAndRuleType", arg0, arg1) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteRuleStatusesForProfileAndRuleType indicates an expected call of DeleteRuleStatusesForProfileAndRuleType. +func (mr *MockStoreMockRecorder) DeleteRuleStatusesForProfileAndRuleType(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRuleStatusesForProfileAndRuleType", reflect.TypeOf((*MockStore)(nil).DeleteRuleStatusesForProfileAndRuleType), arg0, arg1) +} + // DeleteRuleType mocks base method. func (m *MockStore) DeleteRuleType(arg0 context.Context, arg1 uuid.UUID) error { m.ctrl.T.Helper() @@ -710,6 +752,21 @@ func (mr *MockStoreMockRecorder) GetChildrenProjects(arg0, arg1 interface{}) *go return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetChildrenProjects", reflect.TypeOf((*MockStore)(nil).GetChildrenProjects), arg0, arg1) } +// GetEntityProfileByProjectAndName mocks base method. +func (m *MockStore) GetEntityProfileByProjectAndName(arg0 context.Context, arg1 db.GetEntityProfileByProjectAndNameParams) ([]db.GetEntityProfileByProjectAndNameRow, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetEntityProfileByProjectAndName", arg0, arg1) + ret0, _ := ret[0].([]db.GetEntityProfileByProjectAndNameRow) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetEntityProfileByProjectAndName indicates an expected call of GetEntityProfileByProjectAndName. +func (mr *MockStoreMockRecorder) GetEntityProfileByProjectAndName(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetEntityProfileByProjectAndName", reflect.TypeOf((*MockStore)(nil).GetEntityProfileByProjectAndName), arg0, arg1) +} + // GetFeatureInProject mocks base method. func (m *MockStore) GetFeatureInProject(arg0 context.Context, arg1 db.GetFeatureInProjectParams) (json.RawMessage, error) { m.ctrl.T.Helper() @@ -815,6 +872,36 @@ func (mr *MockStoreMockRecorder) GetProfileByID(arg0, arg1 interface{}) *gomock. return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProfileByID", reflect.TypeOf((*MockStore)(nil).GetProfileByID), arg0, arg1) } +// GetProfileByIDAndLock mocks base method. +func (m *MockStore) GetProfileByIDAndLock(arg0 context.Context, arg1 uuid.UUID) (db.Profile, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProfileByIDAndLock", arg0, arg1) + ret0, _ := ret[0].(db.Profile) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProfileByIDAndLock indicates an expected call of GetProfileByIDAndLock. +func (mr *MockStoreMockRecorder) GetProfileByIDAndLock(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProfileByIDAndLock", reflect.TypeOf((*MockStore)(nil).GetProfileByIDAndLock), arg0, arg1) +} + +// GetProfileByNameAndLock mocks base method. +func (m *MockStore) GetProfileByNameAndLock(arg0 context.Context, arg1 db.GetProfileByNameAndLockParams) (db.Profile, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "GetProfileByNameAndLock", arg0, arg1) + ret0, _ := ret[0].(db.Profile) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// GetProfileByNameAndLock indicates an expected call of GetProfileByNameAndLock. +func (mr *MockStoreMockRecorder) GetProfileByNameAndLock(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProfileByNameAndLock", reflect.TypeOf((*MockStore)(nil).GetProfileByNameAndLock), arg0, arg1) +} + // GetProfileByProjectAndID mocks base method. func (m *MockStore) GetProfileByProjectAndID(arg0 context.Context, arg1 db.GetProfileByProjectAndIDParams) ([]db.GetProfileByProjectAndIDRow, error) { m.ctrl.T.Helper() @@ -830,19 +917,19 @@ func (mr *MockStoreMockRecorder) GetProfileByProjectAndID(arg0, arg1 interface{} return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProfileByProjectAndID", reflect.TypeOf((*MockStore)(nil).GetProfileByProjectAndID), arg0, arg1) } -// GetProfileByProjectAndName mocks base method. -func (m *MockStore) GetProfileByProjectAndName(arg0 context.Context, arg1 db.GetProfileByProjectAndNameParams) ([]db.GetProfileByProjectAndNameRow, error) { +// GetProfileForEntity mocks base method. +func (m *MockStore) GetProfileForEntity(arg0 context.Context, arg1 db.GetProfileForEntityParams) (db.EntityProfile, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "GetProfileByProjectAndName", arg0, arg1) - ret0, _ := ret[0].([]db.GetProfileByProjectAndNameRow) + ret := m.ctrl.Call(m, "GetProfileForEntity", arg0, arg1) + ret0, _ := ret[0].(db.EntityProfile) ret1, _ := ret[1].(error) return ret0, ret1 } -// GetProfileByProjectAndName indicates an expected call of GetProfileByProjectAndName. -func (mr *MockStoreMockRecorder) GetProfileByProjectAndName(arg0, arg1 interface{}) *gomock.Call { +// GetProfileForEntity indicates an expected call of GetProfileForEntity. +func (mr *MockStoreMockRecorder) GetProfileForEntity(arg0, arg1 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProfileByProjectAndName", reflect.TypeOf((*MockStore)(nil).GetProfileByProjectAndName), arg0, arg1) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "GetProfileForEntity", reflect.TypeOf((*MockStore)(nil).GetProfileForEntity), arg0, arg1) } // GetProfileStatusByIdAndProject mocks base method. @@ -1608,6 +1695,21 @@ func (mr *MockStoreMockRecorder) UpdateOrganization(arg0, arg1 interface{}) *gom return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateOrganization", reflect.TypeOf((*MockStore)(nil).UpdateOrganization), arg0, arg1) } +// UpdateProfile mocks base method. +func (m *MockStore) UpdateProfile(arg0 context.Context, arg1 db.UpdateProfileParams) (db.Profile, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpdateProfile", arg0, arg1) + ret0, _ := ret[0].(db.Profile) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpdateProfile indicates an expected call of UpdateProfile. +func (mr *MockStoreMockRecorder) UpdateProfile(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpdateProfile", reflect.TypeOf((*MockStore)(nil).UpdateProfile), arg0, arg1) +} + // UpdateRepository mocks base method. func (m *MockStore) UpdateRepository(arg0 context.Context, arg1 db.UpdateRepositoryParams) (db.Repository, error) { m.ctrl.T.Helper() @@ -1697,6 +1799,21 @@ func (mr *MockStoreMockRecorder) UpsertArtifactVersion(arg0, arg1 interface{}) * return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertArtifactVersion", reflect.TypeOf((*MockStore)(nil).UpsertArtifactVersion), arg0, arg1) } +// UpsertProfileForEntity mocks base method. +func (m *MockStore) UpsertProfileForEntity(arg0 context.Context, arg1 db.UpsertProfileForEntityParams) (db.EntityProfile, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "UpsertProfileForEntity", arg0, arg1) + ret0, _ := ret[0].(db.EntityProfile) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// UpsertProfileForEntity indicates an expected call of UpsertProfileForEntity. +func (mr *MockStoreMockRecorder) UpsertProfileForEntity(arg0, arg1 interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "UpsertProfileForEntity", reflect.TypeOf((*MockStore)(nil).UpsertProfileForEntity), arg0, arg1) +} + // UpsertPullRequest mocks base method. func (m *MockStore) UpsertPullRequest(arg0 context.Context, arg1 db.UpsertPullRequestParams) (db.PullRequest, error) { m.ctrl.T.Helper() diff --git a/database/query/profile_status.sql b/database/query/profile_status.sql index e43119176f..78461cfc85 100644 --- a/database/query/profile_status.sql +++ b/database/query/profile_status.sql @@ -72,6 +72,15 @@ SELECT p.id, p.name, ps.profile_status, ps.last_updated FROM profile_status ps INNER JOIN profiles p ON p.id = ps.profile_id WHERE p.project_id = $1; +-- DeleteRuleStatusesForProfileAndRuleType deletes a rule evaluation +-- but locks the table before doing so. + +-- name: DeleteRuleStatusesForProfileAndRuleType :exec +DELETE FROM rule_evaluations +WHERE id IN ( + SELECT id FROM rule_evaluations as re + WHERE re.profile_id = $1 AND re.rule_type_id = $2 FOR UPDATE); + -- name: ListRuleEvaluationsByProfileId :many WITH eval_details AS ( diff --git a/database/query/profiles.sql b/database/query/profiles.sql index 1c176f8e80..e654e50eef 100644 --- a/database/query/profiles.sql +++ b/database/query/profiles.sql @@ -6,12 +6,34 @@ INSERT INTO profiles ( alert, name) VALUES ($1, $2, $3, $4, $5) RETURNING *; +-- name: UpdateProfile :one +UPDATE profiles SET + remediate = $2, + alert = $3, + updated_at = NOW() +WHERE id = $1 RETURNING *; + -- name: CreateProfileForEntity :one INSERT INTO entity_profiles ( entity, profile_id, contextual_rules) VALUES ($1, $2, sqlc.arg(contextual_rules)::jsonb) RETURNING *; +-- name: UpsertProfileForEntity :one +INSERT INTO entity_profiles ( + entity, + profile_id, + contextual_rules) VALUES ($1, $2, sqlc.arg(contextual_rules)::jsonb) +ON CONFLICT (entity, profile_id) DO UPDATE SET + contextual_rules = sqlc.arg(contextual_rules)::jsonb +RETURNING *; + +-- name: DeleteProfileForEntity :exec +DELETE FROM entity_profiles WHERE profile_id = $1 AND entity = $2; + +-- name: GetProfileForEntity :one +SELECT * FROM entity_profiles WHERE profile_id = $1 AND entity = $2; + -- name: GetProfileByProjectAndID :many SELECT * FROM profiles JOIN entity_profiles ON profiles.id = entity_profiles.profile_id WHERE profiles.project_id = $1 AND profiles.id = $2; @@ -19,7 +41,13 @@ WHERE profiles.project_id = $1 AND profiles.id = $2; -- name: GetProfileByID :one SELECT * FROM profiles WHERE id = $1; --- name: GetProfileByProjectAndName :many +-- name: GetProfileByIDAndLock :one +SELECT * FROM profiles WHERE id = $1 FOR UPDATE; + +-- name: GetProfileByNameAndLock :one +SELECT * FROM profiles WHERE name = $1 AND project_id = $2 FOR UPDATE; + +-- name: GetEntityProfileByProjectAndName :many SELECT * FROM profiles JOIN entity_profiles ON profiles.id = entity_profiles.profile_id WHERE profiles.project_id = $1 AND profiles.name = $2; @@ -36,6 +64,9 @@ INSERT INTO entity_profile_rules (entity_profile_id, rule_type_id) VALUES ($1, $2) ON CONFLICT (entity_profile_id, rule_type_id) DO NOTHING RETURNING *; +-- name: DeleteRuleInstantiation :exec +DELETE FROM entity_profile_rules WHERE entity_profile_id = $1 AND rule_type_id = $2; + -- name: ListProfilesInstantiatingRuleType :many -- get profile information that instantiate a rule. This is done by joining the profiles with entity_profiles, then correlating those -- with entity_profile_rules. The rule_type_id is used to filter the results. Note that we only really care about the overal profile, diff --git a/docs/docs/ref/proto.md b/docs/docs/ref/proto.md index 3506f111ab..de7d366270 100644 --- a/docs/docs/ref/proto.md +++ b/docs/docs/ref/proto.md @@ -81,6 +81,7 @@ replies with OK | Method Name | Request Type | Response Type | Description | | ----------- | ------------ | ------------- | ------------| | CreateProfile | [CreateProfileRequest](#minder-v1-CreateProfileRequest) | [CreateProfileResponse](#minder-v1-CreateProfileResponse) | | +| UpdateProfile | [UpdateProfileRequest](#minder-v1-UpdateProfileRequest) | [UpdateProfileResponse](#minder-v1-UpdateProfileResponse) | | | DeleteProfile | [DeleteProfileRequest](#minder-v1-DeleteProfileRequest) | [DeleteProfileResponse](#minder-v1-DeleteProfileResponse) | | | ListProfiles | [ListProfilesRequest](#minder-v1-ListProfilesRequest) | [ListProfilesResponse](#minder-v1-ListProfilesResponse) | | | GetProfileById | [GetProfileByIdRequest](#minder-v1-GetProfileByIdRequest) | [GetProfileByIdResponse](#minder-v1-GetProfileByIdResponse) | | @@ -1627,6 +1628,28 @@ the name stutters a bit but we already use a PullRequest message for handling PR + + +#### UpdateProfileRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| profile | [Profile](#minder-v1-Profile) | | | + + + + +#### UpdateProfileResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| profile | [Profile](#minder-v1-Profile) | | | + + #### UpdateRuleTypeRequest diff --git a/internal/controlplane/handlers_profile.go b/internal/controlplane/handlers_profile.go index e312001f68..f09427d401 100644 --- a/internal/controlplane/handlers_profile.go +++ b/internal/controlplane/handlers_profile.go @@ -21,6 +21,7 @@ import ( "errors" "fmt" "log" + "strings" "github.com/google/uuid" "google.golang.org/grpc/codes" @@ -36,6 +37,13 @@ import ( minderv1 "github.com/stacklok/minder/pkg/api/protobuf/go/minder/v1" ) +// this is a tuple that allows us track rule instantiations +// and the entity they're associated with +type entityAndRuleTuple struct { + Entity minderv1.Entity + RuleID uuid.UUID +} + // authAndContextValidation is a helper function to initialize entity context info and validate input // It also sets up the needed information in the `in` entity context that's needed for the rest of the flow // Note that this also does an authorization check. @@ -109,7 +117,6 @@ func validateActionType(r string) db.NullActionType { } // CreateProfile creates a profile for a group -// nolint: gocyclo func (s *Server) CreateProfile(ctx context.Context, cpr *minderv1.CreateProfileRequest) (*minderv1.CreateProfileResponse, error) { in := cpr.GetProfile() @@ -133,52 +140,7 @@ func (s *Server) CreateProfile(ctx context.Context, return nil, status.Errorf(codes.InvalidArgument, "invalid profile: %v", err) } - // We capture the rule instantiations here so we can - // track them in the db later. - ruleIDs := map[string]uuid.UUID{} - - err = engine.TraverseAllRulesForPipeline(in, func(r *minderv1.Profile_Rule) error { - // TODO: This will need to be updated to support - // the hierarchy tree once that's settled in. - rtdb, err := s.store.GetRuleTypeByName(ctx, db.GetRuleTypeByNameParams{ - Provider: provider.Name, - ProjectID: entityCtx.GetProject().GetID(), - Name: r.GetType(), - }) - if err != nil { - if errors.Is(err, sql.ErrNoRows) { - return &engine.RuleValidationError{ - Err: fmt.Sprintf("cannot find rule type %s", r.GetType()), - RuleType: r.GetType(), - } - } - - return fmt.Errorf("error getting rule type %s: %w", r.GetType(), err) - } - - rtyppb, err := engine.RuleTypePBFromDB(&rtdb, entityCtx) - if err != nil { - return fmt.Errorf("cannot convert rule type %s to pb: %w", rtdb.Name, err) - } - - rval, err := engine.NewRuleValidator(rtyppb) - if err != nil { - return fmt.Errorf("error creating rule validator: %w", err) - } - - if err := rval.ValidateRuleDefAgainstSchema(r.Def.AsMap()); err != nil { - return fmt.Errorf("error validating rule: %w", err) - } - - if err := rval.ValidateParamsAgainstSchema(r.GetParams()); err != nil { - return fmt.Errorf("error validating rule params: %w", err) - } - - ruleIDs[r.GetType()] = rtdb.ID - - return nil - }) - + rulesInProf, err := s.getAndValidateRulesFromProfile(ctx, in, entityCtx) if err != nil { var violation *engine.RuleValidationError if errors.As(err, &violation) { @@ -226,7 +188,7 @@ func (s *Server) CreateProfile(ctx context.Context, minderv1.Entity_ENTITY_BUILD_ENVIRONMENTS: in.GetBuildEnvironment(), minderv1.Entity_ENTITY_PULL_REQUESTS: in.GetPullRequest(), } { - if err := createProfileRulesForEntity(ctx, ent, &profile, qtx, entRules, ruleIDs); err != nil { + if err := createProfileRulesForEntity(ctx, ent, &profile, qtx, entRules, rulesInProf); err != nil { return nil, err } } @@ -263,7 +225,7 @@ func createProfileRulesForEntity( profile *db.Profile, qtx db.Querier, rules []*minderv1.Profile_Rule, - ruleIDs map[string]uuid.UUID, + rulesInProf map[string]entityAndRuleTuple, ) error { if rules == nil { return nil @@ -279,9 +241,19 @@ func createProfileRulesForEntity( Entity: entities.EntityTypeToDB(entity), ContextualRules: marshalled, }) + if err != nil { + log.Printf("error creating profile for entity %s: %v", entity, err) + return status.Errorf(codes.Internal, "error creating profile") + } - for idx := range ruleIDs { - ruleID := ruleIDs[idx] + for idx := range rulesInProf { + ruleRef := rulesInProf[idx] + + if ruleRef.Entity != entity { + continue + } + + ruleID := ruleRef.RuleID _, err := qtx.UpsertRuleInstantiation(ctx, db.UpsertRuleInstantiationParams{ EntityProfileID: entProf.ID, @@ -364,28 +336,47 @@ func (s *Server) GetProfileById(ctx context.Context, return nil, util.UserVisibleError(codes.InvalidArgument, "invalid profile ID") } - profiles, err := s.store.GetProfileByProjectAndID(ctx, db.GetProfileByProjectAndIDParams{ + prof, err := getProfilePBFromDB(ctx, parsedProfileID, entityCtx, s.store) + if err != nil { + if errors.Is(err, sql.ErrNoRows) || strings.Contains(err.Error(), "not found") { + return nil, util.UserVisibleError(codes.NotFound, "profile not found") + } + + return nil, status.Errorf(codes.Internal, "failed to get profile: %s", err) + } + + return &minderv1.GetProfileByIdResponse{ + Profile: prof, + }, nil +} + +func getProfilePBFromDB( + ctx context.Context, + id uuid.UUID, + entityCtx *engine.EntityContext, + querier db.ExtendQuerier, +) (*minderv1.Profile, error) { + profiles, err := querier.GetProfileByProjectAndID(ctx, db.GetProfileByProjectAndIDParams{ ProjectID: entityCtx.Project.ID, - ID: parsedProfileID, + ID: id, }) if err != nil { - return nil, status.Errorf(codes.Unknown, "failed to get profile: %s", err) + return nil, err } - var resp minderv1.GetProfileByIdResponse pols := engine.MergeDatabaseGetIntoProfiles(profiles, entityCtx) if len(pols) == 0 { - return nil, status.Errorf(codes.NotFound, "profile not found") + return nil, fmt.Errorf("profile not found") } else if len(pols) > 1 { - return nil, status.Errorf(codes.Unknown, "failed to get profile: %s", err) + return nil, fmt.Errorf("failed to get profile: %w", err) } // This should be only one profile for _, profile := range pols { - resp.Profile = profile + return profile, nil } - return &resp, nil + return nil, fmt.Errorf("profile not found") } func getRuleEvalEntityInfo( @@ -575,3 +566,410 @@ func (s *Server) GetProfileStatusByProject(ctx context.Context, return res, nil } + +// UpdateProfile updates a profile for a project +// +//nolint:gocyclo +func (s *Server) UpdateProfile(ctx context.Context, + cpr *minderv1.UpdateProfileRequest) (*minderv1.UpdateProfileResponse, error) { + in := cpr.GetProfile() + + ctx, err := s.authAndContextValidation(ctx, in.GetContext()) + if err != nil { + return nil, status.Errorf(codes.InvalidArgument, "error ensuring default group: %v", err) + } + + entityCtx := engine.EntityFromContext(ctx) + + if err := in.Validate(); err != nil { + return nil, status.Errorf(codes.InvalidArgument, "invalid profile: %v", err) + } + + tx, err := s.store.BeginTransaction() + if err != nil { + log.Printf("error starting transaction: %v", err) + return nil, status.Errorf(codes.Internal, "error updating profile") + } + defer s.store.Rollback(tx) + + qtx := s.store.GetQuerierWithTransaction(tx) + + // Get object and ensure we lock it for update + oldDBProfile, err := getProfileFromPBForUpdateWithQuerier(ctx, in, entityCtx, qtx) + if err != nil { + if errors.Is(err, sql.ErrNoRows) { + return nil, util.UserVisibleError(codes.NotFound, "profile not found") + } + + return nil, status.Errorf(codes.Internal, "error fetching profile to be updated: %v", err) + } + + // validate update + if err := validateProfileUpdate(oldDBProfile, in, entityCtx); err != nil { + return nil, util.UserVisibleError(codes.InvalidArgument, "invalid profile update: %v", err) + } + + rules, err := s.getAndValidateRulesFromProfile(ctx, in, entityCtx) + if err != nil { + var violation *engine.RuleValidationError + if errors.As(err, &violation) { + log.Printf("error validating rule: %v", violation) + return nil, util.UserVisibleError(codes.InvalidArgument, + "profile contained invalid rule '%s': %s", violation.RuleType, violation.Err) + } + + log.Printf("error getting rule type: %v", err) + return nil, status.Errorf(codes.Internal, "error updating profile") + } + + oldProfile, err := getProfilePBFromDB(ctx, oldDBProfile.ID, entityCtx, qtx) + if err != nil { + if errors.Is(err, sql.ErrNoRows) || strings.Contains(err.Error(), "not found") { + return nil, util.UserVisibleError(codes.NotFound, "profile not found") + } + + return nil, status.Errorf(codes.Internal, "failed to get profile: %s", err) + } + + oldRules, err := s.getRulesFromProfile(ctx, oldProfile, entityCtx) + if err != nil { + if errors.Is(err, sql.ErrNoRows) { + return nil, util.UserVisibleError(codes.NotFound, "profile not found") + } + return nil, status.Errorf(codes.Internal, "error fetching profile to be updated: %v", err) + } + + // Update top-level profile db object + profile, err := qtx.UpdateProfile(ctx, db.UpdateProfileParams{ + ID: oldDBProfile.ID, + Remediate: validateActionType(in.GetRemediate()), + Alert: validateActionType(in.GetAlert()), + }) + if err != nil { + return nil, status.Errorf(codes.Internal, "error updating profile: %v", err) + } + + // Create entity rules entries + for ent, entRules := range map[minderv1.Entity][]*minderv1.Profile_Rule{ + minderv1.Entity_ENTITY_REPOSITORIES: in.GetRepository(), + minderv1.Entity_ENTITY_ARTIFACTS: in.GetArtifact(), + minderv1.Entity_ENTITY_BUILD_ENVIRONMENTS: in.GetBuildEnvironment(), + minderv1.Entity_ENTITY_PULL_REQUESTS: in.GetPullRequest(), + } { + if err := updateProfileRulesForEntity(ctx, ent, &profile, qtx, entRules, rules, oldRules); err != nil { + return nil, err + } + } + + if err := deleteUnusedRulesFromProfile(ctx, &profile, oldRules, qtx); err != nil { + return nil, status.Errorf(codes.Internal, "error updating profile: %v", err) + } + + if err := deleteRuleStatusesForProfile(ctx, &profile, oldRules, qtx); err != nil { + return nil, status.Errorf(codes.Internal, "error updating profile: %v", err) + } + + if err := tx.Commit(); err != nil { + log.Printf("error committing transaction: %v", err) + return nil, status.Errorf(codes.Internal, "error updating profile") + } + + idStr := profile.ID.String() + in.Id = &idStr + resp := &minderv1.UpdateProfileResponse{ + Profile: in, + } + + // re-trigger profile evaluation + msg, err := reconcilers.NewProfileInitMessage(entityCtx.Provider.Name, entityCtx.Project.ID) + if err != nil { + log.Printf("error creating reconciler event: %v", err) + // error is non-fatal + return resp, nil + } + + // This is a non-fatal error, so we'll just log it and continue with the next ones + if err := s.evt.Publish(reconcilers.InternalProfileInitEventTopic, msg); err != nil { + log.Printf("error publishing reconciler event: %v", err) + } + + return resp, nil +} + +func (s *Server) getAndValidateRulesFromProfile( + ctx context.Context, + prof *minderv1.Profile, + entityCtx *engine.EntityContext, +) (map[string]entityAndRuleTuple, error) { + // We capture the rule instantiations here so we can + // track them in the db later. + rulesInProf := map[string]entityAndRuleTuple{} + + err := engine.TraverseAllRulesForPipeline(prof, func(r *minderv1.Profile_Rule) error { + // TODO: This will need to be updated to support + // the hierarchy tree once that's settled in. + rtdb, err := s.store.GetRuleTypeByName(ctx, db.GetRuleTypeByNameParams{ + Provider: entityCtx.GetProvider().Name, + ProjectID: entityCtx.GetProject().GetID(), + Name: r.GetType(), + }) + if err != nil { + if errors.Is(err, sql.ErrNoRows) { + return &engine.RuleValidationError{ + Err: fmt.Sprintf("cannot find rule type %s", r.GetType()), + RuleType: r.GetType(), + } + } + + return fmt.Errorf("error getting rule type %s: %w", r.GetType(), err) + } + + rtyppb, err := engine.RuleTypePBFromDB(&rtdb, entityCtx) + if err != nil { + return fmt.Errorf("cannot convert rule type %s to pb: %w", rtdb.Name, err) + } + + rval, err := engine.NewRuleValidator(rtyppb) + if err != nil { + return fmt.Errorf("error creating rule validator: %w", err) + } + + if err := rval.ValidateRuleDefAgainstSchema(r.Def.AsMap()); err != nil { + return fmt.Errorf("error validating rule: %w", err) + } + + if err := rval.ValidateParamsAgainstSchema(r.GetParams()); err != nil { + return fmt.Errorf("error validating rule params: %w", err) + } + + rulesInProf[r.GetType()] = entityAndRuleTuple{ + Entity: minderv1.EntityFromString(rtyppb.Def.InEntity), + RuleID: rtdb.ID, + } + + return nil + }) + + if err != nil { + return nil, err + } + + return rulesInProf, nil +} + +func (s *Server) getRulesFromProfile( + ctx context.Context, + prof *minderv1.Profile, + entityCtx *engine.EntityContext, +) (map[string]entityAndRuleTuple, error) { + // We capture the rule instantiations here so we can + // track them in the db later. + rulesInProf := map[string]entityAndRuleTuple{} + + err := engine.TraverseAllRulesForPipeline(prof, func(r *minderv1.Profile_Rule) error { + // TODO: This will need to be updated to support + // the hierarchy tree once that's settled in. + rtdb, err := s.store.GetRuleTypeByName(ctx, db.GetRuleTypeByNameParams{ + Provider: entityCtx.GetProvider().Name, + ProjectID: entityCtx.GetProject().GetID(), + Name: r.GetType(), + }) + if err != nil { + return fmt.Errorf("error getting rule type %s: %w", r.GetType(), err) + } + + rtyppb, err := engine.RuleTypePBFromDB(&rtdb, entityCtx) + if err != nil { + return fmt.Errorf("cannot convert rule type %s to pb: %w", rtdb.Name, err) + } + + rulesInProf[r.GetType()] = entityAndRuleTuple{ + Entity: minderv1.EntityFromString(rtyppb.Def.InEntity), + RuleID: rtdb.ID, + } + + return nil + }) + + if err != nil { + return nil, err + } + + return rulesInProf, nil +} + +func updateProfileRulesForEntity( + ctx context.Context, + entity minderv1.Entity, + profile *db.Profile, + qtx db.Querier, + rules []*minderv1.Profile_Rule, + rulesInProf map[string]entityAndRuleTuple, + oldRulesInProf map[string]entityAndRuleTuple, +) error { + if len(rules) == 0 { + return qtx.DeleteProfileForEntity(ctx, db.DeleteProfileForEntityParams{ + ProfileID: profile.ID, + Entity: entities.EntityTypeToDB(entity), + }) + } + + marshalled, err := json.Marshal(rules) + if err != nil { + log.Printf("error marshalling %s rules: %v", entity, err) + return status.Errorf(codes.Internal, "error creating profile") + } + entProf, err := qtx.UpsertProfileForEntity(ctx, db.UpsertProfileForEntityParams{ + ProfileID: profile.ID, + Entity: entities.EntityTypeToDB(entity), + ContextualRules: marshalled, + }) + if err != nil { + log.Printf("error updating profile for entity %s: %v", entity, err) + return err + } + + for idx := range rulesInProf { + ruleRef := rulesInProf[idx] + + if ruleRef.Entity != entity { + continue + } + + _, err := qtx.UpsertRuleInstantiation(ctx, db.UpsertRuleInstantiationParams{ + EntityProfileID: entProf.ID, + RuleTypeID: ruleRef.RuleID, + }) + if errors.Is(err, sql.ErrNoRows) { + log.Printf("the rule instantiation for rule already existed.") + } else if err != nil { + log.Printf("error creating rule instantiation: %v", err) + return status.Errorf(codes.Internal, "error updating profile") + } + + // Remove the rule from the old rule IDs so we + // can delete the ones that are no longer needed + delete(oldRulesInProf, idx) + } + + return err +} + +func getProfileFromPBForUpdateWithQuerier( + ctx context.Context, + prof *minderv1.Profile, + entityCtx *engine.EntityContext, + querier db.ExtendQuerier, +) (*db.Profile, error) { + if prof.GetId() != "" { + return getProfileFromPBForUpdateByID(ctx, prof, querier) + } + + return getProfileFromPBForUpdateByName(ctx, prof, entityCtx, querier) +} + +func getProfileFromPBForUpdateByID( + ctx context.Context, + prof *minderv1.Profile, + querier db.ExtendQuerier, +) (*db.Profile, error) { + id, err := uuid.Parse(prof.GetId()) + if err != nil { + return nil, util.UserVisibleError(codes.InvalidArgument, "invalid profile ID") + } + + pdb, err := querier.GetProfileByIDAndLock(ctx, id) + if err != nil { + return nil, err + } + + return &pdb, nil +} + +func getProfileFromPBForUpdateByName( + ctx context.Context, + prof *minderv1.Profile, + entityCtx *engine.EntityContext, + querier db.ExtendQuerier, +) (*db.Profile, error) { + pdb, err := querier.GetProfileByNameAndLock(ctx, db.GetProfileByNameAndLockParams{ + Name: prof.GetName(), + ProjectID: entityCtx.GetProject().ID, + }) + if err != nil { + return nil, err + } + + return &pdb, nil +} + +func validateProfileUpdate(old *db.Profile, new *minderv1.Profile, entityCtx *engine.EntityContext) error { + if old.Name != new.Name { + return util.UserVisibleError(codes.InvalidArgument, "cannot change profile name") + } + + if old.ProjectID != entityCtx.Project.ID { + return util.UserVisibleError(codes.InvalidArgument, "cannot change profile project") + } + + if old.Provider != entityCtx.Provider.Name { + return util.UserVisibleError(codes.InvalidArgument, "cannot change profile provider") + } + + return nil +} + +func deleteUnusedRulesFromProfile( + ctx context.Context, + profile *db.Profile, + unusedRules map[string]entityAndRuleTuple, + querier db.ExtendQuerier, +) error { + for _, rule := range unusedRules { + // get entity profile + log.Printf("getting profile for entity %s", rule.Entity) + entProf, err := querier.GetProfileForEntity(ctx, db.GetProfileForEntityParams{ + ProfileID: profile.ID, + Entity: entities.EntityTypeToDB(rule.Entity), + }) + if err != nil { + if errors.Is(err, sql.ErrNoRows) { + log.Printf("skipping rule deletion for entity %s, profile not found", rule.Entity) + continue + } + log.Printf("error getting profile for entity %s: %v", rule.Entity, err) + return fmt.Errorf("error getting profile for entity %s: %w", rule.Entity, err) + } + + log.Printf("deleting rule instantiation for rule %s for entity profile %s", rule.RuleID, entProf.ID) + if err := querier.DeleteRuleInstantiation(ctx, db.DeleteRuleInstantiationParams{ + EntityProfileID: entProf.ID, + RuleTypeID: rule.RuleID, + }); err != nil { + log.Printf("error deleting rule instantiation: %v", err) + return fmt.Errorf("error deleting rule instantiation: %w", err) + } + } + + return nil +} + +func deleteRuleStatusesForProfile( + ctx context.Context, + profile *db.Profile, + unusedRules map[string]entityAndRuleTuple, + querier db.ExtendQuerier, +) error { + for _, rule := range unusedRules { + log.Printf("deleting rule evaluations for rule %s in profile %s", rule.RuleID, profile.ID) + if err := querier.DeleteRuleStatusesForProfileAndRuleType(ctx, db.DeleteRuleStatusesForProfileAndRuleTypeParams{ + ProfileID: profile.ID, + RuleTypeID: rule.RuleID, + }); err != nil { + log.Printf("error deleting rule evaluations: %v", err) + return fmt.Errorf("error deleting rule evaluations: %w", err) + } + } + + return nil +} diff --git a/internal/db/profile_status.sql.go b/internal/db/profile_status.sql.go index fa059eb5c9..f3839ccdde 100644 --- a/internal/db/profile_status.sql.go +++ b/internal/db/profile_status.sql.go @@ -15,6 +15,26 @@ import ( "github.com/sqlc-dev/pqtype" ) +const deleteRuleStatusesForProfileAndRuleType = `-- name: DeleteRuleStatusesForProfileAndRuleType :exec + +DELETE FROM rule_evaluations +WHERE id IN ( + SELECT id FROM rule_evaluations as re + WHERE re.profile_id = $1 AND re.rule_type_id = $2 FOR UPDATE) +` + +type DeleteRuleStatusesForProfileAndRuleTypeParams struct { + ProfileID uuid.UUID `json:"profile_id"` + RuleTypeID uuid.UUID `json:"rule_type_id"` +} + +// DeleteRuleStatusesForProfileAndRuleType deletes a rule evaluation +// but locks the table before doing so. +func (q *Queries) DeleteRuleStatusesForProfileAndRuleType(ctx context.Context, arg DeleteRuleStatusesForProfileAndRuleTypeParams) error { + _, err := q.db.ExecContext(ctx, deleteRuleStatusesForProfileAndRuleType, arg.ProfileID, arg.RuleTypeID) + return err +} + const getProfileStatusByIdAndProject = `-- name: GetProfileStatusByIdAndProject :one SELECT p.id, p.name, ps.profile_status, ps.last_updated FROM profile_status ps INNER JOIN profiles p ON p.id = ps.profile_id diff --git a/internal/db/profiles.sql.go b/internal/db/profiles.sql.go index 0cbb8a8e47..c47ed6d89d 100644 --- a/internal/db/profiles.sql.go +++ b/internal/db/profiles.sql.go @@ -124,37 +124,45 @@ func (q *Queries) DeleteProfile(ctx context.Context, id uuid.UUID) error { return err } -const getProfileByID = `-- name: GetProfileByID :one -SELECT id, name, provider, project_id, remediate, alert, created_at, updated_at FROM profiles WHERE id = $1 +const deleteProfileForEntity = `-- name: DeleteProfileForEntity :exec +DELETE FROM entity_profiles WHERE profile_id = $1 AND entity = $2 ` -func (q *Queries) GetProfileByID(ctx context.Context, id uuid.UUID) (Profile, error) { - row := q.db.QueryRowContext(ctx, getProfileByID, id) - var i Profile - err := row.Scan( - &i.ID, - &i.Name, - &i.Provider, - &i.ProjectID, - &i.Remediate, - &i.Alert, - &i.CreatedAt, - &i.UpdatedAt, - ) - return i, err +type DeleteProfileForEntityParams struct { + ProfileID uuid.UUID `json:"profile_id"` + Entity Entities `json:"entity"` } -const getProfileByProjectAndID = `-- name: GetProfileByProjectAndID :many +func (q *Queries) DeleteProfileForEntity(ctx context.Context, arg DeleteProfileForEntityParams) error { + _, err := q.db.ExecContext(ctx, deleteProfileForEntity, arg.ProfileID, arg.Entity) + return err +} + +const deleteRuleInstantiation = `-- name: DeleteRuleInstantiation :exec +DELETE FROM entity_profile_rules WHERE entity_profile_id = $1 AND rule_type_id = $2 +` + +type DeleteRuleInstantiationParams struct { + EntityProfileID uuid.UUID `json:"entity_profile_id"` + RuleTypeID uuid.UUID `json:"rule_type_id"` +} + +func (q *Queries) DeleteRuleInstantiation(ctx context.Context, arg DeleteRuleInstantiationParams) error { + _, err := q.db.ExecContext(ctx, deleteRuleInstantiation, arg.EntityProfileID, arg.RuleTypeID) + return err +} + +const getEntityProfileByProjectAndName = `-- name: GetEntityProfileByProjectAndName :many SELECT profiles.id, name, provider, project_id, remediate, alert, profiles.created_at, profiles.updated_at, entity_profiles.id, entity, profile_id, contextual_rules, entity_profiles.created_at, entity_profiles.updated_at FROM profiles JOIN entity_profiles ON profiles.id = entity_profiles.profile_id -WHERE profiles.project_id = $1 AND profiles.id = $2 +WHERE profiles.project_id = $1 AND profiles.name = $2 ` -type GetProfileByProjectAndIDParams struct { +type GetEntityProfileByProjectAndNameParams struct { ProjectID uuid.UUID `json:"project_id"` - ID uuid.UUID `json:"id"` + Name string `json:"name"` } -type GetProfileByProjectAndIDRow struct { +type GetEntityProfileByProjectAndNameRow struct { ID uuid.UUID `json:"id"` Name string `json:"name"` Provider string `json:"provider"` @@ -171,15 +179,15 @@ type GetProfileByProjectAndIDRow struct { UpdatedAt_2 time.Time `json:"updated_at_2"` } -func (q *Queries) GetProfileByProjectAndID(ctx context.Context, arg GetProfileByProjectAndIDParams) ([]GetProfileByProjectAndIDRow, error) { - rows, err := q.db.QueryContext(ctx, getProfileByProjectAndID, arg.ProjectID, arg.ID) +func (q *Queries) GetEntityProfileByProjectAndName(ctx context.Context, arg GetEntityProfileByProjectAndNameParams) ([]GetEntityProfileByProjectAndNameRow, error) { + rows, err := q.db.QueryContext(ctx, getEntityProfileByProjectAndName, arg.ProjectID, arg.Name) if err != nil { return nil, err } defer rows.Close() - items := []GetProfileByProjectAndIDRow{} + items := []GetEntityProfileByProjectAndNameRow{} for rows.Next() { - var i GetProfileByProjectAndIDRow + var i GetEntityProfileByProjectAndNameRow if err := rows.Scan( &i.ID, &i.Name, @@ -209,17 +217,82 @@ func (q *Queries) GetProfileByProjectAndID(ctx context.Context, arg GetProfileBy return items, nil } -const getProfileByProjectAndName = `-- name: GetProfileByProjectAndName :many +const getProfileByID = `-- name: GetProfileByID :one +SELECT id, name, provider, project_id, remediate, alert, created_at, updated_at FROM profiles WHERE id = $1 +` + +func (q *Queries) GetProfileByID(ctx context.Context, id uuid.UUID) (Profile, error) { + row := q.db.QueryRowContext(ctx, getProfileByID, id) + var i Profile + err := row.Scan( + &i.ID, + &i.Name, + &i.Provider, + &i.ProjectID, + &i.Remediate, + &i.Alert, + &i.CreatedAt, + &i.UpdatedAt, + ) + return i, err +} + +const getProfileByIDAndLock = `-- name: GetProfileByIDAndLock :one +SELECT id, name, provider, project_id, remediate, alert, created_at, updated_at FROM profiles WHERE id = $1 FOR UPDATE +` + +func (q *Queries) GetProfileByIDAndLock(ctx context.Context, id uuid.UUID) (Profile, error) { + row := q.db.QueryRowContext(ctx, getProfileByIDAndLock, id) + var i Profile + err := row.Scan( + &i.ID, + &i.Name, + &i.Provider, + &i.ProjectID, + &i.Remediate, + &i.Alert, + &i.CreatedAt, + &i.UpdatedAt, + ) + return i, err +} + +const getProfileByNameAndLock = `-- name: GetProfileByNameAndLock :one +SELECT id, name, provider, project_id, remediate, alert, created_at, updated_at FROM profiles WHERE name = $1 AND project_id = $2 FOR UPDATE +` + +type GetProfileByNameAndLockParams struct { + Name string `json:"name"` + ProjectID uuid.UUID `json:"project_id"` +} + +func (q *Queries) GetProfileByNameAndLock(ctx context.Context, arg GetProfileByNameAndLockParams) (Profile, error) { + row := q.db.QueryRowContext(ctx, getProfileByNameAndLock, arg.Name, arg.ProjectID) + var i Profile + err := row.Scan( + &i.ID, + &i.Name, + &i.Provider, + &i.ProjectID, + &i.Remediate, + &i.Alert, + &i.CreatedAt, + &i.UpdatedAt, + ) + return i, err +} + +const getProfileByProjectAndID = `-- name: GetProfileByProjectAndID :many SELECT profiles.id, name, provider, project_id, remediate, alert, profiles.created_at, profiles.updated_at, entity_profiles.id, entity, profile_id, contextual_rules, entity_profiles.created_at, entity_profiles.updated_at FROM profiles JOIN entity_profiles ON profiles.id = entity_profiles.profile_id -WHERE profiles.project_id = $1 AND profiles.name = $2 +WHERE profiles.project_id = $1 AND profiles.id = $2 ` -type GetProfileByProjectAndNameParams struct { +type GetProfileByProjectAndIDParams struct { ProjectID uuid.UUID `json:"project_id"` - Name string `json:"name"` + ID uuid.UUID `json:"id"` } -type GetProfileByProjectAndNameRow struct { +type GetProfileByProjectAndIDRow struct { ID uuid.UUID `json:"id"` Name string `json:"name"` Provider string `json:"provider"` @@ -236,15 +309,15 @@ type GetProfileByProjectAndNameRow struct { UpdatedAt_2 time.Time `json:"updated_at_2"` } -func (q *Queries) GetProfileByProjectAndName(ctx context.Context, arg GetProfileByProjectAndNameParams) ([]GetProfileByProjectAndNameRow, error) { - rows, err := q.db.QueryContext(ctx, getProfileByProjectAndName, arg.ProjectID, arg.Name) +func (q *Queries) GetProfileByProjectAndID(ctx context.Context, arg GetProfileByProjectAndIDParams) ([]GetProfileByProjectAndIDRow, error) { + rows, err := q.db.QueryContext(ctx, getProfileByProjectAndID, arg.ProjectID, arg.ID) if err != nil { return nil, err } defer rows.Close() - items := []GetProfileByProjectAndNameRow{} + items := []GetProfileByProjectAndIDRow{} for rows.Next() { - var i GetProfileByProjectAndNameRow + var i GetProfileByProjectAndIDRow if err := rows.Scan( &i.ID, &i.Name, @@ -274,6 +347,29 @@ func (q *Queries) GetProfileByProjectAndName(ctx context.Context, arg GetProfile return items, nil } +const getProfileForEntity = `-- name: GetProfileForEntity :one +SELECT id, entity, profile_id, contextual_rules, created_at, updated_at FROM entity_profiles WHERE profile_id = $1 AND entity = $2 +` + +type GetProfileForEntityParams struct { + ProfileID uuid.UUID `json:"profile_id"` + Entity Entities `json:"entity"` +} + +func (q *Queries) GetProfileForEntity(ctx context.Context, arg GetProfileForEntityParams) (EntityProfile, error) { + row := q.db.QueryRowContext(ctx, getProfileForEntity, arg.ProfileID, arg.Entity) + var i EntityProfile + err := row.Scan( + &i.ID, + &i.Entity, + &i.ProfileID, + &i.ContextualRules, + &i.CreatedAt, + &i.UpdatedAt, + ) + return i, err +} + const listProfilesByProjectID = `-- name: ListProfilesByProjectID :many SELECT profiles.id, name, provider, project_id, remediate, alert, profiles.created_at, profiles.updated_at, entity_profiles.id, entity, profile_id, contextual_rules, entity_profiles.created_at, entity_profiles.updated_at FROM profiles JOIN entity_profiles ON profiles.id = entity_profiles.profile_id WHERE profiles.project_id = $1 @@ -374,6 +470,66 @@ func (q *Queries) ListProfilesInstantiatingRuleType(ctx context.Context, ruleTyp return items, nil } +const updateProfile = `-- name: UpdateProfile :one +UPDATE profiles SET + remediate = $2, + alert = $3, + updated_at = NOW() +WHERE id = $1 RETURNING id, name, provider, project_id, remediate, alert, created_at, updated_at +` + +type UpdateProfileParams struct { + ID uuid.UUID `json:"id"` + Remediate NullActionType `json:"remediate"` + Alert NullActionType `json:"alert"` +} + +func (q *Queries) UpdateProfile(ctx context.Context, arg UpdateProfileParams) (Profile, error) { + row := q.db.QueryRowContext(ctx, updateProfile, arg.ID, arg.Remediate, arg.Alert) + var i Profile + err := row.Scan( + &i.ID, + &i.Name, + &i.Provider, + &i.ProjectID, + &i.Remediate, + &i.Alert, + &i.CreatedAt, + &i.UpdatedAt, + ) + return i, err +} + +const upsertProfileForEntity = `-- name: UpsertProfileForEntity :one +INSERT INTO entity_profiles ( + entity, + profile_id, + contextual_rules) VALUES ($1, $2, $3::jsonb) +ON CONFLICT (entity, profile_id) DO UPDATE SET + contextual_rules = $3::jsonb +RETURNING id, entity, profile_id, contextual_rules, created_at, updated_at +` + +type UpsertProfileForEntityParams struct { + Entity Entities `json:"entity"` + ProfileID uuid.UUID `json:"profile_id"` + ContextualRules json.RawMessage `json:"contextual_rules"` +} + +func (q *Queries) UpsertProfileForEntity(ctx context.Context, arg UpsertProfileForEntityParams) (EntityProfile, error) { + row := q.db.QueryRowContext(ctx, upsertProfileForEntity, arg.Entity, arg.ProfileID, arg.ContextualRules) + var i EntityProfile + err := row.Scan( + &i.ID, + &i.Entity, + &i.ProfileID, + &i.ContextualRules, + &i.CreatedAt, + &i.UpdatedAt, + ) + return i, err +} + const upsertRuleInstantiation = `-- name: UpsertRuleInstantiation :one INSERT INTO entity_profile_rules (entity_profile_id, rule_type_id) VALUES ($1, $2) diff --git a/internal/db/querier.go b/internal/db/querier.go index 65acd2b87c..0ed264708c 100644 --- a/internal/db/querier.go +++ b/internal/db/querier.go @@ -38,11 +38,16 @@ type Querier interface { DeleteOldArtifactVersions(ctx context.Context, arg DeleteOldArtifactVersionsParams) error DeleteOrganization(ctx context.Context, id uuid.UUID) error DeleteProfile(ctx context.Context, id uuid.UUID) error + DeleteProfileForEntity(ctx context.Context, arg DeleteProfileForEntityParams) error DeleteProject(ctx context.Context, id uuid.UUID) ([]DeleteProjectRow, error) DeleteProvider(ctx context.Context, arg DeleteProviderParams) error DeletePullRequest(ctx context.Context, arg DeletePullRequestParams) error DeleteRepository(ctx context.Context, id uuid.UUID) error DeleteRole(ctx context.Context, id int32) error + DeleteRuleInstantiation(ctx context.Context, arg DeleteRuleInstantiationParams) error + // DeleteRuleStatusesForProfileAndRuleType deletes a rule evaluation + // but locks the table before doing so. + DeleteRuleStatusesForProfileAndRuleType(ctx context.Context, arg DeleteRuleStatusesForProfileAndRuleTypeParams) error DeleteRuleType(ctx context.Context, id uuid.UUID) error DeleteSessionState(ctx context.Context, id int32) error DeleteSessionStateByProjectID(ctx context.Context, arg DeleteSessionStateByProjectIDParams) error @@ -55,6 +60,7 @@ type Querier interface { GetArtifactVersionByID(ctx context.Context, id uuid.UUID) (ArtifactVersion, error) GetArtifactVersionBySha(ctx context.Context, sha string) (ArtifactVersion, error) GetChildrenProjects(ctx context.Context, id uuid.UUID) ([]GetChildrenProjectsRow, error) + GetEntityProfileByProjectAndName(ctx context.Context, arg GetEntityProfileByProjectAndNameParams) ([]GetEntityProfileByProjectAndNameRow, error) // GetFeatureInProject verifies if a feature is available for a specific project. // It returns the settings for the feature if it is available. GetFeatureInProject(ctx context.Context, arg GetFeatureInProjectParams) (json.RawMessage, error) @@ -64,8 +70,10 @@ type Querier interface { GetParentProjects(ctx context.Context, id uuid.UUID) ([]uuid.UUID, error) GetParentProjectsUntil(ctx context.Context, arg GetParentProjectsUntilParams) ([]uuid.UUID, error) GetProfileByID(ctx context.Context, id uuid.UUID) (Profile, error) + GetProfileByIDAndLock(ctx context.Context, id uuid.UUID) (Profile, error) + GetProfileByNameAndLock(ctx context.Context, arg GetProfileByNameAndLockParams) (Profile, error) GetProfileByProjectAndID(ctx context.Context, arg GetProfileByProjectAndIDParams) ([]GetProfileByProjectAndIDRow, error) - GetProfileByProjectAndName(ctx context.Context, arg GetProfileByProjectAndNameParams) ([]GetProfileByProjectAndNameRow, error) + GetProfileForEntity(ctx context.Context, arg GetProfileForEntityParams) (EntityProfile, error) GetProfileStatusByIdAndProject(ctx context.Context, arg GetProfileStatusByIdAndProjectParams) (GetProfileStatusByIdAndProjectRow, error) GetProfileStatusByNameAndProject(ctx context.Context, arg GetProfileStatusByNameAndProjectParams) (GetProfileStatusByNameAndProjectRow, error) GetProfileStatusByProject(ctx context.Context, projectID uuid.UUID) ([]GetProfileStatusByProjectRow, error) @@ -117,6 +125,7 @@ type Querier interface { ListUsersByRoleId(ctx context.Context, roleID int32) ([]int32, error) UpdateAccessToken(ctx context.Context, arg UpdateAccessTokenParams) (ProviderAccessToken, error) UpdateOrganization(ctx context.Context, arg UpdateOrganizationParams) (Project, error) + UpdateProfile(ctx context.Context, arg UpdateProfileParams) (Profile, error) // set clone_url if the value is not an empty string UpdateRepository(ctx context.Context, arg UpdateRepositoryParams) (Repository, error) UpdateRepositoryByID(ctx context.Context, arg UpdateRepositoryByIDParams) (Repository, error) @@ -124,6 +133,7 @@ type Querier interface { UpdateRuleType(ctx context.Context, arg UpdateRuleTypeParams) error UpsertArtifact(ctx context.Context, arg UpsertArtifactParams) (Artifact, error) UpsertArtifactVersion(ctx context.Context, arg UpsertArtifactVersionParams) (ArtifactVersion, error) + UpsertProfileForEntity(ctx context.Context, arg UpsertProfileForEntityParams) (EntityProfile, error) UpsertPullRequest(ctx context.Context, arg UpsertPullRequestParams) (PullRequest, error) UpsertRuleDetailsAlert(ctx context.Context, arg UpsertRuleDetailsAlertParams) (uuid.UUID, error) UpsertRuleDetailsEval(ctx context.Context, arg UpsertRuleDetailsEvalParams) (uuid.UUID, error) diff --git a/pkg/api/openapi/minder/v1/minder.swagger.json b/pkg/api/openapi/minder/v1/minder.swagger.json index a755646a70..3b6a509c2b 100644 --- a/pkg/api/openapi/minder/v1/minder.swagger.json +++ b/pkg/api/openapi/minder/v1/minder.swagger.json @@ -580,6 +580,36 @@ "tags": [ "ProfileService" ] + }, + "put": { + "operationId": "ProfileService_UpdateProfile", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1UpdateProfileResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/googlerpcStatus" + } + } + }, + "parameters": [ + { + "name": "body", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1UpdateProfileRequest" + } + } + ], + "tags": [ + "ProfileService" + ] } }, "/api/v1/profile/name/{name}/status": { @@ -2648,6 +2678,22 @@ "v1StoreProviderTokenResponse": { "type": "object" }, + "v1UpdateProfileRequest": { + "type": "object", + "properties": { + "profile": { + "$ref": "#/definitions/v1Profile" + } + } + }, + "v1UpdateProfileResponse": { + "type": "object", + "properties": { + "profile": { + "$ref": "#/definitions/v1Profile" + } + } + }, "v1UpdateRuleTypeRequest": { "type": "object", "properties": { diff --git a/pkg/api/protobuf/go/minder/v1/minder.pb.go b/pkg/api/protobuf/go/minder/v1/minder.pb.go index fdadc47a54..52cfc38bc1 100644 --- a/pkg/api/protobuf/go/minder/v1/minder.pb.go +++ b/pkg/api/protobuf/go/minder/v1/minder.pb.go @@ -4200,6 +4200,100 @@ func (x *CreateProfileResponse) GetProfile() *Profile { return nil } +type UpdateProfileRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Profile *Profile `protobuf:"bytes,1,opt,name=profile,proto3" json:"profile,omitempty"` +} + +func (x *UpdateProfileRequest) Reset() { + *x = UpdateProfileRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_minder_v1_minder_proto_msgTypes[67] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateProfileRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateProfileRequest) ProtoMessage() {} + +func (x *UpdateProfileRequest) ProtoReflect() protoreflect.Message { + mi := &file_minder_v1_minder_proto_msgTypes[67] + 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 UpdateProfileRequest.ProtoReflect.Descriptor instead. +func (*UpdateProfileRequest) Descriptor() ([]byte, []int) { + return file_minder_v1_minder_proto_rawDescGZIP(), []int{67} +} + +func (x *UpdateProfileRequest) GetProfile() *Profile { + if x != nil { + return x.Profile + } + return nil +} + +type UpdateProfileResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Profile *Profile `protobuf:"bytes,1,opt,name=profile,proto3" json:"profile,omitempty"` +} + +func (x *UpdateProfileResponse) Reset() { + *x = UpdateProfileResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_minder_v1_minder_proto_msgTypes[68] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateProfileResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateProfileResponse) ProtoMessage() {} + +func (x *UpdateProfileResponse) ProtoReflect() protoreflect.Message { + mi := &file_minder_v1_minder_proto_msgTypes[68] + 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 UpdateProfileResponse.ProtoReflect.Descriptor instead. +func (*UpdateProfileResponse) Descriptor() ([]byte, []int) { + return file_minder_v1_minder_proto_rawDescGZIP(), []int{68} +} + +func (x *UpdateProfileResponse) GetProfile() *Profile { + if x != nil { + return x.Profile + } + return nil +} + type DeleteProfileRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -4214,7 +4308,7 @@ type DeleteProfileRequest struct { func (x *DeleteProfileRequest) Reset() { *x = DeleteProfileRequest{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[67] + mi := &file_minder_v1_minder_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4227,7 +4321,7 @@ func (x *DeleteProfileRequest) String() string { func (*DeleteProfileRequest) ProtoMessage() {} func (x *DeleteProfileRequest) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[67] + mi := &file_minder_v1_minder_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4240,7 +4334,7 @@ func (x *DeleteProfileRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteProfileRequest.ProtoReflect.Descriptor instead. func (*DeleteProfileRequest) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{67} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{69} } func (x *DeleteProfileRequest) GetContext() *Context { @@ -4266,7 +4360,7 @@ type DeleteProfileResponse struct { func (x *DeleteProfileResponse) Reset() { *x = DeleteProfileResponse{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[68] + mi := &file_minder_v1_minder_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4279,7 +4373,7 @@ func (x *DeleteProfileResponse) String() string { func (*DeleteProfileResponse) ProtoMessage() {} func (x *DeleteProfileResponse) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[68] + mi := &file_minder_v1_minder_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4292,7 +4386,7 @@ func (x *DeleteProfileResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteProfileResponse.ProtoReflect.Descriptor instead. func (*DeleteProfileResponse) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{68} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{70} } // list profiles @@ -4308,7 +4402,7 @@ type ListProfilesRequest struct { func (x *ListProfilesRequest) Reset() { *x = ListProfilesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[69] + mi := &file_minder_v1_minder_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4321,7 +4415,7 @@ func (x *ListProfilesRequest) String() string { func (*ListProfilesRequest) ProtoMessage() {} func (x *ListProfilesRequest) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[69] + mi := &file_minder_v1_minder_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4334,7 +4428,7 @@ func (x *ListProfilesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListProfilesRequest.ProtoReflect.Descriptor instead. func (*ListProfilesRequest) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{69} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{71} } func (x *ListProfilesRequest) GetContext() *Context { @@ -4355,7 +4449,7 @@ type ListProfilesResponse struct { func (x *ListProfilesResponse) Reset() { *x = ListProfilesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[70] + mi := &file_minder_v1_minder_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4368,7 +4462,7 @@ func (x *ListProfilesResponse) String() string { func (*ListProfilesResponse) ProtoMessage() {} func (x *ListProfilesResponse) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[70] + mi := &file_minder_v1_minder_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4381,7 +4475,7 @@ func (x *ListProfilesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListProfilesResponse.ProtoReflect.Descriptor instead. func (*ListProfilesResponse) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{70} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{72} } func (x *ListProfilesResponse) GetProfiles() []*Profile { @@ -4406,7 +4500,7 @@ type GetProfileByIdRequest struct { func (x *GetProfileByIdRequest) Reset() { *x = GetProfileByIdRequest{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[71] + mi := &file_minder_v1_minder_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4419,7 +4513,7 @@ func (x *GetProfileByIdRequest) String() string { func (*GetProfileByIdRequest) ProtoMessage() {} func (x *GetProfileByIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[71] + mi := &file_minder_v1_minder_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4432,7 +4526,7 @@ func (x *GetProfileByIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProfileByIdRequest.ProtoReflect.Descriptor instead. func (*GetProfileByIdRequest) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{71} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{73} } func (x *GetProfileByIdRequest) GetContext() *Context { @@ -4460,7 +4554,7 @@ type GetProfileByIdResponse struct { func (x *GetProfileByIdResponse) Reset() { *x = GetProfileByIdResponse{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[72] + mi := &file_minder_v1_minder_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4473,7 +4567,7 @@ func (x *GetProfileByIdResponse) String() string { func (*GetProfileByIdResponse) ProtoMessage() {} func (x *GetProfileByIdResponse) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[72] + mi := &file_minder_v1_minder_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4486,7 +4580,7 @@ func (x *GetProfileByIdResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProfileByIdResponse.ProtoReflect.Descriptor instead. func (*GetProfileByIdResponse) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{72} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{74} } func (x *GetProfileByIdResponse) GetProfile() *Profile { @@ -4515,7 +4609,7 @@ type ProfileStatus struct { func (x *ProfileStatus) Reset() { *x = ProfileStatus{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[73] + mi := &file_minder_v1_minder_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4528,7 +4622,7 @@ func (x *ProfileStatus) String() string { func (*ProfileStatus) ProtoMessage() {} func (x *ProfileStatus) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[73] + mi := &file_minder_v1_minder_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4541,7 +4635,7 @@ func (x *ProfileStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use ProfileStatus.ProtoReflect.Descriptor instead. func (*ProfileStatus) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{73} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{75} } func (x *ProfileStatus) GetProfileId() string { @@ -4607,7 +4701,7 @@ type RuleEvaluationStatus struct { func (x *RuleEvaluationStatus) Reset() { *x = RuleEvaluationStatus{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[74] + mi := &file_minder_v1_minder_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4620,7 +4714,7 @@ func (x *RuleEvaluationStatus) String() string { func (*RuleEvaluationStatus) ProtoMessage() {} func (x *RuleEvaluationStatus) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[74] + mi := &file_minder_v1_minder_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4633,7 +4727,7 @@ func (x *RuleEvaluationStatus) ProtoReflect() protoreflect.Message { // Deprecated: Use RuleEvaluationStatus.ProtoReflect.Descriptor instead. func (*RuleEvaluationStatus) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{74} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{76} } func (x *RuleEvaluationStatus) GetProfileId() string { @@ -4737,7 +4831,7 @@ type GetProfileStatusByNameRequest struct { func (x *GetProfileStatusByNameRequest) Reset() { *x = GetProfileStatusByNameRequest{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[75] + mi := &file_minder_v1_minder_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4750,7 +4844,7 @@ func (x *GetProfileStatusByNameRequest) String() string { func (*GetProfileStatusByNameRequest) ProtoMessage() {} func (x *GetProfileStatusByNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[75] + mi := &file_minder_v1_minder_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4763,7 +4857,7 @@ func (x *GetProfileStatusByNameRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProfileStatusByNameRequest.ProtoReflect.Descriptor instead. func (*GetProfileStatusByNameRequest) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{75} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{77} } func (x *GetProfileStatusByNameRequest) GetContext() *Context { @@ -4815,7 +4909,7 @@ type GetProfileStatusByNameResponse struct { func (x *GetProfileStatusByNameResponse) Reset() { *x = GetProfileStatusByNameResponse{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[76] + mi := &file_minder_v1_minder_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4828,7 +4922,7 @@ func (x *GetProfileStatusByNameResponse) String() string { func (*GetProfileStatusByNameResponse) ProtoMessage() {} func (x *GetProfileStatusByNameResponse) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[76] + mi := &file_minder_v1_minder_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4841,7 +4935,7 @@ func (x *GetProfileStatusByNameResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProfileStatusByNameResponse.ProtoReflect.Descriptor instead. func (*GetProfileStatusByNameResponse) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{76} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{78} } func (x *GetProfileStatusByNameResponse) GetProfileStatus() *ProfileStatus { @@ -4870,7 +4964,7 @@ type GetProfileStatusByProjectRequest struct { func (x *GetProfileStatusByProjectRequest) Reset() { *x = GetProfileStatusByProjectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[77] + mi := &file_minder_v1_minder_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4883,7 +4977,7 @@ func (x *GetProfileStatusByProjectRequest) String() string { func (*GetProfileStatusByProjectRequest) ProtoMessage() {} func (x *GetProfileStatusByProjectRequest) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[77] + mi := &file_minder_v1_minder_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4896,7 +4990,7 @@ func (x *GetProfileStatusByProjectRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProfileStatusByProjectRequest.ProtoReflect.Descriptor instead. func (*GetProfileStatusByProjectRequest) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{77} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{79} } func (x *GetProfileStatusByProjectRequest) GetContext() *Context { @@ -4918,7 +5012,7 @@ type GetProfileStatusByProjectResponse struct { func (x *GetProfileStatusByProjectResponse) Reset() { *x = GetProfileStatusByProjectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[78] + mi := &file_minder_v1_minder_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4931,7 +5025,7 @@ func (x *GetProfileStatusByProjectResponse) String() string { func (*GetProfileStatusByProjectResponse) ProtoMessage() {} func (x *GetProfileStatusByProjectResponse) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[78] + mi := &file_minder_v1_minder_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4944,7 +5038,7 @@ func (x *GetProfileStatusByProjectResponse) ProtoReflect() protoreflect.Message // Deprecated: Use GetProfileStatusByProjectResponse.ProtoReflect.Descriptor instead. func (*GetProfileStatusByProjectResponse) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{78} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{80} } func (x *GetProfileStatusByProjectResponse) GetProfileStatus() []*ProfileStatus { @@ -4965,7 +5059,7 @@ type GetPublicKeyRequest struct { func (x *GetPublicKeyRequest) Reset() { *x = GetPublicKeyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[79] + mi := &file_minder_v1_minder_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4978,7 +5072,7 @@ func (x *GetPublicKeyRequest) String() string { func (*GetPublicKeyRequest) ProtoMessage() {} func (x *GetPublicKeyRequest) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[79] + mi := &file_minder_v1_minder_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4991,7 +5085,7 @@ func (x *GetPublicKeyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPublicKeyRequest.ProtoReflect.Descriptor instead. func (*GetPublicKeyRequest) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{79} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{81} } func (x *GetPublicKeyRequest) GetKeyIdentifier() string { @@ -5012,7 +5106,7 @@ type GetPublicKeyResponse struct { func (x *GetPublicKeyResponse) Reset() { *x = GetPublicKeyResponse{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[80] + mi := &file_minder_v1_minder_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5025,7 +5119,7 @@ func (x *GetPublicKeyResponse) String() string { func (*GetPublicKeyResponse) ProtoMessage() {} func (x *GetPublicKeyResponse) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[80] + mi := &file_minder_v1_minder_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5038,7 +5132,7 @@ func (x *GetPublicKeyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPublicKeyResponse.ProtoReflect.Descriptor instead. func (*GetPublicKeyResponse) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{80} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{82} } func (x *GetPublicKeyResponse) GetPublicKey() string { @@ -5060,7 +5154,7 @@ type CreateKeyPairRequest struct { func (x *CreateKeyPairRequest) Reset() { *x = CreateKeyPairRequest{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[81] + mi := &file_minder_v1_minder_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5073,7 +5167,7 @@ func (x *CreateKeyPairRequest) String() string { func (*CreateKeyPairRequest) ProtoMessage() {} func (x *CreateKeyPairRequest) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[81] + mi := &file_minder_v1_minder_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5086,7 +5180,7 @@ func (x *CreateKeyPairRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateKeyPairRequest.ProtoReflect.Descriptor instead. func (*CreateKeyPairRequest) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{81} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{83} } func (x *CreateKeyPairRequest) GetPassphrase() string { @@ -5115,7 +5209,7 @@ type CreateKeyPairResponse struct { func (x *CreateKeyPairResponse) Reset() { *x = CreateKeyPairResponse{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[82] + mi := &file_minder_v1_minder_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5128,7 +5222,7 @@ func (x *CreateKeyPairResponse) String() string { func (*CreateKeyPairResponse) ProtoMessage() {} func (x *CreateKeyPairResponse) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[82] + mi := &file_minder_v1_minder_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5141,7 +5235,7 @@ func (x *CreateKeyPairResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateKeyPairResponse.ProtoReflect.Descriptor instead. func (*CreateKeyPairResponse) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{82} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{84} } func (x *CreateKeyPairResponse) GetKeyIdentifier() string { @@ -5171,7 +5265,7 @@ type RESTProviderConfig struct { func (x *RESTProviderConfig) Reset() { *x = RESTProviderConfig{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[83] + mi := &file_minder_v1_minder_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5184,7 +5278,7 @@ func (x *RESTProviderConfig) String() string { func (*RESTProviderConfig) ProtoMessage() {} func (x *RESTProviderConfig) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[83] + mi := &file_minder_v1_minder_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5197,7 +5291,7 @@ func (x *RESTProviderConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use RESTProviderConfig.ProtoReflect.Descriptor instead. func (*RESTProviderConfig) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{83} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{85} } func (x *RESTProviderConfig) GetBaseUrl() string { @@ -5226,7 +5320,7 @@ type GitHubProviderConfig struct { func (x *GitHubProviderConfig) Reset() { *x = GitHubProviderConfig{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[84] + mi := &file_minder_v1_minder_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5239,7 +5333,7 @@ func (x *GitHubProviderConfig) String() string { func (*GitHubProviderConfig) ProtoMessage() {} func (x *GitHubProviderConfig) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[84] + mi := &file_minder_v1_minder_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5252,7 +5346,7 @@ func (x *GitHubProviderConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use GitHubProviderConfig.ProtoReflect.Descriptor instead. func (*GitHubProviderConfig) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{84} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{86} } func (x *GitHubProviderConfig) GetEndpoint() string { @@ -5289,7 +5383,7 @@ type Provider struct { func (x *Provider) Reset() { *x = Provider{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[85] + mi := &file_minder_v1_minder_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5302,7 +5396,7 @@ func (x *Provider) String() string { func (*Provider) ProtoMessage() {} func (x *Provider) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[85] + mi := &file_minder_v1_minder_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5315,7 +5409,7 @@ func (x *Provider) ProtoReflect() protoreflect.Message { // Deprecated: Use Provider.ProtoReflect.Descriptor instead. func (*Provider) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{85} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{87} } func (x *Provider) GetName() string { @@ -5368,7 +5462,7 @@ type Context struct { func (x *Context) Reset() { *x = Context{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[86] + mi := &file_minder_v1_minder_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5381,7 +5475,7 @@ func (x *Context) String() string { func (*Context) ProtoMessage() {} func (x *Context) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[86] + mi := &file_minder_v1_minder_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5394,7 +5488,7 @@ func (x *Context) ProtoReflect() protoreflect.Message { // Deprecated: Use Context.ProtoReflect.Descriptor instead. func (*Context) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{86} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{88} } func (x *Context) GetProvider() string { @@ -5431,7 +5525,7 @@ type ListRuleTypesRequest struct { func (x *ListRuleTypesRequest) Reset() { *x = ListRuleTypesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[87] + mi := &file_minder_v1_minder_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5444,7 +5538,7 @@ func (x *ListRuleTypesRequest) String() string { func (*ListRuleTypesRequest) ProtoMessage() {} func (x *ListRuleTypesRequest) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[87] + mi := &file_minder_v1_minder_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5457,7 +5551,7 @@ func (x *ListRuleTypesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRuleTypesRequest.ProtoReflect.Descriptor instead. func (*ListRuleTypesRequest) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{87} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{89} } func (x *ListRuleTypesRequest) GetContext() *Context { @@ -5480,7 +5574,7 @@ type ListRuleTypesResponse struct { func (x *ListRuleTypesResponse) Reset() { *x = ListRuleTypesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[88] + mi := &file_minder_v1_minder_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5493,7 +5587,7 @@ func (x *ListRuleTypesResponse) String() string { func (*ListRuleTypesResponse) ProtoMessage() {} func (x *ListRuleTypesResponse) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[88] + mi := &file_minder_v1_minder_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5506,7 +5600,7 @@ func (x *ListRuleTypesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListRuleTypesResponse.ProtoReflect.Descriptor instead. func (*ListRuleTypesResponse) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{88} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{90} } func (x *ListRuleTypesResponse) GetRuleTypes() []*RuleType { @@ -5531,7 +5625,7 @@ type GetRuleTypeByNameRequest struct { func (x *GetRuleTypeByNameRequest) Reset() { *x = GetRuleTypeByNameRequest{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[89] + mi := &file_minder_v1_minder_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5544,7 +5638,7 @@ func (x *GetRuleTypeByNameRequest) String() string { func (*GetRuleTypeByNameRequest) ProtoMessage() {} func (x *GetRuleTypeByNameRequest) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[89] + mi := &file_minder_v1_minder_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5557,7 +5651,7 @@ func (x *GetRuleTypeByNameRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRuleTypeByNameRequest.ProtoReflect.Descriptor instead. func (*GetRuleTypeByNameRequest) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{89} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{91} } func (x *GetRuleTypeByNameRequest) GetContext() *Context { @@ -5587,7 +5681,7 @@ type GetRuleTypeByNameResponse struct { func (x *GetRuleTypeByNameResponse) Reset() { *x = GetRuleTypeByNameResponse{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[90] + mi := &file_minder_v1_minder_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5600,7 +5694,7 @@ func (x *GetRuleTypeByNameResponse) String() string { func (*GetRuleTypeByNameResponse) ProtoMessage() {} func (x *GetRuleTypeByNameResponse) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[90] + mi := &file_minder_v1_minder_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5613,7 +5707,7 @@ func (x *GetRuleTypeByNameResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRuleTypeByNameResponse.ProtoReflect.Descriptor instead. func (*GetRuleTypeByNameResponse) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{90} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{92} } func (x *GetRuleTypeByNameResponse) GetRuleType() *RuleType { @@ -5638,7 +5732,7 @@ type GetRuleTypeByIdRequest struct { func (x *GetRuleTypeByIdRequest) Reset() { *x = GetRuleTypeByIdRequest{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[91] + mi := &file_minder_v1_minder_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5651,7 +5745,7 @@ func (x *GetRuleTypeByIdRequest) String() string { func (*GetRuleTypeByIdRequest) ProtoMessage() {} func (x *GetRuleTypeByIdRequest) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[91] + mi := &file_minder_v1_minder_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5664,7 +5758,7 @@ func (x *GetRuleTypeByIdRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRuleTypeByIdRequest.ProtoReflect.Descriptor instead. func (*GetRuleTypeByIdRequest) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{91} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{93} } func (x *GetRuleTypeByIdRequest) GetContext() *Context { @@ -5694,7 +5788,7 @@ type GetRuleTypeByIdResponse struct { func (x *GetRuleTypeByIdResponse) Reset() { *x = GetRuleTypeByIdResponse{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[92] + mi := &file_minder_v1_minder_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5707,7 +5801,7 @@ func (x *GetRuleTypeByIdResponse) String() string { func (*GetRuleTypeByIdResponse) ProtoMessage() {} func (x *GetRuleTypeByIdResponse) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[92] + mi := &file_minder_v1_minder_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5720,7 +5814,7 @@ func (x *GetRuleTypeByIdResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRuleTypeByIdResponse.ProtoReflect.Descriptor instead. func (*GetRuleTypeByIdResponse) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{92} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{94} } func (x *GetRuleTypeByIdResponse) GetRuleType() *RuleType { @@ -5743,7 +5837,7 @@ type CreateRuleTypeRequest struct { func (x *CreateRuleTypeRequest) Reset() { *x = CreateRuleTypeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[93] + mi := &file_minder_v1_minder_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5756,7 +5850,7 @@ func (x *CreateRuleTypeRequest) String() string { func (*CreateRuleTypeRequest) ProtoMessage() {} func (x *CreateRuleTypeRequest) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[93] + mi := &file_minder_v1_minder_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5769,7 +5863,7 @@ func (x *CreateRuleTypeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRuleTypeRequest.ProtoReflect.Descriptor instead. func (*CreateRuleTypeRequest) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{93} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{95} } func (x *CreateRuleTypeRequest) GetRuleType() *RuleType { @@ -5792,7 +5886,7 @@ type CreateRuleTypeResponse struct { func (x *CreateRuleTypeResponse) Reset() { *x = CreateRuleTypeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[94] + mi := &file_minder_v1_minder_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5805,7 +5899,7 @@ func (x *CreateRuleTypeResponse) String() string { func (*CreateRuleTypeResponse) ProtoMessage() {} func (x *CreateRuleTypeResponse) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[94] + mi := &file_minder_v1_minder_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5818,7 +5912,7 @@ func (x *CreateRuleTypeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateRuleTypeResponse.ProtoReflect.Descriptor instead. func (*CreateRuleTypeResponse) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{94} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{96} } func (x *CreateRuleTypeResponse) GetRuleType() *RuleType { @@ -5841,7 +5935,7 @@ type UpdateRuleTypeRequest struct { func (x *UpdateRuleTypeRequest) Reset() { *x = UpdateRuleTypeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[95] + mi := &file_minder_v1_minder_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5854,7 +5948,7 @@ func (x *UpdateRuleTypeRequest) String() string { func (*UpdateRuleTypeRequest) ProtoMessage() {} func (x *UpdateRuleTypeRequest) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[95] + mi := &file_minder_v1_minder_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5867,7 +5961,7 @@ func (x *UpdateRuleTypeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateRuleTypeRequest.ProtoReflect.Descriptor instead. func (*UpdateRuleTypeRequest) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{95} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{97} } func (x *UpdateRuleTypeRequest) GetRuleType() *RuleType { @@ -5890,7 +5984,7 @@ type UpdateRuleTypeResponse struct { func (x *UpdateRuleTypeResponse) Reset() { *x = UpdateRuleTypeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[96] + mi := &file_minder_v1_minder_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5903,7 +5997,7 @@ func (x *UpdateRuleTypeResponse) String() string { func (*UpdateRuleTypeResponse) ProtoMessage() {} func (x *UpdateRuleTypeResponse) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[96] + mi := &file_minder_v1_minder_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5916,7 +6010,7 @@ func (x *UpdateRuleTypeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateRuleTypeResponse.ProtoReflect.Descriptor instead. func (*UpdateRuleTypeResponse) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{96} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{98} } func (x *UpdateRuleTypeResponse) GetRuleType() *RuleType { @@ -5941,7 +6035,7 @@ type DeleteRuleTypeRequest struct { func (x *DeleteRuleTypeRequest) Reset() { *x = DeleteRuleTypeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[97] + mi := &file_minder_v1_minder_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5954,7 +6048,7 @@ func (x *DeleteRuleTypeRequest) String() string { func (*DeleteRuleTypeRequest) ProtoMessage() {} func (x *DeleteRuleTypeRequest) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[97] + mi := &file_minder_v1_minder_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5967,7 +6061,7 @@ func (x *DeleteRuleTypeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteRuleTypeRequest.ProtoReflect.Descriptor instead. func (*DeleteRuleTypeRequest) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{97} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{99} } func (x *DeleteRuleTypeRequest) GetContext() *Context { @@ -5994,7 +6088,7 @@ type DeleteRuleTypeResponse struct { func (x *DeleteRuleTypeResponse) Reset() { *x = DeleteRuleTypeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[98] + mi := &file_minder_v1_minder_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6007,7 +6101,7 @@ func (x *DeleteRuleTypeResponse) String() string { func (*DeleteRuleTypeResponse) ProtoMessage() {} func (x *DeleteRuleTypeResponse) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[98] + mi := &file_minder_v1_minder_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6020,7 +6114,7 @@ func (x *DeleteRuleTypeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteRuleTypeResponse.ProtoReflect.Descriptor instead. func (*DeleteRuleTypeResponse) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{98} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{100} } // RestType defines the rest data evaluation. @@ -6052,7 +6146,7 @@ type RestType struct { func (x *RestType) Reset() { *x = RestType{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[99] + mi := &file_minder_v1_minder_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6065,7 +6159,7 @@ func (x *RestType) String() string { func (*RestType) ProtoMessage() {} func (x *RestType) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[99] + mi := &file_minder_v1_minder_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6078,7 +6172,7 @@ func (x *RestType) ProtoReflect() protoreflect.Message { // Deprecated: Use RestType.ProtoReflect.Descriptor instead. func (*RestType) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{99} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{101} } func (x *RestType) GetEndpoint() string { @@ -6135,7 +6229,7 @@ type BuiltinType struct { func (x *BuiltinType) Reset() { *x = BuiltinType{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[100] + mi := &file_minder_v1_minder_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6148,7 +6242,7 @@ func (x *BuiltinType) String() string { func (*BuiltinType) ProtoMessage() {} func (x *BuiltinType) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[100] + mi := &file_minder_v1_minder_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6161,7 +6255,7 @@ func (x *BuiltinType) ProtoReflect() protoreflect.Message { // Deprecated: Use BuiltinType.ProtoReflect.Descriptor instead. func (*BuiltinType) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{100} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{102} } func (x *BuiltinType) GetMethod() string { @@ -6181,7 +6275,7 @@ type ArtifactType struct { func (x *ArtifactType) Reset() { *x = ArtifactType{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[101] + mi := &file_minder_v1_minder_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6194,7 +6288,7 @@ func (x *ArtifactType) String() string { func (*ArtifactType) ProtoMessage() {} func (x *ArtifactType) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[101] + mi := &file_minder_v1_minder_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6207,7 +6301,7 @@ func (x *ArtifactType) ProtoReflect() protoreflect.Message { // Deprecated: Use ArtifactType.ProtoReflect.Descriptor instead. func (*ArtifactType) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{101} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{103} } // GitType defines the git data ingester. @@ -6225,7 +6319,7 @@ type GitType struct { func (x *GitType) Reset() { *x = GitType{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[102] + mi := &file_minder_v1_minder_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6238,7 +6332,7 @@ func (x *GitType) String() string { func (*GitType) ProtoMessage() {} func (x *GitType) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[102] + mi := &file_minder_v1_minder_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6251,7 +6345,7 @@ func (x *GitType) ProtoReflect() protoreflect.Message { // Deprecated: Use GitType.ProtoReflect.Descriptor instead. func (*GitType) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{102} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{104} } func (x *GitType) GetCloneUrl() string { @@ -6280,7 +6374,7 @@ type DiffType struct { func (x *DiffType) Reset() { *x = DiffType{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[103] + mi := &file_minder_v1_minder_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6293,7 +6387,7 @@ func (x *DiffType) String() string { func (*DiffType) ProtoMessage() {} func (x *DiffType) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[103] + mi := &file_minder_v1_minder_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6306,7 +6400,7 @@ func (x *DiffType) ProtoReflect() protoreflect.Message { // Deprecated: Use DiffType.ProtoReflect.Descriptor instead. func (*DiffType) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{103} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{105} } func (x *DiffType) GetEcosystems() []*DiffType_Ecosystem { @@ -6341,7 +6435,7 @@ type RuleType struct { func (x *RuleType) Reset() { *x = RuleType{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[104] + mi := &file_minder_v1_minder_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6354,7 +6448,7 @@ func (x *RuleType) String() string { func (*RuleType) ProtoMessage() {} func (x *RuleType) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[104] + mi := &file_minder_v1_minder_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6367,7 +6461,7 @@ func (x *RuleType) ProtoReflect() protoreflect.Message { // Deprecated: Use RuleType.ProtoReflect.Descriptor instead. func (*RuleType) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{104} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{106} } func (x *RuleType) GetId() string { @@ -6441,7 +6535,7 @@ type Profile struct { func (x *Profile) Reset() { *x = Profile{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[105] + mi := &file_minder_v1_minder_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6454,7 +6548,7 @@ func (x *Profile) String() string { func (*Profile) ProtoMessage() {} func (x *Profile) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[105] + mi := &file_minder_v1_minder_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6467,7 +6561,7 @@ func (x *Profile) ProtoReflect() protoreflect.Message { // Deprecated: Use Profile.ProtoReflect.Descriptor instead. func (*Profile) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{105} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{107} } func (x *Profile) GetContext() *Context { @@ -6545,7 +6639,7 @@ type PrDependencies_ContextualDependency struct { func (x *PrDependencies_ContextualDependency) Reset() { *x = PrDependencies_ContextualDependency{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[106] + mi := &file_minder_v1_minder_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6558,7 +6652,7 @@ func (x *PrDependencies_ContextualDependency) String() string { func (*PrDependencies_ContextualDependency) ProtoMessage() {} func (x *PrDependencies_ContextualDependency) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[106] + mi := &file_minder_v1_minder_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6600,7 +6694,7 @@ type PrDependencies_ContextualDependency_FilePatch struct { func (x *PrDependencies_ContextualDependency_FilePatch) Reset() { *x = PrDependencies_ContextualDependency_FilePatch{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[107] + mi := &file_minder_v1_minder_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6613,7 +6707,7 @@ func (x *PrDependencies_ContextualDependency_FilePatch) String() string { func (*PrDependencies_ContextualDependency_FilePatch) ProtoMessage() {} func (x *PrDependencies_ContextualDependency_FilePatch) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[107] + mi := &file_minder_v1_minder_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6655,7 +6749,7 @@ type RegisterRepoResult_Status struct { func (x *RegisterRepoResult_Status) Reset() { *x = RegisterRepoResult_Status{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[108] + mi := &file_minder_v1_minder_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6668,7 +6762,7 @@ func (x *RegisterRepoResult_Status) String() string { func (*RegisterRepoResult_Status) ProtoMessage() {} func (x *RegisterRepoResult_Status) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[108] + mi := &file_minder_v1_minder_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6715,7 +6809,7 @@ type GetProfileStatusByNameRequest_EntityTypedId struct { func (x *GetProfileStatusByNameRequest_EntityTypedId) Reset() { *x = GetProfileStatusByNameRequest_EntityTypedId{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[110] + mi := &file_minder_v1_minder_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6728,7 +6822,7 @@ func (x *GetProfileStatusByNameRequest_EntityTypedId) String() string { func (*GetProfileStatusByNameRequest_EntityTypedId) ProtoMessage() {} func (x *GetProfileStatusByNameRequest_EntityTypedId) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[110] + mi := &file_minder_v1_minder_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6741,7 +6835,7 @@ func (x *GetProfileStatusByNameRequest_EntityTypedId) ProtoReflect() protoreflec // Deprecated: Use GetProfileStatusByNameRequest_EntityTypedId.ProtoReflect.Descriptor instead. func (*GetProfileStatusByNameRequest_EntityTypedId) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{75, 0} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{77, 0} } func (x *GetProfileStatusByNameRequest_EntityTypedId) GetType() Entity { @@ -6773,7 +6867,7 @@ type Provider_Context struct { func (x *Provider_Context) Reset() { *x = Provider_Context{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[111] + mi := &file_minder_v1_minder_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6786,7 +6880,7 @@ func (x *Provider_Context) String() string { func (*Provider_Context) ProtoMessage() {} func (x *Provider_Context) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[111] + mi := &file_minder_v1_minder_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6799,7 +6893,7 @@ func (x *Provider_Context) ProtoReflect() protoreflect.Message { // Deprecated: Use Provider_Context.ProtoReflect.Descriptor instead. func (*Provider_Context) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{85, 0} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{87, 0} } func (x *Provider_Context) GetOrganization() string { @@ -6832,7 +6926,7 @@ type Provider_Definition struct { func (x *Provider_Definition) Reset() { *x = Provider_Definition{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[112] + mi := &file_minder_v1_minder_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6845,7 +6939,7 @@ func (x *Provider_Definition) String() string { func (*Provider_Definition) ProtoMessage() {} func (x *Provider_Definition) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[112] + mi := &file_minder_v1_minder_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6858,7 +6952,7 @@ func (x *Provider_Definition) ProtoReflect() protoreflect.Message { // Deprecated: Use Provider_Definition.ProtoReflect.Descriptor instead. func (*Provider_Definition) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{85, 1} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{87, 1} } func (x *Provider_Definition) GetRest() *RESTProviderConfig { @@ -6887,7 +6981,7 @@ type RestType_Fallback struct { func (x *RestType_Fallback) Reset() { *x = RestType_Fallback{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[113] + mi := &file_minder_v1_minder_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6900,7 +6994,7 @@ func (x *RestType_Fallback) String() string { func (*RestType_Fallback) ProtoMessage() {} func (x *RestType_Fallback) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[113] + mi := &file_minder_v1_minder_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6913,7 +7007,7 @@ func (x *RestType_Fallback) ProtoReflect() protoreflect.Message { // Deprecated: Use RestType_Fallback.ProtoReflect.Descriptor instead. func (*RestType_Fallback) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{99, 0} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{101, 0} } func (x *RestType_Fallback) GetHttpCode() int32 { @@ -6944,7 +7038,7 @@ type DiffType_Ecosystem struct { func (x *DiffType_Ecosystem) Reset() { *x = DiffType_Ecosystem{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[114] + mi := &file_minder_v1_minder_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6957,7 +7051,7 @@ func (x *DiffType_Ecosystem) String() string { func (*DiffType_Ecosystem) ProtoMessage() {} func (x *DiffType_Ecosystem) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[114] + mi := &file_minder_v1_minder_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6970,7 +7064,7 @@ func (x *DiffType_Ecosystem) ProtoReflect() protoreflect.Message { // Deprecated: Use DiffType_Ecosystem.ProtoReflect.Descriptor instead. func (*DiffType_Ecosystem) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{103, 0} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{105, 0} } func (x *DiffType_Ecosystem) GetName() string { @@ -7010,7 +7104,7 @@ type RuleType_Definition struct { func (x *RuleType_Definition) Reset() { *x = RuleType_Definition{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[115] + mi := &file_minder_v1_minder_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7023,7 +7117,7 @@ func (x *RuleType_Definition) String() string { func (*RuleType_Definition) ProtoMessage() {} func (x *RuleType_Definition) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[115] + mi := &file_minder_v1_minder_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7036,7 +7130,7 @@ func (x *RuleType_Definition) ProtoReflect() protoreflect.Message { // Deprecated: Use RuleType_Definition.ProtoReflect.Descriptor instead. func (*RuleType_Definition) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{104, 0} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{106, 0} } func (x *RuleType_Definition) GetInEntity() string { @@ -7113,7 +7207,7 @@ type RuleType_Definition_Ingest struct { func (x *RuleType_Definition_Ingest) Reset() { *x = RuleType_Definition_Ingest{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[116] + mi := &file_minder_v1_minder_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7126,7 +7220,7 @@ func (x *RuleType_Definition_Ingest) String() string { func (*RuleType_Definition_Ingest) ProtoMessage() {} func (x *RuleType_Definition_Ingest) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[116] + mi := &file_minder_v1_minder_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7139,7 +7233,7 @@ func (x *RuleType_Definition_Ingest) ProtoReflect() protoreflect.Message { // Deprecated: Use RuleType_Definition_Ingest.ProtoReflect.Descriptor instead. func (*RuleType_Definition_Ingest) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{104, 0, 0} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{106, 0, 0} } func (x *RuleType_Definition_Ingest) GetType() string { @@ -7210,7 +7304,7 @@ type RuleType_Definition_Eval struct { func (x *RuleType_Definition_Eval) Reset() { *x = RuleType_Definition_Eval{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[117] + mi := &file_minder_v1_minder_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7223,7 +7317,7 @@ func (x *RuleType_Definition_Eval) String() string { func (*RuleType_Definition_Eval) ProtoMessage() {} func (x *RuleType_Definition_Eval) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[117] + mi := &file_minder_v1_minder_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7236,7 +7330,7 @@ func (x *RuleType_Definition_Eval) ProtoReflect() protoreflect.Message { // Deprecated: Use RuleType_Definition_Eval.ProtoReflect.Descriptor instead. func (*RuleType_Definition_Eval) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{104, 0, 1} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{106, 0, 1} } func (x *RuleType_Definition_Eval) GetType() string { @@ -7288,7 +7382,7 @@ type RuleType_Definition_Remediate struct { func (x *RuleType_Definition_Remediate) Reset() { *x = RuleType_Definition_Remediate{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[118] + mi := &file_minder_v1_minder_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7301,7 +7395,7 @@ func (x *RuleType_Definition_Remediate) String() string { func (*RuleType_Definition_Remediate) ProtoMessage() {} func (x *RuleType_Definition_Remediate) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[118] + mi := &file_minder_v1_minder_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7314,7 +7408,7 @@ func (x *RuleType_Definition_Remediate) ProtoReflect() protoreflect.Message { // Deprecated: Use RuleType_Definition_Remediate.ProtoReflect.Descriptor instead. func (*RuleType_Definition_Remediate) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{104, 0, 2} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{106, 0, 2} } func (x *RuleType_Definition_Remediate) GetType() string { @@ -7357,7 +7451,7 @@ type RuleType_Definition_Alert struct { func (x *RuleType_Definition_Alert) Reset() { *x = RuleType_Definition_Alert{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[119] + mi := &file_minder_v1_minder_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7370,7 +7464,7 @@ func (x *RuleType_Definition_Alert) String() string { func (*RuleType_Definition_Alert) ProtoMessage() {} func (x *RuleType_Definition_Alert) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[119] + mi := &file_minder_v1_minder_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7383,7 +7477,7 @@ func (x *RuleType_Definition_Alert) ProtoReflect() protoreflect.Message { // Deprecated: Use RuleType_Definition_Alert.ProtoReflect.Descriptor instead. func (*RuleType_Definition_Alert) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{104, 0, 3} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{106, 0, 3} } func (x *RuleType_Definition_Alert) GetType() string { @@ -7414,7 +7508,7 @@ type RuleType_Definition_Eval_JQComparison struct { func (x *RuleType_Definition_Eval_JQComparison) Reset() { *x = RuleType_Definition_Eval_JQComparison{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[120] + mi := &file_minder_v1_minder_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7427,7 +7521,7 @@ func (x *RuleType_Definition_Eval_JQComparison) String() string { func (*RuleType_Definition_Eval_JQComparison) ProtoMessage() {} func (x *RuleType_Definition_Eval_JQComparison) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[120] + mi := &file_minder_v1_minder_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7440,7 +7534,7 @@ func (x *RuleType_Definition_Eval_JQComparison) ProtoReflect() protoreflect.Mess // Deprecated: Use RuleType_Definition_Eval_JQComparison.ProtoReflect.Descriptor instead. func (*RuleType_Definition_Eval_JQComparison) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{104, 0, 1, 0} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{106, 0, 1, 0} } func (x *RuleType_Definition_Eval_JQComparison) GetIngested() *RuleType_Definition_Eval_JQComparison_Operator { @@ -7480,7 +7574,7 @@ type RuleType_Definition_Eval_Rego struct { func (x *RuleType_Definition_Eval_Rego) Reset() { *x = RuleType_Definition_Eval_Rego{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[121] + mi := &file_minder_v1_minder_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7493,7 +7587,7 @@ func (x *RuleType_Definition_Eval_Rego) String() string { func (*RuleType_Definition_Eval_Rego) ProtoMessage() {} func (x *RuleType_Definition_Eval_Rego) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[121] + mi := &file_minder_v1_minder_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7506,7 +7600,7 @@ func (x *RuleType_Definition_Eval_Rego) ProtoReflect() protoreflect.Message { // Deprecated: Use RuleType_Definition_Eval_Rego.ProtoReflect.Descriptor instead. func (*RuleType_Definition_Eval_Rego) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{104, 0, 1, 1} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{106, 0, 1, 1} } func (x *RuleType_Definition_Eval_Rego) GetType() string { @@ -7532,7 +7626,7 @@ type RuleType_Definition_Eval_Vulncheck struct { func (x *RuleType_Definition_Eval_Vulncheck) Reset() { *x = RuleType_Definition_Eval_Vulncheck{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[122] + mi := &file_minder_v1_minder_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7545,7 +7639,7 @@ func (x *RuleType_Definition_Eval_Vulncheck) String() string { func (*RuleType_Definition_Eval_Vulncheck) ProtoMessage() {} func (x *RuleType_Definition_Eval_Vulncheck) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[122] + mi := &file_minder_v1_minder_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7558,7 +7652,7 @@ func (x *RuleType_Definition_Eval_Vulncheck) ProtoReflect() protoreflect.Message // Deprecated: Use RuleType_Definition_Eval_Vulncheck.ProtoReflect.Descriptor instead. func (*RuleType_Definition_Eval_Vulncheck) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{104, 0, 1, 2} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{106, 0, 1, 2} } type RuleType_Definition_Eval_Trusty struct { @@ -7573,7 +7667,7 @@ type RuleType_Definition_Eval_Trusty struct { func (x *RuleType_Definition_Eval_Trusty) Reset() { *x = RuleType_Definition_Eval_Trusty{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[123] + mi := &file_minder_v1_minder_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7586,7 +7680,7 @@ func (x *RuleType_Definition_Eval_Trusty) String() string { func (*RuleType_Definition_Eval_Trusty) ProtoMessage() {} func (x *RuleType_Definition_Eval_Trusty) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[123] + mi := &file_minder_v1_minder_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7599,7 +7693,7 @@ func (x *RuleType_Definition_Eval_Trusty) ProtoReflect() protoreflect.Message { // Deprecated: Use RuleType_Definition_Eval_Trusty.ProtoReflect.Descriptor instead. func (*RuleType_Definition_Eval_Trusty) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{104, 0, 1, 3} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{106, 0, 1, 3} } func (x *RuleType_Definition_Eval_Trusty) GetEndpoint() string { @@ -7620,7 +7714,7 @@ type RuleType_Definition_Eval_JQComparison_Operator struct { func (x *RuleType_Definition_Eval_JQComparison_Operator) Reset() { *x = RuleType_Definition_Eval_JQComparison_Operator{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[124] + mi := &file_minder_v1_minder_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7633,7 +7727,7 @@ func (x *RuleType_Definition_Eval_JQComparison_Operator) String() string { func (*RuleType_Definition_Eval_JQComparison_Operator) ProtoMessage() {} func (x *RuleType_Definition_Eval_JQComparison_Operator) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[124] + mi := &file_minder_v1_minder_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7646,7 +7740,7 @@ func (x *RuleType_Definition_Eval_JQComparison_Operator) ProtoReflect() protoref // Deprecated: Use RuleType_Definition_Eval_JQComparison_Operator.ProtoReflect.Descriptor instead. func (*RuleType_Definition_Eval_JQComparison_Operator) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{104, 0, 1, 0, 0} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{106, 0, 1, 0, 0} } func (x *RuleType_Definition_Eval_JQComparison_Operator) GetDef() string { @@ -7667,7 +7761,7 @@ type RuleType_Definition_Remediate_GhBranchProtectionType struct { func (x *RuleType_Definition_Remediate_GhBranchProtectionType) Reset() { *x = RuleType_Definition_Remediate_GhBranchProtectionType{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[125] + mi := &file_minder_v1_minder_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7680,7 +7774,7 @@ func (x *RuleType_Definition_Remediate_GhBranchProtectionType) String() string { func (*RuleType_Definition_Remediate_GhBranchProtectionType) ProtoMessage() {} func (x *RuleType_Definition_Remediate_GhBranchProtectionType) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[125] + mi := &file_minder_v1_minder_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7693,7 +7787,7 @@ func (x *RuleType_Definition_Remediate_GhBranchProtectionType) ProtoReflect() pr // Deprecated: Use RuleType_Definition_Remediate_GhBranchProtectionType.ProtoReflect.Descriptor instead. func (*RuleType_Definition_Remediate_GhBranchProtectionType) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{104, 0, 2, 0} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{106, 0, 2, 0} } func (x *RuleType_Definition_Remediate_GhBranchProtectionType) GetPatch() string { @@ -7719,7 +7813,7 @@ type RuleType_Definition_Remediate_PullRequestRemediation struct { func (x *RuleType_Definition_Remediate_PullRequestRemediation) Reset() { *x = RuleType_Definition_Remediate_PullRequestRemediation{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[126] + mi := &file_minder_v1_minder_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7732,7 +7826,7 @@ func (x *RuleType_Definition_Remediate_PullRequestRemediation) String() string { func (*RuleType_Definition_Remediate_PullRequestRemediation) ProtoMessage() {} func (x *RuleType_Definition_Remediate_PullRequestRemediation) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[126] + mi := &file_minder_v1_minder_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7745,7 +7839,7 @@ func (x *RuleType_Definition_Remediate_PullRequestRemediation) ProtoReflect() pr // Deprecated: Use RuleType_Definition_Remediate_PullRequestRemediation.ProtoReflect.Descriptor instead. func (*RuleType_Definition_Remediate_PullRequestRemediation) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{104, 0, 2, 1} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{106, 0, 2, 1} } func (x *RuleType_Definition_Remediate_PullRequestRemediation) GetTitle() string { @@ -7789,7 +7883,7 @@ type RuleType_Definition_Remediate_PullRequestRemediation_Content struct { func (x *RuleType_Definition_Remediate_PullRequestRemediation_Content) Reset() { *x = RuleType_Definition_Remediate_PullRequestRemediation_Content{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[127] + mi := &file_minder_v1_minder_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7802,7 +7896,7 @@ func (x *RuleType_Definition_Remediate_PullRequestRemediation_Content) String() func (*RuleType_Definition_Remediate_PullRequestRemediation_Content) ProtoMessage() {} func (x *RuleType_Definition_Remediate_PullRequestRemediation_Content) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[127] + mi := &file_minder_v1_minder_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7815,7 +7909,7 @@ func (x *RuleType_Definition_Remediate_PullRequestRemediation_Content) ProtoRefl // Deprecated: Use RuleType_Definition_Remediate_PullRequestRemediation_Content.ProtoReflect.Descriptor instead. func (*RuleType_Definition_Remediate_PullRequestRemediation_Content) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{104, 0, 2, 1, 0} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{106, 0, 2, 1, 0} } func (x *RuleType_Definition_Remediate_PullRequestRemediation_Content) GetPath() string { @@ -7857,7 +7951,7 @@ type RuleType_Definition_Alert_AlertTypeSA struct { func (x *RuleType_Definition_Alert_AlertTypeSA) Reset() { *x = RuleType_Definition_Alert_AlertTypeSA{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[128] + mi := &file_minder_v1_minder_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7870,7 +7964,7 @@ func (x *RuleType_Definition_Alert_AlertTypeSA) String() string { func (*RuleType_Definition_Alert_AlertTypeSA) ProtoMessage() {} func (x *RuleType_Definition_Alert_AlertTypeSA) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[128] + mi := &file_minder_v1_minder_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7883,7 +7977,7 @@ func (x *RuleType_Definition_Alert_AlertTypeSA) ProtoReflect() protoreflect.Mess // Deprecated: Use RuleType_Definition_Alert_AlertTypeSA.ProtoReflect.Descriptor instead. func (*RuleType_Definition_Alert_AlertTypeSA) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{104, 0, 3, 0} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{106, 0, 3, 0} } func (x *RuleType_Definition_Alert_AlertTypeSA) GetSeverity() string { @@ -7912,7 +8006,7 @@ type Profile_Rule struct { func (x *Profile_Rule) Reset() { *x = Profile_Rule{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[129] + mi := &file_minder_v1_minder_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7925,7 +8019,7 @@ func (x *Profile_Rule) String() string { func (*Profile_Rule) ProtoMessage() {} func (x *Profile_Rule) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[129] + mi := &file_minder_v1_minder_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7938,7 +8032,7 @@ func (x *Profile_Rule) ProtoReflect() protoreflect.Message { // Deprecated: Use Profile_Rule.ProtoReflect.Descriptor instead. func (*Profile_Rule) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{105, 0} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{107, 0} } func (x *Profile_Rule) GetType() string { @@ -8515,815 +8609,831 @@ var file_minder_v1_minder_proto_rawDesc = []byte{ 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x54, 0x0a, 0x14, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, + 0x6c, 0x65, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x44, 0x0a, 0x14, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x22, 0x17, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x0a, 0x13, 0x4c, 0x69, - 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x2c, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, - 0x46, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x08, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x55, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x22, 0x45, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, + 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, + 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x54, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x46, - 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x22, 0xf9, 0x04, 0x0a, 0x14, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, - 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, - 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x50, 0x0a, - 0x0b, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x75, 0x69, - 0x64, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x75, 0x69, - 0x64, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x59, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x48, 0x00, 0x52, 0x16, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x2f, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, - 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x1a, 0x3d, 0x0a, 0x0f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 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, 0x42, - 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x9f, 0x02, 0x0a, - 0x1d, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x17, + 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x4e, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x36, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, - 0x79, 0x54, 0x79, 0x70, 0x65, 0x64, 0x49, 0x64, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, - 0x6c, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x1a, 0x46, 0x0a, 0x0d, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x54, 0x79, 0x70, 0x65, 0x64, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xb8, - 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3f, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x69, 0x6e, 0x64, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x55, 0x0a, 0x16, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x14, 0x72, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x50, 0x0a, 0x20, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, + 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x46, 0x0a, 0x14, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x73, 0x22, 0x55, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x64, 0x0a, 0x21, 0x47, - 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, - 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3f, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0x3c, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, - 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6b, 0x65, 0x79, 0x5f, - 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, - 0x35, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0x55, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, - 0x0a, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x5d, 0x0a, - 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x6b, 0x65, 0x79, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0x2f, 0x0a, 0x12, - 0x52, 0x45, 0x53, 0x54, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x22, 0x32, 0x0a, - 0x14, 0x47, 0x69, 0x74, 0x48, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x22, 0xa3, 0x03, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x03, 0x64, 0x65, 0x66, 0x1a, 0x47, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, - 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x1a, 0x96, - 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, - 0x04, 0x72, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, - 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x45, 0x53, 0x54, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x04, 0x72, 0x65, - 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x69, 0x74, 0x48, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x01, 0x52, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x22, 0x8a, 0x01, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, - 0x27, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x22, 0x44, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x4b, 0x0a, 0x15, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x72, 0x75, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x22, 0x5c, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x4d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x46, 0x0a, 0x16, 0x47, + 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x22, 0xb7, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, + 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0xf9, 0x04, + 0x0a, 0x14, 0x52, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3d, 0x0a, 0x0c, 0x6c, + 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x6c, + 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x12, 0x50, 0x0a, 0x0b, 0x65, 0x6e, + 0x74, 0x69, 0x74, 0x79, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, + 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x64, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x75, 0x69, 0x64, 0x61, 0x6e, + 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, + 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x59, 0x0a, 0x18, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, + 0x00, 0x52, 0x16, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x61, + 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x13, + 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x6d, 0x65, 0x64, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x1a, 0x3d, 0x0a, + 0x0f, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x49, 0x6e, 0x66, 0x6f, 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, 0x42, 0x1b, 0x0a, 0x19, + 0x5f, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x61, 0x73, + 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x9f, 0x02, 0x0a, 0x1d, 0x47, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, + 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4e, 0x0a, + 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, + 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, + 0x70, 0x65, 0x64, 0x49, 0x64, 0x52, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x12, + 0x12, 0x0a, 0x04, 0x72, 0x75, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, + 0x75, 0x6c, 0x65, 0x1a, 0x46, 0x0a, 0x0d, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x54, 0x79, 0x70, + 0x65, 0x64, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0xb8, 0x01, 0x0a, 0x1e, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, + 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x55, 0x0a, 0x16, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x14, 0x72, 0x75, 0x6c, 0x65, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x50, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, + 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x64, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, + 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x0d, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x3c, + 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6b, + 0x65, 0x79, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x35, 0x0a, 0x14, + 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x4b, 0x65, 0x79, 0x22, 0x55, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, + 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, + 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x70, 0x61, 0x73, 0x73, 0x70, 0x68, 0x72, 0x61, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0x5d, 0x0a, 0x15, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6b, 0x65, 0x79, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6b, 0x65, 0x79, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0x2f, 0x0a, 0x12, 0x52, 0x45, 0x53, + 0x54, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x19, 0x0a, 0x08, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x62, 0x61, 0x73, 0x65, 0x55, 0x72, 0x6c, 0x22, 0x32, 0x0a, 0x14, 0x47, 0x69, + 0x74, 0x48, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0xa3, + 0x03, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x35, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x30, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, 0x64, + 0x65, 0x66, 0x1a, 0x47, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x22, 0x0a, + 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x1a, 0x96, 0x01, 0x0a, 0x0a, + 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x04, 0x72, 0x65, + 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x45, 0x53, 0x54, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x04, 0x72, 0x65, 0x73, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x69, 0x74, 0x48, 0x75, 0x62, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x48, 0x01, 0x52, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x88, 0x01, 0x01, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x22, 0x8a, 0x01, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0c, + 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x22, 0x44, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, + 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x22, 0x4b, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x32, 0x0a, 0x0a, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x73, 0x22, 0x5c, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x2c, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0x4d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x30, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x56, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, + 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, + 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4b, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x75, + 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x49, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x30, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x4a, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x72, + 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, + 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x49, 0x0a, + 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x69, 0x6e, 0x64, + 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, + 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4a, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x56, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, - 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4b, 0x0a, 0x17, - 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x69, 0x6e, - 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, - 0x08, 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x49, 0x0a, 0x15, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x30, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x22, 0x4a, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, - 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x22, 0x49, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x09, 0x72, 0x75, 0x6c, - 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, - 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x08, 0x72, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4a, 0x0a, 0x16, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x09, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x72, - 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x55, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x2c, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x18, - 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x87, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x73, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, - 0x70, 0x61, 0x72, 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x72, - 0x73, 0x65, 0x12, 0x38, 0x0a, 0x08, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, - 0x63, 0x6b, 0x52, 0x08, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x1a, 0x3b, 0x0a, 0x08, - 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, - 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x68, 0x74, 0x74, - 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x62, 0x6f, - 0x64, 0x79, 0x22, 0x25, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x0e, 0x0a, 0x0c, 0x41, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x07, 0x47, 0x69, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x75, 0x72, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x55, 0x72, - 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x22, 0x84, 0x01, 0x0a, 0x08, 0x44, 0x69, - 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x65, 0x63, 0x6f, 0x73, 0x79, 0x73, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6e, - 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x45, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0a, 0x65, 0x63, 0x6f, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x39, 0x0a, 0x09, 0x45, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x70, 0x66, 0x69, 0x6c, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x70, 0x66, 0x69, 0x6c, 0x65, - 0x22, 0xe5, 0x13, 0x0a, 0x08, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x78, 0x74, 0x12, 0x30, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x03, 0x64, 0x65, 0x66, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x64, - 0x61, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x75, 0x69, 0x64, - 0x61, 0x6e, 0x63, 0x65, 0x1a, 0x8a, 0x12, 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x12, 0x38, 0x0a, 0x0b, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, - 0x72, 0x75, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x3f, 0x0a, 0x0c, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x06, 0x69, - 0x6e, 0x67, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, - 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x67, 0x65, - 0x73, 0x74, 0x52, 0x06, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x65, 0x76, - 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, - 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x52, 0x04, 0x65, - 0x76, 0x61, 0x6c, 0x12, 0x46, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, - 0x52, 0x09, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x61, - 0x6c, 0x65, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6e, - 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, - 0x52, 0x05, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x1a, 0xc7, 0x02, 0x0a, 0x06, 0x49, 0x6e, 0x67, 0x65, - 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x65, 0x73, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x72, 0x65, 0x73, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, - 0x07, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x08, 0x61, - 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, - 0x63, 0x74, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x03, 0x67, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x69, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x03, 0x52, 0x03, 0x67, 0x69, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x2c, 0x0a, 0x04, 0x64, 0x69, 0x66, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x54, - 0x79, 0x70, 0x65, 0x48, 0x04, 0x52, 0x04, 0x64, 0x69, 0x66, 0x66, 0x88, 0x01, 0x01, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x75, 0x69, 0x6c, - 0x74, 0x69, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x69, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x69, 0x66, - 0x66, 0x1a, 0x98, 0x05, 0x0a, 0x04, 0x45, 0x76, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x40, - 0x0a, 0x02, 0x6a, 0x71, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6d, 0x69, 0x6e, - 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x2e, - 0x4a, 0x51, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x52, 0x02, 0x6a, 0x71, - 0x12, 0x41, 0x0a, 0x04, 0x72, 0x65, 0x67, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x54, 0x79, 0x70, 0x65, 0x22, 0x55, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, + 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x87, 0x02, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x12, 0x17, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x88, 0x01, 0x01, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x72, + 0x73, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x72, 0x73, 0x65, 0x12, + 0x38, 0x0a, 0x08, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x46, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, + 0x08, 0x66, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x1a, 0x3b, 0x0a, 0x08, 0x46, 0x61, 0x6c, + 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x5f, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x68, 0x74, 0x74, 0x70, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x62, 0x6f, 0x64, 0x79, 0x22, + 0x25, 0x0a, 0x0b, 0x42, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x0e, 0x0a, 0x0c, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3e, 0x0a, 0x07, 0x47, 0x69, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x6f, 0x6e, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x16, + 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x22, 0x84, 0x01, 0x0a, 0x08, 0x44, 0x69, 0x66, 0x66, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x65, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x63, 0x6f, + 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x0a, 0x65, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, + 0x6d, 0x73, 0x1a, 0x39, 0x0a, 0x09, 0x45, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x70, 0x66, 0x69, 0x6c, 0x65, 0x22, 0xe5, 0x13, + 0x0a, 0x08, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, + 0x74, 0x12, 0x30, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, - 0x76, 0x61, 0x6c, 0x2e, 0x52, 0x65, 0x67, 0x6f, 0x48, 0x00, 0x52, 0x04, 0x72, 0x65, 0x67, 0x6f, - 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x09, 0x76, 0x75, 0x6c, 0x6e, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x2e, 0x56, 0x75, 0x6c, 0x6e, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x01, 0x52, 0x09, 0x76, 0x75, 0x6c, 0x6e, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x06, 0x74, 0x72, 0x75, 0x73, 0x74, 0x79, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, + 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x03, + 0x64, 0x65, 0x66, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, + 0x65, 0x1a, 0x8a, 0x12, 0x0a, 0x0a, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x38, 0x0a, + 0x0b, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x72, 0x75, 0x6c, + 0x65, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x3f, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x48, 0x00, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x53, + 0x63, 0x68, 0x65, 0x6d, 0x61, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x06, 0x69, 0x6e, 0x67, 0x65, + 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, + 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x52, + 0x06, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x12, 0x37, 0x0a, 0x04, 0x65, 0x76, 0x61, 0x6c, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, - 0x79, 0x48, 0x02, 0x52, 0x06, 0x74, 0x72, 0x75, 0x73, 0x74, 0x79, 0x88, 0x01, 0x01, 0x1a, 0xd8, - 0x01, 0x0a, 0x0c, 0x4a, 0x51, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x12, - 0x55, 0x0a, 0x08, 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x39, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x2e, 0x4a, 0x51, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, - 0x73, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x69, 0x6e, - 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x53, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x52, 0x04, 0x65, 0x76, 0x61, 0x6c, + 0x12, 0x46, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x52, 0x09, 0x72, + 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x61, 0x6c, 0x65, 0x72, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x05, 0x61, + 0x6c, 0x65, 0x72, 0x74, 0x1a, 0xc7, 0x02, 0x0a, 0x06, 0x49, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x72, 0x65, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x72, 0x65, 0x73, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x35, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x07, 0x62, 0x75, + 0x69, 0x6c, 0x74, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, + 0x66, 0x61, 0x63, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6e, + 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x29, 0x0a, 0x03, 0x67, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x69, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x48, 0x03, 0x52, 0x03, 0x67, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, + 0x04, 0x64, 0x69, 0x66, 0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x69, + 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, + 0x48, 0x04, 0x52, 0x04, 0x64, 0x69, 0x66, 0x66, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x72, 0x65, 0x73, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x74, 0x69, 0x6e, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x67, 0x69, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x1a, 0x98, + 0x05, 0x0a, 0x04, 0x45, 0x76, 0x61, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x40, 0x0a, 0x02, 0x6a, + 0x71, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x2e, 0x4a, 0x51, 0x43, - 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x6f, 0x72, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x1c, 0x0a, 0x08, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x65, 0x66, 0x1a, 0x2c, 0x0a, 0x04, 0x52, 0x65, 0x67, - 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x64, 0x65, 0x66, 0x1a, 0x0b, 0x0a, 0x09, 0x56, 0x75, 0x6c, 0x6e, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x1a, 0x24, 0x0a, 0x06, 0x54, 0x72, 0x75, 0x73, 0x74, 0x79, 0x12, 0x1a, - 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, - 0x65, 0x67, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x76, 0x75, 0x6c, 0x6e, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x79, 0x1a, 0xae, 0x05, 0x0a, - 0x09, 0x52, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2c, - 0x0a, 0x04, 0x72, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, - 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x48, 0x00, 0x52, 0x04, 0x72, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x76, 0x0a, 0x14, - 0x67, 0x68, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6d, 0x69, 0x6e, - 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x65, 0x2e, 0x47, 0x68, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, - 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x12, 0x67, - 0x68, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x0c, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6d, 0x69, 0x6e, - 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x65, 0x64, - 0x69, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x0b, 0x70, - 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x2e, 0x0a, - 0x16, 0x47, 0x68, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x1a, 0x9a, 0x02, - 0x0a, 0x16, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, - 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, - 0x64, 0x79, 0x12, 0x63, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x47, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x52, 0x02, 0x6a, 0x71, 0x12, 0x41, 0x0a, + 0x04, 0x72, 0x65, 0x67, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x69, + 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, + 0x2e, 0x52, 0x65, 0x67, 0x6f, 0x48, 0x00, 0x52, 0x04, 0x72, 0x65, 0x67, 0x6f, 0x88, 0x01, 0x01, + 0x12, 0x50, 0x0a, 0x09, 0x76, 0x75, 0x6c, 0x6e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x2e, 0x56, 0x75, 0x6c, 0x6e, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x48, 0x01, 0x52, 0x09, 0x76, 0x75, 0x6c, 0x6e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x88, + 0x01, 0x01, 0x12, 0x47, 0x0a, 0x06, 0x74, 0x72, 0x75, 0x73, 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x2e, 0x54, 0x72, 0x75, 0x73, 0x74, 0x79, 0x48, 0x02, + 0x52, 0x06, 0x74, 0x72, 0x75, 0x73, 0x74, 0x79, 0x88, 0x01, 0x01, 0x1a, 0xd8, 0x01, 0x0a, 0x0c, + 0x4a, 0x51, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x12, 0x55, 0x0a, 0x08, + 0x69, 0x6e, 0x67, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, + 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, + 0x76, 0x61, 0x6c, 0x2e, 0x4a, 0x51, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, + 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x08, 0x69, 0x6e, 0x67, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x12, 0x53, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x2e, 0x50, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x2e, 0x4a, 0x51, 0x43, 0x6f, 0x6d, 0x70, + 0x61, 0x72, 0x69, 0x73, 0x6f, 0x6e, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x52, + 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x1a, 0x1c, 0x0a, 0x08, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x64, 0x65, 0x66, 0x1a, 0x2c, 0x0a, 0x04, 0x52, 0x65, 0x67, 0x6f, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x64, 0x65, 0x66, 0x1a, 0x0b, 0x0a, 0x09, 0x56, 0x75, 0x6c, 0x6e, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x1a, 0x24, 0x0a, 0x06, 0x54, 0x72, 0x75, 0x73, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, + 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x65, 0x67, 0x6f, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x76, 0x75, 0x6c, 0x6e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x74, 0x72, 0x75, 0x73, 0x74, 0x79, 0x1a, 0xae, 0x05, 0x0a, 0x09, 0x52, 0x65, + 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x04, 0x72, + 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6d, 0x69, 0x6e, 0x64, + 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, + 0x52, 0x04, 0x72, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x76, 0x0a, 0x14, 0x67, 0x68, 0x5f, + 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, + 0x65, 0x2e, 0x47, 0x68, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x12, 0x67, 0x68, 0x42, 0x72, + 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x67, 0x0a, 0x0c, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, + 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, + 0x65, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x0b, 0x70, 0x75, 0x6c, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x2e, 0x0a, 0x16, 0x47, 0x68, + 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x1a, 0x9a, 0x02, 0x0a, 0x16, 0x50, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x65, 0x64, 0x69, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x71, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, - 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, - 0x65, 0x73, 0x74, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x67, 0x68, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, - 0x68, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0xc0, 0x01, - 0x0a, 0x05, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x62, 0x0a, 0x11, 0x73, - 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, - 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x2e, 0x41, 0x6c, 0x65, - 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x53, 0x41, 0x48, 0x00, 0x52, 0x10, 0x73, 0x65, 0x63, 0x75, - 0x72, 0x69, 0x74, 0x79, 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x1a, - 0x29, 0x0a, 0x0b, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x53, 0x41, 0x12, 0x1a, - 0x0a, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x73, 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x73, - 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, - 0x61, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x22, 0xa5, 0x04, 0x0a, 0x07, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x78, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x72, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x6f, 0x72, 0x79, 0x12, 0x44, 0x0a, 0x11, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x65, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x10, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x45, - 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x08, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x62, + 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x12, + 0x63, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x47, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x75, + 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x52, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x75, 0x6c, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x71, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, + 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x65, 0x73, 0x74, + 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x67, 0x68, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x75, + 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0xc0, 0x01, 0x0a, 0x05, 0x41, + 0x6c, 0x65, 0x72, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x62, 0x0a, 0x11, 0x73, 0x65, 0x63, 0x75, + 0x72, 0x69, 0x74, 0x79, 0x5f, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x53, 0x41, 0x48, 0x00, 0x52, 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, + 0x79, 0x41, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x1a, 0x29, 0x0a, 0x0b, + 0x41, 0x6c, 0x65, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x53, 0x41, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x65, 0x76, 0x65, 0x72, 0x69, 0x74, 0x79, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x73, 0x65, 0x63, 0x75, + 0x72, 0x69, 0x74, 0x79, 0x5f, 0x61, 0x64, 0x76, 0x69, 0x73, 0x6f, 0x72, 0x79, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x42, 0x05, + 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x22, 0xa5, 0x04, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, + 0x65, 0x12, 0x2c, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x12, + 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x02, 0x69, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, - 0x3a, 0x0a, 0x0c, 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0b, - 0x70, 0x75, 0x6c, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x72, - 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x09, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, - 0x05, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x76, 0x0a, 0x04, 0x52, 0x75, 0x6c, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x03, 0x64, 0x65, - 0x66, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, - 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, - 0x2a, 0x7b, 0x0a, 0x0b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, - 0x1c, 0x0a, 0x18, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4f, 0x57, 0x4e, 0x45, 0x52, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, - 0x19, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4f, 0x57, 0x4e, 0x45, 0x52, 0x5f, 0x4f, 0x52, - 0x47, 0x41, 0x4e, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, - 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4f, 0x57, 0x4e, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, - 0x4a, 0x45, 0x43, 0x54, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, - 0x5f, 0x4f, 0x57, 0x4e, 0x45, 0x52, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, 0x03, 0x2a, 0x72, 0x0a, - 0x0c, 0x44, 0x65, 0x70, 0x45, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x1d, 0x0a, - 0x19, 0x44, 0x45, 0x50, 0x5f, 0x45, 0x43, 0x4f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, - 0x44, 0x45, 0x50, 0x5f, 0x45, 0x43, 0x4f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x4e, 0x50, - 0x4d, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x45, 0x50, 0x5f, 0x45, 0x43, 0x4f, 0x53, 0x59, - 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x47, 0x4f, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x45, 0x50, - 0x5f, 0x45, 0x43, 0x4f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x59, 0x50, 0x49, 0x10, - 0x03, 0x2a, 0x88, 0x01, 0x0a, 0x06, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x12, - 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x52, - 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x4f, 0x52, 0x49, 0x45, 0x53, 0x10, 0x01, 0x12, 0x1d, 0x0a, - 0x19, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x5f, 0x45, 0x4e, - 0x56, 0x49, 0x52, 0x4f, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, - 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x53, - 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x55, 0x4c, - 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x53, 0x10, 0x04, 0x32, 0x7d, 0x0a, 0x0d, - 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6c, 0x0a, - 0x0b, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x1d, 0x2e, 0x6d, - 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x69, - 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0xaa, 0xf8, 0x18, - 0x04, 0x08, 0x01, 0x10, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x32, 0x90, 0x02, 0x0a, 0x0f, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x7e, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, - 0x12, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x2a, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1e, 0x12, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x12, - 0x7d, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x79, - 0x49, 0x64, 0x12, 0x21, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x79, 0x12, 0x44, 0x0a, 0x11, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x72, + 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, + 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x10, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x45, 0x6e, 0x76, 0x69, + 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x33, 0x0a, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, + 0x61, 0x63, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6e, 0x64, + 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x52, 0x75, + 0x6c, 0x65, 0x52, 0x08, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x12, 0x3a, 0x0a, 0x0c, + 0x70, 0x75, 0x6c, 0x6c, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x0b, 0x70, 0x75, 0x6c, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x09, 0x72, + 0x65, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x61, + 0x6c, 0x65, 0x72, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x61, 0x6c, + 0x65, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x76, 0x0a, 0x04, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x29, 0x0a, 0x03, 0x64, 0x65, 0x66, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x03, 0x64, 0x65, 0x66, 0x42, 0x05, + 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x6d, 0x65, 0x64, 0x69, + 0x61, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x2a, 0x7b, 0x0a, + 0x0b, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x18, + 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4f, 0x57, 0x4e, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x42, + 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4f, 0x57, 0x4e, 0x45, 0x52, 0x5f, 0x4f, 0x52, 0x47, 0x41, 0x4e, + 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x4f, 0x42, 0x4a, + 0x45, 0x43, 0x54, 0x5f, 0x4f, 0x57, 0x4e, 0x45, 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, + 0x54, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x5f, 0x4f, 0x57, + 0x4e, 0x45, 0x52, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, 0x03, 0x2a, 0x72, 0x0a, 0x0c, 0x44, 0x65, + 0x70, 0x45, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x45, + 0x50, 0x5f, 0x45, 0x43, 0x4f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, + 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x45, 0x50, + 0x5f, 0x45, 0x43, 0x4f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x4e, 0x50, 0x4d, 0x10, 0x01, + 0x12, 0x14, 0x0a, 0x10, 0x44, 0x45, 0x50, 0x5f, 0x45, 0x43, 0x4f, 0x53, 0x59, 0x53, 0x54, 0x45, + 0x4d, 0x5f, 0x47, 0x4f, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x45, 0x50, 0x5f, 0x45, 0x43, + 0x4f, 0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x50, 0x59, 0x50, 0x49, 0x10, 0x03, 0x2a, 0x88, + 0x01, 0x0a, 0x06, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x4e, 0x54, + 0x49, 0x54, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x50, 0x4f, + 0x53, 0x49, 0x54, 0x4f, 0x52, 0x49, 0x45, 0x53, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x45, 0x4e, + 0x54, 0x49, 0x54, 0x59, 0x5f, 0x42, 0x55, 0x49, 0x4c, 0x44, 0x5f, 0x45, 0x4e, 0x56, 0x49, 0x52, + 0x4f, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x53, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x45, 0x4e, 0x54, + 0x49, 0x54, 0x59, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x53, 0x10, 0x03, 0x12, + 0x18, 0x0a, 0x14, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x50, 0x55, 0x4c, 0x4c, 0x5f, 0x52, + 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x53, 0x10, 0x04, 0x32, 0x7d, 0x0a, 0x0d, 0x48, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6c, 0x0a, 0x0b, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x1d, 0x2e, 0x6d, 0x69, 0x6e, 0x64, + 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0xaa, 0xf8, 0x18, 0x04, 0x08, 0x01, + 0x10, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x32, 0x90, 0x02, 0x0a, 0x0f, 0x41, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7e, 0x0a, 0x0d, + 0x4c, 0x69, 0x73, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x12, 0x1f, 0x2e, + 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, + 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x2a, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x12, 0x7d, 0x0a, 0x0f, + 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x12, + 0x21, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x79, 0x49, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0xaa, 0xf8, 0x18, 0x02, 0x28, - 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x32, 0xce, - 0x08, 0x0a, 0x0c, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x86, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x52, 0x4c, 0x12, 0x25, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, - 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x52, 0x4c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x61, 0x75, 0x74, 0x68, 0x2f, 0x75, 0x72, 0x6c, 0x12, 0x8e, 0x01, 0x0a, 0x17, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x43, 0x4c, 0x49, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x4c, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, - 0x70, 0x42, 0x6f, 0x64, 0x79, 0x22, 0x32, 0xaa, 0xf8, 0x18, 0x02, 0x08, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, - 0x68, 0x2f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x63, 0x6c, 0x69, 0x12, 0xa4, 0x01, 0x0a, 0x17, 0x45, 0x78, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x32, 0xce, 0x08, 0x0a, 0x0c, + 0x4f, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x86, 0x01, 0x0a, + 0x13, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x55, 0x52, 0x4c, 0x12, 0x25, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x69, + 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x20, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, + 0x68, 0x2f, 0x75, 0x72, 0x6c, 0x12, 0x8e, 0x01, 0x0a, 0x17, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x43, 0x4c, + 0x49, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x57, 0x45, 0x42, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, - 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x45, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x63, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x57, 0x45, 0x42, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0xaa, 0xf8, - 0x18, 0x02, 0x08, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, - 0x6b, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x77, 0x65, 0x62, - 0x12, 0x91, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x24, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, - 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x22, 0x3a, 0x01, 0x2a, 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, - 0x75, 0x74, 0x68, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x88, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, - 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x23, 0x2e, 0x6d, 0x69, 0x6e, - 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, - 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x24, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, - 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0xaa, 0xf8, 0x18, 0x02, 0x20, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x61, 0x75, 0x74, 0x68, 0x2f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x2d, 0x61, 0x6c, 0x6c, 0x12, - 0xb0, 0x01, 0x0a, 0x17, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x29, 0x2e, 0x6d, 0x69, - 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, - 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, + 0x65, 0x6e, 0x43, 0x4c, 0x49, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, + 0x64, 0x79, 0x22, 0x32, 0xaa, 0xf8, 0x18, 0x02, 0x08, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, + 0x12, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x7d, 0x2f, 0x63, 0x6c, 0x69, 0x12, 0xa4, 0x01, 0x0a, 0x17, 0x45, 0x78, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, + 0x45, 0x42, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, + 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x57, 0x45, 0x42, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, + 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x63, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x46, 0x6f, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x57, 0x45, + 0x42, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0xaa, 0xf8, 0x18, 0x02, 0x08, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x2f, 0x7b, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x77, 0x65, 0x62, 0x12, 0x91, 0x01, + 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x24, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6d, 0x69, 0x6e, + 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x2e, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x22, 0x3a, + 0x01, 0x2a, 0x22, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x88, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, + 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x23, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, + 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, + 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x28, 0xaa, 0xf8, 0x18, 0x02, 0x20, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, + 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, + 0x68, 0x2f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x2d, 0x61, 0x6c, 0x6c, 0x12, 0xb0, 0x01, 0x0a, + 0x17, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x29, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x3e, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x3a, + 0x01, 0x2a, 0x22, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x72, 0x65, 0x76, 0x6f, + 0x6b, 0x65, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x12, + 0xaa, 0x01, 0x0a, 0x17, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x29, 0x2e, 0x6d, 0x69, + 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4f, 0x61, 0x75, 0x74, 0x68, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x3e, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x30, 0x3a, 0x01, 0x2a, 0x22, 0x2b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, - 0x75, 0x74, 0x68, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x72, - 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, - 0x64, 0x7d, 0x12, 0xaa, 0x01, 0x0a, 0x17, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x29, - 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, 0x72, - 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6d, 0x69, 0x6e, 0x64, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x2c, 0x12, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, - 0x68, 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x7d, 0x2f, 0x7b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x7d, 0x32, - 0xba, 0x09, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x24, 0x2e, 0x6d, - 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0xaa, 0xf8, 0x18, 0x04, 0x18, - 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x3a, 0x01, 0x2a, 0x22, 0x2f, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0xd2, 0x01, - 0x0a, 0x22, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x12, 0x34, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6d, 0x69, 0x6e, - 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x46, 0x72, 0x6f, - 0x6d, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x3f, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x31, 0x12, 0x2f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x22, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, - 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x69, - 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x36, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, + 0x76, 0x31, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x38, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, + 0x12, 0x2a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, + 0x2f, 0x7b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x7d, 0x32, 0xba, 0x09, 0x0a, + 0x11, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x24, 0x2e, 0x6d, 0x69, 0x6e, 0x64, + 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x25, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x3a, 0x01, 0x2a, 0x22, 0x2f, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x7d, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0xd2, 0x01, 0x0a, 0x22, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x69, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x12, 0x34, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x69, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x46, 0x72, 0x6f, 0x6d, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, + 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x2f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x12, 0x93, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x12, 0x23, - 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0xaa, 0xf8, 0x18, 0x02, 0x28, - 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x69, 0x64, 0x2f, 0x7b, - 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa6, - 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, - 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x34, 0x12, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, - 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x9e, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, - 0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x35, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x27, 0x2a, 0x25, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x69, 0x64, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xb1, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, - 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, + 0x93, 0x01, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x69, 0x65, 0x73, 0x12, 0x22, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0xaa, + 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, + 0x73, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, + 0x69, 0x64, 0x65, 0x72, 0x7d, 0x12, 0x93, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x12, 0x23, 0x2e, 0x6d, 0x69, + 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x27, 0x12, 0x25, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x69, 0x64, 0x2f, 0x7b, 0x72, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa6, 0x01, 0x0a, 0x13, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x25, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x69, 0x6e, + 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x40, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, + 0x12, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x2f, 0x7b, 0x70, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x6e, + 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x9e, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x12, 0x26, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x79, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, + 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x2a, 0x25, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x79, 0x2f, 0x69, 0x64, 0x2f, 0x7b, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, + 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xb1, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, - 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x2a, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, - 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x32, 0xa2, 0x01, 0x0a, - 0x17, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x25, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, - 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, - 0x2f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x32, 0xc0, 0x02, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0x6a, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x1c, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, - 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0xaa, 0xf8, - 0x18, 0x04, 0x18, 0x01, 0x28, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x3a, 0x01, 0x2a, 0x22, - 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x12, 0x67, 0x0a, - 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x6d, 0x69, - 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6d, 0x69, 0x6e, 0x64, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, - 0x28, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x2a, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x12, 0x5c, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x19, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6d, - 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x03, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x75, 0x73, 0x65, 0x72, 0x32, 0xa6, 0x0c, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x76, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x69, 0x6e, 0x64, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0xaa, 0xf8, 0x18, - 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x3a, 0x01, 0x2a, 0x22, 0x0f, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, - 0x78, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x12, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x16, 0x2a, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x6f, 0x0a, 0x0c, 0x4c, 0x69, 0x73, - 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1e, 0x2e, 0x6d, 0x69, 0x6e, 0x64, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0xaa, 0xf8, 0x18, 0x02, - 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x73, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x12, 0x20, 0x2e, 0x6d, - 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, - 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, - 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, - 0x9f, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6e, - 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x12, 0x28, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x69, 0x6e, + 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x2a, 0x32, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x6e, 0x61, + 0x6d, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x32, 0xa2, 0x01, 0x0a, 0x17, 0x42, 0x72, + 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x72, 0x61, + 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, + 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x72, 0x61, + 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x72, + 0x61, 0x6e, 0x63, 0x68, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0xc0, + 0x02, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x6a, + 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x6d, + 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6d, 0x69, 0x6e, + 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0xaa, 0xf8, 0x18, 0x04, 0x18, + 0x01, 0x28, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x3a, 0x01, 0x2a, 0x22, 0x0c, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x12, 0x67, 0x0a, 0x0a, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x01, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x2a, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, + 0x73, 0x65, 0x72, 0x12, 0x5c, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x19, + 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6d, 0x69, 0x6e, 0x64, + 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1a, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x03, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, + 0x72, 0x32, 0x9e, 0x0d, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x76, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, + 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x3a, 0x01, 0x2a, 0x22, 0x0f, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x76, 0x0a, 0x0d, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1f, 0x2e, + 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, + 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x22, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, + 0x3a, 0x01, 0x2a, 0x1a, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x12, 0x78, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, + 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x2a, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x6f, + 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x1e, + 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, + 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x1e, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, + 0x73, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x49, + 0x64, 0x12, 0x20, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, + 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x9f, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x28, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x69, 0x6e, 0x64, + 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x24, 0x12, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x9c, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2b, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x30, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x6e, - 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x9c, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, - 0x2b, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x6d, - 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x02, - 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x74, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x73, 0x12, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x14, 0x12, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x8b, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x2e, 0x6d, - 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x73, 0x42, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2c, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x24, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x74, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0xaa, 0xf8, 0x18, 0x02, 0x28, + 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x14, 0x12, 0x12, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x8b, 0x01, 0x0a, 0x11, + 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x23, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, - 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x7e, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x42, 0x79, 0x49, 0x64, 0x12, 0x21, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, - 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x69, 0x6e, - 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, - 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x12, 0x16, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2f, - 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x7b, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, - 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x7b, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x20, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, - 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x1a, 0x11, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x7d, - 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x20, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, - 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x32, 0xe6, 0x01, - 0x0a, 0x0a, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x64, 0x0a, 0x0c, - 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x2e, 0x6d, - 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, - 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, 0x0b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6b, - 0x65, 0x79, 0x12, 0x72, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x50, - 0x61, 0x69, 0x72, 0x12, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x3a, 0x01, 0x2a, 0x22, 0x0b, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x6b, 0x65, 0x79, 0x3a, 0x58, 0x0a, 0x0b, 0x72, 0x70, 0x63, 0x5f, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x85, 0x8f, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x70, 0x63, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x72, 0x70, 0x63, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x73, - 0x74, 0x61, 0x63, 0x6b, 0x6c, 0x6f, 0x6b, 0x2f, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2f, 0x70, - 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, - 0x67, 0x6f, 0x2f, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, + 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0xaa, 0xf8, + 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x6e, 0x61, + 0x6d, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x7e, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x49, 0x64, 0x12, 0x21, 0x2e, 0x6d, + 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x75, 0x6c, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x22, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, + 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x02, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x18, 0x12, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x7b, 0x0a, 0x0e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x2e, 0x6d, 0x69, + 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x75, + 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, + 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, + 0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, + 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x12, 0x7b, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x69, 0x6e, + 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, + 0xf8, 0x18, 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, + 0x1a, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x7d, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0xaa, 0xf8, 0x18, 0x04, + 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x2f, 0x7b, 0x69, + 0x64, 0x7d, 0x32, 0xe6, 0x01, 0x0a, 0x0a, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x64, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, + 0x79, 0x12, 0x1e, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, 0x0b, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x65, 0x79, 0x12, 0x72, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4b, 0x65, 0x79, 0x50, 0x61, 0x69, 0x72, 0x12, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x50, 0x61, + 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x69, 0x6e, 0x64, + 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x50, + 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0xaa, 0xf8, 0x18, + 0x04, 0x18, 0x01, 0x28, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x3a, 0x01, 0x2a, 0x22, 0x0b, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x65, 0x79, 0x3a, 0x58, 0x0a, 0x0b, 0x72, + 0x70, 0x63, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x85, 0x8f, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x70, 0x63, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0a, 0x72, 0x70, 0x63, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x3a, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x6c, 0x6f, 0x6b, 0x2f, 0x6d, 0x69, 0x6e, + 0x64, 0x65, 0x72, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x67, 0x6f, 0x2f, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2f, 0x76, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -9339,7 +9449,7 @@ func file_minder_v1_minder_proto_rawDescGZIP() []byte { } var file_minder_v1_minder_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_minder_v1_minder_proto_msgTypes = make([]protoimpl.MessageInfo, 130) +var file_minder_v1_minder_proto_msgTypes = make([]protoimpl.MessageInfo, 132) var file_minder_v1_minder_proto_goTypes = []interface{}{ (ObjectOwner)(0), // 0: minder.v1.ObjectOwner (DepEcosystem)(0), // 1: minder.v1.DepEcosystem @@ -9411,257 +9521,263 @@ var file_minder_v1_minder_proto_goTypes = []interface{}{ (*GetUserResponse)(nil), // 67: minder.v1.GetUserResponse (*CreateProfileRequest)(nil), // 68: minder.v1.CreateProfileRequest (*CreateProfileResponse)(nil), // 69: minder.v1.CreateProfileResponse - (*DeleteProfileRequest)(nil), // 70: minder.v1.DeleteProfileRequest - (*DeleteProfileResponse)(nil), // 71: minder.v1.DeleteProfileResponse - (*ListProfilesRequest)(nil), // 72: minder.v1.ListProfilesRequest - (*ListProfilesResponse)(nil), // 73: minder.v1.ListProfilesResponse - (*GetProfileByIdRequest)(nil), // 74: minder.v1.GetProfileByIdRequest - (*GetProfileByIdResponse)(nil), // 75: minder.v1.GetProfileByIdResponse - (*ProfileStatus)(nil), // 76: minder.v1.ProfileStatus - (*RuleEvaluationStatus)(nil), // 77: minder.v1.RuleEvaluationStatus - (*GetProfileStatusByNameRequest)(nil), // 78: minder.v1.GetProfileStatusByNameRequest - (*GetProfileStatusByNameResponse)(nil), // 79: minder.v1.GetProfileStatusByNameResponse - (*GetProfileStatusByProjectRequest)(nil), // 80: minder.v1.GetProfileStatusByProjectRequest - (*GetProfileStatusByProjectResponse)(nil), // 81: minder.v1.GetProfileStatusByProjectResponse - (*GetPublicKeyRequest)(nil), // 82: minder.v1.GetPublicKeyRequest - (*GetPublicKeyResponse)(nil), // 83: minder.v1.GetPublicKeyResponse - (*CreateKeyPairRequest)(nil), // 84: minder.v1.CreateKeyPairRequest - (*CreateKeyPairResponse)(nil), // 85: minder.v1.CreateKeyPairResponse - (*RESTProviderConfig)(nil), // 86: minder.v1.RESTProviderConfig - (*GitHubProviderConfig)(nil), // 87: minder.v1.GitHubProviderConfig - (*Provider)(nil), // 88: minder.v1.Provider - (*Context)(nil), // 89: minder.v1.Context - (*ListRuleTypesRequest)(nil), // 90: minder.v1.ListRuleTypesRequest - (*ListRuleTypesResponse)(nil), // 91: minder.v1.ListRuleTypesResponse - (*GetRuleTypeByNameRequest)(nil), // 92: minder.v1.GetRuleTypeByNameRequest - (*GetRuleTypeByNameResponse)(nil), // 93: minder.v1.GetRuleTypeByNameResponse - (*GetRuleTypeByIdRequest)(nil), // 94: minder.v1.GetRuleTypeByIdRequest - (*GetRuleTypeByIdResponse)(nil), // 95: minder.v1.GetRuleTypeByIdResponse - (*CreateRuleTypeRequest)(nil), // 96: minder.v1.CreateRuleTypeRequest - (*CreateRuleTypeResponse)(nil), // 97: minder.v1.CreateRuleTypeResponse - (*UpdateRuleTypeRequest)(nil), // 98: minder.v1.UpdateRuleTypeRequest - (*UpdateRuleTypeResponse)(nil), // 99: minder.v1.UpdateRuleTypeResponse - (*DeleteRuleTypeRequest)(nil), // 100: minder.v1.DeleteRuleTypeRequest - (*DeleteRuleTypeResponse)(nil), // 101: minder.v1.DeleteRuleTypeResponse - (*RestType)(nil), // 102: minder.v1.RestType - (*BuiltinType)(nil), // 103: minder.v1.BuiltinType - (*ArtifactType)(nil), // 104: minder.v1.ArtifactType - (*GitType)(nil), // 105: minder.v1.GitType - (*DiffType)(nil), // 106: minder.v1.DiffType - (*RuleType)(nil), // 107: minder.v1.RuleType - (*Profile)(nil), // 108: minder.v1.Profile - (*PrDependencies_ContextualDependency)(nil), // 109: minder.v1.PrDependencies.ContextualDependency - (*PrDependencies_ContextualDependency_FilePatch)(nil), // 110: minder.v1.PrDependencies.ContextualDependency.FilePatch - (*RegisterRepoResult_Status)(nil), // 111: minder.v1.RegisterRepoResult.Status - nil, // 112: minder.v1.RuleEvaluationStatus.EntityInfoEntry - (*GetProfileStatusByNameRequest_EntityTypedId)(nil), // 113: minder.v1.GetProfileStatusByNameRequest.EntityTypedId - (*Provider_Context)(nil), // 114: minder.v1.Provider.Context - (*Provider_Definition)(nil), // 115: minder.v1.Provider.Definition - (*RestType_Fallback)(nil), // 116: minder.v1.RestType.Fallback - (*DiffType_Ecosystem)(nil), // 117: minder.v1.DiffType.Ecosystem - (*RuleType_Definition)(nil), // 118: minder.v1.RuleType.Definition - (*RuleType_Definition_Ingest)(nil), // 119: minder.v1.RuleType.Definition.Ingest - (*RuleType_Definition_Eval)(nil), // 120: minder.v1.RuleType.Definition.Eval - (*RuleType_Definition_Remediate)(nil), // 121: minder.v1.RuleType.Definition.Remediate - (*RuleType_Definition_Alert)(nil), // 122: minder.v1.RuleType.Definition.Alert - (*RuleType_Definition_Eval_JQComparison)(nil), // 123: minder.v1.RuleType.Definition.Eval.JQComparison - (*RuleType_Definition_Eval_Rego)(nil), // 124: minder.v1.RuleType.Definition.Eval.Rego - (*RuleType_Definition_Eval_Vulncheck)(nil), // 125: minder.v1.RuleType.Definition.Eval.Vulncheck - (*RuleType_Definition_Eval_Trusty)(nil), // 126: minder.v1.RuleType.Definition.Eval.Trusty - (*RuleType_Definition_Eval_JQComparison_Operator)(nil), // 127: minder.v1.RuleType.Definition.Eval.JQComparison.Operator - (*RuleType_Definition_Remediate_GhBranchProtectionType)(nil), // 128: minder.v1.RuleType.Definition.Remediate.GhBranchProtectionType - (*RuleType_Definition_Remediate_PullRequestRemediation)(nil), // 129: minder.v1.RuleType.Definition.Remediate.PullRequestRemediation - (*RuleType_Definition_Remediate_PullRequestRemediation_Content)(nil), // 130: minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.Content - (*RuleType_Definition_Alert_AlertTypeSA)(nil), // 131: minder.v1.RuleType.Definition.Alert.AlertTypeSA - (*Profile_Rule)(nil), // 132: minder.v1.Profile.Rule - (*timestamppb.Timestamp)(nil), // 133: google.protobuf.Timestamp - (*structpb.Struct)(nil), // 134: google.protobuf.Struct - (*descriptorpb.MethodOptions)(nil), // 135: google.protobuf.MethodOptions - (*httpbody.HttpBody)(nil), // 136: google.api.HttpBody + (*UpdateProfileRequest)(nil), // 70: minder.v1.UpdateProfileRequest + (*UpdateProfileResponse)(nil), // 71: minder.v1.UpdateProfileResponse + (*DeleteProfileRequest)(nil), // 72: minder.v1.DeleteProfileRequest + (*DeleteProfileResponse)(nil), // 73: minder.v1.DeleteProfileResponse + (*ListProfilesRequest)(nil), // 74: minder.v1.ListProfilesRequest + (*ListProfilesResponse)(nil), // 75: minder.v1.ListProfilesResponse + (*GetProfileByIdRequest)(nil), // 76: minder.v1.GetProfileByIdRequest + (*GetProfileByIdResponse)(nil), // 77: minder.v1.GetProfileByIdResponse + (*ProfileStatus)(nil), // 78: minder.v1.ProfileStatus + (*RuleEvaluationStatus)(nil), // 79: minder.v1.RuleEvaluationStatus + (*GetProfileStatusByNameRequest)(nil), // 80: minder.v1.GetProfileStatusByNameRequest + (*GetProfileStatusByNameResponse)(nil), // 81: minder.v1.GetProfileStatusByNameResponse + (*GetProfileStatusByProjectRequest)(nil), // 82: minder.v1.GetProfileStatusByProjectRequest + (*GetProfileStatusByProjectResponse)(nil), // 83: minder.v1.GetProfileStatusByProjectResponse + (*GetPublicKeyRequest)(nil), // 84: minder.v1.GetPublicKeyRequest + (*GetPublicKeyResponse)(nil), // 85: minder.v1.GetPublicKeyResponse + (*CreateKeyPairRequest)(nil), // 86: minder.v1.CreateKeyPairRequest + (*CreateKeyPairResponse)(nil), // 87: minder.v1.CreateKeyPairResponse + (*RESTProviderConfig)(nil), // 88: minder.v1.RESTProviderConfig + (*GitHubProviderConfig)(nil), // 89: minder.v1.GitHubProviderConfig + (*Provider)(nil), // 90: minder.v1.Provider + (*Context)(nil), // 91: minder.v1.Context + (*ListRuleTypesRequest)(nil), // 92: minder.v1.ListRuleTypesRequest + (*ListRuleTypesResponse)(nil), // 93: minder.v1.ListRuleTypesResponse + (*GetRuleTypeByNameRequest)(nil), // 94: minder.v1.GetRuleTypeByNameRequest + (*GetRuleTypeByNameResponse)(nil), // 95: minder.v1.GetRuleTypeByNameResponse + (*GetRuleTypeByIdRequest)(nil), // 96: minder.v1.GetRuleTypeByIdRequest + (*GetRuleTypeByIdResponse)(nil), // 97: minder.v1.GetRuleTypeByIdResponse + (*CreateRuleTypeRequest)(nil), // 98: minder.v1.CreateRuleTypeRequest + (*CreateRuleTypeResponse)(nil), // 99: minder.v1.CreateRuleTypeResponse + (*UpdateRuleTypeRequest)(nil), // 100: minder.v1.UpdateRuleTypeRequest + (*UpdateRuleTypeResponse)(nil), // 101: minder.v1.UpdateRuleTypeResponse + (*DeleteRuleTypeRequest)(nil), // 102: minder.v1.DeleteRuleTypeRequest + (*DeleteRuleTypeResponse)(nil), // 103: minder.v1.DeleteRuleTypeResponse + (*RestType)(nil), // 104: minder.v1.RestType + (*BuiltinType)(nil), // 105: minder.v1.BuiltinType + (*ArtifactType)(nil), // 106: minder.v1.ArtifactType + (*GitType)(nil), // 107: minder.v1.GitType + (*DiffType)(nil), // 108: minder.v1.DiffType + (*RuleType)(nil), // 109: minder.v1.RuleType + (*Profile)(nil), // 110: minder.v1.Profile + (*PrDependencies_ContextualDependency)(nil), // 111: minder.v1.PrDependencies.ContextualDependency + (*PrDependencies_ContextualDependency_FilePatch)(nil), // 112: minder.v1.PrDependencies.ContextualDependency.FilePatch + (*RegisterRepoResult_Status)(nil), // 113: minder.v1.RegisterRepoResult.Status + nil, // 114: minder.v1.RuleEvaluationStatus.EntityInfoEntry + (*GetProfileStatusByNameRequest_EntityTypedId)(nil), // 115: minder.v1.GetProfileStatusByNameRequest.EntityTypedId + (*Provider_Context)(nil), // 116: minder.v1.Provider.Context + (*Provider_Definition)(nil), // 117: minder.v1.Provider.Definition + (*RestType_Fallback)(nil), // 118: minder.v1.RestType.Fallback + (*DiffType_Ecosystem)(nil), // 119: minder.v1.DiffType.Ecosystem + (*RuleType_Definition)(nil), // 120: minder.v1.RuleType.Definition + (*RuleType_Definition_Ingest)(nil), // 121: minder.v1.RuleType.Definition.Ingest + (*RuleType_Definition_Eval)(nil), // 122: minder.v1.RuleType.Definition.Eval + (*RuleType_Definition_Remediate)(nil), // 123: minder.v1.RuleType.Definition.Remediate + (*RuleType_Definition_Alert)(nil), // 124: minder.v1.RuleType.Definition.Alert + (*RuleType_Definition_Eval_JQComparison)(nil), // 125: minder.v1.RuleType.Definition.Eval.JQComparison + (*RuleType_Definition_Eval_Rego)(nil), // 126: minder.v1.RuleType.Definition.Eval.Rego + (*RuleType_Definition_Eval_Vulncheck)(nil), // 127: minder.v1.RuleType.Definition.Eval.Vulncheck + (*RuleType_Definition_Eval_Trusty)(nil), // 128: minder.v1.RuleType.Definition.Eval.Trusty + (*RuleType_Definition_Eval_JQComparison_Operator)(nil), // 129: minder.v1.RuleType.Definition.Eval.JQComparison.Operator + (*RuleType_Definition_Remediate_GhBranchProtectionType)(nil), // 130: minder.v1.RuleType.Definition.Remediate.GhBranchProtectionType + (*RuleType_Definition_Remediate_PullRequestRemediation)(nil), // 131: minder.v1.RuleType.Definition.Remediate.PullRequestRemediation + (*RuleType_Definition_Remediate_PullRequestRemediation_Content)(nil), // 132: minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.Content + (*RuleType_Definition_Alert_AlertTypeSA)(nil), // 133: minder.v1.RuleType.Definition.Alert.AlertTypeSA + (*Profile_Rule)(nil), // 134: minder.v1.Profile.Rule + (*timestamppb.Timestamp)(nil), // 135: google.protobuf.Timestamp + (*structpb.Struct)(nil), // 136: google.protobuf.Struct + (*descriptorpb.MethodOptions)(nil), // 137: google.protobuf.MethodOptions + (*httpbody.HttpBody)(nil), // 138: google.api.HttpBody } var file_minder_v1_minder_proto_depIdxs = []int32{ 0, // 0: minder.v1.RpcOptions.auth_scope:type_name -> minder.v1.ObjectOwner 6, // 1: minder.v1.ListArtifactsResponse.results:type_name -> minder.v1.Artifact 9, // 2: minder.v1.Artifact.versions:type_name -> minder.v1.ArtifactVersion - 133, // 3: minder.v1.Artifact.created_at:type_name -> google.protobuf.Timestamp - 133, // 4: minder.v1.SignatureVerification.signature_time:type_name -> google.protobuf.Timestamp + 135, // 3: minder.v1.Artifact.created_at:type_name -> google.protobuf.Timestamp + 135, // 4: minder.v1.SignatureVerification.signature_time:type_name -> google.protobuf.Timestamp 8, // 5: minder.v1.ArtifactVersion.signature_verification:type_name -> minder.v1.SignatureVerification 7, // 6: minder.v1.ArtifactVersion.github_workflow:type_name -> minder.v1.GithubWorkflow - 133, // 7: minder.v1.ArtifactVersion.created_at:type_name -> google.protobuf.Timestamp + 135, // 7: minder.v1.ArtifactVersion.created_at:type_name -> google.protobuf.Timestamp 6, // 8: minder.v1.GetArtifactByIdResponse.artifact:type_name -> minder.v1.Artifact 9, // 9: minder.v1.GetArtifactByIdResponse.versions:type_name -> minder.v1.ArtifactVersion 1, // 10: minder.v1.Dependency.ecosystem:type_name -> minder.v1.DepEcosystem 12, // 11: minder.v1.PrDependencies.pr:type_name -> minder.v1.PullRequest - 109, // 12: minder.v1.PrDependencies.deps:type_name -> minder.v1.PrDependencies.ContextualDependency - 133, // 13: minder.v1.Project.created_at:type_name -> google.protobuf.Timestamp - 133, // 14: minder.v1.Project.updated_at:type_name -> google.protobuf.Timestamp + 111, // 12: minder.v1.PrDependencies.deps:type_name -> minder.v1.PrDependencies.ContextualDependency + 135, // 13: minder.v1.Project.created_at:type_name -> google.protobuf.Timestamp + 135, // 14: minder.v1.Project.updated_at:type_name -> google.protobuf.Timestamp 33, // 15: minder.v1.ListRemoteRepositoriesFromProviderResponse.results:type_name -> minder.v1.UpstreamRepositoryRef - 89, // 16: minder.v1.Repository.context:type_name -> minder.v1.Context - 133, // 17: minder.v1.Repository.created_at:type_name -> google.protobuf.Timestamp - 133, // 18: minder.v1.Repository.updated_at:type_name -> google.protobuf.Timestamp + 91, // 16: minder.v1.Repository.context:type_name -> minder.v1.Context + 135, // 17: minder.v1.Repository.created_at:type_name -> google.protobuf.Timestamp + 135, // 18: minder.v1.Repository.updated_at:type_name -> google.protobuf.Timestamp 33, // 19: minder.v1.RegisterRepositoryRequest.repository:type_name -> minder.v1.UpstreamRepositoryRef 34, // 20: minder.v1.RegisterRepoResult.repository:type_name -> minder.v1.Repository - 111, // 21: minder.v1.RegisterRepoResult.status:type_name -> minder.v1.RegisterRepoResult.Status + 113, // 21: minder.v1.RegisterRepoResult.status:type_name -> minder.v1.RegisterRepoResult.Status 36, // 22: minder.v1.RegisterRepositoryResponse.result:type_name -> minder.v1.RegisterRepoResult 34, // 23: minder.v1.GetRepositoryByIdResponse.repository:type_name -> minder.v1.Repository 34, // 24: minder.v1.GetRepositoryByNameResponse.repository:type_name -> minder.v1.Repository 34, // 25: minder.v1.ListRepositoriesResponse.results:type_name -> minder.v1.Repository - 133, // 26: minder.v1.VerifyProviderTokenFromRequest.timestamp:type_name -> google.protobuf.Timestamp - 133, // 27: minder.v1.GetVulnerabilityByIdResponse.scanned_at:type_name -> google.protobuf.Timestamp - 133, // 28: minder.v1.GetVulnerabilityByIdResponse.created_at:type_name -> google.protobuf.Timestamp + 135, // 26: minder.v1.VerifyProviderTokenFromRequest.timestamp:type_name -> google.protobuf.Timestamp + 135, // 27: minder.v1.GetVulnerabilityByIdResponse.scanned_at:type_name -> google.protobuf.Timestamp + 135, // 28: minder.v1.GetVulnerabilityByIdResponse.created_at:type_name -> google.protobuf.Timestamp 52, // 29: minder.v1.GetVulnerabilitiesResponse.vulns:type_name -> minder.v1.GetVulnerabilityByIdResponse 57, // 30: minder.v1.GetSecretsResponse.secrets:type_name -> minder.v1.GetSecretByIdResponse 59, // 31: minder.v1.GetBranchProtectionResponse.branch_protections:type_name -> minder.v1.BranchProtection - 133, // 32: minder.v1.CreateUserResponse.created_at:type_name -> google.protobuf.Timestamp - 133, // 33: minder.v1.UserRecord.created_at:type_name -> google.protobuf.Timestamp - 133, // 34: minder.v1.UserRecord.updated_at:type_name -> google.protobuf.Timestamp + 135, // 32: minder.v1.CreateUserResponse.created_at:type_name -> google.protobuf.Timestamp + 135, // 33: minder.v1.UserRecord.created_at:type_name -> google.protobuf.Timestamp + 135, // 34: minder.v1.UserRecord.updated_at:type_name -> google.protobuf.Timestamp 65, // 35: minder.v1.GetUserResponse.user:type_name -> minder.v1.UserRecord 30, // 36: minder.v1.GetUserResponse.projects:type_name -> minder.v1.Project - 108, // 37: minder.v1.CreateProfileRequest.profile:type_name -> minder.v1.Profile - 108, // 38: minder.v1.CreateProfileResponse.profile:type_name -> minder.v1.Profile - 89, // 39: minder.v1.DeleteProfileRequest.context:type_name -> minder.v1.Context - 89, // 40: minder.v1.ListProfilesRequest.context:type_name -> minder.v1.Context - 108, // 41: minder.v1.ListProfilesResponse.profiles:type_name -> minder.v1.Profile - 89, // 42: minder.v1.GetProfileByIdRequest.context:type_name -> minder.v1.Context - 108, // 43: minder.v1.GetProfileByIdResponse.profile:type_name -> minder.v1.Profile - 133, // 44: minder.v1.ProfileStatus.last_updated:type_name -> google.protobuf.Timestamp - 133, // 45: minder.v1.RuleEvaluationStatus.last_updated:type_name -> google.protobuf.Timestamp - 112, // 46: minder.v1.RuleEvaluationStatus.entity_info:type_name -> minder.v1.RuleEvaluationStatus.EntityInfoEntry - 133, // 47: minder.v1.RuleEvaluationStatus.remediation_last_updated:type_name -> google.protobuf.Timestamp - 89, // 48: minder.v1.GetProfileStatusByNameRequest.context:type_name -> minder.v1.Context - 113, // 49: minder.v1.GetProfileStatusByNameRequest.entity:type_name -> minder.v1.GetProfileStatusByNameRequest.EntityTypedId - 76, // 50: minder.v1.GetProfileStatusByNameResponse.profile_status:type_name -> minder.v1.ProfileStatus - 77, // 51: minder.v1.GetProfileStatusByNameResponse.rule_evaluation_status:type_name -> minder.v1.RuleEvaluationStatus - 89, // 52: minder.v1.GetProfileStatusByProjectRequest.context:type_name -> minder.v1.Context - 76, // 53: minder.v1.GetProfileStatusByProjectResponse.profile_status:type_name -> minder.v1.ProfileStatus - 114, // 54: minder.v1.Provider.context:type_name -> minder.v1.Provider.Context - 115, // 55: minder.v1.Provider.def:type_name -> minder.v1.Provider.Definition - 89, // 56: minder.v1.ListRuleTypesRequest.context:type_name -> minder.v1.Context - 107, // 57: minder.v1.ListRuleTypesResponse.rule_types:type_name -> minder.v1.RuleType - 89, // 58: minder.v1.GetRuleTypeByNameRequest.context:type_name -> minder.v1.Context - 107, // 59: minder.v1.GetRuleTypeByNameResponse.rule_type:type_name -> minder.v1.RuleType - 89, // 60: minder.v1.GetRuleTypeByIdRequest.context:type_name -> minder.v1.Context - 107, // 61: minder.v1.GetRuleTypeByIdResponse.rule_type:type_name -> minder.v1.RuleType - 107, // 62: minder.v1.CreateRuleTypeRequest.rule_type:type_name -> minder.v1.RuleType - 107, // 63: minder.v1.CreateRuleTypeResponse.rule_type:type_name -> minder.v1.RuleType - 107, // 64: minder.v1.UpdateRuleTypeRequest.rule_type:type_name -> minder.v1.RuleType - 107, // 65: minder.v1.UpdateRuleTypeResponse.rule_type:type_name -> minder.v1.RuleType - 89, // 66: minder.v1.DeleteRuleTypeRequest.context:type_name -> minder.v1.Context - 116, // 67: minder.v1.RestType.fallback:type_name -> minder.v1.RestType.Fallback - 117, // 68: minder.v1.DiffType.ecosystems:type_name -> minder.v1.DiffType.Ecosystem - 89, // 69: minder.v1.RuleType.context:type_name -> minder.v1.Context - 118, // 70: minder.v1.RuleType.def:type_name -> minder.v1.RuleType.Definition - 89, // 71: minder.v1.Profile.context:type_name -> minder.v1.Context - 132, // 72: minder.v1.Profile.repository:type_name -> minder.v1.Profile.Rule - 132, // 73: minder.v1.Profile.build_environment:type_name -> minder.v1.Profile.Rule - 132, // 74: minder.v1.Profile.artifact:type_name -> minder.v1.Profile.Rule - 132, // 75: minder.v1.Profile.pull_request:type_name -> minder.v1.Profile.Rule - 13, // 76: minder.v1.PrDependencies.ContextualDependency.dep:type_name -> minder.v1.Dependency - 110, // 77: minder.v1.PrDependencies.ContextualDependency.file:type_name -> minder.v1.PrDependencies.ContextualDependency.FilePatch - 2, // 78: minder.v1.GetProfileStatusByNameRequest.EntityTypedId.type:type_name -> minder.v1.Entity - 86, // 79: minder.v1.Provider.Definition.rest:type_name -> minder.v1.RESTProviderConfig - 87, // 80: minder.v1.Provider.Definition.github:type_name -> minder.v1.GitHubProviderConfig - 134, // 81: minder.v1.RuleType.Definition.rule_schema:type_name -> google.protobuf.Struct - 134, // 82: minder.v1.RuleType.Definition.param_schema:type_name -> google.protobuf.Struct - 119, // 83: minder.v1.RuleType.Definition.ingest:type_name -> minder.v1.RuleType.Definition.Ingest - 120, // 84: minder.v1.RuleType.Definition.eval:type_name -> minder.v1.RuleType.Definition.Eval - 121, // 85: minder.v1.RuleType.Definition.remediate:type_name -> minder.v1.RuleType.Definition.Remediate - 122, // 86: minder.v1.RuleType.Definition.alert:type_name -> minder.v1.RuleType.Definition.Alert - 102, // 87: minder.v1.RuleType.Definition.Ingest.rest:type_name -> minder.v1.RestType - 103, // 88: minder.v1.RuleType.Definition.Ingest.builtin:type_name -> minder.v1.BuiltinType - 104, // 89: minder.v1.RuleType.Definition.Ingest.artifact:type_name -> minder.v1.ArtifactType - 105, // 90: minder.v1.RuleType.Definition.Ingest.git:type_name -> minder.v1.GitType - 106, // 91: minder.v1.RuleType.Definition.Ingest.diff:type_name -> minder.v1.DiffType - 123, // 92: minder.v1.RuleType.Definition.Eval.jq:type_name -> minder.v1.RuleType.Definition.Eval.JQComparison - 124, // 93: minder.v1.RuleType.Definition.Eval.rego:type_name -> minder.v1.RuleType.Definition.Eval.Rego - 125, // 94: minder.v1.RuleType.Definition.Eval.vulncheck:type_name -> minder.v1.RuleType.Definition.Eval.Vulncheck - 126, // 95: minder.v1.RuleType.Definition.Eval.trusty:type_name -> minder.v1.RuleType.Definition.Eval.Trusty - 102, // 96: minder.v1.RuleType.Definition.Remediate.rest:type_name -> minder.v1.RestType - 128, // 97: minder.v1.RuleType.Definition.Remediate.gh_branch_protection:type_name -> minder.v1.RuleType.Definition.Remediate.GhBranchProtectionType - 129, // 98: minder.v1.RuleType.Definition.Remediate.pull_request:type_name -> minder.v1.RuleType.Definition.Remediate.PullRequestRemediation - 131, // 99: minder.v1.RuleType.Definition.Alert.security_advisory:type_name -> minder.v1.RuleType.Definition.Alert.AlertTypeSA - 127, // 100: minder.v1.RuleType.Definition.Eval.JQComparison.ingested:type_name -> minder.v1.RuleType.Definition.Eval.JQComparison.Operator - 127, // 101: minder.v1.RuleType.Definition.Eval.JQComparison.profile:type_name -> minder.v1.RuleType.Definition.Eval.JQComparison.Operator - 130, // 102: minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.contents:type_name -> minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.Content - 134, // 103: minder.v1.Profile.Rule.params:type_name -> google.protobuf.Struct - 134, // 104: minder.v1.Profile.Rule.def:type_name -> google.protobuf.Struct - 135, // 105: minder.v1.rpc_options:extendee -> google.protobuf.MethodOptions - 3, // 106: minder.v1.rpc_options:type_name -> minder.v1.RpcOptions - 15, // 107: minder.v1.HealthService.CheckHealth:input_type -> minder.v1.CheckHealthRequest - 4, // 108: minder.v1.ArtifactService.ListArtifacts:input_type -> minder.v1.ListArtifactsRequest - 10, // 109: minder.v1.ArtifactService.GetArtifactById:input_type -> minder.v1.GetArtifactByIdRequest - 17, // 110: minder.v1.OAuthService.GetAuthorizationURL:input_type -> minder.v1.GetAuthorizationURLRequest - 19, // 111: minder.v1.OAuthService.ExchangeCodeForTokenCLI:input_type -> minder.v1.ExchangeCodeForTokenCLIRequest - 22, // 112: minder.v1.OAuthService.ExchangeCodeForTokenWEB:input_type -> minder.v1.ExchangeCodeForTokenWEBRequest - 20, // 113: minder.v1.OAuthService.StoreProviderToken:input_type -> minder.v1.StoreProviderTokenRequest - 24, // 114: minder.v1.OAuthService.RevokeOauthTokens:input_type -> minder.v1.RevokeOauthTokensRequest - 26, // 115: minder.v1.OAuthService.RevokeOauthProjectToken:input_type -> minder.v1.RevokeOauthProjectTokenRequest - 48, // 116: minder.v1.OAuthService.VerifyProviderTokenFrom:input_type -> minder.v1.VerifyProviderTokenFromRequest - 35, // 117: minder.v1.RepositoryService.RegisterRepository:input_type -> minder.v1.RegisterRepositoryRequest - 31, // 118: minder.v1.RepositoryService.ListRemoteRepositoriesFromProvider:input_type -> minder.v1.ListRemoteRepositoriesFromProviderRequest - 46, // 119: minder.v1.RepositoryService.ListRepositories:input_type -> minder.v1.ListRepositoriesRequest - 38, // 120: minder.v1.RepositoryService.GetRepositoryById:input_type -> minder.v1.GetRepositoryByIdRequest - 42, // 121: minder.v1.RepositoryService.GetRepositoryByName:input_type -> minder.v1.GetRepositoryByNameRequest - 40, // 122: minder.v1.RepositoryService.DeleteRepositoryById:input_type -> minder.v1.DeleteRepositoryByIdRequest - 44, // 123: minder.v1.RepositoryService.DeleteRepositoryByName:input_type -> minder.v1.DeleteRepositoryByNameRequest - 58, // 124: minder.v1.BranchProtectionService.GetBranchProtection:input_type -> minder.v1.GetBranchProtectionRequest - 61, // 125: minder.v1.UserService.CreateUser:input_type -> minder.v1.CreateUserRequest - 63, // 126: minder.v1.UserService.DeleteUser:input_type -> minder.v1.DeleteUserRequest - 66, // 127: minder.v1.UserService.GetUser:input_type -> minder.v1.GetUserRequest - 68, // 128: minder.v1.ProfileService.CreateProfile:input_type -> minder.v1.CreateProfileRequest - 70, // 129: minder.v1.ProfileService.DeleteProfile:input_type -> minder.v1.DeleteProfileRequest - 72, // 130: minder.v1.ProfileService.ListProfiles:input_type -> minder.v1.ListProfilesRequest - 74, // 131: minder.v1.ProfileService.GetProfileById:input_type -> minder.v1.GetProfileByIdRequest - 78, // 132: minder.v1.ProfileService.GetProfileStatusByName:input_type -> minder.v1.GetProfileStatusByNameRequest - 80, // 133: minder.v1.ProfileService.GetProfileStatusByProject:input_type -> minder.v1.GetProfileStatusByProjectRequest - 90, // 134: minder.v1.ProfileService.ListRuleTypes:input_type -> minder.v1.ListRuleTypesRequest - 92, // 135: minder.v1.ProfileService.GetRuleTypeByName:input_type -> minder.v1.GetRuleTypeByNameRequest - 94, // 136: minder.v1.ProfileService.GetRuleTypeById:input_type -> minder.v1.GetRuleTypeByIdRequest - 96, // 137: minder.v1.ProfileService.CreateRuleType:input_type -> minder.v1.CreateRuleTypeRequest - 98, // 138: minder.v1.ProfileService.UpdateRuleType:input_type -> minder.v1.UpdateRuleTypeRequest - 100, // 139: minder.v1.ProfileService.DeleteRuleType:input_type -> minder.v1.DeleteRuleTypeRequest - 82, // 140: minder.v1.KeyService.GetPublicKey:input_type -> minder.v1.GetPublicKeyRequest - 84, // 141: minder.v1.KeyService.CreateKeyPair:input_type -> minder.v1.CreateKeyPairRequest - 16, // 142: minder.v1.HealthService.CheckHealth:output_type -> minder.v1.CheckHealthResponse - 5, // 143: minder.v1.ArtifactService.ListArtifacts:output_type -> minder.v1.ListArtifactsResponse - 11, // 144: minder.v1.ArtifactService.GetArtifactById:output_type -> minder.v1.GetArtifactByIdResponse - 18, // 145: minder.v1.OAuthService.GetAuthorizationURL:output_type -> minder.v1.GetAuthorizationURLResponse - 136, // 146: minder.v1.OAuthService.ExchangeCodeForTokenCLI:output_type -> google.api.HttpBody - 23, // 147: minder.v1.OAuthService.ExchangeCodeForTokenWEB:output_type -> minder.v1.ExchangeCodeForTokenWEBResponse - 21, // 148: minder.v1.OAuthService.StoreProviderToken:output_type -> minder.v1.StoreProviderTokenResponse - 25, // 149: minder.v1.OAuthService.RevokeOauthTokens:output_type -> minder.v1.RevokeOauthTokensResponse - 27, // 150: minder.v1.OAuthService.RevokeOauthProjectToken:output_type -> minder.v1.RevokeOauthProjectTokenResponse - 49, // 151: minder.v1.OAuthService.VerifyProviderTokenFrom:output_type -> minder.v1.VerifyProviderTokenFromResponse - 37, // 152: minder.v1.RepositoryService.RegisterRepository:output_type -> minder.v1.RegisterRepositoryResponse - 32, // 153: minder.v1.RepositoryService.ListRemoteRepositoriesFromProvider:output_type -> minder.v1.ListRemoteRepositoriesFromProviderResponse - 47, // 154: minder.v1.RepositoryService.ListRepositories:output_type -> minder.v1.ListRepositoriesResponse - 39, // 155: minder.v1.RepositoryService.GetRepositoryById:output_type -> minder.v1.GetRepositoryByIdResponse - 43, // 156: minder.v1.RepositoryService.GetRepositoryByName:output_type -> minder.v1.GetRepositoryByNameResponse - 41, // 157: minder.v1.RepositoryService.DeleteRepositoryById:output_type -> minder.v1.DeleteRepositoryByIdResponse - 45, // 158: minder.v1.RepositoryService.DeleteRepositoryByName:output_type -> minder.v1.DeleteRepositoryByNameResponse - 60, // 159: minder.v1.BranchProtectionService.GetBranchProtection:output_type -> minder.v1.GetBranchProtectionResponse - 62, // 160: minder.v1.UserService.CreateUser:output_type -> minder.v1.CreateUserResponse - 64, // 161: minder.v1.UserService.DeleteUser:output_type -> minder.v1.DeleteUserResponse - 67, // 162: minder.v1.UserService.GetUser:output_type -> minder.v1.GetUserResponse - 69, // 163: minder.v1.ProfileService.CreateProfile:output_type -> minder.v1.CreateProfileResponse - 71, // 164: minder.v1.ProfileService.DeleteProfile:output_type -> minder.v1.DeleteProfileResponse - 73, // 165: minder.v1.ProfileService.ListProfiles:output_type -> minder.v1.ListProfilesResponse - 75, // 166: minder.v1.ProfileService.GetProfileById:output_type -> minder.v1.GetProfileByIdResponse - 79, // 167: minder.v1.ProfileService.GetProfileStatusByName:output_type -> minder.v1.GetProfileStatusByNameResponse - 81, // 168: minder.v1.ProfileService.GetProfileStatusByProject:output_type -> minder.v1.GetProfileStatusByProjectResponse - 91, // 169: minder.v1.ProfileService.ListRuleTypes:output_type -> minder.v1.ListRuleTypesResponse - 93, // 170: minder.v1.ProfileService.GetRuleTypeByName:output_type -> minder.v1.GetRuleTypeByNameResponse - 95, // 171: minder.v1.ProfileService.GetRuleTypeById:output_type -> minder.v1.GetRuleTypeByIdResponse - 97, // 172: minder.v1.ProfileService.CreateRuleType:output_type -> minder.v1.CreateRuleTypeResponse - 99, // 173: minder.v1.ProfileService.UpdateRuleType:output_type -> minder.v1.UpdateRuleTypeResponse - 101, // 174: minder.v1.ProfileService.DeleteRuleType:output_type -> minder.v1.DeleteRuleTypeResponse - 83, // 175: minder.v1.KeyService.GetPublicKey:output_type -> minder.v1.GetPublicKeyResponse - 85, // 176: minder.v1.KeyService.CreateKeyPair:output_type -> minder.v1.CreateKeyPairResponse - 142, // [142:177] is the sub-list for method output_type - 107, // [107:142] is the sub-list for method input_type - 106, // [106:107] is the sub-list for extension type_name - 105, // [105:106] is the sub-list for extension extendee - 0, // [0:105] is the sub-list for field type_name + 110, // 37: minder.v1.CreateProfileRequest.profile:type_name -> minder.v1.Profile + 110, // 38: minder.v1.CreateProfileResponse.profile:type_name -> minder.v1.Profile + 110, // 39: minder.v1.UpdateProfileRequest.profile:type_name -> minder.v1.Profile + 110, // 40: minder.v1.UpdateProfileResponse.profile:type_name -> minder.v1.Profile + 91, // 41: minder.v1.DeleteProfileRequest.context:type_name -> minder.v1.Context + 91, // 42: minder.v1.ListProfilesRequest.context:type_name -> minder.v1.Context + 110, // 43: minder.v1.ListProfilesResponse.profiles:type_name -> minder.v1.Profile + 91, // 44: minder.v1.GetProfileByIdRequest.context:type_name -> minder.v1.Context + 110, // 45: minder.v1.GetProfileByIdResponse.profile:type_name -> minder.v1.Profile + 135, // 46: minder.v1.ProfileStatus.last_updated:type_name -> google.protobuf.Timestamp + 135, // 47: minder.v1.RuleEvaluationStatus.last_updated:type_name -> google.protobuf.Timestamp + 114, // 48: minder.v1.RuleEvaluationStatus.entity_info:type_name -> minder.v1.RuleEvaluationStatus.EntityInfoEntry + 135, // 49: minder.v1.RuleEvaluationStatus.remediation_last_updated:type_name -> google.protobuf.Timestamp + 91, // 50: minder.v1.GetProfileStatusByNameRequest.context:type_name -> minder.v1.Context + 115, // 51: minder.v1.GetProfileStatusByNameRequest.entity:type_name -> minder.v1.GetProfileStatusByNameRequest.EntityTypedId + 78, // 52: minder.v1.GetProfileStatusByNameResponse.profile_status:type_name -> minder.v1.ProfileStatus + 79, // 53: minder.v1.GetProfileStatusByNameResponse.rule_evaluation_status:type_name -> minder.v1.RuleEvaluationStatus + 91, // 54: minder.v1.GetProfileStatusByProjectRequest.context:type_name -> minder.v1.Context + 78, // 55: minder.v1.GetProfileStatusByProjectResponse.profile_status:type_name -> minder.v1.ProfileStatus + 116, // 56: minder.v1.Provider.context:type_name -> minder.v1.Provider.Context + 117, // 57: minder.v1.Provider.def:type_name -> minder.v1.Provider.Definition + 91, // 58: minder.v1.ListRuleTypesRequest.context:type_name -> minder.v1.Context + 109, // 59: minder.v1.ListRuleTypesResponse.rule_types:type_name -> minder.v1.RuleType + 91, // 60: minder.v1.GetRuleTypeByNameRequest.context:type_name -> minder.v1.Context + 109, // 61: minder.v1.GetRuleTypeByNameResponse.rule_type:type_name -> minder.v1.RuleType + 91, // 62: minder.v1.GetRuleTypeByIdRequest.context:type_name -> minder.v1.Context + 109, // 63: minder.v1.GetRuleTypeByIdResponse.rule_type:type_name -> minder.v1.RuleType + 109, // 64: minder.v1.CreateRuleTypeRequest.rule_type:type_name -> minder.v1.RuleType + 109, // 65: minder.v1.CreateRuleTypeResponse.rule_type:type_name -> minder.v1.RuleType + 109, // 66: minder.v1.UpdateRuleTypeRequest.rule_type:type_name -> minder.v1.RuleType + 109, // 67: minder.v1.UpdateRuleTypeResponse.rule_type:type_name -> minder.v1.RuleType + 91, // 68: minder.v1.DeleteRuleTypeRequest.context:type_name -> minder.v1.Context + 118, // 69: minder.v1.RestType.fallback:type_name -> minder.v1.RestType.Fallback + 119, // 70: minder.v1.DiffType.ecosystems:type_name -> minder.v1.DiffType.Ecosystem + 91, // 71: minder.v1.RuleType.context:type_name -> minder.v1.Context + 120, // 72: minder.v1.RuleType.def:type_name -> minder.v1.RuleType.Definition + 91, // 73: minder.v1.Profile.context:type_name -> minder.v1.Context + 134, // 74: minder.v1.Profile.repository:type_name -> minder.v1.Profile.Rule + 134, // 75: minder.v1.Profile.build_environment:type_name -> minder.v1.Profile.Rule + 134, // 76: minder.v1.Profile.artifact:type_name -> minder.v1.Profile.Rule + 134, // 77: minder.v1.Profile.pull_request:type_name -> minder.v1.Profile.Rule + 13, // 78: minder.v1.PrDependencies.ContextualDependency.dep:type_name -> minder.v1.Dependency + 112, // 79: minder.v1.PrDependencies.ContextualDependency.file:type_name -> minder.v1.PrDependencies.ContextualDependency.FilePatch + 2, // 80: minder.v1.GetProfileStatusByNameRequest.EntityTypedId.type:type_name -> minder.v1.Entity + 88, // 81: minder.v1.Provider.Definition.rest:type_name -> minder.v1.RESTProviderConfig + 89, // 82: minder.v1.Provider.Definition.github:type_name -> minder.v1.GitHubProviderConfig + 136, // 83: minder.v1.RuleType.Definition.rule_schema:type_name -> google.protobuf.Struct + 136, // 84: minder.v1.RuleType.Definition.param_schema:type_name -> google.protobuf.Struct + 121, // 85: minder.v1.RuleType.Definition.ingest:type_name -> minder.v1.RuleType.Definition.Ingest + 122, // 86: minder.v1.RuleType.Definition.eval:type_name -> minder.v1.RuleType.Definition.Eval + 123, // 87: minder.v1.RuleType.Definition.remediate:type_name -> minder.v1.RuleType.Definition.Remediate + 124, // 88: minder.v1.RuleType.Definition.alert:type_name -> minder.v1.RuleType.Definition.Alert + 104, // 89: minder.v1.RuleType.Definition.Ingest.rest:type_name -> minder.v1.RestType + 105, // 90: minder.v1.RuleType.Definition.Ingest.builtin:type_name -> minder.v1.BuiltinType + 106, // 91: minder.v1.RuleType.Definition.Ingest.artifact:type_name -> minder.v1.ArtifactType + 107, // 92: minder.v1.RuleType.Definition.Ingest.git:type_name -> minder.v1.GitType + 108, // 93: minder.v1.RuleType.Definition.Ingest.diff:type_name -> minder.v1.DiffType + 125, // 94: minder.v1.RuleType.Definition.Eval.jq:type_name -> minder.v1.RuleType.Definition.Eval.JQComparison + 126, // 95: minder.v1.RuleType.Definition.Eval.rego:type_name -> minder.v1.RuleType.Definition.Eval.Rego + 127, // 96: minder.v1.RuleType.Definition.Eval.vulncheck:type_name -> minder.v1.RuleType.Definition.Eval.Vulncheck + 128, // 97: minder.v1.RuleType.Definition.Eval.trusty:type_name -> minder.v1.RuleType.Definition.Eval.Trusty + 104, // 98: minder.v1.RuleType.Definition.Remediate.rest:type_name -> minder.v1.RestType + 130, // 99: minder.v1.RuleType.Definition.Remediate.gh_branch_protection:type_name -> minder.v1.RuleType.Definition.Remediate.GhBranchProtectionType + 131, // 100: minder.v1.RuleType.Definition.Remediate.pull_request:type_name -> minder.v1.RuleType.Definition.Remediate.PullRequestRemediation + 133, // 101: minder.v1.RuleType.Definition.Alert.security_advisory:type_name -> minder.v1.RuleType.Definition.Alert.AlertTypeSA + 129, // 102: minder.v1.RuleType.Definition.Eval.JQComparison.ingested:type_name -> minder.v1.RuleType.Definition.Eval.JQComparison.Operator + 129, // 103: minder.v1.RuleType.Definition.Eval.JQComparison.profile:type_name -> minder.v1.RuleType.Definition.Eval.JQComparison.Operator + 132, // 104: minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.contents:type_name -> minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.Content + 136, // 105: minder.v1.Profile.Rule.params:type_name -> google.protobuf.Struct + 136, // 106: minder.v1.Profile.Rule.def:type_name -> google.protobuf.Struct + 137, // 107: minder.v1.rpc_options:extendee -> google.protobuf.MethodOptions + 3, // 108: minder.v1.rpc_options:type_name -> minder.v1.RpcOptions + 15, // 109: minder.v1.HealthService.CheckHealth:input_type -> minder.v1.CheckHealthRequest + 4, // 110: minder.v1.ArtifactService.ListArtifacts:input_type -> minder.v1.ListArtifactsRequest + 10, // 111: minder.v1.ArtifactService.GetArtifactById:input_type -> minder.v1.GetArtifactByIdRequest + 17, // 112: minder.v1.OAuthService.GetAuthorizationURL:input_type -> minder.v1.GetAuthorizationURLRequest + 19, // 113: minder.v1.OAuthService.ExchangeCodeForTokenCLI:input_type -> minder.v1.ExchangeCodeForTokenCLIRequest + 22, // 114: minder.v1.OAuthService.ExchangeCodeForTokenWEB:input_type -> minder.v1.ExchangeCodeForTokenWEBRequest + 20, // 115: minder.v1.OAuthService.StoreProviderToken:input_type -> minder.v1.StoreProviderTokenRequest + 24, // 116: minder.v1.OAuthService.RevokeOauthTokens:input_type -> minder.v1.RevokeOauthTokensRequest + 26, // 117: minder.v1.OAuthService.RevokeOauthProjectToken:input_type -> minder.v1.RevokeOauthProjectTokenRequest + 48, // 118: minder.v1.OAuthService.VerifyProviderTokenFrom:input_type -> minder.v1.VerifyProviderTokenFromRequest + 35, // 119: minder.v1.RepositoryService.RegisterRepository:input_type -> minder.v1.RegisterRepositoryRequest + 31, // 120: minder.v1.RepositoryService.ListRemoteRepositoriesFromProvider:input_type -> minder.v1.ListRemoteRepositoriesFromProviderRequest + 46, // 121: minder.v1.RepositoryService.ListRepositories:input_type -> minder.v1.ListRepositoriesRequest + 38, // 122: minder.v1.RepositoryService.GetRepositoryById:input_type -> minder.v1.GetRepositoryByIdRequest + 42, // 123: minder.v1.RepositoryService.GetRepositoryByName:input_type -> minder.v1.GetRepositoryByNameRequest + 40, // 124: minder.v1.RepositoryService.DeleteRepositoryById:input_type -> minder.v1.DeleteRepositoryByIdRequest + 44, // 125: minder.v1.RepositoryService.DeleteRepositoryByName:input_type -> minder.v1.DeleteRepositoryByNameRequest + 58, // 126: minder.v1.BranchProtectionService.GetBranchProtection:input_type -> minder.v1.GetBranchProtectionRequest + 61, // 127: minder.v1.UserService.CreateUser:input_type -> minder.v1.CreateUserRequest + 63, // 128: minder.v1.UserService.DeleteUser:input_type -> minder.v1.DeleteUserRequest + 66, // 129: minder.v1.UserService.GetUser:input_type -> minder.v1.GetUserRequest + 68, // 130: minder.v1.ProfileService.CreateProfile:input_type -> minder.v1.CreateProfileRequest + 70, // 131: minder.v1.ProfileService.UpdateProfile:input_type -> minder.v1.UpdateProfileRequest + 72, // 132: minder.v1.ProfileService.DeleteProfile:input_type -> minder.v1.DeleteProfileRequest + 74, // 133: minder.v1.ProfileService.ListProfiles:input_type -> minder.v1.ListProfilesRequest + 76, // 134: minder.v1.ProfileService.GetProfileById:input_type -> minder.v1.GetProfileByIdRequest + 80, // 135: minder.v1.ProfileService.GetProfileStatusByName:input_type -> minder.v1.GetProfileStatusByNameRequest + 82, // 136: minder.v1.ProfileService.GetProfileStatusByProject:input_type -> minder.v1.GetProfileStatusByProjectRequest + 92, // 137: minder.v1.ProfileService.ListRuleTypes:input_type -> minder.v1.ListRuleTypesRequest + 94, // 138: minder.v1.ProfileService.GetRuleTypeByName:input_type -> minder.v1.GetRuleTypeByNameRequest + 96, // 139: minder.v1.ProfileService.GetRuleTypeById:input_type -> minder.v1.GetRuleTypeByIdRequest + 98, // 140: minder.v1.ProfileService.CreateRuleType:input_type -> minder.v1.CreateRuleTypeRequest + 100, // 141: minder.v1.ProfileService.UpdateRuleType:input_type -> minder.v1.UpdateRuleTypeRequest + 102, // 142: minder.v1.ProfileService.DeleteRuleType:input_type -> minder.v1.DeleteRuleTypeRequest + 84, // 143: minder.v1.KeyService.GetPublicKey:input_type -> minder.v1.GetPublicKeyRequest + 86, // 144: minder.v1.KeyService.CreateKeyPair:input_type -> minder.v1.CreateKeyPairRequest + 16, // 145: minder.v1.HealthService.CheckHealth:output_type -> minder.v1.CheckHealthResponse + 5, // 146: minder.v1.ArtifactService.ListArtifacts:output_type -> minder.v1.ListArtifactsResponse + 11, // 147: minder.v1.ArtifactService.GetArtifactById:output_type -> minder.v1.GetArtifactByIdResponse + 18, // 148: minder.v1.OAuthService.GetAuthorizationURL:output_type -> minder.v1.GetAuthorizationURLResponse + 138, // 149: minder.v1.OAuthService.ExchangeCodeForTokenCLI:output_type -> google.api.HttpBody + 23, // 150: minder.v1.OAuthService.ExchangeCodeForTokenWEB:output_type -> minder.v1.ExchangeCodeForTokenWEBResponse + 21, // 151: minder.v1.OAuthService.StoreProviderToken:output_type -> minder.v1.StoreProviderTokenResponse + 25, // 152: minder.v1.OAuthService.RevokeOauthTokens:output_type -> minder.v1.RevokeOauthTokensResponse + 27, // 153: minder.v1.OAuthService.RevokeOauthProjectToken:output_type -> minder.v1.RevokeOauthProjectTokenResponse + 49, // 154: minder.v1.OAuthService.VerifyProviderTokenFrom:output_type -> minder.v1.VerifyProviderTokenFromResponse + 37, // 155: minder.v1.RepositoryService.RegisterRepository:output_type -> minder.v1.RegisterRepositoryResponse + 32, // 156: minder.v1.RepositoryService.ListRemoteRepositoriesFromProvider:output_type -> minder.v1.ListRemoteRepositoriesFromProviderResponse + 47, // 157: minder.v1.RepositoryService.ListRepositories:output_type -> minder.v1.ListRepositoriesResponse + 39, // 158: minder.v1.RepositoryService.GetRepositoryById:output_type -> minder.v1.GetRepositoryByIdResponse + 43, // 159: minder.v1.RepositoryService.GetRepositoryByName:output_type -> minder.v1.GetRepositoryByNameResponse + 41, // 160: minder.v1.RepositoryService.DeleteRepositoryById:output_type -> minder.v1.DeleteRepositoryByIdResponse + 45, // 161: minder.v1.RepositoryService.DeleteRepositoryByName:output_type -> minder.v1.DeleteRepositoryByNameResponse + 60, // 162: minder.v1.BranchProtectionService.GetBranchProtection:output_type -> minder.v1.GetBranchProtectionResponse + 62, // 163: minder.v1.UserService.CreateUser:output_type -> minder.v1.CreateUserResponse + 64, // 164: minder.v1.UserService.DeleteUser:output_type -> minder.v1.DeleteUserResponse + 67, // 165: minder.v1.UserService.GetUser:output_type -> minder.v1.GetUserResponse + 69, // 166: minder.v1.ProfileService.CreateProfile:output_type -> minder.v1.CreateProfileResponse + 71, // 167: minder.v1.ProfileService.UpdateProfile:output_type -> minder.v1.UpdateProfileResponse + 73, // 168: minder.v1.ProfileService.DeleteProfile:output_type -> minder.v1.DeleteProfileResponse + 75, // 169: minder.v1.ProfileService.ListProfiles:output_type -> minder.v1.ListProfilesResponse + 77, // 170: minder.v1.ProfileService.GetProfileById:output_type -> minder.v1.GetProfileByIdResponse + 81, // 171: minder.v1.ProfileService.GetProfileStatusByName:output_type -> minder.v1.GetProfileStatusByNameResponse + 83, // 172: minder.v1.ProfileService.GetProfileStatusByProject:output_type -> minder.v1.GetProfileStatusByProjectResponse + 93, // 173: minder.v1.ProfileService.ListRuleTypes:output_type -> minder.v1.ListRuleTypesResponse + 95, // 174: minder.v1.ProfileService.GetRuleTypeByName:output_type -> minder.v1.GetRuleTypeByNameResponse + 97, // 175: minder.v1.ProfileService.GetRuleTypeById:output_type -> minder.v1.GetRuleTypeByIdResponse + 99, // 176: minder.v1.ProfileService.CreateRuleType:output_type -> minder.v1.CreateRuleTypeResponse + 101, // 177: minder.v1.ProfileService.UpdateRuleType:output_type -> minder.v1.UpdateRuleTypeResponse + 103, // 178: minder.v1.ProfileService.DeleteRuleType:output_type -> minder.v1.DeleteRuleTypeResponse + 85, // 179: minder.v1.KeyService.GetPublicKey:output_type -> minder.v1.GetPublicKeyResponse + 87, // 180: minder.v1.KeyService.CreateKeyPair:output_type -> minder.v1.CreateKeyPairResponse + 145, // [145:181] is the sub-list for method output_type + 109, // [109:145] is the sub-list for method input_type + 108, // [108:109] is the sub-list for extension type_name + 107, // [107:108] is the sub-list for extension extendee + 0, // [0:107] is the sub-list for field type_name } func init() { file_minder_v1_minder_proto_init() } @@ -10475,7 +10591,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteProfileRequest); i { + switch v := v.(*UpdateProfileRequest); i { case 0: return &v.state case 1: @@ -10487,7 +10603,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteProfileResponse); i { + switch v := v.(*UpdateProfileResponse); i { case 0: return &v.state case 1: @@ -10499,7 +10615,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListProfilesRequest); i { + switch v := v.(*DeleteProfileRequest); i { case 0: return &v.state case 1: @@ -10511,7 +10627,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListProfilesResponse); i { + switch v := v.(*DeleteProfileResponse); i { case 0: return &v.state case 1: @@ -10523,7 +10639,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProfileByIdRequest); i { + switch v := v.(*ListProfilesRequest); i { case 0: return &v.state case 1: @@ -10535,7 +10651,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProfileByIdResponse); i { + switch v := v.(*ListProfilesResponse); i { case 0: return &v.state case 1: @@ -10547,7 +10663,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProfileStatus); i { + switch v := v.(*GetProfileByIdRequest); i { case 0: return &v.state case 1: @@ -10559,7 +10675,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RuleEvaluationStatus); i { + switch v := v.(*GetProfileByIdResponse); i { case 0: return &v.state case 1: @@ -10571,7 +10687,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProfileStatusByNameRequest); i { + switch v := v.(*ProfileStatus); i { case 0: return &v.state case 1: @@ -10583,7 +10699,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProfileStatusByNameResponse); i { + switch v := v.(*RuleEvaluationStatus); i { case 0: return &v.state case 1: @@ -10595,7 +10711,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProfileStatusByProjectRequest); i { + switch v := v.(*GetProfileStatusByNameRequest); i { case 0: return &v.state case 1: @@ -10607,7 +10723,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetProfileStatusByProjectResponse); i { + switch v := v.(*GetProfileStatusByNameResponse); i { case 0: return &v.state case 1: @@ -10619,7 +10735,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPublicKeyRequest); i { + switch v := v.(*GetProfileStatusByProjectRequest); i { case 0: return &v.state case 1: @@ -10631,7 +10747,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPublicKeyResponse); i { + switch v := v.(*GetProfileStatusByProjectResponse); i { case 0: return &v.state case 1: @@ -10643,7 +10759,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateKeyPairRequest); i { + switch v := v.(*GetPublicKeyRequest); i { case 0: return &v.state case 1: @@ -10655,7 +10771,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateKeyPairResponse); i { + switch v := v.(*GetPublicKeyResponse); i { case 0: return &v.state case 1: @@ -10667,7 +10783,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RESTProviderConfig); i { + switch v := v.(*CreateKeyPairRequest); i { case 0: return &v.state case 1: @@ -10679,7 +10795,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GitHubProviderConfig); i { + switch v := v.(*CreateKeyPairResponse); i { case 0: return &v.state case 1: @@ -10691,7 +10807,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Provider); i { + switch v := v.(*RESTProviderConfig); i { case 0: return &v.state case 1: @@ -10703,7 +10819,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Context); i { + switch v := v.(*GitHubProviderConfig); i { case 0: return &v.state case 1: @@ -10715,7 +10831,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRuleTypesRequest); i { + switch v := v.(*Provider); i { case 0: return &v.state case 1: @@ -10727,7 +10843,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListRuleTypesResponse); i { + switch v := v.(*Context); i { case 0: return &v.state case 1: @@ -10739,7 +10855,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRuleTypeByNameRequest); i { + switch v := v.(*ListRuleTypesRequest); i { case 0: return &v.state case 1: @@ -10751,7 +10867,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRuleTypeByNameResponse); i { + switch v := v.(*ListRuleTypesResponse); i { case 0: return &v.state case 1: @@ -10763,7 +10879,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRuleTypeByIdRequest); i { + switch v := v.(*GetRuleTypeByNameRequest); i { case 0: return &v.state case 1: @@ -10775,7 +10891,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetRuleTypeByIdResponse); i { + switch v := v.(*GetRuleTypeByNameResponse); i { case 0: return &v.state case 1: @@ -10787,7 +10903,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateRuleTypeRequest); i { + switch v := v.(*GetRuleTypeByIdRequest); i { case 0: return &v.state case 1: @@ -10799,7 +10915,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateRuleTypeResponse); i { + switch v := v.(*GetRuleTypeByIdResponse); i { case 0: return &v.state case 1: @@ -10811,7 +10927,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateRuleTypeRequest); i { + switch v := v.(*CreateRuleTypeRequest); i { case 0: return &v.state case 1: @@ -10823,7 +10939,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateRuleTypeResponse); i { + switch v := v.(*CreateRuleTypeResponse); i { case 0: return &v.state case 1: @@ -10835,7 +10951,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteRuleTypeRequest); i { + switch v := v.(*UpdateRuleTypeRequest); i { case 0: return &v.state case 1: @@ -10847,7 +10963,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteRuleTypeResponse); i { + switch v := v.(*UpdateRuleTypeResponse); i { case 0: return &v.state case 1: @@ -10859,7 +10975,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RestType); i { + switch v := v.(*DeleteRuleTypeRequest); i { case 0: return &v.state case 1: @@ -10871,7 +10987,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BuiltinType); i { + switch v := v.(*DeleteRuleTypeResponse); i { case 0: return &v.state case 1: @@ -10883,7 +10999,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ArtifactType); i { + switch v := v.(*RestType); i { case 0: return &v.state case 1: @@ -10895,7 +11011,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GitType); i { + switch v := v.(*BuiltinType); i { case 0: return &v.state case 1: @@ -10907,7 +11023,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DiffType); i { + switch v := v.(*ArtifactType); i { case 0: return &v.state case 1: @@ -10919,7 +11035,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RuleType); i { + switch v := v.(*GitType); i { case 0: return &v.state case 1: @@ -10931,7 +11047,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Profile); i { + switch v := v.(*DiffType); i { case 0: return &v.state case 1: @@ -10943,7 +11059,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrDependencies_ContextualDependency); i { + switch v := v.(*RuleType); i { case 0: return &v.state case 1: @@ -10955,7 +11071,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrDependencies_ContextualDependency_FilePatch); i { + switch v := v.(*Profile); i { case 0: return &v.state case 1: @@ -10967,7 +11083,19 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterRepoResult_Status); i { + switch v := v.(*PrDependencies_ContextualDependency); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_minder_v1_minder_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PrDependencies_ContextualDependency_FilePatch); i { case 0: return &v.state case 1: @@ -10979,6 +11107,18 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RegisterRepoResult_Status); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_minder_v1_minder_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetProfileStatusByNameRequest_EntityTypedId); i { case 0: return &v.state @@ -10990,7 +11130,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Provider_Context); i { case 0: return &v.state @@ -11002,7 +11142,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Provider_Definition); i { case 0: return &v.state @@ -11014,7 +11154,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestType_Fallback); i { case 0: return &v.state @@ -11026,7 +11166,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiffType_Ecosystem); i { case 0: return &v.state @@ -11038,7 +11178,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition); i { case 0: return &v.state @@ -11050,7 +11190,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Ingest); i { case 0: return &v.state @@ -11062,7 +11202,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval); i { case 0: return &v.state @@ -11074,7 +11214,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Remediate); i { case 0: return &v.state @@ -11086,7 +11226,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Alert); i { case 0: return &v.state @@ -11098,7 +11238,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval_JQComparison); i { case 0: return &v.state @@ -11110,7 +11250,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval_Rego); i { case 0: return &v.state @@ -11122,7 +11262,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval_Vulncheck); i { case 0: return &v.state @@ -11134,7 +11274,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval_Trusty); i { case 0: return &v.state @@ -11146,7 +11286,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval_JQComparison_Operator); i { case 0: return &v.state @@ -11158,7 +11298,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Remediate_GhBranchProtectionType); i { case 0: return &v.state @@ -11170,7 +11310,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Remediate_PullRequestRemediation); i { case 0: return &v.state @@ -11182,7 +11322,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Remediate_PullRequestRemediation_Content); i { case 0: return &v.state @@ -11194,7 +11334,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Alert_AlertTypeSA); i { case 0: return &v.state @@ -11206,7 +11346,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Profile_Rule); i { case 0: return &v.state @@ -11225,26 +11365,26 @@ func file_minder_v1_minder_proto_init() { file_minder_v1_minder_proto_msgTypes[17].OneofWrappers = []interface{}{} file_minder_v1_minder_proto_msgTypes[31].OneofWrappers = []interface{}{} file_minder_v1_minder_proto_msgTypes[64].OneofWrappers = []interface{}{} - file_minder_v1_minder_proto_msgTypes[74].OneofWrappers = []interface{}{} - file_minder_v1_minder_proto_msgTypes[86].OneofWrappers = []interface{}{} - file_minder_v1_minder_proto_msgTypes[99].OneofWrappers = []interface{}{} - file_minder_v1_minder_proto_msgTypes[104].OneofWrappers = []interface{}{} - file_minder_v1_minder_proto_msgTypes[105].OneofWrappers = []interface{}{} - file_minder_v1_minder_proto_msgTypes[108].OneofWrappers = []interface{}{} - file_minder_v1_minder_proto_msgTypes[112].OneofWrappers = []interface{}{} - file_minder_v1_minder_proto_msgTypes[115].OneofWrappers = []interface{}{} - file_minder_v1_minder_proto_msgTypes[116].OneofWrappers = []interface{}{} + file_minder_v1_minder_proto_msgTypes[76].OneofWrappers = []interface{}{} + file_minder_v1_minder_proto_msgTypes[88].OneofWrappers = []interface{}{} + file_minder_v1_minder_proto_msgTypes[101].OneofWrappers = []interface{}{} + file_minder_v1_minder_proto_msgTypes[106].OneofWrappers = []interface{}{} + file_minder_v1_minder_proto_msgTypes[107].OneofWrappers = []interface{}{} + file_minder_v1_minder_proto_msgTypes[110].OneofWrappers = []interface{}{} + file_minder_v1_minder_proto_msgTypes[114].OneofWrappers = []interface{}{} file_minder_v1_minder_proto_msgTypes[117].OneofWrappers = []interface{}{} file_minder_v1_minder_proto_msgTypes[118].OneofWrappers = []interface{}{} file_minder_v1_minder_proto_msgTypes[119].OneofWrappers = []interface{}{} - file_minder_v1_minder_proto_msgTypes[127].OneofWrappers = []interface{}{} + file_minder_v1_minder_proto_msgTypes[120].OneofWrappers = []interface{}{} + file_minder_v1_minder_proto_msgTypes[121].OneofWrappers = []interface{}{} + file_minder_v1_minder_proto_msgTypes[129].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_minder_v1_minder_proto_rawDesc, NumEnums: 3, - NumMessages: 130, + NumMessages: 132, NumExtensions: 1, NumServices: 8, }, diff --git a/pkg/api/protobuf/go/minder/v1/minder.pb.gw.go b/pkg/api/protobuf/go/minder/v1/minder.pb.gw.go index bf686ffc68..54f3aeb6c8 100644 --- a/pkg/api/protobuf/go/minder/v1/minder.pb.gw.go +++ b/pkg/api/protobuf/go/minder/v1/minder.pb.gw.go @@ -1259,6 +1259,40 @@ func local_request_ProfileService_CreateProfile_0(ctx context.Context, marshaler } +func request_ProfileService_UpdateProfile_0(ctx context.Context, marshaler runtime.Marshaler, client ProfileServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateProfileRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.UpdateProfile(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ProfileService_UpdateProfile_0(ctx context.Context, marshaler runtime.Marshaler, server ProfileServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq UpdateProfileRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.UpdateProfile(ctx, &protoReq) + return msg, metadata, err + +} + var ( filter_ProfileService_DeleteProfile_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0}, Base: []int{1, 2, 0, 0}, Check: []int{0, 1, 2, 2}} ) @@ -2535,6 +2569,31 @@ func RegisterProfileServiceHandlerServer(ctx context.Context, mux *runtime.Serve }) + mux.Handle("PUT", pattern_ProfileService_UpdateProfile_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/minder.v1.ProfileService/UpdateProfile", runtime.WithHTTPPathPattern("/api/v1/profile")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ProfileService_UpdateProfile_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ProfileService_UpdateProfile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("DELETE", pattern_ProfileService_DeleteProfile_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -3748,6 +3807,28 @@ func RegisterProfileServiceHandlerClient(ctx context.Context, mux *runtime.Serve }) + mux.Handle("PUT", pattern_ProfileService_UpdateProfile_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/minder.v1.ProfileService/UpdateProfile", runtime.WithHTTPPathPattern("/api/v1/profile")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ProfileService_UpdateProfile_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ProfileService_UpdateProfile_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("DELETE", pattern_ProfileService_DeleteProfile_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -3996,6 +4077,8 @@ func RegisterProfileServiceHandlerClient(ctx context.Context, mux *runtime.Serve var ( pattern_ProfileService_CreateProfile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "profile"}, "")) + pattern_ProfileService_UpdateProfile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "profile"}, "")) + pattern_ProfileService_DeleteProfile_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "profile", "id"}, "")) pattern_ProfileService_ListProfiles_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "profiles"}, "")) @@ -4022,6 +4105,8 @@ var ( var ( forward_ProfileService_CreateProfile_0 = runtime.ForwardResponseMessage + forward_ProfileService_UpdateProfile_0 = runtime.ForwardResponseMessage + forward_ProfileService_DeleteProfile_0 = runtime.ForwardResponseMessage forward_ProfileService_ListProfiles_0 = runtime.ForwardResponseMessage diff --git a/pkg/api/protobuf/go/minder/v1/minder_grpc.pb.go b/pkg/api/protobuf/go/minder/v1/minder_grpc.pb.go index 105edf5bbc..2163333c2d 100644 --- a/pkg/api/protobuf/go/minder/v1/minder_grpc.pb.go +++ b/pkg/api/protobuf/go/minder/v1/minder_grpc.pb.go @@ -1142,6 +1142,7 @@ var UserService_ServiceDesc = grpc.ServiceDesc{ const ( ProfileService_CreateProfile_FullMethodName = "/minder.v1.ProfileService/CreateProfile" + ProfileService_UpdateProfile_FullMethodName = "/minder.v1.ProfileService/UpdateProfile" ProfileService_DeleteProfile_FullMethodName = "/minder.v1.ProfileService/DeleteProfile" ProfileService_ListProfiles_FullMethodName = "/minder.v1.ProfileService/ListProfiles" ProfileService_GetProfileById_FullMethodName = "/minder.v1.ProfileService/GetProfileById" @@ -1160,6 +1161,7 @@ const ( // 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 ProfileServiceClient interface { CreateProfile(ctx context.Context, in *CreateProfileRequest, opts ...grpc.CallOption) (*CreateProfileResponse, error) + UpdateProfile(ctx context.Context, in *UpdateProfileRequest, opts ...grpc.CallOption) (*UpdateProfileResponse, error) DeleteProfile(ctx context.Context, in *DeleteProfileRequest, opts ...grpc.CallOption) (*DeleteProfileResponse, error) ListProfiles(ctx context.Context, in *ListProfilesRequest, opts ...grpc.CallOption) (*ListProfilesResponse, error) GetProfileById(ctx context.Context, in *GetProfileByIdRequest, opts ...grpc.CallOption) (*GetProfileByIdResponse, error) @@ -1190,6 +1192,15 @@ func (c *profileServiceClient) CreateProfile(ctx context.Context, in *CreateProf return out, nil } +func (c *profileServiceClient) UpdateProfile(ctx context.Context, in *UpdateProfileRequest, opts ...grpc.CallOption) (*UpdateProfileResponse, error) { + out := new(UpdateProfileResponse) + err := c.cc.Invoke(ctx, ProfileService_UpdateProfile_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *profileServiceClient) DeleteProfile(ctx context.Context, in *DeleteProfileRequest, opts ...grpc.CallOption) (*DeleteProfileResponse, error) { out := new(DeleteProfileResponse) err := c.cc.Invoke(ctx, ProfileService_DeleteProfile_FullMethodName, in, out, opts...) @@ -1294,6 +1305,7 @@ func (c *profileServiceClient) DeleteRuleType(ctx context.Context, in *DeleteRul // for forward compatibility type ProfileServiceServer interface { CreateProfile(context.Context, *CreateProfileRequest) (*CreateProfileResponse, error) + UpdateProfile(context.Context, *UpdateProfileRequest) (*UpdateProfileResponse, error) DeleteProfile(context.Context, *DeleteProfileRequest) (*DeleteProfileResponse, error) ListProfiles(context.Context, *ListProfilesRequest) (*ListProfilesResponse, error) GetProfileById(context.Context, *GetProfileByIdRequest) (*GetProfileByIdResponse, error) @@ -1315,6 +1327,9 @@ type UnimplementedProfileServiceServer struct { func (UnimplementedProfileServiceServer) CreateProfile(context.Context, *CreateProfileRequest) (*CreateProfileResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateProfile not implemented") } +func (UnimplementedProfileServiceServer) UpdateProfile(context.Context, *UpdateProfileRequest) (*UpdateProfileResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateProfile not implemented") +} func (UnimplementedProfileServiceServer) DeleteProfile(context.Context, *DeleteProfileRequest) (*DeleteProfileResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteProfile not implemented") } @@ -1379,6 +1394,24 @@ func _ProfileService_CreateProfile_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _ProfileService_UpdateProfile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UpdateProfileRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProfileServiceServer).UpdateProfile(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ProfileService_UpdateProfile_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProfileServiceServer).UpdateProfile(ctx, req.(*UpdateProfileRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _ProfileService_DeleteProfile_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DeleteProfileRequest) if err := dec(in); err != nil { @@ -1588,6 +1621,10 @@ var ProfileService_ServiceDesc = grpc.ServiceDesc{ MethodName: "CreateProfile", Handler: _ProfileService_CreateProfile_Handler, }, + { + MethodName: "UpdateProfile", + Handler: _ProfileService_UpdateProfile_Handler, + }, { MethodName: "DeleteProfile", Handler: _ProfileService_DeleteProfile_Handler, diff --git a/proto/minder/v1/minder.proto b/proto/minder/v1/minder.proto index dd2078df3b..cc2c399bac 100644 --- a/proto/minder/v1/minder.proto +++ b/proto/minder/v1/minder.proto @@ -398,6 +398,18 @@ service ProfileService { }; } + rpc UpdateProfile (UpdateProfileRequest) returns (UpdateProfileResponse) { + option (google.api.http) = { + put: "/api/v1/profile" + body: "*" + }; + + option (rpc_options) = { + auth_scope: OBJECT_OWNER_PROJECT + owner_only: true + }; + } + rpc DeleteProfile (DeleteProfileRequest) returns (DeleteProfileResponse) { option (google.api.http) = { delete: "/api/v1/profile/{id}" @@ -833,11 +845,19 @@ message GetUserResponse { message CreateProfileRequest { Profile profile = 1; } - + message CreateProfileResponse { Profile profile = 1; } +message UpdateProfileRequest { + Profile profile = 1; +} + +message UpdateProfileResponse { + Profile profile = 1; +} + message DeleteProfileRequest { // context is the context in which the rule type is evaluated. Context context = 1;