From af058642d5b682d6fc98c49c735f43cfae7526e3 Mon Sep 17 00:00:00 2001 From: Kent Rancourt Date: Wed, 22 Jan 2025 16:52:24 -0500 Subject: [PATCH] refactor: change generic secret label (#3331) Signed-off-by: Kent Rancourt (cherry picked from commit 95ae6a6aa9e9f990eedc652a465d66ed578379be) --- api/service/v1alpha1/service.proto | 47 - api/v1alpha1/labels.go | 9 +- .../api/create_project_secret_v1alpha1.go | 2 +- .../api/delete_project_secret_v1alpha1.go | 9 +- .../delete_project_secret_v1alpha1_test.go | 53 +- ...t_analysis_template_config_map_v1alpha1.go | 96 - .../get_analysis_template_secret_v1alpha1.go | 96 - ..._analysis_template_config_maps_v1alpha1.go | 61 - ...list_analysis_template_secrets_v1alpha1.go | 61 - internal/api/list_project_secrets_v1alpha1.go | 31 +- .../api/list_project_secrets_v1alpha1_test.go | 88 +- .../api/update_project_secret_v1alpha1.go | 10 +- .../update_project_secret_v1alpha1_test.go | 50 +- internal/directives/simple_engine_promote.go | 33 +- .../directives/simple_engine_promote_test.go | 52 +- pkg/api/service/v1alpha1/service.pb.go | 2241 ++++++----------- .../svcv1alpha1connect/service.connect.go | 354 +-- .../service-KargoService_connectquery.ts | 20 - ui/src/gen/service/v1alpha1/service_pb.ts | 216 +- 19 files changed, 1126 insertions(+), 2403 deletions(-) delete mode 100644 internal/api/get_analysis_template_config_map_v1alpha1.go delete mode 100644 internal/api/get_analysis_template_secret_v1alpha1.go delete mode 100644 internal/api/list_analysis_template_config_maps_v1alpha1.go delete mode 100644 internal/api/list_analysis_template_secrets_v1alpha1.go diff --git a/api/service/v1alpha1/service.proto b/api/service/v1alpha1/service.proto index 98e140d96..c7ad2deac 100644 --- a/api/service/v1alpha1/service.proto +++ b/api/service/v1alpha1/service.proto @@ -99,11 +99,6 @@ service KargoService { rpc DeleteAnalysisTemplate(DeleteAnalysisTemplateRequest) returns (DeleteAnalysisTemplateResponse); rpc GetAnalysisRun(GetAnalysisRunRequest) returns (GetAnalysisRunResponse); - rpc ListAnalysisTemplateConfigMaps(ListAnalysisTemplateConfigMapsRequest) returns (ListAnalysisTemplateConfigMapsResponse); - rpc GetAnalysisTemplateConfigMap(GetAnalysisTemplateConfigMapRequest) returns (GetAnalysisTemplateConfigMapResponse); - rpc ListAnalysisTemplateSecrets(ListAnalysisTemplateSecretsRequest) returns (ListAnalysisTemplateSecretsResponse); - rpc GetAnalysisTemplateSecret(GetAnalysisTemplateSecretRequest) returns (GetAnalysisTemplateSecretResponse); - /* Event APIs */ rpc ListProjectEvents(ListProjectEventsRequest) returns (ListProjectEventsResponse); @@ -771,45 +766,3 @@ message UpdateRoleRequest { message UpdateRoleResponse { github.com.akuity.kargo.api.rbac.v1alpha1.Role role = 1; } - -message ListAnalysisTemplateConfigMapsRequest { - string project = 1; -} - -message ListAnalysisTemplateConfigMapsResponse { - repeated k8s.io.api.core.v1.ConfigMap config_maps = 1; -} - -message GetAnalysisTemplateConfigMapRequest { - string project = 1; - string name = 2; - RawFormat format = 3; -} - -message GetAnalysisTemplateConfigMapResponse { - oneof result { - k8s.io.api.core.v1.ConfigMap config_map = 1; - bytes raw = 2; - } -} - -message ListAnalysisTemplateSecretsRequest { - string project = 1; -} - -message ListAnalysisTemplateSecretsResponse { - repeated k8s.io.api.core.v1.Secret secrets = 1; -} - -message GetAnalysisTemplateSecretRequest { - string project = 1; - string name = 2; - RawFormat format = 3; -} - -message GetAnalysisTemplateSecretResponse { - oneof result { - k8s.io.api.core.v1.Secret secret = 1; - bytes raw = 2; - } -} diff --git a/api/v1alpha1/labels.go b/api/v1alpha1/labels.go index cec8350fc..7324e665a 100644 --- a/api/v1alpha1/labels.go +++ b/api/v1alpha1/labels.go @@ -8,8 +8,13 @@ const ( CredentialTypeLabelValueGit = "git" CredentialTypeLabelValueHelm = "helm" CredentialTypeLabelValueImage = "image" + CredentialTypeLabelGeneric = "generic" // Project Secrets + // Deprecated: Use CredentialTypeLabelGeneric instead. This label should not + // be used and won't be documented, but will be supported short-term for + // backward compatibility. + // TODO(krancour): Remove for v1.4.0. ProjectSecretLabelKey = "kargo.akuity.io/project-secret" // nolint: gosec // Kargo core API @@ -19,10 +24,6 @@ const ( ShardLabelKey = "kargo.akuity.io/shard" StageLabelKey = "kargo.akuity.io/stage" - // AnalysisRunTemplate labels - AnalysisRunTemplateLabelKey = "kargo.akuity.io/analysis-run-template" - AnalysisRunTemplateLabelValueConfig = "config" - LabelTrueValue = "true" FinalizerName = "kargo.akuity.io/finalizer" diff --git a/internal/api/create_project_secret_v1alpha1.go b/internal/api/create_project_secret_v1alpha1.go index e9505c73e..8d5763722 100644 --- a/internal/api/create_project_secret_v1alpha1.go +++ b/internal/api/create_project_secret_v1alpha1.go @@ -81,7 +81,7 @@ func (s *server) projectSecretToK8sSecret(projSecret projectSecret) *corev1.Secr Namespace: projSecret.project, Name: projSecret.name, Labels: map[string]string{ - kargoapi.ProjectSecretLabelKey: kargoapi.LabelTrueValue, + kargoapi.CredentialTypeLabelKey: kargoapi.CredentialTypeLabelGeneric, }, }, Data: secretsData, diff --git a/internal/api/delete_project_secret_v1alpha1.go b/internal/api/delete_project_secret_v1alpha1.go index 5da919cc8..b15a104d1 100644 --- a/internal/api/delete_project_secret_v1alpha1.go +++ b/internal/api/delete_project_secret_v1alpha1.go @@ -46,15 +46,18 @@ func (s *server) DeleteProjectSecret( ); err != nil { return nil, fmt.Errorf("get secret: %w", err) } - if secret.Labels[kargoapi.ProjectSecretLabelKey] != kargoapi.LabelTrueValue { + // Check for either of the two possible labels (newer and legacy) that + // indicate the secret is a generic project secret. + if secret.Labels[kargoapi.CredentialTypeLabelKey] != kargoapi.CredentialTypeLabelGeneric && + secret.Labels[kargoapi.ProjectSecretLabelKey] != kargoapi.LabelTrueValue { // Legacy return nil, connect.NewError( connect.CodeNotFound, fmt.Errorf( "secret %s/%s exists, but is not labeled with %s=%s", secret.Namespace, secret.Name, - kargoapi.ProjectSecretLabelKey, - kargoapi.LabelTrueValue, + kargoapi.CredentialTypeLabelKey, + kargoapi.CredentialTypeLabelGeneric, ), ) } diff --git a/internal/api/delete_project_secret_v1alpha1_test.go b/internal/api/delete_project_secret_v1alpha1_test.go index 7a7867834..4b6813748 100644 --- a/internal/api/delete_project_secret_v1alpha1_test.go +++ b/internal/api/delete_project_secret_v1alpha1_test.go @@ -32,8 +32,27 @@ func TestDeleteProjectSecret(t *testing.T) { NewInternalClient: func(_ context.Context, _ *rest.Config, s *runtime.Scheme) (client.Client, error) { return fake.NewClientBuilder(). WithScheme(s). - WithObjects(mustNewObject[corev1.Namespace]("testdata/namespace.yaml")). - Build(), nil + WithObjects( + mustNewObject[corev1.Namespace]("testdata/namespace.yaml"), + &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "kargo-demo", + Name: "secret-a", + Labels: map[string]string{ + kargoapi.CredentialTypeLabelKey: kargoapi.CredentialTypeLabelGeneric, + }, + }, + }, + &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "kargo-demo", + Name: "secret-b", + Labels: map[string]string{ + kargoapi.ProjectSecretLabelKey: kargoapi.LabelTrueValue, // Legacy label + }, + }, + }, + ).Build(), nil }, }, ) @@ -45,27 +64,34 @@ func TestDeleteProjectSecret(t *testing.T) { externalValidateProjectFn: validation.ValidateProject, } - err = s.client.Create( + _, err = s.DeleteProjectSecret( ctx, - &corev1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "kargo-demo", - Name: "secret", - Labels: map[string]string{ - kargoapi.ProjectSecretLabelKey: kargoapi.LabelTrueValue, - }, + connect.NewRequest( + &svcv1alpha1.DeleteProjectSecretRequest{ + Project: "kargo-demo", + Name: "secret-a", }, - }, + ), ) require.NoError(t, err) secret := corev1.Secret{} + err = s.client.Get( + ctx, + types.NamespacedName{ + Namespace: "kargo-demo", + Name: "secret-a", + }, + &secret, + ) + require.Error(t, err) + _, err = s.DeleteProjectSecret( ctx, connect.NewRequest( &svcv1alpha1.DeleteProjectSecretRequest{ Project: "kargo-demo", - Name: "secret", + Name: "secret-b", // Has the legacy label }, ), ) @@ -75,9 +101,10 @@ func TestDeleteProjectSecret(t *testing.T) { ctx, types.NamespacedName{ Namespace: "kargo-demo", - Name: "secret", + Name: "secret-b", }, &secret, ) require.Error(t, err) + } diff --git a/internal/api/get_analysis_template_config_map_v1alpha1.go b/internal/api/get_analysis_template_config_map_v1alpha1.go deleted file mode 100644 index 52a16de92..000000000 --- a/internal/api/get_analysis_template_config_map_v1alpha1.go +++ /dev/null @@ -1,96 +0,0 @@ -package api - -import ( - "context" - "errors" - "fmt" - - "connectrpc.com/connect" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/types" - "sigs.k8s.io/controller-runtime/pkg/client" - - kargoapi "github.com/akuity/kargo/api/v1alpha1" - svcv1alpha1 "github.com/akuity/kargo/pkg/api/service/v1alpha1" -) - -func (s *server) GetAnalysisTemplateConfigMap( - ctx context.Context, - req *connect.Request[svcv1alpha1.GetAnalysisTemplateConfigMapRequest], -) (*connect.Response[svcv1alpha1.GetAnalysisTemplateConfigMapResponse], error) { - if !s.cfg.RolloutsIntegrationEnabled { - return nil, connect.NewError( - connect.CodeUnimplemented, - errors.New("Argo Rollouts integration is not enabled"), - ) - } - - project := req.Msg.GetProject() - if err := validateFieldNotEmpty("project", project); err != nil { - return nil, err - } - - name := req.Msg.GetName() - if err := validateFieldNotEmpty("name", name); err != nil { - return nil, err - } - - if err := s.validateProjectExists(ctx, project); err != nil { - return nil, err - } - - // Get the ConfigMap from the Kubernetes API as an unstructured object. - // Using an unstructured object allows us to return the object _as presented - // by the API_ if a raw format is requested. - u := unstructured.Unstructured{ - Object: map[string]any{ - "apiVersion": corev1.SchemeGroupVersion.String(), - "kind": "ConfigMap", - }, - } - if err := s.client.Get(ctx, types.NamespacedName{ - Namespace: project, - Name: name, - }, &u); err != nil { - if client.IgnoreNotFound(err) == nil { - err = fmt.Errorf("ConfigMap %q not found in namespace %q", name, project) - return nil, connect.NewError(connect.CodeNotFound, err) - } - return nil, err - } - - if u.GetLabels()[kargoapi.AnalysisRunTemplateLabelKey] != kargoapi.AnalysisRunTemplateLabelValueConfig { - // Hide existence of the ConfigMap for the security - err := fmt.Errorf("ConfigMap %q not found in namespace %q", name, project) - return nil, connect.NewError(connect.CodeNotFound, err) - } - - switch req.Msg.GetFormat() { - case svcv1alpha1.RawFormat_RAW_FORMAT_JSON, svcv1alpha1.RawFormat_RAW_FORMAT_YAML: - _, raw, err := objectOrRaw(&u, req.Msg.GetFormat()) - if err != nil { - return nil, connect.NewError(connect.CodeInternal, err) - } - return connect.NewResponse(&svcv1alpha1.GetAnalysisTemplateConfigMapResponse{ - Result: &svcv1alpha1.GetAnalysisTemplateConfigMapResponse_Raw{ - Raw: raw, - }, - }), nil - default: - var cm corev1.ConfigMap - if err := runtime.DefaultUnstructuredConverter.FromUnstructured(u.Object, &cm); err != nil { - return nil, connect.NewError(connect.CodeInternal, err) - } - obj, _, err := objectOrRaw(&cm, req.Msg.GetFormat()) - if err != nil { - return nil, connect.NewError(connect.CodeInternal, err) - } - return connect.NewResponse(&svcv1alpha1.GetAnalysisTemplateConfigMapResponse{ - Result: &svcv1alpha1.GetAnalysisTemplateConfigMapResponse_ConfigMap{ - ConfigMap: obj, - }, - }), nil - } -} diff --git a/internal/api/get_analysis_template_secret_v1alpha1.go b/internal/api/get_analysis_template_secret_v1alpha1.go deleted file mode 100644 index 33b6f8b00..000000000 --- a/internal/api/get_analysis_template_secret_v1alpha1.go +++ /dev/null @@ -1,96 +0,0 @@ -package api - -import ( - "context" - "errors" - "fmt" - - "connectrpc.com/connect" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/types" - "sigs.k8s.io/controller-runtime/pkg/client" - - kargoapi "github.com/akuity/kargo/api/v1alpha1" - svcv1alpha1 "github.com/akuity/kargo/pkg/api/service/v1alpha1" -) - -func (s *server) GetAnalysisTemplateSecret( - ctx context.Context, - req *connect.Request[svcv1alpha1.GetAnalysisTemplateSecretRequest], -) (*connect.Response[svcv1alpha1.GetAnalysisTemplateSecretResponse], error) { - if !s.cfg.RolloutsIntegrationEnabled { - return nil, connect.NewError( - connect.CodeUnimplemented, - errors.New("Argo Rollouts integration is not enabled"), - ) - } - - project := req.Msg.GetProject() - if err := validateFieldNotEmpty("project", project); err != nil { - return nil, err - } - - name := req.Msg.GetName() - if err := validateFieldNotEmpty("name", name); err != nil { - return nil, err - } - - if err := s.validateProjectExists(ctx, project); err != nil { - return nil, err - } - - // Get the Secret from the Kubernetes API as an unstructured object. - // Using an unstructured object allows us to return the object _as presented - // by the API_ if a raw format is requested. - u := unstructured.Unstructured{ - Object: map[string]any{ - "apiVersion": corev1.SchemeGroupVersion.String(), - "kind": "Secret", - }, - } - if err := s.client.Get(ctx, types.NamespacedName{ - Namespace: project, - Name: name, - }, &u); err != nil { - if client.IgnoreNotFound(err) == nil { - err = fmt.Errorf("Secret %q not found in namespace %q", name, project) - return nil, connect.NewError(connect.CodeNotFound, err) - } - return nil, err - } - - if u.GetLabels()[kargoapi.AnalysisRunTemplateLabelKey] != kargoapi.AnalysisRunTemplateLabelValueConfig { - // Hide existence of the Secret for the security - err := fmt.Errorf("Secret %q not found in namespace %q", name, project) - return nil, connect.NewError(connect.CodeNotFound, err) - } - - switch req.Msg.GetFormat() { - case svcv1alpha1.RawFormat_RAW_FORMAT_JSON, svcv1alpha1.RawFormat_RAW_FORMAT_YAML: - _, raw, err := objectOrRaw(&u, req.Msg.GetFormat()) - if err != nil { - return nil, connect.NewError(connect.CodeInternal, err) - } - return connect.NewResponse(&svcv1alpha1.GetAnalysisTemplateSecretResponse{ - Result: &svcv1alpha1.GetAnalysisTemplateSecretResponse_Raw{ - Raw: raw, - }, - }), nil - default: - var secret corev1.Secret - if err := runtime.DefaultUnstructuredConverter.FromUnstructured(u.Object, &secret); err != nil { - return nil, connect.NewError(connect.CodeInternal, err) - } - obj, _, err := objectOrRaw(&secret, req.Msg.GetFormat()) - if err != nil { - return nil, connect.NewError(connect.CodeInternal, err) - } - return connect.NewResponse(&svcv1alpha1.GetAnalysisTemplateSecretResponse{ - Result: &svcv1alpha1.GetAnalysisTemplateSecretResponse_Secret{ - Secret: obj, - }, - }), nil - } -} diff --git a/internal/api/list_analysis_template_config_maps_v1alpha1.go b/internal/api/list_analysis_template_config_maps_v1alpha1.go deleted file mode 100644 index fbf9e3b85..000000000 --- a/internal/api/list_analysis_template_config_maps_v1alpha1.go +++ /dev/null @@ -1,61 +0,0 @@ -package api - -import ( - "context" - "fmt" - "slices" - "strings" - - "connectrpc.com/connect" - corev1 "k8s.io/api/core/v1" - "sigs.k8s.io/controller-runtime/pkg/client" - - kargoapi "github.com/akuity/kargo/api/v1alpha1" - svcv1alpha1 "github.com/akuity/kargo/pkg/api/service/v1alpha1" -) - -func (s *server) ListAnalysisTemplateConfigMaps( - ctx context.Context, - req *connect.Request[svcv1alpha1.ListAnalysisTemplateConfigMapsRequest], -) (*connect.Response[svcv1alpha1.ListAnalysisTemplateConfigMapsResponse], error) { - if !s.cfg.RolloutsIntegrationEnabled { - return nil, connect.NewError( - connect.CodeUnimplemented, - fmt.Errorf("Argo Rollouts integration is not enabled"), - ) - } - - project := req.Msg.GetProject() - if err := validateFieldNotEmpty("project", project); err != nil { - return nil, err - } - - if err := s.validateProjectExists(ctx, project); err != nil { - return nil, err - } - - var list corev1.ConfigMapList - opts := []client.ListOption{ - client.InNamespace(project), - client.MatchingLabels{ - kargoapi.AnalysisRunTemplateLabelKey: kargoapi.AnalysisRunTemplateLabelValueConfig, - }, - } - if err := s.client.List(ctx, &list, opts...); err != nil { - return nil, fmt.Errorf("list ConfigMaps: %w", err) - } - - // Sort ascending by name - slices.SortFunc(list.Items, func(lhs, rhs corev1.ConfigMap) int { - return strings.Compare(lhs.Name, rhs.Name) - }) - - cms := make([]*corev1.ConfigMap, len(list.Items)) - for idx := range list.Items { - cms[idx] = &list.Items[idx] - } - - return connect.NewResponse(&svcv1alpha1.ListAnalysisTemplateConfigMapsResponse{ - ConfigMaps: cms, - }), nil -} diff --git a/internal/api/list_analysis_template_secrets_v1alpha1.go b/internal/api/list_analysis_template_secrets_v1alpha1.go deleted file mode 100644 index 760999cd0..000000000 --- a/internal/api/list_analysis_template_secrets_v1alpha1.go +++ /dev/null @@ -1,61 +0,0 @@ -package api - -import ( - "context" - "fmt" - "slices" - "strings" - - "connectrpc.com/connect" - corev1 "k8s.io/api/core/v1" - "sigs.k8s.io/controller-runtime/pkg/client" - - kargoapi "github.com/akuity/kargo/api/v1alpha1" - svcv1alpha1 "github.com/akuity/kargo/pkg/api/service/v1alpha1" -) - -func (s *server) ListAnalysisTemplateSecrets( - ctx context.Context, - req *connect.Request[svcv1alpha1.ListAnalysisTemplateSecretsRequest], -) (*connect.Response[svcv1alpha1.ListAnalysisTemplateSecretsResponse], error) { - if !s.cfg.RolloutsIntegrationEnabled { - return nil, connect.NewError( - connect.CodeUnimplemented, - fmt.Errorf("Argo Rollouts integration is not enabled"), - ) - } - - project := req.Msg.GetProject() - if err := validateFieldNotEmpty("project", project); err != nil { - return nil, err - } - - if err := s.validateProjectExists(ctx, project); err != nil { - return nil, err - } - - var list corev1.SecretList - opts := []client.ListOption{ - client.InNamespace(project), - client.MatchingLabels{ - kargoapi.AnalysisRunTemplateLabelKey: kargoapi.AnalysisRunTemplateLabelValueConfig, - }, - } - if err := s.client.List(ctx, &list, opts...); err != nil { - return nil, fmt.Errorf("list Secrets: %w", err) - } - - // Sort ascending by name - slices.SortFunc(list.Items, func(lhs, rhs corev1.Secret) int { - return strings.Compare(lhs.Name, rhs.Name) - }) - - secrets := make([]*corev1.Secret, len(list.Items)) - for idx := range list.Items { - secrets[idx] = &list.Items[idx] - } - - return connect.NewResponse(&svcv1alpha1.ListAnalysisTemplateSecretsResponse{ - Secrets: secrets, - }), nil -} diff --git a/internal/api/list_project_secrets_v1alpha1.go b/internal/api/list_project_secrets_v1alpha1.go index af80e1e6e..58011e686 100644 --- a/internal/api/list_project_secrets_v1alpha1.go +++ b/internal/api/list_project_secrets_v1alpha1.go @@ -32,30 +32,47 @@ func (s *server) ListProjectSecrets( return nil, err } + // List secrets having either of two labels (newer or legacy) that indicate + // the secret is a generic project secret. var secretsList corev1.SecretList if err := s.client.List( ctx, &secretsList, client.InNamespace(req.Msg.GetProject()), client.MatchingLabels{ - kargoapi.ProjectSecretLabelKey: kargoapi.LabelTrueValue, + kargoapi.CredentialTypeLabelKey: kargoapi.CredentialTypeLabelGeneric, // Newer label }, ); err != nil { return nil, fmt.Errorf("list secrets: %w", err) } + secrets := secretsList.Items + if err := s.client.List( + ctx, + &secretsList, + client.InNamespace(req.Msg.GetProject()), + client.MatchingLabels{ + kargoapi.ProjectSecretLabelKey: kargoapi.LabelTrueValue, // Legacy label + }, + ); err != nil { + return nil, fmt.Errorf("list secrets: %w", err) + } + secrets = append(secrets, secretsList.Items...) - // Sort ascending by name - slices.SortFunc(secretsList.Items, func(lhs, rhs corev1.Secret) int { + // Sort and de-dupe + slices.SortFunc(secrets, func(lhs, rhs corev1.Secret) int { return strings.Compare(lhs.Name, rhs.Name) }) + secrets = slices.CompactFunc(secrets, func(lhs, rhs corev1.Secret) bool { + return lhs.Name == rhs.Name + }) - secrets := make([]*corev1.Secret, len(secretsList.Items)) - for i, secret := range secretsList.Items { - secrets[i] = sanitizeProjectSecret(secret) + sanitizedSecrets := make([]*corev1.Secret, len(secrets)) + for i, secret := range secrets { + sanitizedSecrets[i] = sanitizeProjectSecret(secret) } return connect.NewResponse(&svcv1alpha1.ListProjectSecretsResponse{ - Secrets: secrets, + Secrets: sanitizedSecrets, }), nil } diff --git a/internal/api/list_project_secrets_v1alpha1_test.go b/internal/api/list_project_secrets_v1alpha1_test.go index d527b32b8..4ba43618f 100644 --- a/internal/api/list_project_secrets_v1alpha1_test.go +++ b/internal/api/list_project_secrets_v1alpha1_test.go @@ -23,6 +23,10 @@ import ( func TestListProjectSecrets(t *testing.T) { ctx := context.Background() + testData := map[string][]byte{ + "PROJECT_SECRET": []byte("Soylent Green is people!"), + } + cl, err := kubernetes.NewClient( ctx, &rest.Config{}, @@ -31,7 +35,46 @@ func TestListProjectSecrets(t *testing.T) { NewInternalClient: func(_ context.Context, _ *rest.Config, s *runtime.Scheme) (client.Client, error) { return fake.NewClientBuilder(). WithScheme(s). - WithObjects(mustNewObject[corev1.Namespace]("testdata/namespace.yaml")). + WithObjects( + mustNewObject[corev1.Namespace]("testdata/namespace.yaml"), + &corev1.Secret{ // Should not be in the list (not labeled as a project secret) + ObjectMeta: metav1.ObjectMeta{ + Namespace: "kargo-demo", + Name: "secret-a", + }, + }, + &corev1.Secret{ // Labeled as a project secret; should be in the list + ObjectMeta: metav1.ObjectMeta{ + Namespace: "kargo-demo", + Name: "secret-b", + Labels: map[string]string{ + kargoapi.CredentialTypeLabelKey: kargoapi.CredentialTypeLabelGeneric, + }, + }, + Data: testData, + }, + &corev1.Secret{ // Labeled with the legacy project secret label; should be in the list + ObjectMeta: metav1.ObjectMeta{ + Namespace: "kargo-demo", + Name: "secret-c", + Labels: map[string]string{ + kargoapi.ProjectSecretLabelKey: kargoapi.LabelTrueValue, + }, + }, + Data: testData, + }, + &corev1.Secret{ // Labeled both ways; should be in the list ONCE + ObjectMeta: metav1.ObjectMeta{ + Namespace: "kargo-demo", + Name: "secret-d", + Labels: map[string]string{ + kargoapi.CredentialTypeLabelKey: kargoapi.CredentialTypeLabelGeneric, + kargoapi.ProjectSecretLabelKey: kargoapi.LabelTrueValue, + }, + }, + Data: testData, + }, + ). Build(), nil }, }, @@ -44,38 +87,6 @@ func TestListProjectSecrets(t *testing.T) { externalValidateProjectFn: validation.ValidateProject, } - // not labeled as a project secret - // this shouldn't be in the list - err = s.client.Create( - ctx, - &corev1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "kargo-demo", - Name: "secret-1", - }, - }, - ) - require.NoError(t, err) - - // project secret - // this should be in the list - err = s.client.Create( - ctx, - &corev1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "kargo-demo", - Name: "secret-2", - Labels: map[string]string{ - kargoapi.ProjectSecretLabelKey: kargoapi.LabelTrueValue, - }, - }, - Data: map[string][]byte{ - "PROJECT_SECRET": []byte("PROJECT_SECRET_VALUE"), - }, - }, - ) - require.NoError(t, err) - resp, err := s.ListProjectSecrets( ctx, connect.NewRequest(&svcv1alpha1.ListProjectSecretsRequest{Project: "kargo-demo"}), @@ -83,8 +94,11 @@ func TestListProjectSecrets(t *testing.T) { require.NoError(t, err) secrets := resp.Msg.GetSecrets() - require.Len(t, secrets, 1) - require.Equal(t, "secret-2", secrets[0].GetName()) - require.Empty(t, secrets[0].Data) - require.Equal(t, redacted, secrets[0].StringData["PROJECT_SECRET"]) + require.Len(t, secrets, 3) + require.Equal(t, "secret-b", secrets[0].Name) + require.Equal(t, "secret-c", secrets[1].Name) + require.Equal(t, "secret-d", secrets[2].Name) + for _, secret := range secrets { + require.Equal(t, redacted, secret.StringData["PROJECT_SECRET"]) + } } diff --git a/internal/api/update_project_secret_v1alpha1.go b/internal/api/update_project_secret_v1alpha1.go index 29a2938c6..457a49d6e 100644 --- a/internal/api/update_project_secret_v1alpha1.go +++ b/internal/api/update_project_secret_v1alpha1.go @@ -47,7 +47,10 @@ func (s *server) UpdateProjectSecret( } // If this isn't labeled as a project secret, return not found. - if secret.Labels[kargoapi.ProjectSecretLabelKey] != kargoapi.LabelTrueValue { + // Check for either of the two possible labels (newer and legacy) that + // indicate the secret is a generic project secret. + if secret.Labels[kargoapi.CredentialTypeLabelKey] != kargoapi.CredentialTypeLabelGeneric && + secret.Labels[kargoapi.ProjectSecretLabelKey] != kargoapi.LabelTrueValue { return nil, connect.NewError( connect.CodeNotFound, fmt.Errorf( @@ -83,6 +86,11 @@ func (s *server) UpdateProjectSecret( } func applyProjectSecretUpdateToK8sSecret(secret *corev1.Secret, projectSecretUpdate projectSecret) { + // Ensure the Secret is labeled according to newer conventions and not legacy + // ones. + secret.Labels[kargoapi.CredentialTypeLabelKey] = kargoapi.CredentialTypeLabelGeneric + delete(secret.Labels, kargoapi.ProjectSecretLabelKey) + if projectSecretUpdate.description != "" { if secret.Annotations == nil { secret.Annotations = make(map[string]string, 1) diff --git a/internal/api/update_project_secret_v1alpha1_test.go b/internal/api/update_project_secret_v1alpha1_test.go index e73d69356..fcd9591fb 100644 --- a/internal/api/update_project_secret_v1alpha1_test.go +++ b/internal/api/update_project_secret_v1alpha1_test.go @@ -32,7 +32,22 @@ func TestUpdateProjectSecret(t *testing.T) { NewInternalClient: func(_ context.Context, _ *rest.Config, s *runtime.Scheme) (client.Client, error) { return fake.NewClientBuilder(). WithScheme(s). - WithObjects(mustNewObject[corev1.Namespace]("testdata/namespace.yaml")). + WithObjects( + mustNewObject[corev1.Namespace]("testdata/namespace.yaml"), + &corev1.Secret{ + ObjectMeta: metav1.ObjectMeta{ + Namespace: "kargo-demo", + Name: "secret", + Labels: map[string]string{ + kargoapi.ProjectSecretLabelKey: kargoapi.LabelTrueValue, + }, + }, + StringData: map[string]string{ + "TOKEN_1": "foo", + "TOKEN_2": "baz", + }, + }, + ). Build(), nil }, }, @@ -45,24 +60,6 @@ func TestUpdateProjectSecret(t *testing.T) { externalValidateProjectFn: validation.ValidateProject, } - err = s.client.Create( - ctx, - &corev1.Secret{ - ObjectMeta: metav1.ObjectMeta{ - Namespace: "kargo-demo", - Name: "secret", - Labels: map[string]string{ - kargoapi.ProjectSecretLabelKey: kargoapi.LabelTrueValue, - }, - }, - StringData: map[string]string{ - "TOKEN_1": "foo", - "TOKEN_2": "baz", - }, - }, - ) - require.NoError(t, err) - _, err = s.UpdateProjectSecret(ctx, connect.NewRequest(&svcv1alpha1.UpdateProjectSecretRequest{ Project: "kargo-demo", Name: "secret", @@ -94,7 +91,7 @@ func TestApplyProjectSecretUpdateToK8sSecret(t *testing.T) { Namespace: "kargo-demo", Name: "secret", Labels: map[string]string{ - kargoapi.ProjectSecretLabelKey: kargoapi.LabelTrueValue, + kargoapi.CredentialTypeLabelKey: kargoapi.CredentialTypeLabelGeneric, }, }, Data: map[string][]byte{ @@ -144,4 +141,17 @@ func TestApplyProjectSecretUpdateToK8sSecret(t *testing.T) { }) require.Equal(t, expectedSecret, secret) }) + + t.Run("legacy project secret label gets converted", func(t *testing.T) { + expectedSecret := baseSecret.DeepCopy() + expectedSecret.Labels = map[string]string{ + kargoapi.CredentialTypeLabelKey: kargoapi.CredentialTypeLabelGeneric, + } + secret := baseSecret.DeepCopy() + secret.Labels = map[string]string{ + kargoapi.ProjectSecretLabelKey: kargoapi.LabelTrueValue, + } + applyProjectSecretUpdateToK8sSecret(secret, projectSecret{data: nil}) + require.Equal(t, expectedSecret.Labels, secret.Labels) + }) } diff --git a/internal/directives/simple_engine_promote.go b/internal/directives/simple_engine_promote.go index 32ac4d817..236569b77 100644 --- a/internal/directives/simple_engine_promote.go +++ b/internal/directives/simple_engine_promote.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "os" + "slices" "strings" corev1 "k8s.io/api/core/v1" @@ -366,16 +367,40 @@ func (e *SimpleEngine) getProjectSecrets( ctx context.Context, project string, ) (map[string]map[string]string, error) { - secrets := corev1.SecretList{} + secretList := corev1.SecretList{} if err := e.kargoClient.List( ctx, - &secrets, + &secretList, client.InNamespace(project), + client.MatchingLabels{ + // Newer label + kargoapi.CredentialTypeLabelKey: kargoapi.CredentialTypeLabelGeneric, + }, ); err != nil { return nil, fmt.Errorf("error listing Secrets for Project %q: %w", project, err) } - secretsMap := make(map[string]map[string]string, len(secrets.Items)) - for _, secret := range secrets.Items { + secrets := secretList.Items + if err := e.kargoClient.List( + ctx, + &secretList, + client.InNamespace(project), + client.MatchingLabels{ + // Legacy label + kargoapi.ProjectSecretLabelKey: kargoapi.LabelTrueValue, + }, + ); err != nil { + return nil, fmt.Errorf("error listing Secrets for Project %q: %w", project, err) + } + secrets = append(secrets, secretList.Items...) + // Sort and de-dupe + slices.SortFunc(secrets, func(lhs, rhs corev1.Secret) int { + return strings.Compare(lhs.Name, rhs.Name) + }) + secrets = slices.CompactFunc(secrets, func(lhs, rhs corev1.Secret) bool { + return lhs.Name == rhs.Name + }) + secretsMap := make(map[string]map[string]string, len(secrets)) + for _, secret := range secrets { secretsMap[secret.Name] = make(map[string]string, len(secret.Data)) for key, value := range secret.Data { secretsMap[secret.Name][key] = string(value) diff --git a/internal/directives/simple_engine_promote_test.go b/internal/directives/simple_engine_promote_test.go index 72815e4b2..3afc52609 100644 --- a/internal/directives/simple_engine_promote_test.go +++ b/internal/directives/simple_engine_promote_test.go @@ -8,6 +8,7 @@ import ( "time" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/utils/ptr" @@ -672,6 +673,10 @@ func TestSimpleEngine_setupWorkDir(t *testing.T) { } func TestSimpleEngine_getProjectSecrets(t *testing.T) { + testData := map[string][]byte{ + "key1": []byte("value1"), + "key2": []byte("value2"), + } tests := []struct { name string project string @@ -683,21 +688,54 @@ func TestSimpleEngine_getProjectSecrets(t *testing.T) { name: "successful retrieval", project: "test-project", objects: []client.Object{ - &corev1.Secret{ + &corev1.Secret{ // Not labeled; should not be included + ObjectMeta: metav1.ObjectMeta{ + Name: "test-secret-a", + Namespace: "test-project", + }, + Data: testData, + }, + &corev1.Secret{ // Labeled with new label; should be included ObjectMeta: metav1.ObjectMeta{ - Name: "test-secret", + Name: "test-secret-b", Namespace: "test-project", + Labels: map[string]string{ + kargoapi.CredentialTypeLabelKey: kargoapi.CredentialTypeLabelGeneric, + }, }, - Data: map[string][]byte{ - "key1": []byte("value1"), - "key2": []byte("value2"), + Data: testData, + }, + &corev1.Secret{ // Labeled with legacy label; should be included + ObjectMeta: metav1.ObjectMeta{ + Name: "test-secret-c", + Namespace: "test-project", + Labels: map[string]string{ + kargoapi.ProjectSecretLabelKey: kargoapi.LabelTrueValue, + }, + }, + Data: testData, + }, + &corev1.Secret{ // Labeled both ways; should be included ONCE + ObjectMeta: metav1.ObjectMeta{ + Name: "test-secret-d", + Namespace: "test-project", + Labels: map[string]string{ + kargoapi.CredentialTypeLabelKey: kargoapi.CredentialTypeLabelGeneric, + kargoapi.ProjectSecretLabelKey: kargoapi.LabelTrueValue, + }, }, + Data: testData, }, }, assertions: func(t *testing.T, secrets map[string]map[string]string, err error) { assert.NoError(t, err) - assert.Equal(t, "value1", secrets["test-secret"]["key1"]) - assert.Equal(t, "value2", secrets["test-secret"]["key2"]) + require.Len(t, secrets, 3) + assert.Equal(t, "value1", secrets["test-secret-b"]["key1"]) + assert.Equal(t, "value2", secrets["test-secret-b"]["key2"]) + assert.Equal(t, "value1", secrets["test-secret-c"]["key1"]) + assert.Equal(t, "value2", secrets["test-secret-c"]["key2"]) + assert.Equal(t, "value1", secrets["test-secret-d"]["key1"]) + assert.Equal(t, "value2", secrets["test-secret-d"]["key2"]) }, }, { diff --git a/pkg/api/service/v1alpha1/service.pb.go b/pkg/api/service/v1alpha1/service.pb.go index 3f7d2115e..50c3e0e86 100644 --- a/pkg/api/service/v1alpha1/service.pb.go +++ b/pkg/api/service/v1alpha1/service.pb.go @@ -7214,483 +7214,6 @@ func (x *UpdateRoleResponse) GetRole() *v1alpha12.Role { return nil } -type ListAnalysisTemplateConfigMapsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` -} - -func (x *ListAnalysisTemplateConfigMapsRequest) Reset() { - *x = ListAnalysisTemplateConfigMapsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_service_v1alpha1_service_proto_msgTypes[126] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListAnalysisTemplateConfigMapsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListAnalysisTemplateConfigMapsRequest) ProtoMessage() {} - -func (x *ListAnalysisTemplateConfigMapsRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_v1alpha1_service_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 ListAnalysisTemplateConfigMapsRequest.ProtoReflect.Descriptor instead. -func (*ListAnalysisTemplateConfigMapsRequest) Descriptor() ([]byte, []int) { - return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{126} -} - -func (x *ListAnalysisTemplateConfigMapsRequest) GetProject() string { - if x != nil { - return x.Project - } - return "" -} - -type ListAnalysisTemplateConfigMapsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ConfigMaps []*v1.ConfigMap `protobuf:"bytes,1,rep,name=config_maps,json=configMaps,proto3" json:"config_maps,omitempty"` -} - -func (x *ListAnalysisTemplateConfigMapsResponse) Reset() { - *x = ListAnalysisTemplateConfigMapsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_service_v1alpha1_service_proto_msgTypes[127] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListAnalysisTemplateConfigMapsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListAnalysisTemplateConfigMapsResponse) ProtoMessage() {} - -func (x *ListAnalysisTemplateConfigMapsResponse) ProtoReflect() protoreflect.Message { - mi := &file_service_v1alpha1_service_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 ListAnalysisTemplateConfigMapsResponse.ProtoReflect.Descriptor instead. -func (*ListAnalysisTemplateConfigMapsResponse) Descriptor() ([]byte, []int) { - return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{127} -} - -func (x *ListAnalysisTemplateConfigMapsResponse) GetConfigMaps() []*v1.ConfigMap { - if x != nil { - return x.ConfigMaps - } - return nil -} - -type GetAnalysisTemplateConfigMapRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Format RawFormat `protobuf:"varint,3,opt,name=format,proto3,enum=akuity.io.kargo.service.v1alpha1.RawFormat" json:"format,omitempty"` -} - -func (x *GetAnalysisTemplateConfigMapRequest) Reset() { - *x = GetAnalysisTemplateConfigMapRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_service_v1alpha1_service_proto_msgTypes[128] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAnalysisTemplateConfigMapRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAnalysisTemplateConfigMapRequest) ProtoMessage() {} - -func (x *GetAnalysisTemplateConfigMapRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_v1alpha1_service_proto_msgTypes[128] - 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 GetAnalysisTemplateConfigMapRequest.ProtoReflect.Descriptor instead. -func (*GetAnalysisTemplateConfigMapRequest) Descriptor() ([]byte, []int) { - return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{128} -} - -func (x *GetAnalysisTemplateConfigMapRequest) GetProject() string { - if x != nil { - return x.Project - } - return "" -} - -func (x *GetAnalysisTemplateConfigMapRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *GetAnalysisTemplateConfigMapRequest) GetFormat() RawFormat { - if x != nil { - return x.Format - } - return RawFormat_RAW_FORMAT_UNSPECIFIED -} - -type GetAnalysisTemplateConfigMapResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Result: - // - // *GetAnalysisTemplateConfigMapResponse_ConfigMap - // *GetAnalysisTemplateConfigMapResponse_Raw - Result isGetAnalysisTemplateConfigMapResponse_Result `protobuf_oneof:"result"` -} - -func (x *GetAnalysisTemplateConfigMapResponse) Reset() { - *x = GetAnalysisTemplateConfigMapResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_service_v1alpha1_service_proto_msgTypes[129] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAnalysisTemplateConfigMapResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAnalysisTemplateConfigMapResponse) ProtoMessage() {} - -func (x *GetAnalysisTemplateConfigMapResponse) ProtoReflect() protoreflect.Message { - mi := &file_service_v1alpha1_service_proto_msgTypes[129] - 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 GetAnalysisTemplateConfigMapResponse.ProtoReflect.Descriptor instead. -func (*GetAnalysisTemplateConfigMapResponse) Descriptor() ([]byte, []int) { - return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{129} -} - -func (m *GetAnalysisTemplateConfigMapResponse) GetResult() isGetAnalysisTemplateConfigMapResponse_Result { - if m != nil { - return m.Result - } - return nil -} - -func (x *GetAnalysisTemplateConfigMapResponse) GetConfigMap() *v1.ConfigMap { - if x, ok := x.GetResult().(*GetAnalysisTemplateConfigMapResponse_ConfigMap); ok { - return x.ConfigMap - } - return nil -} - -func (x *GetAnalysisTemplateConfigMapResponse) GetRaw() []byte { - if x, ok := x.GetResult().(*GetAnalysisTemplateConfigMapResponse_Raw); ok { - return x.Raw - } - return nil -} - -type isGetAnalysisTemplateConfigMapResponse_Result interface { - isGetAnalysisTemplateConfigMapResponse_Result() -} - -type GetAnalysisTemplateConfigMapResponse_ConfigMap struct { - ConfigMap *v1.ConfigMap `protobuf:"bytes,1,opt,name=config_map,json=configMap,proto3,oneof"` -} - -type GetAnalysisTemplateConfigMapResponse_Raw struct { - Raw []byte `protobuf:"bytes,2,opt,name=raw,proto3,oneof"` -} - -func (*GetAnalysisTemplateConfigMapResponse_ConfigMap) isGetAnalysisTemplateConfigMapResponse_Result() { -} - -func (*GetAnalysisTemplateConfigMapResponse_Raw) isGetAnalysisTemplateConfigMapResponse_Result() {} - -type ListAnalysisTemplateSecretsRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` -} - -func (x *ListAnalysisTemplateSecretsRequest) Reset() { - *x = ListAnalysisTemplateSecretsRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_service_v1alpha1_service_proto_msgTypes[130] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListAnalysisTemplateSecretsRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListAnalysisTemplateSecretsRequest) ProtoMessage() {} - -func (x *ListAnalysisTemplateSecretsRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_v1alpha1_service_proto_msgTypes[130] - 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 ListAnalysisTemplateSecretsRequest.ProtoReflect.Descriptor instead. -func (*ListAnalysisTemplateSecretsRequest) Descriptor() ([]byte, []int) { - return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{130} -} - -func (x *ListAnalysisTemplateSecretsRequest) GetProject() string { - if x != nil { - return x.Project - } - return "" -} - -type ListAnalysisTemplateSecretsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Secrets []*v1.Secret `protobuf:"bytes,1,rep,name=secrets,proto3" json:"secrets,omitempty"` -} - -func (x *ListAnalysisTemplateSecretsResponse) Reset() { - *x = ListAnalysisTemplateSecretsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_service_v1alpha1_service_proto_msgTypes[131] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ListAnalysisTemplateSecretsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ListAnalysisTemplateSecretsResponse) ProtoMessage() {} - -func (x *ListAnalysisTemplateSecretsResponse) ProtoReflect() protoreflect.Message { - mi := &file_service_v1alpha1_service_proto_msgTypes[131] - 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 ListAnalysisTemplateSecretsResponse.ProtoReflect.Descriptor instead. -func (*ListAnalysisTemplateSecretsResponse) Descriptor() ([]byte, []int) { - return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{131} -} - -func (x *ListAnalysisTemplateSecretsResponse) GetSecrets() []*v1.Secret { - if x != nil { - return x.Secrets - } - return nil -} - -type GetAnalysisTemplateSecretRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Format RawFormat `protobuf:"varint,3,opt,name=format,proto3,enum=akuity.io.kargo.service.v1alpha1.RawFormat" json:"format,omitempty"` -} - -func (x *GetAnalysisTemplateSecretRequest) Reset() { - *x = GetAnalysisTemplateSecretRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_service_v1alpha1_service_proto_msgTypes[132] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAnalysisTemplateSecretRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAnalysisTemplateSecretRequest) ProtoMessage() {} - -func (x *GetAnalysisTemplateSecretRequest) ProtoReflect() protoreflect.Message { - mi := &file_service_v1alpha1_service_proto_msgTypes[132] - 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 GetAnalysisTemplateSecretRequest.ProtoReflect.Descriptor instead. -func (*GetAnalysisTemplateSecretRequest) Descriptor() ([]byte, []int) { - return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{132} -} - -func (x *GetAnalysisTemplateSecretRequest) GetProject() string { - if x != nil { - return x.Project - } - return "" -} - -func (x *GetAnalysisTemplateSecretRequest) GetName() string { - if x != nil { - return x.Name - } - return "" -} - -func (x *GetAnalysisTemplateSecretRequest) GetFormat() RawFormat { - if x != nil { - return x.Format - } - return RawFormat_RAW_FORMAT_UNSPECIFIED -} - -type GetAnalysisTemplateSecretResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // Types that are assignable to Result: - // - // *GetAnalysisTemplateSecretResponse_Secret - // *GetAnalysisTemplateSecretResponse_Raw - Result isGetAnalysisTemplateSecretResponse_Result `protobuf_oneof:"result"` -} - -func (x *GetAnalysisTemplateSecretResponse) Reset() { - *x = GetAnalysisTemplateSecretResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_service_v1alpha1_service_proto_msgTypes[133] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetAnalysisTemplateSecretResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetAnalysisTemplateSecretResponse) ProtoMessage() {} - -func (x *GetAnalysisTemplateSecretResponse) ProtoReflect() protoreflect.Message { - mi := &file_service_v1alpha1_service_proto_msgTypes[133] - 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 GetAnalysisTemplateSecretResponse.ProtoReflect.Descriptor instead. -func (*GetAnalysisTemplateSecretResponse) Descriptor() ([]byte, []int) { - return file_service_v1alpha1_service_proto_rawDescGZIP(), []int{133} -} - -func (m *GetAnalysisTemplateSecretResponse) GetResult() isGetAnalysisTemplateSecretResponse_Result { - if m != nil { - return m.Result - } - return nil -} - -func (x *GetAnalysisTemplateSecretResponse) GetSecret() *v1.Secret { - if x, ok := x.GetResult().(*GetAnalysisTemplateSecretResponse_Secret); ok { - return x.Secret - } - return nil -} - -func (x *GetAnalysisTemplateSecretResponse) GetRaw() []byte { - if x, ok := x.GetResult().(*GetAnalysisTemplateSecretResponse_Raw); ok { - return x.Raw - } - return nil -} - -type isGetAnalysisTemplateSecretResponse_Result interface { - isGetAnalysisTemplateSecretResponse_Result() -} - -type GetAnalysisTemplateSecretResponse_Secret struct { - Secret *v1.Secret `protobuf:"bytes,1,opt,name=secret,proto3,oneof"` -} - -type GetAnalysisTemplateSecretResponse_Raw struct { - Raw []byte `protobuf:"bytes,2,opt,name=raw,proto3,oneof"` -} - -func (*GetAnalysisTemplateSecretResponse_Secret) isGetAnalysisTemplateSecretResponse_Result() {} - -func (*GetAnalysisTemplateSecretResponse_Raw) isGetAnalysisTemplateSecretResponse_Result() {} - var File_service_v1alpha1_service_proto protoreflect.FileDescriptor var file_service_v1alpha1_service_proto_rawDesc = []byte{ @@ -8555,603 +8078,504 @@ var file_service_v1alpha1_service_proto_rawDesc = []byte{ 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x72, 0x62, 0x61, 0x63, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, - 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x41, 0x0a, 0x25, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x4d, 0x61, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x68, 0x0a, 0x26, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6d, 0x61, 0x70, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, - 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, - 0x73, 0x22, 0x98, 0x01, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, - 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, - 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x84, 0x01, 0x0a, - 0x24, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, - 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6b, 0x38, 0x73, 0x2e, - 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x4d, 0x61, 0x70, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x22, 0x3e, 0x0a, 0x22, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, - 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x22, 0x5b, 0x0a, 0x23, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, - 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x07, 0x73, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6b, 0x38, - 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x07, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, - 0x22, 0x95, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, - 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, - 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22, 0x77, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x41, - 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, - 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, - 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x48, 0x00, 0x52, 0x06, 0x73, 0x65, 0x63, - 0x72, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, - 0x48, 0x00, 0x52, 0x03, 0x72, 0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x2a, 0x51, 0x0a, 0x09, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1a, - 0x0a, 0x16, 0x52, 0x41, 0x57, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x41, - 0x57, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, 0x10, 0x01, 0x12, - 0x13, 0x0a, 0x0f, 0x52, 0x41, 0x57, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x59, 0x41, - 0x4d, 0x4c, 0x10, 0x02, 0x32, 0xd4, 0x40, 0x0a, 0x0c, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, - 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x09, 0x47, - 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, - 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, - 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x72, 0x6f, 0x6c, 0x65, 0x2a, 0x51, 0x0a, 0x09, 0x52, 0x61, 0x77, 0x46, 0x6f, 0x72, 0x6d, 0x61, + 0x74, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x41, 0x57, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, + 0x0f, 0x52, 0x41, 0x57, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x4a, 0x53, 0x4f, 0x4e, + 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x41, 0x57, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, + 0x5f, 0x59, 0x41, 0x4d, 0x4c, 0x10, 0x02, 0x32, 0x9a, 0x3b, 0x0a, 0x0c, 0x4b, 0x61, 0x72, 0x67, + 0x6f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x37, 0x2e, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, + 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, 0x2e, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x41, 0x64, - 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, + 0x0a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x33, 0x2e, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9b, 0x01, 0x0a, + 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x64, 0x6d, 0x69, - 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x16, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x12, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, - 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x72, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, - 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, - 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, - 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, - 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, - 0x73, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, - 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, - 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, - 0x65, 0x12, 0x31, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, + 0x61, 0x67, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x57, 0x61, 0x74, 0x63, - 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, - 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x67, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x77, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x7a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, - 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, - 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x61, 0x6b, - 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, - 0x67, 0x65, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, - 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x61, 0x67, 0x65, 0x12, 0x31, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, - 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, - 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x88, 0x01, 0x0a, 0x0f, 0x57, 0x61, 0x74, 0x63, - 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, 0x2e, 0x61, 0x6b, - 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, - 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7c, 0x0a, 0x0b, 0x57, + 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, + 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x7a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, - 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x30, 0x01, 0x12, 0x7d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, - 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x85, 0x01, 0x0a, 0x0e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, + 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, + 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x88, 0x01, 0x0a, 0x0f, 0x57, + 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x38, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, + 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x7d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, + 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, + 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x0e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, + 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, + 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x83, 0x01, 0x0a, + 0x0e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x62, 0x6f, 0x72, + 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x12, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, - 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, - 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x41, 0x62, - 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x37, 0x2e, 0x61, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x41, 0x62, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, + 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x35, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x50, 0x72, - 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x80, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x12, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, - 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, + 0x0a, 0x0e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, + 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x68, 0x61, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x70, 0x70, + 0x72, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x4c, - 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x35, 0x2e, 0x61, 0x6b, - 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x41, - 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x37, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, + 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, - 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x80, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x12, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x83, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x61, + 0x67, 0x65, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, - 0x0e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x67, 0x65, 0x12, - 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, - 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, - 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x6f, - 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, - 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, - 0x6f, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x53, + 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, + 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x3a, 0x2e, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, + 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x44, - 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, - 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x8f, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x3b, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x08, 0x52, 0x65, 0x76, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x12, 0x31, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x72, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x71, 0x0a, 0x08, 0x52, 0x65, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x31, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x11, 0x41, 0x62, 0x6f, + 0x72, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x32, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x11, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x56, - 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x2e, 0x61, 0x6b, - 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, - 0x62, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x62, 0x6f, 0x72, 0x74, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x72, - 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, - 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x31, 0x2e, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x62, + 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, + 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, + 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, + 0x0c, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x12, 0x35, 0x2e, + 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, + 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x88, 0x01, 0x0a, + 0x0f, 0x57, 0x61, 0x74, 0x63, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, + 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x47, 0x65, - 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x12, 0x35, 0x2e, 0x61, 0x6b, 0x75, + 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, + 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x36, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, + 0x74, 0x63, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x12, 0x38, 0x2e, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, + 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x89, 0x01, 0x0a, 0x10, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x57, 0x61, 0x72, 0x65, + 0x68, 0x6f, 0x75, 0x73, 0x65, 0x12, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, + 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, + 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x73, 0x12, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x11, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x73, 0x12, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x88, 0x01, 0x0a, 0x0f, 0x57, 0x61, - 0x74, 0x63, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x12, 0x38, 0x2e, + 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x74, 0x63, 0x68, - 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x30, 0x01, 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, - 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, - 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, - 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, - 0x0a, 0x10, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, - 0x73, 0x65, 0x12, 0x39, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x57, 0x61, 0x72, - 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3a, 0x2e, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x11, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, + 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, + 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x86, 0x01, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, + 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x11, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x3a, - 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x61, 0x6b, 0x75, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, + 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, + 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, 0x72, + 0x65, 0x74, 0x12, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x3d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, + 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x92, 0x01, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x3c, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, + 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, + 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x15, 0x4c, 0x69, + 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x12, 0x3e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, + 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, + 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x2e, 0x61, + 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x16, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, + 0x6c, 0x61, 0x74, 0x65, 0x12, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, + 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, + 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, + 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, + 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, - 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x73, 0x12, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x61, 0x6b, - 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0x3a, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, - 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x12, 0x3b, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, - 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, - 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, - 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, + 0x69, 0x73, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, + 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x3a, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, - 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x92, 0x01, 0x0a, - 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x12, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, - 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, - 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, - 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, - 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x41, - 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, - 0x12, 0x3e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, - 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x3c, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, + 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, + 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, + 0x6f, 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, + 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, + 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, + 0x0a, 0x07, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x30, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x61, 0x6b, + 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, + 0x0a, 0x05, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x2e, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x12, 0x3f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, 0x79, - 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x40, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, - 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x12, 0x37, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x38, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, - 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xb3, 0x01, 0x0a, 0x1e, 0x4c, - 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x73, 0x12, 0x47, 0x2e, - 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x48, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0xad, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, - 0x70, 0x12, 0x45, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, - 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x46, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, + 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, + 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, + 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, + 0x0a, 0x06, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x12, 0x2f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0xaa, 0x01, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, - 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, - 0x12, 0x44, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, - 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x45, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x6e, - 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, - 0x63, 0x72, 0x65, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xa4, 0x01, - 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x42, 0x2e, 0x61, 0x6b, - 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, - 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x43, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, - 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8c, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x3a, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3b, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, - 0x65, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, - 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, - 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, - 0x12, 0x30, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, - 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x2e, - 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, + 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, + 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x76, + 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, + 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, - 0x31, 0x2e, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x74, 0x0a, 0x09, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x61, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x06, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x12, - 0x2f, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, - 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x30, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, - 0x12, 0x33, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, - 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, - 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, - 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, - 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x97, 0x02, 0x0a, 0x24, - 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, - 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, - 0x70, 0x68, 0x61, 0x31, 0x42, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2f, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2f, 0x70, 0x6b, - 0x67, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x31, - 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, 0x73, 0x76, 0x63, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0xa2, 0x02, 0x04, 0x41, 0x49, 0x4b, 0x53, 0xaa, 0x02, 0x20, 0x41, 0x6b, 0x75, 0x69, - 0x74, 0x79, 0x2e, 0x49, 0x6f, 0x2e, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x2e, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x20, 0x41, - 0x6b, 0x75, 0x69, 0x74, 0x79, 0x5c, 0x49, 0x6f, 0x5c, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x5c, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, - 0x02, 0x2c, 0x41, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x5c, 0x49, 0x6f, 0x5c, 0x4b, 0x61, 0x72, 0x67, - 0x6f, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, - 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x24, 0x41, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x3a, 0x3a, 0x49, 0x6f, 0x3a, 0x3a, 0x4b, 0x61, 0x72, - 0x67, 0x6f, 0x3a, 0x3a, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x61, - 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x97, 0x02, 0x0a, 0x24, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6b, 0x75, + 0x69, 0x74, 0x79, 0x2e, 0x69, 0x6f, 0x2e, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x42, 0x0c, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x2f, 0x6b, 0x61, 0x72, 0x67, 0x6f, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x3b, + 0x73, 0x76, 0x63, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xa2, 0x02, 0x04, 0x41, 0x49, + 0x4b, 0x53, 0xaa, 0x02, 0x20, 0x41, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x2e, 0x49, 0x6f, 0x2e, 0x4b, + 0x61, 0x72, 0x67, 0x6f, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x56, 0x31, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x31, 0xca, 0x02, 0x20, 0x41, 0x6b, 0x75, 0x69, 0x74, 0x79, 0x5c, 0x49, + 0x6f, 0x5c, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5c, + 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0xe2, 0x02, 0x2c, 0x41, 0x6b, 0x75, 0x69, 0x74, + 0x79, 0x5c, 0x49, 0x6f, 0x5c, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x5c, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x24, 0x41, 0x6b, 0x75, 0x69, 0x74, 0x79, + 0x3a, 0x3a, 0x49, 0x6f, 0x3a, 0x3a, 0x4b, 0x61, 0x72, 0x67, 0x6f, 0x3a, 0x3a, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -9167,373 +8591,350 @@ func file_service_v1alpha1_service_proto_rawDescGZIP() []byte { } var file_service_v1alpha1_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_service_v1alpha1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 141) +var file_service_v1alpha1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 133) var file_service_v1alpha1_service_proto_goTypes = []interface{}{ - (RawFormat)(0), // 0: akuity.io.kargo.service.v1alpha1.RawFormat - (*ComponentVersions)(nil), // 1: akuity.io.kargo.service.v1alpha1.ComponentVersions - (*VersionInfo)(nil), // 2: akuity.io.kargo.service.v1alpha1.VersionInfo - (*GetVersionInfoRequest)(nil), // 3: akuity.io.kargo.service.v1alpha1.GetVersionInfoRequest - (*GetVersionInfoResponse)(nil), // 4: akuity.io.kargo.service.v1alpha1.GetVersionInfoResponse - (*GetConfigRequest)(nil), // 5: akuity.io.kargo.service.v1alpha1.GetConfigRequest - (*ArgoCDShard)(nil), // 6: akuity.io.kargo.service.v1alpha1.ArgoCDShard - (*GetConfigResponse)(nil), // 7: akuity.io.kargo.service.v1alpha1.GetConfigResponse - (*GetPublicConfigRequest)(nil), // 8: akuity.io.kargo.service.v1alpha1.GetPublicConfigRequest - (*GetPublicConfigResponse)(nil), // 9: akuity.io.kargo.service.v1alpha1.GetPublicConfigResponse - (*OIDCConfig)(nil), // 10: akuity.io.kargo.service.v1alpha1.OIDCConfig - (*AdminLoginRequest)(nil), // 11: akuity.io.kargo.service.v1alpha1.AdminLoginRequest - (*AdminLoginResponse)(nil), // 12: akuity.io.kargo.service.v1alpha1.AdminLoginResponse - (*CreateResourceRequest)(nil), // 13: akuity.io.kargo.service.v1alpha1.CreateResourceRequest - (*CreateResourceResult)(nil), // 14: akuity.io.kargo.service.v1alpha1.CreateResourceResult - (*CreateResourceResponse)(nil), // 15: akuity.io.kargo.service.v1alpha1.CreateResourceResponse - (*CreateOrUpdateResourceRequest)(nil), // 16: akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceRequest - (*CreateOrUpdateResourceResult)(nil), // 17: akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceResult - (*CreateOrUpdateResourceResponse)(nil), // 18: akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceResponse - (*UpdateResourceRequest)(nil), // 19: akuity.io.kargo.service.v1alpha1.UpdateResourceRequest - (*UpdateResourceResult)(nil), // 20: akuity.io.kargo.service.v1alpha1.UpdateResourceResult - (*UpdateResourceResponse)(nil), // 21: akuity.io.kargo.service.v1alpha1.UpdateResourceResponse - (*DeleteResourceRequest)(nil), // 22: akuity.io.kargo.service.v1alpha1.DeleteResourceRequest - (*DeleteResourceResult)(nil), // 23: akuity.io.kargo.service.v1alpha1.DeleteResourceResult - (*DeleteResourceResponse)(nil), // 24: akuity.io.kargo.service.v1alpha1.DeleteResourceResponse - (*ListStagesRequest)(nil), // 25: akuity.io.kargo.service.v1alpha1.ListStagesRequest - (*ListStagesResponse)(nil), // 26: akuity.io.kargo.service.v1alpha1.ListStagesResponse - (*ListImagesRequest)(nil), // 27: akuity.io.kargo.service.v1alpha1.ListImagesRequest - (*ListImagesResponse)(nil), // 28: akuity.io.kargo.service.v1alpha1.ListImagesResponse - (*TagMap)(nil), // 29: akuity.io.kargo.service.v1alpha1.TagMap - (*ImageStageMap)(nil), // 30: akuity.io.kargo.service.v1alpha1.ImageStageMap - (*GetStageRequest)(nil), // 31: akuity.io.kargo.service.v1alpha1.GetStageRequest - (*GetStageResponse)(nil), // 32: akuity.io.kargo.service.v1alpha1.GetStageResponse - (*WatchStagesRequest)(nil), // 33: akuity.io.kargo.service.v1alpha1.WatchStagesRequest - (*WatchStagesResponse)(nil), // 34: akuity.io.kargo.service.v1alpha1.WatchStagesResponse - (*DeleteStageRequest)(nil), // 35: akuity.io.kargo.service.v1alpha1.DeleteStageRequest - (*DeleteStageResponse)(nil), // 36: akuity.io.kargo.service.v1alpha1.DeleteStageResponse - (*RefreshStageRequest)(nil), // 37: akuity.io.kargo.service.v1alpha1.RefreshStageRequest - (*RefreshStageResponse)(nil), // 38: akuity.io.kargo.service.v1alpha1.RefreshStageResponse - (*ListPromotionsRequest)(nil), // 39: akuity.io.kargo.service.v1alpha1.ListPromotionsRequest - (*ListPromotionsResponse)(nil), // 40: akuity.io.kargo.service.v1alpha1.ListPromotionsResponse - (*WatchPromotionsRequest)(nil), // 41: akuity.io.kargo.service.v1alpha1.WatchPromotionsRequest - (*WatchPromotionsResponse)(nil), // 42: akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse - (*GetPromotionRequest)(nil), // 43: akuity.io.kargo.service.v1alpha1.GetPromotionRequest - (*GetPromotionResponse)(nil), // 44: akuity.io.kargo.service.v1alpha1.GetPromotionResponse - (*WatchPromotionRequest)(nil), // 45: akuity.io.kargo.service.v1alpha1.WatchPromotionRequest - (*WatchPromotionResponse)(nil), // 46: akuity.io.kargo.service.v1alpha1.WatchPromotionResponse - (*AbortPromotionRequest)(nil), // 47: akuity.io.kargo.service.v1alpha1.AbortPromotionRequest - (*AbortPromotionResponse)(nil), // 48: akuity.io.kargo.service.v1alpha1.AbortPromotionResponse - (*DeleteProjectRequest)(nil), // 49: akuity.io.kargo.service.v1alpha1.DeleteProjectRequest - (*DeleteProjectResponse)(nil), // 50: akuity.io.kargo.service.v1alpha1.DeleteProjectResponse - (*GetProjectRequest)(nil), // 51: akuity.io.kargo.service.v1alpha1.GetProjectRequest - (*GetProjectResponse)(nil), // 52: akuity.io.kargo.service.v1alpha1.GetProjectResponse - (*ListProjectsRequest)(nil), // 53: akuity.io.kargo.service.v1alpha1.ListProjectsRequest - (*ListProjectsResponse)(nil), // 54: akuity.io.kargo.service.v1alpha1.ListProjectsResponse - (*ApproveFreightRequest)(nil), // 55: akuity.io.kargo.service.v1alpha1.ApproveFreightRequest - (*ApproveFreightResponse)(nil), // 56: akuity.io.kargo.service.v1alpha1.ApproveFreightResponse - (*DeleteFreightRequest)(nil), // 57: akuity.io.kargo.service.v1alpha1.DeleteFreightRequest - (*DeleteFreightResponse)(nil), // 58: akuity.io.kargo.service.v1alpha1.DeleteFreightResponse - (*GetFreightRequest)(nil), // 59: akuity.io.kargo.service.v1alpha1.GetFreightRequest - (*GetFreightResponse)(nil), // 60: akuity.io.kargo.service.v1alpha1.GetFreightResponse - (*PromoteToStageRequest)(nil), // 61: akuity.io.kargo.service.v1alpha1.PromoteToStageRequest - (*PromoteToStageResponse)(nil), // 62: akuity.io.kargo.service.v1alpha1.PromoteToStageResponse - (*PromoteDownstreamRequest)(nil), // 63: akuity.io.kargo.service.v1alpha1.PromoteDownstreamRequest - (*PromoteDownstreamResponse)(nil), // 64: akuity.io.kargo.service.v1alpha1.PromoteDownstreamResponse - (*QueryFreightRequest)(nil), // 65: akuity.io.kargo.service.v1alpha1.QueryFreightRequest - (*QueryFreightResponse)(nil), // 66: akuity.io.kargo.service.v1alpha1.QueryFreightResponse - (*FreightList)(nil), // 67: akuity.io.kargo.service.v1alpha1.FreightList - (*UpdateFreightAliasRequest)(nil), // 68: akuity.io.kargo.service.v1alpha1.UpdateFreightAliasRequest - (*UpdateFreightAliasResponse)(nil), // 69: akuity.io.kargo.service.v1alpha1.UpdateFreightAliasResponse - (*ReverifyRequest)(nil), // 70: akuity.io.kargo.service.v1alpha1.ReverifyRequest - (*ReverifyResponse)(nil), // 71: akuity.io.kargo.service.v1alpha1.ReverifyResponse - (*AbortVerificationRequest)(nil), // 72: akuity.io.kargo.service.v1alpha1.AbortVerificationRequest - (*AbortVerificationResponse)(nil), // 73: akuity.io.kargo.service.v1alpha1.AbortVerificationResponse - (*ListWarehousesRequest)(nil), // 74: akuity.io.kargo.service.v1alpha1.ListWarehousesRequest - (*ListWarehousesResponse)(nil), // 75: akuity.io.kargo.service.v1alpha1.ListWarehousesResponse - (*GetWarehouseRequest)(nil), // 76: akuity.io.kargo.service.v1alpha1.GetWarehouseRequest - (*GetWarehouseResponse)(nil), // 77: akuity.io.kargo.service.v1alpha1.GetWarehouseResponse - (*WatchWarehousesRequest)(nil), // 78: akuity.io.kargo.service.v1alpha1.WatchWarehousesRequest - (*WatchWarehousesResponse)(nil), // 79: akuity.io.kargo.service.v1alpha1.WatchWarehousesResponse - (*DeleteWarehouseRequest)(nil), // 80: akuity.io.kargo.service.v1alpha1.DeleteWarehouseRequest - (*DeleteWarehouseResponse)(nil), // 81: akuity.io.kargo.service.v1alpha1.DeleteWarehouseResponse - (*RefreshWarehouseRequest)(nil), // 82: akuity.io.kargo.service.v1alpha1.RefreshWarehouseRequest - (*RefreshWarehouseResponse)(nil), // 83: akuity.io.kargo.service.v1alpha1.RefreshWarehouseResponse - (*ListProjectSecretsRequest)(nil), // 84: akuity.io.kargo.service.v1alpha1.ListProjectSecretsRequest - (*ListProjectSecretsResponse)(nil), // 85: akuity.io.kargo.service.v1alpha1.ListProjectSecretsResponse - (*CreateProjectSecretRequest)(nil), // 86: akuity.io.kargo.service.v1alpha1.CreateProjectSecretRequest - (*CreateProjectSecretResponse)(nil), // 87: akuity.io.kargo.service.v1alpha1.CreateProjectSecretResponse - (*UpdateProjectSecretRequest)(nil), // 88: akuity.io.kargo.service.v1alpha1.UpdateProjectSecretRequest - (*UpdateProjectSecretResponse)(nil), // 89: akuity.io.kargo.service.v1alpha1.UpdateProjectSecretResponse - (*DeleteProjectSecretRequest)(nil), // 90: akuity.io.kargo.service.v1alpha1.DeleteProjectSecretRequest - (*DeleteProjectSecretResponse)(nil), // 91: akuity.io.kargo.service.v1alpha1.DeleteProjectSecretResponse - (*CreateCredentialsRequest)(nil), // 92: akuity.io.kargo.service.v1alpha1.CreateCredentialsRequest - (*CreateCredentialsResponse)(nil), // 93: akuity.io.kargo.service.v1alpha1.CreateCredentialsResponse - (*DeleteCredentialsRequest)(nil), // 94: akuity.io.kargo.service.v1alpha1.DeleteCredentialsRequest - (*DeleteCredentialsResponse)(nil), // 95: akuity.io.kargo.service.v1alpha1.DeleteCredentialsResponse - (*GetCredentialsRequest)(nil), // 96: akuity.io.kargo.service.v1alpha1.GetCredentialsRequest - (*GetCredentialsResponse)(nil), // 97: akuity.io.kargo.service.v1alpha1.GetCredentialsResponse - (*ListCredentialsRequest)(nil), // 98: akuity.io.kargo.service.v1alpha1.ListCredentialsRequest - (*ListCredentialsResponse)(nil), // 99: akuity.io.kargo.service.v1alpha1.ListCredentialsResponse - (*UpdateCredentialsRequest)(nil), // 100: akuity.io.kargo.service.v1alpha1.UpdateCredentialsRequest - (*UpdateCredentialsResponse)(nil), // 101: akuity.io.kargo.service.v1alpha1.UpdateCredentialsResponse - (*ListAnalysisTemplatesRequest)(nil), // 102: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesRequest - (*ListAnalysisTemplatesResponse)(nil), // 103: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesResponse - (*GetAnalysisTemplateRequest)(nil), // 104: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateRequest - (*GetAnalysisTemplateResponse)(nil), // 105: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateResponse - (*GetAnalysisRunRequest)(nil), // 106: akuity.io.kargo.service.v1alpha1.GetAnalysisRunRequest - (*GetAnalysisRunResponse)(nil), // 107: akuity.io.kargo.service.v1alpha1.GetAnalysisRunResponse - (*DeleteAnalysisTemplateRequest)(nil), // 108: akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateRequest - (*DeleteAnalysisTemplateResponse)(nil), // 109: akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateResponse - (*ListProjectEventsRequest)(nil), // 110: akuity.io.kargo.service.v1alpha1.ListProjectEventsRequest - (*ListProjectEventsResponse)(nil), // 111: akuity.io.kargo.service.v1alpha1.ListProjectEventsResponse - (*CreateRoleRequest)(nil), // 112: akuity.io.kargo.service.v1alpha1.CreateRoleRequest - (*CreateRoleResponse)(nil), // 113: akuity.io.kargo.service.v1alpha1.CreateRoleResponse - (*DeleteRoleRequest)(nil), // 114: akuity.io.kargo.service.v1alpha1.DeleteRoleRequest - (*DeleteRoleResponse)(nil), // 115: akuity.io.kargo.service.v1alpha1.DeleteRoleResponse - (*GetRoleRequest)(nil), // 116: akuity.io.kargo.service.v1alpha1.GetRoleRequest - (*GetRoleResponse)(nil), // 117: akuity.io.kargo.service.v1alpha1.GetRoleResponse - (*Claims)(nil), // 118: akuity.io.kargo.service.v1alpha1.Claims - (*GrantRequest)(nil), // 119: akuity.io.kargo.service.v1alpha1.GrantRequest - (*GrantResponse)(nil), // 120: akuity.io.kargo.service.v1alpha1.GrantResponse - (*ListRolesRequest)(nil), // 121: akuity.io.kargo.service.v1alpha1.ListRolesRequest - (*ListRolesResponse)(nil), // 122: akuity.io.kargo.service.v1alpha1.ListRolesResponse - (*RevokeRequest)(nil), // 123: akuity.io.kargo.service.v1alpha1.RevokeRequest - (*RevokeResponse)(nil), // 124: akuity.io.kargo.service.v1alpha1.RevokeResponse - (*UpdateRoleRequest)(nil), // 125: akuity.io.kargo.service.v1alpha1.UpdateRoleRequest - (*UpdateRoleResponse)(nil), // 126: akuity.io.kargo.service.v1alpha1.UpdateRoleResponse - (*ListAnalysisTemplateConfigMapsRequest)(nil), // 127: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateConfigMapsRequest - (*ListAnalysisTemplateConfigMapsResponse)(nil), // 128: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateConfigMapsResponse - (*GetAnalysisTemplateConfigMapRequest)(nil), // 129: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateConfigMapRequest - (*GetAnalysisTemplateConfigMapResponse)(nil), // 130: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateConfigMapResponse - (*ListAnalysisTemplateSecretsRequest)(nil), // 131: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateSecretsRequest - (*ListAnalysisTemplateSecretsResponse)(nil), // 132: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateSecretsResponse - (*GetAnalysisTemplateSecretRequest)(nil), // 133: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateSecretRequest - (*GetAnalysisTemplateSecretResponse)(nil), // 134: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateSecretResponse - nil, // 135: akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry - nil, // 136: akuity.io.kargo.service.v1alpha1.ListImagesResponse.ImagesEntry - nil, // 137: akuity.io.kargo.service.v1alpha1.TagMap.TagsEntry - nil, // 138: akuity.io.kargo.service.v1alpha1.ImageStageMap.StagesEntry - nil, // 139: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry - nil, // 140: akuity.io.kargo.service.v1alpha1.CreateProjectSecretRequest.DataEntry - nil, // 141: akuity.io.kargo.service.v1alpha1.UpdateProjectSecretRequest.DataEntry - (*timestamppb.Timestamp)(nil), // 142: google.protobuf.Timestamp - (*v1alpha1.Stage)(nil), // 143: github.com.akuity.kargo.api.v1alpha1.Stage - (*v1alpha1.Promotion)(nil), // 144: github.com.akuity.kargo.api.v1alpha1.Promotion - (*v1alpha1.Project)(nil), // 145: github.com.akuity.kargo.api.v1alpha1.Project - (*v1alpha1.Freight)(nil), // 146: github.com.akuity.kargo.api.v1alpha1.Freight - (*v1alpha1.Warehouse)(nil), // 147: github.com.akuity.kargo.api.v1alpha1.Warehouse - (*v1.Secret)(nil), // 148: k8s.io.api.core.v1.Secret - (*v1alpha11.AnalysisTemplate)(nil), // 149: github.com.akuity.kargo.internal.controller.rollouts.api.v1alpha1.AnalysisTemplate - (*v1alpha11.AnalysisRun)(nil), // 150: github.com.akuity.kargo.internal.controller.rollouts.api.v1alpha1.AnalysisRun - (*v1.Event)(nil), // 151: k8s.io.api.core.v1.Event - (*v1alpha12.Role)(nil), // 152: github.com.akuity.kargo.api.rbac.v1alpha1.Role - (*v1alpha12.RoleResources)(nil), // 153: github.com.akuity.kargo.api.rbac.v1alpha1.RoleResources - (*v1alpha12.Claim)(nil), // 154: github.com.akuity.kargo.api.rbac.v1alpha1.Claim - (*v1alpha12.ResourceDetails)(nil), // 155: github.com.akuity.kargo.api.rbac.v1alpha1.ResourceDetails - (*v1.ConfigMap)(nil), // 156: k8s.io.api.core.v1.ConfigMap + (RawFormat)(0), // 0: akuity.io.kargo.service.v1alpha1.RawFormat + (*ComponentVersions)(nil), // 1: akuity.io.kargo.service.v1alpha1.ComponentVersions + (*VersionInfo)(nil), // 2: akuity.io.kargo.service.v1alpha1.VersionInfo + (*GetVersionInfoRequest)(nil), // 3: akuity.io.kargo.service.v1alpha1.GetVersionInfoRequest + (*GetVersionInfoResponse)(nil), // 4: akuity.io.kargo.service.v1alpha1.GetVersionInfoResponse + (*GetConfigRequest)(nil), // 5: akuity.io.kargo.service.v1alpha1.GetConfigRequest + (*ArgoCDShard)(nil), // 6: akuity.io.kargo.service.v1alpha1.ArgoCDShard + (*GetConfigResponse)(nil), // 7: akuity.io.kargo.service.v1alpha1.GetConfigResponse + (*GetPublicConfigRequest)(nil), // 8: akuity.io.kargo.service.v1alpha1.GetPublicConfigRequest + (*GetPublicConfigResponse)(nil), // 9: akuity.io.kargo.service.v1alpha1.GetPublicConfigResponse + (*OIDCConfig)(nil), // 10: akuity.io.kargo.service.v1alpha1.OIDCConfig + (*AdminLoginRequest)(nil), // 11: akuity.io.kargo.service.v1alpha1.AdminLoginRequest + (*AdminLoginResponse)(nil), // 12: akuity.io.kargo.service.v1alpha1.AdminLoginResponse + (*CreateResourceRequest)(nil), // 13: akuity.io.kargo.service.v1alpha1.CreateResourceRequest + (*CreateResourceResult)(nil), // 14: akuity.io.kargo.service.v1alpha1.CreateResourceResult + (*CreateResourceResponse)(nil), // 15: akuity.io.kargo.service.v1alpha1.CreateResourceResponse + (*CreateOrUpdateResourceRequest)(nil), // 16: akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceRequest + (*CreateOrUpdateResourceResult)(nil), // 17: akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceResult + (*CreateOrUpdateResourceResponse)(nil), // 18: akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceResponse + (*UpdateResourceRequest)(nil), // 19: akuity.io.kargo.service.v1alpha1.UpdateResourceRequest + (*UpdateResourceResult)(nil), // 20: akuity.io.kargo.service.v1alpha1.UpdateResourceResult + (*UpdateResourceResponse)(nil), // 21: akuity.io.kargo.service.v1alpha1.UpdateResourceResponse + (*DeleteResourceRequest)(nil), // 22: akuity.io.kargo.service.v1alpha1.DeleteResourceRequest + (*DeleteResourceResult)(nil), // 23: akuity.io.kargo.service.v1alpha1.DeleteResourceResult + (*DeleteResourceResponse)(nil), // 24: akuity.io.kargo.service.v1alpha1.DeleteResourceResponse + (*ListStagesRequest)(nil), // 25: akuity.io.kargo.service.v1alpha1.ListStagesRequest + (*ListStagesResponse)(nil), // 26: akuity.io.kargo.service.v1alpha1.ListStagesResponse + (*ListImagesRequest)(nil), // 27: akuity.io.kargo.service.v1alpha1.ListImagesRequest + (*ListImagesResponse)(nil), // 28: akuity.io.kargo.service.v1alpha1.ListImagesResponse + (*TagMap)(nil), // 29: akuity.io.kargo.service.v1alpha1.TagMap + (*ImageStageMap)(nil), // 30: akuity.io.kargo.service.v1alpha1.ImageStageMap + (*GetStageRequest)(nil), // 31: akuity.io.kargo.service.v1alpha1.GetStageRequest + (*GetStageResponse)(nil), // 32: akuity.io.kargo.service.v1alpha1.GetStageResponse + (*WatchStagesRequest)(nil), // 33: akuity.io.kargo.service.v1alpha1.WatchStagesRequest + (*WatchStagesResponse)(nil), // 34: akuity.io.kargo.service.v1alpha1.WatchStagesResponse + (*DeleteStageRequest)(nil), // 35: akuity.io.kargo.service.v1alpha1.DeleteStageRequest + (*DeleteStageResponse)(nil), // 36: akuity.io.kargo.service.v1alpha1.DeleteStageResponse + (*RefreshStageRequest)(nil), // 37: akuity.io.kargo.service.v1alpha1.RefreshStageRequest + (*RefreshStageResponse)(nil), // 38: akuity.io.kargo.service.v1alpha1.RefreshStageResponse + (*ListPromotionsRequest)(nil), // 39: akuity.io.kargo.service.v1alpha1.ListPromotionsRequest + (*ListPromotionsResponse)(nil), // 40: akuity.io.kargo.service.v1alpha1.ListPromotionsResponse + (*WatchPromotionsRequest)(nil), // 41: akuity.io.kargo.service.v1alpha1.WatchPromotionsRequest + (*WatchPromotionsResponse)(nil), // 42: akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse + (*GetPromotionRequest)(nil), // 43: akuity.io.kargo.service.v1alpha1.GetPromotionRequest + (*GetPromotionResponse)(nil), // 44: akuity.io.kargo.service.v1alpha1.GetPromotionResponse + (*WatchPromotionRequest)(nil), // 45: akuity.io.kargo.service.v1alpha1.WatchPromotionRequest + (*WatchPromotionResponse)(nil), // 46: akuity.io.kargo.service.v1alpha1.WatchPromotionResponse + (*AbortPromotionRequest)(nil), // 47: akuity.io.kargo.service.v1alpha1.AbortPromotionRequest + (*AbortPromotionResponse)(nil), // 48: akuity.io.kargo.service.v1alpha1.AbortPromotionResponse + (*DeleteProjectRequest)(nil), // 49: akuity.io.kargo.service.v1alpha1.DeleteProjectRequest + (*DeleteProjectResponse)(nil), // 50: akuity.io.kargo.service.v1alpha1.DeleteProjectResponse + (*GetProjectRequest)(nil), // 51: akuity.io.kargo.service.v1alpha1.GetProjectRequest + (*GetProjectResponse)(nil), // 52: akuity.io.kargo.service.v1alpha1.GetProjectResponse + (*ListProjectsRequest)(nil), // 53: akuity.io.kargo.service.v1alpha1.ListProjectsRequest + (*ListProjectsResponse)(nil), // 54: akuity.io.kargo.service.v1alpha1.ListProjectsResponse + (*ApproveFreightRequest)(nil), // 55: akuity.io.kargo.service.v1alpha1.ApproveFreightRequest + (*ApproveFreightResponse)(nil), // 56: akuity.io.kargo.service.v1alpha1.ApproveFreightResponse + (*DeleteFreightRequest)(nil), // 57: akuity.io.kargo.service.v1alpha1.DeleteFreightRequest + (*DeleteFreightResponse)(nil), // 58: akuity.io.kargo.service.v1alpha1.DeleteFreightResponse + (*GetFreightRequest)(nil), // 59: akuity.io.kargo.service.v1alpha1.GetFreightRequest + (*GetFreightResponse)(nil), // 60: akuity.io.kargo.service.v1alpha1.GetFreightResponse + (*PromoteToStageRequest)(nil), // 61: akuity.io.kargo.service.v1alpha1.PromoteToStageRequest + (*PromoteToStageResponse)(nil), // 62: akuity.io.kargo.service.v1alpha1.PromoteToStageResponse + (*PromoteDownstreamRequest)(nil), // 63: akuity.io.kargo.service.v1alpha1.PromoteDownstreamRequest + (*PromoteDownstreamResponse)(nil), // 64: akuity.io.kargo.service.v1alpha1.PromoteDownstreamResponse + (*QueryFreightRequest)(nil), // 65: akuity.io.kargo.service.v1alpha1.QueryFreightRequest + (*QueryFreightResponse)(nil), // 66: akuity.io.kargo.service.v1alpha1.QueryFreightResponse + (*FreightList)(nil), // 67: akuity.io.kargo.service.v1alpha1.FreightList + (*UpdateFreightAliasRequest)(nil), // 68: akuity.io.kargo.service.v1alpha1.UpdateFreightAliasRequest + (*UpdateFreightAliasResponse)(nil), // 69: akuity.io.kargo.service.v1alpha1.UpdateFreightAliasResponse + (*ReverifyRequest)(nil), // 70: akuity.io.kargo.service.v1alpha1.ReverifyRequest + (*ReverifyResponse)(nil), // 71: akuity.io.kargo.service.v1alpha1.ReverifyResponse + (*AbortVerificationRequest)(nil), // 72: akuity.io.kargo.service.v1alpha1.AbortVerificationRequest + (*AbortVerificationResponse)(nil), // 73: akuity.io.kargo.service.v1alpha1.AbortVerificationResponse + (*ListWarehousesRequest)(nil), // 74: akuity.io.kargo.service.v1alpha1.ListWarehousesRequest + (*ListWarehousesResponse)(nil), // 75: akuity.io.kargo.service.v1alpha1.ListWarehousesResponse + (*GetWarehouseRequest)(nil), // 76: akuity.io.kargo.service.v1alpha1.GetWarehouseRequest + (*GetWarehouseResponse)(nil), // 77: akuity.io.kargo.service.v1alpha1.GetWarehouseResponse + (*WatchWarehousesRequest)(nil), // 78: akuity.io.kargo.service.v1alpha1.WatchWarehousesRequest + (*WatchWarehousesResponse)(nil), // 79: akuity.io.kargo.service.v1alpha1.WatchWarehousesResponse + (*DeleteWarehouseRequest)(nil), // 80: akuity.io.kargo.service.v1alpha1.DeleteWarehouseRequest + (*DeleteWarehouseResponse)(nil), // 81: akuity.io.kargo.service.v1alpha1.DeleteWarehouseResponse + (*RefreshWarehouseRequest)(nil), // 82: akuity.io.kargo.service.v1alpha1.RefreshWarehouseRequest + (*RefreshWarehouseResponse)(nil), // 83: akuity.io.kargo.service.v1alpha1.RefreshWarehouseResponse + (*ListProjectSecretsRequest)(nil), // 84: akuity.io.kargo.service.v1alpha1.ListProjectSecretsRequest + (*ListProjectSecretsResponse)(nil), // 85: akuity.io.kargo.service.v1alpha1.ListProjectSecretsResponse + (*CreateProjectSecretRequest)(nil), // 86: akuity.io.kargo.service.v1alpha1.CreateProjectSecretRequest + (*CreateProjectSecretResponse)(nil), // 87: akuity.io.kargo.service.v1alpha1.CreateProjectSecretResponse + (*UpdateProjectSecretRequest)(nil), // 88: akuity.io.kargo.service.v1alpha1.UpdateProjectSecretRequest + (*UpdateProjectSecretResponse)(nil), // 89: akuity.io.kargo.service.v1alpha1.UpdateProjectSecretResponse + (*DeleteProjectSecretRequest)(nil), // 90: akuity.io.kargo.service.v1alpha1.DeleteProjectSecretRequest + (*DeleteProjectSecretResponse)(nil), // 91: akuity.io.kargo.service.v1alpha1.DeleteProjectSecretResponse + (*CreateCredentialsRequest)(nil), // 92: akuity.io.kargo.service.v1alpha1.CreateCredentialsRequest + (*CreateCredentialsResponse)(nil), // 93: akuity.io.kargo.service.v1alpha1.CreateCredentialsResponse + (*DeleteCredentialsRequest)(nil), // 94: akuity.io.kargo.service.v1alpha1.DeleteCredentialsRequest + (*DeleteCredentialsResponse)(nil), // 95: akuity.io.kargo.service.v1alpha1.DeleteCredentialsResponse + (*GetCredentialsRequest)(nil), // 96: akuity.io.kargo.service.v1alpha1.GetCredentialsRequest + (*GetCredentialsResponse)(nil), // 97: akuity.io.kargo.service.v1alpha1.GetCredentialsResponse + (*ListCredentialsRequest)(nil), // 98: akuity.io.kargo.service.v1alpha1.ListCredentialsRequest + (*ListCredentialsResponse)(nil), // 99: akuity.io.kargo.service.v1alpha1.ListCredentialsResponse + (*UpdateCredentialsRequest)(nil), // 100: akuity.io.kargo.service.v1alpha1.UpdateCredentialsRequest + (*UpdateCredentialsResponse)(nil), // 101: akuity.io.kargo.service.v1alpha1.UpdateCredentialsResponse + (*ListAnalysisTemplatesRequest)(nil), // 102: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesRequest + (*ListAnalysisTemplatesResponse)(nil), // 103: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesResponse + (*GetAnalysisTemplateRequest)(nil), // 104: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateRequest + (*GetAnalysisTemplateResponse)(nil), // 105: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateResponse + (*GetAnalysisRunRequest)(nil), // 106: akuity.io.kargo.service.v1alpha1.GetAnalysisRunRequest + (*GetAnalysisRunResponse)(nil), // 107: akuity.io.kargo.service.v1alpha1.GetAnalysisRunResponse + (*DeleteAnalysisTemplateRequest)(nil), // 108: akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateRequest + (*DeleteAnalysisTemplateResponse)(nil), // 109: akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateResponse + (*ListProjectEventsRequest)(nil), // 110: akuity.io.kargo.service.v1alpha1.ListProjectEventsRequest + (*ListProjectEventsResponse)(nil), // 111: akuity.io.kargo.service.v1alpha1.ListProjectEventsResponse + (*CreateRoleRequest)(nil), // 112: akuity.io.kargo.service.v1alpha1.CreateRoleRequest + (*CreateRoleResponse)(nil), // 113: akuity.io.kargo.service.v1alpha1.CreateRoleResponse + (*DeleteRoleRequest)(nil), // 114: akuity.io.kargo.service.v1alpha1.DeleteRoleRequest + (*DeleteRoleResponse)(nil), // 115: akuity.io.kargo.service.v1alpha1.DeleteRoleResponse + (*GetRoleRequest)(nil), // 116: akuity.io.kargo.service.v1alpha1.GetRoleRequest + (*GetRoleResponse)(nil), // 117: akuity.io.kargo.service.v1alpha1.GetRoleResponse + (*Claims)(nil), // 118: akuity.io.kargo.service.v1alpha1.Claims + (*GrantRequest)(nil), // 119: akuity.io.kargo.service.v1alpha1.GrantRequest + (*GrantResponse)(nil), // 120: akuity.io.kargo.service.v1alpha1.GrantResponse + (*ListRolesRequest)(nil), // 121: akuity.io.kargo.service.v1alpha1.ListRolesRequest + (*ListRolesResponse)(nil), // 122: akuity.io.kargo.service.v1alpha1.ListRolesResponse + (*RevokeRequest)(nil), // 123: akuity.io.kargo.service.v1alpha1.RevokeRequest + (*RevokeResponse)(nil), // 124: akuity.io.kargo.service.v1alpha1.RevokeResponse + (*UpdateRoleRequest)(nil), // 125: akuity.io.kargo.service.v1alpha1.UpdateRoleRequest + (*UpdateRoleResponse)(nil), // 126: akuity.io.kargo.service.v1alpha1.UpdateRoleResponse + nil, // 127: akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry + nil, // 128: akuity.io.kargo.service.v1alpha1.ListImagesResponse.ImagesEntry + nil, // 129: akuity.io.kargo.service.v1alpha1.TagMap.TagsEntry + nil, // 130: akuity.io.kargo.service.v1alpha1.ImageStageMap.StagesEntry + nil, // 131: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry + nil, // 132: akuity.io.kargo.service.v1alpha1.CreateProjectSecretRequest.DataEntry + nil, // 133: akuity.io.kargo.service.v1alpha1.UpdateProjectSecretRequest.DataEntry + (*timestamppb.Timestamp)(nil), // 134: google.protobuf.Timestamp + (*v1alpha1.Stage)(nil), // 135: github.com.akuity.kargo.api.v1alpha1.Stage + (*v1alpha1.Promotion)(nil), // 136: github.com.akuity.kargo.api.v1alpha1.Promotion + (*v1alpha1.Project)(nil), // 137: github.com.akuity.kargo.api.v1alpha1.Project + (*v1alpha1.Freight)(nil), // 138: github.com.akuity.kargo.api.v1alpha1.Freight + (*v1alpha1.Warehouse)(nil), // 139: github.com.akuity.kargo.api.v1alpha1.Warehouse + (*v1.Secret)(nil), // 140: k8s.io.api.core.v1.Secret + (*v1alpha11.AnalysisTemplate)(nil), // 141: github.com.akuity.kargo.internal.controller.rollouts.api.v1alpha1.AnalysisTemplate + (*v1alpha11.AnalysisRun)(nil), // 142: github.com.akuity.kargo.internal.controller.rollouts.api.v1alpha1.AnalysisRun + (*v1.Event)(nil), // 143: k8s.io.api.core.v1.Event + (*v1alpha12.Role)(nil), // 144: github.com.akuity.kargo.api.rbac.v1alpha1.Role + (*v1alpha12.RoleResources)(nil), // 145: github.com.akuity.kargo.api.rbac.v1alpha1.RoleResources + (*v1alpha12.Claim)(nil), // 146: github.com.akuity.kargo.api.rbac.v1alpha1.Claim + (*v1alpha12.ResourceDetails)(nil), // 147: github.com.akuity.kargo.api.rbac.v1alpha1.ResourceDetails } var file_service_v1alpha1_service_proto_depIdxs = []int32{ 2, // 0: akuity.io.kargo.service.v1alpha1.ComponentVersions.server:type_name -> akuity.io.kargo.service.v1alpha1.VersionInfo 2, // 1: akuity.io.kargo.service.v1alpha1.ComponentVersions.cli:type_name -> akuity.io.kargo.service.v1alpha1.VersionInfo - 142, // 2: akuity.io.kargo.service.v1alpha1.VersionInfo.build_time:type_name -> google.protobuf.Timestamp + 134, // 2: akuity.io.kargo.service.v1alpha1.VersionInfo.build_time:type_name -> google.protobuf.Timestamp 2, // 3: akuity.io.kargo.service.v1alpha1.GetVersionInfoResponse.version_info:type_name -> akuity.io.kargo.service.v1alpha1.VersionInfo - 135, // 4: akuity.io.kargo.service.v1alpha1.GetConfigResponse.argocd_shards:type_name -> akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry + 127, // 4: akuity.io.kargo.service.v1alpha1.GetConfigResponse.argocd_shards:type_name -> akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry 10, // 5: akuity.io.kargo.service.v1alpha1.GetPublicConfigResponse.oidc_config:type_name -> akuity.io.kargo.service.v1alpha1.OIDCConfig 14, // 6: akuity.io.kargo.service.v1alpha1.CreateResourceResponse.results:type_name -> akuity.io.kargo.service.v1alpha1.CreateResourceResult 17, // 7: akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceResponse.results:type_name -> akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceResult 20, // 8: akuity.io.kargo.service.v1alpha1.UpdateResourceResponse.results:type_name -> akuity.io.kargo.service.v1alpha1.UpdateResourceResult 23, // 9: akuity.io.kargo.service.v1alpha1.DeleteResourceResponse.results:type_name -> akuity.io.kargo.service.v1alpha1.DeleteResourceResult - 143, // 10: akuity.io.kargo.service.v1alpha1.ListStagesResponse.stages:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage - 136, // 11: akuity.io.kargo.service.v1alpha1.ListImagesResponse.images:type_name -> akuity.io.kargo.service.v1alpha1.ListImagesResponse.ImagesEntry - 137, // 12: akuity.io.kargo.service.v1alpha1.TagMap.tags:type_name -> akuity.io.kargo.service.v1alpha1.TagMap.TagsEntry - 138, // 13: akuity.io.kargo.service.v1alpha1.ImageStageMap.stages:type_name -> akuity.io.kargo.service.v1alpha1.ImageStageMap.StagesEntry + 135, // 10: akuity.io.kargo.service.v1alpha1.ListStagesResponse.stages:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage + 128, // 11: akuity.io.kargo.service.v1alpha1.ListImagesResponse.images:type_name -> akuity.io.kargo.service.v1alpha1.ListImagesResponse.ImagesEntry + 129, // 12: akuity.io.kargo.service.v1alpha1.TagMap.tags:type_name -> akuity.io.kargo.service.v1alpha1.TagMap.TagsEntry + 130, // 13: akuity.io.kargo.service.v1alpha1.ImageStageMap.stages:type_name -> akuity.io.kargo.service.v1alpha1.ImageStageMap.StagesEntry 0, // 14: akuity.io.kargo.service.v1alpha1.GetStageRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 143, // 15: akuity.io.kargo.service.v1alpha1.GetStageResponse.stage:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage - 143, // 16: akuity.io.kargo.service.v1alpha1.WatchStagesResponse.stage:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage - 143, // 17: akuity.io.kargo.service.v1alpha1.RefreshStageResponse.stage:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage - 144, // 18: akuity.io.kargo.service.v1alpha1.ListPromotionsResponse.promotions:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion - 144, // 19: akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion + 135, // 15: akuity.io.kargo.service.v1alpha1.GetStageResponse.stage:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage + 135, // 16: akuity.io.kargo.service.v1alpha1.WatchStagesResponse.stage:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage + 135, // 17: akuity.io.kargo.service.v1alpha1.RefreshStageResponse.stage:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage + 136, // 18: akuity.io.kargo.service.v1alpha1.ListPromotionsResponse.promotions:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion + 136, // 19: akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion 0, // 20: akuity.io.kargo.service.v1alpha1.GetPromotionRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 144, // 21: akuity.io.kargo.service.v1alpha1.GetPromotionResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion - 144, // 22: akuity.io.kargo.service.v1alpha1.WatchPromotionResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion + 136, // 21: akuity.io.kargo.service.v1alpha1.GetPromotionResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion + 136, // 22: akuity.io.kargo.service.v1alpha1.WatchPromotionResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion 0, // 23: akuity.io.kargo.service.v1alpha1.GetProjectRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 145, // 24: akuity.io.kargo.service.v1alpha1.GetProjectResponse.project:type_name -> github.com.akuity.kargo.api.v1alpha1.Project - 145, // 25: akuity.io.kargo.service.v1alpha1.ListProjectsResponse.projects:type_name -> github.com.akuity.kargo.api.v1alpha1.Project + 137, // 24: akuity.io.kargo.service.v1alpha1.GetProjectResponse.project:type_name -> github.com.akuity.kargo.api.v1alpha1.Project + 137, // 25: akuity.io.kargo.service.v1alpha1.ListProjectsResponse.projects:type_name -> github.com.akuity.kargo.api.v1alpha1.Project 0, // 26: akuity.io.kargo.service.v1alpha1.GetFreightRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 146, // 27: akuity.io.kargo.service.v1alpha1.GetFreightResponse.freight:type_name -> github.com.akuity.kargo.api.v1alpha1.Freight - 144, // 28: akuity.io.kargo.service.v1alpha1.PromoteToStageResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion - 144, // 29: akuity.io.kargo.service.v1alpha1.PromoteDownstreamResponse.promotions:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion - 139, // 30: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.groups:type_name -> akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry - 146, // 31: akuity.io.kargo.service.v1alpha1.FreightList.freight:type_name -> github.com.akuity.kargo.api.v1alpha1.Freight - 147, // 32: akuity.io.kargo.service.v1alpha1.ListWarehousesResponse.warehouses:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse + 138, // 27: akuity.io.kargo.service.v1alpha1.GetFreightResponse.freight:type_name -> github.com.akuity.kargo.api.v1alpha1.Freight + 136, // 28: akuity.io.kargo.service.v1alpha1.PromoteToStageResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion + 136, // 29: akuity.io.kargo.service.v1alpha1.PromoteDownstreamResponse.promotions:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion + 131, // 30: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.groups:type_name -> akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry + 138, // 31: akuity.io.kargo.service.v1alpha1.FreightList.freight:type_name -> github.com.akuity.kargo.api.v1alpha1.Freight + 139, // 32: akuity.io.kargo.service.v1alpha1.ListWarehousesResponse.warehouses:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse 0, // 33: akuity.io.kargo.service.v1alpha1.GetWarehouseRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 147, // 34: akuity.io.kargo.service.v1alpha1.GetWarehouseResponse.warehouse:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse - 147, // 35: akuity.io.kargo.service.v1alpha1.WatchWarehousesResponse.warehouse:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse - 147, // 36: akuity.io.kargo.service.v1alpha1.RefreshWarehouseResponse.warehouse:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse - 148, // 37: akuity.io.kargo.service.v1alpha1.ListProjectSecretsResponse.secrets:type_name -> k8s.io.api.core.v1.Secret - 140, // 38: akuity.io.kargo.service.v1alpha1.CreateProjectSecretRequest.data:type_name -> akuity.io.kargo.service.v1alpha1.CreateProjectSecretRequest.DataEntry - 148, // 39: akuity.io.kargo.service.v1alpha1.CreateProjectSecretResponse.secret:type_name -> k8s.io.api.core.v1.Secret - 141, // 40: akuity.io.kargo.service.v1alpha1.UpdateProjectSecretRequest.data:type_name -> akuity.io.kargo.service.v1alpha1.UpdateProjectSecretRequest.DataEntry - 148, // 41: akuity.io.kargo.service.v1alpha1.UpdateProjectSecretResponse.secret:type_name -> k8s.io.api.core.v1.Secret - 148, // 42: akuity.io.kargo.service.v1alpha1.CreateCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret + 139, // 34: akuity.io.kargo.service.v1alpha1.GetWarehouseResponse.warehouse:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse + 139, // 35: akuity.io.kargo.service.v1alpha1.WatchWarehousesResponse.warehouse:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse + 139, // 36: akuity.io.kargo.service.v1alpha1.RefreshWarehouseResponse.warehouse:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse + 140, // 37: akuity.io.kargo.service.v1alpha1.ListProjectSecretsResponse.secrets:type_name -> k8s.io.api.core.v1.Secret + 132, // 38: akuity.io.kargo.service.v1alpha1.CreateProjectSecretRequest.data:type_name -> akuity.io.kargo.service.v1alpha1.CreateProjectSecretRequest.DataEntry + 140, // 39: akuity.io.kargo.service.v1alpha1.CreateProjectSecretResponse.secret:type_name -> k8s.io.api.core.v1.Secret + 133, // 40: akuity.io.kargo.service.v1alpha1.UpdateProjectSecretRequest.data:type_name -> akuity.io.kargo.service.v1alpha1.UpdateProjectSecretRequest.DataEntry + 140, // 41: akuity.io.kargo.service.v1alpha1.UpdateProjectSecretResponse.secret:type_name -> k8s.io.api.core.v1.Secret + 140, // 42: akuity.io.kargo.service.v1alpha1.CreateCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret 0, // 43: akuity.io.kargo.service.v1alpha1.GetCredentialsRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 148, // 44: akuity.io.kargo.service.v1alpha1.GetCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret - 148, // 45: akuity.io.kargo.service.v1alpha1.ListCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret - 148, // 46: akuity.io.kargo.service.v1alpha1.UpdateCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret - 149, // 47: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesResponse.analysis_templates:type_name -> github.com.akuity.kargo.internal.controller.rollouts.api.v1alpha1.AnalysisTemplate + 140, // 44: akuity.io.kargo.service.v1alpha1.GetCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret + 140, // 45: akuity.io.kargo.service.v1alpha1.ListCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret + 140, // 46: akuity.io.kargo.service.v1alpha1.UpdateCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret + 141, // 47: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesResponse.analysis_templates:type_name -> github.com.akuity.kargo.internal.controller.rollouts.api.v1alpha1.AnalysisTemplate 0, // 48: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 149, // 49: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateResponse.analysis_template:type_name -> github.com.akuity.kargo.internal.controller.rollouts.api.v1alpha1.AnalysisTemplate + 141, // 49: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateResponse.analysis_template:type_name -> github.com.akuity.kargo.internal.controller.rollouts.api.v1alpha1.AnalysisTemplate 0, // 50: akuity.io.kargo.service.v1alpha1.GetAnalysisRunRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 150, // 51: akuity.io.kargo.service.v1alpha1.GetAnalysisRunResponse.analysis_run:type_name -> github.com.akuity.kargo.internal.controller.rollouts.api.v1alpha1.AnalysisRun - 151, // 52: akuity.io.kargo.service.v1alpha1.ListProjectEventsResponse.events:type_name -> k8s.io.api.core.v1.Event - 152, // 53: akuity.io.kargo.service.v1alpha1.CreateRoleRequest.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role - 152, // 54: akuity.io.kargo.service.v1alpha1.CreateRoleResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role + 142, // 51: akuity.io.kargo.service.v1alpha1.GetAnalysisRunResponse.analysis_run:type_name -> github.com.akuity.kargo.internal.controller.rollouts.api.v1alpha1.AnalysisRun + 143, // 52: akuity.io.kargo.service.v1alpha1.ListProjectEventsResponse.events:type_name -> k8s.io.api.core.v1.Event + 144, // 53: akuity.io.kargo.service.v1alpha1.CreateRoleRequest.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role + 144, // 54: akuity.io.kargo.service.v1alpha1.CreateRoleResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role 0, // 55: akuity.io.kargo.service.v1alpha1.GetRoleRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 152, // 56: akuity.io.kargo.service.v1alpha1.GetRoleResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role - 153, // 57: akuity.io.kargo.service.v1alpha1.GetRoleResponse.resources:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.RoleResources - 154, // 58: akuity.io.kargo.service.v1alpha1.Claims.claims:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Claim + 144, // 56: akuity.io.kargo.service.v1alpha1.GetRoleResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role + 145, // 57: akuity.io.kargo.service.v1alpha1.GetRoleResponse.resources:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.RoleResources + 146, // 58: akuity.io.kargo.service.v1alpha1.Claims.claims:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Claim 118, // 59: akuity.io.kargo.service.v1alpha1.GrantRequest.user_claims:type_name -> akuity.io.kargo.service.v1alpha1.Claims - 155, // 60: akuity.io.kargo.service.v1alpha1.GrantRequest.resource_details:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.ResourceDetails - 152, // 61: akuity.io.kargo.service.v1alpha1.GrantResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role - 152, // 62: akuity.io.kargo.service.v1alpha1.ListRolesResponse.roles:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role - 153, // 63: akuity.io.kargo.service.v1alpha1.ListRolesResponse.resources:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.RoleResources + 147, // 60: akuity.io.kargo.service.v1alpha1.GrantRequest.resource_details:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.ResourceDetails + 144, // 61: akuity.io.kargo.service.v1alpha1.GrantResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role + 144, // 62: akuity.io.kargo.service.v1alpha1.ListRolesResponse.roles:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role + 145, // 63: akuity.io.kargo.service.v1alpha1.ListRolesResponse.resources:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.RoleResources 118, // 64: akuity.io.kargo.service.v1alpha1.RevokeRequest.user_claims:type_name -> akuity.io.kargo.service.v1alpha1.Claims - 155, // 65: akuity.io.kargo.service.v1alpha1.RevokeRequest.resource_details:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.ResourceDetails - 152, // 66: akuity.io.kargo.service.v1alpha1.RevokeResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role - 152, // 67: akuity.io.kargo.service.v1alpha1.UpdateRoleRequest.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role - 152, // 68: akuity.io.kargo.service.v1alpha1.UpdateRoleResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role - 156, // 69: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateConfigMapsResponse.config_maps:type_name -> k8s.io.api.core.v1.ConfigMap - 0, // 70: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateConfigMapRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 156, // 71: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateConfigMapResponse.config_map:type_name -> k8s.io.api.core.v1.ConfigMap - 148, // 72: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateSecretsResponse.secrets:type_name -> k8s.io.api.core.v1.Secret - 0, // 73: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateSecretRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat - 148, // 74: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateSecretResponse.secret:type_name -> k8s.io.api.core.v1.Secret - 6, // 75: akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.ArgoCDShard - 29, // 76: akuity.io.kargo.service.v1alpha1.ListImagesResponse.ImagesEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.TagMap - 30, // 77: akuity.io.kargo.service.v1alpha1.TagMap.TagsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.ImageStageMap - 67, // 78: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.FreightList - 3, // 79: akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo:input_type -> akuity.io.kargo.service.v1alpha1.GetVersionInfoRequest - 5, // 80: akuity.io.kargo.service.v1alpha1.KargoService.GetConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetConfigRequest - 8, // 81: akuity.io.kargo.service.v1alpha1.KargoService.GetPublicConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetPublicConfigRequest - 11, // 82: akuity.io.kargo.service.v1alpha1.KargoService.AdminLogin:input_type -> akuity.io.kargo.service.v1alpha1.AdminLoginRequest - 13, // 83: akuity.io.kargo.service.v1alpha1.KargoService.CreateResource:input_type -> akuity.io.kargo.service.v1alpha1.CreateResourceRequest - 16, // 84: akuity.io.kargo.service.v1alpha1.KargoService.CreateOrUpdateResource:input_type -> akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceRequest - 19, // 85: akuity.io.kargo.service.v1alpha1.KargoService.UpdateResource:input_type -> akuity.io.kargo.service.v1alpha1.UpdateResourceRequest - 22, // 86: akuity.io.kargo.service.v1alpha1.KargoService.DeleteResource:input_type -> akuity.io.kargo.service.v1alpha1.DeleteResourceRequest - 25, // 87: akuity.io.kargo.service.v1alpha1.KargoService.ListStages:input_type -> akuity.io.kargo.service.v1alpha1.ListStagesRequest - 27, // 88: akuity.io.kargo.service.v1alpha1.KargoService.ListImages:input_type -> akuity.io.kargo.service.v1alpha1.ListImagesRequest - 31, // 89: akuity.io.kargo.service.v1alpha1.KargoService.GetStage:input_type -> akuity.io.kargo.service.v1alpha1.GetStageRequest - 33, // 90: akuity.io.kargo.service.v1alpha1.KargoService.WatchStages:input_type -> akuity.io.kargo.service.v1alpha1.WatchStagesRequest - 35, // 91: akuity.io.kargo.service.v1alpha1.KargoService.DeleteStage:input_type -> akuity.io.kargo.service.v1alpha1.DeleteStageRequest - 37, // 92: akuity.io.kargo.service.v1alpha1.KargoService.RefreshStage:input_type -> akuity.io.kargo.service.v1alpha1.RefreshStageRequest - 39, // 93: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotions:input_type -> akuity.io.kargo.service.v1alpha1.ListPromotionsRequest - 41, // 94: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotions:input_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionsRequest - 43, // 95: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotion:input_type -> akuity.io.kargo.service.v1alpha1.GetPromotionRequest - 45, // 96: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotion:input_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionRequest - 47, // 97: akuity.io.kargo.service.v1alpha1.KargoService.AbortPromotion:input_type -> akuity.io.kargo.service.v1alpha1.AbortPromotionRequest - 49, // 98: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProject:input_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectRequest - 51, // 99: akuity.io.kargo.service.v1alpha1.KargoService.GetProject:input_type -> akuity.io.kargo.service.v1alpha1.GetProjectRequest - 53, // 100: akuity.io.kargo.service.v1alpha1.KargoService.ListProjects:input_type -> akuity.io.kargo.service.v1alpha1.ListProjectsRequest - 55, // 101: akuity.io.kargo.service.v1alpha1.KargoService.ApproveFreight:input_type -> akuity.io.kargo.service.v1alpha1.ApproveFreightRequest - 57, // 102: akuity.io.kargo.service.v1alpha1.KargoService.DeleteFreight:input_type -> akuity.io.kargo.service.v1alpha1.DeleteFreightRequest - 59, // 103: akuity.io.kargo.service.v1alpha1.KargoService.GetFreight:input_type -> akuity.io.kargo.service.v1alpha1.GetFreightRequest - 61, // 104: akuity.io.kargo.service.v1alpha1.KargoService.PromoteToStage:input_type -> akuity.io.kargo.service.v1alpha1.PromoteToStageRequest - 63, // 105: akuity.io.kargo.service.v1alpha1.KargoService.PromoteDownstream:input_type -> akuity.io.kargo.service.v1alpha1.PromoteDownstreamRequest - 65, // 106: akuity.io.kargo.service.v1alpha1.KargoService.QueryFreight:input_type -> akuity.io.kargo.service.v1alpha1.QueryFreightRequest - 68, // 107: akuity.io.kargo.service.v1alpha1.KargoService.UpdateFreightAlias:input_type -> akuity.io.kargo.service.v1alpha1.UpdateFreightAliasRequest - 70, // 108: akuity.io.kargo.service.v1alpha1.KargoService.Reverify:input_type -> akuity.io.kargo.service.v1alpha1.ReverifyRequest - 72, // 109: akuity.io.kargo.service.v1alpha1.KargoService.AbortVerification:input_type -> akuity.io.kargo.service.v1alpha1.AbortVerificationRequest - 74, // 110: akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses:input_type -> akuity.io.kargo.service.v1alpha1.ListWarehousesRequest - 76, // 111: akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.GetWarehouseRequest - 78, // 112: akuity.io.kargo.service.v1alpha1.KargoService.WatchWarehouses:input_type -> akuity.io.kargo.service.v1alpha1.WatchWarehousesRequest - 80, // 113: akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.DeleteWarehouseRequest - 82, // 114: akuity.io.kargo.service.v1alpha1.KargoService.RefreshWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.RefreshWarehouseRequest - 92, // 115: akuity.io.kargo.service.v1alpha1.KargoService.CreateCredentials:input_type -> akuity.io.kargo.service.v1alpha1.CreateCredentialsRequest - 94, // 116: akuity.io.kargo.service.v1alpha1.KargoService.DeleteCredentials:input_type -> akuity.io.kargo.service.v1alpha1.DeleteCredentialsRequest - 96, // 117: akuity.io.kargo.service.v1alpha1.KargoService.GetCredentials:input_type -> akuity.io.kargo.service.v1alpha1.GetCredentialsRequest - 98, // 118: akuity.io.kargo.service.v1alpha1.KargoService.ListCredentials:input_type -> akuity.io.kargo.service.v1alpha1.ListCredentialsRequest - 100, // 119: akuity.io.kargo.service.v1alpha1.KargoService.UpdateCredentials:input_type -> akuity.io.kargo.service.v1alpha1.UpdateCredentialsRequest - 84, // 120: akuity.io.kargo.service.v1alpha1.KargoService.ListProjectSecrets:input_type -> akuity.io.kargo.service.v1alpha1.ListProjectSecretsRequest - 86, // 121: akuity.io.kargo.service.v1alpha1.KargoService.CreateProjectSecret:input_type -> akuity.io.kargo.service.v1alpha1.CreateProjectSecretRequest - 88, // 122: akuity.io.kargo.service.v1alpha1.KargoService.UpdateProjectSecret:input_type -> akuity.io.kargo.service.v1alpha1.UpdateProjectSecretRequest - 90, // 123: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProjectSecret:input_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectSecretRequest - 102, // 124: akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplates:input_type -> akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesRequest - 104, // 125: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplate:input_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateRequest - 108, // 126: akuity.io.kargo.service.v1alpha1.KargoService.DeleteAnalysisTemplate:input_type -> akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateRequest - 106, // 127: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRun:input_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisRunRequest - 127, // 128: akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplateConfigMaps:input_type -> akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateConfigMapsRequest - 129, // 129: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplateConfigMap:input_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateConfigMapRequest - 131, // 130: akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplateSecrets:input_type -> akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateSecretsRequest - 133, // 131: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplateSecret:input_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateSecretRequest - 110, // 132: akuity.io.kargo.service.v1alpha1.KargoService.ListProjectEvents:input_type -> akuity.io.kargo.service.v1alpha1.ListProjectEventsRequest - 112, // 133: akuity.io.kargo.service.v1alpha1.KargoService.CreateRole:input_type -> akuity.io.kargo.service.v1alpha1.CreateRoleRequest - 114, // 134: akuity.io.kargo.service.v1alpha1.KargoService.DeleteRole:input_type -> akuity.io.kargo.service.v1alpha1.DeleteRoleRequest - 116, // 135: akuity.io.kargo.service.v1alpha1.KargoService.GetRole:input_type -> akuity.io.kargo.service.v1alpha1.GetRoleRequest - 119, // 136: akuity.io.kargo.service.v1alpha1.KargoService.Grant:input_type -> akuity.io.kargo.service.v1alpha1.GrantRequest - 121, // 137: akuity.io.kargo.service.v1alpha1.KargoService.ListRoles:input_type -> akuity.io.kargo.service.v1alpha1.ListRolesRequest - 123, // 138: akuity.io.kargo.service.v1alpha1.KargoService.Revoke:input_type -> akuity.io.kargo.service.v1alpha1.RevokeRequest - 125, // 139: akuity.io.kargo.service.v1alpha1.KargoService.UpdateRole:input_type -> akuity.io.kargo.service.v1alpha1.UpdateRoleRequest - 4, // 140: akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo:output_type -> akuity.io.kargo.service.v1alpha1.GetVersionInfoResponse - 7, // 141: akuity.io.kargo.service.v1alpha1.KargoService.GetConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetConfigResponse - 9, // 142: akuity.io.kargo.service.v1alpha1.KargoService.GetPublicConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetPublicConfigResponse - 12, // 143: akuity.io.kargo.service.v1alpha1.KargoService.AdminLogin:output_type -> akuity.io.kargo.service.v1alpha1.AdminLoginResponse - 15, // 144: akuity.io.kargo.service.v1alpha1.KargoService.CreateResource:output_type -> akuity.io.kargo.service.v1alpha1.CreateResourceResponse - 18, // 145: akuity.io.kargo.service.v1alpha1.KargoService.CreateOrUpdateResource:output_type -> akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceResponse - 21, // 146: akuity.io.kargo.service.v1alpha1.KargoService.UpdateResource:output_type -> akuity.io.kargo.service.v1alpha1.UpdateResourceResponse - 24, // 147: akuity.io.kargo.service.v1alpha1.KargoService.DeleteResource:output_type -> akuity.io.kargo.service.v1alpha1.DeleteResourceResponse - 26, // 148: akuity.io.kargo.service.v1alpha1.KargoService.ListStages:output_type -> akuity.io.kargo.service.v1alpha1.ListStagesResponse - 28, // 149: akuity.io.kargo.service.v1alpha1.KargoService.ListImages:output_type -> akuity.io.kargo.service.v1alpha1.ListImagesResponse - 32, // 150: akuity.io.kargo.service.v1alpha1.KargoService.GetStage:output_type -> akuity.io.kargo.service.v1alpha1.GetStageResponse - 34, // 151: akuity.io.kargo.service.v1alpha1.KargoService.WatchStages:output_type -> akuity.io.kargo.service.v1alpha1.WatchStagesResponse - 36, // 152: akuity.io.kargo.service.v1alpha1.KargoService.DeleteStage:output_type -> akuity.io.kargo.service.v1alpha1.DeleteStageResponse - 38, // 153: akuity.io.kargo.service.v1alpha1.KargoService.RefreshStage:output_type -> akuity.io.kargo.service.v1alpha1.RefreshStageResponse - 40, // 154: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotions:output_type -> akuity.io.kargo.service.v1alpha1.ListPromotionsResponse - 42, // 155: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotions:output_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse - 44, // 156: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotion:output_type -> akuity.io.kargo.service.v1alpha1.GetPromotionResponse - 46, // 157: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotion:output_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionResponse - 48, // 158: akuity.io.kargo.service.v1alpha1.KargoService.AbortPromotion:output_type -> akuity.io.kargo.service.v1alpha1.AbortPromotionResponse - 50, // 159: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProject:output_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectResponse - 52, // 160: akuity.io.kargo.service.v1alpha1.KargoService.GetProject:output_type -> akuity.io.kargo.service.v1alpha1.GetProjectResponse - 54, // 161: akuity.io.kargo.service.v1alpha1.KargoService.ListProjects:output_type -> akuity.io.kargo.service.v1alpha1.ListProjectsResponse - 56, // 162: akuity.io.kargo.service.v1alpha1.KargoService.ApproveFreight:output_type -> akuity.io.kargo.service.v1alpha1.ApproveFreightResponse - 58, // 163: akuity.io.kargo.service.v1alpha1.KargoService.DeleteFreight:output_type -> akuity.io.kargo.service.v1alpha1.DeleteFreightResponse - 60, // 164: akuity.io.kargo.service.v1alpha1.KargoService.GetFreight:output_type -> akuity.io.kargo.service.v1alpha1.GetFreightResponse - 62, // 165: akuity.io.kargo.service.v1alpha1.KargoService.PromoteToStage:output_type -> akuity.io.kargo.service.v1alpha1.PromoteToStageResponse - 64, // 166: akuity.io.kargo.service.v1alpha1.KargoService.PromoteDownstream:output_type -> akuity.io.kargo.service.v1alpha1.PromoteDownstreamResponse - 66, // 167: akuity.io.kargo.service.v1alpha1.KargoService.QueryFreight:output_type -> akuity.io.kargo.service.v1alpha1.QueryFreightResponse - 69, // 168: akuity.io.kargo.service.v1alpha1.KargoService.UpdateFreightAlias:output_type -> akuity.io.kargo.service.v1alpha1.UpdateFreightAliasResponse - 71, // 169: akuity.io.kargo.service.v1alpha1.KargoService.Reverify:output_type -> akuity.io.kargo.service.v1alpha1.ReverifyResponse - 73, // 170: akuity.io.kargo.service.v1alpha1.KargoService.AbortVerification:output_type -> akuity.io.kargo.service.v1alpha1.AbortVerificationResponse - 75, // 171: akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses:output_type -> akuity.io.kargo.service.v1alpha1.ListWarehousesResponse - 77, // 172: akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.GetWarehouseResponse - 79, // 173: akuity.io.kargo.service.v1alpha1.KargoService.WatchWarehouses:output_type -> akuity.io.kargo.service.v1alpha1.WatchWarehousesResponse - 81, // 174: akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.DeleteWarehouseResponse - 83, // 175: akuity.io.kargo.service.v1alpha1.KargoService.RefreshWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.RefreshWarehouseResponse - 93, // 176: akuity.io.kargo.service.v1alpha1.KargoService.CreateCredentials:output_type -> akuity.io.kargo.service.v1alpha1.CreateCredentialsResponse - 95, // 177: akuity.io.kargo.service.v1alpha1.KargoService.DeleteCredentials:output_type -> akuity.io.kargo.service.v1alpha1.DeleteCredentialsResponse - 97, // 178: akuity.io.kargo.service.v1alpha1.KargoService.GetCredentials:output_type -> akuity.io.kargo.service.v1alpha1.GetCredentialsResponse - 99, // 179: akuity.io.kargo.service.v1alpha1.KargoService.ListCredentials:output_type -> akuity.io.kargo.service.v1alpha1.ListCredentialsResponse - 101, // 180: akuity.io.kargo.service.v1alpha1.KargoService.UpdateCredentials:output_type -> akuity.io.kargo.service.v1alpha1.UpdateCredentialsResponse - 85, // 181: akuity.io.kargo.service.v1alpha1.KargoService.ListProjectSecrets:output_type -> akuity.io.kargo.service.v1alpha1.ListProjectSecretsResponse - 87, // 182: akuity.io.kargo.service.v1alpha1.KargoService.CreateProjectSecret:output_type -> akuity.io.kargo.service.v1alpha1.CreateProjectSecretResponse - 89, // 183: akuity.io.kargo.service.v1alpha1.KargoService.UpdateProjectSecret:output_type -> akuity.io.kargo.service.v1alpha1.UpdateProjectSecretResponse - 91, // 184: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProjectSecret:output_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectSecretResponse - 103, // 185: akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplates:output_type -> akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesResponse - 105, // 186: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplate:output_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateResponse - 109, // 187: akuity.io.kargo.service.v1alpha1.KargoService.DeleteAnalysisTemplate:output_type -> akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateResponse - 107, // 188: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRun:output_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisRunResponse - 128, // 189: akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplateConfigMaps:output_type -> akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateConfigMapsResponse - 130, // 190: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplateConfigMap:output_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateConfigMapResponse - 132, // 191: akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplateSecrets:output_type -> akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateSecretsResponse - 134, // 192: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplateSecret:output_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateSecretResponse - 111, // 193: akuity.io.kargo.service.v1alpha1.KargoService.ListProjectEvents:output_type -> akuity.io.kargo.service.v1alpha1.ListProjectEventsResponse - 113, // 194: akuity.io.kargo.service.v1alpha1.KargoService.CreateRole:output_type -> akuity.io.kargo.service.v1alpha1.CreateRoleResponse - 115, // 195: akuity.io.kargo.service.v1alpha1.KargoService.DeleteRole:output_type -> akuity.io.kargo.service.v1alpha1.DeleteRoleResponse - 117, // 196: akuity.io.kargo.service.v1alpha1.KargoService.GetRole:output_type -> akuity.io.kargo.service.v1alpha1.GetRoleResponse - 120, // 197: akuity.io.kargo.service.v1alpha1.KargoService.Grant:output_type -> akuity.io.kargo.service.v1alpha1.GrantResponse - 122, // 198: akuity.io.kargo.service.v1alpha1.KargoService.ListRoles:output_type -> akuity.io.kargo.service.v1alpha1.ListRolesResponse - 124, // 199: akuity.io.kargo.service.v1alpha1.KargoService.Revoke:output_type -> akuity.io.kargo.service.v1alpha1.RevokeResponse - 126, // 200: akuity.io.kargo.service.v1alpha1.KargoService.UpdateRole:output_type -> akuity.io.kargo.service.v1alpha1.UpdateRoleResponse - 140, // [140:201] is the sub-list for method output_type - 79, // [79:140] is the sub-list for method input_type - 79, // [79:79] is the sub-list for extension type_name - 79, // [79:79] is the sub-list for extension extendee - 0, // [0:79] is the sub-list for field type_name + 147, // 65: akuity.io.kargo.service.v1alpha1.RevokeRequest.resource_details:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.ResourceDetails + 144, // 66: akuity.io.kargo.service.v1alpha1.RevokeResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role + 144, // 67: akuity.io.kargo.service.v1alpha1.UpdateRoleRequest.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role + 144, // 68: akuity.io.kargo.service.v1alpha1.UpdateRoleResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role + 6, // 69: akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.ArgoCDShard + 29, // 70: akuity.io.kargo.service.v1alpha1.ListImagesResponse.ImagesEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.TagMap + 30, // 71: akuity.io.kargo.service.v1alpha1.TagMap.TagsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.ImageStageMap + 67, // 72: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.FreightList + 3, // 73: akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo:input_type -> akuity.io.kargo.service.v1alpha1.GetVersionInfoRequest + 5, // 74: akuity.io.kargo.service.v1alpha1.KargoService.GetConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetConfigRequest + 8, // 75: akuity.io.kargo.service.v1alpha1.KargoService.GetPublicConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetPublicConfigRequest + 11, // 76: akuity.io.kargo.service.v1alpha1.KargoService.AdminLogin:input_type -> akuity.io.kargo.service.v1alpha1.AdminLoginRequest + 13, // 77: akuity.io.kargo.service.v1alpha1.KargoService.CreateResource:input_type -> akuity.io.kargo.service.v1alpha1.CreateResourceRequest + 16, // 78: akuity.io.kargo.service.v1alpha1.KargoService.CreateOrUpdateResource:input_type -> akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceRequest + 19, // 79: akuity.io.kargo.service.v1alpha1.KargoService.UpdateResource:input_type -> akuity.io.kargo.service.v1alpha1.UpdateResourceRequest + 22, // 80: akuity.io.kargo.service.v1alpha1.KargoService.DeleteResource:input_type -> akuity.io.kargo.service.v1alpha1.DeleteResourceRequest + 25, // 81: akuity.io.kargo.service.v1alpha1.KargoService.ListStages:input_type -> akuity.io.kargo.service.v1alpha1.ListStagesRequest + 27, // 82: akuity.io.kargo.service.v1alpha1.KargoService.ListImages:input_type -> akuity.io.kargo.service.v1alpha1.ListImagesRequest + 31, // 83: akuity.io.kargo.service.v1alpha1.KargoService.GetStage:input_type -> akuity.io.kargo.service.v1alpha1.GetStageRequest + 33, // 84: akuity.io.kargo.service.v1alpha1.KargoService.WatchStages:input_type -> akuity.io.kargo.service.v1alpha1.WatchStagesRequest + 35, // 85: akuity.io.kargo.service.v1alpha1.KargoService.DeleteStage:input_type -> akuity.io.kargo.service.v1alpha1.DeleteStageRequest + 37, // 86: akuity.io.kargo.service.v1alpha1.KargoService.RefreshStage:input_type -> akuity.io.kargo.service.v1alpha1.RefreshStageRequest + 39, // 87: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotions:input_type -> akuity.io.kargo.service.v1alpha1.ListPromotionsRequest + 41, // 88: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotions:input_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionsRequest + 43, // 89: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotion:input_type -> akuity.io.kargo.service.v1alpha1.GetPromotionRequest + 45, // 90: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotion:input_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionRequest + 47, // 91: akuity.io.kargo.service.v1alpha1.KargoService.AbortPromotion:input_type -> akuity.io.kargo.service.v1alpha1.AbortPromotionRequest + 49, // 92: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProject:input_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectRequest + 51, // 93: akuity.io.kargo.service.v1alpha1.KargoService.GetProject:input_type -> akuity.io.kargo.service.v1alpha1.GetProjectRequest + 53, // 94: akuity.io.kargo.service.v1alpha1.KargoService.ListProjects:input_type -> akuity.io.kargo.service.v1alpha1.ListProjectsRequest + 55, // 95: akuity.io.kargo.service.v1alpha1.KargoService.ApproveFreight:input_type -> akuity.io.kargo.service.v1alpha1.ApproveFreightRequest + 57, // 96: akuity.io.kargo.service.v1alpha1.KargoService.DeleteFreight:input_type -> akuity.io.kargo.service.v1alpha1.DeleteFreightRequest + 59, // 97: akuity.io.kargo.service.v1alpha1.KargoService.GetFreight:input_type -> akuity.io.kargo.service.v1alpha1.GetFreightRequest + 61, // 98: akuity.io.kargo.service.v1alpha1.KargoService.PromoteToStage:input_type -> akuity.io.kargo.service.v1alpha1.PromoteToStageRequest + 63, // 99: akuity.io.kargo.service.v1alpha1.KargoService.PromoteDownstream:input_type -> akuity.io.kargo.service.v1alpha1.PromoteDownstreamRequest + 65, // 100: akuity.io.kargo.service.v1alpha1.KargoService.QueryFreight:input_type -> akuity.io.kargo.service.v1alpha1.QueryFreightRequest + 68, // 101: akuity.io.kargo.service.v1alpha1.KargoService.UpdateFreightAlias:input_type -> akuity.io.kargo.service.v1alpha1.UpdateFreightAliasRequest + 70, // 102: akuity.io.kargo.service.v1alpha1.KargoService.Reverify:input_type -> akuity.io.kargo.service.v1alpha1.ReverifyRequest + 72, // 103: akuity.io.kargo.service.v1alpha1.KargoService.AbortVerification:input_type -> akuity.io.kargo.service.v1alpha1.AbortVerificationRequest + 74, // 104: akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses:input_type -> akuity.io.kargo.service.v1alpha1.ListWarehousesRequest + 76, // 105: akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.GetWarehouseRequest + 78, // 106: akuity.io.kargo.service.v1alpha1.KargoService.WatchWarehouses:input_type -> akuity.io.kargo.service.v1alpha1.WatchWarehousesRequest + 80, // 107: akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.DeleteWarehouseRequest + 82, // 108: akuity.io.kargo.service.v1alpha1.KargoService.RefreshWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.RefreshWarehouseRequest + 92, // 109: akuity.io.kargo.service.v1alpha1.KargoService.CreateCredentials:input_type -> akuity.io.kargo.service.v1alpha1.CreateCredentialsRequest + 94, // 110: akuity.io.kargo.service.v1alpha1.KargoService.DeleteCredentials:input_type -> akuity.io.kargo.service.v1alpha1.DeleteCredentialsRequest + 96, // 111: akuity.io.kargo.service.v1alpha1.KargoService.GetCredentials:input_type -> akuity.io.kargo.service.v1alpha1.GetCredentialsRequest + 98, // 112: akuity.io.kargo.service.v1alpha1.KargoService.ListCredentials:input_type -> akuity.io.kargo.service.v1alpha1.ListCredentialsRequest + 100, // 113: akuity.io.kargo.service.v1alpha1.KargoService.UpdateCredentials:input_type -> akuity.io.kargo.service.v1alpha1.UpdateCredentialsRequest + 84, // 114: akuity.io.kargo.service.v1alpha1.KargoService.ListProjectSecrets:input_type -> akuity.io.kargo.service.v1alpha1.ListProjectSecretsRequest + 86, // 115: akuity.io.kargo.service.v1alpha1.KargoService.CreateProjectSecret:input_type -> akuity.io.kargo.service.v1alpha1.CreateProjectSecretRequest + 88, // 116: akuity.io.kargo.service.v1alpha1.KargoService.UpdateProjectSecret:input_type -> akuity.io.kargo.service.v1alpha1.UpdateProjectSecretRequest + 90, // 117: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProjectSecret:input_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectSecretRequest + 102, // 118: akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplates:input_type -> akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesRequest + 104, // 119: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplate:input_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateRequest + 108, // 120: akuity.io.kargo.service.v1alpha1.KargoService.DeleteAnalysisTemplate:input_type -> akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateRequest + 106, // 121: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRun:input_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisRunRequest + 110, // 122: akuity.io.kargo.service.v1alpha1.KargoService.ListProjectEvents:input_type -> akuity.io.kargo.service.v1alpha1.ListProjectEventsRequest + 112, // 123: akuity.io.kargo.service.v1alpha1.KargoService.CreateRole:input_type -> akuity.io.kargo.service.v1alpha1.CreateRoleRequest + 114, // 124: akuity.io.kargo.service.v1alpha1.KargoService.DeleteRole:input_type -> akuity.io.kargo.service.v1alpha1.DeleteRoleRequest + 116, // 125: akuity.io.kargo.service.v1alpha1.KargoService.GetRole:input_type -> akuity.io.kargo.service.v1alpha1.GetRoleRequest + 119, // 126: akuity.io.kargo.service.v1alpha1.KargoService.Grant:input_type -> akuity.io.kargo.service.v1alpha1.GrantRequest + 121, // 127: akuity.io.kargo.service.v1alpha1.KargoService.ListRoles:input_type -> akuity.io.kargo.service.v1alpha1.ListRolesRequest + 123, // 128: akuity.io.kargo.service.v1alpha1.KargoService.Revoke:input_type -> akuity.io.kargo.service.v1alpha1.RevokeRequest + 125, // 129: akuity.io.kargo.service.v1alpha1.KargoService.UpdateRole:input_type -> akuity.io.kargo.service.v1alpha1.UpdateRoleRequest + 4, // 130: akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo:output_type -> akuity.io.kargo.service.v1alpha1.GetVersionInfoResponse + 7, // 131: akuity.io.kargo.service.v1alpha1.KargoService.GetConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetConfigResponse + 9, // 132: akuity.io.kargo.service.v1alpha1.KargoService.GetPublicConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetPublicConfigResponse + 12, // 133: akuity.io.kargo.service.v1alpha1.KargoService.AdminLogin:output_type -> akuity.io.kargo.service.v1alpha1.AdminLoginResponse + 15, // 134: akuity.io.kargo.service.v1alpha1.KargoService.CreateResource:output_type -> akuity.io.kargo.service.v1alpha1.CreateResourceResponse + 18, // 135: akuity.io.kargo.service.v1alpha1.KargoService.CreateOrUpdateResource:output_type -> akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceResponse + 21, // 136: akuity.io.kargo.service.v1alpha1.KargoService.UpdateResource:output_type -> akuity.io.kargo.service.v1alpha1.UpdateResourceResponse + 24, // 137: akuity.io.kargo.service.v1alpha1.KargoService.DeleteResource:output_type -> akuity.io.kargo.service.v1alpha1.DeleteResourceResponse + 26, // 138: akuity.io.kargo.service.v1alpha1.KargoService.ListStages:output_type -> akuity.io.kargo.service.v1alpha1.ListStagesResponse + 28, // 139: akuity.io.kargo.service.v1alpha1.KargoService.ListImages:output_type -> akuity.io.kargo.service.v1alpha1.ListImagesResponse + 32, // 140: akuity.io.kargo.service.v1alpha1.KargoService.GetStage:output_type -> akuity.io.kargo.service.v1alpha1.GetStageResponse + 34, // 141: akuity.io.kargo.service.v1alpha1.KargoService.WatchStages:output_type -> akuity.io.kargo.service.v1alpha1.WatchStagesResponse + 36, // 142: akuity.io.kargo.service.v1alpha1.KargoService.DeleteStage:output_type -> akuity.io.kargo.service.v1alpha1.DeleteStageResponse + 38, // 143: akuity.io.kargo.service.v1alpha1.KargoService.RefreshStage:output_type -> akuity.io.kargo.service.v1alpha1.RefreshStageResponse + 40, // 144: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotions:output_type -> akuity.io.kargo.service.v1alpha1.ListPromotionsResponse + 42, // 145: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotions:output_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse + 44, // 146: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotion:output_type -> akuity.io.kargo.service.v1alpha1.GetPromotionResponse + 46, // 147: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotion:output_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionResponse + 48, // 148: akuity.io.kargo.service.v1alpha1.KargoService.AbortPromotion:output_type -> akuity.io.kargo.service.v1alpha1.AbortPromotionResponse + 50, // 149: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProject:output_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectResponse + 52, // 150: akuity.io.kargo.service.v1alpha1.KargoService.GetProject:output_type -> akuity.io.kargo.service.v1alpha1.GetProjectResponse + 54, // 151: akuity.io.kargo.service.v1alpha1.KargoService.ListProjects:output_type -> akuity.io.kargo.service.v1alpha1.ListProjectsResponse + 56, // 152: akuity.io.kargo.service.v1alpha1.KargoService.ApproveFreight:output_type -> akuity.io.kargo.service.v1alpha1.ApproveFreightResponse + 58, // 153: akuity.io.kargo.service.v1alpha1.KargoService.DeleteFreight:output_type -> akuity.io.kargo.service.v1alpha1.DeleteFreightResponse + 60, // 154: akuity.io.kargo.service.v1alpha1.KargoService.GetFreight:output_type -> akuity.io.kargo.service.v1alpha1.GetFreightResponse + 62, // 155: akuity.io.kargo.service.v1alpha1.KargoService.PromoteToStage:output_type -> akuity.io.kargo.service.v1alpha1.PromoteToStageResponse + 64, // 156: akuity.io.kargo.service.v1alpha1.KargoService.PromoteDownstream:output_type -> akuity.io.kargo.service.v1alpha1.PromoteDownstreamResponse + 66, // 157: akuity.io.kargo.service.v1alpha1.KargoService.QueryFreight:output_type -> akuity.io.kargo.service.v1alpha1.QueryFreightResponse + 69, // 158: akuity.io.kargo.service.v1alpha1.KargoService.UpdateFreightAlias:output_type -> akuity.io.kargo.service.v1alpha1.UpdateFreightAliasResponse + 71, // 159: akuity.io.kargo.service.v1alpha1.KargoService.Reverify:output_type -> akuity.io.kargo.service.v1alpha1.ReverifyResponse + 73, // 160: akuity.io.kargo.service.v1alpha1.KargoService.AbortVerification:output_type -> akuity.io.kargo.service.v1alpha1.AbortVerificationResponse + 75, // 161: akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses:output_type -> akuity.io.kargo.service.v1alpha1.ListWarehousesResponse + 77, // 162: akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.GetWarehouseResponse + 79, // 163: akuity.io.kargo.service.v1alpha1.KargoService.WatchWarehouses:output_type -> akuity.io.kargo.service.v1alpha1.WatchWarehousesResponse + 81, // 164: akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.DeleteWarehouseResponse + 83, // 165: akuity.io.kargo.service.v1alpha1.KargoService.RefreshWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.RefreshWarehouseResponse + 93, // 166: akuity.io.kargo.service.v1alpha1.KargoService.CreateCredentials:output_type -> akuity.io.kargo.service.v1alpha1.CreateCredentialsResponse + 95, // 167: akuity.io.kargo.service.v1alpha1.KargoService.DeleteCredentials:output_type -> akuity.io.kargo.service.v1alpha1.DeleteCredentialsResponse + 97, // 168: akuity.io.kargo.service.v1alpha1.KargoService.GetCredentials:output_type -> akuity.io.kargo.service.v1alpha1.GetCredentialsResponse + 99, // 169: akuity.io.kargo.service.v1alpha1.KargoService.ListCredentials:output_type -> akuity.io.kargo.service.v1alpha1.ListCredentialsResponse + 101, // 170: akuity.io.kargo.service.v1alpha1.KargoService.UpdateCredentials:output_type -> akuity.io.kargo.service.v1alpha1.UpdateCredentialsResponse + 85, // 171: akuity.io.kargo.service.v1alpha1.KargoService.ListProjectSecrets:output_type -> akuity.io.kargo.service.v1alpha1.ListProjectSecretsResponse + 87, // 172: akuity.io.kargo.service.v1alpha1.KargoService.CreateProjectSecret:output_type -> akuity.io.kargo.service.v1alpha1.CreateProjectSecretResponse + 89, // 173: akuity.io.kargo.service.v1alpha1.KargoService.UpdateProjectSecret:output_type -> akuity.io.kargo.service.v1alpha1.UpdateProjectSecretResponse + 91, // 174: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProjectSecret:output_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectSecretResponse + 103, // 175: akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplates:output_type -> akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesResponse + 105, // 176: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplate:output_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateResponse + 109, // 177: akuity.io.kargo.service.v1alpha1.KargoService.DeleteAnalysisTemplate:output_type -> akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateResponse + 107, // 178: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRun:output_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisRunResponse + 111, // 179: akuity.io.kargo.service.v1alpha1.KargoService.ListProjectEvents:output_type -> akuity.io.kargo.service.v1alpha1.ListProjectEventsResponse + 113, // 180: akuity.io.kargo.service.v1alpha1.KargoService.CreateRole:output_type -> akuity.io.kargo.service.v1alpha1.CreateRoleResponse + 115, // 181: akuity.io.kargo.service.v1alpha1.KargoService.DeleteRole:output_type -> akuity.io.kargo.service.v1alpha1.DeleteRoleResponse + 117, // 182: akuity.io.kargo.service.v1alpha1.KargoService.GetRole:output_type -> akuity.io.kargo.service.v1alpha1.GetRoleResponse + 120, // 183: akuity.io.kargo.service.v1alpha1.KargoService.Grant:output_type -> akuity.io.kargo.service.v1alpha1.GrantResponse + 122, // 184: akuity.io.kargo.service.v1alpha1.KargoService.ListRoles:output_type -> akuity.io.kargo.service.v1alpha1.ListRolesResponse + 124, // 185: akuity.io.kargo.service.v1alpha1.KargoService.Revoke:output_type -> akuity.io.kargo.service.v1alpha1.RevokeResponse + 126, // 186: akuity.io.kargo.service.v1alpha1.KargoService.UpdateRole:output_type -> akuity.io.kargo.service.v1alpha1.UpdateRoleResponse + 130, // [130:187] is the sub-list for method output_type + 73, // [73:130] is the sub-list for method input_type + 73, // [73:73] is the sub-list for extension type_name + 73, // [73:73] is the sub-list for extension extendee + 0, // [0:73] is the sub-list for field type_name } func init() { file_service_v1alpha1_service_proto_init() } @@ -11054,102 +10455,6 @@ func file_service_v1alpha1_service_proto_init() { return nil } } - file_service_v1alpha1_service_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListAnalysisTemplateConfigMapsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_service_v1alpha1_service_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListAnalysisTemplateConfigMapsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_service_v1alpha1_service_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAnalysisTemplateConfigMapRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_service_v1alpha1_service_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAnalysisTemplateConfigMapResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_service_v1alpha1_service_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListAnalysisTemplateSecretsRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_service_v1alpha1_service_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListAnalysisTemplateSecretsResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_service_v1alpha1_service_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAnalysisTemplateSecretRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_service_v1alpha1_service_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAnalysisTemplateSecretResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } } file_service_v1alpha1_service_proto_msgTypes[0].OneofWrappers = []interface{}{} file_service_v1alpha1_service_proto_msgTypes[13].OneofWrappers = []interface{}{ @@ -11217,21 +10522,13 @@ func file_service_v1alpha1_service_proto_init() { (*RevokeRequest_UserClaims)(nil), (*RevokeRequest_ResourceDetails)(nil), } - file_service_v1alpha1_service_proto_msgTypes[129].OneofWrappers = []interface{}{ - (*GetAnalysisTemplateConfigMapResponse_ConfigMap)(nil), - (*GetAnalysisTemplateConfigMapResponse_Raw)(nil), - } - file_service_v1alpha1_service_proto_msgTypes[133].OneofWrappers = []interface{}{ - (*GetAnalysisTemplateSecretResponse_Secret)(nil), - (*GetAnalysisTemplateSecretResponse_Raw)(nil), - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_service_v1alpha1_service_proto_rawDesc, NumEnums: 1, - NumMessages: 141, + NumMessages: 133, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/api/service/v1alpha1/svcv1alpha1connect/service.connect.go b/pkg/api/service/v1alpha1/svcv1alpha1connect/service.connect.go index 2c09a62d8..ec9fa0504 100644 --- a/pkg/api/service/v1alpha1/svcv1alpha1connect/service.connect.go +++ b/pkg/api/service/v1alpha1/svcv1alpha1connect/service.connect.go @@ -172,18 +172,6 @@ const ( // KargoServiceGetAnalysisRunProcedure is the fully-qualified name of the KargoService's // GetAnalysisRun RPC. KargoServiceGetAnalysisRunProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetAnalysisRun" - // KargoServiceListAnalysisTemplateConfigMapsProcedure is the fully-qualified name of the - // KargoService's ListAnalysisTemplateConfigMaps RPC. - KargoServiceListAnalysisTemplateConfigMapsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListAnalysisTemplateConfigMaps" - // KargoServiceGetAnalysisTemplateConfigMapProcedure is the fully-qualified name of the - // KargoService's GetAnalysisTemplateConfigMap RPC. - KargoServiceGetAnalysisTemplateConfigMapProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetAnalysisTemplateConfigMap" - // KargoServiceListAnalysisTemplateSecretsProcedure is the fully-qualified name of the - // KargoService's ListAnalysisTemplateSecrets RPC. - KargoServiceListAnalysisTemplateSecretsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListAnalysisTemplateSecrets" - // KargoServiceGetAnalysisTemplateSecretProcedure is the fully-qualified name of the KargoService's - // GetAnalysisTemplateSecret RPC. - KargoServiceGetAnalysisTemplateSecretProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetAnalysisTemplateSecret" // KargoServiceListProjectEventsProcedure is the fully-qualified name of the KargoService's // ListProjectEvents RPC. KargoServiceListProjectEventsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListProjectEvents" @@ -205,68 +193,64 @@ const ( // These variables are the protoreflect.Descriptor objects for the RPCs defined in this package. var ( - kargoServiceServiceDescriptor = v1alpha1.File_service_v1alpha1_service_proto.Services().ByName("KargoService") - kargoServiceGetVersionInfoMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetVersionInfo") - kargoServiceGetConfigMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetConfig") - kargoServiceGetPublicConfigMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetPublicConfig") - kargoServiceAdminLoginMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("AdminLogin") - kargoServiceCreateResourceMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("CreateResource") - kargoServiceCreateOrUpdateResourceMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("CreateOrUpdateResource") - kargoServiceUpdateResourceMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("UpdateResource") - kargoServiceDeleteResourceMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteResource") - kargoServiceListStagesMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListStages") - kargoServiceListImagesMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListImages") - kargoServiceGetStageMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetStage") - kargoServiceWatchStagesMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("WatchStages") - kargoServiceDeleteStageMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteStage") - kargoServiceRefreshStageMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("RefreshStage") - kargoServiceListPromotionsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListPromotions") - kargoServiceWatchPromotionsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("WatchPromotions") - kargoServiceGetPromotionMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetPromotion") - kargoServiceWatchPromotionMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("WatchPromotion") - kargoServiceAbortPromotionMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("AbortPromotion") - kargoServiceDeleteProjectMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteProject") - kargoServiceGetProjectMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetProject") - kargoServiceListProjectsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListProjects") - kargoServiceApproveFreightMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ApproveFreight") - kargoServiceDeleteFreightMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteFreight") - kargoServiceGetFreightMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetFreight") - kargoServicePromoteToStageMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("PromoteToStage") - kargoServicePromoteDownstreamMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("PromoteDownstream") - kargoServiceQueryFreightMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("QueryFreight") - kargoServiceUpdateFreightAliasMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("UpdateFreightAlias") - kargoServiceReverifyMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("Reverify") - kargoServiceAbortVerificationMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("AbortVerification") - kargoServiceListWarehousesMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListWarehouses") - kargoServiceGetWarehouseMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetWarehouse") - kargoServiceWatchWarehousesMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("WatchWarehouses") - kargoServiceDeleteWarehouseMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteWarehouse") - kargoServiceRefreshWarehouseMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("RefreshWarehouse") - kargoServiceCreateCredentialsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("CreateCredentials") - kargoServiceDeleteCredentialsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteCredentials") - kargoServiceGetCredentialsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetCredentials") - kargoServiceListCredentialsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListCredentials") - kargoServiceUpdateCredentialsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("UpdateCredentials") - kargoServiceListProjectSecretsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListProjectSecrets") - kargoServiceCreateProjectSecretMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("CreateProjectSecret") - kargoServiceUpdateProjectSecretMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("UpdateProjectSecret") - kargoServiceDeleteProjectSecretMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteProjectSecret") - kargoServiceListAnalysisTemplatesMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListAnalysisTemplates") - kargoServiceGetAnalysisTemplateMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetAnalysisTemplate") - kargoServiceDeleteAnalysisTemplateMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteAnalysisTemplate") - kargoServiceGetAnalysisRunMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetAnalysisRun") - kargoServiceListAnalysisTemplateConfigMapsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListAnalysisTemplateConfigMaps") - kargoServiceGetAnalysisTemplateConfigMapMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetAnalysisTemplateConfigMap") - kargoServiceListAnalysisTemplateSecretsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListAnalysisTemplateSecrets") - kargoServiceGetAnalysisTemplateSecretMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetAnalysisTemplateSecret") - kargoServiceListProjectEventsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListProjectEvents") - kargoServiceCreateRoleMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("CreateRole") - kargoServiceDeleteRoleMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteRole") - kargoServiceGetRoleMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetRole") - kargoServiceGrantMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("Grant") - kargoServiceListRolesMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListRoles") - kargoServiceRevokeMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("Revoke") - kargoServiceUpdateRoleMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("UpdateRole") + kargoServiceServiceDescriptor = v1alpha1.File_service_v1alpha1_service_proto.Services().ByName("KargoService") + kargoServiceGetVersionInfoMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetVersionInfo") + kargoServiceGetConfigMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetConfig") + kargoServiceGetPublicConfigMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetPublicConfig") + kargoServiceAdminLoginMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("AdminLogin") + kargoServiceCreateResourceMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("CreateResource") + kargoServiceCreateOrUpdateResourceMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("CreateOrUpdateResource") + kargoServiceUpdateResourceMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("UpdateResource") + kargoServiceDeleteResourceMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteResource") + kargoServiceListStagesMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListStages") + kargoServiceListImagesMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListImages") + kargoServiceGetStageMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetStage") + kargoServiceWatchStagesMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("WatchStages") + kargoServiceDeleteStageMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteStage") + kargoServiceRefreshStageMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("RefreshStage") + kargoServiceListPromotionsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListPromotions") + kargoServiceWatchPromotionsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("WatchPromotions") + kargoServiceGetPromotionMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetPromotion") + kargoServiceWatchPromotionMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("WatchPromotion") + kargoServiceAbortPromotionMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("AbortPromotion") + kargoServiceDeleteProjectMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteProject") + kargoServiceGetProjectMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetProject") + kargoServiceListProjectsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListProjects") + kargoServiceApproveFreightMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ApproveFreight") + kargoServiceDeleteFreightMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteFreight") + kargoServiceGetFreightMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetFreight") + kargoServicePromoteToStageMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("PromoteToStage") + kargoServicePromoteDownstreamMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("PromoteDownstream") + kargoServiceQueryFreightMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("QueryFreight") + kargoServiceUpdateFreightAliasMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("UpdateFreightAlias") + kargoServiceReverifyMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("Reverify") + kargoServiceAbortVerificationMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("AbortVerification") + kargoServiceListWarehousesMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListWarehouses") + kargoServiceGetWarehouseMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetWarehouse") + kargoServiceWatchWarehousesMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("WatchWarehouses") + kargoServiceDeleteWarehouseMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteWarehouse") + kargoServiceRefreshWarehouseMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("RefreshWarehouse") + kargoServiceCreateCredentialsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("CreateCredentials") + kargoServiceDeleteCredentialsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteCredentials") + kargoServiceGetCredentialsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetCredentials") + kargoServiceListCredentialsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListCredentials") + kargoServiceUpdateCredentialsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("UpdateCredentials") + kargoServiceListProjectSecretsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListProjectSecrets") + kargoServiceCreateProjectSecretMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("CreateProjectSecret") + kargoServiceUpdateProjectSecretMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("UpdateProjectSecret") + kargoServiceDeleteProjectSecretMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteProjectSecret") + kargoServiceListAnalysisTemplatesMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListAnalysisTemplates") + kargoServiceGetAnalysisTemplateMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetAnalysisTemplate") + kargoServiceDeleteAnalysisTemplateMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteAnalysisTemplate") + kargoServiceGetAnalysisRunMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetAnalysisRun") + kargoServiceListProjectEventsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListProjectEvents") + kargoServiceCreateRoleMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("CreateRole") + kargoServiceDeleteRoleMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteRole") + kargoServiceGetRoleMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("GetRole") + kargoServiceGrantMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("Grant") + kargoServiceListRolesMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListRoles") + kargoServiceRevokeMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("Revoke") + kargoServiceUpdateRoleMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("UpdateRole") ) // KargoServiceClient is a client for the akuity.io.kargo.service.v1alpha1.KargoService service. @@ -322,10 +306,6 @@ type KargoServiceClient interface { GetAnalysisTemplate(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateResponse], error) DeleteAnalysisTemplate(context.Context, *connect.Request[v1alpha1.DeleteAnalysisTemplateRequest]) (*connect.Response[v1alpha1.DeleteAnalysisTemplateResponse], error) GetAnalysisRun(context.Context, *connect.Request[v1alpha1.GetAnalysisRunRequest]) (*connect.Response[v1alpha1.GetAnalysisRunResponse], error) - ListAnalysisTemplateConfigMaps(context.Context, *connect.Request[v1alpha1.ListAnalysisTemplateConfigMapsRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplateConfigMapsResponse], error) - GetAnalysisTemplateConfigMap(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateConfigMapRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateConfigMapResponse], error) - ListAnalysisTemplateSecrets(context.Context, *connect.Request[v1alpha1.ListAnalysisTemplateSecretsRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplateSecretsResponse], error) - GetAnalysisTemplateSecret(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateSecretRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateSecretResponse], error) ListProjectEvents(context.Context, *connect.Request[v1alpha1.ListProjectEventsRequest]) (*connect.Response[v1alpha1.ListProjectEventsResponse], error) CreateRole(context.Context, *connect.Request[v1alpha1.CreateRoleRequest]) (*connect.Response[v1alpha1.CreateRoleResponse], error) DeleteRole(context.Context, *connect.Request[v1alpha1.DeleteRoleRequest]) (*connect.Response[v1alpha1.DeleteRoleResponse], error) @@ -640,30 +620,6 @@ func NewKargoServiceClient(httpClient connect.HTTPClient, baseURL string, opts . connect.WithSchema(kargoServiceGetAnalysisRunMethodDescriptor), connect.WithClientOptions(opts...), ), - listAnalysisTemplateConfigMaps: connect.NewClient[v1alpha1.ListAnalysisTemplateConfigMapsRequest, v1alpha1.ListAnalysisTemplateConfigMapsResponse]( - httpClient, - baseURL+KargoServiceListAnalysisTemplateConfigMapsProcedure, - connect.WithSchema(kargoServiceListAnalysisTemplateConfigMapsMethodDescriptor), - connect.WithClientOptions(opts...), - ), - getAnalysisTemplateConfigMap: connect.NewClient[v1alpha1.GetAnalysisTemplateConfigMapRequest, v1alpha1.GetAnalysisTemplateConfigMapResponse]( - httpClient, - baseURL+KargoServiceGetAnalysisTemplateConfigMapProcedure, - connect.WithSchema(kargoServiceGetAnalysisTemplateConfigMapMethodDescriptor), - connect.WithClientOptions(opts...), - ), - listAnalysisTemplateSecrets: connect.NewClient[v1alpha1.ListAnalysisTemplateSecretsRequest, v1alpha1.ListAnalysisTemplateSecretsResponse]( - httpClient, - baseURL+KargoServiceListAnalysisTemplateSecretsProcedure, - connect.WithSchema(kargoServiceListAnalysisTemplateSecretsMethodDescriptor), - connect.WithClientOptions(opts...), - ), - getAnalysisTemplateSecret: connect.NewClient[v1alpha1.GetAnalysisTemplateSecretRequest, v1alpha1.GetAnalysisTemplateSecretResponse]( - httpClient, - baseURL+KargoServiceGetAnalysisTemplateSecretProcedure, - connect.WithSchema(kargoServiceGetAnalysisTemplateSecretMethodDescriptor), - connect.WithClientOptions(opts...), - ), listProjectEvents: connect.NewClient[v1alpha1.ListProjectEventsRequest, v1alpha1.ListProjectEventsResponse]( httpClient, baseURL+KargoServiceListProjectEventsProcedure, @@ -717,67 +673,63 @@ func NewKargoServiceClient(httpClient connect.HTTPClient, baseURL string, opts . // kargoServiceClient implements KargoServiceClient. type kargoServiceClient struct { - getVersionInfo *connect.Client[v1alpha1.GetVersionInfoRequest, v1alpha1.GetVersionInfoResponse] - getConfig *connect.Client[v1alpha1.GetConfigRequest, v1alpha1.GetConfigResponse] - getPublicConfig *connect.Client[v1alpha1.GetPublicConfigRequest, v1alpha1.GetPublicConfigResponse] - adminLogin *connect.Client[v1alpha1.AdminLoginRequest, v1alpha1.AdminLoginResponse] - createResource *connect.Client[v1alpha1.CreateResourceRequest, v1alpha1.CreateResourceResponse] - createOrUpdateResource *connect.Client[v1alpha1.CreateOrUpdateResourceRequest, v1alpha1.CreateOrUpdateResourceResponse] - updateResource *connect.Client[v1alpha1.UpdateResourceRequest, v1alpha1.UpdateResourceResponse] - deleteResource *connect.Client[v1alpha1.DeleteResourceRequest, v1alpha1.DeleteResourceResponse] - listStages *connect.Client[v1alpha1.ListStagesRequest, v1alpha1.ListStagesResponse] - listImages *connect.Client[v1alpha1.ListImagesRequest, v1alpha1.ListImagesResponse] - getStage *connect.Client[v1alpha1.GetStageRequest, v1alpha1.GetStageResponse] - watchStages *connect.Client[v1alpha1.WatchStagesRequest, v1alpha1.WatchStagesResponse] - deleteStage *connect.Client[v1alpha1.DeleteStageRequest, v1alpha1.DeleteStageResponse] - refreshStage *connect.Client[v1alpha1.RefreshStageRequest, v1alpha1.RefreshStageResponse] - listPromotions *connect.Client[v1alpha1.ListPromotionsRequest, v1alpha1.ListPromotionsResponse] - watchPromotions *connect.Client[v1alpha1.WatchPromotionsRequest, v1alpha1.WatchPromotionsResponse] - getPromotion *connect.Client[v1alpha1.GetPromotionRequest, v1alpha1.GetPromotionResponse] - watchPromotion *connect.Client[v1alpha1.WatchPromotionRequest, v1alpha1.WatchPromotionResponse] - abortPromotion *connect.Client[v1alpha1.AbortPromotionRequest, v1alpha1.AbortPromotionResponse] - deleteProject *connect.Client[v1alpha1.DeleteProjectRequest, v1alpha1.DeleteProjectResponse] - getProject *connect.Client[v1alpha1.GetProjectRequest, v1alpha1.GetProjectResponse] - listProjects *connect.Client[v1alpha1.ListProjectsRequest, v1alpha1.ListProjectsResponse] - approveFreight *connect.Client[v1alpha1.ApproveFreightRequest, v1alpha1.ApproveFreightResponse] - deleteFreight *connect.Client[v1alpha1.DeleteFreightRequest, v1alpha1.DeleteFreightResponse] - getFreight *connect.Client[v1alpha1.GetFreightRequest, v1alpha1.GetFreightResponse] - promoteToStage *connect.Client[v1alpha1.PromoteToStageRequest, v1alpha1.PromoteToStageResponse] - promoteDownstream *connect.Client[v1alpha1.PromoteDownstreamRequest, v1alpha1.PromoteDownstreamResponse] - queryFreight *connect.Client[v1alpha1.QueryFreightRequest, v1alpha1.QueryFreightResponse] - updateFreightAlias *connect.Client[v1alpha1.UpdateFreightAliasRequest, v1alpha1.UpdateFreightAliasResponse] - reverify *connect.Client[v1alpha1.ReverifyRequest, v1alpha1.ReverifyResponse] - abortVerification *connect.Client[v1alpha1.AbortVerificationRequest, v1alpha1.AbortVerificationResponse] - listWarehouses *connect.Client[v1alpha1.ListWarehousesRequest, v1alpha1.ListWarehousesResponse] - getWarehouse *connect.Client[v1alpha1.GetWarehouseRequest, v1alpha1.GetWarehouseResponse] - watchWarehouses *connect.Client[v1alpha1.WatchWarehousesRequest, v1alpha1.WatchWarehousesResponse] - deleteWarehouse *connect.Client[v1alpha1.DeleteWarehouseRequest, v1alpha1.DeleteWarehouseResponse] - refreshWarehouse *connect.Client[v1alpha1.RefreshWarehouseRequest, v1alpha1.RefreshWarehouseResponse] - createCredentials *connect.Client[v1alpha1.CreateCredentialsRequest, v1alpha1.CreateCredentialsResponse] - deleteCredentials *connect.Client[v1alpha1.DeleteCredentialsRequest, v1alpha1.DeleteCredentialsResponse] - getCredentials *connect.Client[v1alpha1.GetCredentialsRequest, v1alpha1.GetCredentialsResponse] - listCredentials *connect.Client[v1alpha1.ListCredentialsRequest, v1alpha1.ListCredentialsResponse] - updateCredentials *connect.Client[v1alpha1.UpdateCredentialsRequest, v1alpha1.UpdateCredentialsResponse] - listProjectSecrets *connect.Client[v1alpha1.ListProjectSecretsRequest, v1alpha1.ListProjectSecretsResponse] - createProjectSecret *connect.Client[v1alpha1.CreateProjectSecretRequest, v1alpha1.CreateProjectSecretResponse] - updateProjectSecret *connect.Client[v1alpha1.UpdateProjectSecretRequest, v1alpha1.UpdateProjectSecretResponse] - deleteProjectSecret *connect.Client[v1alpha1.DeleteProjectSecretRequest, v1alpha1.DeleteProjectSecretResponse] - listAnalysisTemplates *connect.Client[v1alpha1.ListAnalysisTemplatesRequest, v1alpha1.ListAnalysisTemplatesResponse] - getAnalysisTemplate *connect.Client[v1alpha1.GetAnalysisTemplateRequest, v1alpha1.GetAnalysisTemplateResponse] - deleteAnalysisTemplate *connect.Client[v1alpha1.DeleteAnalysisTemplateRequest, v1alpha1.DeleteAnalysisTemplateResponse] - getAnalysisRun *connect.Client[v1alpha1.GetAnalysisRunRequest, v1alpha1.GetAnalysisRunResponse] - listAnalysisTemplateConfigMaps *connect.Client[v1alpha1.ListAnalysisTemplateConfigMapsRequest, v1alpha1.ListAnalysisTemplateConfigMapsResponse] - getAnalysisTemplateConfigMap *connect.Client[v1alpha1.GetAnalysisTemplateConfigMapRequest, v1alpha1.GetAnalysisTemplateConfigMapResponse] - listAnalysisTemplateSecrets *connect.Client[v1alpha1.ListAnalysisTemplateSecretsRequest, v1alpha1.ListAnalysisTemplateSecretsResponse] - getAnalysisTemplateSecret *connect.Client[v1alpha1.GetAnalysisTemplateSecretRequest, v1alpha1.GetAnalysisTemplateSecretResponse] - listProjectEvents *connect.Client[v1alpha1.ListProjectEventsRequest, v1alpha1.ListProjectEventsResponse] - createRole *connect.Client[v1alpha1.CreateRoleRequest, v1alpha1.CreateRoleResponse] - deleteRole *connect.Client[v1alpha1.DeleteRoleRequest, v1alpha1.DeleteRoleResponse] - getRole *connect.Client[v1alpha1.GetRoleRequest, v1alpha1.GetRoleResponse] - grant *connect.Client[v1alpha1.GrantRequest, v1alpha1.GrantResponse] - listRoles *connect.Client[v1alpha1.ListRolesRequest, v1alpha1.ListRolesResponse] - revoke *connect.Client[v1alpha1.RevokeRequest, v1alpha1.RevokeResponse] - updateRole *connect.Client[v1alpha1.UpdateRoleRequest, v1alpha1.UpdateRoleResponse] + getVersionInfo *connect.Client[v1alpha1.GetVersionInfoRequest, v1alpha1.GetVersionInfoResponse] + getConfig *connect.Client[v1alpha1.GetConfigRequest, v1alpha1.GetConfigResponse] + getPublicConfig *connect.Client[v1alpha1.GetPublicConfigRequest, v1alpha1.GetPublicConfigResponse] + adminLogin *connect.Client[v1alpha1.AdminLoginRequest, v1alpha1.AdminLoginResponse] + createResource *connect.Client[v1alpha1.CreateResourceRequest, v1alpha1.CreateResourceResponse] + createOrUpdateResource *connect.Client[v1alpha1.CreateOrUpdateResourceRequest, v1alpha1.CreateOrUpdateResourceResponse] + updateResource *connect.Client[v1alpha1.UpdateResourceRequest, v1alpha1.UpdateResourceResponse] + deleteResource *connect.Client[v1alpha1.DeleteResourceRequest, v1alpha1.DeleteResourceResponse] + listStages *connect.Client[v1alpha1.ListStagesRequest, v1alpha1.ListStagesResponse] + listImages *connect.Client[v1alpha1.ListImagesRequest, v1alpha1.ListImagesResponse] + getStage *connect.Client[v1alpha1.GetStageRequest, v1alpha1.GetStageResponse] + watchStages *connect.Client[v1alpha1.WatchStagesRequest, v1alpha1.WatchStagesResponse] + deleteStage *connect.Client[v1alpha1.DeleteStageRequest, v1alpha1.DeleteStageResponse] + refreshStage *connect.Client[v1alpha1.RefreshStageRequest, v1alpha1.RefreshStageResponse] + listPromotions *connect.Client[v1alpha1.ListPromotionsRequest, v1alpha1.ListPromotionsResponse] + watchPromotions *connect.Client[v1alpha1.WatchPromotionsRequest, v1alpha1.WatchPromotionsResponse] + getPromotion *connect.Client[v1alpha1.GetPromotionRequest, v1alpha1.GetPromotionResponse] + watchPromotion *connect.Client[v1alpha1.WatchPromotionRequest, v1alpha1.WatchPromotionResponse] + abortPromotion *connect.Client[v1alpha1.AbortPromotionRequest, v1alpha1.AbortPromotionResponse] + deleteProject *connect.Client[v1alpha1.DeleteProjectRequest, v1alpha1.DeleteProjectResponse] + getProject *connect.Client[v1alpha1.GetProjectRequest, v1alpha1.GetProjectResponse] + listProjects *connect.Client[v1alpha1.ListProjectsRequest, v1alpha1.ListProjectsResponse] + approveFreight *connect.Client[v1alpha1.ApproveFreightRequest, v1alpha1.ApproveFreightResponse] + deleteFreight *connect.Client[v1alpha1.DeleteFreightRequest, v1alpha1.DeleteFreightResponse] + getFreight *connect.Client[v1alpha1.GetFreightRequest, v1alpha1.GetFreightResponse] + promoteToStage *connect.Client[v1alpha1.PromoteToStageRequest, v1alpha1.PromoteToStageResponse] + promoteDownstream *connect.Client[v1alpha1.PromoteDownstreamRequest, v1alpha1.PromoteDownstreamResponse] + queryFreight *connect.Client[v1alpha1.QueryFreightRequest, v1alpha1.QueryFreightResponse] + updateFreightAlias *connect.Client[v1alpha1.UpdateFreightAliasRequest, v1alpha1.UpdateFreightAliasResponse] + reverify *connect.Client[v1alpha1.ReverifyRequest, v1alpha1.ReverifyResponse] + abortVerification *connect.Client[v1alpha1.AbortVerificationRequest, v1alpha1.AbortVerificationResponse] + listWarehouses *connect.Client[v1alpha1.ListWarehousesRequest, v1alpha1.ListWarehousesResponse] + getWarehouse *connect.Client[v1alpha1.GetWarehouseRequest, v1alpha1.GetWarehouseResponse] + watchWarehouses *connect.Client[v1alpha1.WatchWarehousesRequest, v1alpha1.WatchWarehousesResponse] + deleteWarehouse *connect.Client[v1alpha1.DeleteWarehouseRequest, v1alpha1.DeleteWarehouseResponse] + refreshWarehouse *connect.Client[v1alpha1.RefreshWarehouseRequest, v1alpha1.RefreshWarehouseResponse] + createCredentials *connect.Client[v1alpha1.CreateCredentialsRequest, v1alpha1.CreateCredentialsResponse] + deleteCredentials *connect.Client[v1alpha1.DeleteCredentialsRequest, v1alpha1.DeleteCredentialsResponse] + getCredentials *connect.Client[v1alpha1.GetCredentialsRequest, v1alpha1.GetCredentialsResponse] + listCredentials *connect.Client[v1alpha1.ListCredentialsRequest, v1alpha1.ListCredentialsResponse] + updateCredentials *connect.Client[v1alpha1.UpdateCredentialsRequest, v1alpha1.UpdateCredentialsResponse] + listProjectSecrets *connect.Client[v1alpha1.ListProjectSecretsRequest, v1alpha1.ListProjectSecretsResponse] + createProjectSecret *connect.Client[v1alpha1.CreateProjectSecretRequest, v1alpha1.CreateProjectSecretResponse] + updateProjectSecret *connect.Client[v1alpha1.UpdateProjectSecretRequest, v1alpha1.UpdateProjectSecretResponse] + deleteProjectSecret *connect.Client[v1alpha1.DeleteProjectSecretRequest, v1alpha1.DeleteProjectSecretResponse] + listAnalysisTemplates *connect.Client[v1alpha1.ListAnalysisTemplatesRequest, v1alpha1.ListAnalysisTemplatesResponse] + getAnalysisTemplate *connect.Client[v1alpha1.GetAnalysisTemplateRequest, v1alpha1.GetAnalysisTemplateResponse] + deleteAnalysisTemplate *connect.Client[v1alpha1.DeleteAnalysisTemplateRequest, v1alpha1.DeleteAnalysisTemplateResponse] + getAnalysisRun *connect.Client[v1alpha1.GetAnalysisRunRequest, v1alpha1.GetAnalysisRunResponse] + listProjectEvents *connect.Client[v1alpha1.ListProjectEventsRequest, v1alpha1.ListProjectEventsResponse] + createRole *connect.Client[v1alpha1.CreateRoleRequest, v1alpha1.CreateRoleResponse] + deleteRole *connect.Client[v1alpha1.DeleteRoleRequest, v1alpha1.DeleteRoleResponse] + getRole *connect.Client[v1alpha1.GetRoleRequest, v1alpha1.GetRoleResponse] + grant *connect.Client[v1alpha1.GrantRequest, v1alpha1.GrantResponse] + listRoles *connect.Client[v1alpha1.ListRolesRequest, v1alpha1.ListRolesResponse] + revoke *connect.Client[v1alpha1.RevokeRequest, v1alpha1.RevokeResponse] + updateRole *connect.Client[v1alpha1.UpdateRoleRequest, v1alpha1.UpdateRoleResponse] } // GetVersionInfo calls akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo. @@ -1027,30 +979,6 @@ func (c *kargoServiceClient) GetAnalysisRun(ctx context.Context, req *connect.Re return c.getAnalysisRun.CallUnary(ctx, req) } -// ListAnalysisTemplateConfigMaps calls -// akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplateConfigMaps. -func (c *kargoServiceClient) ListAnalysisTemplateConfigMaps(ctx context.Context, req *connect.Request[v1alpha1.ListAnalysisTemplateConfigMapsRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplateConfigMapsResponse], error) { - return c.listAnalysisTemplateConfigMaps.CallUnary(ctx, req) -} - -// GetAnalysisTemplateConfigMap calls -// akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplateConfigMap. -func (c *kargoServiceClient) GetAnalysisTemplateConfigMap(ctx context.Context, req *connect.Request[v1alpha1.GetAnalysisTemplateConfigMapRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateConfigMapResponse], error) { - return c.getAnalysisTemplateConfigMap.CallUnary(ctx, req) -} - -// ListAnalysisTemplateSecrets calls -// akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplateSecrets. -func (c *kargoServiceClient) ListAnalysisTemplateSecrets(ctx context.Context, req *connect.Request[v1alpha1.ListAnalysisTemplateSecretsRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplateSecretsResponse], error) { - return c.listAnalysisTemplateSecrets.CallUnary(ctx, req) -} - -// GetAnalysisTemplateSecret calls -// akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplateSecret. -func (c *kargoServiceClient) GetAnalysisTemplateSecret(ctx context.Context, req *connect.Request[v1alpha1.GetAnalysisTemplateSecretRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateSecretResponse], error) { - return c.getAnalysisTemplateSecret.CallUnary(ctx, req) -} - // ListProjectEvents calls akuity.io.kargo.service.v1alpha1.KargoService.ListProjectEvents. func (c *kargoServiceClient) ListProjectEvents(ctx context.Context, req *connect.Request[v1alpha1.ListProjectEventsRequest]) (*connect.Response[v1alpha1.ListProjectEventsResponse], error) { return c.listProjectEvents.CallUnary(ctx, req) @@ -1145,10 +1073,6 @@ type KargoServiceHandler interface { GetAnalysisTemplate(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateResponse], error) DeleteAnalysisTemplate(context.Context, *connect.Request[v1alpha1.DeleteAnalysisTemplateRequest]) (*connect.Response[v1alpha1.DeleteAnalysisTemplateResponse], error) GetAnalysisRun(context.Context, *connect.Request[v1alpha1.GetAnalysisRunRequest]) (*connect.Response[v1alpha1.GetAnalysisRunResponse], error) - ListAnalysisTemplateConfigMaps(context.Context, *connect.Request[v1alpha1.ListAnalysisTemplateConfigMapsRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplateConfigMapsResponse], error) - GetAnalysisTemplateConfigMap(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateConfigMapRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateConfigMapResponse], error) - ListAnalysisTemplateSecrets(context.Context, *connect.Request[v1alpha1.ListAnalysisTemplateSecretsRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplateSecretsResponse], error) - GetAnalysisTemplateSecret(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateSecretRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateSecretResponse], error) ListProjectEvents(context.Context, *connect.Request[v1alpha1.ListProjectEventsRequest]) (*connect.Response[v1alpha1.ListProjectEventsResponse], error) CreateRole(context.Context, *connect.Request[v1alpha1.CreateRoleRequest]) (*connect.Response[v1alpha1.CreateRoleResponse], error) DeleteRole(context.Context, *connect.Request[v1alpha1.DeleteRoleRequest]) (*connect.Response[v1alpha1.DeleteRoleResponse], error) @@ -1459,30 +1383,6 @@ func NewKargoServiceHandler(svc KargoServiceHandler, opts ...connect.HandlerOpti connect.WithSchema(kargoServiceGetAnalysisRunMethodDescriptor), connect.WithHandlerOptions(opts...), ) - kargoServiceListAnalysisTemplateConfigMapsHandler := connect.NewUnaryHandler( - KargoServiceListAnalysisTemplateConfigMapsProcedure, - svc.ListAnalysisTemplateConfigMaps, - connect.WithSchema(kargoServiceListAnalysisTemplateConfigMapsMethodDescriptor), - connect.WithHandlerOptions(opts...), - ) - kargoServiceGetAnalysisTemplateConfigMapHandler := connect.NewUnaryHandler( - KargoServiceGetAnalysisTemplateConfigMapProcedure, - svc.GetAnalysisTemplateConfigMap, - connect.WithSchema(kargoServiceGetAnalysisTemplateConfigMapMethodDescriptor), - connect.WithHandlerOptions(opts...), - ) - kargoServiceListAnalysisTemplateSecretsHandler := connect.NewUnaryHandler( - KargoServiceListAnalysisTemplateSecretsProcedure, - svc.ListAnalysisTemplateSecrets, - connect.WithSchema(kargoServiceListAnalysisTemplateSecretsMethodDescriptor), - connect.WithHandlerOptions(opts...), - ) - kargoServiceGetAnalysisTemplateSecretHandler := connect.NewUnaryHandler( - KargoServiceGetAnalysisTemplateSecretProcedure, - svc.GetAnalysisTemplateSecret, - connect.WithSchema(kargoServiceGetAnalysisTemplateSecretMethodDescriptor), - connect.WithHandlerOptions(opts...), - ) kargoServiceListProjectEventsHandler := connect.NewUnaryHandler( KargoServiceListProjectEventsProcedure, svc.ListProjectEvents, @@ -1631,14 +1531,6 @@ func NewKargoServiceHandler(svc KargoServiceHandler, opts ...connect.HandlerOpti kargoServiceDeleteAnalysisTemplateHandler.ServeHTTP(w, r) case KargoServiceGetAnalysisRunProcedure: kargoServiceGetAnalysisRunHandler.ServeHTTP(w, r) - case KargoServiceListAnalysisTemplateConfigMapsProcedure: - kargoServiceListAnalysisTemplateConfigMapsHandler.ServeHTTP(w, r) - case KargoServiceGetAnalysisTemplateConfigMapProcedure: - kargoServiceGetAnalysisTemplateConfigMapHandler.ServeHTTP(w, r) - case KargoServiceListAnalysisTemplateSecretsProcedure: - kargoServiceListAnalysisTemplateSecretsHandler.ServeHTTP(w, r) - case KargoServiceGetAnalysisTemplateSecretProcedure: - kargoServiceGetAnalysisTemplateSecretHandler.ServeHTTP(w, r) case KargoServiceListProjectEventsProcedure: kargoServiceListProjectEventsHandler.ServeHTTP(w, r) case KargoServiceCreateRoleProcedure: @@ -1860,22 +1752,6 @@ func (UnimplementedKargoServiceHandler) GetAnalysisRun(context.Context, *connect return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRun is not implemented")) } -func (UnimplementedKargoServiceHandler) ListAnalysisTemplateConfigMaps(context.Context, *connect.Request[v1alpha1.ListAnalysisTemplateConfigMapsRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplateConfigMapsResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplateConfigMaps is not implemented")) -} - -func (UnimplementedKargoServiceHandler) GetAnalysisTemplateConfigMap(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateConfigMapRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateConfigMapResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplateConfigMap is not implemented")) -} - -func (UnimplementedKargoServiceHandler) ListAnalysisTemplateSecrets(context.Context, *connect.Request[v1alpha1.ListAnalysisTemplateSecretsRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplateSecretsResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplateSecrets is not implemented")) -} - -func (UnimplementedKargoServiceHandler) GetAnalysisTemplateSecret(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateSecretRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateSecretResponse], error) { - return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplateSecret is not implemented")) -} - func (UnimplementedKargoServiceHandler) ListProjectEvents(context.Context, *connect.Request[v1alpha1.ListProjectEventsRequest]) (*connect.Response[v1alpha1.ListProjectEventsResponse], error) { return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListProjectEvents is not implemented")) } diff --git a/ui/src/gen/service/v1alpha1/service-KargoService_connectquery.ts b/ui/src/gen/service/v1alpha1/service-KargoService_connectquery.ts index a5865c1b3..340478c22 100644 --- a/ui/src/gen/service/v1alpha1/service-KargoService_connectquery.ts +++ b/ui/src/gen/service/v1alpha1/service-KargoService_connectquery.ts @@ -232,26 +232,6 @@ export const deleteAnalysisTemplate = KargoService.method.deleteAnalysisTemplate */ export const getAnalysisRun = KargoService.method.getAnalysisRun; -/** - * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplateConfigMaps - */ -export const listAnalysisTemplateConfigMaps = KargoService.method.listAnalysisTemplateConfigMaps; - -/** - * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplateConfigMap - */ -export const getAnalysisTemplateConfigMap = KargoService.method.getAnalysisTemplateConfigMap; - -/** - * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplateSecrets - */ -export const listAnalysisTemplateSecrets = KargoService.method.listAnalysisTemplateSecrets; - -/** - * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplateSecret - */ -export const getAnalysisTemplateSecret = KargoService.method.getAnalysisTemplateSecret; - /** * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.ListProjectEvents */ diff --git a/ui/src/gen/service/v1alpha1/service_pb.ts b/ui/src/gen/service/v1alpha1/service_pb.ts index b797457d6..8c78aaae5 100644 --- a/ui/src/gen/service/v1alpha1/service_pb.ts +++ b/ui/src/gen/service/v1alpha1/service_pb.ts @@ -8,7 +8,7 @@ import type { Timestamp } from "@bufbuild/protobuf/wkt"; import { file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt"; import type { Freight, Project, Promotion, Stage, Warehouse } from "../../v1alpha1/generated_pb"; import { file_v1alpha1_generated } from "../../v1alpha1/generated_pb"; -import type { ConfigMap, Event, Secret } from "../../k8s.io/api/core/v1/generated_pb"; +import type { Event, Secret } from "../../k8s.io/api/core/v1/generated_pb"; import { file_k8s_io_api_core_v1_generated } from "../../k8s.io/api/core/v1/generated_pb"; import type { AnalysisRun, AnalysisTemplate } from "../../rollouts/api/v1alpha1/generated_pb"; import { file_rollouts_api_v1alpha1_generated } from "../../rollouts/api/v1alpha1/generated_pb"; @@ -20,7 +20,7 @@ import type { Message } from "@bufbuild/protobuf"; * Describes the file service/v1alpha1/service.proto. */ export const file_service_v1alpha1_service: GenFile = /*@__PURE__*/ - fileDesc("Ch5zZXJ2aWNlL3YxYWxwaGExL3NlcnZpY2UucHJvdG8SIGFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExIqsBChFDb21wb25lbnRWZXJzaW9ucxJCCgZzZXJ2ZXIYASABKAsyLS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5WZXJzaW9uSW5mb0gAiAEBEj8KA2NsaRgCIAEoCzItLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlZlcnNpb25JbmZvSAGIAQFCCQoHX3NlcnZlckIGCgRfY2xpIrIBCgtWZXJzaW9uSW5mbxIPCgd2ZXJzaW9uGAEgASgJEhIKCmdpdF9jb21taXQYAiABKAkSFgoOZ2l0X3RyZWVfZGlydHkYAyABKAgSLgoKYnVpbGRfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKZ29fdmVyc2lvbhgFIAEoCRIQCghjb21waWxlchgGIAEoCRIQCghwbGF0Zm9ybRgHIAEoCSIXChVHZXRWZXJzaW9uSW5mb1JlcXVlc3QiXQoWR2V0VmVyc2lvbkluZm9SZXNwb25zZRJDCgx2ZXJzaW9uX2luZm8YASABKAsyLS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5WZXJzaW9uSW5mbyISChBHZXRDb25maWdSZXF1ZXN0Ii0KC0FyZ29DRFNoYXJkEgsKA3VybBgBIAEoCRIRCgluYW1lc3BhY2UYAiABKAki+AEKEUdldENvbmZpZ1Jlc3BvbnNlElwKDWFyZ29jZF9zaGFyZHMYASADKAsyRS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRDb25maWdSZXNwb25zZS5BcmdvY2RTaGFyZHNFbnRyeRIhChlzZWNyZXRfbWFuYWdlbWVudF9lbmFibGVkGAIgASgIGmIKEUFyZ29jZFNoYXJkc0VudHJ5EgsKA2tleRgBIAEoCRI8CgV2YWx1ZRgCIAEoCzItLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkFyZ29DRFNoYXJkOgI4ASIYChZHZXRQdWJsaWNDb25maWdSZXF1ZXN0Io4BChdHZXRQdWJsaWNDb25maWdSZXNwb25zZRJBCgtvaWRjX2NvbmZpZxgBIAEoCzIsLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLk9JRENDb25maWcSHQoVYWRtaW5fYWNjb3VudF9lbmFibGVkGAIgASgIEhEKCXNraXBfYXV0aBgDIAEoCCJaCgpPSURDQ29uZmlnEhIKCmlzc3Vlcl91cmwYASABKAkSEQoJY2xpZW50X2lkGAIgASgJEg4KBnNjb3BlcxgDIAMoCRIVCg1jbGlfY2xpZW50X2lkGAQgASgJIiUKEUFkbWluTG9naW5SZXF1ZXN0EhAKCHBhc3N3b3JkGAEgASgJIiYKEkFkbWluTG9naW5SZXNwb25zZRIQCghpZF90b2tlbhgBIAEoCSIpChVDcmVhdGVSZXNvdXJjZVJlcXVlc3QSEAoIbWFuaWZlc3QYASABKAwiVgoUQ3JlYXRlUmVzb3VyY2VSZXN1bHQSIwoZY3JlYXRlZF9yZXNvdXJjZV9tYW5pZmVzdBgBIAEoDEgAEg8KBWVycm9yGAIgASgJSABCCAoGcmVzdWx0ImEKFkNyZWF0ZVJlc291cmNlUmVzcG9uc2USRwoHcmVzdWx0cxgBIAMoCzI2LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkNyZWF0ZVJlc291cmNlUmVzdWx0IjEKHUNyZWF0ZU9yVXBkYXRlUmVzb3VyY2VSZXF1ZXN0EhAKCG1hbmlmZXN0GAEgASgMIoMBChxDcmVhdGVPclVwZGF0ZVJlc291cmNlUmVzdWx0EiMKGWNyZWF0ZWRfcmVzb3VyY2VfbWFuaWZlc3QYASABKAxIABIjChl1cGRhdGVkX3Jlc291cmNlX21hbmlmZXN0GAIgASgMSAASDwoFZXJyb3IYAyABKAlIAEIICgZyZXN1bHQicQoeQ3JlYXRlT3JVcGRhdGVSZXNvdXJjZVJlc3BvbnNlEk8KB3Jlc3VsdHMYASADKAsyPi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVPclVwZGF0ZVJlc291cmNlUmVzdWx0IikKFVVwZGF0ZVJlc291cmNlUmVxdWVzdBIQCghtYW5pZmVzdBgBIAEoDCJWChRVcGRhdGVSZXNvdXJjZVJlc3VsdBIjChl1cGRhdGVkX3Jlc291cmNlX21hbmlmZXN0GAEgASgMSAASDwoFZXJyb3IYAiABKAlIAEIICgZyZXN1bHQiYQoWVXBkYXRlUmVzb3VyY2VSZXNwb25zZRJHCgdyZXN1bHRzGAEgAygLMjYuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlUmVzb3VyY2VSZXN1bHQiKQoVRGVsZXRlUmVzb3VyY2VSZXF1ZXN0EhAKCG1hbmlmZXN0GAEgASgMIlYKFERlbGV0ZVJlc291cmNlUmVzdWx0EiMKGWRlbGV0ZWRfcmVzb3VyY2VfbWFuaWZlc3QYASABKAxIABIPCgVlcnJvchgCIAEoCUgAQggKBnJlc3VsdCJhChZEZWxldGVSZXNvdXJjZVJlc3BvbnNlEkcKB3Jlc3VsdHMYASADKAsyNi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVSZXNvdXJjZVJlc3VsdCIkChFMaXN0U3RhZ2VzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJIlEKEkxpc3RTdGFnZXNSZXNwb25zZRI7CgZzdGFnZXMYASADKAsyKy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuU3RhZ2UiJAoRTGlzdEltYWdlc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCSK/AQoSTGlzdEltYWdlc1Jlc3BvbnNlElAKBmltYWdlcxgCIAMoCzJALmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RJbWFnZXNSZXNwb25zZS5JbWFnZXNFbnRyeRpXCgtJbWFnZXNFbnRyeRILCgNrZXkYASABKAkSNwoFdmFsdWUYAiABKAsyKC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5UYWdNYXA6AjgBIqgBCgZUYWdNYXASQAoEdGFncxgBIAMoCzIyLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlRhZ01hcC5UYWdzRW50cnkaXAoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRI+CgV2YWx1ZRgCIAEoCzIvLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkltYWdlU3RhZ2VNYXA6AjgBIosBCg1JbWFnZVN0YWdlTWFwEksKBnN0YWdlcxgBIAMoCzI7LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkltYWdlU3RhZ2VNYXAuU3RhZ2VzRW50cnkaLQoLU3RhZ2VzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgFOgI4ASJtCg9HZXRTdGFnZVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEjsKBmZvcm1hdBgDIAEoDjIrLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJhd0Zvcm1hdCJpChBHZXRTdGFnZVJlc3BvbnNlEjwKBXN0YWdlGAEgASgLMisuZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLlN0YWdlSAASDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0IjMKEldhdGNoU3RhZ2VzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkiXwoTV2F0Y2hTdGFnZXNSZXNwb25zZRI6CgVzdGFnZRgBIAEoCzIrLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5TdGFnZRIMCgR0eXBlGAIgASgJIjMKEkRlbGV0ZVN0YWdlUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkiFQoTRGVsZXRlU3RhZ2VSZXNwb25zZSI0ChNSZWZyZXNoU3RhZ2VSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCSJSChRSZWZyZXNoU3RhZ2VSZXNwb25zZRI6CgVzdGFnZRgBIAEoCzIrLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5TdGFnZSJGChVMaXN0UHJvbW90aW9uc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRISCgVzdGFnZRgCIAEoCUgAiAEBQggKBl9zdGFnZSJdChZMaXN0UHJvbW90aW9uc1Jlc3BvbnNlEkMKCnByb21vdGlvbnMYASADKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuUHJvbW90aW9uIkcKFldhdGNoUHJvbW90aW9uc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRISCgVzdGFnZRgCIAEoCUgAiAEBQggKBl9zdGFnZSJrChdXYXRjaFByb21vdGlvbnNSZXNwb25zZRJCCglwcm9tb3Rpb24YASABKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuUHJvbW90aW9uEgwKBHR5cGUYAiABKAkicQoTR2V0UHJvbW90aW9uUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkSOwoGZm9ybWF0GAMgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0InUKFEdldFByb21vdGlvblJlc3BvbnNlEkQKCXByb21vdGlvbhgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5Qcm9tb3Rpb25IABINCgNyYXcYAiABKAxIAEIICgZyZXN1bHQiNgoVV2F0Y2hQcm9tb3Rpb25SZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCSJqChZXYXRjaFByb21vdGlvblJlc3BvbnNlEkIKCXByb21vdGlvbhgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5Qcm9tb3Rpb24SDAoEdHlwZRgCIAEoCSI2ChVBYm9ydFByb21vdGlvblJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJIhgKFkFib3J0UHJvbW90aW9uUmVzcG9uc2UiJAoURGVsZXRlUHJvamVjdFJlcXVlc3QSDAoEbmFtZRgBIAEoCSIXChVEZWxldGVQcm9qZWN0UmVzcG9uc2UiXgoRR2V0UHJvamVjdFJlcXVlc3QSDAoEbmFtZRgBIAEoCRI7CgZmb3JtYXQYAiABKA4yKy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SYXdGb3JtYXQibwoSR2V0UHJvamVjdFJlc3BvbnNlEkAKB3Byb2plY3QYASABKAsyLS5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuUHJvamVjdEgAEg0KA3JhdxgCIAEoDEgAQggKBnJlc3VsdCJ3ChNMaXN0UHJvamVjdHNSZXF1ZXN0EhYKCXBhZ2Vfc2l6ZRgBIAEoBUgAiAEBEhEKBHBhZ2UYAiABKAVIAYgBARITCgZmaWx0ZXIYAyABKAlIAogBAUIMCgpfcGFnZV9zaXplQgcKBV9wYWdlQgkKB19maWx0ZXIiZgoUTGlzdFByb2plY3RzUmVzcG9uc2USPwoIcHJvamVjdHMYASADKAsyLS5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuUHJvamVjdBINCgV0b3RhbBgCIAEoBSJUChVBcHByb3ZlRnJlaWdodFJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBWFsaWFzGAMgASgJEg0KBXN0YWdlGAQgASgJIhgKFkFwcHJvdmVGcmVpZ2h0UmVzcG9uc2UiRAoURGVsZXRlRnJlaWdodFJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBWFsaWFzGAMgASgJIhcKFURlbGV0ZUZyZWlnaHRSZXNwb25zZSJ+ChFHZXRGcmVpZ2h0UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkSDQoFYWxpYXMYAyABKAkSOwoGZm9ybWF0GAQgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0Im8KEkdldEZyZWlnaHRSZXNwb25zZRJACgdmcmVpZ2h0GAEgASgLMi0uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLkZyZWlnaHRIABINCgNyYXcYAiABKAxIAEIICgZyZXN1bHQiXwoVUHJvbW90ZVRvU3RhZ2VSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDQoFc3RhZ2UYAiABKAkSDwoHZnJlaWdodBgDIAEoCRIVCg1mcmVpZ2h0X2FsaWFzGAQgASgJIlwKFlByb21vdGVUb1N0YWdlUmVzcG9uc2USQgoJcHJvbW90aW9uGAEgASgLMi8uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLlByb21vdGlvbiJiChhQcm9tb3RlRG93bnN0cmVhbVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRINCgVzdGFnZRgCIAEoCRIPCgdmcmVpZ2h0GAMgASgJEhUKDWZyZWlnaHRfYWxpYXMYBCABKAkiYAoZUHJvbW90ZURvd25zdHJlYW1SZXNwb25zZRJDCgpwcm9tb3Rpb25zGAEgAygLMi8uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLlByb21vdGlvbiKKAQoTUXVlcnlGcmVpZ2h0UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEg0KBXN0YWdlGAIgASgJEhAKCGdyb3VwX2J5GAMgASgJEg0KBWdyb3VwGAQgASgJEhAKCG9yZGVyX2J5GAUgASgJEg8KB3JldmVyc2UYBiABKAgSDwoHb3JpZ2lucxgHIAMoCSLIAQoUUXVlcnlGcmVpZ2h0UmVzcG9uc2USUgoGZ3JvdXBzGAEgAygLMkIuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUXVlcnlGcmVpZ2h0UmVzcG9uc2UuR3JvdXBzRW50cnkaXAoLR3JvdXBzRW50cnkSCwoDa2V5GAEgASgJEjwKBXZhbHVlGAIgASgLMi0uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRnJlaWdodExpc3Q6AjgBIk0KC0ZyZWlnaHRMaXN0Ej4KB2ZyZWlnaHQYASADKAsyLS5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuRnJlaWdodCJgChlVcGRhdGVGcmVpZ2h0QWxpYXNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRIRCglvbGRfYWxpYXMYAyABKAkSEQoJbmV3X2FsaWFzGAQgASgJIhwKGlVwZGF0ZUZyZWlnaHRBbGlhc1Jlc3BvbnNlIjEKD1JldmVyaWZ5UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEg0KBXN0YWdlGAIgASgJIhIKEFJldmVyaWZ5UmVzcG9uc2UiOgoYQWJvcnRWZXJpZmljYXRpb25SZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDQoFc3RhZ2UYAiABKAkiGwoZQWJvcnRWZXJpZmljYXRpb25SZXNwb25zZSIoChVMaXN0V2FyZWhvdXNlc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCSJdChZMaXN0V2FyZWhvdXNlc1Jlc3BvbnNlEkMKCndhcmVob3VzZXMYASADKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuV2FyZWhvdXNlInEKE0dldFdhcmVob3VzZVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEjsKBmZvcm1hdBgDIAEoDjIrLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJhd0Zvcm1hdCJ1ChRHZXRXYXJlaG91c2VSZXNwb25zZRJECgl3YXJlaG91c2UYASABKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuV2FyZWhvdXNlSAASDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0IjcKFldhdGNoV2FyZWhvdXNlc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJImsKF1dhdGNoV2FyZWhvdXNlc1Jlc3BvbnNlEkIKCXdhcmVob3VzZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5XYXJlaG91c2USDAoEdHlwZRgCIAEoCSI3ChZEZWxldGVXYXJlaG91c2VSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCSIZChdEZWxldGVXYXJlaG91c2VSZXNwb25zZSI4ChdSZWZyZXNoV2FyZWhvdXNlUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkiXgoYUmVmcmVzaFdhcmVob3VzZVJlc3BvbnNlEkIKCXdhcmVob3VzZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5XYXJlaG91c2UiLAoZTGlzdFByb2plY3RTZWNyZXRzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJIkkKGkxpc3RQcm9qZWN0U2VjcmV0c1Jlc3BvbnNlEisKB3NlY3JldHMYASADKAsyGi5rOHMuaW8uYXBpLmNvcmUudjEuU2VjcmV0ItMBChpDcmVhdGVQcm9qZWN0U2VjcmV0UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSVAoEZGF0YRgEIAMoCzJGLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkNyZWF0ZVByb2plY3RTZWNyZXRSZXF1ZXN0LkRhdGFFbnRyeRorCglEYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJJChtDcmVhdGVQcm9qZWN0U2VjcmV0UmVzcG9uc2USKgoGc2VjcmV0GAEgASgLMhouazhzLmlvLmFwaS5jb3JlLnYxLlNlY3JldCLTAQoaVXBkYXRlUHJvamVjdFNlY3JldFJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJElQKBGRhdGEYBCADKAsyRi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5VcGRhdGVQcm9qZWN0U2VjcmV0UmVxdWVzdC5EYXRhRW50cnkaKwoJRGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiSQobVXBkYXRlUHJvamVjdFNlY3JldFJlc3BvbnNlEioKBnNlY3JldBgBIAEoCzIaLms4cy5pby5hcGkuY29yZS52MS5TZWNyZXQiOwoaRGVsZXRlUHJvamVjdFNlY3JldFJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJIh0KG0RlbGV0ZVByb2plY3RTZWNyZXRSZXNwb25zZSLGAQoYQ3JlYXRlQ3JlZGVudGlhbHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgIIAEoCRIMCgR0eXBlGAMgASgJEhkKCHJlcG9fdXJsGAQgASgJUgdyZXBvVVJMEikKEXJlcG9fdXJsX2lzX3JlZ2V4GAUgASgIUg5yZXBvVVJMSXNSZWdleBIQCgh1c2VybmFtZRgGIAEoCRIQCghwYXNzd29yZBgHIAEoCSJMChlDcmVhdGVDcmVkZW50aWFsc1Jlc3BvbnNlEi8KC2NyZWRlbnRpYWxzGAEgASgLMhouazhzLmlvLmFwaS5jb3JlLnYxLlNlY3JldCI5ChhEZWxldGVDcmVkZW50aWFsc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJIhsKGURlbGV0ZUNyZWRlbnRpYWxzUmVzcG9uc2UicwoVR2V0Q3JlZGVudGlhbHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRI7CgZmb3JtYXQYAyABKA4yKy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SYXdGb3JtYXQiZAoWR2V0Q3JlZGVudGlhbHNSZXNwb25zZRIxCgtjcmVkZW50aWFscxgBIAEoCzIaLms4cy5pby5hcGkuY29yZS52MS5TZWNyZXRIABINCgNyYXcYAiABKAxIAEIICgZyZXN1bHQiKQoWTGlzdENyZWRlbnRpYWxzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJIkoKF0xpc3RDcmVkZW50aWFsc1Jlc3BvbnNlEi8KC2NyZWRlbnRpYWxzGAEgAygLMhouazhzLmlvLmFwaS5jb3JlLnYxLlNlY3JldCLGAQoYVXBkYXRlQ3JlZGVudGlhbHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgIIAEoCRIMCgR0eXBlGAMgASgJEhkKCHJlcG9fdXJsGAQgASgJUgdyZXBvVVJMEikKEXJlcG9fdXJsX2lzX3JlZ2V4GAUgASgIUg5yZXBvVVJMSXNSZWdleBIQCgh1c2VybmFtZRgGIAEoCRIQCghwYXNzd29yZBgHIAEoCSJMChlVcGRhdGVDcmVkZW50aWFsc1Jlc3BvbnNlEi8KC2NyZWRlbnRpYWxzGAEgASgLMhouazhzLmlvLmFwaS5jb3JlLnYxLlNlY3JldCIvChxMaXN0QW5hbHlzaXNUZW1wbGF0ZXNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkikAEKHUxpc3RBbmFseXNpc1RlbXBsYXRlc1Jlc3BvbnNlEm8KEmFuYWx5c2lzX3RlbXBsYXRlcxgBIAMoCzJTLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmludGVybmFsLmNvbnRyb2xsZXIucm9sbG91dHMuYXBpLnYxYWxwaGExLkFuYWx5c2lzVGVtcGxhdGUieAoaR2V0QW5hbHlzaXNUZW1wbGF0ZVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEjsKBmZvcm1hdBgDIAEoDjIrLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJhd0Zvcm1hdCKoAQobR2V0QW5hbHlzaXNUZW1wbGF0ZVJlc3BvbnNlEnAKEWFuYWx5c2lzX3RlbXBsYXRlGAEgASgLMlMuZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uaW50ZXJuYWwuY29udHJvbGxlci5yb2xsb3V0cy5hcGkudjFhbHBoYTEuQW5hbHlzaXNUZW1wbGF0ZUgAEg0KA3JhdxgCIAEoDEgAQggKBnJlc3VsdCJ1ChVHZXRBbmFseXNpc1J1blJlcXVlc3QSEQoJbmFtZXNwYWNlGAEgASgJEgwKBG5hbWUYAiABKAkSOwoGZm9ybWF0GAMgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0IpkBChZHZXRBbmFseXNpc1J1blJlc3BvbnNlEmYKDGFuYWx5c2lzX3J1bhgBIAEoCzJOLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmludGVybmFsLmNvbnRyb2xsZXIucm9sbG91dHMuYXBpLnYxYWxwaGExLkFuYWx5c2lzUnVuSAASDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0Ij4KHURlbGV0ZUFuYWx5c2lzVGVtcGxhdGVSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCSIgCh5EZWxldGVBbmFseXNpc1RlbXBsYXRlUmVzcG9uc2UiKwoYTGlzdFByb2plY3RFdmVudHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkiRgoZTGlzdFByb2plY3RFdmVudHNSZXNwb25zZRIpCgZldmVudHMYASADKAsyGS5rOHMuaW8uYXBpLmNvcmUudjEuRXZlbnQiUgoRQ3JlYXRlUm9sZVJlcXVlc3QSPQoEcm9sZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGUiUwoSQ3JlYXRlUm9sZVJlc3BvbnNlEj0KBHJvbGUYASABKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5Sb2xlIjIKEURlbGV0ZVJvbGVSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCSIUChJEZWxldGVSb2xlUmVzcG9uc2UiggEKDkdldFJvbGVSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRIUCgxhc19yZXNvdXJjZXMYAyABKAgSOwoGZm9ybWF0GAQgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0IroBCg9HZXRSb2xlUmVzcG9uc2USPwoEcm9sZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGVIABJNCglyZXNvdXJjZXMYAiABKAsyOC5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5Sb2xlUmVzb3VyY2VzSAASDQoDcmF3GAMgASgMSABCCAoGcmVzdWx0IkoKBkNsYWltcxJACgZjbGFpbXMYASADKAsyMC5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5DbGFpbSLRAQoMR3JhbnRSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEcm9sZRgCIAEoCRI/Cgt1c2VyX2NsYWltcxgDIAEoCzIoLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkNsYWltc0gAElYKEHJlc291cmNlX2RldGFpbHMYBCABKAsyOi5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5SZXNvdXJjZURldGFpbHNIAEIJCgdyZXF1ZXN0Ik4KDUdyYW50UmVzcG9uc2USPQoEcm9sZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGUiOQoQTGlzdFJvbGVzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEhQKDGFzX3Jlc291cmNlcxgCIAEoCCKgAQoRTGlzdFJvbGVzUmVzcG9uc2USPgoFcm9sZXMYASADKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5Sb2xlEksKCXJlc291cmNlcxgCIAMoCzI4LmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGVSZXNvdXJjZXMi0gEKDVJldm9rZVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRyb2xlGAIgASgJEj8KC3VzZXJfY2xhaW1zGAMgASgLMiguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ2xhaW1zSAASVgoQcmVzb3VyY2VfZGV0YWlscxgEIAEoCzI6LmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJlc291cmNlRGV0YWlsc0gAQgkKB3JlcXVlc3QiTwoOUmV2b2tlUmVzcG9uc2USPQoEcm9sZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGUiUgoRVXBkYXRlUm9sZVJlcXVlc3QSPQoEcm9sZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGUiUwoSVXBkYXRlUm9sZVJlc3BvbnNlEj0KBHJvbGUYASABKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5Sb2xlIjgKJUxpc3RBbmFseXNpc1RlbXBsYXRlQ29uZmlnTWFwc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCSJcCiZMaXN0QW5hbHlzaXNUZW1wbGF0ZUNvbmZpZ01hcHNSZXNwb25zZRIyCgtjb25maWdfbWFwcxgBIAMoCzIdLms4cy5pby5hcGkuY29yZS52MS5Db25maWdNYXAigQEKI0dldEFuYWx5c2lzVGVtcGxhdGVDb25maWdNYXBSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRI7CgZmb3JtYXQYAyABKA4yKy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SYXdGb3JtYXQidAokR2V0QW5hbHlzaXNUZW1wbGF0ZUNvbmZpZ01hcFJlc3BvbnNlEjMKCmNvbmZpZ19tYXAYASABKAsyHS5rOHMuaW8uYXBpLmNvcmUudjEuQ29uZmlnTWFwSAASDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0IjUKIkxpc3RBbmFseXNpc1RlbXBsYXRlU2VjcmV0c1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCSJSCiNMaXN0QW5hbHlzaXNUZW1wbGF0ZVNlY3JldHNSZXNwb25zZRIrCgdzZWNyZXRzGAEgAygLMhouazhzLmlvLmFwaS5jb3JlLnYxLlNlY3JldCJ+CiBHZXRBbmFseXNpc1RlbXBsYXRlU2VjcmV0UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkSOwoGZm9ybWF0GAMgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0ImoKIUdldEFuYWx5c2lzVGVtcGxhdGVTZWNyZXRSZXNwb25zZRIsCgZzZWNyZXQYASABKAsyGi5rOHMuaW8uYXBpLmNvcmUudjEuU2VjcmV0SAASDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0KlEKCVJhd0Zvcm1hdBIaChZSQVdfRk9STUFUX1VOU1BFQ0lGSUVEEAASEwoPUkFXX0ZPUk1BVF9KU09OEAESEwoPUkFXX0ZPUk1BVF9ZQU1MEAIy1EAKDEthcmdvU2VydmljZRKDAQoOR2V0VmVyc2lvbkluZm8SNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRWZXJzaW9uSW5mb1JlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRWZXJzaW9uSW5mb1Jlc3BvbnNlEnQKCUdldENvbmZpZxIyLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldENvbmZpZ1JlcXVlc3QaMy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRDb25maWdSZXNwb25zZRKGAQoPR2V0UHVibGljQ29uZmlnEjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0UHVibGljQ29uZmlnUmVxdWVzdBo5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFB1YmxpY0NvbmZpZ1Jlc3BvbnNlEncKCkFkbWluTG9naW4SMy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BZG1pbkxvZ2luUmVxdWVzdBo0LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkFkbWluTG9naW5SZXNwb25zZRKDAQoOQ3JlYXRlUmVzb3VyY2USNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVSZXNvdXJjZVJlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVSZXNvdXJjZVJlc3BvbnNlEpsBChZDcmVhdGVPclVwZGF0ZVJlc291cmNlEj8uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlT3JVcGRhdGVSZXNvdXJjZVJlcXVlc3QaQC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVPclVwZGF0ZVJlc291cmNlUmVzcG9uc2USgwEKDlVwZGF0ZVJlc291cmNlEjcuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlUmVzb3VyY2VSZXF1ZXN0GjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlUmVzb3VyY2VSZXNwb25zZRKDAQoORGVsZXRlUmVzb3VyY2USNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVSZXNvdXJjZVJlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVSZXNvdXJjZVJlc3BvbnNlEncKCkxpc3RTdGFnZXMSMy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0U3RhZ2VzUmVxdWVzdBo0LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RTdGFnZXNSZXNwb25zZRJ3CgpMaXN0SW1hZ2VzEjMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdEltYWdlc1JlcXVlc3QaNC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0SW1hZ2VzUmVzcG9uc2UScQoIR2V0U3RhZ2USMS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRTdGFnZVJlcXVlc3QaMi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRTdGFnZVJlc3BvbnNlEnwKC1dhdGNoU3RhZ2VzEjQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuV2F0Y2hTdGFnZXNSZXF1ZXN0GjUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuV2F0Y2hTdGFnZXNSZXNwb25zZTABEnoKC0RlbGV0ZVN0YWdlEjQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlU3RhZ2VSZXF1ZXN0GjUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlU3RhZ2VSZXNwb25zZRJ9CgxSZWZyZXNoU3RhZ2USNS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SZWZyZXNoU3RhZ2VSZXF1ZXN0GjYuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmVmcmVzaFN0YWdlUmVzcG9uc2USgwEKDkxpc3RQcm9tb3Rpb25zEjcuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFByb21vdGlvbnNSZXF1ZXN0GjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFByb21vdGlvbnNSZXNwb25zZRKIAQoPV2F0Y2hQcm9tb3Rpb25zEjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuV2F0Y2hQcm9tb3Rpb25zUmVxdWVzdBo5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoUHJvbW90aW9uc1Jlc3BvbnNlMAESfQoMR2V0UHJvbW90aW9uEjUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0UHJvbW90aW9uUmVxdWVzdBo2LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFByb21vdGlvblJlc3BvbnNlEoUBCg5XYXRjaFByb21vdGlvbhI3LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoUHJvbW90aW9uUmVxdWVzdBo4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoUHJvbW90aW9uUmVzcG9uc2UwARKDAQoOQWJvcnRQcm9tb3Rpb24SNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BYm9ydFByb21vdGlvblJlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BYm9ydFByb21vdGlvblJlc3BvbnNlEoABCg1EZWxldGVQcm9qZWN0EjYuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlUHJvamVjdFJlcXVlc3QaNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVQcm9qZWN0UmVzcG9uc2USdwoKR2V0UHJvamVjdBIzLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFByb2plY3RSZXF1ZXN0GjQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0UHJvamVjdFJlc3BvbnNlEn0KDExpc3RQcm9qZWN0cxI1LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RQcm9qZWN0c1JlcXVlc3QaNi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0UHJvamVjdHNSZXNwb25zZRKDAQoOQXBwcm92ZUZyZWlnaHQSNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BcHByb3ZlRnJlaWdodFJlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BcHByb3ZlRnJlaWdodFJlc3BvbnNlEoABCg1EZWxldGVGcmVpZ2h0EjYuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlRnJlaWdodFJlcXVlc3QaNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVGcmVpZ2h0UmVzcG9uc2USdwoKR2V0RnJlaWdodBIzLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEZyZWlnaHRSZXF1ZXN0GjQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0RnJlaWdodFJlc3BvbnNlEoMBCg5Qcm9tb3RlVG9TdGFnZRI3LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlByb21vdGVUb1N0YWdlUmVxdWVzdBo4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlByb21vdGVUb1N0YWdlUmVzcG9uc2USjAEKEVByb21vdGVEb3duc3RyZWFtEjouYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUHJvbW90ZURvd25zdHJlYW1SZXF1ZXN0GjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUHJvbW90ZURvd25zdHJlYW1SZXNwb25zZRJ9CgxRdWVyeUZyZWlnaHQSNS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5RdWVyeUZyZWlnaHRSZXF1ZXN0GjYuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUXVlcnlGcmVpZ2h0UmVzcG9uc2USjwEKElVwZGF0ZUZyZWlnaHRBbGlhcxI7LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlVwZGF0ZUZyZWlnaHRBbGlhc1JlcXVlc3QaPC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5VcGRhdGVGcmVpZ2h0QWxpYXNSZXNwb25zZRJxCghSZXZlcmlmeRIxLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJldmVyaWZ5UmVxdWVzdBoyLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJldmVyaWZ5UmVzcG9uc2USjAEKEUFib3J0VmVyaWZpY2F0aW9uEjouYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQWJvcnRWZXJpZmljYXRpb25SZXF1ZXN0GjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQWJvcnRWZXJpZmljYXRpb25SZXNwb25zZRKDAQoOTGlzdFdhcmVob3VzZXMSNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0V2FyZWhvdXNlc1JlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0V2FyZWhvdXNlc1Jlc3BvbnNlEn0KDEdldFdhcmVob3VzZRI1LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFdhcmVob3VzZVJlcXVlc3QaNi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRXYXJlaG91c2VSZXNwb25zZRKIAQoPV2F0Y2hXYXJlaG91c2VzEjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuV2F0Y2hXYXJlaG91c2VzUmVxdWVzdBo5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoV2FyZWhvdXNlc1Jlc3BvbnNlMAEShgEKD0RlbGV0ZVdhcmVob3VzZRI4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZVdhcmVob3VzZVJlcXVlc3QaOS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVXYXJlaG91c2VSZXNwb25zZRKJAQoQUmVmcmVzaFdhcmVob3VzZRI5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJlZnJlc2hXYXJlaG91c2VSZXF1ZXN0GjouYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmVmcmVzaFdhcmVob3VzZVJlc3BvbnNlEowBChFDcmVhdGVDcmVkZW50aWFscxI6LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkNyZWF0ZUNyZWRlbnRpYWxzUmVxdWVzdBo7LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkNyZWF0ZUNyZWRlbnRpYWxzUmVzcG9uc2USjAEKEURlbGV0ZUNyZWRlbnRpYWxzEjouYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlQ3JlZGVudGlhbHNSZXF1ZXN0GjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlQ3JlZGVudGlhbHNSZXNwb25zZRKDAQoOR2V0Q3JlZGVudGlhbHMSNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRDcmVkZW50aWFsc1JlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRDcmVkZW50aWFsc1Jlc3BvbnNlEoYBCg9MaXN0Q3JlZGVudGlhbHMSOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0Q3JlZGVudGlhbHNSZXF1ZXN0GjkuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdENyZWRlbnRpYWxzUmVzcG9uc2USjAEKEVVwZGF0ZUNyZWRlbnRpYWxzEjouYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlQ3JlZGVudGlhbHNSZXF1ZXN0GjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlQ3JlZGVudGlhbHNSZXNwb25zZRKPAQoSTGlzdFByb2plY3RTZWNyZXRzEjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFByb2plY3RTZWNyZXRzUmVxdWVzdBo8LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RQcm9qZWN0U2VjcmV0c1Jlc3BvbnNlEpIBChNDcmVhdGVQcm9qZWN0U2VjcmV0EjwuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlUHJvamVjdFNlY3JldFJlcXVlc3QaPS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVQcm9qZWN0U2VjcmV0UmVzcG9uc2USkgEKE1VwZGF0ZVByb2plY3RTZWNyZXQSPC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5VcGRhdGVQcm9qZWN0U2VjcmV0UmVxdWVzdBo9LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlVwZGF0ZVByb2plY3RTZWNyZXRSZXNwb25zZRKSAQoTRGVsZXRlUHJvamVjdFNlY3JldBI8LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZVByb2plY3RTZWNyZXRSZXF1ZXN0Gj0uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlUHJvamVjdFNlY3JldFJlc3BvbnNlEpgBChVMaXN0QW5hbHlzaXNUZW1wbGF0ZXMSPi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0QW5hbHlzaXNUZW1wbGF0ZXNSZXF1ZXN0Gj8uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdEFuYWx5c2lzVGVtcGxhdGVzUmVzcG9uc2USkgEKE0dldEFuYWx5c2lzVGVtcGxhdGUSPC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRBbmFseXNpc1RlbXBsYXRlUmVxdWVzdBo9LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEFuYWx5c2lzVGVtcGxhdGVSZXNwb25zZRKbAQoWRGVsZXRlQW5hbHlzaXNUZW1wbGF0ZRI/LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZUFuYWx5c2lzVGVtcGxhdGVSZXF1ZXN0GkAuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlQW5hbHlzaXNUZW1wbGF0ZVJlc3BvbnNlEoMBCg5HZXRBbmFseXNpc1J1bhI3LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEFuYWx5c2lzUnVuUmVxdWVzdBo4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEFuYWx5c2lzUnVuUmVzcG9uc2USswEKHkxpc3RBbmFseXNpc1RlbXBsYXRlQ29uZmlnTWFwcxJHLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RBbmFseXNpc1RlbXBsYXRlQ29uZmlnTWFwc1JlcXVlc3QaSC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0QW5hbHlzaXNUZW1wbGF0ZUNvbmZpZ01hcHNSZXNwb25zZRKtAQocR2V0QW5hbHlzaXNUZW1wbGF0ZUNvbmZpZ01hcBJFLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEFuYWx5c2lzVGVtcGxhdGVDb25maWdNYXBSZXF1ZXN0GkYuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0QW5hbHlzaXNUZW1wbGF0ZUNvbmZpZ01hcFJlc3BvbnNlEqoBChtMaXN0QW5hbHlzaXNUZW1wbGF0ZVNlY3JldHMSRC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0QW5hbHlzaXNUZW1wbGF0ZVNlY3JldHNSZXF1ZXN0GkUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdEFuYWx5c2lzVGVtcGxhdGVTZWNyZXRzUmVzcG9uc2USpAEKGUdldEFuYWx5c2lzVGVtcGxhdGVTZWNyZXQSQi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRBbmFseXNpc1RlbXBsYXRlU2VjcmV0UmVxdWVzdBpDLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEFuYWx5c2lzVGVtcGxhdGVTZWNyZXRSZXNwb25zZRKMAQoRTGlzdFByb2plY3RFdmVudHMSOi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0UHJvamVjdEV2ZW50c1JlcXVlc3QaOy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0UHJvamVjdEV2ZW50c1Jlc3BvbnNlEncKCkNyZWF0ZVJvbGUSMy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVSb2xlUmVxdWVzdBo0LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkNyZWF0ZVJvbGVSZXNwb25zZRJ3CgpEZWxldGVSb2xlEjMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlUm9sZVJlcXVlc3QaNC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVSb2xlUmVzcG9uc2USbgoHR2V0Um9sZRIwLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFJvbGVSZXF1ZXN0GjEuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0Um9sZVJlc3BvbnNlEmgKBUdyYW50Ei4uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR3JhbnRSZXF1ZXN0Gi8uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR3JhbnRSZXNwb25zZRJ0CglMaXN0Um9sZXMSMi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0Um9sZXNSZXF1ZXN0GjMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFJvbGVzUmVzcG9uc2USawoGUmV2b2tlEi8uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmV2b2tlUmVxdWVzdBowLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJldm9rZVJlc3BvbnNlEncKClVwZGF0ZVJvbGUSMy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5VcGRhdGVSb2xlUmVxdWVzdBo0LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlVwZGF0ZVJvbGVSZXNwb25zZUKXAgokY29tLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExQgxTZXJ2aWNlUHJvdG9QAVo8Z2l0aHViLmNvbS9ha3VpdHkva2FyZ28vcGtnL2FwaS9zZXJ2aWNlL3YxYWxwaGExO3N2Y3YxYWxwaGExogIEQUlLU6oCIEFrdWl0eS5Jby5LYXJnby5TZXJ2aWNlLlYxYWxwaGExygIgQWt1aXR5XElvXEthcmdvXFNlcnZpY2VcVjFhbHBoYTHiAixBa3VpdHlcSW9cS2FyZ29cU2VydmljZVxWMWFscGhhMVxHUEJNZXRhZGF0YeoCJEFrdWl0eTo6SW86OkthcmdvOjpTZXJ2aWNlOjpWMWFscGhhMWIGcHJvdG8z", [file_google_protobuf_timestamp, file_v1alpha1_generated, file_k8s_io_api_core_v1_generated, file_rollouts_api_v1alpha1_generated, file_rbac_v1alpha1_generated]); + fileDesc("Ch5zZXJ2aWNlL3YxYWxwaGExL3NlcnZpY2UucHJvdG8SIGFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExIqsBChFDb21wb25lbnRWZXJzaW9ucxJCCgZzZXJ2ZXIYASABKAsyLS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5WZXJzaW9uSW5mb0gAiAEBEj8KA2NsaRgCIAEoCzItLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlZlcnNpb25JbmZvSAGIAQFCCQoHX3NlcnZlckIGCgRfY2xpIrIBCgtWZXJzaW9uSW5mbxIPCgd2ZXJzaW9uGAEgASgJEhIKCmdpdF9jb21taXQYAiABKAkSFgoOZ2l0X3RyZWVfZGlydHkYAyABKAgSLgoKYnVpbGRfdGltZRgEIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXASEgoKZ29fdmVyc2lvbhgFIAEoCRIQCghjb21waWxlchgGIAEoCRIQCghwbGF0Zm9ybRgHIAEoCSIXChVHZXRWZXJzaW9uSW5mb1JlcXVlc3QiXQoWR2V0VmVyc2lvbkluZm9SZXNwb25zZRJDCgx2ZXJzaW9uX2luZm8YASABKAsyLS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5WZXJzaW9uSW5mbyISChBHZXRDb25maWdSZXF1ZXN0Ii0KC0FyZ29DRFNoYXJkEgsKA3VybBgBIAEoCRIRCgluYW1lc3BhY2UYAiABKAki+AEKEUdldENvbmZpZ1Jlc3BvbnNlElwKDWFyZ29jZF9zaGFyZHMYASADKAsyRS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRDb25maWdSZXNwb25zZS5BcmdvY2RTaGFyZHNFbnRyeRIhChlzZWNyZXRfbWFuYWdlbWVudF9lbmFibGVkGAIgASgIGmIKEUFyZ29jZFNoYXJkc0VudHJ5EgsKA2tleRgBIAEoCRI8CgV2YWx1ZRgCIAEoCzItLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkFyZ29DRFNoYXJkOgI4ASIYChZHZXRQdWJsaWNDb25maWdSZXF1ZXN0Io4BChdHZXRQdWJsaWNDb25maWdSZXNwb25zZRJBCgtvaWRjX2NvbmZpZxgBIAEoCzIsLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLk9JRENDb25maWcSHQoVYWRtaW5fYWNjb3VudF9lbmFibGVkGAIgASgIEhEKCXNraXBfYXV0aBgDIAEoCCJaCgpPSURDQ29uZmlnEhIKCmlzc3Vlcl91cmwYASABKAkSEQoJY2xpZW50X2lkGAIgASgJEg4KBnNjb3BlcxgDIAMoCRIVCg1jbGlfY2xpZW50X2lkGAQgASgJIiUKEUFkbWluTG9naW5SZXF1ZXN0EhAKCHBhc3N3b3JkGAEgASgJIiYKEkFkbWluTG9naW5SZXNwb25zZRIQCghpZF90b2tlbhgBIAEoCSIpChVDcmVhdGVSZXNvdXJjZVJlcXVlc3QSEAoIbWFuaWZlc3QYASABKAwiVgoUQ3JlYXRlUmVzb3VyY2VSZXN1bHQSIwoZY3JlYXRlZF9yZXNvdXJjZV9tYW5pZmVzdBgBIAEoDEgAEg8KBWVycm9yGAIgASgJSABCCAoGcmVzdWx0ImEKFkNyZWF0ZVJlc291cmNlUmVzcG9uc2USRwoHcmVzdWx0cxgBIAMoCzI2LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkNyZWF0ZVJlc291cmNlUmVzdWx0IjEKHUNyZWF0ZU9yVXBkYXRlUmVzb3VyY2VSZXF1ZXN0EhAKCG1hbmlmZXN0GAEgASgMIoMBChxDcmVhdGVPclVwZGF0ZVJlc291cmNlUmVzdWx0EiMKGWNyZWF0ZWRfcmVzb3VyY2VfbWFuaWZlc3QYASABKAxIABIjChl1cGRhdGVkX3Jlc291cmNlX21hbmlmZXN0GAIgASgMSAASDwoFZXJyb3IYAyABKAlIAEIICgZyZXN1bHQicQoeQ3JlYXRlT3JVcGRhdGVSZXNvdXJjZVJlc3BvbnNlEk8KB3Jlc3VsdHMYASADKAsyPi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVPclVwZGF0ZVJlc291cmNlUmVzdWx0IikKFVVwZGF0ZVJlc291cmNlUmVxdWVzdBIQCghtYW5pZmVzdBgBIAEoDCJWChRVcGRhdGVSZXNvdXJjZVJlc3VsdBIjChl1cGRhdGVkX3Jlc291cmNlX21hbmlmZXN0GAEgASgMSAASDwoFZXJyb3IYAiABKAlIAEIICgZyZXN1bHQiYQoWVXBkYXRlUmVzb3VyY2VSZXNwb25zZRJHCgdyZXN1bHRzGAEgAygLMjYuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlUmVzb3VyY2VSZXN1bHQiKQoVRGVsZXRlUmVzb3VyY2VSZXF1ZXN0EhAKCG1hbmlmZXN0GAEgASgMIlYKFERlbGV0ZVJlc291cmNlUmVzdWx0EiMKGWRlbGV0ZWRfcmVzb3VyY2VfbWFuaWZlc3QYASABKAxIABIPCgVlcnJvchgCIAEoCUgAQggKBnJlc3VsdCJhChZEZWxldGVSZXNvdXJjZVJlc3BvbnNlEkcKB3Jlc3VsdHMYASADKAsyNi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVSZXNvdXJjZVJlc3VsdCIkChFMaXN0U3RhZ2VzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJIlEKEkxpc3RTdGFnZXNSZXNwb25zZRI7CgZzdGFnZXMYASADKAsyKy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuU3RhZ2UiJAoRTGlzdEltYWdlc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCSK/AQoSTGlzdEltYWdlc1Jlc3BvbnNlElAKBmltYWdlcxgCIAMoCzJALmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RJbWFnZXNSZXNwb25zZS5JbWFnZXNFbnRyeRpXCgtJbWFnZXNFbnRyeRILCgNrZXkYASABKAkSNwoFdmFsdWUYAiABKAsyKC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5UYWdNYXA6AjgBIqgBCgZUYWdNYXASQAoEdGFncxgBIAMoCzIyLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlRhZ01hcC5UYWdzRW50cnkaXAoJVGFnc0VudHJ5EgsKA2tleRgBIAEoCRI+CgV2YWx1ZRgCIAEoCzIvLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkltYWdlU3RhZ2VNYXA6AjgBIosBCg1JbWFnZVN0YWdlTWFwEksKBnN0YWdlcxgBIAMoCzI7LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkltYWdlU3RhZ2VNYXAuU3RhZ2VzRW50cnkaLQoLU3RhZ2VzRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgFOgI4ASJtCg9HZXRTdGFnZVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEjsKBmZvcm1hdBgDIAEoDjIrLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJhd0Zvcm1hdCJpChBHZXRTdGFnZVJlc3BvbnNlEjwKBXN0YWdlGAEgASgLMisuZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLlN0YWdlSAASDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0IjMKEldhdGNoU3RhZ2VzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkiXwoTV2F0Y2hTdGFnZXNSZXNwb25zZRI6CgVzdGFnZRgBIAEoCzIrLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5TdGFnZRIMCgR0eXBlGAIgASgJIjMKEkRlbGV0ZVN0YWdlUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkiFQoTRGVsZXRlU3RhZ2VSZXNwb25zZSI0ChNSZWZyZXNoU3RhZ2VSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCSJSChRSZWZyZXNoU3RhZ2VSZXNwb25zZRI6CgVzdGFnZRgBIAEoCzIrLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5TdGFnZSJGChVMaXN0UHJvbW90aW9uc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRISCgVzdGFnZRgCIAEoCUgAiAEBQggKBl9zdGFnZSJdChZMaXN0UHJvbW90aW9uc1Jlc3BvbnNlEkMKCnByb21vdGlvbnMYASADKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuUHJvbW90aW9uIkcKFldhdGNoUHJvbW90aW9uc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRISCgVzdGFnZRgCIAEoCUgAiAEBQggKBl9zdGFnZSJrChdXYXRjaFByb21vdGlvbnNSZXNwb25zZRJCCglwcm9tb3Rpb24YASABKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuUHJvbW90aW9uEgwKBHR5cGUYAiABKAkicQoTR2V0UHJvbW90aW9uUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkSOwoGZm9ybWF0GAMgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0InUKFEdldFByb21vdGlvblJlc3BvbnNlEkQKCXByb21vdGlvbhgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5Qcm9tb3Rpb25IABINCgNyYXcYAiABKAxIAEIICgZyZXN1bHQiNgoVV2F0Y2hQcm9tb3Rpb25SZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCSJqChZXYXRjaFByb21vdGlvblJlc3BvbnNlEkIKCXByb21vdGlvbhgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5Qcm9tb3Rpb24SDAoEdHlwZRgCIAEoCSI2ChVBYm9ydFByb21vdGlvblJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJIhgKFkFib3J0UHJvbW90aW9uUmVzcG9uc2UiJAoURGVsZXRlUHJvamVjdFJlcXVlc3QSDAoEbmFtZRgBIAEoCSIXChVEZWxldGVQcm9qZWN0UmVzcG9uc2UiXgoRR2V0UHJvamVjdFJlcXVlc3QSDAoEbmFtZRgBIAEoCRI7CgZmb3JtYXQYAiABKA4yKy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SYXdGb3JtYXQibwoSR2V0UHJvamVjdFJlc3BvbnNlEkAKB3Byb2plY3QYASABKAsyLS5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuUHJvamVjdEgAEg0KA3JhdxgCIAEoDEgAQggKBnJlc3VsdCJ3ChNMaXN0UHJvamVjdHNSZXF1ZXN0EhYKCXBhZ2Vfc2l6ZRgBIAEoBUgAiAEBEhEKBHBhZ2UYAiABKAVIAYgBARITCgZmaWx0ZXIYAyABKAlIAogBAUIMCgpfcGFnZV9zaXplQgcKBV9wYWdlQgkKB19maWx0ZXIiZgoUTGlzdFByb2plY3RzUmVzcG9uc2USPwoIcHJvamVjdHMYASADKAsyLS5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuUHJvamVjdBINCgV0b3RhbBgCIAEoBSJUChVBcHByb3ZlRnJlaWdodFJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBWFsaWFzGAMgASgJEg0KBXN0YWdlGAQgASgJIhgKFkFwcHJvdmVGcmVpZ2h0UmVzcG9uc2UiRAoURGVsZXRlRnJlaWdodFJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEg0KBWFsaWFzGAMgASgJIhcKFURlbGV0ZUZyZWlnaHRSZXNwb25zZSJ+ChFHZXRGcmVpZ2h0UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkSDQoFYWxpYXMYAyABKAkSOwoGZm9ybWF0GAQgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0Im8KEkdldEZyZWlnaHRSZXNwb25zZRJACgdmcmVpZ2h0GAEgASgLMi0uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLkZyZWlnaHRIABINCgNyYXcYAiABKAxIAEIICgZyZXN1bHQiXwoVUHJvbW90ZVRvU3RhZ2VSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDQoFc3RhZ2UYAiABKAkSDwoHZnJlaWdodBgDIAEoCRIVCg1mcmVpZ2h0X2FsaWFzGAQgASgJIlwKFlByb21vdGVUb1N0YWdlUmVzcG9uc2USQgoJcHJvbW90aW9uGAEgASgLMi8uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLlByb21vdGlvbiJiChhQcm9tb3RlRG93bnN0cmVhbVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRINCgVzdGFnZRgCIAEoCRIPCgdmcmVpZ2h0GAMgASgJEhUKDWZyZWlnaHRfYWxpYXMYBCABKAkiYAoZUHJvbW90ZURvd25zdHJlYW1SZXNwb25zZRJDCgpwcm9tb3Rpb25zGAEgAygLMi8uZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uYXBpLnYxYWxwaGExLlByb21vdGlvbiKKAQoTUXVlcnlGcmVpZ2h0UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEg0KBXN0YWdlGAIgASgJEhAKCGdyb3VwX2J5GAMgASgJEg0KBWdyb3VwGAQgASgJEhAKCG9yZGVyX2J5GAUgASgJEg8KB3JldmVyc2UYBiABKAgSDwoHb3JpZ2lucxgHIAMoCSLIAQoUUXVlcnlGcmVpZ2h0UmVzcG9uc2USUgoGZ3JvdXBzGAEgAygLMkIuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUXVlcnlGcmVpZ2h0UmVzcG9uc2UuR3JvdXBzRW50cnkaXAoLR3JvdXBzRW50cnkSCwoDa2V5GAEgASgJEjwKBXZhbHVlGAIgASgLMi0uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRnJlaWdodExpc3Q6AjgBIk0KC0ZyZWlnaHRMaXN0Ej4KB2ZyZWlnaHQYASADKAsyLS5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuRnJlaWdodCJgChlVcGRhdGVGcmVpZ2h0QWxpYXNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRIRCglvbGRfYWxpYXMYAyABKAkSEQoJbmV3X2FsaWFzGAQgASgJIhwKGlVwZGF0ZUZyZWlnaHRBbGlhc1Jlc3BvbnNlIjEKD1JldmVyaWZ5UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEg0KBXN0YWdlGAIgASgJIhIKEFJldmVyaWZ5UmVzcG9uc2UiOgoYQWJvcnRWZXJpZmljYXRpb25SZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDQoFc3RhZ2UYAiABKAkiGwoZQWJvcnRWZXJpZmljYXRpb25SZXNwb25zZSIoChVMaXN0V2FyZWhvdXNlc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCSJdChZMaXN0V2FyZWhvdXNlc1Jlc3BvbnNlEkMKCndhcmVob3VzZXMYASADKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuV2FyZWhvdXNlInEKE0dldFdhcmVob3VzZVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEjsKBmZvcm1hdBgDIAEoDjIrLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJhd0Zvcm1hdCJ1ChRHZXRXYXJlaG91c2VSZXNwb25zZRJECgl3YXJlaG91c2UYASABKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkudjFhbHBoYTEuV2FyZWhvdXNlSAASDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0IjcKFldhdGNoV2FyZWhvdXNlc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJImsKF1dhdGNoV2FyZWhvdXNlc1Jlc3BvbnNlEkIKCXdhcmVob3VzZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5XYXJlaG91c2USDAoEdHlwZRgCIAEoCSI3ChZEZWxldGVXYXJlaG91c2VSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCSIZChdEZWxldGVXYXJlaG91c2VSZXNwb25zZSI4ChdSZWZyZXNoV2FyZWhvdXNlUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkiXgoYUmVmcmVzaFdhcmVob3VzZVJlc3BvbnNlEkIKCXdhcmVob3VzZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS52MWFscGhhMS5XYXJlaG91c2UiLAoZTGlzdFByb2plY3RTZWNyZXRzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJIkkKGkxpc3RQcm9qZWN0U2VjcmV0c1Jlc3BvbnNlEisKB3NlY3JldHMYASADKAsyGi5rOHMuaW8uYXBpLmNvcmUudjEuU2VjcmV0ItMBChpDcmVhdGVQcm9qZWN0U2VjcmV0UmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEgwKBG5hbWUYAiABKAkSEwoLZGVzY3JpcHRpb24YAyABKAkSVAoEZGF0YRgEIAMoCzJGLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkNyZWF0ZVByb2plY3RTZWNyZXRSZXF1ZXN0LkRhdGFFbnRyeRorCglEYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4ASJJChtDcmVhdGVQcm9qZWN0U2VjcmV0UmVzcG9uc2USKgoGc2VjcmV0GAEgASgLMhouazhzLmlvLmFwaS5jb3JlLnYxLlNlY3JldCLTAQoaVXBkYXRlUHJvamVjdFNlY3JldFJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEhMKC2Rlc2NyaXB0aW9uGAMgASgJElQKBGRhdGEYBCADKAsyRi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5VcGRhdGVQcm9qZWN0U2VjcmV0UmVxdWVzdC5EYXRhRW50cnkaKwoJRGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAEiSQobVXBkYXRlUHJvamVjdFNlY3JldFJlc3BvbnNlEioKBnNlY3JldBgBIAEoCzIaLms4cy5pby5hcGkuY29yZS52MS5TZWNyZXQiOwoaRGVsZXRlUHJvamVjdFNlY3JldFJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJIh0KG0RlbGV0ZVByb2plY3RTZWNyZXRSZXNwb25zZSLGAQoYQ3JlYXRlQ3JlZGVudGlhbHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgIIAEoCRIMCgR0eXBlGAMgASgJEhkKCHJlcG9fdXJsGAQgASgJUgdyZXBvVVJMEikKEXJlcG9fdXJsX2lzX3JlZ2V4GAUgASgIUg5yZXBvVVJMSXNSZWdleBIQCgh1c2VybmFtZRgGIAEoCRIQCghwYXNzd29yZBgHIAEoCSJMChlDcmVhdGVDcmVkZW50aWFsc1Jlc3BvbnNlEi8KC2NyZWRlbnRpYWxzGAEgASgLMhouazhzLmlvLmFwaS5jb3JlLnYxLlNlY3JldCI5ChhEZWxldGVDcmVkZW50aWFsc1JlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJIhsKGURlbGV0ZUNyZWRlbnRpYWxzUmVzcG9uc2UicwoVR2V0Q3JlZGVudGlhbHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRI7CgZmb3JtYXQYAyABKA4yKy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SYXdGb3JtYXQiZAoWR2V0Q3JlZGVudGlhbHNSZXNwb25zZRIxCgtjcmVkZW50aWFscxgBIAEoCzIaLms4cy5pby5hcGkuY29yZS52MS5TZWNyZXRIABINCgNyYXcYAiABKAxIAEIICgZyZXN1bHQiKQoWTGlzdENyZWRlbnRpYWxzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJIkoKF0xpc3RDcmVkZW50aWFsc1Jlc3BvbnNlEi8KC2NyZWRlbnRpYWxzGAEgAygLMhouazhzLmlvLmFwaS5jb3JlLnYxLlNlY3JldCLGAQoYVXBkYXRlQ3JlZGVudGlhbHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRITCgtkZXNjcmlwdGlvbhgIIAEoCRIMCgR0eXBlGAMgASgJEhkKCHJlcG9fdXJsGAQgASgJUgdyZXBvVVJMEikKEXJlcG9fdXJsX2lzX3JlZ2V4GAUgASgIUg5yZXBvVVJMSXNSZWdleBIQCgh1c2VybmFtZRgGIAEoCRIQCghwYXNzd29yZBgHIAEoCSJMChlVcGRhdGVDcmVkZW50aWFsc1Jlc3BvbnNlEi8KC2NyZWRlbnRpYWxzGAEgASgLMhouazhzLmlvLmFwaS5jb3JlLnYxLlNlY3JldCIvChxMaXN0QW5hbHlzaXNUZW1wbGF0ZXNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkikAEKHUxpc3RBbmFseXNpc1RlbXBsYXRlc1Jlc3BvbnNlEm8KEmFuYWx5c2lzX3RlbXBsYXRlcxgBIAMoCzJTLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmludGVybmFsLmNvbnRyb2xsZXIucm9sbG91dHMuYXBpLnYxYWxwaGExLkFuYWx5c2lzVGVtcGxhdGUieAoaR2V0QW5hbHlzaXNUZW1wbGF0ZVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRuYW1lGAIgASgJEjsKBmZvcm1hdBgDIAEoDjIrLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJhd0Zvcm1hdCKoAQobR2V0QW5hbHlzaXNUZW1wbGF0ZVJlc3BvbnNlEnAKEWFuYWx5c2lzX3RlbXBsYXRlGAEgASgLMlMuZ2l0aHViLmNvbS5ha3VpdHkua2FyZ28uaW50ZXJuYWwuY29udHJvbGxlci5yb2xsb3V0cy5hcGkudjFhbHBoYTEuQW5hbHlzaXNUZW1wbGF0ZUgAEg0KA3JhdxgCIAEoDEgAQggKBnJlc3VsdCJ1ChVHZXRBbmFseXNpc1J1blJlcXVlc3QSEQoJbmFtZXNwYWNlGAEgASgJEgwKBG5hbWUYAiABKAkSOwoGZm9ybWF0GAMgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0IpkBChZHZXRBbmFseXNpc1J1blJlc3BvbnNlEmYKDGFuYWx5c2lzX3J1bhgBIAEoCzJOLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmludGVybmFsLmNvbnRyb2xsZXIucm9sbG91dHMuYXBpLnYxYWxwaGExLkFuYWx5c2lzUnVuSAASDQoDcmF3GAIgASgMSABCCAoGcmVzdWx0Ij4KHURlbGV0ZUFuYWx5c2lzVGVtcGxhdGVSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCSIgCh5EZWxldGVBbmFseXNpc1RlbXBsYXRlUmVzcG9uc2UiKwoYTGlzdFByb2plY3RFdmVudHNSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkiRgoZTGlzdFByb2plY3RFdmVudHNSZXNwb25zZRIpCgZldmVudHMYASADKAsyGS5rOHMuaW8uYXBpLmNvcmUudjEuRXZlbnQiUgoRQ3JlYXRlUm9sZVJlcXVlc3QSPQoEcm9sZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGUiUwoSQ3JlYXRlUm9sZVJlc3BvbnNlEj0KBHJvbGUYASABKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5Sb2xlIjIKEURlbGV0ZVJvbGVSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCSIUChJEZWxldGVSb2xlUmVzcG9uc2UiggEKDkdldFJvbGVSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEbmFtZRgCIAEoCRIUCgxhc19yZXNvdXJjZXMYAyABKAgSOwoGZm9ybWF0GAQgASgOMisuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmF3Rm9ybWF0IroBCg9HZXRSb2xlUmVzcG9uc2USPwoEcm9sZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGVIABJNCglyZXNvdXJjZXMYAiABKAsyOC5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5Sb2xlUmVzb3VyY2VzSAASDQoDcmF3GAMgASgMSABCCAoGcmVzdWx0IkoKBkNsYWltcxJACgZjbGFpbXMYASADKAsyMC5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5DbGFpbSLRAQoMR3JhbnRSZXF1ZXN0Eg8KB3Byb2plY3QYASABKAkSDAoEcm9sZRgCIAEoCRI/Cgt1c2VyX2NsYWltcxgDIAEoCzIoLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkNsYWltc0gAElYKEHJlc291cmNlX2RldGFpbHMYBCABKAsyOi5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5SZXNvdXJjZURldGFpbHNIAEIJCgdyZXF1ZXN0Ik4KDUdyYW50UmVzcG9uc2USPQoEcm9sZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGUiOQoQTGlzdFJvbGVzUmVxdWVzdBIPCgdwcm9qZWN0GAEgASgJEhQKDGFzX3Jlc291cmNlcxgCIAEoCCKgAQoRTGlzdFJvbGVzUmVzcG9uc2USPgoFcm9sZXMYASADKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5Sb2xlEksKCXJlc291cmNlcxgCIAMoCzI4LmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGVSZXNvdXJjZXMi0gEKDVJldm9rZVJlcXVlc3QSDwoHcHJvamVjdBgBIAEoCRIMCgRyb2xlGAIgASgJEj8KC3VzZXJfY2xhaW1zGAMgASgLMiguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ2xhaW1zSAASVgoQcmVzb3VyY2VfZGV0YWlscxgEIAEoCzI6LmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJlc291cmNlRGV0YWlsc0gAQgkKB3JlcXVlc3QiTwoOUmV2b2tlUmVzcG9uc2USPQoEcm9sZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGUiUgoRVXBkYXRlUm9sZVJlcXVlc3QSPQoEcm9sZRgBIAEoCzIvLmdpdGh1Yi5jb20uYWt1aXR5LmthcmdvLmFwaS5yYmFjLnYxYWxwaGExLlJvbGUiUwoSVXBkYXRlUm9sZVJlc3BvbnNlEj0KBHJvbGUYASABKAsyLy5naXRodWIuY29tLmFrdWl0eS5rYXJnby5hcGkucmJhYy52MWFscGhhMS5Sb2xlKlEKCVJhd0Zvcm1hdBIaChZSQVdfRk9STUFUX1VOU1BFQ0lGSUVEEAASEwoPUkFXX0ZPUk1BVF9KU09OEAESEwoPUkFXX0ZPUk1BVF9ZQU1MEAIymjsKDEthcmdvU2VydmljZRKDAQoOR2V0VmVyc2lvbkluZm8SNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRWZXJzaW9uSW5mb1JlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRWZXJzaW9uSW5mb1Jlc3BvbnNlEnQKCUdldENvbmZpZxIyLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldENvbmZpZ1JlcXVlc3QaMy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRDb25maWdSZXNwb25zZRKGAQoPR2V0UHVibGljQ29uZmlnEjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0UHVibGljQ29uZmlnUmVxdWVzdBo5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFB1YmxpY0NvbmZpZ1Jlc3BvbnNlEncKCkFkbWluTG9naW4SMy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BZG1pbkxvZ2luUmVxdWVzdBo0LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkFkbWluTG9naW5SZXNwb25zZRKDAQoOQ3JlYXRlUmVzb3VyY2USNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVSZXNvdXJjZVJlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVSZXNvdXJjZVJlc3BvbnNlEpsBChZDcmVhdGVPclVwZGF0ZVJlc291cmNlEj8uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlT3JVcGRhdGVSZXNvdXJjZVJlcXVlc3QaQC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVPclVwZGF0ZVJlc291cmNlUmVzcG9uc2USgwEKDlVwZGF0ZVJlc291cmNlEjcuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlUmVzb3VyY2VSZXF1ZXN0GjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlUmVzb3VyY2VSZXNwb25zZRKDAQoORGVsZXRlUmVzb3VyY2USNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVSZXNvdXJjZVJlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVSZXNvdXJjZVJlc3BvbnNlEncKCkxpc3RTdGFnZXMSMy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0U3RhZ2VzUmVxdWVzdBo0LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RTdGFnZXNSZXNwb25zZRJ3CgpMaXN0SW1hZ2VzEjMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdEltYWdlc1JlcXVlc3QaNC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0SW1hZ2VzUmVzcG9uc2UScQoIR2V0U3RhZ2USMS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRTdGFnZVJlcXVlc3QaMi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRTdGFnZVJlc3BvbnNlEnwKC1dhdGNoU3RhZ2VzEjQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuV2F0Y2hTdGFnZXNSZXF1ZXN0GjUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuV2F0Y2hTdGFnZXNSZXNwb25zZTABEnoKC0RlbGV0ZVN0YWdlEjQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlU3RhZ2VSZXF1ZXN0GjUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlU3RhZ2VSZXNwb25zZRJ9CgxSZWZyZXNoU3RhZ2USNS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SZWZyZXNoU3RhZ2VSZXF1ZXN0GjYuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmVmcmVzaFN0YWdlUmVzcG9uc2USgwEKDkxpc3RQcm9tb3Rpb25zEjcuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFByb21vdGlvbnNSZXF1ZXN0GjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFByb21vdGlvbnNSZXNwb25zZRKIAQoPV2F0Y2hQcm9tb3Rpb25zEjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuV2F0Y2hQcm9tb3Rpb25zUmVxdWVzdBo5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoUHJvbW90aW9uc1Jlc3BvbnNlMAESfQoMR2V0UHJvbW90aW9uEjUuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0UHJvbW90aW9uUmVxdWVzdBo2LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFByb21vdGlvblJlc3BvbnNlEoUBCg5XYXRjaFByb21vdGlvbhI3LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoUHJvbW90aW9uUmVxdWVzdBo4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoUHJvbW90aW9uUmVzcG9uc2UwARKDAQoOQWJvcnRQcm9tb3Rpb24SNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BYm9ydFByb21vdGlvblJlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BYm9ydFByb21vdGlvblJlc3BvbnNlEoABCg1EZWxldGVQcm9qZWN0EjYuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlUHJvamVjdFJlcXVlc3QaNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVQcm9qZWN0UmVzcG9uc2USdwoKR2V0UHJvamVjdBIzLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFByb2plY3RSZXF1ZXN0GjQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0UHJvamVjdFJlc3BvbnNlEn0KDExpc3RQcm9qZWN0cxI1LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RQcm9qZWN0c1JlcXVlc3QaNi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0UHJvamVjdHNSZXNwb25zZRKDAQoOQXBwcm92ZUZyZWlnaHQSNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BcHByb3ZlRnJlaWdodFJlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5BcHByb3ZlRnJlaWdodFJlc3BvbnNlEoABCg1EZWxldGVGcmVpZ2h0EjYuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlRnJlaWdodFJlcXVlc3QaNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVGcmVpZ2h0UmVzcG9uc2USdwoKR2V0RnJlaWdodBIzLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEZyZWlnaHRSZXF1ZXN0GjQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuR2V0RnJlaWdodFJlc3BvbnNlEoMBCg5Qcm9tb3RlVG9TdGFnZRI3LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlByb21vdGVUb1N0YWdlUmVxdWVzdBo4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlByb21vdGVUb1N0YWdlUmVzcG9uc2USjAEKEVByb21vdGVEb3duc3RyZWFtEjouYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUHJvbW90ZURvd25zdHJlYW1SZXF1ZXN0GjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUHJvbW90ZURvd25zdHJlYW1SZXNwb25zZRJ9CgxRdWVyeUZyZWlnaHQSNS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5RdWVyeUZyZWlnaHRSZXF1ZXN0GjYuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUXVlcnlGcmVpZ2h0UmVzcG9uc2USjwEKElVwZGF0ZUZyZWlnaHRBbGlhcxI7LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlVwZGF0ZUZyZWlnaHRBbGlhc1JlcXVlc3QaPC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5VcGRhdGVGcmVpZ2h0QWxpYXNSZXNwb25zZRJxCghSZXZlcmlmeRIxLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJldmVyaWZ5UmVxdWVzdBoyLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJldmVyaWZ5UmVzcG9uc2USjAEKEUFib3J0VmVyaWZpY2F0aW9uEjouYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQWJvcnRWZXJpZmljYXRpb25SZXF1ZXN0GjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQWJvcnRWZXJpZmljYXRpb25SZXNwb25zZRKDAQoOTGlzdFdhcmVob3VzZXMSNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0V2FyZWhvdXNlc1JlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0V2FyZWhvdXNlc1Jlc3BvbnNlEn0KDEdldFdhcmVob3VzZRI1LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFdhcmVob3VzZVJlcXVlc3QaNi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRXYXJlaG91c2VSZXNwb25zZRKIAQoPV2F0Y2hXYXJlaG91c2VzEjguYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuV2F0Y2hXYXJlaG91c2VzUmVxdWVzdBo5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLldhdGNoV2FyZWhvdXNlc1Jlc3BvbnNlMAEShgEKD0RlbGV0ZVdhcmVob3VzZRI4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZVdhcmVob3VzZVJlcXVlc3QaOS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5EZWxldGVXYXJlaG91c2VSZXNwb25zZRKJAQoQUmVmcmVzaFdhcmVob3VzZRI5LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJlZnJlc2hXYXJlaG91c2VSZXF1ZXN0GjouYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuUmVmcmVzaFdhcmVob3VzZVJlc3BvbnNlEowBChFDcmVhdGVDcmVkZW50aWFscxI6LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkNyZWF0ZUNyZWRlbnRpYWxzUmVxdWVzdBo7LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkNyZWF0ZUNyZWRlbnRpYWxzUmVzcG9uc2USjAEKEURlbGV0ZUNyZWRlbnRpYWxzEjouYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlQ3JlZGVudGlhbHNSZXF1ZXN0GjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlQ3JlZGVudGlhbHNSZXNwb25zZRKDAQoOR2V0Q3JlZGVudGlhbHMSNy5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRDcmVkZW50aWFsc1JlcXVlc3QaOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRDcmVkZW50aWFsc1Jlc3BvbnNlEoYBCg9MaXN0Q3JlZGVudGlhbHMSOC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0Q3JlZGVudGlhbHNSZXF1ZXN0GjkuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdENyZWRlbnRpYWxzUmVzcG9uc2USjAEKEVVwZGF0ZUNyZWRlbnRpYWxzEjouYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlQ3JlZGVudGlhbHNSZXF1ZXN0GjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlQ3JlZGVudGlhbHNSZXNwb25zZRKPAQoSTGlzdFByb2plY3RTZWNyZXRzEjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFByb2plY3RTZWNyZXRzUmVxdWVzdBo8LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RQcm9qZWN0U2VjcmV0c1Jlc3BvbnNlEpIBChNDcmVhdGVQcm9qZWN0U2VjcmV0EjwuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlUHJvamVjdFNlY3JldFJlcXVlc3QaPS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVQcm9qZWN0U2VjcmV0UmVzcG9uc2USkgEKE1VwZGF0ZVByb2plY3RTZWNyZXQSPC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5VcGRhdGVQcm9qZWN0U2VjcmV0UmVxdWVzdBo9LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlVwZGF0ZVByb2plY3RTZWNyZXRSZXNwb25zZRKSAQoTRGVsZXRlUHJvamVjdFNlY3JldBI8LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZVByb2plY3RTZWNyZXRSZXF1ZXN0Gj0uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlUHJvamVjdFNlY3JldFJlc3BvbnNlEpgBChVMaXN0QW5hbHlzaXNUZW1wbGF0ZXMSPi5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5MaXN0QW5hbHlzaXNUZW1wbGF0ZXNSZXF1ZXN0Gj8uYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdEFuYWx5c2lzVGVtcGxhdGVzUmVzcG9uc2USkgEKE0dldEFuYWx5c2lzVGVtcGxhdGUSPC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRBbmFseXNpc1RlbXBsYXRlUmVxdWVzdBo9LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEFuYWx5c2lzVGVtcGxhdGVSZXNwb25zZRKbAQoWRGVsZXRlQW5hbHlzaXNUZW1wbGF0ZRI/LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZUFuYWx5c2lzVGVtcGxhdGVSZXF1ZXN0GkAuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlQW5hbHlzaXNUZW1wbGF0ZVJlc3BvbnNlEoMBCg5HZXRBbmFseXNpc1J1bhI3LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEFuYWx5c2lzUnVuUmVxdWVzdBo4LmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldEFuYWx5c2lzUnVuUmVzcG9uc2USjAEKEUxpc3RQcm9qZWN0RXZlbnRzEjouYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFByb2plY3RFdmVudHNSZXF1ZXN0GjsuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFByb2plY3RFdmVudHNSZXNwb25zZRJ3CgpDcmVhdGVSb2xlEjMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuQ3JlYXRlUm9sZVJlcXVlc3QaNC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5DcmVhdGVSb2xlUmVzcG9uc2USdwoKRGVsZXRlUm9sZRIzLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkRlbGV0ZVJvbGVSZXF1ZXN0GjQuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuRGVsZXRlUm9sZVJlc3BvbnNlEm4KB0dldFJvbGUSMC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5HZXRSb2xlUmVxdWVzdBoxLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdldFJvbGVSZXNwb25zZRJoCgVHcmFudBIuLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdyYW50UmVxdWVzdBovLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkdyYW50UmVzcG9uc2USdAoJTGlzdFJvbGVzEjIuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuTGlzdFJvbGVzUmVxdWVzdBozLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLkxpc3RSb2xlc1Jlc3BvbnNlEmsKBlJldm9rZRIvLmFrdWl0eS5pby5rYXJnby5zZXJ2aWNlLnYxYWxwaGExLlJldm9rZVJlcXVlc3QaMC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5SZXZva2VSZXNwb25zZRJ3CgpVcGRhdGVSb2xlEjMuYWt1aXR5LmlvLmthcmdvLnNlcnZpY2UudjFhbHBoYTEuVXBkYXRlUm9sZVJlcXVlc3QaNC5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMS5VcGRhdGVSb2xlUmVzcG9uc2VClwIKJGNvbS5ha3VpdHkuaW8ua2FyZ28uc2VydmljZS52MWFscGhhMUIMU2VydmljZVByb3RvUAFaPGdpdGh1Yi5jb20vYWt1aXR5L2thcmdvL3BrZy9hcGkvc2VydmljZS92MWFscGhhMTtzdmN2MWFscGhhMaICBEFJS1OqAiBBa3VpdHkuSW8uS2FyZ28uU2VydmljZS5WMWFscGhhMcoCIEFrdWl0eVxJb1xLYXJnb1xTZXJ2aWNlXFYxYWxwaGEx4gIsQWt1aXR5XElvXEthcmdvXFNlcnZpY2VcVjFhbHBoYTFcR1BCTWV0YWRhdGHqAiRBa3VpdHk6OklvOjpLYXJnbzo6U2VydmljZTo6VjFhbHBoYTFiBnByb3RvMw", [file_google_protobuf_timestamp, file_v1alpha1_generated, file_k8s_io_api_core_v1_generated, file_rollouts_api_v1alpha1_generated, file_rbac_v1alpha1_generated]); /** * @generated from message akuity.io.kargo.service.v1alpha1.ComponentVersions @@ -2840,186 +2840,6 @@ export type UpdateRoleResponse = Message<"akuity.io.kargo.service.v1alpha1.Updat export const UpdateRoleResponseSchema: GenMessage = /*@__PURE__*/ messageDesc(file_service_v1alpha1_service, 125); -/** - * @generated from message akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateConfigMapsRequest - */ -export type ListAnalysisTemplateConfigMapsRequest = Message<"akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateConfigMapsRequest"> & { - /** - * @generated from field: string project = 1; - */ - project: string; -}; - -/** - * Describes the message akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateConfigMapsRequest. - * Use `create(ListAnalysisTemplateConfigMapsRequestSchema)` to create a new message. - */ -export const ListAnalysisTemplateConfigMapsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_service_v1alpha1_service, 126); - -/** - * @generated from message akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateConfigMapsResponse - */ -export type ListAnalysisTemplateConfigMapsResponse = Message<"akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateConfigMapsResponse"> & { - /** - * @generated from field: repeated k8s.io.api.core.v1.ConfigMap config_maps = 1; - */ - configMaps: ConfigMap[]; -}; - -/** - * Describes the message akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateConfigMapsResponse. - * Use `create(ListAnalysisTemplateConfigMapsResponseSchema)` to create a new message. - */ -export const ListAnalysisTemplateConfigMapsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_service_v1alpha1_service, 127); - -/** - * @generated from message akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateConfigMapRequest - */ -export type GetAnalysisTemplateConfigMapRequest = Message<"akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateConfigMapRequest"> & { - /** - * @generated from field: string project = 1; - */ - project: string; - - /** - * @generated from field: string name = 2; - */ - name: string; - - /** - * @generated from field: akuity.io.kargo.service.v1alpha1.RawFormat format = 3; - */ - format: RawFormat; -}; - -/** - * Describes the message akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateConfigMapRequest. - * Use `create(GetAnalysisTemplateConfigMapRequestSchema)` to create a new message. - */ -export const GetAnalysisTemplateConfigMapRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_service_v1alpha1_service, 128); - -/** - * @generated from message akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateConfigMapResponse - */ -export type GetAnalysisTemplateConfigMapResponse = Message<"akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateConfigMapResponse"> & { - /** - * @generated from oneof akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateConfigMapResponse.result - */ - result: { - /** - * @generated from field: k8s.io.api.core.v1.ConfigMap config_map = 1; - */ - value: ConfigMap; - case: "configMap"; - } | { - /** - * @generated from field: bytes raw = 2; - */ - value: Uint8Array; - case: "raw"; - } | { case: undefined; value?: undefined }; -}; - -/** - * Describes the message akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateConfigMapResponse. - * Use `create(GetAnalysisTemplateConfigMapResponseSchema)` to create a new message. - */ -export const GetAnalysisTemplateConfigMapResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_service_v1alpha1_service, 129); - -/** - * @generated from message akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateSecretsRequest - */ -export type ListAnalysisTemplateSecretsRequest = Message<"akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateSecretsRequest"> & { - /** - * @generated from field: string project = 1; - */ - project: string; -}; - -/** - * Describes the message akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateSecretsRequest. - * Use `create(ListAnalysisTemplateSecretsRequestSchema)` to create a new message. - */ -export const ListAnalysisTemplateSecretsRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_service_v1alpha1_service, 130); - -/** - * @generated from message akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateSecretsResponse - */ -export type ListAnalysisTemplateSecretsResponse = Message<"akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateSecretsResponse"> & { - /** - * @generated from field: repeated k8s.io.api.core.v1.Secret secrets = 1; - */ - secrets: Secret[]; -}; - -/** - * Describes the message akuity.io.kargo.service.v1alpha1.ListAnalysisTemplateSecretsResponse. - * Use `create(ListAnalysisTemplateSecretsResponseSchema)` to create a new message. - */ -export const ListAnalysisTemplateSecretsResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_service_v1alpha1_service, 131); - -/** - * @generated from message akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateSecretRequest - */ -export type GetAnalysisTemplateSecretRequest = Message<"akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateSecretRequest"> & { - /** - * @generated from field: string project = 1; - */ - project: string; - - /** - * @generated from field: string name = 2; - */ - name: string; - - /** - * @generated from field: akuity.io.kargo.service.v1alpha1.RawFormat format = 3; - */ - format: RawFormat; -}; - -/** - * Describes the message akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateSecretRequest. - * Use `create(GetAnalysisTemplateSecretRequestSchema)` to create a new message. - */ -export const GetAnalysisTemplateSecretRequestSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_service_v1alpha1_service, 132); - -/** - * @generated from message akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateSecretResponse - */ -export type GetAnalysisTemplateSecretResponse = Message<"akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateSecretResponse"> & { - /** - * @generated from oneof akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateSecretResponse.result - */ - result: { - /** - * @generated from field: k8s.io.api.core.v1.Secret secret = 1; - */ - value: Secret; - case: "secret"; - } | { - /** - * @generated from field: bytes raw = 2; - */ - value: Uint8Array; - case: "raw"; - } | { case: undefined; value?: undefined }; -}; - -/** - * Describes the message akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateSecretResponse. - * Use `create(GetAnalysisTemplateSecretResponseSchema)` to create a new message. - */ -export const GetAnalysisTemplateSecretResponseSchema: GenMessage = /*@__PURE__*/ - messageDesc(file_service_v1alpha1_service, 133); - /** * @generated from enum akuity.io.kargo.service.v1alpha1.RawFormat */ @@ -3445,38 +3265,6 @@ export const KargoService: GenService<{ input: typeof GetAnalysisRunRequestSchema; output: typeof GetAnalysisRunResponseSchema; }, - /** - * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplateConfigMaps - */ - listAnalysisTemplateConfigMaps: { - methodKind: "unary"; - input: typeof ListAnalysisTemplateConfigMapsRequestSchema; - output: typeof ListAnalysisTemplateConfigMapsResponseSchema; - }, - /** - * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplateConfigMap - */ - getAnalysisTemplateConfigMap: { - methodKind: "unary"; - input: typeof GetAnalysisTemplateConfigMapRequestSchema; - output: typeof GetAnalysisTemplateConfigMapResponseSchema; - }, - /** - * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplateSecrets - */ - listAnalysisTemplateSecrets: { - methodKind: "unary"; - input: typeof ListAnalysisTemplateSecretsRequestSchema; - output: typeof ListAnalysisTemplateSecretsResponseSchema; - }, - /** - * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplateSecret - */ - getAnalysisTemplateSecret: { - methodKind: "unary"; - input: typeof GetAnalysisTemplateSecretRequestSchema; - output: typeof GetAnalysisTemplateSecretResponseSchema; - }, /** * @generated from rpc akuity.io.kargo.service.v1alpha1.KargoService.ListProjectEvents */