From ccbf3a2711d900766acc9637581ac2770d0d4aab Mon Sep 17 00:00:00 2001 From: Eleftheria Stein-Kousathana Date: Wed, 3 Apr 2024 13:55:02 +0200 Subject: [PATCH] Add delete provider command Fix #2897 --- cmd/cli/app/provider/provider.go | 1 + cmd/cli/app/provider/provider_delete.go | 81 + database/mock/store.go | 2 +- database/query/providers.sql | 3 +- docs/docs/ref/cli/minder_provider.md | 1 + docs/docs/ref/cli/minder_provider_delete.md | 40 + docs/docs/ref/proto.md | 29 + internal/controlplane/handlers_providers.go | 99 + .../controlplane/handlers_providers_test.go | 204 ++ internal/db/providers.sql.go | 12 +- internal/db/providers_test.go | 2 +- internal/db/querier.go | 2 +- internal/providers/github/common.go | 8 + internal/providers/github/mock/common.go | 14 + internal/providers/mock/service.go | 14 + internal/providers/service.go | 47 +- internal/providers/service_test.go | 65 + internal/repositories/github/mock/service.go | 14 + internal/repositories/github/service.go | 34 + internal/repositories/github/service_test.go | 82 + pkg/api/openapi/minder/v1/minder.swagger.json | 62 +- pkg/api/protobuf/go/minder/v1/minder.pb.go | 2225 +++++++++-------- pkg/api/protobuf/go/minder/v1/minder.pb.gw.go | 121 + .../protobuf/go/minder/v1/minder_grpc.pb.go | 37 + proto/minder/v1/minder.proto | 25 + 25 files changed, 2184 insertions(+), 1040 deletions(-) create mode 100644 cmd/cli/app/provider/provider_delete.go create mode 100644 docs/docs/ref/cli/minder_provider_delete.md create mode 100644 internal/controlplane/handlers_providers_test.go diff --git a/cmd/cli/app/provider/provider.go b/cmd/cli/app/provider/provider.go index 260f2cf7f0..5586edac6e 100644 --- a/cmd/cli/app/provider/provider.go +++ b/cmd/cli/app/provider/provider.go @@ -37,6 +37,7 @@ var ProviderCmd = &cobra.Command{ func init() { app.RootCmd.AddCommand(ProviderCmd) // Flags for all subcommands + // TODO: remove the provider flag from here and add it only to the subcommands that need it ProviderCmd.PersistentFlags().StringP("provider", "p", ghclient.Github, "Name of the provider, i.e. github") ProviderCmd.PersistentFlags().StringP("project", "j", "", "ID of the project") } diff --git a/cmd/cli/app/provider/provider_delete.go b/cmd/cli/app/provider/provider_delete.go new file mode 100644 index 0000000000..d9ddc8a468 --- /dev/null +++ b/cmd/cli/app/provider/provider_delete.go @@ -0,0 +1,81 @@ +// +// Copyright 2024 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 provider + +import ( + "context" + + "github.com/spf13/cobra" + "github.com/spf13/viper" + "google.golang.org/grpc" + + "github.com/stacklok/minder/internal/util/cli" + minderv1 "github.com/stacklok/minder/pkg/api/protobuf/go/minder/v1" +) + +var deleteCmd = &cobra.Command{ + Use: "delete", + Short: "Delete a given provider available in a specific project", + Long: `The minder provider delete command deletes a given provider available in a specific project.`, + RunE: cli.GRPCClientWrapRunE(DeleteProviderCommand), +} + +func init() { + ProviderCmd.AddCommand(deleteCmd) + + deleteCmd.Flags().StringP("name", "n", "", "Name of the provider to delete") + deleteCmd.Flags().StringP("id", "i", "", "ID of the provider to delete") + // We allow deleting by name or ID but not both. One of them must be specified. + deleteCmd.MarkFlagsMutuallyExclusive("name", "id") + deleteCmd.MarkFlagsOneRequired("name", "id") +} + +// DeleteProviderCommand deletes the provider in a specific project +func DeleteProviderCommand(ctx context.Context, cmd *cobra.Command, conn *grpc.ClientConn) error { + client := minderv1.NewProvidersServiceClient(conn) + + project := viper.GetString("project") + name := viper.GetString("name") + id := viper.GetString("id") + + // No longer print usage on returned error, since we've parsed our inputs + // See https://github.com/spf13/cobra/issues/340#issuecomment-374617413 + cmd.SilenceUsage = true + + if id != "" { + resp, err := client.DeleteProviderByID(ctx, &minderv1.DeleteProviderByIDRequest{ + Context: &minderv1.Context{ + Project: &project, + }, + Id: id, + }) + if err != nil { + return cli.MessageAndError("Error deleting provider by id", err) + } + cmd.Println("Successfully deleted provider with id:", resp.Id) + } else { + // delete provider by name + resp, err := client.DeleteProvider(ctx, &minderv1.DeleteProviderRequest{ + Context: &minderv1.Context{Provider: &name, Project: &project}, + }) + if err != nil { + return cli.MessageAndError("Error deleting provider by name", err) + } + cmd.Println("Successfully deleted provider with name:", resp.Name) + } + + return nil +} diff --git a/database/mock/store.go b/database/mock/store.go index 14f83ffca4..5bcea097fe 100644 --- a/database/mock/store.go +++ b/database/mock/store.go @@ -412,7 +412,7 @@ func (mr *MockStoreMockRecorder) DeleteProject(arg0, arg1 any) *gomock.Call { } // DeleteProvider mocks base method. -func (m *MockStore) DeleteProvider(arg0 context.Context, arg1 uuid.UUID) error { +func (m *MockStore) DeleteProvider(arg0 context.Context, arg1 db.DeleteProviderParams) error { m.ctrl.T.Helper() ret := m.ctrl.Call(m, "DeleteProvider", arg0, arg1) ret0, _ := ret[0].(error) diff --git a/database/query/providers.sql b/database/query/providers.sql index cf712ee2d3..a7fe50239c 100644 --- a/database/query/providers.sql +++ b/database/query/providers.sql @@ -58,4 +58,5 @@ UPDATE providers WHERE id = sqlc.arg('id') AND project_id = sqlc.arg('project_id'); -- name: DeleteProvider :exec -DELETE FROM providers WHERE id = $1; \ No newline at end of file +DELETE FROM providers + WHERE id = $1 AND project_id = sqlc.arg('project_id'); \ No newline at end of file diff --git a/docs/docs/ref/cli/minder_provider.md b/docs/docs/ref/cli/minder_provider.md index 693674c858..38b68e33ed 100644 --- a/docs/docs/ref/cli/minder_provider.md +++ b/docs/docs/ref/cli/minder_provider.md @@ -35,6 +35,7 @@ minder provider [flags] ### SEE ALSO * [minder](minder.md) - Minder controls the hosted minder service +* [minder provider delete](minder_provider_delete.md) - Delete a given provider available in a specific project * [minder provider enroll](minder_provider_enroll.md) - Enroll a provider within the minder control plane * [minder provider get](minder_provider_get.md) - Get a given provider available in a specific project * [minder provider list](minder_provider_list.md) - List the providers available in a specific project diff --git a/docs/docs/ref/cli/minder_provider_delete.md b/docs/docs/ref/cli/minder_provider_delete.md new file mode 100644 index 0000000000..f7db9a9ddf --- /dev/null +++ b/docs/docs/ref/cli/minder_provider_delete.md @@ -0,0 +1,40 @@ +--- +title: minder provider delete +--- +## minder provider delete + +Delete a given provider available in a specific project + +### Synopsis + +The minder provider delete command deletes a given provider available in a specific project. + +``` +minder provider delete [flags] +``` + +### Options + +``` + -h, --help help for delete + -i, --id string ID of the provider to delete + -n, --name string Name of the provider to delete +``` + +### Options inherited from parent commands + +``` + --config string Config file (default is $PWD/config.yaml) + --grpc-host string Server host (default "api.stacklok.com") + --grpc-insecure Allow establishing insecure connections + --grpc-port int Server port (default 443) + --identity-client string Identity server client ID (default "minder-cli") + --identity-url string Identity server issuer URL (default "https://auth.stacklok.com") + -j, --project string ID of the project + -p, --provider string Name of the provider, i.e. github (default "github") +``` + +### SEE ALSO + +* [minder provider](minder_provider.md) - Manage providers within a minder control plane + diff --git a/docs/docs/ref/proto.md b/docs/docs/ref/proto.md index 3584ae967a..909ac0148d 100644 --- a/docs/docs/ref/proto.md +++ b/docs/docs/ref/proto.md @@ -122,6 +122,7 @@ replies with OK | ListProviders | [ListProvidersRequest](#minder-v1-ListProvidersRequest) | [ListProvidersResponse](#minder-v1-ListProvidersResponse) | | | CreateProvider | [CreateProviderRequest](#minder-v1-CreateProviderRequest) | [CreateProviderResponse](#minder-v1-CreateProviderResponse) | | | DeleteProvider | [DeleteProviderRequest](#minder-v1-DeleteProviderRequest) | [DeleteProviderResponse](#minder-v1-DeleteProviderResponse) | | +| DeleteProviderByID | [DeleteProviderByIDRequest](#minder-v1-DeleteProviderByIDRequest) | [DeleteProviderByIDResponse](#minder-v1-DeleteProviderByIDResponse) | | | GetUnclaimedProviders | [GetUnclaimedProvidersRequest](#minder-v1-GetUnclaimedProvidersRequest) | [GetUnclaimedProvidersResponse](#minder-v1-GetUnclaimedProvidersResponse) | GetUnclaimedProviders returns a list of known provider configurations that this user could claim based on their identity. This is a read-only operation for use by clients which wish to present a menu of options. | | ListProviderClasses | [ListProviderClassesRequest](#minder-v1-ListProviderClassesRequest) | [ListProviderClassesResponse](#minder-v1-ListProviderClassesResponse) | | @@ -458,6 +459,29 @@ User service | project_id | [string](#string) | | project_id is the id of the project that was deleted. | + + +#### DeleteProviderByIDRequest + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| context | [Context](#minder-v1-Context) | | context is the context in which the provider is deleted. Only the project is required in this context. | +| id | [string](#string) | | id is the id of the provider to delete | + + + + +#### DeleteProviderByIDResponse + + + +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| id | [string](#string) | | id is the id of the provider that was deleted | + + #### DeleteProviderRequest @@ -475,6 +499,11 @@ User service +| Field | Type | Label | Description | +| ----- | ---- | ----- | ----------- | +| name | [string](#string) | | name is the name of the provider that was deleted | + + #### DeleteRepositoryByIdRequest diff --git a/internal/controlplane/handlers_providers.go b/internal/controlplane/handlers_providers.go index 6a28618a7e..745c7d2e61 100644 --- a/internal/controlplane/handlers_providers.go +++ b/internal/controlplane/handlers_providers.go @@ -19,6 +19,7 @@ import ( "database/sql" "errors" + "github.com/google/uuid" "github.com/rs/zerolog" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" @@ -31,6 +32,7 @@ import ( "github.com/stacklok/minder/internal/util" cursorutil "github.com/stacklok/minder/internal/util/cursor" minderv1 "github.com/stacklok/minder/pkg/api/protobuf/go/minder/v1" + provinfv1 "github.com/stacklok/minder/pkg/providers/v1" ) // GetProvider gets a given provider available in a specific project. @@ -156,6 +158,103 @@ func (_ *Server) ListProviderClasses( }, nil } +// DeleteProvider deletes a provider by name from a specific project. +func (s *Server) DeleteProvider( + ctx context.Context, + _ *minderv1.DeleteProviderRequest, +) (*minderv1.DeleteProviderResponse, error) { + entityCtx := engine.EntityFromContext(ctx) + projectID := entityCtx.Project.ID + providerName := entityCtx.Provider.Name + + if providerName == "" { + return nil, status.Errorf(codes.InvalidArgument, "provider name is required") + } + + provider, err := s.providerStore.GetByNameInSpecificProject(ctx, projectID, providerName) + if err != nil { + if errors.Is(err, sql.ErrNoRows) { + return nil, util.UserVisibleError(codes.NotFound, "provider not found") + } + return nil, status.Errorf(codes.Internal, "error getting provider: %v", err) + } + + err = s.deleteProvider(ctx, provider, projectID) + if err != nil { + return nil, status.Errorf(codes.Internal, "error deleting provider: %v", err) + } + + return &minderv1.DeleteProviderResponse{ + Name: providerName, + }, nil +} + +// DeleteProviderByID deletes a provider by ID from a specific project. +func (s *Server) DeleteProviderByID( + ctx context.Context, + in *minderv1.DeleteProviderByIDRequest, +) (*minderv1.DeleteProviderByIDResponse, error) { + entityCtx := engine.EntityFromContext(ctx) + projectID := entityCtx.Project.ID + + parsedProviderID, err := uuid.Parse(in.Id) + if err != nil { + return nil, util.UserVisibleError(codes.InvalidArgument, "invalid provider ID") + } + + provider, err := s.providerStore.GetByID(ctx, parsedProviderID) + if err != nil { + if errors.Is(err, sql.ErrNoRows) { + return nil, util.UserVisibleError(codes.NotFound, "provider not found") + } + return nil, status.Errorf(codes.Internal, "error getting provider: %v", err) + } + + err = s.deleteProvider(ctx, provider, projectID) + if err != nil { + return nil, status.Errorf(codes.Internal, "error deleting provider: %v", err) + } + + return &minderv1.DeleteProviderByIDResponse{ + Id: in.Id, + }, nil +} + +func (s *Server) deleteProvider(ctx context.Context, provider *db.Provider, projectID uuid.UUID) error { + pbOpts := []providers.ProviderBuilderOption{ + providers.WithProviderMetrics(s.provMt), + providers.WithRestClientCache(s.restClientCache), + } + + p, err := providers.GetProviderBuilder(ctx, *provider, s.store, s.cryptoEngine, &s.cfg.Provider, pbOpts...) + if err != nil { + return status.Errorf(codes.Internal, "cannot get provider builder: %v", err) + } + + // If the provider is a GitHub provider with a valid credential, delete all repositories associated with the provider + if p.Implements(db.ProviderTypeGithub) && + providers.GetCredentialStateForProvider(ctx, *provider, s.store, s.cryptoEngine, &s.cfg.Provider) == + provinfv1.CredentialStateSet { + client, err := p.GetGitHub() + if err != nil { + return status.Errorf(codes.Internal, "error creating github provider: %v", err) + } + + // Delete all repositories associated with the provider and remove the webhooks + err = s.repos.DeleteRepositoriesByProvider(ctx, client, provider.Name, projectID) + if err != nil { + return status.Errorf(codes.Internal, "error deleting repositories: %v", err) + } + } + + // Delete the provider itself + err = s.providers.DeleteProvider(ctx, provider) + if err != nil { + return status.Errorf(codes.Internal, "error deleting provider: %v", err) + } + return nil +} + func protobufProviderImplementsFromDB(ctx context.Context, p db.Provider) []minderv1.ProviderType { impls := make([]minderv1.ProviderType, 0, len(p.Implements)) for _, i := range p.Implements { diff --git a/internal/controlplane/handlers_providers_test.go b/internal/controlplane/handlers_providers_test.go new file mode 100644 index 0000000000..2acb20f238 --- /dev/null +++ b/internal/controlplane/handlers_providers_test.go @@ -0,0 +1,204 @@ +// Copyright 2024 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 controlplane + +import ( + "context" + "encoding/json" + "testing" + + "github.com/google/uuid" + "github.com/lestrrat-go/jwx/v2/jwt/openid" + "github.com/stretchr/testify/assert" + "go.uber.org/mock/gomock" + "golang.org/x/oauth2" + + mockdb "github.com/stacklok/minder/database/mock" + "github.com/stacklok/minder/internal/auth" + "github.com/stacklok/minder/internal/authz/mock" + serverconfig "github.com/stacklok/minder/internal/config/server" + mockcrypto "github.com/stacklok/minder/internal/crypto/mock" + "github.com/stacklok/minder/internal/db" + "github.com/stacklok/minder/internal/engine" + "github.com/stacklok/minder/internal/providers" + mockgh "github.com/stacklok/minder/internal/providers/github/mock" + mockprofsvc "github.com/stacklok/minder/internal/providers/mock" + "github.com/stacklok/minder/internal/providers/ratecache" + mockghrepo "github.com/stacklok/minder/internal/repositories/github/mock" + minder "github.com/stacklok/minder/pkg/api/protobuf/go/minder/v1" + provinfv1 "github.com/stacklok/minder/pkg/providers/v1" +) + +func TestDeleteProvider(t *testing.T) { + t.Parallel() + + user := openid.New() + assert.NoError(t, user.Set("sub", "testuser")) + + authzClient := &mock.SimpleClient{ + Allowed: []uuid.UUID{uuid.New()}, + } + + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + providerName := "test-provider" + projectID := uuid.New() + projectIDStr := projectID.String() + accessToken := "test-token" + + mockProvidersSvc := mockprofsvc.NewMockProviderService(ctrl) + mockProvidersSvc.EXPECT().DeleteProvider(gomock.Any(), gomock.Any()).Return(nil) + + mockCryptoEngine := mockcrypto.NewMockEngine(ctrl) + mockCryptoEngine.EXPECT(). + DecryptOAuthToken(gomock.Any()). + Return(oauth2.Token{AccessToken: accessToken}, nil).AnyTimes() + + mockStore := mockdb.NewMockStore(ctrl) + mockStore.EXPECT().GetProviderByName(gomock.Any(), gomock.Any()).Return(db.Provider{ + Name: providerName, + ProjectID: projectID, + Implements: []db.ProviderType{ + db.ProviderTypeGithub, + }, + Version: provinfv1.V1, + Definition: json.RawMessage(`{"github-app": {}}`), + }, nil) + mockStore.EXPECT(). + GetAccessTokenByProjectID(gomock.Any(), gomock.Any()). + Return(db.ProviderAccessToken{ + EncryptedToken: "encryptedToken", + }, nil).AnyTimes() + + mockRepoSvc := mockghrepo.NewMockRepositoryService(ctrl) + mockRepoSvc.EXPECT().DeleteRepositoriesByProvider(gomock.Any(), gomock.Any(), providerName, projectID).Return(nil) + + cancelable, cancel := context.WithCancel(context.Background()) + clientCache := ratecache.NewRestClientCache(cancelable) + defer cancel() + + gh := mockgh.NewMockGitHub(ctrl) + + clientCache.Set("", accessToken, db.ProviderTypeGithub, gh) + + server := Server{ + cryptoEngine: mockCryptoEngine, + store: mockStore, + providers: mockProvidersSvc, + repos: mockRepoSvc, + authzClient: authzClient, + providerStore: providers.NewProviderStore(mockStore), + restClientCache: clientCache, + cfg: &serverconfig.Config{}, + } + + ctx := context.Background() + ctx = auth.WithAuthTokenContext(ctx, user) + ctx = engine.WithEntityContext(ctx, &engine.EntityContext{ + Project: engine.Project{ID: projectID}, + Provider: engine.Provider{Name: providerName}, + }) + + resp, err := server.DeleteProvider(ctx, &minder.DeleteProviderRequest{ + Context: &minder.Context{ + Project: &projectIDStr, + Provider: &providerName, + }, + }) + assert.NoError(t, err) + assert.Equal(t, providerName, resp.Name) +} + +func TestDeleteProviderByID(t *testing.T) { + t.Parallel() + + user := openid.New() + assert.NoError(t, user.Set("sub", "testuser")) + + authzClient := &mock.SimpleClient{ + Allowed: []uuid.UUID{uuid.New()}, + } + + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + providerName := "test-provider" + providerID := uuid.New() + projectID := uuid.New() + projectIDStr := projectID.String() + accessToken := "test-token" + + mockProvidersSvc := mockprofsvc.NewMockProviderService(ctrl) + mockProvidersSvc.EXPECT().DeleteProvider(gomock.Any(), gomock.Any()).Return(nil) + + mockCryptoEngine := mockcrypto.NewMockEngine(ctrl) + mockCryptoEngine.EXPECT(). + DecryptOAuthToken(gomock.Any()). + Return(oauth2.Token{AccessToken: accessToken}, nil).AnyTimes() + + mockStore := mockdb.NewMockStore(ctrl) + mockStore.EXPECT().GetProviderByID(gomock.Any(), providerID).Return(db.Provider{ + Name: providerName, + ProjectID: projectID, + Implements: []db.ProviderType{ + db.ProviderTypeGithub, + }, + Version: provinfv1.V1, + Definition: json.RawMessage(`{"github-app": {}}`), + }, nil) + mockStore.EXPECT(). + GetAccessTokenByProjectID(gomock.Any(), gomock.Any()). + Return(db.ProviderAccessToken{ + EncryptedToken: "encryptedToken", + }, nil).AnyTimes() + + mockRepoSvc := mockghrepo.NewMockRepositoryService(ctrl) + mockRepoSvc.EXPECT().DeleteRepositoriesByProvider(gomock.Any(), gomock.Any(), providerName, projectID).Return(nil) + + cancelable, cancel := context.WithCancel(context.Background()) + clientCache := ratecache.NewRestClientCache(cancelable) + defer cancel() + + gh := mockgh.NewMockGitHub(ctrl) + + clientCache.Set("", accessToken, db.ProviderTypeGithub, gh) + + server := Server{ + cryptoEngine: mockCryptoEngine, + store: mockStore, + providers: mockProvidersSvc, + repos: mockRepoSvc, + authzClient: authzClient, + providerStore: providers.NewProviderStore(mockStore), + restClientCache: clientCache, + cfg: &serverconfig.Config{}, + } + + ctx := context.Background() + ctx = auth.WithAuthTokenContext(ctx, user) + ctx = engine.WithEntityContext(ctx, &engine.EntityContext{ + Project: engine.Project{ID: projectID}, + }) + + resp, err := server.DeleteProviderByID(ctx, &minder.DeleteProviderByIDRequest{ + Context: &minder.Context{ + Project: &projectIDStr, + }, + Id: providerID.String(), + }) + assert.NoError(t, err) + assert.Equal(t, providerID.String(), resp.Id) +} diff --git a/internal/db/providers.sql.go b/internal/db/providers.sql.go index 61f63667e8..7cf8a15bd5 100644 --- a/internal/db/providers.sql.go +++ b/internal/db/providers.sql.go @@ -60,11 +60,17 @@ func (q *Queries) CreateProvider(ctx context.Context, arg CreateProviderParams) } const deleteProvider = `-- name: DeleteProvider :exec -DELETE FROM providers WHERE id = $1 +DELETE FROM providers + WHERE id = $1 AND project_id = $2 ` -func (q *Queries) DeleteProvider(ctx context.Context, id uuid.UUID) error { - _, err := q.db.ExecContext(ctx, deleteProvider, id) +type DeleteProviderParams struct { + ID uuid.UUID `json:"id"` + ProjectID uuid.UUID `json:"project_id"` +} + +func (q *Queries) DeleteProvider(ctx context.Context, arg DeleteProviderParams) error { + _, err := q.db.ExecContext(ctx, deleteProvider, arg.ID, arg.ProjectID) return err } diff --git a/internal/db/providers_test.go b/internal/db/providers_test.go index 9247c36f4d..9dc504c891 100644 --- a/internal/db/providers_test.go +++ b/internal/db/providers_test.go @@ -58,7 +58,7 @@ func TestCreateAndDeleteProvider(t *testing.T) { require.NoError(t, err, "Error getting provider") require.NotEmpty(t, getProv, "Empty provider returned") - err = testQueries.DeleteProvider(context.Background(), prov.ID) + err = testQueries.DeleteProvider(context.Background(), DeleteProviderParams{ID: prov.ID, ProjectID: proj.ID}) require.NoError(t, err, "Error deleting provider") _, err = testQueries.GetProviderByID(context.Background(), prov.ID) diff --git a/internal/db/querier.go b/internal/db/querier.go index b27d3abc13..747d00ba0d 100644 --- a/internal/db/querier.go +++ b/internal/db/querier.go @@ -35,7 +35,7 @@ type Querier interface { DeleteProfile(ctx context.Context, arg DeleteProfileParams) error DeleteProfileForEntity(ctx context.Context, arg DeleteProfileForEntityParams) error DeleteProject(ctx context.Context, id uuid.UUID) ([]DeleteProjectRow, error) - DeleteProvider(ctx context.Context, id uuid.UUID) error + DeleteProvider(ctx context.Context, arg DeleteProviderParams) error DeletePullRequest(ctx context.Context, arg DeletePullRequestParams) error DeleteRepository(ctx context.Context, id uuid.UUID) error DeleteRuleInstantiation(ctx context.Context, arg DeleteRuleInstantiationParams) error diff --git a/internal/providers/github/common.go b/internal/providers/github/common.go index d69fabc0a8..9190e14024 100644 --- a/internal/providers/github/common.go +++ b/internal/providers/github/common.go @@ -73,6 +73,7 @@ type ClientService interface { GetInstallation(ctx context.Context, id int64, jwt string) (*github.Installation, *github.Response, error) GetUserIdFromToken(ctx context.Context, token *oauth2.Token) (*int64, error) ListUserInstallations(ctx context.Context, token *oauth2.Token) ([]*github.Installation, error) + DeleteInstallation(ctx context.Context, id int64, jwt string) error } var _ ClientService = (*ClientServiceImplementation)(nil) @@ -112,6 +113,13 @@ func (ClientServiceImplementation) ListUserInstallations( return installations, err } +// DeleteInstallation is a wrapper for the GitHub API to delete an installation +func (ClientServiceImplementation) DeleteInstallation(ctx context.Context, id int64, jwt string) error { + ghClient := github.NewClient(nil).WithAuthToken(jwt) + _, err := ghClient.Apps.DeleteInstallation(ctx, id) + return err +} + // Delegate is the interface that contains operations that differ between different GitHub actors (user vs app) type Delegate interface { GetCredential() provifv1.GitHubCredential diff --git a/internal/providers/github/mock/common.go b/internal/providers/github/mock/common.go index 3c8f7f8f3b..82f3d2df1b 100644 --- a/internal/providers/github/mock/common.go +++ b/internal/providers/github/mock/common.go @@ -41,6 +41,20 @@ func (m *MockClientService) EXPECT() *MockClientServiceMockRecorder { return m.recorder } +// DeleteInstallation mocks base method. +func (m *MockClientService) DeleteInstallation(arg0 context.Context, arg1 int64, arg2 string) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteInstallation", arg0, arg1, arg2) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteInstallation indicates an expected call of DeleteInstallation. +func (mr *MockClientServiceMockRecorder) DeleteInstallation(arg0, arg1, arg2 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteInstallation", reflect.TypeOf((*MockClientService)(nil).DeleteInstallation), arg0, arg1, arg2) +} + // GetInstallation mocks base method. func (m *MockClientService) GetInstallation(arg0 context.Context, arg1 int64, arg2 string) (*github.Installation, *github.Response, error) { m.ctrl.T.Helper() diff --git a/internal/providers/mock/service.go b/internal/providers/mock/service.go index 128ecccc7c..b3283f75c4 100644 --- a/internal/providers/mock/service.go +++ b/internal/providers/mock/service.go @@ -101,6 +101,20 @@ func (mr *MockProviderServiceMockRecorder) DeleteGitHubAppInstallation(arg0, arg return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteGitHubAppInstallation", reflect.TypeOf((*MockProviderService)(nil).DeleteGitHubAppInstallation), arg0, arg1) } +// DeleteProvider mocks base method. +func (m *MockProviderService) DeleteProvider(arg0 context.Context, arg1 *db.Provider) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteProvider", arg0, arg1) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteProvider indicates an expected call of DeleteProvider. +func (mr *MockProviderServiceMockRecorder) DeleteProvider(arg0, arg1 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteProvider", reflect.TypeOf((*MockProviderService)(nil).DeleteProvider), arg0, arg1) +} + // ValidateGitHubAppWebhookPayload mocks base method. func (m *MockProviderService) ValidateGitHubAppWebhookPayload(arg0 *http.Request) ([]byte, error) { m.ctrl.T.Helper() diff --git a/internal/providers/service.go b/internal/providers/service.go index a935ad50bb..4b93bbba2c 100644 --- a/internal/providers/service.go +++ b/internal/providers/service.go @@ -55,6 +55,7 @@ type ProviderService interface { ValidateGitHubInstallationId(ctx context.Context, token *oauth2.Token, installationID int64) error DeleteGitHubAppInstallation(ctx context.Context, installationID int64) error ValidateGitHubAppWebhookPayload(r *http.Request) (payload []byte, err error) + DeleteProvider(ctx context.Context, provider *db.Provider) error } // ErrInvalidTokenIdentity is returned when the user identity in the token does not match the expected user identity @@ -390,13 +391,57 @@ func (p *providerService) DeleteGitHubAppInstallation(ctx context.Context, insta Int64("installationID", installationID). Str("providerID", installation.ProviderID.UUID.String()). Msg("Deleting claimed installation") - return p.store.DeleteProvider(ctx, installation.ProviderID.UUID) + return p.store.DeleteProvider(ctx, db.DeleteProviderParams{ + ID: installation.ProviderID.UUID, + ProjectID: installation.ProjectID.UUID, + }) } func (p *providerService) ValidateGitHubAppWebhookPayload(r *http.Request) (payload []byte, err error) { return github.ValidatePayload(r, []byte(p.config.GitHubApp.WebhookSecret)) } +// DeleteProvider deletes a provider and removes the credentials from the downstream service, if possible +func (p *providerService) DeleteProvider(ctx context.Context, provider *db.Provider) error { + // Uninstall the GitHub App if it's a GitHub App provider + err := p.deleteInstallation(ctx, provider.ID) + if err != nil { + return fmt.Errorf("error deleting GitHub App installation: %w", err) + } + + return p.store.DeleteProvider(ctx, db.DeleteProviderParams{ID: provider.ID, ProjectID: provider.ProjectID}) +} + +// deleteInstallation deletes the installation from GitHub, if the provider has an associated installation +func (p *providerService) deleteInstallation(ctx context.Context, providerID uuid.UUID) error { + installation, err := p.store.GetInstallationIDByProviderID(ctx, uuid.NullUUID{ + UUID: providerID, + Valid: true, + }) + + // If there are no associated installations, return early + if errors.Is(err, sql.ErrNoRows) { + return nil + } else if err != nil { + return fmt.Errorf("error getting installation: %w", err) + } + + privateKey, err := p.config.GitHubApp.GetPrivateKey() + if err != nil { + return fmt.Errorf("error getting GitHub App private key: %w", err) + } + jwt, err := credentials.CreateGitHubAppJWT(p.config.GitHubApp.AppID, privateKey) + if err != nil { + return fmt.Errorf("error creating GitHub App JWT: %w", err) + } + + err = p.ghClientService.DeleteInstallation(ctx, installation.AppInstallationID, jwt) + if err != nil { + return fmt.Errorf("error deleting installation: %w", err) + } + return nil +} + func (p *providerService) verifyProviderTokenIdentity( ctx context.Context, stateData db.GetProjectIDBySessionStateRow, provider db.Provider, token string) error { pbOpts := []ProviderBuilderOption{ diff --git a/internal/providers/service_test.go b/internal/providers/service_test.go index 43a46f68af..fa49b24826 100644 --- a/internal/providers/service_test.go +++ b/internal/providers/service_test.go @@ -30,6 +30,7 @@ import ( "os" "strconv" "testing" + "time" "github.com/google/go-github/v60/github" "github.com/google/uuid" @@ -47,6 +48,7 @@ import ( ghclient "github.com/stacklok/minder/internal/providers/github/oauth" mockratecache "github.com/stacklok/minder/internal/providers/ratecache/mock" "github.com/stacklok/minder/internal/providers/telemetry" + "github.com/stacklok/minder/internal/util/rand" ) type testMocks struct { @@ -455,3 +457,66 @@ func TestProviderService_ValidateGitHubAppWebhookPayload(t *testing.T) { _, err = provSvc.ValidateGitHubAppWebhookPayload(req) require.Error(t, err) } + +func TestProviderService_DeleteProvider(t *testing.T) { + t.Parallel() + + installationID := int64(123) + + seed := time.Now().UnixNano() + + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + pvtKeyFile := testCreatePrivateKeyFile(t) + defer os.Remove(pvtKeyFile.Name()) + cfg := &server.ProviderConfig{ + GitHubApp: &server.GitHubAppConfig{ + PrivateKey: pvtKeyFile.Name(), + }, + } + + provSvc, mocks := testNewProviderService(t, ctrl, cfg, nil) + + dbproj, err := mocks.fakeStore.CreateProject(context.Background(), + db.CreateProjectParams{ + Name: "test", + Metadata: []byte(`{}`), + }) + require.NoError(t, err) + + ghAppProvider, err := mocks.fakeStore.CreateProvider(context.Background(), + db.CreateProviderParams{ + Name: rand.RandomName(seed), + ProjectID: dbproj.ID, + Class: db.NullProviderClass{ProviderClass: db.ProviderClassGithubApp, Valid: true}, + Implements: []db.ProviderType{db.ProviderTypeGithub, db.ProviderTypeGit}, + AuthFlows: []db.AuthorizationFlow{db.AuthorizationFlowUserInput}, + Definition: json.RawMessage("{}"), + }) + require.NoError(t, err) + + _, err = mocks.fakeStore.UpsertInstallationID(context.Background(), + db.UpsertInstallationIDParams{ + ProviderID: uuid.NullUUID{ + UUID: ghAppProvider.ID, + Valid: true, + }, + AppInstallationID: installationID, + }, + ) + require.NoError(t, err) + + mocks.svcMock.EXPECT(). + DeleteInstallation(gomock.Any(), installationID, gomock.Any()). + Return(nil) + + err = provSvc.DeleteProvider( + context.Background(), + &ghAppProvider) + require.NoError(t, err) + + // Ensure the provider is no longer in the database + _, err = mocks.fakeStore.GetProviderByID(context.Background(), ghAppProvider.ID) + require.ErrorIs(t, err, sql.ErrNoRows) +} diff --git a/internal/repositories/github/mock/service.go b/internal/repositories/github/mock/service.go index da45274a98..c14ceb763d 100644 --- a/internal/repositories/github/mock/service.go +++ b/internal/repositories/github/mock/service.go @@ -58,6 +58,20 @@ func (mr *MockRepositoryServiceMockRecorder) CreateRepository(arg0, arg1, arg2, return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateRepository", reflect.TypeOf((*MockRepositoryService)(nil).CreateRepository), arg0, arg1, arg2, arg3, arg4, arg5) } +// DeleteRepositoriesByProvider mocks base method. +func (m *MockRepositoryService) DeleteRepositoriesByProvider(arg0 context.Context, arg1 clients.GitHubRepoClient, arg2 string, arg3 uuid.UUID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "DeleteRepositoriesByProvider", arg0, arg1, arg2, arg3) + ret0, _ := ret[0].(error) + return ret0 +} + +// DeleteRepositoriesByProvider indicates an expected call of DeleteRepositoriesByProvider. +func (mr *MockRepositoryServiceMockRecorder) DeleteRepositoriesByProvider(arg0, arg1, arg2, arg3 any) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteRepositoriesByProvider", reflect.TypeOf((*MockRepositoryService)(nil).DeleteRepositoriesByProvider), arg0, arg1, arg2, arg3) +} + // DeleteRepository mocks base method. func (m *MockRepositoryService) DeleteRepository(arg0 context.Context, arg1 clients.GitHubRepoClient, arg2 *db.Repository) error { m.ctrl.T.Helper() diff --git a/internal/repositories/github/service.go b/internal/repositories/github/service.go index dab648ac55..0bc7a1d630 100644 --- a/internal/repositories/github/service.go +++ b/internal/repositories/github/service.go @@ -65,6 +65,13 @@ type RepositoryService interface { projectID uuid.UUID, providerName string, ) (db.Repository, error) + // DeleteRepositoriesByProvider cleans up the state (e.g. webhooks) for repositories associated with this provider + DeleteRepositoriesByProvider( + ctx context.Context, + client ghclient.GitHubRepoClient, + providerName string, + projectID uuid.UUID, + ) error } var ( @@ -211,6 +218,33 @@ func (r *repositoryService) DeleteRepository(ctx context.Context, client ghclien return nil } +func (r *repositoryService) DeleteRepositoriesByProvider( + ctx context.Context, + client ghclient.GitHubRepoClient, + providerName string, + projectID uuid.UUID, +) error { + params := db.ListRegisteredRepositoriesByProjectIDAndProviderParams{ + ProjectID: projectID, + Provider: sql.NullString{ + String: providerName, + Valid: true, + }, + } + repos, err := r.store.ListRegisteredRepositoriesByProjectIDAndProvider(ctx, params) + if err != nil { + return fmt.Errorf("error listing repositories for provider: %w", err) + } + + for i := range repos { + err := r.DeleteRepository(ctx, client, &repos[i]) // use index to avoid memory aliasing + if err != nil { + return fmt.Errorf("error deleting repository: %w", err) + } + } + return nil +} + func (r *repositoryService) pushReconcilerEvent(pbRepo *pb.Repository, projectID uuid.UUID, providerName string) error { log.Printf("publishing register event for repository: %s/%s", pbRepo.Owner, pbRepo.Name) diff --git a/internal/repositories/github/service_test.go b/internal/repositories/github/service_test.go index 6bbd6ce613..24fed19961 100644 --- a/internal/repositories/github/service_test.go +++ b/internal/repositories/github/service_test.go @@ -182,6 +182,58 @@ func TestRepositoryService_DeleteRepository(t *testing.T) { } } +func TestRepositoryService_DeleteRepositoriesByProvider(t *testing.T) { + t.Parallel() + + scenarios := []struct { + Name string + DBSetup dbMockBuilder + WebhookSetup whMockBuilder + DeleteType DeleteCallType + ShouldSucceed bool + }{ + { + Name: "Delete fails when a webhook cannot be deleted", + DBSetup: newDBMock(withSuccessfulListRepos), + WebhookSetup: newWebhookMock(withFailedWebhookDelete), + }, + { + Name: "Delete by ID fails when a repo cannot be deleted from DB", + DBSetup: newDBMock(withSuccessfulListRepos, withFailedDelete), + WebhookSetup: newWebhookMock(withSuccessfulWebhookDelete), + }, + { + Name: "Delete succeeds", + DBSetup: newDBMock(withSuccessfulListRepos, withTwoSuccessfulDeletes), + WebhookSetup: newWebhookMock(withTwoSuccessfulWebhookDeletes), + ShouldSucceed: true, + }, + } + + for i := range scenarios { + scenario := scenarios[i] + t.Run(scenario.Name, func(t *testing.T) { + t.Parallel() + ctrl := gomock.NewController(t) + defer ctrl.Finish() + ctx := context.Background() + + // For the purposes of this test, we do not need to attach any + // mock behaviour to the client. We can leave it as a nil pointer. + var ghClient clients.GitHubRepoClient + + svc := createService(ctrl, scenario.WebhookSetup, scenario.DBSetup, false) + err := svc.DeleteRepositoriesByProvider(ctx, ghClient, providerName, projectID) + + if scenario.ShouldSucceed { + require.NoError(t, err) + } else { + require.Error(t, err) + } + }) + } +} + func TestRepositoryService_GetRepositoryById(t *testing.T) { t.Parallel() @@ -385,6 +437,13 @@ func withSuccessfulWebhookDelete(mock whMock) { Return(nil) } +func withTwoSuccessfulWebhookDeletes(mock whMock) { + mock.EXPECT(). + DeleteWebhook(gomock.Any(), gomock.Any(), repoOwner, gomock.Any(), gomock.Any()). + Return(nil). + Times(2) +} + func withFailedWebhookDelete(mock whMock) { mock.EXPECT(). DeleteWebhook(gomock.Any(), gomock.Any(), repoOwner, repoName, cf.HookID). @@ -403,6 +462,13 @@ func withSuccessfulDelete(mock dbMock) { Return(nil) } +func withTwoSuccessfulDeletes(mock dbMock) { + mock.EXPECT(). + DeleteRepository(gomock.Any(), gomock.Any()). + Return(nil). + Times(2) +} + func withFailedGetById(mock dbMock) { mock.EXPECT(). GetRepositoryByIDAndProject(gomock.Any(), gomock.Any()). @@ -451,6 +517,22 @@ func withPrivateReposDisabled(mock dbMock) { Return(json.RawMessage{}, sql.ErrNoRows) } +func withSuccessfulListRepos(mock dbMock) { + dbRepo2 := db.Repository{ + ID: uuid.New(), + ProjectID: projectID, + RepoOwner: repoOwner, + RepoName: "other-repo", + WebhookID: sql.NullInt64{ + Valid: true, + Int64: int64(9876), + }, + } + mock.EXPECT(). + ListRegisteredRepositoriesByProjectIDAndProvider(gomock.Any(), gomock.Any()). + Return([]db.Repository{dbRepo, dbRepo2}, nil) +} + func newGithubRepo(isPrivate bool) *gh.Repository { return &gh.Repository{ ID: ghRepoID, diff --git a/pkg/api/openapi/minder/v1/minder.swagger.json b/pkg/api/openapi/minder/v1/minder.swagger.json index c4f7a643da..3ac772ee52 100644 --- a/pkg/api/openapi/minder/v1/minder.swagger.json +++ b/pkg/api/openapi/minder/v1/minder.swagger.json @@ -1406,6 +1406,51 @@ ] } }, + "/api/v1/providers/{id}": { + "delete": { + "operationId": "ProvidersService_DeleteProviderByID", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1DeleteProviderByIDResponse" + } + } + }, + "parameters": [ + { + "name": "id", + "description": "id is the id of the provider to delete", + "in": "path", + "required": true, + "type": "string" + }, + { + "name": "context.provider", + "description": "name of the provider", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "context.project", + "description": "ID of the project", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "context.retiredOrganization", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "ProvidersService" + ] + } + }, "/api/v1/providers/{name}": { "get": { "operationId": "ProvidersService_GetProvider", @@ -2994,8 +3039,23 @@ } } }, + "v1DeleteProviderByIDResponse": { + "type": "object", + "properties": { + "id": { + "type": "string", + "title": "id is the id of the provider that was deleted" + } + } + }, "v1DeleteProviderResponse": { - "type": "object" + "type": "object", + "properties": { + "name": { + "type": "string", + "title": "name is the name of the provider that was deleted" + } + } }, "v1DeleteRepositoryByIdResponse": { "type": "object", diff --git a/pkg/api/protobuf/go/minder/v1/minder.pb.go b/pkg/api/protobuf/go/minder/v1/minder.pb.go index f25002e5b4..347731263a 100644 --- a/pkg/api/protobuf/go/minder/v1/minder.pb.go +++ b/pkg/api/protobuf/go/minder/v1/minder.pb.go @@ -8231,6 +8231,9 @@ type DeleteProviderResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + // name is the name of the provider that was deleted + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` } func (x *DeleteProviderResponse) Reset() { @@ -8265,6 +8268,118 @@ func (*DeleteProviderResponse) Descriptor() ([]byte, []int) { return file_minder_v1_minder_proto_rawDescGZIP(), []int{125} } +func (x *DeleteProviderResponse) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +type DeleteProviderByIDRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // context is the context in which the provider is deleted. Only the project is required in this context. + Context *Context `protobuf:"bytes,1,opt,name=context,proto3" json:"context,omitempty"` + // id is the id of the provider to delete + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *DeleteProviderByIDRequest) Reset() { + *x = DeleteProviderByIDRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_minder_v1_minder_proto_msgTypes[126] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteProviderByIDRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteProviderByIDRequest) ProtoMessage() {} + +func (x *DeleteProviderByIDRequest) ProtoReflect() protoreflect.Message { + mi := &file_minder_v1_minder_proto_msgTypes[126] + 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 DeleteProviderByIDRequest.ProtoReflect.Descriptor instead. +func (*DeleteProviderByIDRequest) Descriptor() ([]byte, []int) { + return file_minder_v1_minder_proto_rawDescGZIP(), []int{126} +} + +func (x *DeleteProviderByIDRequest) GetContext() *Context { + if x != nil { + return x.Context + } + return nil +} + +func (x *DeleteProviderByIDRequest) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +type DeleteProviderByIDResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // id is the id of the provider that was deleted + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` +} + +func (x *DeleteProviderByIDResponse) Reset() { + *x = DeleteProviderByIDResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_minder_v1_minder_proto_msgTypes[127] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteProviderByIDResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteProviderByIDResponse) ProtoMessage() {} + +func (x *DeleteProviderByIDResponse) ProtoReflect() protoreflect.Message { + mi := &file_minder_v1_minder_proto_msgTypes[127] + 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 DeleteProviderByIDResponse.ProtoReflect.Descriptor instead. +func (*DeleteProviderByIDResponse) Descriptor() ([]byte, []int) { + return file_minder_v1_minder_proto_rawDescGZIP(), []int{127} +} + +func (x *DeleteProviderByIDResponse) GetId() string { + if x != nil { + return x.Id + } + return "" +} + type GetUnclaimedProvidersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -8277,7 +8392,7 @@ type GetUnclaimedProvidersRequest struct { func (x *GetUnclaimedProvidersRequest) Reset() { *x = GetUnclaimedProvidersRequest{} 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) } @@ -8290,7 +8405,7 @@ func (x *GetUnclaimedProvidersRequest) String() string { func (*GetUnclaimedProvidersRequest) ProtoMessage() {} func (x *GetUnclaimedProvidersRequest) 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 { @@ -8303,7 +8418,7 @@ func (x *GetUnclaimedProvidersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUnclaimedProvidersRequest.ProtoReflect.Descriptor instead. func (*GetUnclaimedProvidersRequest) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{126} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{128} } func (x *GetUnclaimedProvidersRequest) GetContext() *Context { @@ -8327,7 +8442,7 @@ type GetUnclaimedProvidersResponse struct { func (x *GetUnclaimedProvidersResponse) Reset() { *x = GetUnclaimedProvidersResponse{} 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) } @@ -8340,7 +8455,7 @@ func (x *GetUnclaimedProvidersResponse) String() string { func (*GetUnclaimedProvidersResponse) ProtoMessage() {} func (x *GetUnclaimedProvidersResponse) 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 { @@ -8353,7 +8468,7 @@ func (x *GetUnclaimedProvidersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUnclaimedProvidersResponse.ProtoReflect.Descriptor instead. func (*GetUnclaimedProvidersResponse) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{127} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{129} } func (x *GetUnclaimedProvidersResponse) GetProviders() []*ProviderParameter { @@ -8375,7 +8490,7 @@ type ListProviderClassesRequest struct { func (x *ListProviderClassesRequest) Reset() { *x = ListProviderClassesRequest{} 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) } @@ -8388,7 +8503,7 @@ func (x *ListProviderClassesRequest) String() string { func (*ListProviderClassesRequest) ProtoMessage() {} func (x *ListProviderClassesRequest) 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 { @@ -8401,7 +8516,7 @@ func (x *ListProviderClassesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListProviderClassesRequest.ProtoReflect.Descriptor instead. func (*ListProviderClassesRequest) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{128} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{130} } func (x *ListProviderClassesRequest) GetContext() *Context { @@ -8423,7 +8538,7 @@ type ListProviderClassesResponse struct { func (x *ListProviderClassesResponse) Reset() { *x = ListProviderClassesResponse{} 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) } @@ -8436,7 +8551,7 @@ func (x *ListProviderClassesResponse) String() string { func (*ListProviderClassesResponse) ProtoMessage() {} func (x *ListProviderClassesResponse) 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 { @@ -8449,7 +8564,7 @@ func (x *ListProviderClassesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListProviderClassesResponse.ProtoReflect.Descriptor instead. func (*ListProviderClassesResponse) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{129} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{131} } func (x *ListProviderClassesResponse) GetProviderClasses() []string { @@ -8471,7 +8586,7 @@ type AuthorizationParams struct { func (x *AuthorizationParams) Reset() { *x = AuthorizationParams{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[130] + mi := &file_minder_v1_minder_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8484,7 +8599,7 @@ func (x *AuthorizationParams) String() string { func (*AuthorizationParams) ProtoMessage() {} func (x *AuthorizationParams) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[130] + mi := &file_minder_v1_minder_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8497,7 +8612,7 @@ func (x *AuthorizationParams) ProtoReflect() protoreflect.Message { // Deprecated: Use AuthorizationParams.ProtoReflect.Descriptor instead. func (*AuthorizationParams) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{130} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{132} } func (x *AuthorizationParams) GetAuthorizationUrl() string { @@ -8521,7 +8636,7 @@ type ProviderParameter struct { func (x *ProviderParameter) Reset() { *x = ProviderParameter{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[131] + mi := &file_minder_v1_minder_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8534,7 +8649,7 @@ func (x *ProviderParameter) String() string { func (*ProviderParameter) ProtoMessage() {} func (x *ProviderParameter) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[131] + mi := &file_minder_v1_minder_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8547,7 +8662,7 @@ func (x *ProviderParameter) ProtoReflect() protoreflect.Message { // Deprecated: Use ProviderParameter.ProtoReflect.Descriptor instead. func (*ProviderParameter) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{131} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{133} } func (m *ProviderParameter) GetParameters() isProviderParameter_Parameters { @@ -8596,7 +8711,7 @@ type GitHubAppParams struct { func (x *GitHubAppParams) Reset() { *x = GitHubAppParams{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[132] + mi := &file_minder_v1_minder_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8609,7 +8724,7 @@ func (x *GitHubAppParams) String() string { func (*GitHubAppParams) ProtoMessage() {} func (x *GitHubAppParams) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[132] + mi := &file_minder_v1_minder_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8622,7 +8737,7 @@ func (x *GitHubAppParams) ProtoReflect() protoreflect.Message { // Deprecated: Use GitHubAppParams.ProtoReflect.Descriptor instead. func (*GitHubAppParams) Descriptor() ([]byte, []int) { - return file_minder_v1_minder_proto_rawDescGZIP(), []int{132} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{134} } func (x *GitHubAppParams) GetInstallationId() int64 { @@ -8676,7 +8791,7 @@ type Provider struct { func (x *Provider) Reset() { *x = Provider{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[133] + mi := &file_minder_v1_minder_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8689,7 +8804,7 @@ func (x *Provider) String() string { func (*Provider) ProtoMessage() {} func (x *Provider) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[133] + mi := &file_minder_v1_minder_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8702,7 +8817,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{133} + return file_minder_v1_minder_proto_rawDescGZIP(), []int{135} } func (x *Provider) GetName() string { @@ -8780,7 +8895,7 @@ type PrDependencies_ContextualDependency struct { func (x *PrDependencies_ContextualDependency) Reset() { *x = PrDependencies_ContextualDependency{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[134] + mi := &file_minder_v1_minder_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8793,7 +8908,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[134] + mi := &file_minder_v1_minder_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8835,7 +8950,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[135] + mi := &file_minder_v1_minder_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8848,7 +8963,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[135] + mi := &file_minder_v1_minder_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8891,7 +9006,7 @@ type PrContents_File struct { func (x *PrContents_File) Reset() { *x = PrContents_File{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[136] + mi := &file_minder_v1_minder_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8904,7 +9019,7 @@ func (x *PrContents_File) String() string { func (*PrContents_File) ProtoMessage() {} func (x *PrContents_File) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[136] + mi := &file_minder_v1_minder_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8955,7 +9070,7 @@ type PrContents_File_Line struct { func (x *PrContents_File_Line) Reset() { *x = PrContents_File_Line{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[137] + mi := &file_minder_v1_minder_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8968,7 +9083,7 @@ func (x *PrContents_File_Line) String() string { func (*PrContents_File_Line) ProtoMessage() {} func (x *PrContents_File_Line) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[137] + mi := &file_minder_v1_minder_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9010,7 +9125,7 @@ type RegisterRepoResult_Status struct { func (x *RegisterRepoResult_Status) Reset() { *x = RegisterRepoResult_Status{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[138] + mi := &file_minder_v1_minder_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9023,7 +9138,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[138] + mi := &file_minder_v1_minder_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9068,7 +9183,7 @@ type ListEvaluationResultsResponse_EntityProfileEvaluationResults struct { func (x *ListEvaluationResultsResponse_EntityProfileEvaluationResults) Reset() { *x = ListEvaluationResultsResponse_EntityProfileEvaluationResults{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[140] + mi := &file_minder_v1_minder_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9081,7 +9196,7 @@ func (x *ListEvaluationResultsResponse_EntityProfileEvaluationResults) String() func (*ListEvaluationResultsResponse_EntityProfileEvaluationResults) ProtoMessage() {} func (x *ListEvaluationResultsResponse_EntityProfileEvaluationResults) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[140] + mi := &file_minder_v1_minder_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9123,7 +9238,7 @@ type ListEvaluationResultsResponse_EntityEvaluationResults struct { func (x *ListEvaluationResultsResponse_EntityEvaluationResults) Reset() { *x = ListEvaluationResultsResponse_EntityEvaluationResults{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[141] + mi := &file_minder_v1_minder_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9136,7 +9251,7 @@ func (x *ListEvaluationResultsResponse_EntityEvaluationResults) String() string func (*ListEvaluationResultsResponse_EntityEvaluationResults) ProtoMessage() {} func (x *ListEvaluationResultsResponse_EntityEvaluationResults) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[141] + mi := &file_minder_v1_minder_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9178,7 +9293,7 @@ type RestType_Fallback struct { func (x *RestType_Fallback) Reset() { *x = RestType_Fallback{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[142] + mi := &file_minder_v1_minder_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9191,7 +9306,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[142] + mi := &file_minder_v1_minder_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9235,7 +9350,7 @@ type DiffType_Ecosystem struct { func (x *DiffType_Ecosystem) Reset() { *x = DiffType_Ecosystem{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[143] + mi := &file_minder_v1_minder_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9248,7 +9363,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[143] + mi := &file_minder_v1_minder_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9301,7 +9416,7 @@ type RuleType_Definition struct { func (x *RuleType_Definition) Reset() { *x = RuleType_Definition{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[144] + mi := &file_minder_v1_minder_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9314,7 +9429,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[144] + mi := &file_minder_v1_minder_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9404,7 +9519,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[145] + mi := &file_minder_v1_minder_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9417,7 +9532,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[145] + mi := &file_minder_v1_minder_proto_msgTypes[147] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9504,7 +9619,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[146] + mi := &file_minder_v1_minder_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9517,7 +9632,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[146] + mi := &file_minder_v1_minder_proto_msgTypes[148] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9589,7 +9704,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[147] + mi := &file_minder_v1_minder_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9602,7 +9717,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[147] + mi := &file_minder_v1_minder_proto_msgTypes[149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9658,7 +9773,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[148] + mi := &file_minder_v1_minder_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9671,7 +9786,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[148] + mi := &file_minder_v1_minder_proto_msgTypes[150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9715,7 +9830,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[149] + mi := &file_minder_v1_minder_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9728,7 +9843,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[149] + mi := &file_minder_v1_minder_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9786,7 +9901,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[150] + mi := &file_minder_v1_minder_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9799,7 +9914,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[150] + mi := &file_minder_v1_minder_proto_msgTypes[152] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9845,7 +9960,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[151] + mi := &file_minder_v1_minder_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9858,7 +9973,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[151] + mi := &file_minder_v1_minder_proto_msgTypes[153] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9887,7 +10002,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[152] + mi := &file_minder_v1_minder_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9900,7 +10015,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[152] + mi := &file_minder_v1_minder_proto_msgTypes[154] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9934,7 +10049,7 @@ type RuleType_Definition_Eval_Homoglyphs struct { func (x *RuleType_Definition_Eval_Homoglyphs) Reset() { *x = RuleType_Definition_Eval_Homoglyphs{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[153] + mi := &file_minder_v1_minder_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9947,7 +10062,7 @@ func (x *RuleType_Definition_Eval_Homoglyphs) String() string { func (*RuleType_Definition_Eval_Homoglyphs) ProtoMessage() {} func (x *RuleType_Definition_Eval_Homoglyphs) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[153] + mi := &file_minder_v1_minder_proto_msgTypes[155] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9981,7 +10096,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[154] + mi := &file_minder_v1_minder_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9994,7 +10109,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[154] + mi := &file_minder_v1_minder_proto_msgTypes[156] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10028,7 +10143,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[155] + mi := &file_minder_v1_minder_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10041,7 +10156,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[155] + mi := &file_minder_v1_minder_proto_msgTypes[157] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10092,7 +10207,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[156] + mi := &file_minder_v1_minder_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10105,7 +10220,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[156] + mi := &file_minder_v1_minder_proto_msgTypes[158] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10177,7 +10292,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[157] + mi := &file_minder_v1_minder_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10190,7 +10305,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[157] + mi := &file_minder_v1_minder_proto_msgTypes[159] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10246,7 +10361,7 @@ type RuleType_Definition_Remediate_PullRequestRemediation_ActionsReplaceTagsWith func (x *RuleType_Definition_Remediate_PullRequestRemediation_ActionsReplaceTagsWithSha) Reset() { *x = RuleType_Definition_Remediate_PullRequestRemediation_ActionsReplaceTagsWithSha{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[158] + mi := &file_minder_v1_minder_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10260,7 +10375,7 @@ func (*RuleType_Definition_Remediate_PullRequestRemediation_ActionsReplaceTagsWi } func (x *RuleType_Definition_Remediate_PullRequestRemediation_ActionsReplaceTagsWithSha) ProtoReflect() protoreflect.Message { - mi := &file_minder_v1_minder_proto_msgTypes[158] + mi := &file_minder_v1_minder_proto_msgTypes[160] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10294,7 +10409,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[159] + mi := &file_minder_v1_minder_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10307,7 +10422,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[159] + mi := &file_minder_v1_minder_proto_msgTypes[161] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10351,7 +10466,7 @@ type Profile_Rule struct { func (x *Profile_Rule) Reset() { *x = Profile_Rule{} if protoimpl.UnsafeEnabled { - mi := &file_minder_v1_minder_proto_msgTypes[160] + mi := &file_minder_v1_minder_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10364,7 +10479,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[160] + mi := &file_minder_v1_minder_proto_msgTypes[162] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11672,723 +11787,742 @@ var file_minder_v1_minder_proto_rawDesc = []byte{ 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, - 0x18, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4c, 0x0a, 0x1c, 0x47, 0x65, 0x74, - 0x55, 0x6e, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, - 0x72, 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, 0x5b, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x55, 0x6e, - 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, + 0x2c, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x59, 0x0a, + 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x42, + 0x79, 0x49, 0x44, 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, 0x2c, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x4c, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x63, + 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x5b, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x63, 0x6c, 0x61, + 0x69, 0x6d, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x73, 0x22, 0x4a, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 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, 0x48, 0x0a, + 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x10, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x22, 0x42, 0x0a, 0x13, 0x41, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2b, + 0x0a, 0x11, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x22, 0x5e, 0x0a, 0x11, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x12, 0x3b, 0x0a, 0x0a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x5f, 0x61, 0x70, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x69, 0x74, 0x48, 0x75, 0x62, 0x41, 0x70, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x48, 0x00, 0x52, 0x09, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x70, 0x70, 0x42, 0x0c, 0x0a, + 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x0f, + 0x47, 0x69, 0x74, 0x48, 0x75, 0x62, 0x41, 0x70, 0x70, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, + 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xfa, 0x02, 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, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 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, 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, 0x37, 0x0a, 0x0a, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x69, + 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x05, 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, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 0x0a, 0x0a, 0x61, 0x75, + 0x74, 0x68, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1c, + 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x09, 0x61, 0x75, + 0x74, 0x68, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x3c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x73, 0x22, 0x4a, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 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, 0x48, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x29, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x22, 0x42, 0x0a, 0x13, 0x41, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x22, 0x5e, - 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x0a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x5f, 0x61, 0x70, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x69, 0x74, 0x48, 0x75, 0x62, 0x41, 0x70, 0x70, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x09, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x41, 0x70, 0x70, - 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x22, 0x87, - 0x01, 0x0a, 0x0f, 0x47, 0x69, 0x74, 0x48, 0x75, 0x62, 0x41, 0x70, 0x70, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x69, 0x6e, 0x73, - 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x27, 0x0a, 0x0f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0xfa, 0x02, 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, 0x14, 0x0a, 0x05, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x6c, 0x61, 0x73, 0x73, 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, 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, 0x37, 0x0a, 0x0a, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x52, 0x0a, 0x69, 0x6d, 0x70, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2f, 0x0a, 0x06, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 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, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3b, 0x0a, - 0x0a, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x0e, 0x32, 0x1c, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x52, - 0x09, 0x61, 0x75, 0x74, 0x68, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x3c, 0x0a, 0x0a, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x2a, 0x62, 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, 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, 0x22, 0x04, 0x08, 0x01, 0x10, 0x01, 0x2a, 0x9f, 0x0d, 0x0a, 0x08, 0x52, 0x65, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x12, 0x1f, 0x0a, 0x0f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x52, 0x45, - 0x41, 0x54, 0x45, 0x10, 0x01, 0x1a, 0x0a, 0xea, 0xdc, 0x14, 0x06, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x12, 0x19, 0x0a, 0x0c, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x45, - 0x54, 0x10, 0x02, 0x1a, 0x07, 0xea, 0xdc, 0x14, 0x03, 0x67, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0f, - 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, - 0x03, 0x1a, 0x0a, 0xea, 0xdc, 0x14, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, - 0x0f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, - 0x10, 0x04, 0x1a, 0x0a, 0xea, 0xdc, 0x14, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x25, - 0x0a, 0x12, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, - 0x4c, 0x49, 0x53, 0x54, 0x10, 0x05, 0x1a, 0x0d, 0xea, 0xdc, 0x14, 0x09, 0x72, 0x6f, 0x6c, 0x65, - 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x1d, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 0x4d, 0x45, 0x4e, - 0x54, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x10, 0x06, 0x1a, 0x18, 0xea, 0xdc, 0x14, 0x14, 0x72, 0x6f, - 0x6c, 0x65, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, - 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x1f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, - 0x4f, 0x4c, 0x45, 0x5f, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x43, - 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x07, 0x1a, 0x1a, 0xea, 0xdc, 0x14, 0x16, 0x72, 0x6f, 0x6c, - 0x65, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x12, 0x3f, 0x0a, 0x1f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x5f, - 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x08, 0x1a, 0x1a, 0xea, 0xdc, 0x14, 0x16, 0x72, 0x6f, - 0x6c, 0x65, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x12, 0x23, 0x0a, 0x11, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x09, 0x1a, 0x0c, 0xea, 0xdc, 0x14, - 0x08, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x67, 0x65, 0x74, 0x12, 0x29, 0x0a, 0x14, 0x52, 0x45, 0x4c, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, - 0x45, 0x10, 0x0a, 0x1a, 0x0f, 0xea, 0xdc, 0x14, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x14, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x0b, 0x1a, 0x0f, - 0xea, 0xdc, 0x14, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, - 0x29, 0x0a, 0x14, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x50, 0x4f, - 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x0c, 0x1a, 0x0f, 0xea, 0xdc, 0x14, 0x0b, 0x72, - 0x65, 0x70, 0x6f, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x15, 0x52, 0x45, - 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, - 0x47, 0x45, 0x54, 0x10, 0x0d, 0x1a, 0x10, 0xea, 0xdc, 0x14, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x5f, 0x67, 0x65, 0x74, 0x12, 0x31, 0x0a, 0x18, 0x52, 0x45, 0x4c, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x43, 0x52, 0x45, - 0x41, 0x54, 0x45, 0x10, 0x0e, 0x1a, 0x13, 0xea, 0xdc, 0x14, 0x0f, 0x61, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x18, 0x52, 0x45, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x2a, 0x62, 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, + 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, + 0x22, 0x04, 0x08, 0x01, 0x10, 0x01, 0x2a, 0x9f, 0x0d, 0x0a, 0x08, 0x52, 0x65, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, + 0x0f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, + 0x10, 0x01, 0x1a, 0x0a, 0xea, 0xdc, 0x14, 0x06, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x19, + 0x0a, 0x0c, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x02, + 0x1a, 0x07, 0xea, 0xdc, 0x14, 0x03, 0x67, 0x65, 0x74, 0x12, 0x1f, 0x0a, 0x0f, 0x52, 0x45, 0x4c, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x03, 0x1a, 0x0a, + 0xea, 0xdc, 0x14, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0f, 0x52, 0x45, + 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x04, 0x1a, + 0x0a, 0xea, 0xdc, 0x14, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x12, 0x52, + 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x4c, 0x45, 0x5f, 0x4c, 0x49, 0x53, + 0x54, 0x10, 0x05, 0x1a, 0x0d, 0xea, 0xdc, 0x14, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6c, 0x69, + 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x1d, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, + 0x4f, 0x4c, 0x45, 0x5f, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x4c, + 0x49, 0x53, 0x54, 0x10, 0x06, 0x1a, 0x18, 0xea, 0xdc, 0x14, 0x14, 0x72, 0x6f, 0x6c, 0x65, 0x5f, + 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x12, + 0x3f, 0x0a, 0x1f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x4c, 0x45, + 0x5f, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, + 0x54, 0x45, 0x10, 0x07, 0x1a, 0x1a, 0xea, 0xdc, 0x14, 0x16, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x61, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x12, 0x3f, 0x0a, 0x1f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x4f, 0x4c, + 0x45, 0x5f, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x52, 0x45, 0x4d, + 0x4f, 0x56, 0x45, 0x10, 0x08, 0x1a, 0x1a, 0xea, 0xdc, 0x14, 0x16, 0x72, 0x6f, 0x6c, 0x65, 0x5f, + 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x12, 0x23, 0x0a, 0x11, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, + 0x50, 0x4f, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x09, 0x1a, 0x0c, 0xea, 0xdc, 0x14, 0x08, 0x72, 0x65, + 0x70, 0x6f, 0x5f, 0x67, 0x65, 0x74, 0x12, 0x29, 0x0a, 0x14, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x0a, + 0x1a, 0x0f, 0xea, 0xdc, 0x14, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x12, 0x29, 0x0a, 0x14, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, + 0x50, 0x4f, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x0b, 0x1a, 0x0f, 0xea, 0xdc, 0x14, + 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x14, + 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x44, 0x45, + 0x4c, 0x45, 0x54, 0x45, 0x10, 0x0c, 0x1a, 0x0f, 0xea, 0xdc, 0x14, 0x0b, 0x72, 0x65, 0x70, 0x6f, + 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x15, 0x52, 0x45, 0x4c, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x47, 0x45, 0x54, + 0x10, 0x0d, 0x1a, 0x10, 0xea, 0xdc, 0x14, 0x0c, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x5f, 0x67, 0x65, 0x74, 0x12, 0x31, 0x0a, 0x18, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, + 0x10, 0x0e, 0x1a, 0x13, 0xea, 0xdc, 0x14, 0x0f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x18, 0x52, 0x45, 0x4c, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, 0x55, 0x50, 0x44, + 0x41, 0x54, 0x45, 0x10, 0x0f, 0x1a, 0x13, 0xea, 0xdc, 0x14, 0x0f, 0x61, 0x72, 0x74, 0x69, 0x66, + 0x61, 0x63, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x18, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, 0x43, 0x54, 0x5f, - 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x0f, 0x1a, 0x13, 0xea, 0xdc, 0x14, 0x0f, 0x61, 0x72, - 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, - 0x18, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x52, 0x54, 0x49, 0x46, 0x41, - 0x43, 0x54, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x10, 0x1a, 0x13, 0xea, 0xdc, 0x14, - 0x0f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x12, 0x1f, 0x0a, 0x0f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x5f, - 0x47, 0x45, 0x54, 0x10, 0x11, 0x1a, 0x0a, 0xea, 0xdc, 0x14, 0x06, 0x70, 0x72, 0x5f, 0x67, 0x65, - 0x74, 0x12, 0x25, 0x0a, 0x12, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, - 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x12, 0x1a, 0x0d, 0xea, 0xdc, 0x14, 0x09, 0x70, - 0x72, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x12, 0x52, 0x45, 0x4c, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x13, - 0x1a, 0x0d, 0xea, 0xdc, 0x14, 0x09, 0x70, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, - 0x25, 0x0a, 0x12, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x5f, 0x44, - 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x14, 0x1a, 0x0d, 0xea, 0xdc, 0x14, 0x09, 0x70, 0x72, 0x5f, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x15, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x47, 0x45, 0x54, 0x10, - 0x15, 0x1a, 0x10, 0xea, 0xdc, 0x14, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, - 0x67, 0x65, 0x74, 0x12, 0x31, 0x0a, 0x18, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, - 0x16, 0x1a, 0x13, 0xea, 0xdc, 0x14, 0x0f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x18, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x50, 0x44, 0x41, - 0x54, 0x45, 0x10, 0x17, 0x1a, 0x13, 0xea, 0xdc, 0x14, 0x0f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x18, 0x52, 0x45, 0x4c, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x44, - 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x18, 0x1a, 0x13, 0xea, 0xdc, 0x14, 0x0f, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x16, - 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x19, 0x1a, 0x11, 0xea, 0xdc, 0x14, 0x0d, 0x72, 0x75, - 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x67, 0x65, 0x74, 0x12, 0x33, 0x0a, 0x19, 0x52, - 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x1a, 0x1a, 0x14, 0xea, 0xdc, 0x14, 0x10, - 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x12, 0x33, 0x0a, 0x19, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x55, 0x4c, - 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x1b, 0x1a, - 0x14, 0xea, 0xdc, 0x14, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x19, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, - 0x54, 0x45, 0x10, 0x1c, 0x1a, 0x14, 0xea, 0xdc, 0x14, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x14, 0x52, 0x45, - 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x47, - 0x45, 0x54, 0x10, 0x1d, 0x1a, 0x0f, 0xea, 0xdc, 0x14, 0x0b, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x5f, 0x67, 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x17, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, - 0x10, 0x1e, 0x1a, 0x12, 0xea, 0xdc, 0x14, 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x17, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, - 0x45, 0x10, 0x1f, 0x1a, 0x12, 0xea, 0xdc, 0x14, 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x17, 0x52, 0x45, 0x4c, 0x41, 0x54, - 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, - 0x54, 0x45, 0x10, 0x20, 0x1a, 0x12, 0xea, 0xdc, 0x14, 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x1b, 0x52, 0x45, 0x4c, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x21, 0x1a, 0x16, 0xea, 0xdc, 0x14, 0x12, 0x70, - 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x67, 0x65, - 0x74, 0x12, 0x31, 0x0a, 0x18, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, - 0x4d, 0x4f, 0x54, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x22, 0x1a, - 0x13, 0xea, 0xdc, 0x14, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, - 0x5f, 0x67, 0x65, 0x74, 0x12, 0x55, 0x0a, 0x2a, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x43, 0x49, 0x4c, - 0x49, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x43, 0x52, 0x45, 0x41, - 0x54, 0x45, 0x10, 0x23, 0x1a, 0x25, 0xea, 0xdc, 0x14, 0x21, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, - 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2a, 0x82, 0x01, 0x0a, 0x0e, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1f, - 0x0a, 0x1b, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x18, 0x0a, 0x14, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, - 0x43, 0x45, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x41, 0x52, - 0x47, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x53, 0x45, - 0x52, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x52, 0x45, - 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 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, 0x2a, - 0xe5, 0x01, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x1d, 0x0a, 0x19, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x24, 0x0a, 0x14, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x10, 0x01, 0x1a, 0x0a, 0xea, 0xdc, 0x14, 0x06, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x12, 0x20, 0x0a, 0x12, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, - 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x10, 0x02, 0x1a, 0x08, 0xea, - 0xdc, 0x14, 0x04, 0x72, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x11, 0x50, 0x52, 0x4f, 0x56, 0x49, - 0x44, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x49, 0x54, 0x10, 0x03, 0x1a, 0x07, - 0xea, 0xdc, 0x14, 0x03, 0x67, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x11, 0x50, 0x52, 0x4f, 0x56, 0x49, - 0x44, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x43, 0x49, 0x10, 0x04, 0x1a, 0x07, - 0xea, 0xdc, 0x14, 0x03, 0x6f, 0x63, 0x69, 0x12, 0x2e, 0x0a, 0x19, 0x50, 0x52, 0x4f, 0x56, 0x49, - 0x44, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x4c, 0x49, - 0x53, 0x54, 0x45, 0x52, 0x10, 0x05, 0x1a, 0x0f, 0xea, 0xdc, 0x14, 0x0b, 0x72, 0x65, 0x70, 0x6f, - 0x2d, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x72, 0x2a, 0x85, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x52, 0x4f, - 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x15, 0x50, 0x52, 0x4f, - 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x47, 0x49, 0x54, 0x48, - 0x55, 0x42, 0x10, 0x01, 0x1a, 0x0a, 0xea, 0xdc, 0x14, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x12, 0x2d, 0x0a, 0x19, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x43, 0x4c, 0x41, - 0x53, 0x53, 0x5f, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x02, 0x1a, - 0x0e, 0xea, 0xdc, 0x14, 0x0a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2d, 0x61, 0x70, 0x70, 0x2a, - 0xa9, 0x02, 0x0a, 0x11, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, - 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x17, 0x41, 0x55, 0x54, - 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, - 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x1a, 0x08, 0xea, 0xdc, 0x14, 0x04, 0x6e, 0x6f, 0x6e, 0x65, - 0x12, 0x31, 0x0a, 0x1d, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, - 0x4e, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x50, 0x55, - 0x54, 0x10, 0x02, 0x1a, 0x0e, 0xea, 0xdc, 0x14, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x12, 0x59, 0x0a, 0x31, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4f, 0x41, 0x55, 0x54, 0x48, 0x32, - 0x5f, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, - 0x4f, 0x44, 0x45, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x03, 0x1a, 0x22, 0xea, 0xdc, 0x14, 0x1e, - 0x6f, 0x61, 0x75, 0x74, 0x68, 0x32, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x3b, - 0x0a, 0x22, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x5f, 0x41, 0x50, 0x50, 0x5f, - 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x04, 0x1a, 0x13, 0xea, 0xdc, 0x14, 0x0f, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x2a, 0xbb, 0x01, 0x0a, 0x10, - 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x52, 0x45, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, 0x53, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, - 0x44, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x15, 0x43, 0x52, 0x45, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x41, - 0x4c, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x01, 0x1a, 0x07, - 0xea, 0xdc, 0x14, 0x03, 0x73, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x17, 0x43, 0x52, 0x45, 0x44, 0x45, - 0x4e, 0x54, 0x49, 0x41, 0x4c, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x45, 0x54, 0x10, 0x02, 0x1a, 0x09, 0xea, 0xdc, 0x14, 0x05, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x12, - 0x38, 0x0a, 0x20, 0x43, 0x52, 0x45, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, 0x53, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, - 0x42, 0x4c, 0x45, 0x10, 0x03, 0x1a, 0x12, 0xea, 0xdc, 0x14, 0x0e, 0x6e, 0x6f, 0x74, 0x5f, 0x61, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x6c, 0x65, 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, 0x10, 0x01, - 0x30, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x32, 0xbc, 0x03, 0x0a, 0x0f, 0x41, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x95, 0x01, 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, 0x41, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x0d, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x33, 0x5a, 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x73, 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, 0x7f, 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, + 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x10, 0x1a, 0x13, 0xea, 0xdc, 0x14, 0x0f, 0x61, 0x72, + 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x1f, 0x0a, + 0x0f, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x5f, 0x47, 0x45, 0x54, + 0x10, 0x11, 0x1a, 0x0a, 0xea, 0xdc, 0x14, 0x06, 0x70, 0x72, 0x5f, 0x67, 0x65, 0x74, 0x12, 0x25, + 0x0a, 0x12, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x5f, 0x43, 0x52, + 0x45, 0x41, 0x54, 0x45, 0x10, 0x12, 0x1a, 0x0d, 0xea, 0xdc, 0x14, 0x09, 0x70, 0x72, 0x5f, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x12, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x50, 0x52, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x13, 0x1a, 0x0d, 0xea, + 0xdc, 0x14, 0x09, 0x70, 0x72, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x12, + 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x5f, 0x44, 0x45, 0x4c, 0x45, + 0x54, 0x45, 0x10, 0x14, 0x1a, 0x0d, 0xea, 0xdc, 0x14, 0x09, 0x70, 0x72, 0x5f, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x15, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x15, 0x1a, 0x10, + 0xea, 0xdc, 0x14, 0x0c, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x67, 0x65, 0x74, + 0x12, 0x31, 0x0a, 0x18, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, + 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x16, 0x1a, 0x13, + 0xea, 0xdc, 0x14, 0x0f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x18, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, + 0x17, 0x1a, 0x13, 0xea, 0xdc, 0x14, 0x0f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x18, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, + 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x4c, 0x45, + 0x54, 0x45, 0x10, 0x18, 0x1a, 0x13, 0xea, 0xdc, 0x14, 0x0f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x16, 0x52, 0x45, 0x4c, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x47, 0x45, 0x54, 0x10, 0x19, 0x1a, 0x11, 0xea, 0xdc, 0x14, 0x0d, 0x72, 0x75, 0x6c, 0x65, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x5f, 0x67, 0x65, 0x74, 0x12, 0x33, 0x0a, 0x19, 0x52, 0x45, 0x4c, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, + 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x1a, 0x1a, 0x14, 0xea, 0xdc, 0x14, 0x10, 0x72, 0x75, 0x6c, + 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, + 0x19, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x55, 0x4c, 0x45, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x1b, 0x1a, 0x14, 0xea, 0xdc, + 0x14, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x12, 0x33, 0x0a, 0x19, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, + 0x55, 0x4c, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, + 0x1c, 0x1a, 0x14, 0xea, 0xdc, 0x14, 0x10, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x29, 0x0a, 0x14, 0x52, 0x45, 0x4c, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x47, 0x45, 0x54, 0x10, + 0x1d, 0x1a, 0x0f, 0xea, 0xdc, 0x14, 0x0b, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x67, + 0x65, 0x74, 0x12, 0x2f, 0x0a, 0x17, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x50, + 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x1e, 0x1a, + 0x12, 0xea, 0xdc, 0x14, 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x17, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x1f, + 0x1a, 0x12, 0xea, 0xdc, 0x14, 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x12, 0x2f, 0x0a, 0x17, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, + 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, + 0x20, 0x1a, 0x12, 0xea, 0xdc, 0x14, 0x0e, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x1b, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x50, 0x52, 0x4f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x47, 0x45, 0x54, 0x10, 0x21, 0x1a, 0x16, 0xea, 0xdc, 0x14, 0x12, 0x70, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x67, 0x65, 0x74, 0x12, 0x31, + 0x0a, 0x18, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x54, + 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x47, 0x45, 0x54, 0x10, 0x22, 0x1a, 0x13, 0xea, 0xdc, + 0x14, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x67, 0x65, + 0x74, 0x12, 0x55, 0x0a, 0x2a, 0x52, 0x45, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x45, 0x4e, + 0x54, 0x49, 0x54, 0x59, 0x5f, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x43, 0x49, 0x4c, 0x49, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x41, 0x53, 0x4b, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, + 0x23, 0x1a, 0x25, 0xea, 0xdc, 0x14, 0x21, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x65, + 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x73, + 0x6b, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x2a, 0x82, 0x01, 0x0a, 0x0e, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x54, + 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, + 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, + 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, + 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x10, 0x02, + 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x41, 0x52, 0x47, 0x45, 0x54, 0x5f, 0x52, 0x45, 0x53, 0x4f, 0x55, + 0x52, 0x43, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x4a, 0x45, 0x43, 0x54, 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, 0x2a, 0xe5, 0x01, 0x0a, + 0x0c, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, + 0x19, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x24, 0x0a, 0x14, + 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x49, + 0x54, 0x48, 0x55, 0x42, 0x10, 0x01, 0x1a, 0x0a, 0xea, 0xdc, 0x14, 0x06, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x12, 0x20, 0x0a, 0x12, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x10, 0x02, 0x1a, 0x08, 0xea, 0xdc, 0x14, 0x04, + 0x72, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x11, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x49, 0x54, 0x10, 0x03, 0x1a, 0x07, 0xea, 0xdc, 0x14, + 0x03, 0x67, 0x69, 0x74, 0x12, 0x1e, 0x0a, 0x11, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x43, 0x49, 0x10, 0x04, 0x1a, 0x07, 0xea, 0xdc, 0x14, + 0x03, 0x6f, 0x63, 0x69, 0x12, 0x2e, 0x0a, 0x19, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x50, 0x4f, 0x5f, 0x4c, 0x49, 0x53, 0x54, 0x45, + 0x52, 0x10, 0x05, 0x1a, 0x0f, 0xea, 0xdc, 0x14, 0x0b, 0x72, 0x65, 0x70, 0x6f, 0x2d, 0x6c, 0x69, + 0x73, 0x74, 0x65, 0x72, 0x2a, 0x85, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, + 0x45, 0x52, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x15, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, + 0x45, 0x52, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x10, + 0x01, 0x1a, 0x0a, 0xea, 0xdc, 0x14, 0x06, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x12, 0x2d, 0x0a, + 0x19, 0x50, 0x52, 0x4f, 0x56, 0x49, 0x44, 0x45, 0x52, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, + 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x02, 0x1a, 0x0e, 0xea, 0xdc, + 0x14, 0x0a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2d, 0x61, 0x70, 0x70, 0x2a, 0xa9, 0x02, 0x0a, + 0x11, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x25, 0x0a, 0x17, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, + 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4e, 0x4f, 0x4e, + 0x45, 0x10, 0x01, 0x1a, 0x08, 0xea, 0xdc, 0x14, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x12, 0x31, 0x0a, + 0x1d, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, + 0x4c, 0x4f, 0x57, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x50, 0x55, 0x54, 0x10, 0x02, + 0x1a, 0x0e, 0xea, 0xdc, 0x14, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x12, 0x59, 0x0a, 0x31, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, + 0x4e, 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x5f, 0x4f, 0x41, 0x55, 0x54, 0x48, 0x32, 0x5f, 0x41, 0x55, + 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x4f, 0x44, 0x45, + 0x5f, 0x46, 0x4c, 0x4f, 0x57, 0x10, 0x03, 0x1a, 0x22, 0xea, 0xdc, 0x14, 0x1e, 0x6f, 0x61, 0x75, + 0x74, 0x68, 0x32, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x3b, 0x0a, 0x22, 0x41, + 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4c, 0x4f, + 0x57, 0x5f, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x5f, 0x41, 0x50, 0x50, 0x5f, 0x46, 0x4c, 0x4f, + 0x57, 0x10, 0x04, 0x1a, 0x13, 0xea, 0xdc, 0x14, 0x0f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x5f, + 0x61, 0x70, 0x70, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x2a, 0xbb, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, + 0x1d, 0x43, 0x52, 0x45, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, 0x53, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, + 0x12, 0x22, 0x0a, 0x15, 0x43, 0x52, 0x45, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, 0x53, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x45, 0x54, 0x10, 0x01, 0x1a, 0x07, 0xea, 0xdc, 0x14, + 0x03, 0x73, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x17, 0x43, 0x52, 0x45, 0x44, 0x45, 0x4e, 0x54, 0x49, + 0x41, 0x4c, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, + 0x02, 0x1a, 0x09, 0xea, 0xdc, 0x14, 0x05, 0x75, 0x6e, 0x73, 0x65, 0x74, 0x12, 0x38, 0x0a, 0x20, + 0x43, 0x52, 0x45, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x41, 0x4c, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x41, 0x50, 0x50, 0x4c, 0x49, 0x43, 0x41, 0x42, 0x4c, 0x45, + 0x10, 0x03, 0x1a, 0x12, 0xea, 0xdc, 0x14, 0x0e, 0x6e, 0x6f, 0x74, 0x5f, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x62, 0x6c, 0x65, 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, 0x10, 0x01, 0x30, 0x01, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x68, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x32, 0xbc, 0x03, 0x0a, 0x0f, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x95, 0x01, 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, 0x41, + 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x0d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x5a, 0x13, + 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x73, 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, 0x7f, 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, 0x25, - 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x0d, 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, 0x12, 0x8f, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, - 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x2e, 0x6d, 0x69, - 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, - 0x61, 0x63, 0x74, 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, 0x74, - 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x0d, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x61, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x6e, - 0x61, 0x6d, 0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x32, 0xb6, 0x05, 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, 0x30, 0x03, 0x38, 0x17, 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, 0xac, 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, 0x49, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x17, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x3a, 0x01, 0x2a, 0x5a, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 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, 0xd2, 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, 0x60, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x17, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x4f, 0x5a, 0x21, 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, - 0x75, 0x74, 0x68, 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x2f, 0x7b, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x7d, 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, 0x88, 0x02, 0x01, 0x12, 0x98, 0x01, 0x0a, 0x18, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, - 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x12, 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, 0x43, 0x72, 0x65, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, - 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, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0xaa, 0xf8, 0x18, - 0x04, 0x30, 0x03, 0x38, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, - 0x32, 0xe9, 0x0a, 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc7, 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, 0x64, 0xaa, 0xf8, 0x18, 0x04, - 0x30, 0x03, 0x38, 0x0a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x3a, 0x01, 0x2a, 0x5a, 0x20, 0x3a, - 0x01, 0x2a, 0x22, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 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, 0xf1, 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, 0x5e, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x22, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x50, 0x5a, 0x1d, 0x12, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 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, 0xad, 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, 0x50, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x09, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x42, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x28, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, + 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0xaa, 0xf8, 0x18, + 0x04, 0x30, 0x03, 0x38, 0x0d, 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, 0x12, 0x8f, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, + 0x63, 0x74, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x72, 0x74, 0x69, 0x66, 0x61, 0x63, 0x74, + 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, 0x74, 0x41, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x2f, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x0d, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x72, 0x74, + 0x69, 0x66, 0x61, 0x63, 0x74, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x3d, 0x2a, 0x2a, 0x7d, 0x32, 0xb6, 0x05, 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, 0x30, 0x03, 0x38, 0x17, 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, 0xac, + 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, 0x49, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x17, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x3b, 0x3a, 0x01, 0x2a, 0x5a, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 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, 0xd2, 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, 0x60, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4f, + 0x5a, 0x21, 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, + 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x2f, 0x7b, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x7d, 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, 0x88, + 0x02, 0x01, 0x12, 0x98, 0x01, 0x0a, 0x18, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, + 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, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 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, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, + 0x38, 0x17, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x32, 0xe9, 0x0a, + 0x0a, 0x11, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0xc7, 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, 0x64, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, + 0x0a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x56, 0x3a, 0x01, 0x2a, 0x5a, 0x20, 0x3a, 0x01, 0x2a, 0x22, + 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x79, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 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, 0x12, 0x95, 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, 0x35, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x09, 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, 0xd0, 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, 0x6a, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x09, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x5c, 0x5a, 0x23, 0x12, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0x35, 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, 0x3d, 0x2a, 0x2a, 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, 0x30, - 0x03, 0x38, 0x0c, 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, 0xd9, 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, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x64, 0x65, 0x72, 0x7d, 0x2f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0xf1, 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, 0x5e, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x50, 0x5a, 0x1d, 0x12, 0x1b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 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, 0xad, 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, + 0x50, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x09, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x42, 0x5a, + 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x6f, 0x72, 0x69, 0x65, 0x73, 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, 0x95, 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, 0x35, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x09, 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, 0xd0, 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, 0x6a, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x0c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5c, - 0x5a, 0x23, 0x2a, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, + 0x22, 0x6a, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x09, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5c, + 0x5a, 0x23, 0x12, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x2a, 0x35, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, + 0x65, 0x3d, 0x2a, 0x2a, 0x7d, 0x12, 0x35, 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, 0x3d, 0x2a, 0x2a, 0x7d, 0x32, 0xbc, 0x02, 0x0a, - 0x0b, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x68, 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, 0x1d, 0xaa, 0xf8, 0x18, 0x02, 0x30, 0x02, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x11, 0x3a, 0x01, 0x2a, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x12, 0x65, 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, 0x1a, 0xaa, 0xf8, 0x18, 0x02, 0x30, 0x02, 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, 0x30, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x32, 0xb1, 0x0e, 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, 0x30, 0x03, 0x38, 0x1e, 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, - 0x30, 0x03, 0x38, 0x1f, 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, 0x7c, - 0x0a, 0x0c, 0x50, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1e, - 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, - 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, - 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x2b, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, - 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x32, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x78, 0x0a, 0x0d, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1f, 0x2e, + 0x6d, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x2a, 0x2a, 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, - 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, 0x30, 0x03, 0x38, 0x20, 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, 0x71, 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, 0x20, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, - 0x1d, 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, 0x7b, 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, 0x24, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x1d, 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, 0xa1, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x72, + 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, 0x30, 0x03, 0x38, 0x0c, + 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, 0xd9, 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, 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, 0x6a, 0xaa, + 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x0c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5c, 0x5a, 0x23, 0x2a, + 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x79, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x3d, 0x2a, + 0x2a, 0x7d, 0x2a, 0x35, 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, 0x3d, 0x2a, 0x2a, 0x7d, 0x32, 0xbc, 0x02, 0x0a, 0x0b, 0x55, 0x73, + 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x68, 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, 0x1d, 0xaa, 0xf8, 0x18, 0x02, 0x30, 0x02, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x11, 0x3a, 0x01, 0x2a, 0x22, 0x0c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x75, + 0x73, 0x65, 0x72, 0x12, 0x65, 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, 0x1a, + 0xaa, 0xf8, 0x18, 0x02, 0x30, 0x02, 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, 0x30, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x32, 0xb1, 0x0e, 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, 0x30, 0x03, 0x38, 0x1e, 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, 0x30, 0x03, 0x38, + 0x1f, 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, 0x7c, 0x0a, 0x0c, 0x50, + 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1e, 0x2e, 0x6d, 0x69, + 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x6d, 0x69, + 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0xaa, 0xf8, + 0x18, 0x04, 0x30, 0x03, 0x38, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x3a, 0x05, 0x70, 0x61, + 0x74, 0x63, 0x68, 0x32, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 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, 0x30, 0x03, 0x38, 0x20, 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, 0x71, 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, 0x20, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x1d, 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, 0x7b, 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, 0x24, 0xaa, + 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x1d, 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, 0xa1, 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, 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, 0x32, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x21, - 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, 0x9e, 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, + 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, 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, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x32, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x21, 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, 0x9e, 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, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x26, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x21, 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, 0x76, 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, - 0x22, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x19, 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, 0x8d, 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, 0x74, 0x52, 0x75, - 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x19, 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, 0x80, 0x01, 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, + 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, 0x26, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x21, 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, 0x76, 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, 0x22, 0xaa, 0xf8, + 0x18, 0x04, 0x30, 0x03, 0x38, 0x19, 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, 0x8d, 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, 0x74, 0x52, 0x75, 0x6c, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x2d, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x19, 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, 0x80, 0x01, 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, 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, 0x26, - 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x19, 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, 0x30, 0x03, 0x38, 0x1a, 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, + 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0xaa, 0xf8, 0x18, + 0x04, 0x30, 0x03, 0x38, 0x19, 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, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, + 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, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x54, 0x79, + 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, - 0x30, 0x03, 0x38, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x1a, 0x11, 0x2f, + 0x30, 0x03, 0x38, 0x1a, 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, 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, + 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, 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, 0x30, 0x03, 0x38, - 0x1c, 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, - 0xa2, 0x01, 0x0a, 0x12, 0x45, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x45, - 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, - 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x69, 0x6e, 0x64, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x1f, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x21, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x11, 0x12, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x73, 0x32, 0xca, 0x04, 0x0a, 0x12, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x71, 0x0a, 0x09, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x29, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x05, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x95, - 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, - 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, - 0x6c, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x06, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, - 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x73, 0x73, 0x69, 0x67, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x78, 0x0a, 0x0a, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x1c, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x2d, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x07, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1f, 0x3a, 0x01, 0x2a, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, - 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, - 0x12, 0xae, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, - 0x1c, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, - 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63, 0xaa, 0xf8, - 0x18, 0x04, 0x30, 0x03, 0x38, 0x08, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x55, 0x2a, 0x53, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x2f, 0x7b, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x61, - 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x72, 0x6f, 0x6c, 0x65, 0x7d, 0x2f, - 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x61, 0x73, - 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x7d, 0x32, 0xa4, 0x06, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x71, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 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, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x02, 0x38, 0x02, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x77, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 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, - 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0xaa, 0xf8, - 0x18, 0x04, 0x30, 0x03, 0x38, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, 0x22, - 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x12, 0x74, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 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, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x04, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x2a, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x77, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 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, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0xaa, 0xf8, 0x18, - 0x04, 0x30, 0x03, 0x38, 0x03, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, 0x1a, 0x10, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x12, 0x78, 0x0a, 0x0c, 0x50, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x12, 0x1e, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, - 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, - 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x27, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x03, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x19, 0x3a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x32, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0xbb, 0x01, 0x0a, 0x1e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, - 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x30, 0x2e, - 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x31, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, - 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x34, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x23, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x26, 0x3a, 0x01, 0x2a, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x72, - 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x32, 0x9a, 0x06, 0x0a, 0x10, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x76, 0x0a, - 0x0b, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x6d, - 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x69, - 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0xaa, 0xf8, 0x18, - 0x04, 0x30, 0x03, 0x38, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, - 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x75, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, + 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, 0x30, 0x03, 0x38, + 0x1b, 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, 0x30, 0x03, 0x38, 0x1c, 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, 0xa2, 0x01, 0x0a, + 0x12, 0x45, 0x76, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x27, 0x2e, + 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x1f, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x11, + 0x12, 0x0f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x32, 0xca, 0x04, 0x0a, 0x12, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x71, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x29, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x05, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, + 0x12, 0x19, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x95, 0x01, 0x0a, 0x13, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x69, 0x6e, + 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x41, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x2f, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x06, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x78, 0x0a, 0x0a, 0x41, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x6c, + 0x65, 0x12, 0x1c, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, + 0x73, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73, 0x73, 0x69, + 0x67, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, + 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x07, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x3a, 0x01, + 0x2a, 0x22, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x12, 0xae, 0x01, + 0x0a, 0x0a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x1c, 0x2e, 0x6d, + 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, + 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6d, 0x69, 0x6e, + 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x52, 0x6f, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x63, 0xaa, 0xf8, 0x18, 0x04, 0x30, + 0x03, 0x38, 0x08, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x55, 0x2a, 0x53, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x72, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x2f, 0x7b, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x61, 0x73, 0x73, 0x69, + 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x72, 0x6f, 0x6c, 0x65, 0x7d, 0x2f, 0x73, 0x75, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x2f, 0x7b, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x67, + 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x32, 0xa4, + 0x06, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x71, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x12, 0x1e, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 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, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x20, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x02, 0x38, 0x02, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x77, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0xaa, 0xf8, 0x18, 0x04, 0x30, - 0x03, 0x38, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x7b, 0x0a, 0x0e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x20, - 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x16, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x78, 0x0a, 0x0e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x6d, 0x69, - 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0xaa, 0xf8, 0x18, 0x04, 0x30, + 0x03, 0x38, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, 0x22, 0x10, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x74, + 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, + 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 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, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x20, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x04, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x12, 0x2a, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x12, 0x77, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 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, 0x6a, 0x65, 0x63, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, + 0x38, 0x03, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, 0x1a, 0x10, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x78, 0x0a, + 0x0c, 0x50, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1e, 0x2e, + 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, + 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x61, 0x74, 0x63, 0x68, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, + 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x03, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x3a, 0x05, + 0x70, 0x61, 0x74, 0x63, 0x68, 0x32, 0x10, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0xbb, 0x01, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, + 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x30, 0x2e, 0x6d, 0x69, 0x6e, + 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x6d, + 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x69, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x34, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x3a, + 0x01, 0x2a, 0x22, 0x21, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x2f, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x2f, 0x72, 0x65, 0x63, 0x6f, + 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x32, 0xa6, 0x07, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x76, 0x0a, 0x0b, 0x47, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x2e, 0x6d, 0x69, 0x6e, 0x64, + 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, + 0x38, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x12, 0x75, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x73, 0x12, 0x1f, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x15, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x7b, 0x0a, 0x0e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x6d, 0x69, + 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 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, + 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x21, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, - 0x2a, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, - 0x65, 0x72, 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x63, 0x6c, 0x61, - 0x69, 0x6d, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x27, 0x2e, - 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x63, - 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, + 0x22, 0x24, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, + 0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x78, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 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, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0xaa, + 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x2a, 0x11, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, + 0x12, 0x89, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, + 0x64, 0x65, 0x72, 0x42, 0x79, 0x49, 0x44, 0x12, 0x24, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, + 0x65, 0x72, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, + 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x42, 0x79, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x0c, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x18, 0x2a, 0x16, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0x8e, 0x01, 0x0a, + 0x15, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x50, 0x72, 0x6f, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x27, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x22, 0xaa, 0xf8, 0x18, 0x02, 0x30, 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, - 0x64, 0x65, 0x72, 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x6d, + 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x28, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, + 0x6e, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0xaa, 0xf8, 0x18, 0x02, 0x30, + 0x02, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, + 0x2f, 0x6d, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x8e, 0x01, + 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x69, 0x6e, 0x64, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0xaa, 0xf8, 0x18, - 0x04, 0x30, 0x03, 0x38, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x65, 0x73, 0x3a, 0x3a, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0xcd, 0xcb, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 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, + 0x76, 0x69, 0x64, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0xaa, 0xf8, 0x18, 0x04, 0x30, 0x03, 0x38, 0x15, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x65, 0x73, 0x3a, 0x3a, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xcd, 0xcb, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 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 ( @@ -12404,7 +12538,7 @@ func file_minder_v1_minder_proto_rawDescGZIP() []byte { } var file_minder_v1_minder_proto_enumTypes = make([]protoimpl.EnumInfo, 10) -var file_minder_v1_minder_proto_msgTypes = make([]protoimpl.MessageInfo, 161) +var file_minder_v1_minder_proto_msgTypes = make([]protoimpl.MessageInfo, 163) var file_minder_v1_minder_proto_goTypes = []interface{}{ (ObjectOwner)(0), // 0: minder.v1.ObjectOwner (Relation)(0), // 1: minder.v1.Relation @@ -12542,46 +12676,48 @@ var file_minder_v1_minder_proto_goTypes = []interface{}{ (*CreateProviderResponse)(nil), // 133: minder.v1.CreateProviderResponse (*DeleteProviderRequest)(nil), // 134: minder.v1.DeleteProviderRequest (*DeleteProviderResponse)(nil), // 135: minder.v1.DeleteProviderResponse - (*GetUnclaimedProvidersRequest)(nil), // 136: minder.v1.GetUnclaimedProvidersRequest - (*GetUnclaimedProvidersResponse)(nil), // 137: minder.v1.GetUnclaimedProvidersResponse - (*ListProviderClassesRequest)(nil), // 138: minder.v1.ListProviderClassesRequest - (*ListProviderClassesResponse)(nil), // 139: minder.v1.ListProviderClassesResponse - (*AuthorizationParams)(nil), // 140: minder.v1.AuthorizationParams - (*ProviderParameter)(nil), // 141: minder.v1.ProviderParameter - (*GitHubAppParams)(nil), // 142: minder.v1.GitHubAppParams - (*Provider)(nil), // 143: minder.v1.Provider - (*PrDependencies_ContextualDependency)(nil), // 144: minder.v1.PrDependencies.ContextualDependency - (*PrDependencies_ContextualDependency_FilePatch)(nil), // 145: minder.v1.PrDependencies.ContextualDependency.FilePatch - (*PrContents_File)(nil), // 146: minder.v1.PrContents.File - (*PrContents_File_Line)(nil), // 147: minder.v1.PrContents.File.Line - (*RegisterRepoResult_Status)(nil), // 148: minder.v1.RegisterRepoResult.Status - nil, // 149: minder.v1.RuleEvaluationStatus.EntityInfoEntry - (*ListEvaluationResultsResponse_EntityProfileEvaluationResults)(nil), // 150: minder.v1.ListEvaluationResultsResponse.EntityProfileEvaluationResults - (*ListEvaluationResultsResponse_EntityEvaluationResults)(nil), // 151: minder.v1.ListEvaluationResultsResponse.EntityEvaluationResults - (*RestType_Fallback)(nil), // 152: minder.v1.RestType.Fallback - (*DiffType_Ecosystem)(nil), // 153: minder.v1.DiffType.Ecosystem - (*RuleType_Definition)(nil), // 154: minder.v1.RuleType.Definition - (*RuleType_Definition_Ingest)(nil), // 155: minder.v1.RuleType.Definition.Ingest - (*RuleType_Definition_Eval)(nil), // 156: minder.v1.RuleType.Definition.Eval - (*RuleType_Definition_Remediate)(nil), // 157: minder.v1.RuleType.Definition.Remediate - (*RuleType_Definition_Alert)(nil), // 158: minder.v1.RuleType.Definition.Alert - (*RuleType_Definition_Eval_JQComparison)(nil), // 159: minder.v1.RuleType.Definition.Eval.JQComparison - (*RuleType_Definition_Eval_Rego)(nil), // 160: minder.v1.RuleType.Definition.Eval.Rego - (*RuleType_Definition_Eval_Vulncheck)(nil), // 161: minder.v1.RuleType.Definition.Eval.Vulncheck - (*RuleType_Definition_Eval_Trusty)(nil), // 162: minder.v1.RuleType.Definition.Eval.Trusty - (*RuleType_Definition_Eval_Homoglyphs)(nil), // 163: minder.v1.RuleType.Definition.Eval.Homoglyphs - (*RuleType_Definition_Eval_JQComparison_Operator)(nil), // 164: minder.v1.RuleType.Definition.Eval.JQComparison.Operator - (*RuleType_Definition_Remediate_GhBranchProtectionType)(nil), // 165: minder.v1.RuleType.Definition.Remediate.GhBranchProtectionType - (*RuleType_Definition_Remediate_PullRequestRemediation)(nil), // 166: minder.v1.RuleType.Definition.Remediate.PullRequestRemediation - (*RuleType_Definition_Remediate_PullRequestRemediation_Content)(nil), // 167: minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.Content - (*RuleType_Definition_Remediate_PullRequestRemediation_ActionsReplaceTagsWithSha)(nil), // 168: minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.ActionsReplaceTagsWithSha - (*RuleType_Definition_Alert_AlertTypeSA)(nil), // 169: minder.v1.RuleType.Definition.Alert.AlertTypeSA - (*Profile_Rule)(nil), // 170: minder.v1.Profile.Rule - (*timestamppb.Timestamp)(nil), // 171: google.protobuf.Timestamp - (*fieldmaskpb.FieldMask)(nil), // 172: google.protobuf.FieldMask - (*structpb.Struct)(nil), // 173: google.protobuf.Struct - (*descriptorpb.EnumValueOptions)(nil), // 174: google.protobuf.EnumValueOptions - (*descriptorpb.MethodOptions)(nil), // 175: google.protobuf.MethodOptions + (*DeleteProviderByIDRequest)(nil), // 136: minder.v1.DeleteProviderByIDRequest + (*DeleteProviderByIDResponse)(nil), // 137: minder.v1.DeleteProviderByIDResponse + (*GetUnclaimedProvidersRequest)(nil), // 138: minder.v1.GetUnclaimedProvidersRequest + (*GetUnclaimedProvidersResponse)(nil), // 139: minder.v1.GetUnclaimedProvidersResponse + (*ListProviderClassesRequest)(nil), // 140: minder.v1.ListProviderClassesRequest + (*ListProviderClassesResponse)(nil), // 141: minder.v1.ListProviderClassesResponse + (*AuthorizationParams)(nil), // 142: minder.v1.AuthorizationParams + (*ProviderParameter)(nil), // 143: minder.v1.ProviderParameter + (*GitHubAppParams)(nil), // 144: minder.v1.GitHubAppParams + (*Provider)(nil), // 145: minder.v1.Provider + (*PrDependencies_ContextualDependency)(nil), // 146: minder.v1.PrDependencies.ContextualDependency + (*PrDependencies_ContextualDependency_FilePatch)(nil), // 147: minder.v1.PrDependencies.ContextualDependency.FilePatch + (*PrContents_File)(nil), // 148: minder.v1.PrContents.File + (*PrContents_File_Line)(nil), // 149: minder.v1.PrContents.File.Line + (*RegisterRepoResult_Status)(nil), // 150: minder.v1.RegisterRepoResult.Status + nil, // 151: minder.v1.RuleEvaluationStatus.EntityInfoEntry + (*ListEvaluationResultsResponse_EntityProfileEvaluationResults)(nil), // 152: minder.v1.ListEvaluationResultsResponse.EntityProfileEvaluationResults + (*ListEvaluationResultsResponse_EntityEvaluationResults)(nil), // 153: minder.v1.ListEvaluationResultsResponse.EntityEvaluationResults + (*RestType_Fallback)(nil), // 154: minder.v1.RestType.Fallback + (*DiffType_Ecosystem)(nil), // 155: minder.v1.DiffType.Ecosystem + (*RuleType_Definition)(nil), // 156: minder.v1.RuleType.Definition + (*RuleType_Definition_Ingest)(nil), // 157: minder.v1.RuleType.Definition.Ingest + (*RuleType_Definition_Eval)(nil), // 158: minder.v1.RuleType.Definition.Eval + (*RuleType_Definition_Remediate)(nil), // 159: minder.v1.RuleType.Definition.Remediate + (*RuleType_Definition_Alert)(nil), // 160: minder.v1.RuleType.Definition.Alert + (*RuleType_Definition_Eval_JQComparison)(nil), // 161: minder.v1.RuleType.Definition.Eval.JQComparison + (*RuleType_Definition_Eval_Rego)(nil), // 162: minder.v1.RuleType.Definition.Eval.Rego + (*RuleType_Definition_Eval_Vulncheck)(nil), // 163: minder.v1.RuleType.Definition.Eval.Vulncheck + (*RuleType_Definition_Eval_Trusty)(nil), // 164: minder.v1.RuleType.Definition.Eval.Trusty + (*RuleType_Definition_Eval_Homoglyphs)(nil), // 165: minder.v1.RuleType.Definition.Eval.Homoglyphs + (*RuleType_Definition_Eval_JQComparison_Operator)(nil), // 166: minder.v1.RuleType.Definition.Eval.JQComparison.Operator + (*RuleType_Definition_Remediate_GhBranchProtectionType)(nil), // 167: minder.v1.RuleType.Definition.Remediate.GhBranchProtectionType + (*RuleType_Definition_Remediate_PullRequestRemediation)(nil), // 168: minder.v1.RuleType.Definition.Remediate.PullRequestRemediation + (*RuleType_Definition_Remediate_PullRequestRemediation_Content)(nil), // 169: minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.Content + (*RuleType_Definition_Remediate_PullRequestRemediation_ActionsReplaceTagsWithSha)(nil), // 170: minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.ActionsReplaceTagsWithSha + (*RuleType_Definition_Alert_AlertTypeSA)(nil), // 171: minder.v1.RuleType.Definition.Alert.AlertTypeSA + (*Profile_Rule)(nil), // 172: minder.v1.Profile.Rule + (*timestamppb.Timestamp)(nil), // 173: google.protobuf.Timestamp + (*fieldmaskpb.FieldMask)(nil), // 174: google.protobuf.FieldMask + (*structpb.Struct)(nil), // 175: google.protobuf.Struct + (*descriptorpb.EnumValueOptions)(nil), // 176: google.protobuf.EnumValueOptions + (*descriptorpb.MethodOptions)(nil), // 177: google.protobuf.MethodOptions } var file_minder_v1_minder_proto_depIdxs = []int32{ 2, // 0: minder.v1.RpcOptions.target_resource:type_name -> minder.v1.TargetResource @@ -12589,8 +12725,8 @@ var file_minder_v1_minder_proto_depIdxs = []int32{ 82, // 2: minder.v1.ListArtifactsRequest.context:type_name -> minder.v1.Context 13, // 3: minder.v1.ListArtifactsResponse.results:type_name -> minder.v1.Artifact 14, // 4: minder.v1.Artifact.versions:type_name -> minder.v1.ArtifactVersion - 171, // 5: minder.v1.Artifact.created_at:type_name -> google.protobuf.Timestamp - 171, // 6: minder.v1.ArtifactVersion.created_at:type_name -> google.protobuf.Timestamp + 173, // 5: minder.v1.Artifact.created_at:type_name -> google.protobuf.Timestamp + 173, // 6: minder.v1.ArtifactVersion.created_at:type_name -> google.protobuf.Timestamp 82, // 7: minder.v1.GetArtifactByIdRequest.context:type_name -> minder.v1.Context 13, // 8: minder.v1.GetArtifactByIdResponse.artifact:type_name -> minder.v1.Artifact 14, // 9: minder.v1.GetArtifactByIdResponse.versions:type_name -> minder.v1.ArtifactVersion @@ -12599,23 +12735,23 @@ var file_minder_v1_minder_proto_depIdxs = []int32{ 14, // 12: minder.v1.GetArtifactByNameResponse.versions:type_name -> minder.v1.ArtifactVersion 3, // 13: minder.v1.Dependency.ecosystem:type_name -> minder.v1.DepEcosystem 19, // 14: minder.v1.PrDependencies.pr:type_name -> minder.v1.PullRequest - 144, // 15: minder.v1.PrDependencies.deps:type_name -> minder.v1.PrDependencies.ContextualDependency + 146, // 15: minder.v1.PrDependencies.deps:type_name -> minder.v1.PrDependencies.ContextualDependency 19, // 16: minder.v1.PrContents.pr:type_name -> minder.v1.PullRequest - 146, // 17: minder.v1.PrContents.files:type_name -> minder.v1.PrContents.File + 148, // 17: minder.v1.PrContents.files:type_name -> minder.v1.PrContents.File 82, // 18: minder.v1.GetAuthorizationURLRequest.context:type_name -> minder.v1.Context 82, // 19: minder.v1.StoreProviderTokenRequest.context:type_name -> minder.v1.Context - 171, // 20: minder.v1.Project.created_at:type_name -> google.protobuf.Timestamp - 171, // 21: minder.v1.Project.updated_at:type_name -> google.protobuf.Timestamp + 173, // 20: minder.v1.Project.created_at:type_name -> google.protobuf.Timestamp + 173, // 21: minder.v1.Project.updated_at:type_name -> google.protobuf.Timestamp 82, // 22: minder.v1.ListRemoteRepositoriesFromProviderRequest.context:type_name -> minder.v1.Context 32, // 23: minder.v1.ListRemoteRepositoriesFromProviderResponse.results:type_name -> minder.v1.UpstreamRepositoryRef 82, // 24: minder.v1.UpstreamRepositoryRef.context:type_name -> minder.v1.Context 82, // 25: minder.v1.Repository.context:type_name -> minder.v1.Context - 171, // 26: minder.v1.Repository.created_at:type_name -> google.protobuf.Timestamp - 171, // 27: minder.v1.Repository.updated_at:type_name -> google.protobuf.Timestamp + 173, // 26: minder.v1.Repository.created_at:type_name -> google.protobuf.Timestamp + 173, // 27: minder.v1.Repository.updated_at:type_name -> google.protobuf.Timestamp 32, // 28: minder.v1.RegisterRepositoryRequest.repository:type_name -> minder.v1.UpstreamRepositoryRef 82, // 29: minder.v1.RegisterRepositoryRequest.context:type_name -> minder.v1.Context 33, // 30: minder.v1.RegisterRepoResult.repository:type_name -> minder.v1.Repository - 148, // 31: minder.v1.RegisterRepoResult.status:type_name -> minder.v1.RegisterRepoResult.Status + 150, // 31: minder.v1.RegisterRepoResult.status:type_name -> minder.v1.RegisterRepoResult.Status 35, // 32: minder.v1.RegisterRepositoryResponse.result:type_name -> minder.v1.RegisterRepoResult 82, // 33: minder.v1.GetRepositoryByIdRequest.context:type_name -> minder.v1.Context 33, // 34: minder.v1.GetRepositoryByIdResponse.repository:type_name -> minder.v1.Repository @@ -12625,13 +12761,13 @@ var file_minder_v1_minder_proto_depIdxs = []int32{ 82, // 38: minder.v1.DeleteRepositoryByNameRequest.context:type_name -> minder.v1.Context 82, // 39: minder.v1.ListRepositoriesRequest.context:type_name -> minder.v1.Context 33, // 40: minder.v1.ListRepositoriesResponse.results:type_name -> minder.v1.Repository - 171, // 41: minder.v1.VerifyProviderTokenFromRequest.timestamp:type_name -> google.protobuf.Timestamp + 173, // 41: minder.v1.VerifyProviderTokenFromRequest.timestamp:type_name -> google.protobuf.Timestamp 82, // 42: minder.v1.VerifyProviderTokenFromRequest.context:type_name -> minder.v1.Context 82, // 43: minder.v1.VerifyProviderCredentialRequest.context:type_name -> minder.v1.Context - 171, // 44: minder.v1.CreateUserResponse.created_at:type_name -> google.protobuf.Timestamp + 173, // 44: minder.v1.CreateUserResponse.created_at:type_name -> google.protobuf.Timestamp 82, // 45: minder.v1.CreateUserResponse.context:type_name -> minder.v1.Context - 171, // 46: minder.v1.UserRecord.created_at:type_name -> google.protobuf.Timestamp - 171, // 47: minder.v1.UserRecord.updated_at:type_name -> google.protobuf.Timestamp + 173, // 46: minder.v1.UserRecord.created_at:type_name -> google.protobuf.Timestamp + 173, // 47: minder.v1.UserRecord.updated_at:type_name -> google.protobuf.Timestamp 56, // 48: minder.v1.GetUserResponse.user:type_name -> minder.v1.UserRecord 29, // 49: minder.v1.GetUserResponse.projects:type_name -> minder.v1.Project 104, // 50: minder.v1.CreateProfileRequest.profile:type_name -> minder.v1.Profile @@ -12640,18 +12776,18 @@ var file_minder_v1_minder_proto_depIdxs = []int32{ 104, // 53: minder.v1.UpdateProfileResponse.profile:type_name -> minder.v1.Profile 82, // 54: minder.v1.PatchProfileRequest.context:type_name -> minder.v1.Context 104, // 55: minder.v1.PatchProfileRequest.patch:type_name -> minder.v1.Profile - 172, // 56: minder.v1.PatchProfileRequest.update_mask:type_name -> google.protobuf.FieldMask + 174, // 56: minder.v1.PatchProfileRequest.update_mask:type_name -> google.protobuf.FieldMask 104, // 57: minder.v1.PatchProfileResponse.profile:type_name -> minder.v1.Profile 82, // 58: minder.v1.DeleteProfileRequest.context:type_name -> minder.v1.Context 82, // 59: minder.v1.ListProfilesRequest.context:type_name -> minder.v1.Context 104, // 60: minder.v1.ListProfilesResponse.profiles:type_name -> minder.v1.Profile 82, // 61: minder.v1.GetProfileByIdRequest.context:type_name -> minder.v1.Context 104, // 62: minder.v1.GetProfileByIdResponse.profile:type_name -> minder.v1.Profile - 171, // 63: minder.v1.ProfileStatus.last_updated:type_name -> google.protobuf.Timestamp - 171, // 64: minder.v1.EvalResultAlert.last_updated:type_name -> google.protobuf.Timestamp - 171, // 65: minder.v1.RuleEvaluationStatus.last_updated:type_name -> google.protobuf.Timestamp - 149, // 66: minder.v1.RuleEvaluationStatus.entity_info:type_name -> minder.v1.RuleEvaluationStatus.EntityInfoEntry - 171, // 67: minder.v1.RuleEvaluationStatus.remediation_last_updated:type_name -> google.protobuf.Timestamp + 173, // 63: minder.v1.ProfileStatus.last_updated:type_name -> google.protobuf.Timestamp + 173, // 64: minder.v1.EvalResultAlert.last_updated:type_name -> google.protobuf.Timestamp + 173, // 65: minder.v1.RuleEvaluationStatus.last_updated:type_name -> google.protobuf.Timestamp + 151, // 66: minder.v1.RuleEvaluationStatus.entity_info:type_name -> minder.v1.RuleEvaluationStatus.EntityInfoEntry + 173, // 67: minder.v1.RuleEvaluationStatus.remediation_last_updated:type_name -> google.protobuf.Timestamp 72, // 68: minder.v1.RuleEvaluationStatus.alert:type_name -> minder.v1.EvalResultAlert 102, // 69: minder.v1.RuleEvaluationStatus.severity:type_name -> minder.v1.Severity 4, // 70: minder.v1.EntityTypedId.type:type_name -> minder.v1.Entity @@ -12674,18 +12810,18 @@ var file_minder_v1_minder_proto_depIdxs = []int32{ 82, // 87: minder.v1.DeleteRuleTypeRequest.context:type_name -> minder.v1.Context 82, // 88: minder.v1.ListEvaluationResultsRequest.context:type_name -> minder.v1.Context 74, // 89: minder.v1.ListEvaluationResultsRequest.entity:type_name -> minder.v1.EntityTypedId - 151, // 90: minder.v1.ListEvaluationResultsResponse.entities:type_name -> minder.v1.ListEvaluationResultsResponse.EntityEvaluationResults - 152, // 91: minder.v1.RestType.fallback:type_name -> minder.v1.RestType.Fallback - 153, // 92: minder.v1.DiffType.ecosystems:type_name -> minder.v1.DiffType.Ecosystem + 153, // 90: minder.v1.ListEvaluationResultsResponse.entities:type_name -> minder.v1.ListEvaluationResultsResponse.EntityEvaluationResults + 154, // 91: minder.v1.RestType.fallback:type_name -> minder.v1.RestType.Fallback + 155, // 92: minder.v1.DiffType.ecosystems:type_name -> minder.v1.DiffType.Ecosystem 9, // 93: minder.v1.Severity.value:type_name -> minder.v1.Severity.Value 82, // 94: minder.v1.RuleType.context:type_name -> minder.v1.Context - 154, // 95: minder.v1.RuleType.def:type_name -> minder.v1.RuleType.Definition + 156, // 95: minder.v1.RuleType.def:type_name -> minder.v1.RuleType.Definition 102, // 96: minder.v1.RuleType.severity:type_name -> minder.v1.Severity 82, // 97: minder.v1.Profile.context:type_name -> minder.v1.Context - 170, // 98: minder.v1.Profile.repository:type_name -> minder.v1.Profile.Rule - 170, // 99: minder.v1.Profile.build_environment:type_name -> minder.v1.Profile.Rule - 170, // 100: minder.v1.Profile.artifact:type_name -> minder.v1.Profile.Rule - 170, // 101: minder.v1.Profile.pull_request:type_name -> minder.v1.Profile.Rule + 172, // 98: minder.v1.Profile.repository:type_name -> minder.v1.Profile.Rule + 172, // 99: minder.v1.Profile.build_environment:type_name -> minder.v1.Profile.Rule + 172, // 100: minder.v1.Profile.artifact:type_name -> minder.v1.Profile.Rule + 172, // 101: minder.v1.Profile.pull_request:type_name -> minder.v1.Profile.Rule 29, // 102: minder.v1.ListProjectsResponse.projects:type_name -> minder.v1.Project 82, // 103: minder.v1.CreateProjectRequest.context:type_name -> minder.v1.Context 29, // 104: minder.v1.CreateProjectResponse.project:type_name -> minder.v1.Project @@ -12694,7 +12830,7 @@ var file_minder_v1_minder_proto_depIdxs = []int32{ 29, // 107: minder.v1.UpdateProjectResponse.project:type_name -> minder.v1.Project 82, // 108: minder.v1.PatchProjectRequest.context:type_name -> minder.v1.Context 113, // 109: minder.v1.PatchProjectRequest.patch:type_name -> minder.v1.ProjectPatch - 172, // 110: minder.v1.PatchProjectRequest.update_mask:type_name -> google.protobuf.FieldMask + 174, // 110: minder.v1.PatchProjectRequest.update_mask:type_name -> google.protobuf.FieldMask 29, // 111: minder.v1.PatchProjectResponse.project:type_name -> minder.v1.Project 74, // 112: minder.v1.CreateEntityReconciliationTaskRequest.entity:type_name -> minder.v1.EntityTypedId 82, // 113: minder.v1.CreateEntityReconciliationTaskRequest.context:type_name -> minder.v1.Context @@ -12709,161 +12845,164 @@ var file_minder_v1_minder_proto_depIdxs = []int32{ 127, // 122: minder.v1.RemoveRoleRequest.role_assignment:type_name -> minder.v1.RoleAssignment 127, // 123: minder.v1.RemoveRoleResponse.role_assignment:type_name -> minder.v1.RoleAssignment 82, // 124: minder.v1.GetProviderRequest.context:type_name -> minder.v1.Context - 143, // 125: minder.v1.GetProviderResponse.provider:type_name -> minder.v1.Provider + 145, // 125: minder.v1.GetProviderResponse.provider:type_name -> minder.v1.Provider 82, // 126: minder.v1.ListProvidersRequest.context:type_name -> minder.v1.Context - 143, // 127: minder.v1.ListProvidersResponse.providers:type_name -> minder.v1.Provider + 145, // 127: minder.v1.ListProvidersResponse.providers:type_name -> minder.v1.Provider 82, // 128: minder.v1.CreateProviderRequest.context:type_name -> minder.v1.Context - 143, // 129: minder.v1.CreateProviderRequest.provider:type_name -> minder.v1.Provider - 143, // 130: minder.v1.CreateProviderResponse.provider:type_name -> minder.v1.Provider - 140, // 131: minder.v1.CreateProviderResponse.authorization:type_name -> minder.v1.AuthorizationParams + 145, // 129: minder.v1.CreateProviderRequest.provider:type_name -> minder.v1.Provider + 145, // 130: minder.v1.CreateProviderResponse.provider:type_name -> minder.v1.Provider + 142, // 131: minder.v1.CreateProviderResponse.authorization:type_name -> minder.v1.AuthorizationParams 82, // 132: minder.v1.DeleteProviderRequest.context:type_name -> minder.v1.Context - 82, // 133: minder.v1.GetUnclaimedProvidersRequest.context:type_name -> minder.v1.Context - 141, // 134: minder.v1.GetUnclaimedProvidersResponse.providers:type_name -> minder.v1.ProviderParameter - 82, // 135: minder.v1.ListProviderClassesRequest.context:type_name -> minder.v1.Context - 142, // 136: minder.v1.ProviderParameter.github_app:type_name -> minder.v1.GitHubAppParams - 5, // 137: minder.v1.Provider.implements:type_name -> minder.v1.ProviderType - 173, // 138: minder.v1.Provider.config:type_name -> google.protobuf.Struct - 7, // 139: minder.v1.Provider.auth_flows:type_name -> minder.v1.AuthorizationFlow - 141, // 140: minder.v1.Provider.parameters:type_name -> minder.v1.ProviderParameter - 20, // 141: minder.v1.PrDependencies.ContextualDependency.dep:type_name -> minder.v1.Dependency - 145, // 142: minder.v1.PrDependencies.ContextualDependency.file:type_name -> minder.v1.PrDependencies.ContextualDependency.FilePatch - 147, // 143: minder.v1.PrContents.File.patch_lines:type_name -> minder.v1.PrContents.File.Line - 71, // 144: minder.v1.ListEvaluationResultsResponse.EntityProfileEvaluationResults.profile_status:type_name -> minder.v1.ProfileStatus - 73, // 145: minder.v1.ListEvaluationResultsResponse.EntityProfileEvaluationResults.results:type_name -> minder.v1.RuleEvaluationStatus - 74, // 146: minder.v1.ListEvaluationResultsResponse.EntityEvaluationResults.entity:type_name -> minder.v1.EntityTypedId - 150, // 147: minder.v1.ListEvaluationResultsResponse.EntityEvaluationResults.profiles:type_name -> minder.v1.ListEvaluationResultsResponse.EntityProfileEvaluationResults - 173, // 148: minder.v1.RuleType.Definition.rule_schema:type_name -> google.protobuf.Struct - 173, // 149: minder.v1.RuleType.Definition.param_schema:type_name -> google.protobuf.Struct - 155, // 150: minder.v1.RuleType.Definition.ingest:type_name -> minder.v1.RuleType.Definition.Ingest - 156, // 151: minder.v1.RuleType.Definition.eval:type_name -> minder.v1.RuleType.Definition.Eval - 157, // 152: minder.v1.RuleType.Definition.remediate:type_name -> minder.v1.RuleType.Definition.Remediate - 158, // 153: minder.v1.RuleType.Definition.alert:type_name -> minder.v1.RuleType.Definition.Alert - 97, // 154: minder.v1.RuleType.Definition.Ingest.rest:type_name -> minder.v1.RestType - 98, // 155: minder.v1.RuleType.Definition.Ingest.builtin:type_name -> minder.v1.BuiltinType - 99, // 156: minder.v1.RuleType.Definition.Ingest.artifact:type_name -> minder.v1.ArtifactType - 100, // 157: minder.v1.RuleType.Definition.Ingest.git:type_name -> minder.v1.GitType - 101, // 158: minder.v1.RuleType.Definition.Ingest.diff:type_name -> minder.v1.DiffType - 159, // 159: minder.v1.RuleType.Definition.Eval.jq:type_name -> minder.v1.RuleType.Definition.Eval.JQComparison - 160, // 160: minder.v1.RuleType.Definition.Eval.rego:type_name -> minder.v1.RuleType.Definition.Eval.Rego - 161, // 161: minder.v1.RuleType.Definition.Eval.vulncheck:type_name -> minder.v1.RuleType.Definition.Eval.Vulncheck - 162, // 162: minder.v1.RuleType.Definition.Eval.trusty:type_name -> minder.v1.RuleType.Definition.Eval.Trusty - 163, // 163: minder.v1.RuleType.Definition.Eval.homoglyphs:type_name -> minder.v1.RuleType.Definition.Eval.Homoglyphs - 97, // 164: minder.v1.RuleType.Definition.Remediate.rest:type_name -> minder.v1.RestType - 165, // 165: minder.v1.RuleType.Definition.Remediate.gh_branch_protection:type_name -> minder.v1.RuleType.Definition.Remediate.GhBranchProtectionType - 166, // 166: minder.v1.RuleType.Definition.Remediate.pull_request:type_name -> minder.v1.RuleType.Definition.Remediate.PullRequestRemediation - 169, // 167: minder.v1.RuleType.Definition.Alert.security_advisory:type_name -> minder.v1.RuleType.Definition.Alert.AlertTypeSA - 164, // 168: minder.v1.RuleType.Definition.Eval.JQComparison.ingested:type_name -> minder.v1.RuleType.Definition.Eval.JQComparison.Operator - 164, // 169: minder.v1.RuleType.Definition.Eval.JQComparison.profile:type_name -> minder.v1.RuleType.Definition.Eval.JQComparison.Operator - 167, // 170: minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.contents:type_name -> minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.Content - 168, // 171: minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.actions_replace_tags_with_sha:type_name -> minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.ActionsReplaceTagsWithSha - 173, // 172: minder.v1.Profile.Rule.params:type_name -> google.protobuf.Struct - 173, // 173: minder.v1.Profile.Rule.def:type_name -> google.protobuf.Struct - 174, // 174: minder.v1.name:extendee -> google.protobuf.EnumValueOptions - 175, // 175: minder.v1.rpc_options:extendee -> google.protobuf.MethodOptions - 10, // 176: minder.v1.rpc_options:type_name -> minder.v1.RpcOptions - 23, // 177: minder.v1.HealthService.CheckHealth:input_type -> minder.v1.CheckHealthRequest - 11, // 178: minder.v1.ArtifactService.ListArtifacts:input_type -> minder.v1.ListArtifactsRequest - 15, // 179: minder.v1.ArtifactService.GetArtifactById:input_type -> minder.v1.GetArtifactByIdRequest - 17, // 180: minder.v1.ArtifactService.GetArtifactByName:input_type -> minder.v1.GetArtifactByNameRequest - 25, // 181: minder.v1.OAuthService.GetAuthorizationURL:input_type -> minder.v1.GetAuthorizationURLRequest - 27, // 182: minder.v1.OAuthService.StoreProviderToken:input_type -> minder.v1.StoreProviderTokenRequest - 47, // 183: minder.v1.OAuthService.VerifyProviderTokenFrom:input_type -> minder.v1.VerifyProviderTokenFromRequest - 49, // 184: minder.v1.OAuthService.VerifyProviderCredential:input_type -> minder.v1.VerifyProviderCredentialRequest - 34, // 185: minder.v1.RepositoryService.RegisterRepository:input_type -> minder.v1.RegisterRepositoryRequest - 30, // 186: minder.v1.RepositoryService.ListRemoteRepositoriesFromProvider:input_type -> minder.v1.ListRemoteRepositoriesFromProviderRequest - 45, // 187: minder.v1.RepositoryService.ListRepositories:input_type -> minder.v1.ListRepositoriesRequest - 37, // 188: minder.v1.RepositoryService.GetRepositoryById:input_type -> minder.v1.GetRepositoryByIdRequest - 41, // 189: minder.v1.RepositoryService.GetRepositoryByName:input_type -> minder.v1.GetRepositoryByNameRequest - 39, // 190: minder.v1.RepositoryService.DeleteRepositoryById:input_type -> minder.v1.DeleteRepositoryByIdRequest - 43, // 191: minder.v1.RepositoryService.DeleteRepositoryByName:input_type -> minder.v1.DeleteRepositoryByNameRequest - 52, // 192: minder.v1.UserService.CreateUser:input_type -> minder.v1.CreateUserRequest - 54, // 193: minder.v1.UserService.DeleteUser:input_type -> minder.v1.DeleteUserRequest - 57, // 194: minder.v1.UserService.GetUser:input_type -> minder.v1.GetUserRequest - 59, // 195: minder.v1.ProfileService.CreateProfile:input_type -> minder.v1.CreateProfileRequest - 61, // 196: minder.v1.ProfileService.UpdateProfile:input_type -> minder.v1.UpdateProfileRequest - 63, // 197: minder.v1.ProfileService.PatchProfile:input_type -> minder.v1.PatchProfileRequest - 65, // 198: minder.v1.ProfileService.DeleteProfile:input_type -> minder.v1.DeleteProfileRequest - 67, // 199: minder.v1.ProfileService.ListProfiles:input_type -> minder.v1.ListProfilesRequest - 69, // 200: minder.v1.ProfileService.GetProfileById:input_type -> minder.v1.GetProfileByIdRequest - 75, // 201: minder.v1.ProfileService.GetProfileStatusByName:input_type -> minder.v1.GetProfileStatusByNameRequest - 77, // 202: minder.v1.ProfileService.GetProfileStatusByProject:input_type -> minder.v1.GetProfileStatusByProjectRequest - 83, // 203: minder.v1.ProfileService.ListRuleTypes:input_type -> minder.v1.ListRuleTypesRequest - 85, // 204: minder.v1.ProfileService.GetRuleTypeByName:input_type -> minder.v1.GetRuleTypeByNameRequest - 87, // 205: minder.v1.ProfileService.GetRuleTypeById:input_type -> minder.v1.GetRuleTypeByIdRequest - 89, // 206: minder.v1.ProfileService.CreateRuleType:input_type -> minder.v1.CreateRuleTypeRequest - 91, // 207: minder.v1.ProfileService.UpdateRuleType:input_type -> minder.v1.UpdateRuleTypeRequest - 93, // 208: minder.v1.ProfileService.DeleteRuleType:input_type -> minder.v1.DeleteRuleTypeRequest - 95, // 209: minder.v1.EvalResultsService.ListEvaluationResults:input_type -> minder.v1.ListEvaluationResultsRequest - 118, // 210: minder.v1.PermissionsService.ListRoles:input_type -> minder.v1.ListRolesRequest - 120, // 211: minder.v1.PermissionsService.ListRoleAssignments:input_type -> minder.v1.ListRoleAssignmentsRequest - 122, // 212: minder.v1.PermissionsService.AssignRole:input_type -> minder.v1.AssignRoleRequest - 124, // 213: minder.v1.PermissionsService.RemoveRole:input_type -> minder.v1.RemoveRoleRequest - 105, // 214: minder.v1.ProjectsService.ListProjects:input_type -> minder.v1.ListProjectsRequest - 107, // 215: minder.v1.ProjectsService.CreateProject:input_type -> minder.v1.CreateProjectRequest - 109, // 216: minder.v1.ProjectsService.DeleteProject:input_type -> minder.v1.DeleteProjectRequest - 111, // 217: minder.v1.ProjectsService.UpdateProject:input_type -> minder.v1.UpdateProjectRequest - 114, // 218: minder.v1.ProjectsService.PatchProject:input_type -> minder.v1.PatchProjectRequest - 116, // 219: minder.v1.ProjectsService.CreateEntityReconciliationTask:input_type -> minder.v1.CreateEntityReconciliationTaskRequest - 128, // 220: minder.v1.ProvidersService.GetProvider:input_type -> minder.v1.GetProviderRequest - 130, // 221: minder.v1.ProvidersService.ListProviders:input_type -> minder.v1.ListProvidersRequest - 132, // 222: minder.v1.ProvidersService.CreateProvider:input_type -> minder.v1.CreateProviderRequest - 134, // 223: minder.v1.ProvidersService.DeleteProvider:input_type -> minder.v1.DeleteProviderRequest - 136, // 224: minder.v1.ProvidersService.GetUnclaimedProviders:input_type -> minder.v1.GetUnclaimedProvidersRequest - 138, // 225: minder.v1.ProvidersService.ListProviderClasses:input_type -> minder.v1.ListProviderClassesRequest - 24, // 226: minder.v1.HealthService.CheckHealth:output_type -> minder.v1.CheckHealthResponse - 12, // 227: minder.v1.ArtifactService.ListArtifacts:output_type -> minder.v1.ListArtifactsResponse - 16, // 228: minder.v1.ArtifactService.GetArtifactById:output_type -> minder.v1.GetArtifactByIdResponse - 18, // 229: minder.v1.ArtifactService.GetArtifactByName:output_type -> minder.v1.GetArtifactByNameResponse - 26, // 230: minder.v1.OAuthService.GetAuthorizationURL:output_type -> minder.v1.GetAuthorizationURLResponse - 28, // 231: minder.v1.OAuthService.StoreProviderToken:output_type -> minder.v1.StoreProviderTokenResponse - 48, // 232: minder.v1.OAuthService.VerifyProviderTokenFrom:output_type -> minder.v1.VerifyProviderTokenFromResponse - 50, // 233: minder.v1.OAuthService.VerifyProviderCredential:output_type -> minder.v1.VerifyProviderCredentialResponse - 36, // 234: minder.v1.RepositoryService.RegisterRepository:output_type -> minder.v1.RegisterRepositoryResponse - 31, // 235: minder.v1.RepositoryService.ListRemoteRepositoriesFromProvider:output_type -> minder.v1.ListRemoteRepositoriesFromProviderResponse - 46, // 236: minder.v1.RepositoryService.ListRepositories:output_type -> minder.v1.ListRepositoriesResponse - 38, // 237: minder.v1.RepositoryService.GetRepositoryById:output_type -> minder.v1.GetRepositoryByIdResponse - 42, // 238: minder.v1.RepositoryService.GetRepositoryByName:output_type -> minder.v1.GetRepositoryByNameResponse - 40, // 239: minder.v1.RepositoryService.DeleteRepositoryById:output_type -> minder.v1.DeleteRepositoryByIdResponse - 44, // 240: minder.v1.RepositoryService.DeleteRepositoryByName:output_type -> minder.v1.DeleteRepositoryByNameResponse - 53, // 241: minder.v1.UserService.CreateUser:output_type -> minder.v1.CreateUserResponse - 55, // 242: minder.v1.UserService.DeleteUser:output_type -> minder.v1.DeleteUserResponse - 58, // 243: minder.v1.UserService.GetUser:output_type -> minder.v1.GetUserResponse - 60, // 244: minder.v1.ProfileService.CreateProfile:output_type -> minder.v1.CreateProfileResponse - 62, // 245: minder.v1.ProfileService.UpdateProfile:output_type -> minder.v1.UpdateProfileResponse - 64, // 246: minder.v1.ProfileService.PatchProfile:output_type -> minder.v1.PatchProfileResponse - 66, // 247: minder.v1.ProfileService.DeleteProfile:output_type -> minder.v1.DeleteProfileResponse - 68, // 248: minder.v1.ProfileService.ListProfiles:output_type -> minder.v1.ListProfilesResponse - 70, // 249: minder.v1.ProfileService.GetProfileById:output_type -> minder.v1.GetProfileByIdResponse - 76, // 250: minder.v1.ProfileService.GetProfileStatusByName:output_type -> minder.v1.GetProfileStatusByNameResponse - 78, // 251: minder.v1.ProfileService.GetProfileStatusByProject:output_type -> minder.v1.GetProfileStatusByProjectResponse - 84, // 252: minder.v1.ProfileService.ListRuleTypes:output_type -> minder.v1.ListRuleTypesResponse - 86, // 253: minder.v1.ProfileService.GetRuleTypeByName:output_type -> minder.v1.GetRuleTypeByNameResponse - 88, // 254: minder.v1.ProfileService.GetRuleTypeById:output_type -> minder.v1.GetRuleTypeByIdResponse - 90, // 255: minder.v1.ProfileService.CreateRuleType:output_type -> minder.v1.CreateRuleTypeResponse - 92, // 256: minder.v1.ProfileService.UpdateRuleType:output_type -> minder.v1.UpdateRuleTypeResponse - 94, // 257: minder.v1.ProfileService.DeleteRuleType:output_type -> minder.v1.DeleteRuleTypeResponse - 96, // 258: minder.v1.EvalResultsService.ListEvaluationResults:output_type -> minder.v1.ListEvaluationResultsResponse - 119, // 259: minder.v1.PermissionsService.ListRoles:output_type -> minder.v1.ListRolesResponse - 121, // 260: minder.v1.PermissionsService.ListRoleAssignments:output_type -> minder.v1.ListRoleAssignmentsResponse - 123, // 261: minder.v1.PermissionsService.AssignRole:output_type -> minder.v1.AssignRoleResponse - 125, // 262: minder.v1.PermissionsService.RemoveRole:output_type -> minder.v1.RemoveRoleResponse - 106, // 263: minder.v1.ProjectsService.ListProjects:output_type -> minder.v1.ListProjectsResponse - 108, // 264: minder.v1.ProjectsService.CreateProject:output_type -> minder.v1.CreateProjectResponse - 110, // 265: minder.v1.ProjectsService.DeleteProject:output_type -> minder.v1.DeleteProjectResponse - 112, // 266: minder.v1.ProjectsService.UpdateProject:output_type -> minder.v1.UpdateProjectResponse - 115, // 267: minder.v1.ProjectsService.PatchProject:output_type -> minder.v1.PatchProjectResponse - 117, // 268: minder.v1.ProjectsService.CreateEntityReconciliationTask:output_type -> minder.v1.CreateEntityReconciliationTaskResponse - 129, // 269: minder.v1.ProvidersService.GetProvider:output_type -> minder.v1.GetProviderResponse - 131, // 270: minder.v1.ProvidersService.ListProviders:output_type -> minder.v1.ListProvidersResponse - 133, // 271: minder.v1.ProvidersService.CreateProvider:output_type -> minder.v1.CreateProviderResponse - 135, // 272: minder.v1.ProvidersService.DeleteProvider:output_type -> minder.v1.DeleteProviderResponse - 137, // 273: minder.v1.ProvidersService.GetUnclaimedProviders:output_type -> minder.v1.GetUnclaimedProvidersResponse - 139, // 274: minder.v1.ProvidersService.ListProviderClasses:output_type -> minder.v1.ListProviderClassesResponse - 226, // [226:275] is the sub-list for method output_type - 177, // [177:226] is the sub-list for method input_type - 176, // [176:177] is the sub-list for extension type_name - 174, // [174:176] is the sub-list for extension extendee - 0, // [0:174] is the sub-list for field type_name + 82, // 133: minder.v1.DeleteProviderByIDRequest.context:type_name -> minder.v1.Context + 82, // 134: minder.v1.GetUnclaimedProvidersRequest.context:type_name -> minder.v1.Context + 143, // 135: minder.v1.GetUnclaimedProvidersResponse.providers:type_name -> minder.v1.ProviderParameter + 82, // 136: minder.v1.ListProviderClassesRequest.context:type_name -> minder.v1.Context + 144, // 137: minder.v1.ProviderParameter.github_app:type_name -> minder.v1.GitHubAppParams + 5, // 138: minder.v1.Provider.implements:type_name -> minder.v1.ProviderType + 175, // 139: minder.v1.Provider.config:type_name -> google.protobuf.Struct + 7, // 140: minder.v1.Provider.auth_flows:type_name -> minder.v1.AuthorizationFlow + 143, // 141: minder.v1.Provider.parameters:type_name -> minder.v1.ProviderParameter + 20, // 142: minder.v1.PrDependencies.ContextualDependency.dep:type_name -> minder.v1.Dependency + 147, // 143: minder.v1.PrDependencies.ContextualDependency.file:type_name -> minder.v1.PrDependencies.ContextualDependency.FilePatch + 149, // 144: minder.v1.PrContents.File.patch_lines:type_name -> minder.v1.PrContents.File.Line + 71, // 145: minder.v1.ListEvaluationResultsResponse.EntityProfileEvaluationResults.profile_status:type_name -> minder.v1.ProfileStatus + 73, // 146: minder.v1.ListEvaluationResultsResponse.EntityProfileEvaluationResults.results:type_name -> minder.v1.RuleEvaluationStatus + 74, // 147: minder.v1.ListEvaluationResultsResponse.EntityEvaluationResults.entity:type_name -> minder.v1.EntityTypedId + 152, // 148: minder.v1.ListEvaluationResultsResponse.EntityEvaluationResults.profiles:type_name -> minder.v1.ListEvaluationResultsResponse.EntityProfileEvaluationResults + 175, // 149: minder.v1.RuleType.Definition.rule_schema:type_name -> google.protobuf.Struct + 175, // 150: minder.v1.RuleType.Definition.param_schema:type_name -> google.protobuf.Struct + 157, // 151: minder.v1.RuleType.Definition.ingest:type_name -> minder.v1.RuleType.Definition.Ingest + 158, // 152: minder.v1.RuleType.Definition.eval:type_name -> minder.v1.RuleType.Definition.Eval + 159, // 153: minder.v1.RuleType.Definition.remediate:type_name -> minder.v1.RuleType.Definition.Remediate + 160, // 154: minder.v1.RuleType.Definition.alert:type_name -> minder.v1.RuleType.Definition.Alert + 97, // 155: minder.v1.RuleType.Definition.Ingest.rest:type_name -> minder.v1.RestType + 98, // 156: minder.v1.RuleType.Definition.Ingest.builtin:type_name -> minder.v1.BuiltinType + 99, // 157: minder.v1.RuleType.Definition.Ingest.artifact:type_name -> minder.v1.ArtifactType + 100, // 158: minder.v1.RuleType.Definition.Ingest.git:type_name -> minder.v1.GitType + 101, // 159: minder.v1.RuleType.Definition.Ingest.diff:type_name -> minder.v1.DiffType + 161, // 160: minder.v1.RuleType.Definition.Eval.jq:type_name -> minder.v1.RuleType.Definition.Eval.JQComparison + 162, // 161: minder.v1.RuleType.Definition.Eval.rego:type_name -> minder.v1.RuleType.Definition.Eval.Rego + 163, // 162: minder.v1.RuleType.Definition.Eval.vulncheck:type_name -> minder.v1.RuleType.Definition.Eval.Vulncheck + 164, // 163: minder.v1.RuleType.Definition.Eval.trusty:type_name -> minder.v1.RuleType.Definition.Eval.Trusty + 165, // 164: minder.v1.RuleType.Definition.Eval.homoglyphs:type_name -> minder.v1.RuleType.Definition.Eval.Homoglyphs + 97, // 165: minder.v1.RuleType.Definition.Remediate.rest:type_name -> minder.v1.RestType + 167, // 166: minder.v1.RuleType.Definition.Remediate.gh_branch_protection:type_name -> minder.v1.RuleType.Definition.Remediate.GhBranchProtectionType + 168, // 167: minder.v1.RuleType.Definition.Remediate.pull_request:type_name -> minder.v1.RuleType.Definition.Remediate.PullRequestRemediation + 171, // 168: minder.v1.RuleType.Definition.Alert.security_advisory:type_name -> minder.v1.RuleType.Definition.Alert.AlertTypeSA + 166, // 169: minder.v1.RuleType.Definition.Eval.JQComparison.ingested:type_name -> minder.v1.RuleType.Definition.Eval.JQComparison.Operator + 166, // 170: minder.v1.RuleType.Definition.Eval.JQComparison.profile:type_name -> minder.v1.RuleType.Definition.Eval.JQComparison.Operator + 169, // 171: minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.contents:type_name -> minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.Content + 170, // 172: minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.actions_replace_tags_with_sha:type_name -> minder.v1.RuleType.Definition.Remediate.PullRequestRemediation.ActionsReplaceTagsWithSha + 175, // 173: minder.v1.Profile.Rule.params:type_name -> google.protobuf.Struct + 175, // 174: minder.v1.Profile.Rule.def:type_name -> google.protobuf.Struct + 176, // 175: minder.v1.name:extendee -> google.protobuf.EnumValueOptions + 177, // 176: minder.v1.rpc_options:extendee -> google.protobuf.MethodOptions + 10, // 177: minder.v1.rpc_options:type_name -> minder.v1.RpcOptions + 23, // 178: minder.v1.HealthService.CheckHealth:input_type -> minder.v1.CheckHealthRequest + 11, // 179: minder.v1.ArtifactService.ListArtifacts:input_type -> minder.v1.ListArtifactsRequest + 15, // 180: minder.v1.ArtifactService.GetArtifactById:input_type -> minder.v1.GetArtifactByIdRequest + 17, // 181: minder.v1.ArtifactService.GetArtifactByName:input_type -> minder.v1.GetArtifactByNameRequest + 25, // 182: minder.v1.OAuthService.GetAuthorizationURL:input_type -> minder.v1.GetAuthorizationURLRequest + 27, // 183: minder.v1.OAuthService.StoreProviderToken:input_type -> minder.v1.StoreProviderTokenRequest + 47, // 184: minder.v1.OAuthService.VerifyProviderTokenFrom:input_type -> minder.v1.VerifyProviderTokenFromRequest + 49, // 185: minder.v1.OAuthService.VerifyProviderCredential:input_type -> minder.v1.VerifyProviderCredentialRequest + 34, // 186: minder.v1.RepositoryService.RegisterRepository:input_type -> minder.v1.RegisterRepositoryRequest + 30, // 187: minder.v1.RepositoryService.ListRemoteRepositoriesFromProvider:input_type -> minder.v1.ListRemoteRepositoriesFromProviderRequest + 45, // 188: minder.v1.RepositoryService.ListRepositories:input_type -> minder.v1.ListRepositoriesRequest + 37, // 189: minder.v1.RepositoryService.GetRepositoryById:input_type -> minder.v1.GetRepositoryByIdRequest + 41, // 190: minder.v1.RepositoryService.GetRepositoryByName:input_type -> minder.v1.GetRepositoryByNameRequest + 39, // 191: minder.v1.RepositoryService.DeleteRepositoryById:input_type -> minder.v1.DeleteRepositoryByIdRequest + 43, // 192: minder.v1.RepositoryService.DeleteRepositoryByName:input_type -> minder.v1.DeleteRepositoryByNameRequest + 52, // 193: minder.v1.UserService.CreateUser:input_type -> minder.v1.CreateUserRequest + 54, // 194: minder.v1.UserService.DeleteUser:input_type -> minder.v1.DeleteUserRequest + 57, // 195: minder.v1.UserService.GetUser:input_type -> minder.v1.GetUserRequest + 59, // 196: minder.v1.ProfileService.CreateProfile:input_type -> minder.v1.CreateProfileRequest + 61, // 197: minder.v1.ProfileService.UpdateProfile:input_type -> minder.v1.UpdateProfileRequest + 63, // 198: minder.v1.ProfileService.PatchProfile:input_type -> minder.v1.PatchProfileRequest + 65, // 199: minder.v1.ProfileService.DeleteProfile:input_type -> minder.v1.DeleteProfileRequest + 67, // 200: minder.v1.ProfileService.ListProfiles:input_type -> minder.v1.ListProfilesRequest + 69, // 201: minder.v1.ProfileService.GetProfileById:input_type -> minder.v1.GetProfileByIdRequest + 75, // 202: minder.v1.ProfileService.GetProfileStatusByName:input_type -> minder.v1.GetProfileStatusByNameRequest + 77, // 203: minder.v1.ProfileService.GetProfileStatusByProject:input_type -> minder.v1.GetProfileStatusByProjectRequest + 83, // 204: minder.v1.ProfileService.ListRuleTypes:input_type -> minder.v1.ListRuleTypesRequest + 85, // 205: minder.v1.ProfileService.GetRuleTypeByName:input_type -> minder.v1.GetRuleTypeByNameRequest + 87, // 206: minder.v1.ProfileService.GetRuleTypeById:input_type -> minder.v1.GetRuleTypeByIdRequest + 89, // 207: minder.v1.ProfileService.CreateRuleType:input_type -> minder.v1.CreateRuleTypeRequest + 91, // 208: minder.v1.ProfileService.UpdateRuleType:input_type -> minder.v1.UpdateRuleTypeRequest + 93, // 209: minder.v1.ProfileService.DeleteRuleType:input_type -> minder.v1.DeleteRuleTypeRequest + 95, // 210: minder.v1.EvalResultsService.ListEvaluationResults:input_type -> minder.v1.ListEvaluationResultsRequest + 118, // 211: minder.v1.PermissionsService.ListRoles:input_type -> minder.v1.ListRolesRequest + 120, // 212: minder.v1.PermissionsService.ListRoleAssignments:input_type -> minder.v1.ListRoleAssignmentsRequest + 122, // 213: minder.v1.PermissionsService.AssignRole:input_type -> minder.v1.AssignRoleRequest + 124, // 214: minder.v1.PermissionsService.RemoveRole:input_type -> minder.v1.RemoveRoleRequest + 105, // 215: minder.v1.ProjectsService.ListProjects:input_type -> minder.v1.ListProjectsRequest + 107, // 216: minder.v1.ProjectsService.CreateProject:input_type -> minder.v1.CreateProjectRequest + 109, // 217: minder.v1.ProjectsService.DeleteProject:input_type -> minder.v1.DeleteProjectRequest + 111, // 218: minder.v1.ProjectsService.UpdateProject:input_type -> minder.v1.UpdateProjectRequest + 114, // 219: minder.v1.ProjectsService.PatchProject:input_type -> minder.v1.PatchProjectRequest + 116, // 220: minder.v1.ProjectsService.CreateEntityReconciliationTask:input_type -> minder.v1.CreateEntityReconciliationTaskRequest + 128, // 221: minder.v1.ProvidersService.GetProvider:input_type -> minder.v1.GetProviderRequest + 130, // 222: minder.v1.ProvidersService.ListProviders:input_type -> minder.v1.ListProvidersRequest + 132, // 223: minder.v1.ProvidersService.CreateProvider:input_type -> minder.v1.CreateProviderRequest + 134, // 224: minder.v1.ProvidersService.DeleteProvider:input_type -> minder.v1.DeleteProviderRequest + 136, // 225: minder.v1.ProvidersService.DeleteProviderByID:input_type -> minder.v1.DeleteProviderByIDRequest + 138, // 226: minder.v1.ProvidersService.GetUnclaimedProviders:input_type -> minder.v1.GetUnclaimedProvidersRequest + 140, // 227: minder.v1.ProvidersService.ListProviderClasses:input_type -> minder.v1.ListProviderClassesRequest + 24, // 228: minder.v1.HealthService.CheckHealth:output_type -> minder.v1.CheckHealthResponse + 12, // 229: minder.v1.ArtifactService.ListArtifacts:output_type -> minder.v1.ListArtifactsResponse + 16, // 230: minder.v1.ArtifactService.GetArtifactById:output_type -> minder.v1.GetArtifactByIdResponse + 18, // 231: minder.v1.ArtifactService.GetArtifactByName:output_type -> minder.v1.GetArtifactByNameResponse + 26, // 232: minder.v1.OAuthService.GetAuthorizationURL:output_type -> minder.v1.GetAuthorizationURLResponse + 28, // 233: minder.v1.OAuthService.StoreProviderToken:output_type -> minder.v1.StoreProviderTokenResponse + 48, // 234: minder.v1.OAuthService.VerifyProviderTokenFrom:output_type -> minder.v1.VerifyProviderTokenFromResponse + 50, // 235: minder.v1.OAuthService.VerifyProviderCredential:output_type -> minder.v1.VerifyProviderCredentialResponse + 36, // 236: minder.v1.RepositoryService.RegisterRepository:output_type -> minder.v1.RegisterRepositoryResponse + 31, // 237: minder.v1.RepositoryService.ListRemoteRepositoriesFromProvider:output_type -> minder.v1.ListRemoteRepositoriesFromProviderResponse + 46, // 238: minder.v1.RepositoryService.ListRepositories:output_type -> minder.v1.ListRepositoriesResponse + 38, // 239: minder.v1.RepositoryService.GetRepositoryById:output_type -> minder.v1.GetRepositoryByIdResponse + 42, // 240: minder.v1.RepositoryService.GetRepositoryByName:output_type -> minder.v1.GetRepositoryByNameResponse + 40, // 241: minder.v1.RepositoryService.DeleteRepositoryById:output_type -> minder.v1.DeleteRepositoryByIdResponse + 44, // 242: minder.v1.RepositoryService.DeleteRepositoryByName:output_type -> minder.v1.DeleteRepositoryByNameResponse + 53, // 243: minder.v1.UserService.CreateUser:output_type -> minder.v1.CreateUserResponse + 55, // 244: minder.v1.UserService.DeleteUser:output_type -> minder.v1.DeleteUserResponse + 58, // 245: minder.v1.UserService.GetUser:output_type -> minder.v1.GetUserResponse + 60, // 246: minder.v1.ProfileService.CreateProfile:output_type -> minder.v1.CreateProfileResponse + 62, // 247: minder.v1.ProfileService.UpdateProfile:output_type -> minder.v1.UpdateProfileResponse + 64, // 248: minder.v1.ProfileService.PatchProfile:output_type -> minder.v1.PatchProfileResponse + 66, // 249: minder.v1.ProfileService.DeleteProfile:output_type -> minder.v1.DeleteProfileResponse + 68, // 250: minder.v1.ProfileService.ListProfiles:output_type -> minder.v1.ListProfilesResponse + 70, // 251: minder.v1.ProfileService.GetProfileById:output_type -> minder.v1.GetProfileByIdResponse + 76, // 252: minder.v1.ProfileService.GetProfileStatusByName:output_type -> minder.v1.GetProfileStatusByNameResponse + 78, // 253: minder.v1.ProfileService.GetProfileStatusByProject:output_type -> minder.v1.GetProfileStatusByProjectResponse + 84, // 254: minder.v1.ProfileService.ListRuleTypes:output_type -> minder.v1.ListRuleTypesResponse + 86, // 255: minder.v1.ProfileService.GetRuleTypeByName:output_type -> minder.v1.GetRuleTypeByNameResponse + 88, // 256: minder.v1.ProfileService.GetRuleTypeById:output_type -> minder.v1.GetRuleTypeByIdResponse + 90, // 257: minder.v1.ProfileService.CreateRuleType:output_type -> minder.v1.CreateRuleTypeResponse + 92, // 258: minder.v1.ProfileService.UpdateRuleType:output_type -> minder.v1.UpdateRuleTypeResponse + 94, // 259: minder.v1.ProfileService.DeleteRuleType:output_type -> minder.v1.DeleteRuleTypeResponse + 96, // 260: minder.v1.EvalResultsService.ListEvaluationResults:output_type -> minder.v1.ListEvaluationResultsResponse + 119, // 261: minder.v1.PermissionsService.ListRoles:output_type -> minder.v1.ListRolesResponse + 121, // 262: minder.v1.PermissionsService.ListRoleAssignments:output_type -> minder.v1.ListRoleAssignmentsResponse + 123, // 263: minder.v1.PermissionsService.AssignRole:output_type -> minder.v1.AssignRoleResponse + 125, // 264: minder.v1.PermissionsService.RemoveRole:output_type -> minder.v1.RemoveRoleResponse + 106, // 265: minder.v1.ProjectsService.ListProjects:output_type -> minder.v1.ListProjectsResponse + 108, // 266: minder.v1.ProjectsService.CreateProject:output_type -> minder.v1.CreateProjectResponse + 110, // 267: minder.v1.ProjectsService.DeleteProject:output_type -> minder.v1.DeleteProjectResponse + 112, // 268: minder.v1.ProjectsService.UpdateProject:output_type -> minder.v1.UpdateProjectResponse + 115, // 269: minder.v1.ProjectsService.PatchProject:output_type -> minder.v1.PatchProjectResponse + 117, // 270: minder.v1.ProjectsService.CreateEntityReconciliationTask:output_type -> minder.v1.CreateEntityReconciliationTaskResponse + 129, // 271: minder.v1.ProvidersService.GetProvider:output_type -> minder.v1.GetProviderResponse + 131, // 272: minder.v1.ProvidersService.ListProviders:output_type -> minder.v1.ListProvidersResponse + 133, // 273: minder.v1.ProvidersService.CreateProvider:output_type -> minder.v1.CreateProviderResponse + 135, // 274: minder.v1.ProvidersService.DeleteProvider:output_type -> minder.v1.DeleteProviderResponse + 137, // 275: minder.v1.ProvidersService.DeleteProviderByID:output_type -> minder.v1.DeleteProviderByIDResponse + 139, // 276: minder.v1.ProvidersService.GetUnclaimedProviders:output_type -> minder.v1.GetUnclaimedProvidersResponse + 141, // 277: minder.v1.ProvidersService.ListProviderClasses:output_type -> minder.v1.ListProviderClassesResponse + 228, // [228:278] is the sub-list for method output_type + 178, // [178:228] is the sub-list for method input_type + 177, // [177:178] is the sub-list for extension type_name + 175, // [175:177] is the sub-list for extension extendee + 0, // [0:175] is the sub-list for field type_name } func init() { file_minder_v1_minder_proto_init() } @@ -14385,7 +14524,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUnclaimedProvidersRequest); i { + switch v := v.(*DeleteProviderByIDRequest); i { case 0: return &v.state case 1: @@ -14397,7 +14536,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUnclaimedProvidersResponse); i { + switch v := v.(*DeleteProviderByIDResponse); i { case 0: return &v.state case 1: @@ -14409,7 +14548,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListProviderClassesRequest); i { + switch v := v.(*GetUnclaimedProvidersRequest); i { case 0: return &v.state case 1: @@ -14421,7 +14560,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListProviderClassesResponse); i { + switch v := v.(*GetUnclaimedProvidersResponse); i { case 0: return &v.state case 1: @@ -14433,7 +14572,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AuthorizationParams); i { + switch v := v.(*ListProviderClassesRequest); i { case 0: return &v.state case 1: @@ -14445,7 +14584,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProviderParameter); i { + switch v := v.(*ListProviderClassesResponse); i { case 0: return &v.state case 1: @@ -14457,7 +14596,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GitHubAppParams); i { + switch v := v.(*AuthorizationParams); i { case 0: return &v.state case 1: @@ -14469,7 +14608,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Provider); i { + switch v := v.(*ProviderParameter); i { case 0: return &v.state case 1: @@ -14481,7 +14620,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrDependencies_ContextualDependency); i { + switch v := v.(*GitHubAppParams); i { case 0: return &v.state case 1: @@ -14493,7 +14632,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrDependencies_ContextualDependency_FilePatch); i { + switch v := v.(*Provider); i { case 0: return &v.state case 1: @@ -14505,7 +14644,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrContents_File); i { + switch v := v.(*PrDependencies_ContextualDependency); i { case 0: return &v.state case 1: @@ -14517,7 +14656,7 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PrContents_File_Line); i { + switch v := v.(*PrDependencies_ContextualDependency_FilePatch); i { case 0: return &v.state case 1: @@ -14529,7 +14668,19 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegisterRepoResult_Status); i { + switch v := v.(*PrContents_File); 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[139].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PrContents_File_Line); i { case 0: return &v.state case 1: @@ -14541,6 +14692,18 @@ func file_minder_v1_minder_proto_init() { } } file_minder_v1_minder_proto_msgTypes[140].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[142].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEvaluationResultsResponse_EntityProfileEvaluationResults); i { case 0: return &v.state @@ -14552,7 +14715,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEvaluationResultsResponse_EntityEvaluationResults); i { case 0: return &v.state @@ -14564,7 +14727,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RestType_Fallback); i { case 0: return &v.state @@ -14576,7 +14739,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DiffType_Ecosystem); i { case 0: return &v.state @@ -14588,7 +14751,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition); i { case 0: return &v.state @@ -14600,7 +14763,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Ingest); i { case 0: return &v.state @@ -14612,7 +14775,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval); i { case 0: return &v.state @@ -14624,7 +14787,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Remediate); i { case 0: return &v.state @@ -14636,7 +14799,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Alert); i { case 0: return &v.state @@ -14648,7 +14811,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval_JQComparison); i { case 0: return &v.state @@ -14660,7 +14823,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval_Rego); i { case 0: return &v.state @@ -14672,7 +14835,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval_Vulncheck); i { case 0: return &v.state @@ -14684,7 +14847,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval_Trusty); i { case 0: return &v.state @@ -14696,7 +14859,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval_Homoglyphs); i { case 0: return &v.state @@ -14708,7 +14871,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Eval_JQComparison_Operator); i { case 0: return &v.state @@ -14720,7 +14883,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Remediate_GhBranchProtectionType); i { case 0: return &v.state @@ -14732,7 +14895,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Remediate_PullRequestRemediation); i { case 0: return &v.state @@ -14744,7 +14907,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Remediate_PullRequestRemediation_Content); i { case 0: return &v.state @@ -14756,7 +14919,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Remediate_PullRequestRemediation_ActionsReplaceTagsWithSha); i { case 0: return &v.state @@ -14768,7 +14931,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RuleType_Definition_Alert_AlertTypeSA); i { case 0: return &v.state @@ -14780,7 +14943,7 @@ func file_minder_v1_minder_proto_init() { return nil } } - file_minder_v1_minder_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} { + file_minder_v1_minder_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Profile_Rule); i { case 0: return &v.state @@ -14808,25 +14971,25 @@ func file_minder_v1_minder_proto_init() { file_minder_v1_minder_proto_msgTypes[94].OneofWrappers = []interface{}{} file_minder_v1_minder_proto_msgTypes[103].OneofWrappers = []interface{}{} file_minder_v1_minder_proto_msgTypes[117].OneofWrappers = []interface{}{} - file_minder_v1_minder_proto_msgTypes[131].OneofWrappers = []interface{}{ + file_minder_v1_minder_proto_msgTypes[133].OneofWrappers = []interface{}{ (*ProviderParameter_GithubApp)(nil), } - file_minder_v1_minder_proto_msgTypes[138].OneofWrappers = []interface{}{} - file_minder_v1_minder_proto_msgTypes[144].OneofWrappers = []interface{}{} - file_minder_v1_minder_proto_msgTypes[145].OneofWrappers = []interface{}{} + file_minder_v1_minder_proto_msgTypes[140].OneofWrappers = []interface{}{} file_minder_v1_minder_proto_msgTypes[146].OneofWrappers = []interface{}{} file_minder_v1_minder_proto_msgTypes[147].OneofWrappers = []interface{}{} file_minder_v1_minder_proto_msgTypes[148].OneofWrappers = []interface{}{} + file_minder_v1_minder_proto_msgTypes[149].OneofWrappers = []interface{}{} file_minder_v1_minder_proto_msgTypes[150].OneofWrappers = []interface{}{} - file_minder_v1_minder_proto_msgTypes[156].OneofWrappers = []interface{}{} - file_minder_v1_minder_proto_msgTypes[157].OneofWrappers = []interface{}{} + file_minder_v1_minder_proto_msgTypes[152].OneofWrappers = []interface{}{} + file_minder_v1_minder_proto_msgTypes[158].OneofWrappers = []interface{}{} + file_minder_v1_minder_proto_msgTypes[159].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_minder_v1_minder_proto_rawDesc, NumEnums: 10, - NumMessages: 161, + NumMessages: 163, NumExtensions: 2, NumServices: 10, }, 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 566abe7632..9622a6fa09 100644 --- a/pkg/api/protobuf/go/minder/v1/minder.pb.gw.go +++ b/pkg/api/protobuf/go/minder/v1/minder.pb.gw.go @@ -2755,6 +2755,76 @@ func local_request_ProvidersService_DeleteProvider_0(ctx context.Context, marsha } +var ( + filter_ProvidersService_DeleteProviderByID_0 = &utilities.DoubleArray{Encoding: map[string]int{"id": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} +) + +func request_ProvidersService_DeleteProviderByID_0(ctx context.Context, marshaler runtime.Marshaler, client ProvidersServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteProviderByIDRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProvidersService_DeleteProviderByID_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteProviderByID(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_ProvidersService_DeleteProviderByID_0(ctx context.Context, marshaler runtime.Marshaler, server ProvidersServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteProviderByIDRequest + var metadata runtime.ServerMetadata + + var ( + val string + ok bool + err error + _ = err + ) + + val, ok = pathParams["id"] + if !ok { + return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "id") + } + + protoReq.Id, err = runtime.String(val) + if err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "id", err) + } + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_ProvidersService_DeleteProviderByID_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteProviderByID(ctx, &protoReq) + return msg, metadata, err + +} + var ( filter_ProvidersService_GetUnclaimedProviders_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) @@ -4289,6 +4359,31 @@ func RegisterProvidersServiceHandlerServer(ctx context.Context, mux *runtime.Ser }) + mux.Handle("DELETE", pattern_ProvidersService_DeleteProviderByID_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.ProvidersService/DeleteProviderByID", runtime.WithHTTPPathPattern("/api/v1/providers/{id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_ProvidersService_DeleteProviderByID_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_ProvidersService_DeleteProviderByID_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_ProvidersService_GetUnclaimedProviders_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -6199,6 +6294,28 @@ func RegisterProvidersServiceHandlerClient(ctx context.Context, mux *runtime.Ser }) + mux.Handle("DELETE", pattern_ProvidersService_DeleteProviderByID_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.ProvidersService/DeleteProviderByID", runtime.WithHTTPPathPattern("/api/v1/providers/{id}")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_ProvidersService_DeleteProviderByID_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_ProvidersService_DeleteProviderByID_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_ProvidersService_GetUnclaimedProviders_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -6255,6 +6372,8 @@ var ( pattern_ProvidersService_DeleteProvider_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "providers"}, "")) + pattern_ProvidersService_DeleteProviderByID_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 1, 0, 4, 1, 5, 3}, []string{"api", "v1", "providers", "id"}, "")) + pattern_ProvidersService_GetUnclaimedProviders_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"api", "v1", "my", "providers"}, "")) pattern_ProvidersService_ListProviderClasses_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"api", "v1", "provider_classes"}, "")) @@ -6269,6 +6388,8 @@ var ( forward_ProvidersService_DeleteProvider_0 = runtime.ForwardResponseMessage + forward_ProvidersService_DeleteProviderByID_0 = runtime.ForwardResponseMessage + forward_ProvidersService_GetUnclaimedProviders_0 = runtime.ForwardResponseMessage forward_ProvidersService_ListProviderClasses_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 e264119c35..30a22f7cb3 100644 --- a/pkg/api/protobuf/go/minder/v1/minder_grpc.pb.go +++ b/pkg/api/protobuf/go/minder/v1/minder_grpc.pb.go @@ -2113,6 +2113,7 @@ const ( ProvidersService_ListProviders_FullMethodName = "/minder.v1.ProvidersService/ListProviders" ProvidersService_CreateProvider_FullMethodName = "/minder.v1.ProvidersService/CreateProvider" ProvidersService_DeleteProvider_FullMethodName = "/minder.v1.ProvidersService/DeleteProvider" + ProvidersService_DeleteProviderByID_FullMethodName = "/minder.v1.ProvidersService/DeleteProviderByID" ProvidersService_GetUnclaimedProviders_FullMethodName = "/minder.v1.ProvidersService/GetUnclaimedProviders" ProvidersService_ListProviderClasses_FullMethodName = "/minder.v1.ProvidersService/ListProviderClasses" ) @@ -2125,6 +2126,7 @@ type ProvidersServiceClient interface { ListProviders(ctx context.Context, in *ListProvidersRequest, opts ...grpc.CallOption) (*ListProvidersResponse, error) CreateProvider(ctx context.Context, in *CreateProviderRequest, opts ...grpc.CallOption) (*CreateProviderResponse, error) DeleteProvider(ctx context.Context, in *DeleteProviderRequest, opts ...grpc.CallOption) (*DeleteProviderResponse, error) + DeleteProviderByID(ctx context.Context, in *DeleteProviderByIDRequest, opts ...grpc.CallOption) (*DeleteProviderByIDResponse, error) // GetUnclaimedProviders returns a list of known provider configurations // that this user could claim based on their identity. This is a read-only // operation for use by clients which wish to present a menu of options. @@ -2176,6 +2178,15 @@ func (c *providersServiceClient) DeleteProvider(ctx context.Context, in *DeleteP return out, nil } +func (c *providersServiceClient) DeleteProviderByID(ctx context.Context, in *DeleteProviderByIDRequest, opts ...grpc.CallOption) (*DeleteProviderByIDResponse, error) { + out := new(DeleteProviderByIDResponse) + err := c.cc.Invoke(ctx, ProvidersService_DeleteProviderByID_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *providersServiceClient) GetUnclaimedProviders(ctx context.Context, in *GetUnclaimedProvidersRequest, opts ...grpc.CallOption) (*GetUnclaimedProvidersResponse, error) { out := new(GetUnclaimedProvidersResponse) err := c.cc.Invoke(ctx, ProvidersService_GetUnclaimedProviders_FullMethodName, in, out, opts...) @@ -2202,6 +2213,7 @@ type ProvidersServiceServer interface { ListProviders(context.Context, *ListProvidersRequest) (*ListProvidersResponse, error) CreateProvider(context.Context, *CreateProviderRequest) (*CreateProviderResponse, error) DeleteProvider(context.Context, *DeleteProviderRequest) (*DeleteProviderResponse, error) + DeleteProviderByID(context.Context, *DeleteProviderByIDRequest) (*DeleteProviderByIDResponse, error) // GetUnclaimedProviders returns a list of known provider configurations // that this user could claim based on their identity. This is a read-only // operation for use by clients which wish to present a menu of options. @@ -2226,6 +2238,9 @@ func (UnimplementedProvidersServiceServer) CreateProvider(context.Context, *Crea func (UnimplementedProvidersServiceServer) DeleteProvider(context.Context, *DeleteProviderRequest) (*DeleteProviderResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteProvider not implemented") } +func (UnimplementedProvidersServiceServer) DeleteProviderByID(context.Context, *DeleteProviderByIDRequest) (*DeleteProviderByIDResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteProviderByID not implemented") +} func (UnimplementedProvidersServiceServer) GetUnclaimedProviders(context.Context, *GetUnclaimedProvidersRequest) (*GetUnclaimedProvidersResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetUnclaimedProviders not implemented") } @@ -2317,6 +2332,24 @@ func _ProvidersService_DeleteProvider_Handler(srv interface{}, ctx context.Conte return interceptor(ctx, in, info, handler) } +func _ProvidersService_DeleteProviderByID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteProviderByIDRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ProvidersServiceServer).DeleteProviderByID(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: ProvidersService_DeleteProviderByID_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ProvidersServiceServer).DeleteProviderByID(ctx, req.(*DeleteProviderByIDRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _ProvidersService_GetUnclaimedProviders_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetUnclaimedProvidersRequest) if err := dec(in); err != nil { @@ -2376,6 +2409,10 @@ var ProvidersService_ServiceDesc = grpc.ServiceDesc{ MethodName: "DeleteProvider", Handler: _ProvidersService_DeleteProvider_Handler, }, + { + MethodName: "DeleteProviderByID", + Handler: _ProvidersService_DeleteProviderByID_Handler, + }, { MethodName: "GetUnclaimedProviders", Handler: _ProvidersService_GetUnclaimedProviders_Handler, diff --git a/proto/minder/v1/minder.proto b/proto/minder/v1/minder.proto index 9cda0f9f2f..ed94b8d766 100644 --- a/proto/minder/v1/minder.proto +++ b/proto/minder/v1/minder.proto @@ -797,6 +797,17 @@ service ProvidersService { }; } + rpc DeleteProviderByID (DeleteProviderByIDRequest) returns (DeleteProviderByIDResponse) { + option (google.api.http) = { + delete: "/api/v1/providers/{id}" + }; + + option (minder.v1.rpc_options) = { + target_resource: TARGET_RESOURCE_PROJECT + relation: RELATION_REPO_DELETE + }; + } + // GetUnclaimedProviders returns a list of known provider configurations // that this user could claim based on their identity. This is a read-only // operation for use by clients which wish to present a menu of options. @@ -2005,6 +2016,20 @@ message DeleteProviderRequest { } message DeleteProviderResponse { + // name is the name of the provider that was deleted + string name = 1; +} + +message DeleteProviderByIDRequest { + // context is the context in which the provider is deleted. Only the project is required in this context. + Context context = 1; + // id is the id of the provider to delete + string id = 2; +} + +message DeleteProviderByIDResponse { + // id is the id of the provider that was deleted + string id = 1; } message GetUnclaimedProvidersRequest {