// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.33.0
// 	protoc        (unknown)
// source: api/service/v1alpha1/service.proto

package svcv1alpha1

import (
	v1alpha12 "github.com/akuity/kargo/api/rbac/v1alpha1"
	v1alpha11 "github.com/akuity/kargo/api/stubs/rollouts/v1alpha1"
	v1alpha1 "github.com/akuity/kargo/api/v1alpha1"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	v1 "k8s.io/api/core/v1"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// RawFormat specifies the format for raw resource representation.
type RawFormat int32

const (
	// RAW_FORMAT_UNSPECIFIED indicates no specific format is requested.
	RawFormat_RAW_FORMAT_UNSPECIFIED RawFormat = 0
	// RAW_FORMAT_JSON requests JSON format for raw resources.
	RawFormat_RAW_FORMAT_JSON RawFormat = 1
	// RAW_FORMAT_YAML requests YAML format for raw resources.
	RawFormat_RAW_FORMAT_YAML RawFormat = 2
)

// Enum value maps for RawFormat.
var (
	RawFormat_name = map[int32]string{
		0: "RAW_FORMAT_UNSPECIFIED",
		1: "RAW_FORMAT_JSON",
		2: "RAW_FORMAT_YAML",
	}
	RawFormat_value = map[string]int32{
		"RAW_FORMAT_UNSPECIFIED": 0,
		"RAW_FORMAT_JSON":        1,
		"RAW_FORMAT_YAML":        2,
	}
)

func (x RawFormat) Enum() *RawFormat {
	p := new(RawFormat)
	*p = x
	return p
}

func (x RawFormat) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (RawFormat) Descriptor() protoreflect.EnumDescriptor {
	return file_api_service_v1alpha1_service_proto_enumTypes[0].Descriptor()
}

func (RawFormat) Type() protoreflect.EnumType {
	return &file_api_service_v1alpha1_service_proto_enumTypes[0]
}

func (x RawFormat) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use RawFormat.Descriptor instead.
func (RawFormat) EnumDescriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{0}
}

// ComponentVersions contains version information for different Kargo components.
type ComponentVersions struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// server contains version information for the Kargo server.
	Server *VersionInfo `protobuf:"bytes,1,opt,name=server,proto3,oneof" json:"server,omitempty"`
	// cli contains version information for the Kargo CLI.
	Cli *VersionInfo `protobuf:"bytes,2,opt,name=cli,proto3,oneof" json:"cli,omitempty"`
}

func (x *ComponentVersions) Reset() {
	*x = ComponentVersions{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ComponentVersions) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ComponentVersions) ProtoMessage() {}

func (x *ComponentVersions) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ComponentVersions.ProtoReflect.Descriptor instead.
func (*ComponentVersions) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{0}
}

func (x *ComponentVersions) GetServer() *VersionInfo {
	if x != nil {
		return x.Server
	}
	return nil
}

func (x *ComponentVersions) GetCli() *VersionInfo {
	if x != nil {
		return x.Cli
	}
	return nil
}

// VersionInfo contains detailed version and build information for a Kargo component.
type VersionInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// version is the semantic version string.
	Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
	// git_commit is the Git commit hash used for the build.
	GitCommit string `protobuf:"bytes,2,opt,name=git_commit,json=gitCommit,proto3" json:"git_commit,omitempty"`
	// git_tree_dirty indicates whether the Git working tree was dirty during build.
	GitTreeDirty bool `protobuf:"varint,3,opt,name=git_tree_dirty,json=gitTreeDirty,proto3" json:"git_tree_dirty,omitempty"`
	// build_time is the timestamp when the build was created.
	BuildTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=build_time,json=buildTime,proto3" json:"build_time,omitempty"`
	// go_version is the Go version used for the build.
	GoVersion string `protobuf:"bytes,5,opt,name=go_version,json=goVersion,proto3" json:"go_version,omitempty"`
	// compiler is the compiler used for the build.
	Compiler string `protobuf:"bytes,6,opt,name=compiler,proto3" json:"compiler,omitempty"`
	// platform is the target platform for the build.
	Platform string `protobuf:"bytes,7,opt,name=platform,proto3" json:"platform,omitempty"`
}

func (x *VersionInfo) Reset() {
	*x = VersionInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *VersionInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*VersionInfo) ProtoMessage() {}

func (x *VersionInfo) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use VersionInfo.ProtoReflect.Descriptor instead.
func (*VersionInfo) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{1}
}

func (x *VersionInfo) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

func (x *VersionInfo) GetGitCommit() string {
	if x != nil {
		return x.GitCommit
	}
	return ""
}

func (x *VersionInfo) GetGitTreeDirty() bool {
	if x != nil {
		return x.GitTreeDirty
	}
	return false
}

func (x *VersionInfo) GetBuildTime() *timestamppb.Timestamp {
	if x != nil {
		return x.BuildTime
	}
	return nil
}

func (x *VersionInfo) GetGoVersion() string {
	if x != nil {
		return x.GoVersion
	}
	return ""
}

func (x *VersionInfo) GetCompiler() string {
	if x != nil {
		return x.Compiler
	}
	return ""
}

func (x *VersionInfo) GetPlatform() string {
	if x != nil {
		return x.Platform
	}
	return ""
}

// GetVersionInfoRequest is the request message for retrieving version information.
type GetVersionInfoRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *GetVersionInfoRequest) Reset() {
	*x = GetVersionInfoRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetVersionInfoRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetVersionInfoRequest) ProtoMessage() {}

func (x *GetVersionInfoRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetVersionInfoRequest.ProtoReflect.Descriptor instead.
func (*GetVersionInfoRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{2}
}

// GetVersionInfoResponse contains the server's version information.
type GetVersionInfoResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// version_info contains detailed version and build information.
	VersionInfo *VersionInfo `protobuf:"bytes,1,opt,name=version_info,json=versionInfo,proto3" json:"version_info,omitempty"`
}

func (x *GetVersionInfoResponse) Reset() {
	*x = GetVersionInfoResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetVersionInfoResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetVersionInfoResponse) ProtoMessage() {}

func (x *GetVersionInfoResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetVersionInfoResponse.ProtoReflect.Descriptor instead.
func (*GetVersionInfoResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{3}
}

func (x *GetVersionInfoResponse) GetVersionInfo() *VersionInfo {
	if x != nil {
		return x.VersionInfo
	}
	return nil
}

// GetConfigRequest is the request message for retrieving server configuration.
type GetConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *GetConfigRequest) Reset() {
	*x = GetConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetConfigRequest) ProtoMessage() {}

func (x *GetConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetConfigRequest.ProtoReflect.Descriptor instead.
func (*GetConfigRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{4}
}

// ArgoCDShard represents configuration for a specific ArgoCD shard.
type ArgoCDShard struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// url is the base URL of the ArgoCD server.
	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	// namespace is the Kubernetes namespace where ArgoCD is installed.
	Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"`
}

func (x *ArgoCDShard) Reset() {
	*x = ArgoCDShard{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ArgoCDShard) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ArgoCDShard) ProtoMessage() {}

func (x *ArgoCDShard) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ArgoCDShard.ProtoReflect.Descriptor instead.
func (*ArgoCDShard) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{5}
}

func (x *ArgoCDShard) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *ArgoCDShard) GetNamespace() string {
	if x != nil {
		return x.Namespace
	}
	return ""
}

// GetConfigResponse contains server configuration information.
type GetConfigResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// argocd_shards maps shard names to their ArgoCD configuration.
	ArgocdShards map[string]*ArgoCDShard `protobuf:"bytes,1,rep,name=argocd_shards,json=argocdShards,proto3" json:"argocd_shards,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// secret_management_enabled indicates if secret management features are available.
	SecretManagementEnabled bool `protobuf:"varint,2,opt,name=secret_management_enabled,json=secretManagementEnabled,proto3" json:"secret_management_enabled,omitempty"`
	// cluster_secrets_namespace is the namespace used for cluster-scoped secrets.
	ClusterSecretsNamespace string `protobuf:"bytes,3,opt,name=cluster_secrets_namespace,json=clusterSecretsNamespace,proto3" json:"cluster_secrets_namespace,omitempty"`
	// has_analysis_run_logs_url_template indicates if an analysis run logs URL template is configured.
	HasAnalysisRunLogsUrlTemplate bool `protobuf:"varint,4,opt,name=has_analysis_run_logs_url_template,json=hasAnalysisRunLogsUrlTemplate,proto3" json:"has_analysis_run_logs_url_template,omitempty"`
}

func (x *GetConfigResponse) Reset() {
	*x = GetConfigResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetConfigResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetConfigResponse) ProtoMessage() {}

func (x *GetConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetConfigResponse.ProtoReflect.Descriptor instead.
func (*GetConfigResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{6}
}

func (x *GetConfigResponse) GetArgocdShards() map[string]*ArgoCDShard {
	if x != nil {
		return x.ArgocdShards
	}
	return nil
}

func (x *GetConfigResponse) GetSecretManagementEnabled() bool {
	if x != nil {
		return x.SecretManagementEnabled
	}
	return false
}

func (x *GetConfigResponse) GetClusterSecretsNamespace() string {
	if x != nil {
		return x.ClusterSecretsNamespace
	}
	return ""
}

func (x *GetConfigResponse) GetHasAnalysisRunLogsUrlTemplate() bool {
	if x != nil {
		return x.HasAnalysisRunLogsUrlTemplate
	}
	return false
}

// GetPublicConfigRequest is the request message for retrieving public configuration.
type GetPublicConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *GetPublicConfigRequest) Reset() {
	*x = GetPublicConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetPublicConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetPublicConfigRequest) ProtoMessage() {}

func (x *GetPublicConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetPublicConfigRequest.ProtoReflect.Descriptor instead.
func (*GetPublicConfigRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{7}
}

// GetPublicConfigResponse contains publicly accessible configuration settings.
type GetPublicConfigResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// oidc_config contains OpenID Connect configuration for authentication.
	OidcConfig *OIDCConfig `protobuf:"bytes,1,opt,name=oidc_config,json=oidcConfig,proto3" json:"oidc_config,omitempty"`
	// admin_account_enabled indicates if admin account authentication is available.
	AdminAccountEnabled bool `protobuf:"varint,2,opt,name=admin_account_enabled,json=adminAccountEnabled,proto3" json:"admin_account_enabled,omitempty"`
	// skip_auth indicates if authentication should be bypassed.
	SkipAuth bool `protobuf:"varint,3,opt,name=skip_auth,json=skipAuth,proto3" json:"skip_auth,omitempty"`
}

func (x *GetPublicConfigResponse) Reset() {
	*x = GetPublicConfigResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetPublicConfigResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetPublicConfigResponse) ProtoMessage() {}

func (x *GetPublicConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetPublicConfigResponse.ProtoReflect.Descriptor instead.
func (*GetPublicConfigResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{8}
}

func (x *GetPublicConfigResponse) GetOidcConfig() *OIDCConfig {
	if x != nil {
		return x.OidcConfig
	}
	return nil
}

func (x *GetPublicConfigResponse) GetAdminAccountEnabled() bool {
	if x != nil {
		return x.AdminAccountEnabled
	}
	return false
}

func (x *GetPublicConfigResponse) GetSkipAuth() bool {
	if x != nil {
		return x.SkipAuth
	}
	return false
}

// OIDCConfig contains OpenID Connect configuration for authentication.
type OIDCConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// issuer_url is the OIDC provider's issuer URL.
	IssuerUrl string `protobuf:"bytes,1,opt,name=issuer_url,json=issuerUrl,proto3" json:"issuer_url,omitempty"`
	// client_id is the OIDC client identifier for web applications.
	ClientId string `protobuf:"bytes,2,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
	// scopes are the OIDC scopes to request during authentication.
	Scopes []string `protobuf:"bytes,3,rep,name=scopes,proto3" json:"scopes,omitempty"`
	// cli_client_id is the OIDC client identifier for CLI applications.
	CliClientId string `protobuf:"bytes,4,opt,name=cli_client_id,json=cliClientId,proto3" json:"cli_client_id,omitempty"`
}

func (x *OIDCConfig) Reset() {
	*x = OIDCConfig{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *OIDCConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OIDCConfig) ProtoMessage() {}

func (x *OIDCConfig) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OIDCConfig.ProtoReflect.Descriptor instead.
func (*OIDCConfig) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{9}
}

func (x *OIDCConfig) GetIssuerUrl() string {
	if x != nil {
		return x.IssuerUrl
	}
	return ""
}

func (x *OIDCConfig) GetClientId() string {
	if x != nil {
		return x.ClientId
	}
	return ""
}

func (x *OIDCConfig) GetScopes() []string {
	if x != nil {
		return x.Scopes
	}
	return nil
}

func (x *OIDCConfig) GetCliClientId() string {
	if x != nil {
		return x.CliClientId
	}
	return ""
}

// AdminLoginRequest contains credentials for admin authentication.
type AdminLoginRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// password is the admin password.
	Password string `protobuf:"bytes,1,opt,name=password,proto3" json:"password,omitempty"`
}

func (x *AdminLoginRequest) Reset() {
	*x = AdminLoginRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AdminLoginRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AdminLoginRequest) ProtoMessage() {}

func (x *AdminLoginRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AdminLoginRequest.ProtoReflect.Descriptor instead.
func (*AdminLoginRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{10}
}

func (x *AdminLoginRequest) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

// AdminLoginResponse contains the authentication token for admin access.
type AdminLoginResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// id_token is the JWT token for authenticated admin access.
	IdToken string `protobuf:"bytes,1,opt,name=id_token,json=idToken,proto3" json:"id_token,omitempty"`
}

func (x *AdminLoginResponse) Reset() {
	*x = AdminLoginResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AdminLoginResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AdminLoginResponse) ProtoMessage() {}

func (x *AdminLoginResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AdminLoginResponse.ProtoReflect.Descriptor instead.
func (*AdminLoginResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{11}
}

func (x *AdminLoginResponse) GetIdToken() string {
	if x != nil {
		return x.IdToken
	}
	return ""
}

// CreateResourceRequest contains Kubernetes resource manifests to be created.
type CreateResourceRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// manifest contains the raw Kubernetes resource manifests in YAML or JSON format.
	Manifest []byte `protobuf:"bytes,1,opt,name=manifest,proto3" json:"manifest,omitempty"`
}

func (x *CreateResourceRequest) Reset() {
	*x = CreateResourceRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateResourceRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateResourceRequest) ProtoMessage() {}

func (x *CreateResourceRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[12]
	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 CreateResourceRequest.ProtoReflect.Descriptor instead.
func (*CreateResourceRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{12}
}

func (x *CreateResourceRequest) GetManifest() []byte {
	if x != nil {
		return x.Manifest
	}
	return nil
}

// CreateResourceResult represents the result of attempting to create a single resource.
type CreateResourceResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*CreateResourceResult_CreatedResourceManifest
	//	*CreateResourceResult_Error
	Result isCreateResourceResult_Result `protobuf_oneof:"result"`
}

func (x *CreateResourceResult) Reset() {
	*x = CreateResourceResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateResourceResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateResourceResult) ProtoMessage() {}

func (x *CreateResourceResult) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[13]
	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 CreateResourceResult.ProtoReflect.Descriptor instead.
func (*CreateResourceResult) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{13}
}

func (m *CreateResourceResult) GetResult() isCreateResourceResult_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *CreateResourceResult) GetCreatedResourceManifest() []byte {
	if x, ok := x.GetResult().(*CreateResourceResult_CreatedResourceManifest); ok {
		return x.CreatedResourceManifest
	}
	return nil
}

func (x *CreateResourceResult) GetError() string {
	if x, ok := x.GetResult().(*CreateResourceResult_Error); ok {
		return x.Error
	}
	return ""
}

type isCreateResourceResult_Result interface {
	isCreateResourceResult_Result()
}

type CreateResourceResult_CreatedResourceManifest struct {
	// created_resource_manifest contains the successfully created resource manifest.
	CreatedResourceManifest []byte `protobuf:"bytes,1,opt,name=created_resource_manifest,json=createdResourceManifest,proto3,oneof"`
}

type CreateResourceResult_Error struct {
	// error contains the error message if resource creation failed.
	Error string `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}

func (*CreateResourceResult_CreatedResourceManifest) isCreateResourceResult_Result() {}

func (*CreateResourceResult_Error) isCreateResourceResult_Result() {}

// CreateResourceResponse contains the results of creating multiple resources.
type CreateResourceResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// results contains the outcome for each resource creation attempt.
	Results []*CreateResourceResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
}

func (x *CreateResourceResponse) Reset() {
	*x = CreateResourceResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateResourceResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateResourceResponse) ProtoMessage() {}

func (x *CreateResourceResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[14]
	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 CreateResourceResponse.ProtoReflect.Descriptor instead.
func (*CreateResourceResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{14}
}

func (x *CreateResourceResponse) GetResults() []*CreateResourceResult {
	if x != nil {
		return x.Results
	}
	return nil
}

// CreateOrUpdateResourceRequest contains Kubernetes resource manifests to be created or updated.
type CreateOrUpdateResourceRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// manifest contains the raw Kubernetes resource manifests in YAML or JSON format.
	Manifest []byte `protobuf:"bytes,1,opt,name=manifest,proto3" json:"manifest,omitempty"`
}

func (x *CreateOrUpdateResourceRequest) Reset() {
	*x = CreateOrUpdateResourceRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateOrUpdateResourceRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateOrUpdateResourceRequest) ProtoMessage() {}

func (x *CreateOrUpdateResourceRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[15]
	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 CreateOrUpdateResourceRequest.ProtoReflect.Descriptor instead.
func (*CreateOrUpdateResourceRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{15}
}

func (x *CreateOrUpdateResourceRequest) GetManifest() []byte {
	if x != nil {
		return x.Manifest
	}
	return nil
}

// CreateOrUpdateResourceResult represents the result of attempting to create or update a single resource.
type CreateOrUpdateResourceResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*CreateOrUpdateResourceResult_CreatedResourceManifest
	//	*CreateOrUpdateResourceResult_UpdatedResourceManifest
	//	*CreateOrUpdateResourceResult_Error
	Result isCreateOrUpdateResourceResult_Result `protobuf_oneof:"result"`
}

func (x *CreateOrUpdateResourceResult) Reset() {
	*x = CreateOrUpdateResourceResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateOrUpdateResourceResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateOrUpdateResourceResult) ProtoMessage() {}

func (x *CreateOrUpdateResourceResult) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[16]
	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 CreateOrUpdateResourceResult.ProtoReflect.Descriptor instead.
func (*CreateOrUpdateResourceResult) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{16}
}

func (m *CreateOrUpdateResourceResult) GetResult() isCreateOrUpdateResourceResult_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *CreateOrUpdateResourceResult) GetCreatedResourceManifest() []byte {
	if x, ok := x.GetResult().(*CreateOrUpdateResourceResult_CreatedResourceManifest); ok {
		return x.CreatedResourceManifest
	}
	return nil
}

func (x *CreateOrUpdateResourceResult) GetUpdatedResourceManifest() []byte {
	if x, ok := x.GetResult().(*CreateOrUpdateResourceResult_UpdatedResourceManifest); ok {
		return x.UpdatedResourceManifest
	}
	return nil
}

func (x *CreateOrUpdateResourceResult) GetError() string {
	if x, ok := x.GetResult().(*CreateOrUpdateResourceResult_Error); ok {
		return x.Error
	}
	return ""
}

type isCreateOrUpdateResourceResult_Result interface {
	isCreateOrUpdateResourceResult_Result()
}

type CreateOrUpdateResourceResult_CreatedResourceManifest struct {
	// created_resource_manifest contains the newly created resource manifest.
	CreatedResourceManifest []byte `protobuf:"bytes,1,opt,name=created_resource_manifest,json=createdResourceManifest,proto3,oneof"`
}

type CreateOrUpdateResourceResult_UpdatedResourceManifest struct {
	// updated_resource_manifest contains the updated existing resource manifest.
	UpdatedResourceManifest []byte `protobuf:"bytes,2,opt,name=updated_resource_manifest,json=updatedResourceManifest,proto3,oneof"`
}

type CreateOrUpdateResourceResult_Error struct {
	// error contains the error message if the operation failed.
	Error string `protobuf:"bytes,3,opt,name=error,proto3,oneof"`
}

func (*CreateOrUpdateResourceResult_CreatedResourceManifest) isCreateOrUpdateResourceResult_Result() {
}

func (*CreateOrUpdateResourceResult_UpdatedResourceManifest) isCreateOrUpdateResourceResult_Result() {
}

func (*CreateOrUpdateResourceResult_Error) isCreateOrUpdateResourceResult_Result() {}

// CreateOrUpdateResourceResponse contains the results of creating or updating multiple resources.
type CreateOrUpdateResourceResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// results contains the outcome for each resource create or update attempt.
	Results []*CreateOrUpdateResourceResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
}

func (x *CreateOrUpdateResourceResponse) Reset() {
	*x = CreateOrUpdateResourceResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateOrUpdateResourceResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateOrUpdateResourceResponse) ProtoMessage() {}

func (x *CreateOrUpdateResourceResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[17]
	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 CreateOrUpdateResourceResponse.ProtoReflect.Descriptor instead.
func (*CreateOrUpdateResourceResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{17}
}

func (x *CreateOrUpdateResourceResponse) GetResults() []*CreateOrUpdateResourceResult {
	if x != nil {
		return x.Results
	}
	return nil
}

// UpdateResourceRequest contains Kubernetes resource manifests to be updated.
type UpdateResourceRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// manifest contains the raw Kubernetes resource manifests in YAML or JSON format.
	Manifest []byte `protobuf:"bytes,1,opt,name=manifest,proto3" json:"manifest,omitempty"`
}

func (x *UpdateResourceRequest) Reset() {
	*x = UpdateResourceRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateResourceRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateResourceRequest) ProtoMessage() {}

func (x *UpdateResourceRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[18]
	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 UpdateResourceRequest.ProtoReflect.Descriptor instead.
func (*UpdateResourceRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{18}
}

func (x *UpdateResourceRequest) GetManifest() []byte {
	if x != nil {
		return x.Manifest
	}
	return nil
}

// UpdateResourceResult represents the result of attempting to update a single resource.
type UpdateResourceResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*UpdateResourceResult_UpdatedResourceManifest
	//	*UpdateResourceResult_Error
	Result isUpdateResourceResult_Result `protobuf_oneof:"result"`
}

func (x *UpdateResourceResult) Reset() {
	*x = UpdateResourceResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateResourceResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateResourceResult) ProtoMessage() {}

func (x *UpdateResourceResult) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[19]
	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 UpdateResourceResult.ProtoReflect.Descriptor instead.
func (*UpdateResourceResult) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{19}
}

func (m *UpdateResourceResult) GetResult() isUpdateResourceResult_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *UpdateResourceResult) GetUpdatedResourceManifest() []byte {
	if x, ok := x.GetResult().(*UpdateResourceResult_UpdatedResourceManifest); ok {
		return x.UpdatedResourceManifest
	}
	return nil
}

func (x *UpdateResourceResult) GetError() string {
	if x, ok := x.GetResult().(*UpdateResourceResult_Error); ok {
		return x.Error
	}
	return ""
}

type isUpdateResourceResult_Result interface {
	isUpdateResourceResult_Result()
}

type UpdateResourceResult_UpdatedResourceManifest struct {
	// updated_resource_manifest contains the successfully updated resource manifest.
	UpdatedResourceManifest []byte `protobuf:"bytes,1,opt,name=updated_resource_manifest,json=updatedResourceManifest,proto3,oneof"`
}

type UpdateResourceResult_Error struct {
	// error contains the error message if resource update failed.
	Error string `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}

func (*UpdateResourceResult_UpdatedResourceManifest) isUpdateResourceResult_Result() {}

func (*UpdateResourceResult_Error) isUpdateResourceResult_Result() {}

// UpdateResourceResponse contains the results of updating multiple resources.
type UpdateResourceResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// results contains the outcome for each resource update attempt.
	Results []*UpdateResourceResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
}

func (x *UpdateResourceResponse) Reset() {
	*x = UpdateResourceResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateResourceResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateResourceResponse) ProtoMessage() {}

func (x *UpdateResourceResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[20]
	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 UpdateResourceResponse.ProtoReflect.Descriptor instead.
func (*UpdateResourceResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{20}
}

func (x *UpdateResourceResponse) GetResults() []*UpdateResourceResult {
	if x != nil {
		return x.Results
	}
	return nil
}

// DeleteResourceRequest contains Kubernetes resource manifests to be deleted.
type DeleteResourceRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// manifest contains the raw Kubernetes resource manifests in YAML or JSON format.
	Manifest []byte `protobuf:"bytes,1,opt,name=manifest,proto3" json:"manifest,omitempty"`
}

func (x *DeleteResourceRequest) Reset() {
	*x = DeleteResourceRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteResourceRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteResourceRequest) ProtoMessage() {}

func (x *DeleteResourceRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[21]
	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 DeleteResourceRequest.ProtoReflect.Descriptor instead.
func (*DeleteResourceRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{21}
}

func (x *DeleteResourceRequest) GetManifest() []byte {
	if x != nil {
		return x.Manifest
	}
	return nil
}

// DeleteResourceResult represents the result of attempting to delete a single resource.
type DeleteResourceResult struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*DeleteResourceResult_DeletedResourceManifest
	//	*DeleteResourceResult_Error
	Result isDeleteResourceResult_Result `protobuf_oneof:"result"`
}

func (x *DeleteResourceResult) Reset() {
	*x = DeleteResourceResult{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteResourceResult) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteResourceResult) ProtoMessage() {}

func (x *DeleteResourceResult) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[22]
	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 DeleteResourceResult.ProtoReflect.Descriptor instead.
func (*DeleteResourceResult) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{22}
}

func (m *DeleteResourceResult) GetResult() isDeleteResourceResult_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *DeleteResourceResult) GetDeletedResourceManifest() []byte {
	if x, ok := x.GetResult().(*DeleteResourceResult_DeletedResourceManifest); ok {
		return x.DeletedResourceManifest
	}
	return nil
}

func (x *DeleteResourceResult) GetError() string {
	if x, ok := x.GetResult().(*DeleteResourceResult_Error); ok {
		return x.Error
	}
	return ""
}

type isDeleteResourceResult_Result interface {
	isDeleteResourceResult_Result()
}

type DeleteResourceResult_DeletedResourceManifest struct {
	// deleted_resource_manifest contains the successfully deleted resource manifest.
	DeletedResourceManifest []byte `protobuf:"bytes,1,opt,name=deleted_resource_manifest,json=deletedResourceManifest,proto3,oneof"`
}

type DeleteResourceResult_Error struct {
	// error contains the error message if resource deletion failed.
	Error string `protobuf:"bytes,2,opt,name=error,proto3,oneof"`
}

func (*DeleteResourceResult_DeletedResourceManifest) isDeleteResourceResult_Result() {}

func (*DeleteResourceResult_Error) isDeleteResourceResult_Result() {}

// DeleteResourceResponse contains the results of deleting multiple resources.
type DeleteResourceResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// results contains the outcome for each resource deletion attempt.
	Results []*DeleteResourceResult `protobuf:"bytes,1,rep,name=results,proto3" json:"results,omitempty"`
}

func (x *DeleteResourceResponse) Reset() {
	*x = DeleteResourceResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteResourceResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteResourceResponse) ProtoMessage() {}

func (x *DeleteResourceResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[23]
	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 DeleteResourceResponse.ProtoReflect.Descriptor instead.
func (*DeleteResourceResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{23}
}

func (x *DeleteResourceResponse) GetResults() []*DeleteResourceResult {
	if x != nil {
		return x.Results
	}
	return nil
}

// ListStagesRequest is the request for listing stages within a project.
type ListStagesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project whose stages should be listed.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
}

func (x *ListStagesRequest) Reset() {
	*x = ListStagesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListStagesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListStagesRequest) ProtoMessage() {}

func (x *ListStagesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[24]
	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 ListStagesRequest.ProtoReflect.Descriptor instead.
func (*ListStagesRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{24}
}

func (x *ListStagesRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

// ListStagesResponse contains a list of stages within a project.
type ListStagesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// stages is the list of Stage resources found in the project.
	Stages []*v1alpha1.Stage `protobuf:"bytes,1,rep,name=stages,proto3" json:"stages,omitempty"`
}

func (x *ListStagesResponse) Reset() {
	*x = ListStagesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListStagesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListStagesResponse) ProtoMessage() {}

func (x *ListStagesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[25]
	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 ListStagesResponse.ProtoReflect.Descriptor instead.
func (*ListStagesResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{25}
}

func (x *ListStagesResponse) GetStages() []*v1alpha1.Stage {
	if x != nil {
		return x.Stages
	}
	return nil
}

// ListImagesRequest is the request for listing images and their usage across stages.
type ListImagesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project whose images should be listed.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
}

func (x *ListImagesRequest) Reset() {
	*x = ListImagesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListImagesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListImagesRequest) ProtoMessage() {}

func (x *ListImagesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[26]
	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 ListImagesRequest.ProtoReflect.Descriptor instead.
func (*ListImagesRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{26}
}

func (x *ListImagesRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

// ListImagesResponse contains information about images and their usage across stages.
type ListImagesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// images maps image repository names to their tags and stage usage information.
	Images map[string]*TagMap `protobuf:"bytes,2,rep,name=images,proto3" json:"images,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *ListImagesResponse) Reset() {
	*x = ListImagesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListImagesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListImagesResponse) ProtoMessage() {}

func (x *ListImagesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[27]
	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 ListImagesResponse.ProtoReflect.Descriptor instead.
func (*ListImagesResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{27}
}

func (x *ListImagesResponse) GetImages() map[string]*TagMap {
	if x != nil {
		return x.Images
	}
	return nil
}

// TagMap represents the mapping of image tags to stages that have used them.
type TagMap struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// tags maps image tag names to stages which have previously used that tag.
	Tags map[string]*ImageStageMap `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *TagMap) Reset() {
	*x = TagMap{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *TagMap) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TagMap) ProtoMessage() {}

func (x *TagMap) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[28]
	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 TagMap.ProtoReflect.Descriptor instead.
func (*TagMap) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{28}
}

func (x *TagMap) GetTags() map[string]*ImageStageMap {
	if x != nil {
		return x.Tags
	}
	return nil
}

// ImageStageMap represents the mapping of stages to the order in which an image was promoted.
type ImageStageMap struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// stages maps stage names to the order in which an image was promoted to that stage.
	Stages map[string]int32 `protobuf:"bytes,1,rep,name=stages,proto3" json:"stages,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"`
}

func (x *ImageStageMap) Reset() {
	*x = ImageStageMap{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ImageStageMap) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ImageStageMap) ProtoMessage() {}

func (x *ImageStageMap) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[29]
	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 ImageStageMap.ProtoReflect.Descriptor instead.
func (*ImageStageMap) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{29}
}

func (x *ImageStageMap) GetStages() map[string]int32 {
	if x != nil {
		return x.Stages
	}
	return nil
}

// GetStageRequest is the request for retrieving details of a specific stage.
type GetStageRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the stage.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the stage to retrieve.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// format specifies the format for raw resource representation.
	Format RawFormat `protobuf:"varint,3,opt,name=format,proto3,enum=akuity.io.kargo.service.v1alpha1.RawFormat" json:"format,omitempty"`
}

func (x *GetStageRequest) Reset() {
	*x = GetStageRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetStageRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetStageRequest) ProtoMessage() {}

func (x *GetStageRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[30]
	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 GetStageRequest.ProtoReflect.Descriptor instead.
func (*GetStageRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{30}
}

func (x *GetStageRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *GetStageRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetStageRequest) GetFormat() RawFormat {
	if x != nil {
		return x.Format
	}
	return RawFormat_RAW_FORMAT_UNSPECIFIED
}

// GetStageResponse contains the requested stage information.
type GetStageResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*GetStageResponse_Stage
	//	*GetStageResponse_Raw
	Result isGetStageResponse_Result `protobuf_oneof:"result"`
}

func (x *GetStageResponse) Reset() {
	*x = GetStageResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetStageResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetStageResponse) ProtoMessage() {}

func (x *GetStageResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[31]
	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 GetStageResponse.ProtoReflect.Descriptor instead.
func (*GetStageResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{31}
}

func (m *GetStageResponse) GetResult() isGetStageResponse_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *GetStageResponse) GetStage() *v1alpha1.Stage {
	if x, ok := x.GetResult().(*GetStageResponse_Stage); ok {
		return x.Stage
	}
	return nil
}

func (x *GetStageResponse) GetRaw() []byte {
	if x, ok := x.GetResult().(*GetStageResponse_Raw); ok {
		return x.Raw
	}
	return nil
}

type isGetStageResponse_Result interface {
	isGetStageResponse_Result()
}

type GetStageResponse_Stage struct {
	// stage contains the Stage resource in structured format.
	Stage *v1alpha1.Stage `protobuf:"bytes,1,opt,name=stage,proto3,oneof"`
}

type GetStageResponse_Raw struct {
	// raw contains the Stage resource in the requested raw format.
	Raw []byte `protobuf:"bytes,2,opt,name=raw,proto3,oneof"`
}

func (*GetStageResponse_Stage) isGetStageResponse_Result() {}

func (*GetStageResponse_Raw) isGetStageResponse_Result() {}

// WatchStagesRequest is the request for watching stage changes via streaming.
type WatchStagesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project whose stages should be watched.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of a specific stage to watch, if empty all stages in the project are watched.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *WatchStagesRequest) Reset() {
	*x = WatchStagesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WatchStagesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WatchStagesRequest) ProtoMessage() {}

func (x *WatchStagesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[32]
	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 WatchStagesRequest.ProtoReflect.Descriptor instead.
func (*WatchStagesRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{32}
}

func (x *WatchStagesRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *WatchStagesRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// WatchStagesResponse contains stage change notifications.
type WatchStagesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// stage is the Stage resource that changed.
	Stage *v1alpha1.Stage `protobuf:"bytes,1,opt,name=stage,proto3" json:"stage,omitempty"`
	// type indicates the type of change (ADDED, MODIFIED, DELETED).
	Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
}

func (x *WatchStagesResponse) Reset() {
	*x = WatchStagesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WatchStagesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WatchStagesResponse) ProtoMessage() {}

func (x *WatchStagesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[33]
	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 WatchStagesResponse.ProtoReflect.Descriptor instead.
func (*WatchStagesResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{33}
}

func (x *WatchStagesResponse) GetStage() *v1alpha1.Stage {
	if x != nil {
		return x.Stage
	}
	return nil
}

func (x *WatchStagesResponse) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

// DeleteStageRequest is the request for deleting a stage.
type DeleteStageRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the stage.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the stage to delete.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *DeleteStageRequest) Reset() {
	*x = DeleteStageRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteStageRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteStageRequest) ProtoMessage() {}

func (x *DeleteStageRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[34]
	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 DeleteStageRequest.ProtoReflect.Descriptor instead.
func (*DeleteStageRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{34}
}

func (x *DeleteStageRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *DeleteStageRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// DeleteStageResponse is the response after deleting a stage.
type DeleteStageResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DeleteStageResponse) Reset() {
	*x = DeleteStageResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteStageResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteStageResponse) ProtoMessage() {}

func (x *DeleteStageResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[35]
	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 DeleteStageResponse.ProtoReflect.Descriptor instead.
func (*DeleteStageResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{35}
}

// RefreshStageRequest is the request for refreshing a stage's status.
type RefreshStageRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the stage.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the stage to refresh.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *RefreshStageRequest) Reset() {
	*x = RefreshStageRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshStageRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshStageRequest) ProtoMessage() {}

func (x *RefreshStageRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[36]
	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 RefreshStageRequest.ProtoReflect.Descriptor instead.
func (*RefreshStageRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{36}
}

func (x *RefreshStageRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *RefreshStageRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// RefreshStageResponse contains the refreshed stage information.
type RefreshStageResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// stage is the refreshed Stage resource.
	Stage *v1alpha1.Stage `protobuf:"bytes,1,opt,name=stage,proto3" json:"stage,omitempty"`
}

func (x *RefreshStageResponse) Reset() {
	*x = RefreshStageResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshStageResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshStageResponse) ProtoMessage() {}

func (x *RefreshStageResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[37]
	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 RefreshStageResponse.ProtoReflect.Descriptor instead.
func (*RefreshStageResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{37}
}

func (x *RefreshStageResponse) GetStage() *v1alpha1.Stage {
	if x != nil {
		return x.Stage
	}
	return nil
}

type GetClusterConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Format RawFormat `protobuf:"varint,1,opt,name=format,proto3,enum=akuity.io.kargo.service.v1alpha1.RawFormat" json:"format,omitempty"`
}

func (x *GetClusterConfigRequest) Reset() {
	*x = GetClusterConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetClusterConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetClusterConfigRequest) ProtoMessage() {}

func (x *GetClusterConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[38]
	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 GetClusterConfigRequest.ProtoReflect.Descriptor instead.
func (*GetClusterConfigRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{38}
}

func (x *GetClusterConfigRequest) GetFormat() RawFormat {
	if x != nil {
		return x.Format
	}
	return RawFormat_RAW_FORMAT_UNSPECIFIED
}

type GetClusterConfigResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*GetClusterConfigResponse_ClusterConfig
	//	*GetClusterConfigResponse_Raw
	Result isGetClusterConfigResponse_Result `protobuf_oneof:"result"`
}

func (x *GetClusterConfigResponse) Reset() {
	*x = GetClusterConfigResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetClusterConfigResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetClusterConfigResponse) ProtoMessage() {}

func (x *GetClusterConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[39]
	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 GetClusterConfigResponse.ProtoReflect.Descriptor instead.
func (*GetClusterConfigResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{39}
}

func (m *GetClusterConfigResponse) GetResult() isGetClusterConfigResponse_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *GetClusterConfigResponse) GetClusterConfig() *v1alpha1.ClusterConfig {
	if x, ok := x.GetResult().(*GetClusterConfigResponse_ClusterConfig); ok {
		return x.ClusterConfig
	}
	return nil
}

func (x *GetClusterConfigResponse) GetRaw() []byte {
	if x, ok := x.GetResult().(*GetClusterConfigResponse_Raw); ok {
		return x.Raw
	}
	return nil
}

type isGetClusterConfigResponse_Result interface {
	isGetClusterConfigResponse_Result()
}

type GetClusterConfigResponse_ClusterConfig struct {
	ClusterConfig *v1alpha1.ClusterConfig `protobuf:"bytes,1,opt,name=cluster_config,json=clusterConfig,proto3,oneof"`
}

type GetClusterConfigResponse_Raw struct {
	Raw []byte `protobuf:"bytes,2,opt,name=raw,proto3,oneof"`
}

func (*GetClusterConfigResponse_ClusterConfig) isGetClusterConfigResponse_Result() {}

func (*GetClusterConfigResponse_Raw) isGetClusterConfigResponse_Result() {}

type DeleteClusterConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DeleteClusterConfigRequest) Reset() {
	*x = DeleteClusterConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteClusterConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteClusterConfigRequest) ProtoMessage() {}

func (x *DeleteClusterConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[40]
	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 DeleteClusterConfigRequest.ProtoReflect.Descriptor instead.
func (*DeleteClusterConfigRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{40}
}

type DeleteClusterConfigResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DeleteClusterConfigResponse) Reset() {
	*x = DeleteClusterConfigResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteClusterConfigResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteClusterConfigResponse) ProtoMessage() {}

func (x *DeleteClusterConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[41]
	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 DeleteClusterConfigResponse.ProtoReflect.Descriptor instead.
func (*DeleteClusterConfigResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{41}
}

type WatchClusterConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *WatchClusterConfigRequest) Reset() {
	*x = WatchClusterConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WatchClusterConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WatchClusterConfigRequest) ProtoMessage() {}

func (x *WatchClusterConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[42]
	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 WatchClusterConfigRequest.ProtoReflect.Descriptor instead.
func (*WatchClusterConfigRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{42}
}

type WatchClusterConfigResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ClusterConfig *v1alpha1.ClusterConfig `protobuf:"bytes,1,opt,name=cluster_config,json=clusterConfig,proto3" json:"cluster_config,omitempty"`
	Type          string                  `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` // ADDED / MODIFIED / DELETED
}

func (x *WatchClusterConfigResponse) Reset() {
	*x = WatchClusterConfigResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[43]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WatchClusterConfigResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WatchClusterConfigResponse) ProtoMessage() {}

func (x *WatchClusterConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[43]
	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 WatchClusterConfigResponse.ProtoReflect.Descriptor instead.
func (*WatchClusterConfigResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{43}
}

func (x *WatchClusterConfigResponse) GetClusterConfig() *v1alpha1.ClusterConfig {
	if x != nil {
		return x.ClusterConfig
	}
	return nil
}

func (x *WatchClusterConfigResponse) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

type RefreshClusterConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *RefreshClusterConfigRequest) Reset() {
	*x = RefreshClusterConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[44]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshClusterConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshClusterConfigRequest) ProtoMessage() {}

func (x *RefreshClusterConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[44]
	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 RefreshClusterConfigRequest.ProtoReflect.Descriptor instead.
func (*RefreshClusterConfigRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{44}
}

type RefreshClusterConfigResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ClusterConfig *v1alpha1.ClusterConfig `protobuf:"bytes,1,opt,name=cluster_config,json=clusterConfig,proto3" json:"cluster_config,omitempty"`
}

func (x *RefreshClusterConfigResponse) Reset() {
	*x = RefreshClusterConfigResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[45]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshClusterConfigResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshClusterConfigResponse) ProtoMessage() {}

func (x *RefreshClusterConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[45]
	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 RefreshClusterConfigResponse.ProtoReflect.Descriptor instead.
func (*RefreshClusterConfigResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{45}
}

func (x *RefreshClusterConfigResponse) GetClusterConfig() *v1alpha1.ClusterConfig {
	if x != nil {
		return x.ClusterConfig
	}
	return nil
}

// ListPromotionsRequest is the request for retrieving all promotions, optionally filtered by stage.
type ListPromotionsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project whose promotions should be listed.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// stage is an optional stage name to filter promotions by.
	Stage *string `protobuf:"bytes,2,opt,name=stage,proto3,oneof" json:"stage,omitempty"`
}

func (x *ListPromotionsRequest) Reset() {
	*x = ListPromotionsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[46]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListPromotionsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListPromotionsRequest) ProtoMessage() {}

func (x *ListPromotionsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[46]
	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 ListPromotionsRequest.ProtoReflect.Descriptor instead.
func (*ListPromotionsRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{46}
}

func (x *ListPromotionsRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *ListPromotionsRequest) GetStage() string {
	if x != nil && x.Stage != nil {
		return *x.Stage
	}
	return ""
}

// ListPromotionsResponse contains a list of promotions within a project.
type ListPromotionsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// promotions is the list of Promotion resources found in the project.
	Promotions []*v1alpha1.Promotion `protobuf:"bytes,1,rep,name=promotions,proto3" json:"promotions,omitempty"`
}

func (x *ListPromotionsResponse) Reset() {
	*x = ListPromotionsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[47]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListPromotionsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListPromotionsResponse) ProtoMessage() {}

func (x *ListPromotionsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[47]
	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 ListPromotionsResponse.ProtoReflect.Descriptor instead.
func (*ListPromotionsResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{47}
}

func (x *ListPromotionsResponse) GetPromotions() []*v1alpha1.Promotion {
	if x != nil {
		return x.Promotions
	}
	return nil
}

// WatchPromotionsRequest is the request for watching promotion changes via streaming.
type WatchPromotionsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project whose promotions should be watched.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// stage is an optional stage name to filter promotions by.
	Stage *string `protobuf:"bytes,2,opt,name=stage,proto3,oneof" json:"stage,omitempty"`
}

func (x *WatchPromotionsRequest) Reset() {
	*x = WatchPromotionsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[48]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WatchPromotionsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WatchPromotionsRequest) ProtoMessage() {}

func (x *WatchPromotionsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[48]
	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 WatchPromotionsRequest.ProtoReflect.Descriptor instead.
func (*WatchPromotionsRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{48}
}

func (x *WatchPromotionsRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *WatchPromotionsRequest) GetStage() string {
	if x != nil && x.Stage != nil {
		return *x.Stage
	}
	return ""
}

// WatchPromotionsResponse contains promotion change notifications.
type WatchPromotionsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// promotion is the Promotion resource that changed.
	Promotion *v1alpha1.Promotion `protobuf:"bytes,1,opt,name=promotion,proto3" json:"promotion,omitempty"`
	// type indicates the type of change (ADDED, MODIFIED, DELETED).
	Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
}

func (x *WatchPromotionsResponse) Reset() {
	*x = WatchPromotionsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[49]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WatchPromotionsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WatchPromotionsResponse) ProtoMessage() {}

func (x *WatchPromotionsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[49]
	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 WatchPromotionsResponse.ProtoReflect.Descriptor instead.
func (*WatchPromotionsResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{49}
}

func (x *WatchPromotionsResponse) GetPromotion() *v1alpha1.Promotion {
	if x != nil {
		return x.Promotion
	}
	return nil
}

func (x *WatchPromotionsResponse) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

// GetPromotionRequest is the request for retrieving details of a specific promotion.
type GetPromotionRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the promotion.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the promotion to retrieve.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// format specifies the format for raw resource representation.
	Format RawFormat `protobuf:"varint,3,opt,name=format,proto3,enum=akuity.io.kargo.service.v1alpha1.RawFormat" json:"format,omitempty"`
}

func (x *GetPromotionRequest) Reset() {
	*x = GetPromotionRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[50]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetPromotionRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetPromotionRequest) ProtoMessage() {}

func (x *GetPromotionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[50]
	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 GetPromotionRequest.ProtoReflect.Descriptor instead.
func (*GetPromotionRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{50}
}

func (x *GetPromotionRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *GetPromotionRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetPromotionRequest) GetFormat() RawFormat {
	if x != nil {
		return x.Format
	}
	return RawFormat_RAW_FORMAT_UNSPECIFIED
}

// GetPromotionResponse contains the requested promotion information.
type GetPromotionResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*GetPromotionResponse_Promotion
	//	*GetPromotionResponse_Raw
	Result isGetPromotionResponse_Result `protobuf_oneof:"result"`
}

func (x *GetPromotionResponse) Reset() {
	*x = GetPromotionResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[51]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetPromotionResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetPromotionResponse) ProtoMessage() {}

func (x *GetPromotionResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[51]
	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 GetPromotionResponse.ProtoReflect.Descriptor instead.
func (*GetPromotionResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{51}
}

func (m *GetPromotionResponse) GetResult() isGetPromotionResponse_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *GetPromotionResponse) GetPromotion() *v1alpha1.Promotion {
	if x, ok := x.GetResult().(*GetPromotionResponse_Promotion); ok {
		return x.Promotion
	}
	return nil
}

func (x *GetPromotionResponse) GetRaw() []byte {
	if x, ok := x.GetResult().(*GetPromotionResponse_Raw); ok {
		return x.Raw
	}
	return nil
}

type isGetPromotionResponse_Result interface {
	isGetPromotionResponse_Result()
}

type GetPromotionResponse_Promotion struct {
	// promotion contains the Promotion resource in structured format.
	Promotion *v1alpha1.Promotion `protobuf:"bytes,1,opt,name=promotion,proto3,oneof"`
}

type GetPromotionResponse_Raw struct {
	// raw contains the Promotion resource in the requested raw format.
	Raw []byte `protobuf:"bytes,2,opt,name=raw,proto3,oneof"`
}

func (*GetPromotionResponse_Promotion) isGetPromotionResponse_Result() {}

func (*GetPromotionResponse_Raw) isGetPromotionResponse_Result() {}

// WatchPromotionRequest is the request for watching a specific promotion via streaming.
type WatchPromotionRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the promotion.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the promotion to watch.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *WatchPromotionRequest) Reset() {
	*x = WatchPromotionRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[52]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WatchPromotionRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WatchPromotionRequest) ProtoMessage() {}

func (x *WatchPromotionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[52]
	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 WatchPromotionRequest.ProtoReflect.Descriptor instead.
func (*WatchPromotionRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{52}
}

func (x *WatchPromotionRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *WatchPromotionRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// WatchPromotionResponse contains specific promotion change notifications.
type WatchPromotionResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// promotion is the Promotion resource that changed.
	Promotion *v1alpha1.Promotion `protobuf:"bytes,1,opt,name=promotion,proto3" json:"promotion,omitempty"`
	// type indicates the type of change (ADDED, MODIFIED, DELETED).
	Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
}

func (x *WatchPromotionResponse) Reset() {
	*x = WatchPromotionResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[53]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WatchPromotionResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WatchPromotionResponse) ProtoMessage() {}

func (x *WatchPromotionResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[53]
	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 WatchPromotionResponse.ProtoReflect.Descriptor instead.
func (*WatchPromotionResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{53}
}

func (x *WatchPromotionResponse) GetPromotion() *v1alpha1.Promotion {
	if x != nil {
		return x.Promotion
	}
	return nil
}

func (x *WatchPromotionResponse) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

// AbortPromotionRequest is the request for canceling a running promotion process.
type AbortPromotionRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the promotion.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the promotion to abort.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *AbortPromotionRequest) Reset() {
	*x = AbortPromotionRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[54]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AbortPromotionRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AbortPromotionRequest) ProtoMessage() {}

func (x *AbortPromotionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[54]
	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 AbortPromotionRequest.ProtoReflect.Descriptor instead.
func (*AbortPromotionRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{54}
}

func (x *AbortPromotionRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *AbortPromotionRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// AbortPromotionResponse is the response after aborting a promotion.
type AbortPromotionResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *AbortPromotionResponse) Reset() {
	*x = AbortPromotionResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[55]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AbortPromotionResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AbortPromotionResponse) ProtoMessage() {}

func (x *AbortPromotionResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[55]
	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 AbortPromotionResponse.ProtoReflect.Descriptor instead.
func (*AbortPromotionResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{55}
}

// DeleteProjectRequest is the request for deleting a project and all associated resources.
type DeleteProjectRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// name is the name of the project to delete.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *DeleteProjectRequest) Reset() {
	*x = DeleteProjectRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[56]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteProjectRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteProjectRequest) ProtoMessage() {}

func (x *DeleteProjectRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[56]
	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 DeleteProjectRequest.ProtoReflect.Descriptor instead.
func (*DeleteProjectRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{56}
}

func (x *DeleteProjectRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// DeleteProjectResponse is the response after deleting a project.
type DeleteProjectResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DeleteProjectResponse) Reset() {
	*x = DeleteProjectResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[57]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteProjectResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteProjectResponse) ProtoMessage() {}

func (x *DeleteProjectResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[57]
	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 DeleteProjectResponse.ProtoReflect.Descriptor instead.
func (*DeleteProjectResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{57}
}

// GetProjectRequest is the request for retrieving details of a specific project.
type GetProjectRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// name is the name of the project to retrieve.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// format specifies the format for raw resource representation.
	Format RawFormat `protobuf:"varint,2,opt,name=format,proto3,enum=akuity.io.kargo.service.v1alpha1.RawFormat" json:"format,omitempty"`
}

func (x *GetProjectRequest) Reset() {
	*x = GetProjectRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[58]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetProjectRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetProjectRequest) ProtoMessage() {}

func (x *GetProjectRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[58]
	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 GetProjectRequest.ProtoReflect.Descriptor instead.
func (*GetProjectRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{58}
}

func (x *GetProjectRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetProjectRequest) GetFormat() RawFormat {
	if x != nil {
		return x.Format
	}
	return RawFormat_RAW_FORMAT_UNSPECIFIED
}

// GetProjectResponse contains the requested project information.
type GetProjectResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*GetProjectResponse_Project
	//	*GetProjectResponse_Raw
	Result isGetProjectResponse_Result `protobuf_oneof:"result"`
}

func (x *GetProjectResponse) Reset() {
	*x = GetProjectResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[59]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetProjectResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetProjectResponse) ProtoMessage() {}

func (x *GetProjectResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[59]
	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 GetProjectResponse.ProtoReflect.Descriptor instead.
func (*GetProjectResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{59}
}

func (m *GetProjectResponse) GetResult() isGetProjectResponse_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *GetProjectResponse) GetProject() *v1alpha1.Project {
	if x, ok := x.GetResult().(*GetProjectResponse_Project); ok {
		return x.Project
	}
	return nil
}

func (x *GetProjectResponse) GetRaw() []byte {
	if x, ok := x.GetResult().(*GetProjectResponse_Raw); ok {
		return x.Raw
	}
	return nil
}

type isGetProjectResponse_Result interface {
	isGetProjectResponse_Result()
}

type GetProjectResponse_Project struct {
	// project contains the Project resource in structured format.
	Project *v1alpha1.Project `protobuf:"bytes,1,opt,name=project,proto3,oneof"`
}

type GetProjectResponse_Raw struct {
	// raw contains the Project resource in the requested raw format.
	Raw []byte `protobuf:"bytes,2,opt,name=raw,proto3,oneof"`
}

func (*GetProjectResponse_Project) isGetProjectResponse_Result() {}

func (*GetProjectResponse_Raw) isGetProjectResponse_Result() {}

// ListProjectsRequest is the request for listing all projects with optional filtering and pagination.
type ListProjectsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// page_size specifies the maximum number of projects to return per page.
	PageSize *int32 `protobuf:"varint,1,opt,name=page_size,json=pageSize,proto3,oneof" json:"page_size,omitempty"`
	// page specifies which page of results to return.
	Page *int32 `protobuf:"varint,2,opt,name=page,proto3,oneof" json:"page,omitempty"`
	// filter specifies an optional filter expression for projects.
	Filter *string `protobuf:"bytes,3,opt,name=filter,proto3,oneof" json:"filter,omitempty"`
	// ui store starred projects uids, so it needs to filter it when looking at starred projects
	Uid []string `protobuf:"bytes,4,rep,name=uid,proto3" json:"uid,omitempty"`
}

func (x *ListProjectsRequest) Reset() {
	*x = ListProjectsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[60]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListProjectsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListProjectsRequest) ProtoMessage() {}

func (x *ListProjectsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[60]
	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 ListProjectsRequest.ProtoReflect.Descriptor instead.
func (*ListProjectsRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{60}
}

func (x *ListProjectsRequest) GetPageSize() int32 {
	if x != nil && x.PageSize != nil {
		return *x.PageSize
	}
	return 0
}

func (x *ListProjectsRequest) GetPage() int32 {
	if x != nil && x.Page != nil {
		return *x.Page
	}
	return 0
}

func (x *ListProjectsRequest) GetFilter() string {
	if x != nil && x.Filter != nil {
		return *x.Filter
	}
	return ""
}

func (x *ListProjectsRequest) GetUid() []string {
	if x != nil {
		return x.Uid
	}
	return nil
}

// ListProjectsResponse contains the list of projects and pagination information.
type ListProjectsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// projects is the list of Project resources matching the request criteria.
	Projects []*v1alpha1.Project `protobuf:"bytes,1,rep,name=projects,proto3" json:"projects,omitempty"`
	// total is the total number of projects available (across all pages).
	Total int32 `protobuf:"varint,2,opt,name=total,proto3" json:"total,omitempty"`
}

func (x *ListProjectsResponse) Reset() {
	*x = ListProjectsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[61]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListProjectsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListProjectsResponse) ProtoMessage() {}

func (x *ListProjectsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[61]
	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 ListProjectsResponse.ProtoReflect.Descriptor instead.
func (*ListProjectsResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{61}
}

func (x *ListProjectsResponse) GetProjects() []*v1alpha1.Project {
	if x != nil {
		return x.Projects
	}
	return nil
}

func (x *ListProjectsResponse) GetTotal() int32 {
	if x != nil {
		return x.Total
	}
	return 0
}

// GetProjectConfigRequest is the request for retrieving project-level configuration settings.
type GetProjectConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project to retrieve configuration for.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// format specifies the desired response format (structured object or raw YAML).
	Format RawFormat `protobuf:"varint,2,opt,name=format,proto3,enum=akuity.io.kargo.service.v1alpha1.RawFormat" json:"format,omitempty"`
}

func (x *GetProjectConfigRequest) Reset() {
	*x = GetProjectConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[62]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetProjectConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetProjectConfigRequest) ProtoMessage() {}

func (x *GetProjectConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[62]
	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 GetProjectConfigRequest.ProtoReflect.Descriptor instead.
func (*GetProjectConfigRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{62}
}

func (x *GetProjectConfigRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *GetProjectConfigRequest) GetFormat() RawFormat {
	if x != nil {
		return x.Format
	}
	return RawFormat_RAW_FORMAT_UNSPECIFIED
}

// GetProjectConfigResponse contains the requested project configuration.
type GetProjectConfigResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*GetProjectConfigResponse_ProjectConfig
	//	*GetProjectConfigResponse_Raw
	Result isGetProjectConfigResponse_Result `protobuf_oneof:"result"`
}

func (x *GetProjectConfigResponse) Reset() {
	*x = GetProjectConfigResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[63]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetProjectConfigResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetProjectConfigResponse) ProtoMessage() {}

func (x *GetProjectConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[63]
	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 GetProjectConfigResponse.ProtoReflect.Descriptor instead.
func (*GetProjectConfigResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{63}
}

func (m *GetProjectConfigResponse) GetResult() isGetProjectConfigResponse_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *GetProjectConfigResponse) GetProjectConfig() *v1alpha1.ProjectConfig {
	if x, ok := x.GetResult().(*GetProjectConfigResponse_ProjectConfig); ok {
		return x.ProjectConfig
	}
	return nil
}

func (x *GetProjectConfigResponse) GetRaw() []byte {
	if x, ok := x.GetResult().(*GetProjectConfigResponse_Raw); ok {
		return x.Raw
	}
	return nil
}

type isGetProjectConfigResponse_Result interface {
	isGetProjectConfigResponse_Result()
}

type GetProjectConfigResponse_ProjectConfig struct {
	// project_config is the structured ProjectConfig object.
	ProjectConfig *v1alpha1.ProjectConfig `protobuf:"bytes,1,opt,name=project_config,json=projectConfig,proto3,oneof"`
}

type GetProjectConfigResponse_Raw struct {
	// raw is the raw YAML representation of the project configuration.
	Raw []byte `protobuf:"bytes,2,opt,name=raw,proto3,oneof"`
}

func (*GetProjectConfigResponse_ProjectConfig) isGetProjectConfigResponse_Result() {}

func (*GetProjectConfigResponse_Raw) isGetProjectConfigResponse_Result() {}

// DeleteProjectConfigRequest is the request for removing project-level configuration.
type DeleteProjectConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project to delete configuration for.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
}

func (x *DeleteProjectConfigRequest) Reset() {
	*x = DeleteProjectConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[64]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteProjectConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteProjectConfigRequest) ProtoMessage() {}

func (x *DeleteProjectConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[64]
	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 DeleteProjectConfigRequest.ProtoReflect.Descriptor instead.
func (*DeleteProjectConfigRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{64}
}

func (x *DeleteProjectConfigRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

// DeleteProjectConfigResponse is the response after deleting project configuration.
type DeleteProjectConfigResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DeleteProjectConfigResponse) Reset() {
	*x = DeleteProjectConfigResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[65]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteProjectConfigResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteProjectConfigResponse) ProtoMessage() {}

func (x *DeleteProjectConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[65]
	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 DeleteProjectConfigResponse.ProtoReflect.Descriptor instead.
func (*DeleteProjectConfigResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{65}
}

// WatchProjectConfigRequest is the request for streaming project configuration changes.
type WatchProjectConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project to watch for configuration changes.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
}

func (x *WatchProjectConfigRequest) Reset() {
	*x = WatchProjectConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[66]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WatchProjectConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WatchProjectConfigRequest) ProtoMessage() {}

func (x *WatchProjectConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[66]
	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 WatchProjectConfigRequest.ProtoReflect.Descriptor instead.
func (*WatchProjectConfigRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{66}
}

func (x *WatchProjectConfigRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

// WatchProjectConfigResponse provides streaming updates for project configuration changes.
type WatchProjectConfigResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project_config is the updated ProjectConfig object.
	ProjectConfig *v1alpha1.ProjectConfig `protobuf:"bytes,1,opt,name=project_config,json=projectConfig,proto3" json:"project_config,omitempty"`
	// type indicates the type of change (ADDED / MODIFIED / DELETED).
	Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
}

func (x *WatchProjectConfigResponse) Reset() {
	*x = WatchProjectConfigResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[67]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WatchProjectConfigResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WatchProjectConfigResponse) ProtoMessage() {}

func (x *WatchProjectConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[67]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use WatchProjectConfigResponse.ProtoReflect.Descriptor instead.
func (*WatchProjectConfigResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{67}
}

func (x *WatchProjectConfigResponse) GetProjectConfig() *v1alpha1.ProjectConfig {
	if x != nil {
		return x.ProjectConfig
	}
	return nil
}

func (x *WatchProjectConfigResponse) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

// RefreshProjectConfigRequest is the request for triggering a refresh of project configuration.
type RefreshProjectConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project to refresh configuration for.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
}

func (x *RefreshProjectConfigRequest) Reset() {
	*x = RefreshProjectConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[68]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshProjectConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshProjectConfigRequest) ProtoMessage() {}

func (x *RefreshProjectConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[68]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RefreshProjectConfigRequest.ProtoReflect.Descriptor instead.
func (*RefreshProjectConfigRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{68}
}

func (x *RefreshProjectConfigRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

// RefreshProjectConfigResponse contains the refreshed project configuration.
type RefreshProjectConfigResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project_config is the refreshed ProjectConfig object.
	ProjectConfig *v1alpha1.ProjectConfig `protobuf:"bytes,1,opt,name=project_config,json=projectConfig,proto3" json:"project_config,omitempty"`
}

func (x *RefreshProjectConfigResponse) Reset() {
	*x = RefreshProjectConfigResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[69]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshProjectConfigResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshProjectConfigResponse) ProtoMessage() {}

func (x *RefreshProjectConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[69]
	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 RefreshProjectConfigResponse.ProtoReflect.Descriptor instead.
func (*RefreshProjectConfigResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{69}
}

func (x *RefreshProjectConfigResponse) GetProjectConfig() *v1alpha1.ProjectConfig {
	if x != nil {
		return x.ProjectConfig
	}
	return nil
}

// ApproveFreightRequest is the request for approving freight for promotion to a stage.
type ApproveFreightRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the freight.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the freight to approve.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// alias is the alias of the freight to approve.
	Alias string `protobuf:"bytes,3,opt,name=alias,proto3" json:"alias,omitempty"`
	// stage is the name of the stage for which to approve the freight.
	Stage string `protobuf:"bytes,4,opt,name=stage,proto3" json:"stage,omitempty"`
}

func (x *ApproveFreightRequest) Reset() {
	*x = ApproveFreightRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[70]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ApproveFreightRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ApproveFreightRequest) ProtoMessage() {}

func (x *ApproveFreightRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[70]
	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 ApproveFreightRequest.ProtoReflect.Descriptor instead.
func (*ApproveFreightRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{70}
}

func (x *ApproveFreightRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *ApproveFreightRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *ApproveFreightRequest) GetAlias() string {
	if x != nil {
		return x.Alias
	}
	return ""
}

func (x *ApproveFreightRequest) GetStage() string {
	if x != nil {
		return x.Stage
	}
	return ""
}

// ApproveFreightResponse is the response after approving freight.
type ApproveFreightResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ApproveFreightResponse) Reset() {
	*x = ApproveFreightResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[71]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ApproveFreightResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ApproveFreightResponse) ProtoMessage() {}

func (x *ApproveFreightResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[71]
	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 ApproveFreightResponse.ProtoReflect.Descriptor instead.
func (*ApproveFreightResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{71}
}

// DeleteFreightRequest is the request for deleting freight.
type DeleteFreightRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the freight.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the freight to delete.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// alias is the alias of the freight to delete.
	Alias string `protobuf:"bytes,3,opt,name=alias,proto3" json:"alias,omitempty"`
}

func (x *DeleteFreightRequest) Reset() {
	*x = DeleteFreightRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[72]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteFreightRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteFreightRequest) ProtoMessage() {}

func (x *DeleteFreightRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[72]
	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 DeleteFreightRequest.ProtoReflect.Descriptor instead.
func (*DeleteFreightRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{72}
}

func (x *DeleteFreightRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *DeleteFreightRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *DeleteFreightRequest) GetAlias() string {
	if x != nil {
		return x.Alias
	}
	return ""
}

// DeleteFreightResponse is the response after deleting freight.
type DeleteFreightResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DeleteFreightResponse) Reset() {
	*x = DeleteFreightResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[73]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteFreightResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteFreightResponse) ProtoMessage() {}

func (x *DeleteFreightResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[73]
	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 DeleteFreightResponse.ProtoReflect.Descriptor instead.
func (*DeleteFreightResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{73}
}

// GetFreightRequest is the request for retrieving details of specific freight.
type GetFreightRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the freight.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the freight to retrieve.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// alias is the alias of the freight to retrieve.
	Alias string `protobuf:"bytes,3,opt,name=alias,proto3" json:"alias,omitempty"`
	// format specifies the format for raw resource representation.
	Format RawFormat `protobuf:"varint,4,opt,name=format,proto3,enum=akuity.io.kargo.service.v1alpha1.RawFormat" json:"format,omitempty"`
}

func (x *GetFreightRequest) Reset() {
	*x = GetFreightRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[74]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetFreightRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetFreightRequest) ProtoMessage() {}

func (x *GetFreightRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[74]
	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 GetFreightRequest.ProtoReflect.Descriptor instead.
func (*GetFreightRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{74}
}

func (x *GetFreightRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *GetFreightRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetFreightRequest) GetAlias() string {
	if x != nil {
		return x.Alias
	}
	return ""
}

func (x *GetFreightRequest) GetFormat() RawFormat {
	if x != nil {
		return x.Format
	}
	return RawFormat_RAW_FORMAT_UNSPECIFIED
}

// GetFreightResponse contains the requested freight information.
type GetFreightResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*GetFreightResponse_Freight
	//	*GetFreightResponse_Raw
	Result isGetFreightResponse_Result `protobuf_oneof:"result"`
}

func (x *GetFreightResponse) Reset() {
	*x = GetFreightResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[75]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetFreightResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetFreightResponse) ProtoMessage() {}

func (x *GetFreightResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[75]
	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 GetFreightResponse.ProtoReflect.Descriptor instead.
func (*GetFreightResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{75}
}

func (m *GetFreightResponse) GetResult() isGetFreightResponse_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *GetFreightResponse) GetFreight() *v1alpha1.Freight {
	if x, ok := x.GetResult().(*GetFreightResponse_Freight); ok {
		return x.Freight
	}
	return nil
}

func (x *GetFreightResponse) GetRaw() []byte {
	if x, ok := x.GetResult().(*GetFreightResponse_Raw); ok {
		return x.Raw
	}
	return nil
}

type isGetFreightResponse_Result interface {
	isGetFreightResponse_Result()
}

type GetFreightResponse_Freight struct {
	// freight contains the Freight resource in structured format.
	Freight *v1alpha1.Freight `protobuf:"bytes,1,opt,name=freight,proto3,oneof"`
}

type GetFreightResponse_Raw struct {
	// raw contains the Freight resource in the requested raw format.
	Raw []byte `protobuf:"bytes,2,opt,name=raw,proto3,oneof"`
}

func (*GetFreightResponse_Freight) isGetFreightResponse_Result() {}

func (*GetFreightResponse_Raw) isGetFreightResponse_Result() {}

// WatchFreightRequest is the request for watching freight changes via streaming.
type WatchFreightRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project whose freight should be watched.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
}

func (x *WatchFreightRequest) Reset() {
	*x = WatchFreightRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[76]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WatchFreightRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WatchFreightRequest) ProtoMessage() {}

func (x *WatchFreightRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[76]
	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 WatchFreightRequest.ProtoReflect.Descriptor instead.
func (*WatchFreightRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{76}
}

func (x *WatchFreightRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

// WatchFreightResponse contains freight change notifications.
type WatchFreightResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// freight is the Freight resource that changed.
	Freight *v1alpha1.Freight `protobuf:"bytes,1,opt,name=freight,proto3" json:"freight,omitempty"`
	// type indicates the type of change (ADDED, MODIFIED, DELETED).
	Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"` // ADDED / MODIFIED / DELETED
}

func (x *WatchFreightResponse) Reset() {
	*x = WatchFreightResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[77]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WatchFreightResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WatchFreightResponse) ProtoMessage() {}

func (x *WatchFreightResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[77]
	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 WatchFreightResponse.ProtoReflect.Descriptor instead.
func (*WatchFreightResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{77}
}

func (x *WatchFreightResponse) GetFreight() *v1alpha1.Freight {
	if x != nil {
		return x.Freight
	}
	return nil
}

func (x *WatchFreightResponse) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

// PromoteToStageRequest is the request for promoting freight to a specific stage.
type PromoteToStageRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the stage and freight.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// stage is the name of the stage to promote freight to.
	Stage string `protobuf:"bytes,2,opt,name=stage,proto3" json:"stage,omitempty"`
	// freight is the name of the freight to promote.
	Freight string `protobuf:"bytes,3,opt,name=freight,proto3" json:"freight,omitempty"`
	// freight_alias is the alias of the freight to promote.
	FreightAlias string `protobuf:"bytes,4,opt,name=freight_alias,json=freightAlias,proto3" json:"freight_alias,omitempty"`
}

func (x *PromoteToStageRequest) Reset() {
	*x = PromoteToStageRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[78]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PromoteToStageRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PromoteToStageRequest) ProtoMessage() {}

func (x *PromoteToStageRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[78]
	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 PromoteToStageRequest.ProtoReflect.Descriptor instead.
func (*PromoteToStageRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{78}
}

func (x *PromoteToStageRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *PromoteToStageRequest) GetStage() string {
	if x != nil {
		return x.Stage
	}
	return ""
}

func (x *PromoteToStageRequest) GetFreight() string {
	if x != nil {
		return x.Freight
	}
	return ""
}

func (x *PromoteToStageRequest) GetFreightAlias() string {
	if x != nil {
		return x.FreightAlias
	}
	return ""
}

// PromoteToStageResponse contains the promotion created for the freight promotion.
type PromoteToStageResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// promotion is the Promotion resource created for this freight promotion.
	Promotion *v1alpha1.Promotion `protobuf:"bytes,1,opt,name=promotion,proto3" json:"promotion,omitempty"`
}

func (x *PromoteToStageResponse) Reset() {
	*x = PromoteToStageResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[79]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PromoteToStageResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PromoteToStageResponse) ProtoMessage() {}

func (x *PromoteToStageResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[79]
	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 PromoteToStageResponse.ProtoReflect.Descriptor instead.
func (*PromoteToStageResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{79}
}

func (x *PromoteToStageResponse) GetPromotion() *v1alpha1.Promotion {
	if x != nil {
		return x.Promotion
	}
	return nil
}

// PromoteDownstreamRequest is the request for automatically promoting freight to downstream stages.
type PromoteDownstreamRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the stage and freight.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// stage is the name of the source stage from which to promote downstream.
	Stage string `protobuf:"bytes,2,opt,name=stage,proto3" json:"stage,omitempty"`
	// freight is the name of the freight to promote downstream.
	Freight string `protobuf:"bytes,3,opt,name=freight,proto3" json:"freight,omitempty"`
	// freight_alias is the alias of the freight to promote downstream.
	FreightAlias string `protobuf:"bytes,4,opt,name=freight_alias,json=freightAlias,proto3" json:"freight_alias,omitempty"`
}

func (x *PromoteDownstreamRequest) Reset() {
	*x = PromoteDownstreamRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[80]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PromoteDownstreamRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PromoteDownstreamRequest) ProtoMessage() {}

func (x *PromoteDownstreamRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[80]
	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 PromoteDownstreamRequest.ProtoReflect.Descriptor instead.
func (*PromoteDownstreamRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{80}
}

func (x *PromoteDownstreamRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *PromoteDownstreamRequest) GetStage() string {
	if x != nil {
		return x.Stage
	}
	return ""
}

func (x *PromoteDownstreamRequest) GetFreight() string {
	if x != nil {
		return x.Freight
	}
	return ""
}

func (x *PromoteDownstreamRequest) GetFreightAlias() string {
	if x != nil {
		return x.FreightAlias
	}
	return ""
}

// PromoteDownstreamResponse contains the promotions created for downstream freight promotions.
type PromoteDownstreamResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// promotions are the Promotion resources created for downstream freight promotions.
	Promotions []*v1alpha1.Promotion `protobuf:"bytes,1,rep,name=promotions,proto3" json:"promotions,omitempty"`
}

func (x *PromoteDownstreamResponse) Reset() {
	*x = PromoteDownstreamResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[81]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PromoteDownstreamResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PromoteDownstreamResponse) ProtoMessage() {}

func (x *PromoteDownstreamResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[81]
	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 PromoteDownstreamResponse.ProtoReflect.Descriptor instead.
func (*PromoteDownstreamResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{81}
}

func (x *PromoteDownstreamResponse) GetPromotions() []*v1alpha1.Promotion {
	if x != nil {
		return x.Promotions
	}
	return nil
}

// QueryFreightRequest is the request for searching freight based on specified criteria.
type QueryFreightRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project to search for freight.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// stage is the name of the stage to filter freight by.
	Stage string `protobuf:"bytes,2,opt,name=stage,proto3" json:"stage,omitempty"`
	// group_by specifies how to group the freight results.
	GroupBy string `protobuf:"bytes,3,opt,name=group_by,json=groupBy,proto3" json:"group_by,omitempty"`
	// group specifies which group to return results for.
	Group string `protobuf:"bytes,4,opt,name=group,proto3" json:"group,omitempty"`
	// order_by specifies how to order the freight results.
	OrderBy string `protobuf:"bytes,5,opt,name=order_by,json=orderBy,proto3" json:"order_by,omitempty"`
	// reverse indicates whether to reverse the order of results.
	Reverse bool `protobuf:"varint,6,opt,name=reverse,proto3" json:"reverse,omitempty"`
	// origins filters freight by their origins (e.g., warehouse names).
	Origins []string `protobuf:"bytes,7,rep,name=origins,proto3" json:"origins,omitempty"`
}

func (x *QueryFreightRequest) Reset() {
	*x = QueryFreightRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[82]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QueryFreightRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QueryFreightRequest) ProtoMessage() {}

func (x *QueryFreightRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[82]
	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 QueryFreightRequest.ProtoReflect.Descriptor instead.
func (*QueryFreightRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{82}
}

func (x *QueryFreightRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *QueryFreightRequest) GetStage() string {
	if x != nil {
		return x.Stage
	}
	return ""
}

func (x *QueryFreightRequest) GetGroupBy() string {
	if x != nil {
		return x.GroupBy
	}
	return ""
}

func (x *QueryFreightRequest) GetGroup() string {
	if x != nil {
		return x.Group
	}
	return ""
}

func (x *QueryFreightRequest) GetOrderBy() string {
	if x != nil {
		return x.OrderBy
	}
	return ""
}

func (x *QueryFreightRequest) GetReverse() bool {
	if x != nil {
		return x.Reverse
	}
	return false
}

func (x *QueryFreightRequest) GetOrigins() []string {
	if x != nil {
		return x.Origins
	}
	return nil
}

// QueryFreightResponse contains the grouped freight search results.
type QueryFreightResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// groups maps group names to their corresponding freight lists.
	Groups map[string]*FreightList `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *QueryFreightResponse) Reset() {
	*x = QueryFreightResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[83]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *QueryFreightResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*QueryFreightResponse) ProtoMessage() {}

func (x *QueryFreightResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[83]
	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 QueryFreightResponse.ProtoReflect.Descriptor instead.
func (*QueryFreightResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{83}
}

func (x *QueryFreightResponse) GetGroups() map[string]*FreightList {
	if x != nil {
		return x.Groups
	}
	return nil
}

// FreightList contains a list of freight resources.
type FreightList struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// freight is the list of Freight resources.
	Freight []*v1alpha1.Freight `protobuf:"bytes,1,rep,name=freight,proto3" json:"freight,omitempty"`
}

func (x *FreightList) Reset() {
	*x = FreightList{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[84]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *FreightList) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FreightList) ProtoMessage() {}

func (x *FreightList) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[84]
	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 FreightList.ProtoReflect.Descriptor instead.
func (*FreightList) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{84}
}

func (x *FreightList) GetFreight() []*v1alpha1.Freight {
	if x != nil {
		return x.Freight
	}
	return nil
}

// UpdateFreightAliasRequest is the request for updating a freight's alias.
type UpdateFreightAliasRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the freight.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the freight whose alias should be updated.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// old_alias is the current alias of the freight.
	OldAlias string `protobuf:"bytes,3,opt,name=old_alias,json=oldAlias,proto3" json:"old_alias,omitempty"`
	// new_alias is the new alias to assign to the freight.
	NewAlias string `protobuf:"bytes,4,opt,name=new_alias,json=newAlias,proto3" json:"new_alias,omitempty"`
}

func (x *UpdateFreightAliasRequest) Reset() {
	*x = UpdateFreightAliasRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[85]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateFreightAliasRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateFreightAliasRequest) ProtoMessage() {}

func (x *UpdateFreightAliasRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[85]
	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 UpdateFreightAliasRequest.ProtoReflect.Descriptor instead.
func (*UpdateFreightAliasRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{85}
}

func (x *UpdateFreightAliasRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *UpdateFreightAliasRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *UpdateFreightAliasRequest) GetOldAlias() string {
	if x != nil {
		return x.OldAlias
	}
	return ""
}

func (x *UpdateFreightAliasRequest) GetNewAlias() string {
	if x != nil {
		return x.NewAlias
	}
	return ""
}

// UpdateFreightAliasResponse is the response after updating a freight's alias.
type UpdateFreightAliasResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *UpdateFreightAliasResponse) Reset() {
	*x = UpdateFreightAliasResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[86]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateFreightAliasResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateFreightAliasResponse) ProtoMessage() {}

func (x *UpdateFreightAliasResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[86]
	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 UpdateFreightAliasResponse.ProtoReflect.Descriptor instead.
func (*UpdateFreightAliasResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{86}
}

// ReverifyRequest is the request for triggering re-execution of verification processes for a stage.
type ReverifyRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the stage.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// stage is the name of the stage to reverify.
	Stage string `protobuf:"bytes,2,opt,name=stage,proto3" json:"stage,omitempty"`
}

func (x *ReverifyRequest) Reset() {
	*x = ReverifyRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[87]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReverifyRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReverifyRequest) ProtoMessage() {}

func (x *ReverifyRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[87]
	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 ReverifyRequest.ProtoReflect.Descriptor instead.
func (*ReverifyRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{87}
}

func (x *ReverifyRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *ReverifyRequest) GetStage() string {
	if x != nil {
		return x.Stage
	}
	return ""
}

// ReverifyResponse is the response after triggering reverification.
type ReverifyResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ReverifyResponse) Reset() {
	*x = ReverifyResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[88]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ReverifyResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ReverifyResponse) ProtoMessage() {}

func (x *ReverifyResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[88]
	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 ReverifyResponse.ProtoReflect.Descriptor instead.
func (*ReverifyResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{88}
}

// AbortVerificationRequest is the request for canceling running verification processes for a stage.
type AbortVerificationRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the stage.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// stage is the name of the stage whose verification should be aborted.
	Stage string `protobuf:"bytes,2,opt,name=stage,proto3" json:"stage,omitempty"`
}

func (x *AbortVerificationRequest) Reset() {
	*x = AbortVerificationRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[89]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AbortVerificationRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AbortVerificationRequest) ProtoMessage() {}

func (x *AbortVerificationRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[89]
	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 AbortVerificationRequest.ProtoReflect.Descriptor instead.
func (*AbortVerificationRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{89}
}

func (x *AbortVerificationRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *AbortVerificationRequest) GetStage() string {
	if x != nil {
		return x.Stage
	}
	return ""
}

// AbortVerificationResponse is the response after aborting verification.
type AbortVerificationResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *AbortVerificationResponse) Reset() {
	*x = AbortVerificationResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[90]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AbortVerificationResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AbortVerificationResponse) ProtoMessage() {}

func (x *AbortVerificationResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[90]
	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 AbortVerificationResponse.ProtoReflect.Descriptor instead.
func (*AbortVerificationResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{90}
}

// ListWarehousesRequest is the request for listing warehouses within a project.
type ListWarehousesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project whose warehouses should be listed.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
}

func (x *ListWarehousesRequest) Reset() {
	*x = ListWarehousesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[91]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListWarehousesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListWarehousesRequest) ProtoMessage() {}

func (x *ListWarehousesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[91]
	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 ListWarehousesRequest.ProtoReflect.Descriptor instead.
func (*ListWarehousesRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{91}
}

func (x *ListWarehousesRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

// ListWarehousesResponse contains a list of warehouses within a project.
type ListWarehousesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// warehouses is the list of Warehouse resources found in the project.
	Warehouses []*v1alpha1.Warehouse `protobuf:"bytes,1,rep,name=warehouses,proto3" json:"warehouses,omitempty"`
}

func (x *ListWarehousesResponse) Reset() {
	*x = ListWarehousesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[92]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListWarehousesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListWarehousesResponse) ProtoMessage() {}

func (x *ListWarehousesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[92]
	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 ListWarehousesResponse.ProtoReflect.Descriptor instead.
func (*ListWarehousesResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{92}
}

func (x *ListWarehousesResponse) GetWarehouses() []*v1alpha1.Warehouse {
	if x != nil {
		return x.Warehouses
	}
	return nil
}

// GetWarehouseRequest is the request for retrieving details of a specific warehouse.
type GetWarehouseRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the warehouse.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the warehouse to retrieve.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// format specifies the format for raw resource representation.
	Format RawFormat `protobuf:"varint,3,opt,name=format,proto3,enum=akuity.io.kargo.service.v1alpha1.RawFormat" json:"format,omitempty"`
}

func (x *GetWarehouseRequest) Reset() {
	*x = GetWarehouseRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[93]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetWarehouseRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetWarehouseRequest) ProtoMessage() {}

func (x *GetWarehouseRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[93]
	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 GetWarehouseRequest.ProtoReflect.Descriptor instead.
func (*GetWarehouseRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{93}
}

func (x *GetWarehouseRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *GetWarehouseRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetWarehouseRequest) GetFormat() RawFormat {
	if x != nil {
		return x.Format
	}
	return RawFormat_RAW_FORMAT_UNSPECIFIED
}

// GetWarehouseResponse contains the requested warehouse information.
type GetWarehouseResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*GetWarehouseResponse_Warehouse
	//	*GetWarehouseResponse_Raw
	Result isGetWarehouseResponse_Result `protobuf_oneof:"result"`
}

func (x *GetWarehouseResponse) Reset() {
	*x = GetWarehouseResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[94]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetWarehouseResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetWarehouseResponse) ProtoMessage() {}

func (x *GetWarehouseResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[94]
	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 GetWarehouseResponse.ProtoReflect.Descriptor instead.
func (*GetWarehouseResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{94}
}

func (m *GetWarehouseResponse) GetResult() isGetWarehouseResponse_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *GetWarehouseResponse) GetWarehouse() *v1alpha1.Warehouse {
	if x, ok := x.GetResult().(*GetWarehouseResponse_Warehouse); ok {
		return x.Warehouse
	}
	return nil
}

func (x *GetWarehouseResponse) GetRaw() []byte {
	if x, ok := x.GetResult().(*GetWarehouseResponse_Raw); ok {
		return x.Raw
	}
	return nil
}

type isGetWarehouseResponse_Result interface {
	isGetWarehouseResponse_Result()
}

type GetWarehouseResponse_Warehouse struct {
	// warehouse contains the Warehouse resource in structured format.
	Warehouse *v1alpha1.Warehouse `protobuf:"bytes,1,opt,name=warehouse,proto3,oneof"`
}

type GetWarehouseResponse_Raw struct {
	// raw contains the Warehouse resource in the requested raw format.
	Raw []byte `protobuf:"bytes,2,opt,name=raw,proto3,oneof"`
}

func (*GetWarehouseResponse_Warehouse) isGetWarehouseResponse_Result() {}

func (*GetWarehouseResponse_Raw) isGetWarehouseResponse_Result() {}

// WatchWarehousesRequest is the request for watching warehouse changes via streaming.
type WatchWarehousesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project whose warehouses should be watched.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of a specific warehouse to watch, if empty all warehouses in the project are watched.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *WatchWarehousesRequest) Reset() {
	*x = WatchWarehousesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[95]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WatchWarehousesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WatchWarehousesRequest) ProtoMessage() {}

func (x *WatchWarehousesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[95]
	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 WatchWarehousesRequest.ProtoReflect.Descriptor instead.
func (*WatchWarehousesRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{95}
}

func (x *WatchWarehousesRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *WatchWarehousesRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// WatchWarehousesResponse contains warehouse change notifications.
type WatchWarehousesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// warehouse is the Warehouse resource that changed.
	Warehouse *v1alpha1.Warehouse `protobuf:"bytes,1,opt,name=warehouse,proto3" json:"warehouse,omitempty"`
	// type indicates the type of change (ADDED, MODIFIED, DELETED).
	Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
}

func (x *WatchWarehousesResponse) Reset() {
	*x = WatchWarehousesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[96]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *WatchWarehousesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*WatchWarehousesResponse) ProtoMessage() {}

func (x *WatchWarehousesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[96]
	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 WatchWarehousesResponse.ProtoReflect.Descriptor instead.
func (*WatchWarehousesResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{96}
}

func (x *WatchWarehousesResponse) GetWarehouse() *v1alpha1.Warehouse {
	if x != nil {
		return x.Warehouse
	}
	return nil
}

func (x *WatchWarehousesResponse) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

// DeleteWarehouseRequest is the request for deleting a warehouse.
type DeleteWarehouseRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the warehouse.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the warehouse to delete.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *DeleteWarehouseRequest) Reset() {
	*x = DeleteWarehouseRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[97]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteWarehouseRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteWarehouseRequest) ProtoMessage() {}

func (x *DeleteWarehouseRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[97]
	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 DeleteWarehouseRequest.ProtoReflect.Descriptor instead.
func (*DeleteWarehouseRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{97}
}

func (x *DeleteWarehouseRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *DeleteWarehouseRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// DeleteWarehouseResponse is the response after deleting a warehouse.
type DeleteWarehouseResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DeleteWarehouseResponse) Reset() {
	*x = DeleteWarehouseResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[98]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteWarehouseResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteWarehouseResponse) ProtoMessage() {}

func (x *DeleteWarehouseResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[98]
	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 DeleteWarehouseResponse.ProtoReflect.Descriptor instead.
func (*DeleteWarehouseResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{98}
}

// RefreshWarehouseRequest is the request for refreshing a warehouse's status and freight discovery.
type RefreshWarehouseRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the warehouse.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the warehouse to refresh.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *RefreshWarehouseRequest) Reset() {
	*x = RefreshWarehouseRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[99]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshWarehouseRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshWarehouseRequest) ProtoMessage() {}

func (x *RefreshWarehouseRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[99]
	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 RefreshWarehouseRequest.ProtoReflect.Descriptor instead.
func (*RefreshWarehouseRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{99}
}

func (x *RefreshWarehouseRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *RefreshWarehouseRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// RefreshWarehouseResponse contains the refreshed warehouse information.
type RefreshWarehouseResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// warehouse is the refreshed Warehouse resource.
	Warehouse *v1alpha1.Warehouse `protobuf:"bytes,1,opt,name=warehouse,proto3" json:"warehouse,omitempty"`
}

func (x *RefreshWarehouseResponse) Reset() {
	*x = RefreshWarehouseResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[100]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RefreshWarehouseResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RefreshWarehouseResponse) ProtoMessage() {}

func (x *RefreshWarehouseResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[100]
	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 RefreshWarehouseResponse.ProtoReflect.Descriptor instead.
func (*RefreshWarehouseResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{100}
}

func (x *RefreshWarehouseResponse) GetWarehouse() *v1alpha1.Warehouse {
	if x != nil {
		return x.Warehouse
	}
	return nil
}

// ListConfigMapsRequest is the request for retrieving all ConfigMaps in a project.
type ListConfigMapsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project to list ConfigMaps from.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
}

func (x *ListConfigMapsRequest) Reset() {
	*x = ListConfigMapsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[101]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListConfigMapsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListConfigMapsRequest) ProtoMessage() {}

func (x *ListConfigMapsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[101]
	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 ListConfigMapsRequest.ProtoReflect.Descriptor instead.
func (*ListConfigMapsRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{101}
}

func (x *ListConfigMapsRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

// ListConfigMapsResponse contains the list of ConfigMaps in a project.
type ListConfigMapsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// config_maps is the list of ConfigMaps found in the project.
	ConfigMaps []*v1.ConfigMap `protobuf:"bytes,1,rep,name=config_maps,json=configMaps,proto3" json:"config_maps,omitempty"`
}

func (x *ListConfigMapsResponse) Reset() {
	*x = ListConfigMapsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[102]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListConfigMapsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListConfigMapsResponse) ProtoMessage() {}

func (x *ListConfigMapsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[102]
	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 ListConfigMapsResponse.ProtoReflect.Descriptor instead.
func (*ListConfigMapsResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{102}
}

func (x *ListConfigMapsResponse) GetConfigMaps() []*v1.ConfigMap {
	if x != nil {
		return x.ConfigMaps
	}
	return nil
}

// GetConfigMapRequest is the request for retrieving a specific ConfigMap.
type GetConfigMapRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the ConfigMap.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the ConfigMap to retrieve.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// format specifies the desired response format (structured object or raw YAML).
	Format RawFormat `protobuf:"varint,3,opt,name=format,proto3,enum=akuity.io.kargo.service.v1alpha1.RawFormat" json:"format,omitempty"`
}

func (x *GetConfigMapRequest) Reset() {
	*x = GetConfigMapRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[103]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetConfigMapRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetConfigMapRequest) ProtoMessage() {}

func (x *GetConfigMapRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[103]
	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 GetConfigMapRequest.ProtoReflect.Descriptor instead.
func (*GetConfigMapRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{103}
}

func (x *GetConfigMapRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *GetConfigMapRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetConfigMapRequest) GetFormat() RawFormat {
	if x != nil {
		return x.Format
	}
	return RawFormat_RAW_FORMAT_UNSPECIFIED
}

// GetConfigMapResponse contains the requested ConfigMap information.
type GetConfigMapResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*GetConfigMapResponse_ConfigMap
	//	*GetConfigMapResponse_Raw
	Result isGetConfigMapResponse_Result `protobuf_oneof:"result"`
}

func (x *GetConfigMapResponse) Reset() {
	*x = GetConfigMapResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[104]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetConfigMapResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetConfigMapResponse) ProtoMessage() {}

func (x *GetConfigMapResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[104]
	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 GetConfigMapResponse.ProtoReflect.Descriptor instead.
func (*GetConfigMapResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{104}
}

func (m *GetConfigMapResponse) GetResult() isGetConfigMapResponse_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *GetConfigMapResponse) GetConfigMap() *v1.ConfigMap {
	if x, ok := x.GetResult().(*GetConfigMapResponse_ConfigMap); ok {
		return x.ConfigMap
	}
	return nil
}

func (x *GetConfigMapResponse) GetRaw() []byte {
	if x, ok := x.GetResult().(*GetConfigMapResponse_Raw); ok {
		return x.Raw
	}
	return nil
}

type isGetConfigMapResponse_Result interface {
	isGetConfigMapResponse_Result()
}

type GetConfigMapResponse_ConfigMap struct {
	// config_map is the structured Kubernetes ConfigMap object.
	ConfigMap *v1.ConfigMap `protobuf:"bytes,1,opt,name=config_map,json=configMap,proto3,oneof"`
}

type GetConfigMapResponse_Raw struct {
	// raw is the raw YAML representation of the ConfigMap.
	Raw []byte `protobuf:"bytes,2,opt,name=raw,proto3,oneof"`
}

func (*GetConfigMapResponse_ConfigMap) isGetConfigMapResponse_Result() {}

func (*GetConfigMapResponse_Raw) isGetConfigMapResponse_Result() {}

// CreateCredentialsRequest is the request for creating new credentials for accessing external resources.
type CreateCredentialsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project where the credentials will be stored.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the credentials.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// description is a human-readable description of the credentials.
	Description string `protobuf:"bytes,8,opt,name=description,proto3" json:"description,omitempty"`
	// type specifies the credential type (git, helm, image).
	Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
	// repo_url is the URL of the repository or registry these credentials apply to.
	RepoUrl string `protobuf:"bytes,4,opt,name=repo_url,json=repoURL,proto3" json:"repo_url,omitempty"`
	// repo_url_is_regex indicates whether repo_url should be treated as a regular expression.
	RepoUrlIsRegex bool `protobuf:"varint,5,opt,name=repo_url_is_regex,json=repoURLIsRegex,proto3" json:"repo_url_is_regex,omitempty"`
	// username is the username for authentication.
	Username string `protobuf:"bytes,6,opt,name=username,proto3" json:"username,omitempty"`
	// password is the password or token for authentication.
	Password string `protobuf:"bytes,7,opt,name=password,proto3" json:"password,omitempty"`
}

func (x *CreateCredentialsRequest) Reset() {
	*x = CreateCredentialsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[105]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateCredentialsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateCredentialsRequest) ProtoMessage() {}

func (x *CreateCredentialsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[105]
	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 CreateCredentialsRequest.ProtoReflect.Descriptor instead.
func (*CreateCredentialsRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{105}
}

func (x *CreateCredentialsRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *CreateCredentialsRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *CreateCredentialsRequest) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *CreateCredentialsRequest) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *CreateCredentialsRequest) GetRepoUrl() string {
	if x != nil {
		return x.RepoUrl
	}
	return ""
}

func (x *CreateCredentialsRequest) GetRepoUrlIsRegex() bool {
	if x != nil {
		return x.RepoUrlIsRegex
	}
	return false
}

func (x *CreateCredentialsRequest) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *CreateCredentialsRequest) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

// CreateCredentialsResponse contains the newly created credentials.
type CreateCredentialsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// credentials is the created Kubernetes Secret containing the credentials.
	Credentials *v1.Secret `protobuf:"bytes,1,opt,name=credentials,proto3" json:"credentials,omitempty"`
}

func (x *CreateCredentialsResponse) Reset() {
	*x = CreateCredentialsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[106]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateCredentialsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateCredentialsResponse) ProtoMessage() {}

func (x *CreateCredentialsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[106]
	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 CreateCredentialsResponse.ProtoReflect.Descriptor instead.
func (*CreateCredentialsResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{106}
}

func (x *CreateCredentialsResponse) GetCredentials() *v1.Secret {
	if x != nil {
		return x.Credentials
	}
	return nil
}

// DeleteCredentialsRequest is the request for deleting existing credentials.
type DeleteCredentialsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the credentials.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the credentials to delete.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *DeleteCredentialsRequest) Reset() {
	*x = DeleteCredentialsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[107]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteCredentialsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteCredentialsRequest) ProtoMessage() {}

func (x *DeleteCredentialsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[107]
	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 DeleteCredentialsRequest.ProtoReflect.Descriptor instead.
func (*DeleteCredentialsRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{107}
}

func (x *DeleteCredentialsRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *DeleteCredentialsRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// DeleteCredentialsResponse is the response returned after deleting credentials.
type DeleteCredentialsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DeleteCredentialsResponse) Reset() {
	*x = DeleteCredentialsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[108]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteCredentialsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteCredentialsResponse) ProtoMessage() {}

func (x *DeleteCredentialsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[108]
	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 DeleteCredentialsResponse.ProtoReflect.Descriptor instead.
func (*DeleteCredentialsResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{108}
}

// GetCredentialsRequest is the request for retrieving existing credentials.
type GetCredentialsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the credentials.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the credentials to retrieve.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// format specifies the desired response format (structured object or raw YAML).
	Format RawFormat `protobuf:"varint,3,opt,name=format,proto3,enum=akuity.io.kargo.service.v1alpha1.RawFormat" json:"format,omitempty"`
}

func (x *GetCredentialsRequest) Reset() {
	*x = GetCredentialsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[109]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetCredentialsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetCredentialsRequest) ProtoMessage() {}

func (x *GetCredentialsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[109]
	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 GetCredentialsRequest.ProtoReflect.Descriptor instead.
func (*GetCredentialsRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{109}
}

func (x *GetCredentialsRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *GetCredentialsRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetCredentialsRequest) GetFormat() RawFormat {
	if x != nil {
		return x.Format
	}
	return RawFormat_RAW_FORMAT_UNSPECIFIED
}

// GetCredentialsResponse contains the requested credentials information.
type GetCredentialsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*GetCredentialsResponse_Credentials
	//	*GetCredentialsResponse_Raw
	Result isGetCredentialsResponse_Result `protobuf_oneof:"result"`
}

func (x *GetCredentialsResponse) Reset() {
	*x = GetCredentialsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[110]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetCredentialsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetCredentialsResponse) ProtoMessage() {}

func (x *GetCredentialsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[110]
	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 GetCredentialsResponse.ProtoReflect.Descriptor instead.
func (*GetCredentialsResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{110}
}

func (m *GetCredentialsResponse) GetResult() isGetCredentialsResponse_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *GetCredentialsResponse) GetCredentials() *v1.Secret {
	if x, ok := x.GetResult().(*GetCredentialsResponse_Credentials); ok {
		return x.Credentials
	}
	return nil
}

func (x *GetCredentialsResponse) GetRaw() []byte {
	if x, ok := x.GetResult().(*GetCredentialsResponse_Raw); ok {
		return x.Raw
	}
	return nil
}

type isGetCredentialsResponse_Result interface {
	isGetCredentialsResponse_Result()
}

type GetCredentialsResponse_Credentials struct {
	// credentials is the structured Kubernetes Secret containing the credentials.
	Credentials *v1.Secret `protobuf:"bytes,1,opt,name=credentials,proto3,oneof"`
}

type GetCredentialsResponse_Raw struct {
	// raw is the raw YAML representation of the credentials.
	Raw []byte `protobuf:"bytes,2,opt,name=raw,proto3,oneof"`
}

func (*GetCredentialsResponse_Credentials) isGetCredentialsResponse_Result() {}

func (*GetCredentialsResponse_Raw) isGetCredentialsResponse_Result() {}

// ListCredentialsRequest is the request for listing all credentials in a project.
type ListCredentialsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project whose credentials will be listed.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
}

func (x *ListCredentialsRequest) Reset() {
	*x = ListCredentialsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[111]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListCredentialsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListCredentialsRequest) ProtoMessage() {}

func (x *ListCredentialsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[111]
	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 ListCredentialsRequest.ProtoReflect.Descriptor instead.
func (*ListCredentialsRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{111}
}

func (x *ListCredentialsRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

// ListCredentialsResponse contains a list of credentials for the specified project.
type ListCredentialsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// credentials is the list of Kubernetes Secrets containing the credentials.
	Credentials []*v1.Secret `protobuf:"bytes,1,rep,name=credentials,proto3" json:"credentials,omitempty"`
}

func (x *ListCredentialsResponse) Reset() {
	*x = ListCredentialsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[112]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListCredentialsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListCredentialsResponse) ProtoMessage() {}

func (x *ListCredentialsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[112]
	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 ListCredentialsResponse.ProtoReflect.Descriptor instead.
func (*ListCredentialsResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{112}
}

func (x *ListCredentialsResponse) GetCredentials() []*v1.Secret {
	if x != nil {
		return x.Credentials
	}
	return nil
}

// UpdateCredentialsRequest is the request for updating existing credentials.
type UpdateCredentialsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the credentials.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the credentials to update.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// description is a human-readable description of the credentials.
	Description string `protobuf:"bytes,8,opt,name=description,proto3" json:"description,omitempty"`
	// type specifies the credential type (git, helm, image).
	Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
	// repo_url is the URL of the repository or registry these credentials apply to.
	RepoUrl string `protobuf:"bytes,4,opt,name=repo_url,json=repoURL,proto3" json:"repo_url,omitempty"`
	// repo_url_is_regex indicates whether repo_url should be treated as a regular expression.
	RepoUrlIsRegex bool `protobuf:"varint,5,opt,name=repo_url_is_regex,json=repoURLIsRegex,proto3" json:"repo_url_is_regex,omitempty"`
	// username is the username for authentication.
	Username string `protobuf:"bytes,6,opt,name=username,proto3" json:"username,omitempty"`
	// password is the password or token for authentication.
	Password string `protobuf:"bytes,7,opt,name=password,proto3" json:"password,omitempty"`
}

func (x *UpdateCredentialsRequest) Reset() {
	*x = UpdateCredentialsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[113]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateCredentialsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateCredentialsRequest) ProtoMessage() {}

func (x *UpdateCredentialsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[113]
	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 UpdateCredentialsRequest.ProtoReflect.Descriptor instead.
func (*UpdateCredentialsRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{113}
}

func (x *UpdateCredentialsRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *UpdateCredentialsRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *UpdateCredentialsRequest) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *UpdateCredentialsRequest) GetType() string {
	if x != nil {
		return x.Type
	}
	return ""
}

func (x *UpdateCredentialsRequest) GetRepoUrl() string {
	if x != nil {
		return x.RepoUrl
	}
	return ""
}

func (x *UpdateCredentialsRequest) GetRepoUrlIsRegex() bool {
	if x != nil {
		return x.RepoUrlIsRegex
	}
	return false
}

func (x *UpdateCredentialsRequest) GetUsername() string {
	if x != nil {
		return x.Username
	}
	return ""
}

func (x *UpdateCredentialsRequest) GetPassword() string {
	if x != nil {
		return x.Password
	}
	return ""
}

// UpdateCredentialsResponse contains the updated credentials information.
type UpdateCredentialsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// credentials is the updated Kubernetes Secret containing the credentials.
	Credentials *v1.Secret `protobuf:"bytes,1,opt,name=credentials,proto3" json:"credentials,omitempty"`
}

func (x *UpdateCredentialsResponse) Reset() {
	*x = UpdateCredentialsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[114]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateCredentialsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateCredentialsResponse) ProtoMessage() {}

func (x *UpdateCredentialsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[114]
	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 UpdateCredentialsResponse.ProtoReflect.Descriptor instead.
func (*UpdateCredentialsResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{114}
}

func (x *UpdateCredentialsResponse) GetCredentials() *v1.Secret {
	if x != nil {
		return x.Credentials
	}
	return nil
}

// ListProjectSecretsRequest is the request for listing all secrets in a project.
type ListProjectSecretsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project whose secrets will be listed.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
}

func (x *ListProjectSecretsRequest) Reset() {
	*x = ListProjectSecretsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[115]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListProjectSecretsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListProjectSecretsRequest) ProtoMessage() {}

func (x *ListProjectSecretsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[115]
	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 ListProjectSecretsRequest.ProtoReflect.Descriptor instead.
func (*ListProjectSecretsRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{115}
}

func (x *ListProjectSecretsRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

// ListProjectSecretsResponse contains a list of secrets for the specified project.
type ListProjectSecretsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// secrets is the list of Kubernetes Secrets within the project.
	Secrets []*v1.Secret `protobuf:"bytes,1,rep,name=secrets,proto3" json:"secrets,omitempty"`
}

func (x *ListProjectSecretsResponse) Reset() {
	*x = ListProjectSecretsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[116]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListProjectSecretsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListProjectSecretsResponse) ProtoMessage() {}

func (x *ListProjectSecretsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[116]
	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 ListProjectSecretsResponse.ProtoReflect.Descriptor instead.
func (*ListProjectSecretsResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{116}
}

func (x *ListProjectSecretsResponse) GetSecrets() []*v1.Secret {
	if x != nil {
		return x.Secrets
	}
	return nil
}

// CreateProjectSecretRequest is the request for creating a new secret within a project.
type CreateProjectSecretRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project where the secret will be created.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the secret to create.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// description is a human-readable description of the secret.
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// data contains the key-value pairs that make up the secret data.
	Data map[string]string `protobuf:"bytes,4,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *CreateProjectSecretRequest) Reset() {
	*x = CreateProjectSecretRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[117]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateProjectSecretRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateProjectSecretRequest) ProtoMessage() {}

func (x *CreateProjectSecretRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[117]
	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 CreateProjectSecretRequest.ProtoReflect.Descriptor instead.
func (*CreateProjectSecretRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{117}
}

func (x *CreateProjectSecretRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *CreateProjectSecretRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *CreateProjectSecretRequest) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *CreateProjectSecretRequest) GetData() map[string]string {
	if x != nil {
		return x.Data
	}
	return nil
}

// CreateProjectSecretResponse contains the newly created project secret.
type CreateProjectSecretResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// secret is the created Kubernetes Secret within the project.
	Secret *v1.Secret `protobuf:"bytes,1,opt,name=secret,proto3" json:"secret,omitempty"`
}

func (x *CreateProjectSecretResponse) Reset() {
	*x = CreateProjectSecretResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[118]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateProjectSecretResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateProjectSecretResponse) ProtoMessage() {}

func (x *CreateProjectSecretResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[118]
	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 CreateProjectSecretResponse.ProtoReflect.Descriptor instead.
func (*CreateProjectSecretResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{118}
}

func (x *CreateProjectSecretResponse) GetSecret() *v1.Secret {
	if x != nil {
		return x.Secret
	}
	return nil
}

// UpdateProjectSecretRequest is the request for updating an existing project secret.
type UpdateProjectSecretRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the secret.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the secret to update.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// description is a human-readable description of the secret.
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// data contains the key-value pairs that make up the secret data.
	Data map[string]string `protobuf:"bytes,4,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *UpdateProjectSecretRequest) Reset() {
	*x = UpdateProjectSecretRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[119]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateProjectSecretRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateProjectSecretRequest) ProtoMessage() {}

func (x *UpdateProjectSecretRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[119]
	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 UpdateProjectSecretRequest.ProtoReflect.Descriptor instead.
func (*UpdateProjectSecretRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{119}
}

func (x *UpdateProjectSecretRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *UpdateProjectSecretRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *UpdateProjectSecretRequest) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *UpdateProjectSecretRequest) GetData() map[string]string {
	if x != nil {
		return x.Data
	}
	return nil
}

// UpdateProjectSecretResponse contains the updated project secret information.
type UpdateProjectSecretResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// secret is the updated Kubernetes Secret within the project.
	Secret *v1.Secret `protobuf:"bytes,1,opt,name=secret,proto3" json:"secret,omitempty"`
}

func (x *UpdateProjectSecretResponse) Reset() {
	*x = UpdateProjectSecretResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[120]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateProjectSecretResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateProjectSecretResponse) ProtoMessage() {}

func (x *UpdateProjectSecretResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[120]
	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 UpdateProjectSecretResponse.ProtoReflect.Descriptor instead.
func (*UpdateProjectSecretResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{120}
}

func (x *UpdateProjectSecretResponse) GetSecret() *v1.Secret {
	if x != nil {
		return x.Secret
	}
	return nil
}

// DeleteProjectSecretRequest is the request for deleting a project secret.
type DeleteProjectSecretRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the secret.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the secret to delete.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *DeleteProjectSecretRequest) Reset() {
	*x = DeleteProjectSecretRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[121]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteProjectSecretRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteProjectSecretRequest) ProtoMessage() {}

func (x *DeleteProjectSecretRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[121]
	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 DeleteProjectSecretRequest.ProtoReflect.Descriptor instead.
func (*DeleteProjectSecretRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{121}
}

func (x *DeleteProjectSecretRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *DeleteProjectSecretRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// DeleteProjectSecretResponse is the response returned after deleting a project secret.
type DeleteProjectSecretResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DeleteProjectSecretResponse) Reset() {
	*x = DeleteProjectSecretResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[122]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteProjectSecretResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteProjectSecretResponse) ProtoMessage() {}

func (x *DeleteProjectSecretResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[122]
	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 DeleteProjectSecretResponse.ProtoReflect.Descriptor instead.
func (*DeleteProjectSecretResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{122}
}

// ListAnalysisTemplatesRequest is the request for listing all analysis templates in a project.
type ListAnalysisTemplatesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project whose analysis templates will be listed.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
}

func (x *ListAnalysisTemplatesRequest) Reset() {
	*x = ListAnalysisTemplatesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[123]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListAnalysisTemplatesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListAnalysisTemplatesRequest) ProtoMessage() {}

func (x *ListAnalysisTemplatesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[123]
	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 ListAnalysisTemplatesRequest.ProtoReflect.Descriptor instead.
func (*ListAnalysisTemplatesRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{123}
}

func (x *ListAnalysisTemplatesRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

// ListAnalysisTemplatesResponse contains a list of analysis templates for the specified project.
type ListAnalysisTemplatesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// analysis_templates is the list of AnalysisTemplate resources within the project.
	AnalysisTemplates []*v1alpha11.AnalysisTemplate `protobuf:"bytes,1,rep,name=analysis_templates,json=analysisTemplates,proto3" json:"analysis_templates,omitempty"`
}

func (x *ListAnalysisTemplatesResponse) Reset() {
	*x = ListAnalysisTemplatesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[124]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListAnalysisTemplatesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListAnalysisTemplatesResponse) ProtoMessage() {}

func (x *ListAnalysisTemplatesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[124]
	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 ListAnalysisTemplatesResponse.ProtoReflect.Descriptor instead.
func (*ListAnalysisTemplatesResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{124}
}

func (x *ListAnalysisTemplatesResponse) GetAnalysisTemplates() []*v1alpha11.AnalysisTemplate {
	if x != nil {
		return x.AnalysisTemplates
	}
	return nil
}

// GetAnalysisTemplateRequest is the request for retrieving a specific analysis template.
type GetAnalysisTemplateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the analysis template.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the analysis template to retrieve.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// format specifies the desired response format (structured object or raw YAML).
	Format RawFormat `protobuf:"varint,3,opt,name=format,proto3,enum=akuity.io.kargo.service.v1alpha1.RawFormat" json:"format,omitempty"`
}

func (x *GetAnalysisTemplateRequest) Reset() {
	*x = GetAnalysisTemplateRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[125]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetAnalysisTemplateRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetAnalysisTemplateRequest) ProtoMessage() {}

func (x *GetAnalysisTemplateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[125]
	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 GetAnalysisTemplateRequest.ProtoReflect.Descriptor instead.
func (*GetAnalysisTemplateRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{125}
}

func (x *GetAnalysisTemplateRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *GetAnalysisTemplateRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetAnalysisTemplateRequest) GetFormat() RawFormat {
	if x != nil {
		return x.Format
	}
	return RawFormat_RAW_FORMAT_UNSPECIFIED
}

// GetAnalysisTemplateResponse contains the requested analysis template information.
type GetAnalysisTemplateResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*GetAnalysisTemplateResponse_AnalysisTemplate
	//	*GetAnalysisTemplateResponse_Raw
	Result isGetAnalysisTemplateResponse_Result `protobuf_oneof:"result"`
}

func (x *GetAnalysisTemplateResponse) Reset() {
	*x = GetAnalysisTemplateResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[126]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetAnalysisTemplateResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetAnalysisTemplateResponse) ProtoMessage() {}

func (x *GetAnalysisTemplateResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_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 GetAnalysisTemplateResponse.ProtoReflect.Descriptor instead.
func (*GetAnalysisTemplateResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{126}
}

func (m *GetAnalysisTemplateResponse) GetResult() isGetAnalysisTemplateResponse_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *GetAnalysisTemplateResponse) GetAnalysisTemplate() *v1alpha11.AnalysisTemplate {
	if x, ok := x.GetResult().(*GetAnalysisTemplateResponse_AnalysisTemplate); ok {
		return x.AnalysisTemplate
	}
	return nil
}

func (x *GetAnalysisTemplateResponse) GetRaw() []byte {
	if x, ok := x.GetResult().(*GetAnalysisTemplateResponse_Raw); ok {
		return x.Raw
	}
	return nil
}

type isGetAnalysisTemplateResponse_Result interface {
	isGetAnalysisTemplateResponse_Result()
}

type GetAnalysisTemplateResponse_AnalysisTemplate struct {
	// analysis_template is the structured AnalysisTemplate resource.
	AnalysisTemplate *v1alpha11.AnalysisTemplate `protobuf:"bytes,1,opt,name=analysis_template,json=analysisTemplate,proto3,oneof"`
}

type GetAnalysisTemplateResponse_Raw struct {
	// raw is the raw YAML representation of the analysis template.
	Raw []byte `protobuf:"bytes,2,opt,name=raw,proto3,oneof"`
}

func (*GetAnalysisTemplateResponse_AnalysisTemplate) isGetAnalysisTemplateResponse_Result() {}

func (*GetAnalysisTemplateResponse_Raw) isGetAnalysisTemplateResponse_Result() {}

// DeleteAnalysisTemplateRequest is the request for deleting an analysis template.
type DeleteAnalysisTemplateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the analysis template.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the analysis template to delete.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *DeleteAnalysisTemplateRequest) Reset() {
	*x = DeleteAnalysisTemplateRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[127]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteAnalysisTemplateRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteAnalysisTemplateRequest) ProtoMessage() {}

func (x *DeleteAnalysisTemplateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_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 DeleteAnalysisTemplateRequest.ProtoReflect.Descriptor instead.
func (*DeleteAnalysisTemplateRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{127}
}

func (x *DeleteAnalysisTemplateRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *DeleteAnalysisTemplateRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// DeleteAnalysisTemplateResponse is the response returned after deleting an analysis template.
type DeleteAnalysisTemplateResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DeleteAnalysisTemplateResponse) Reset() {
	*x = DeleteAnalysisTemplateResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[128]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteAnalysisTemplateResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteAnalysisTemplateResponse) ProtoMessage() {}

func (x *DeleteAnalysisTemplateResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_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 DeleteAnalysisTemplateResponse.ProtoReflect.Descriptor instead.
func (*DeleteAnalysisTemplateResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{128}
}

// ListClusterAnalysisTemplatesRequest is the request for listing all cluster-level analysis templates.
type ListClusterAnalysisTemplatesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ListClusterAnalysisTemplatesRequest) Reset() {
	*x = ListClusterAnalysisTemplatesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[129]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListClusterAnalysisTemplatesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListClusterAnalysisTemplatesRequest) ProtoMessage() {}

func (x *ListClusterAnalysisTemplatesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_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 ListClusterAnalysisTemplatesRequest.ProtoReflect.Descriptor instead.
func (*ListClusterAnalysisTemplatesRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{129}
}

// ListClusterAnalysisTemplatesResponse contains a list of cluster-level analysis templates.
type ListClusterAnalysisTemplatesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// cluster_analysis_templates is the list of ClusterAnalysisTemplate resources.
	ClusterAnalysisTemplates []*v1alpha11.ClusterAnalysisTemplate `protobuf:"bytes,1,rep,name=cluster_analysis_templates,json=clusteranalysisTemplates,proto3" json:"cluster_analysis_templates,omitempty"`
}

func (x *ListClusterAnalysisTemplatesResponse) Reset() {
	*x = ListClusterAnalysisTemplatesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[130]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListClusterAnalysisTemplatesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListClusterAnalysisTemplatesResponse) ProtoMessage() {}

func (x *ListClusterAnalysisTemplatesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_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 ListClusterAnalysisTemplatesResponse.ProtoReflect.Descriptor instead.
func (*ListClusterAnalysisTemplatesResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{130}
}

func (x *ListClusterAnalysisTemplatesResponse) GetClusterAnalysisTemplates() []*v1alpha11.ClusterAnalysisTemplate {
	if x != nil {
		return x.ClusterAnalysisTemplates
	}
	return nil
}

// GetClusterAnalysisTemplateRequest is the request for retrieving a specific cluster analysis template.
type GetClusterAnalysisTemplateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// name is the name of the cluster analysis template to retrieve.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// format specifies the desired response format (structured object or raw YAML).
	Format RawFormat `protobuf:"varint,3,opt,name=format,proto3,enum=akuity.io.kargo.service.v1alpha1.RawFormat" json:"format,omitempty"`
}

func (x *GetClusterAnalysisTemplateRequest) Reset() {
	*x = GetClusterAnalysisTemplateRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[131]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetClusterAnalysisTemplateRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetClusterAnalysisTemplateRequest) ProtoMessage() {}

func (x *GetClusterAnalysisTemplateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_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 GetClusterAnalysisTemplateRequest.ProtoReflect.Descriptor instead.
func (*GetClusterAnalysisTemplateRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{131}
}

func (x *GetClusterAnalysisTemplateRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetClusterAnalysisTemplateRequest) GetFormat() RawFormat {
	if x != nil {
		return x.Format
	}
	return RawFormat_RAW_FORMAT_UNSPECIFIED
}

// GetClusterAnalysisTemplateResponse contains the requested cluster analysis template information.
type GetClusterAnalysisTemplateResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*GetClusterAnalysisTemplateResponse_ClusterAnalysisTemplate
	//	*GetClusterAnalysisTemplateResponse_Raw
	Result isGetClusterAnalysisTemplateResponse_Result `protobuf_oneof:"result"`
}

func (x *GetClusterAnalysisTemplateResponse) Reset() {
	*x = GetClusterAnalysisTemplateResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[132]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetClusterAnalysisTemplateResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetClusterAnalysisTemplateResponse) ProtoMessage() {}

func (x *GetClusterAnalysisTemplateResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_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 GetClusterAnalysisTemplateResponse.ProtoReflect.Descriptor instead.
func (*GetClusterAnalysisTemplateResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{132}
}

func (m *GetClusterAnalysisTemplateResponse) GetResult() isGetClusterAnalysisTemplateResponse_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *GetClusterAnalysisTemplateResponse) GetClusterAnalysisTemplate() *v1alpha11.ClusterAnalysisTemplate {
	if x, ok := x.GetResult().(*GetClusterAnalysisTemplateResponse_ClusterAnalysisTemplate); ok {
		return x.ClusterAnalysisTemplate
	}
	return nil
}

func (x *GetClusterAnalysisTemplateResponse) GetRaw() []byte {
	if x, ok := x.GetResult().(*GetClusterAnalysisTemplateResponse_Raw); ok {
		return x.Raw
	}
	return nil
}

type isGetClusterAnalysisTemplateResponse_Result interface {
	isGetClusterAnalysisTemplateResponse_Result()
}

type GetClusterAnalysisTemplateResponse_ClusterAnalysisTemplate struct {
	// cluster_analysis_template is the structured ClusterAnalysisTemplate resource.
	ClusterAnalysisTemplate *v1alpha11.ClusterAnalysisTemplate `protobuf:"bytes,1,opt,name=cluster_analysis_template,json=clusterAnalysisTemplate,proto3,oneof"`
}

type GetClusterAnalysisTemplateResponse_Raw struct {
	// raw is the raw YAML representation of the cluster analysis template.
	Raw []byte `protobuf:"bytes,2,opt,name=raw,proto3,oneof"`
}

func (*GetClusterAnalysisTemplateResponse_ClusterAnalysisTemplate) isGetClusterAnalysisTemplateResponse_Result() {
}

func (*GetClusterAnalysisTemplateResponse_Raw) isGetClusterAnalysisTemplateResponse_Result() {}

// DeleteClusterAnalysisTemplateRequest is the request for deleting a cluster analysis template.
type DeleteClusterAnalysisTemplateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// name is the name of the cluster analysis template to delete.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *DeleteClusterAnalysisTemplateRequest) Reset() {
	*x = DeleteClusterAnalysisTemplateRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[133]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteClusterAnalysisTemplateRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteClusterAnalysisTemplateRequest) ProtoMessage() {}

func (x *DeleteClusterAnalysisTemplateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_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 DeleteClusterAnalysisTemplateRequest.ProtoReflect.Descriptor instead.
func (*DeleteClusterAnalysisTemplateRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{133}
}

func (x *DeleteClusterAnalysisTemplateRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// DeleteClusterAnalysisTemplateResponse is the response returned after deleting a cluster analysis template.
type DeleteClusterAnalysisTemplateResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DeleteClusterAnalysisTemplateResponse) Reset() {
	*x = DeleteClusterAnalysisTemplateResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[134]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteClusterAnalysisTemplateResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteClusterAnalysisTemplateResponse) ProtoMessage() {}

func (x *DeleteClusterAnalysisTemplateResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[134]
	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 DeleteClusterAnalysisTemplateResponse.ProtoReflect.Descriptor instead.
func (*DeleteClusterAnalysisTemplateResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{134}
}

// GetAnalysisRunRequest is the request for retrieving a specific analysis run.
type GetAnalysisRunRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// namespace is the namespace containing the analysis run.
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// name is the name of the analysis run to retrieve.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// format specifies the desired response format (structured object or raw YAML).
	Format RawFormat `protobuf:"varint,3,opt,name=format,proto3,enum=akuity.io.kargo.service.v1alpha1.RawFormat" json:"format,omitempty"`
}

func (x *GetAnalysisRunRequest) Reset() {
	*x = GetAnalysisRunRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[135]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetAnalysisRunRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetAnalysisRunRequest) ProtoMessage() {}

func (x *GetAnalysisRunRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[135]
	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 GetAnalysisRunRequest.ProtoReflect.Descriptor instead.
func (*GetAnalysisRunRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{135}
}

func (x *GetAnalysisRunRequest) GetNamespace() string {
	if x != nil {
		return x.Namespace
	}
	return ""
}

func (x *GetAnalysisRunRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetAnalysisRunRequest) GetFormat() RawFormat {
	if x != nil {
		return x.Format
	}
	return RawFormat_RAW_FORMAT_UNSPECIFIED
}

// GetAnalysisRunResponse contains the requested analysis run information.
type GetAnalysisRunResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*GetAnalysisRunResponse_AnalysisRun
	//	*GetAnalysisRunResponse_Raw
	Result isGetAnalysisRunResponse_Result `protobuf_oneof:"result"`
}

func (x *GetAnalysisRunResponse) Reset() {
	*x = GetAnalysisRunResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[136]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetAnalysisRunResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetAnalysisRunResponse) ProtoMessage() {}

func (x *GetAnalysisRunResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[136]
	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 GetAnalysisRunResponse.ProtoReflect.Descriptor instead.
func (*GetAnalysisRunResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{136}
}

func (m *GetAnalysisRunResponse) GetResult() isGetAnalysisRunResponse_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *GetAnalysisRunResponse) GetAnalysisRun() *v1alpha11.AnalysisRun {
	if x, ok := x.GetResult().(*GetAnalysisRunResponse_AnalysisRun); ok {
		return x.AnalysisRun
	}
	return nil
}

func (x *GetAnalysisRunResponse) GetRaw() []byte {
	if x, ok := x.GetResult().(*GetAnalysisRunResponse_Raw); ok {
		return x.Raw
	}
	return nil
}

type isGetAnalysisRunResponse_Result interface {
	isGetAnalysisRunResponse_Result()
}

type GetAnalysisRunResponse_AnalysisRun struct {
	// analysis_run is the structured AnalysisRun resource.
	AnalysisRun *v1alpha11.AnalysisRun `protobuf:"bytes,1,opt,name=analysis_run,json=analysisRun,proto3,oneof"`
}

type GetAnalysisRunResponse_Raw struct {
	// raw is the raw YAML representation of the analysis run.
	Raw []byte `protobuf:"bytes,2,opt,name=raw,proto3,oneof"`
}

func (*GetAnalysisRunResponse_AnalysisRun) isGetAnalysisRunResponse_Result() {}

func (*GetAnalysisRunResponse_Raw) isGetAnalysisRunResponse_Result() {}

// GetAnalysisRunLogsRequest is the request for retrieving logs from an analysis run.
type GetAnalysisRunLogsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// namespace is the namespace containing the analysis run.
	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
	// name is the name of the analysis run whose logs to retrieve.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// metric_name is the specific metric whose logs to retrieve.
	MetricName string `protobuf:"bytes,3,opt,name=metric_name,json=metricName,proto3" json:"metric_name,omitempty"`
	// container_name is the specific container whose logs to retrieve.
	ContainerName string `protobuf:"bytes,4,opt,name=container_name,json=containerName,proto3" json:"container_name,omitempty"`
}

func (x *GetAnalysisRunLogsRequest) Reset() {
	*x = GetAnalysisRunLogsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[137]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetAnalysisRunLogsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetAnalysisRunLogsRequest) ProtoMessage() {}

func (x *GetAnalysisRunLogsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[137]
	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 GetAnalysisRunLogsRequest.ProtoReflect.Descriptor instead.
func (*GetAnalysisRunLogsRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{137}
}

func (x *GetAnalysisRunLogsRequest) GetNamespace() string {
	if x != nil {
		return x.Namespace
	}
	return ""
}

func (x *GetAnalysisRunLogsRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetAnalysisRunLogsRequest) GetMetricName() string {
	if x != nil {
		return x.MetricName
	}
	return ""
}

func (x *GetAnalysisRunLogsRequest) GetContainerName() string {
	if x != nil {
		return x.ContainerName
	}
	return ""
}

// GetAnalysisRunLogsResponse contains a chunk of logs from the analysis run.
type GetAnalysisRunLogsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// chunk is a portion of the log output from the analysis run.
	Chunk string `protobuf:"bytes,1,opt,name=chunk,proto3" json:"chunk,omitempty"`
}

func (x *GetAnalysisRunLogsResponse) Reset() {
	*x = GetAnalysisRunLogsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[138]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetAnalysisRunLogsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetAnalysisRunLogsResponse) ProtoMessage() {}

func (x *GetAnalysisRunLogsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[138]
	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 GetAnalysisRunLogsResponse.ProtoReflect.Descriptor instead.
func (*GetAnalysisRunLogsResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{138}
}

func (x *GetAnalysisRunLogsResponse) GetChunk() string {
	if x != nil {
		return x.Chunk
	}
	return ""
}

// ListProjectEventsRequest is the request for listing events in a project.
type ListProjectEventsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project whose events will be listed.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
}

func (x *ListProjectEventsRequest) Reset() {
	*x = ListProjectEventsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[139]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListProjectEventsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListProjectEventsRequest) ProtoMessage() {}

func (x *ListProjectEventsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[139]
	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 ListProjectEventsRequest.ProtoReflect.Descriptor instead.
func (*ListProjectEventsRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{139}
}

func (x *ListProjectEventsRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

// ListProjectEventsResponse contains a list of events for the specified project.
type ListProjectEventsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// events is the list of Kubernetes Events within the project.
	Events []*v1.Event `protobuf:"bytes,1,rep,name=events,proto3" json:"events,omitempty"`
}

func (x *ListProjectEventsResponse) Reset() {
	*x = ListProjectEventsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[140]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListProjectEventsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListProjectEventsResponse) ProtoMessage() {}

func (x *ListProjectEventsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[140]
	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 ListProjectEventsResponse.ProtoReflect.Descriptor instead.
func (*ListProjectEventsResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{140}
}

func (x *ListProjectEventsResponse) GetEvents() []*v1.Event {
	if x != nil {
		return x.Events
	}
	return nil
}

// ListPromotionTasksRequest is the request for listing promotion tasks in a project.
type ListPromotionTasksRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project whose promotion tasks will be listed.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
}

func (x *ListPromotionTasksRequest) Reset() {
	*x = ListPromotionTasksRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[141]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListPromotionTasksRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListPromotionTasksRequest) ProtoMessage() {}

func (x *ListPromotionTasksRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[141]
	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 ListPromotionTasksRequest.ProtoReflect.Descriptor instead.
func (*ListPromotionTasksRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{141}
}

func (x *ListPromotionTasksRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

// ListPromotionTasksResponse contains a list of promotion tasks for the specified project.
type ListPromotionTasksResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// promotion_tasks is the list of PromotionTask resources within the project.
	PromotionTasks []*v1alpha1.PromotionTask `protobuf:"bytes,1,rep,name=promotion_tasks,json=promotionTasks,proto3" json:"promotion_tasks,omitempty"`
}

func (x *ListPromotionTasksResponse) Reset() {
	*x = ListPromotionTasksResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[142]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListPromotionTasksResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListPromotionTasksResponse) ProtoMessage() {}

func (x *ListPromotionTasksResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[142]
	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 ListPromotionTasksResponse.ProtoReflect.Descriptor instead.
func (*ListPromotionTasksResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{142}
}

func (x *ListPromotionTasksResponse) GetPromotionTasks() []*v1alpha1.PromotionTask {
	if x != nil {
		return x.PromotionTasks
	}
	return nil
}

// GetPromotionTaskRequest is the request for retrieving a specific promotion task.
type GetPromotionTaskRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the promotion task.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the promotion task to retrieve.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// format specifies the desired response format (structured object or raw YAML).
	Format RawFormat `protobuf:"varint,3,opt,name=format,proto3,enum=akuity.io.kargo.service.v1alpha1.RawFormat" json:"format,omitempty"`
}

func (x *GetPromotionTaskRequest) Reset() {
	*x = GetPromotionTaskRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[143]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetPromotionTaskRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetPromotionTaskRequest) ProtoMessage() {}

func (x *GetPromotionTaskRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[143]
	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 GetPromotionTaskRequest.ProtoReflect.Descriptor instead.
func (*GetPromotionTaskRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{143}
}

func (x *GetPromotionTaskRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *GetPromotionTaskRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetPromotionTaskRequest) GetFormat() RawFormat {
	if x != nil {
		return x.Format
	}
	return RawFormat_RAW_FORMAT_UNSPECIFIED
}

// GetPromotionTaskResponse contains the requested promotion task information.
type GetPromotionTaskResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*GetPromotionTaskResponse_PromotionTask
	//	*GetPromotionTaskResponse_Raw
	Result isGetPromotionTaskResponse_Result `protobuf_oneof:"result"`
}

func (x *GetPromotionTaskResponse) Reset() {
	*x = GetPromotionTaskResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[144]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetPromotionTaskResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetPromotionTaskResponse) ProtoMessage() {}

func (x *GetPromotionTaskResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[144]
	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 GetPromotionTaskResponse.ProtoReflect.Descriptor instead.
func (*GetPromotionTaskResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{144}
}

func (m *GetPromotionTaskResponse) GetResult() isGetPromotionTaskResponse_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *GetPromotionTaskResponse) GetPromotionTask() *v1alpha1.PromotionTask {
	if x, ok := x.GetResult().(*GetPromotionTaskResponse_PromotionTask); ok {
		return x.PromotionTask
	}
	return nil
}

func (x *GetPromotionTaskResponse) GetRaw() []byte {
	if x, ok := x.GetResult().(*GetPromotionTaskResponse_Raw); ok {
		return x.Raw
	}
	return nil
}

type isGetPromotionTaskResponse_Result interface {
	isGetPromotionTaskResponse_Result()
}

type GetPromotionTaskResponse_PromotionTask struct {
	// promotion_task is the structured PromotionTask resource.
	PromotionTask *v1alpha1.PromotionTask `protobuf:"bytes,1,opt,name=promotion_task,json=promotionTask,proto3,oneof"`
}

type GetPromotionTaskResponse_Raw struct {
	// raw is the raw YAML representation of the promotion task.
	Raw []byte `protobuf:"bytes,2,opt,name=raw,proto3,oneof"`
}

func (*GetPromotionTaskResponse_PromotionTask) isGetPromotionTaskResponse_Result() {}

func (*GetPromotionTaskResponse_Raw) isGetPromotionTaskResponse_Result() {}

// ListClusterPromotionTasksRequest is the request for listing all cluster-level promotion tasks.
type ListClusterPromotionTasksRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ListClusterPromotionTasksRequest) Reset() {
	*x = ListClusterPromotionTasksRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[145]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListClusterPromotionTasksRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListClusterPromotionTasksRequest) ProtoMessage() {}

func (x *ListClusterPromotionTasksRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[145]
	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 ListClusterPromotionTasksRequest.ProtoReflect.Descriptor instead.
func (*ListClusterPromotionTasksRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{145}
}

// ListClusterPromotionTasksResponse contains a list of cluster-level promotion tasks.
type ListClusterPromotionTasksResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// cluster_promotion_tasks is the list of ClusterPromotionTask resources.
	ClusterPromotionTasks []*v1alpha1.ClusterPromotionTask `protobuf:"bytes,1,rep,name=cluster_promotion_tasks,json=clusterPromotionTasks,proto3" json:"cluster_promotion_tasks,omitempty"`
}

func (x *ListClusterPromotionTasksResponse) Reset() {
	*x = ListClusterPromotionTasksResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[146]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListClusterPromotionTasksResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListClusterPromotionTasksResponse) ProtoMessage() {}

func (x *ListClusterPromotionTasksResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[146]
	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 ListClusterPromotionTasksResponse.ProtoReflect.Descriptor instead.
func (*ListClusterPromotionTasksResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{146}
}

func (x *ListClusterPromotionTasksResponse) GetClusterPromotionTasks() []*v1alpha1.ClusterPromotionTask {
	if x != nil {
		return x.ClusterPromotionTasks
	}
	return nil
}

// GetClusterPromotionTaskRequest is the request for retrieving a specific cluster promotion task.
type GetClusterPromotionTaskRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// name is the name of the cluster promotion task to retrieve.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// format specifies the desired response format (structured object or raw YAML).
	Format RawFormat `protobuf:"varint,3,opt,name=format,proto3,enum=akuity.io.kargo.service.v1alpha1.RawFormat" json:"format,omitempty"`
}

func (x *GetClusterPromotionTaskRequest) Reset() {
	*x = GetClusterPromotionTaskRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[147]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetClusterPromotionTaskRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetClusterPromotionTaskRequest) ProtoMessage() {}

func (x *GetClusterPromotionTaskRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[147]
	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 GetClusterPromotionTaskRequest.ProtoReflect.Descriptor instead.
func (*GetClusterPromotionTaskRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{147}
}

func (x *GetClusterPromotionTaskRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetClusterPromotionTaskRequest) GetFormat() RawFormat {
	if x != nil {
		return x.Format
	}
	return RawFormat_RAW_FORMAT_UNSPECIFIED
}

// GetClusterPromotionTaskResponse contains the requested cluster promotion task information.
type GetClusterPromotionTaskResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*GetClusterPromotionTaskResponse_PromotionTask
	//	*GetClusterPromotionTaskResponse_Raw
	Result isGetClusterPromotionTaskResponse_Result `protobuf_oneof:"result"`
}

func (x *GetClusterPromotionTaskResponse) Reset() {
	*x = GetClusterPromotionTaskResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[148]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetClusterPromotionTaskResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetClusterPromotionTaskResponse) ProtoMessage() {}

func (x *GetClusterPromotionTaskResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[148]
	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 GetClusterPromotionTaskResponse.ProtoReflect.Descriptor instead.
func (*GetClusterPromotionTaskResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{148}
}

func (m *GetClusterPromotionTaskResponse) GetResult() isGetClusterPromotionTaskResponse_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *GetClusterPromotionTaskResponse) GetPromotionTask() *v1alpha1.ClusterPromotionTask {
	if x, ok := x.GetResult().(*GetClusterPromotionTaskResponse_PromotionTask); ok {
		return x.PromotionTask
	}
	return nil
}

func (x *GetClusterPromotionTaskResponse) GetRaw() []byte {
	if x, ok := x.GetResult().(*GetClusterPromotionTaskResponse_Raw); ok {
		return x.Raw
	}
	return nil
}

type isGetClusterPromotionTaskResponse_Result interface {
	isGetClusterPromotionTaskResponse_Result()
}

type GetClusterPromotionTaskResponse_PromotionTask struct {
	// promotion_task is the structured ClusterPromotionTask resource.
	PromotionTask *v1alpha1.ClusterPromotionTask `protobuf:"bytes,1,opt,name=promotion_task,json=clusterPromotionTask,proto3,oneof"`
}

type GetClusterPromotionTaskResponse_Raw struct {
	// raw is the raw YAML representation of the cluster promotion task.
	Raw []byte `protobuf:"bytes,2,opt,name=raw,proto3,oneof"`
}

func (*GetClusterPromotionTaskResponse_PromotionTask) isGetClusterPromotionTaskResponse_Result() {}

func (*GetClusterPromotionTaskResponse_Raw) isGetClusterPromotionTaskResponse_Result() {}

// CreateRoleRequest is the request for creating a new RBAC role.
type CreateRoleRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// role is the Role resource to create.
	Role *v1alpha12.Role `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
}

func (x *CreateRoleRequest) Reset() {
	*x = CreateRoleRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[149]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateRoleRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateRoleRequest) ProtoMessage() {}

func (x *CreateRoleRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[149]
	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 CreateRoleRequest.ProtoReflect.Descriptor instead.
func (*CreateRoleRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{149}
}

func (x *CreateRoleRequest) GetRole() *v1alpha12.Role {
	if x != nil {
		return x.Role
	}
	return nil
}

// CreateRoleResponse contains the newly created role information.
type CreateRoleResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// role is the created Role resource.
	Role *v1alpha12.Role `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
}

func (x *CreateRoleResponse) Reset() {
	*x = CreateRoleResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[150]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateRoleResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateRoleResponse) ProtoMessage() {}

func (x *CreateRoleResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[150]
	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 CreateRoleResponse.ProtoReflect.Descriptor instead.
func (*CreateRoleResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{150}
}

func (x *CreateRoleResponse) GetRole() *v1alpha12.Role {
	if x != nil {
		return x.Role
	}
	return nil
}

// DeleteRoleRequest is the request for deleting an RBAC role.
type DeleteRoleRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the role.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the role to delete.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *DeleteRoleRequest) Reset() {
	*x = DeleteRoleRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[151]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteRoleRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteRoleRequest) ProtoMessage() {}

func (x *DeleteRoleRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[151]
	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 DeleteRoleRequest.ProtoReflect.Descriptor instead.
func (*DeleteRoleRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{151}
}

func (x *DeleteRoleRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *DeleteRoleRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// DeleteRoleResponse is the response returned after deleting a role.
type DeleteRoleResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DeleteRoleResponse) Reset() {
	*x = DeleteRoleResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[152]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteRoleResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteRoleResponse) ProtoMessage() {}

func (x *DeleteRoleResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[152]
	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 DeleteRoleResponse.ProtoReflect.Descriptor instead.
func (*DeleteRoleResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{152}
}

// GetRoleRequest is the request for retrieving a specific RBAC role.
type GetRoleRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project containing the role.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// name is the name of the role to retrieve.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// as_resources indicates whether to return the role as resources or as a role object.
	AsResources bool `protobuf:"varint,3,opt,name=as_resources,json=asResources,proto3" json:"as_resources,omitempty"`
	// format specifies the desired response format (structured object or raw YAML).
	Format RawFormat `protobuf:"varint,4,opt,name=format,proto3,enum=akuity.io.kargo.service.v1alpha1.RawFormat" json:"format,omitempty"`
}

func (x *GetRoleRequest) Reset() {
	*x = GetRoleRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[153]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetRoleRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetRoleRequest) ProtoMessage() {}

func (x *GetRoleRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[153]
	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 GetRoleRequest.ProtoReflect.Descriptor instead.
func (*GetRoleRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{153}
}

func (x *GetRoleRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *GetRoleRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetRoleRequest) GetAsResources() bool {
	if x != nil {
		return x.AsResources
	}
	return false
}

func (x *GetRoleRequest) GetFormat() RawFormat {
	if x != nil {
		return x.Format
	}
	return RawFormat_RAW_FORMAT_UNSPECIFIED
}

// GetRoleResponse contains the requested role information.
type GetRoleResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Result:
	//
	//	*GetRoleResponse_Role
	//	*GetRoleResponse_Resources
	//	*GetRoleResponse_Raw
	Result isGetRoleResponse_Result `protobuf_oneof:"result"`
}

func (x *GetRoleResponse) Reset() {
	*x = GetRoleResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[154]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetRoleResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetRoleResponse) ProtoMessage() {}

func (x *GetRoleResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[154]
	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 GetRoleResponse.ProtoReflect.Descriptor instead.
func (*GetRoleResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{154}
}

func (m *GetRoleResponse) GetResult() isGetRoleResponse_Result {
	if m != nil {
		return m.Result
	}
	return nil
}

func (x *GetRoleResponse) GetRole() *v1alpha12.Role {
	if x, ok := x.GetResult().(*GetRoleResponse_Role); ok {
		return x.Role
	}
	return nil
}

func (x *GetRoleResponse) GetResources() *v1alpha12.RoleResources {
	if x, ok := x.GetResult().(*GetRoleResponse_Resources); ok {
		return x.Resources
	}
	return nil
}

func (x *GetRoleResponse) GetRaw() []byte {
	if x, ok := x.GetResult().(*GetRoleResponse_Raw); ok {
		return x.Raw
	}
	return nil
}

type isGetRoleResponse_Result interface {
	isGetRoleResponse_Result()
}

type GetRoleResponse_Role struct {
	// role is the structured Role resource.
	Role *v1alpha12.Role `protobuf:"bytes,1,opt,name=role,proto3,oneof"`
}

type GetRoleResponse_Resources struct {
	// resources is the structured RoleResources containing the role's resources.
	Resources *v1alpha12.RoleResources `protobuf:"bytes,2,opt,name=resources,proto3,oneof"`
}

type GetRoleResponse_Raw struct {
	// raw is the raw YAML representation of the role.
	Raw []byte `protobuf:"bytes,3,opt,name=raw,proto3,oneof"`
}

func (*GetRoleResponse_Role) isGetRoleResponse_Result() {}

func (*GetRoleResponse_Resources) isGetRoleResponse_Result() {}

func (*GetRoleResponse_Raw) isGetRoleResponse_Result() {}

// Claims represents a collection of OIDC claims for role-based access control.
type Claims struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Note: oneof and repeated do not work together
	// claims is the list of claims associated with a user or service account.
	Claims []*v1alpha12.Claim `protobuf:"bytes,1,rep,name=claims,proto3" json:"claims,omitempty"`
}

func (x *Claims) Reset() {
	*x = Claims{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[155]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Claims) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Claims) ProtoMessage() {}

func (x *Claims) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[155]
	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 Claims.ProtoReflect.Descriptor instead.
func (*Claims) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{155}
}

func (x *Claims) GetClaims() []*v1alpha12.Claim {
	if x != nil {
		return x.Claims
	}
	return nil
}

// GrantRequest is the request for granting a role to a user or resource.
type GrantRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project where the role will be granted.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// role is the name of the role to grant.
	Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
	// Types that are assignable to Request:
	//
	//	*GrantRequest_UserClaims
	//	*GrantRequest_ResourceDetails
	Request isGrantRequest_Request `protobuf_oneof:"request"`
}

func (x *GrantRequest) Reset() {
	*x = GrantRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[156]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GrantRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GrantRequest) ProtoMessage() {}

func (x *GrantRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[156]
	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 GrantRequest.ProtoReflect.Descriptor instead.
func (*GrantRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{156}
}

func (x *GrantRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *GrantRequest) GetRole() string {
	if x != nil {
		return x.Role
	}
	return ""
}

func (m *GrantRequest) GetRequest() isGrantRequest_Request {
	if m != nil {
		return m.Request
	}
	return nil
}

func (x *GrantRequest) GetUserClaims() *Claims {
	if x, ok := x.GetRequest().(*GrantRequest_UserClaims); ok {
		return x.UserClaims
	}
	return nil
}

func (x *GrantRequest) GetResourceDetails() *v1alpha12.ResourceDetails {
	if x, ok := x.GetRequest().(*GrantRequest_ResourceDetails); ok {
		return x.ResourceDetails
	}
	return nil
}

type isGrantRequest_Request interface {
	isGrantRequest_Request()
}

type GrantRequest_UserClaims struct {
	// user_claims are the OIDC claims for the user being granted the role.
	UserClaims *Claims `protobuf:"bytes,3,opt,name=user_claims,json=userClaims,proto3,oneof"`
}

type GrantRequest_ResourceDetails struct {
	// resource_details are the details of the resource being granted the role.
	ResourceDetails *v1alpha12.ResourceDetails `protobuf:"bytes,4,opt,name=resource_details,json=resourceDetails,proto3,oneof"`
}

func (*GrantRequest_UserClaims) isGrantRequest_Request() {}

func (*GrantRequest_ResourceDetails) isGrantRequest_Request() {}

// GrantResponse contains information about the granted role.
type GrantResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// role is the Role resource that was granted.
	Role *v1alpha12.Role `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
}

func (x *GrantResponse) Reset() {
	*x = GrantResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[157]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GrantResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GrantResponse) ProtoMessage() {}

func (x *GrantResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[157]
	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 GrantResponse.ProtoReflect.Descriptor instead.
func (*GrantResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{157}
}

func (x *GrantResponse) GetRole() *v1alpha12.Role {
	if x != nil {
		return x.Role
	}
	return nil
}

// ListRolesRequest is the request for listing all roles in a project.
type ListRolesRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project whose roles will be listed.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// as_resources indicates whether to return roles as resources or as role objects.
	AsResources bool `protobuf:"varint,2,opt,name=as_resources,json=asResources,proto3" json:"as_resources,omitempty"`
}

func (x *ListRolesRequest) Reset() {
	*x = ListRolesRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[158]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListRolesRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListRolesRequest) ProtoMessage() {}

func (x *ListRolesRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[158]
	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 ListRolesRequest.ProtoReflect.Descriptor instead.
func (*ListRolesRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{158}
}

func (x *ListRolesRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *ListRolesRequest) GetAsResources() bool {
	if x != nil {
		return x.AsResources
	}
	return false
}

// ListRolesResponse contains a list of roles for the specified project.
type ListRolesResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Note: oneof and repeated do not work together
	// roles is the list of Role resources when requested as roles.
	Roles []*v1alpha12.Role `protobuf:"bytes,1,rep,name=roles,proto3" json:"roles,omitempty"`
	// resources is the list of RoleResources when requested as resources.
	Resources []*v1alpha12.RoleResources `protobuf:"bytes,2,rep,name=resources,proto3" json:"resources,omitempty"`
}

func (x *ListRolesResponse) Reset() {
	*x = ListRolesResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[159]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListRolesResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListRolesResponse) ProtoMessage() {}

func (x *ListRolesResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[159]
	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 ListRolesResponse.ProtoReflect.Descriptor instead.
func (*ListRolesResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{159}
}

func (x *ListRolesResponse) GetRoles() []*v1alpha12.Role {
	if x != nil {
		return x.Roles
	}
	return nil
}

func (x *ListRolesResponse) GetResources() []*v1alpha12.RoleResources {
	if x != nil {
		return x.Resources
	}
	return nil
}

// RevokeRequest is the request for revoking a role from a user or resource.
type RevokeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// project is the name of the project where the role will be revoked.
	Project string `protobuf:"bytes,1,opt,name=project,proto3" json:"project,omitempty"`
	// role is the name of the role to revoke.
	Role string `protobuf:"bytes,2,opt,name=role,proto3" json:"role,omitempty"`
	// Types that are assignable to Request:
	//
	//	*RevokeRequest_UserClaims
	//	*RevokeRequest_ResourceDetails
	Request isRevokeRequest_Request `protobuf_oneof:"request"`
}

func (x *RevokeRequest) Reset() {
	*x = RevokeRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[160]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RevokeRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RevokeRequest) ProtoMessage() {}

func (x *RevokeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[160]
	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 RevokeRequest.ProtoReflect.Descriptor instead.
func (*RevokeRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{160}
}

func (x *RevokeRequest) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

func (x *RevokeRequest) GetRole() string {
	if x != nil {
		return x.Role
	}
	return ""
}

func (m *RevokeRequest) GetRequest() isRevokeRequest_Request {
	if m != nil {
		return m.Request
	}
	return nil
}

func (x *RevokeRequest) GetUserClaims() *Claims {
	if x, ok := x.GetRequest().(*RevokeRequest_UserClaims); ok {
		return x.UserClaims
	}
	return nil
}

func (x *RevokeRequest) GetResourceDetails() *v1alpha12.ResourceDetails {
	if x, ok := x.GetRequest().(*RevokeRequest_ResourceDetails); ok {
		return x.ResourceDetails
	}
	return nil
}

type isRevokeRequest_Request interface {
	isRevokeRequest_Request()
}

type RevokeRequest_UserClaims struct {
	// user_claims are the OIDC claims for the user whose role is being revoked.
	UserClaims *Claims `protobuf:"bytes,3,opt,name=user_claims,json=userClaims,proto3,oneof"`
}

type RevokeRequest_ResourceDetails struct {
	// resource_details are the details of the resource whose role is being revoked.
	ResourceDetails *v1alpha12.ResourceDetails `protobuf:"bytes,4,opt,name=resource_details,json=resourceDetails,proto3,oneof"`
}

func (*RevokeRequest_UserClaims) isRevokeRequest_Request() {}

func (*RevokeRequest_ResourceDetails) isRevokeRequest_Request() {}

// RevokeResponse contains information about the revoked role.
type RevokeResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// role is the Role resource that was revoked.
	Role *v1alpha12.Role `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
}

func (x *RevokeResponse) Reset() {
	*x = RevokeResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[161]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RevokeResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RevokeResponse) ProtoMessage() {}

func (x *RevokeResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[161]
	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 RevokeResponse.ProtoReflect.Descriptor instead.
func (*RevokeResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{161}
}

func (x *RevokeResponse) GetRole() *v1alpha12.Role {
	if x != nil {
		return x.Role
	}
	return nil
}

// UpdateRoleRequest is the request for updating an existing RBAC role.
type UpdateRoleRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// role is the updated Role resource.
	Role *v1alpha12.Role `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
}

func (x *UpdateRoleRequest) Reset() {
	*x = UpdateRoleRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[162]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateRoleRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateRoleRequest) ProtoMessage() {}

func (x *UpdateRoleRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[162]
	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 UpdateRoleRequest.ProtoReflect.Descriptor instead.
func (*UpdateRoleRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{162}
}

func (x *UpdateRoleRequest) GetRole() *v1alpha12.Role {
	if x != nil {
		return x.Role
	}
	return nil
}

// UpdateRoleResponse contains the updated role information.
type UpdateRoleResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// role is the updated Role resource.
	Role *v1alpha12.Role `protobuf:"bytes,1,opt,name=role,proto3" json:"role,omitempty"`
}

func (x *UpdateRoleResponse) Reset() {
	*x = UpdateRoleResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[163]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateRoleResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateRoleResponse) ProtoMessage() {}

func (x *UpdateRoleResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[163]
	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 UpdateRoleResponse.ProtoReflect.Descriptor instead.
func (*UpdateRoleResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{163}
}

func (x *UpdateRoleResponse) GetRole() *v1alpha12.Role {
	if x != nil {
		return x.Role
	}
	return nil
}

// ListClusterSecretsRequest is the request for listing all cluster-level secrets.
type ListClusterSecretsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ListClusterSecretsRequest) Reset() {
	*x = ListClusterSecretsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[164]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListClusterSecretsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListClusterSecretsRequest) ProtoMessage() {}

func (x *ListClusterSecretsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[164]
	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 ListClusterSecretsRequest.ProtoReflect.Descriptor instead.
func (*ListClusterSecretsRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{164}
}

// ListClusterSecretsResponse contains a list of cluster-level secrets.
type ListClusterSecretsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// secrets is the list of cluster-level Kubernetes Secrets.
	Secrets []*v1.Secret `protobuf:"bytes,1,rep,name=secrets,proto3" json:"secrets,omitempty"`
}

func (x *ListClusterSecretsResponse) Reset() {
	*x = ListClusterSecretsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[165]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ListClusterSecretsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListClusterSecretsResponse) ProtoMessage() {}

func (x *ListClusterSecretsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[165]
	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 ListClusterSecretsResponse.ProtoReflect.Descriptor instead.
func (*ListClusterSecretsResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{165}
}

func (x *ListClusterSecretsResponse) GetSecrets() []*v1.Secret {
	if x != nil {
		return x.Secrets
	}
	return nil
}

// CreateClusterSecretRequest is the request for creating a new cluster-level secret.
type CreateClusterSecretRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// name is the name of the cluster secret to create.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// data contains the key-value pairs that make up the secret data.
	Data map[string]string `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *CreateClusterSecretRequest) Reset() {
	*x = CreateClusterSecretRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[166]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateClusterSecretRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateClusterSecretRequest) ProtoMessage() {}

func (x *CreateClusterSecretRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[166]
	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 CreateClusterSecretRequest.ProtoReflect.Descriptor instead.
func (*CreateClusterSecretRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{166}
}

func (x *CreateClusterSecretRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *CreateClusterSecretRequest) GetData() map[string]string {
	if x != nil {
		return x.Data
	}
	return nil
}

// CreateClusterSecretResponse contains the newly created cluster secret.
type CreateClusterSecretResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// secret is the created cluster-level Kubernetes Secret.
	Secret *v1.Secret `protobuf:"bytes,1,opt,name=secret,proto3" json:"secret,omitempty"`
}

func (x *CreateClusterSecretResponse) Reset() {
	*x = CreateClusterSecretResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[167]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateClusterSecretResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateClusterSecretResponse) ProtoMessage() {}

func (x *CreateClusterSecretResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[167]
	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 CreateClusterSecretResponse.ProtoReflect.Descriptor instead.
func (*CreateClusterSecretResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{167}
}

func (x *CreateClusterSecretResponse) GetSecret() *v1.Secret {
	if x != nil {
		return x.Secret
	}
	return nil
}

// UpdateClusterSecretRequest is the request for updating an existing cluster secret.
type UpdateClusterSecretRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// name is the name of the cluster secret to update.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// data contains the key-value pairs that make up the secret data.
	Data map[string]string `protobuf:"bytes,2,rep,name=data,proto3" json:"data,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

func (x *UpdateClusterSecretRequest) Reset() {
	*x = UpdateClusterSecretRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[168]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateClusterSecretRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateClusterSecretRequest) ProtoMessage() {}

func (x *UpdateClusterSecretRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[168]
	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 UpdateClusterSecretRequest.ProtoReflect.Descriptor instead.
func (*UpdateClusterSecretRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{168}
}

func (x *UpdateClusterSecretRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *UpdateClusterSecretRequest) GetData() map[string]string {
	if x != nil {
		return x.Data
	}
	return nil
}

// UpdateClusterSecretResponse contains the updated cluster secret information.
type UpdateClusterSecretResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// secret is the updated cluster-level Kubernetes Secret.
	Secret *v1.Secret `protobuf:"bytes,1,opt,name=secret,proto3" json:"secret,omitempty"`
}

func (x *UpdateClusterSecretResponse) Reset() {
	*x = UpdateClusterSecretResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[169]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *UpdateClusterSecretResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UpdateClusterSecretResponse) ProtoMessage() {}

func (x *UpdateClusterSecretResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[169]
	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 UpdateClusterSecretResponse.ProtoReflect.Descriptor instead.
func (*UpdateClusterSecretResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{169}
}

func (x *UpdateClusterSecretResponse) GetSecret() *v1.Secret {
	if x != nil {
		return x.Secret
	}
	return nil
}

// DeleteClusterSecretRequest is the request for deleting a cluster secret.
type DeleteClusterSecretRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// name is the name of the cluster secret to delete.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
}

func (x *DeleteClusterSecretRequest) Reset() {
	*x = DeleteClusterSecretRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[170]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteClusterSecretRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteClusterSecretRequest) ProtoMessage() {}

func (x *DeleteClusterSecretRequest) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[170]
	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 DeleteClusterSecretRequest.ProtoReflect.Descriptor instead.
func (*DeleteClusterSecretRequest) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{170}
}

func (x *DeleteClusterSecretRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

// DeleteClusterSecretResponse is the response returned after deleting a cluster secret.
type DeleteClusterSecretResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DeleteClusterSecretResponse) Reset() {
	*x = DeleteClusterSecretResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_api_service_v1alpha1_service_proto_msgTypes[171]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DeleteClusterSecretResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteClusterSecretResponse) ProtoMessage() {}

func (x *DeleteClusterSecretResponse) ProtoReflect() protoreflect.Message {
	mi := &file_api_service_v1alpha1_service_proto_msgTypes[171]
	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 DeleteClusterSecretResponse.ProtoReflect.Descriptor instead.
func (*DeleteClusterSecretResponse) Descriptor() ([]byte, []int) {
	return file_api_service_v1alpha1_service_proto_rawDescGZIP(), []int{171}
}

var File_api_service_v1alpha1_service_proto protoreflect.FileDescriptor

var file_api_service_v1alpha1_service_proto_rawDesc = []byte{
	0x0a, 0x22, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x31,
	0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x12, 0x20, 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, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x61,
	0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x22, 0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61,
	0x74, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2b, 0x61, 0x70, 0x69, 0x2f, 0x73,
	0x74, 0x75, 0x62, 0x73, 0x2f, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2f, 0x76, 0x31,
	0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x62, 0x61, 0x63,
	0x2f, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61,
	0x74, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb8, 0x01, 0x0a, 0x11, 0x43, 0x6f,
	0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12,
	0x4a, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x2d, 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, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x00,
	0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x03, 0x63,
	0x6c, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 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, 0x56, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x48, 0x01, 0x52, 0x03, 0x63, 0x6c, 0x69, 0x88, 0x01,
	0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x06, 0x0a, 0x04,
	0x5f, 0x63, 0x6c, 0x69, 0x22, 0xfe, 0x01, 0x0a, 0x0b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1d,
	0x0a, 0x0a, 0x67, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x67, 0x69, 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x24, 0x0a,
	0x0e, 0x67, 0x69, 0x74, 0x5f, 0x74, 0x72, 0x65, 0x65, 0x5f, 0x64, 0x69, 0x72, 0x74, 0x79, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x67, 0x69, 0x74, 0x54, 0x72, 0x65, 0x65, 0x44, 0x69,
	0x72, 0x74, 0x79, 0x12, 0x39, 0x0a, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x52, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d,
	0x0a, 0x0a, 0x67, 0x6f, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x67, 0x6f, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a,
	0x08, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x08, 0x63, 0x6f, 0x6d, 0x70, 0x69, 0x6c, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61,
	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61,
	0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x17, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x6a,
	0x0a, 0x16, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x0c, 0x76, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d,
	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, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x76,
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65,
	0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3d,
	0x0a, 0x0b, 0x41, 0x72, 0x67, 0x6f, 0x43, 0x44, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x10, 0x0a,
	0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12,
	0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0xb2, 0x03,
	0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x0d, 0x61, 0x72, 0x67, 0x6f, 0x63, 0x64, 0x5f, 0x73, 0x68,
	0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
	0x41, 0x72, 0x67, 0x6f, 0x63, 0x64, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x52, 0x0c, 0x61, 0x72, 0x67, 0x6f, 0x63, 0x64, 0x53, 0x68, 0x61, 0x72, 0x64, 0x73, 0x12,
	0x3a, 0x0a, 0x19, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65,
	0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x17, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65,
	0x6d, 0x65, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x63,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x5f, 0x6e,
	0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17,
	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x4e, 0x61,
	0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x49, 0x0a, 0x22, 0x68, 0x61, 0x73, 0x5f, 0x61,
	0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x6c, 0x6f, 0x67, 0x73,
	0x5f, 0x75, 0x72, 0x6c, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x1d, 0x68, 0x61, 0x73, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73,
	0x52, 0x75, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x55, 0x72, 0x6c, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61,
	0x74, 0x65, 0x1a, 0x6e, 0x0a, 0x11, 0x41, 0x72, 0x67, 0x6f, 0x63, 0x64, 0x53, 0x68, 0x61, 0x72,
	0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x43, 0x0a, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 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, 0x72, 0x67, 0x6f,
	0x43, 0x44, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
	0x38, 0x01, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xb9, 0x01, 0x0a,
	0x17, 0x47, 0x65, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0b, 0x6f, 0x69, 0x64, 0x63,
	0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 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, 0x4f, 0x49, 0x44, 0x43, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x6f, 0x69, 0x64,
	0x63, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x64, 0x6d, 0x69, 0x6e,
	0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x41, 0x63, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73,
	0x6b, 0x69, 0x70, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08,
	0x73, 0x6b, 0x69, 0x70, 0x41, 0x75, 0x74, 0x68, 0x22, 0x84, 0x01, 0x0a, 0x0a, 0x4f, 0x49, 0x44,
	0x43, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x73, 0x73, 0x75, 0x65,
	0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x73, 0x73,
	0x75, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74,
	0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e,
	0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x18, 0x03, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x63,
	0x6c, 0x69, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22,
	0x2f, 0x0a, 0x11, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64,
	0x22, 0x2f, 0x0a, 0x12, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x69, 0x64, 0x5f, 0x74, 0x6f, 0x6b,
	0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x64, 0x54, 0x6f, 0x6b, 0x65,
	0x6e, 0x22, 0x33, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61,
	0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x61,
	0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x22, 0x76, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3c,
	0x0a, 0x19, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0c, 0x48, 0x00, 0x52, 0x17, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x05,
	0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x65,
	0x72, 0x72, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x6a,
	0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 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, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x3b, 0x0a, 0x1d, 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, 0x12, 0x1a, 0x0a, 0x08, 0x6d,
	0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d,
	0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x22, 0xbc, 0x01, 0x0a, 0x1c, 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, 0x75, 0x6c, 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x63, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x61, 0x6e,
	0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x17, 0x63,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x61,
	0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x66,
	0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x17, 0x75, 0x70, 0x64,
	0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x61, 0x6e, 0x69,
	0x66, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06,
	0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x7a, 0x0a, 0x1e, 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, 0x58, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 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, 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, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c,
	0x74, 0x73, 0x22, 0x33, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f,
	0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6d,
	0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d,
	0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x22, 0x76, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12,
	0x3c, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0c, 0x48, 0x00, 0x52, 0x17, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a,
	0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05,
	0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22,
	0x6a, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x07, 0x72, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 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, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x33, 0x0a, 0x15, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74,
	0x22, 0x76, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,
	0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x64, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6d, 0x61, 0x6e,
	0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x17, 0x64,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x61,
	0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x08,
	0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x6a, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x50, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x0b, 0x32, 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, 0x52, 0x65, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73,
	0x75, 0x6c, 0x74, 0x73, 0x22, 0x2d, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x67,
	0x65, 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, 0x59, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x73, 0x74, 0x61,
	0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
	0x2e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x06, 0x73, 0x74, 0x61, 0x67, 0x65, 0x73, 0x22, 0x2d,
	0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 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, 0xd3, 0x01,
	0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x58, 0x0a, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02,
	0x20, 0x03, 0x28, 0x0b, 0x32, 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, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67,
	0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65,
	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x1a, 0x63,
	0x0a, 0x0b, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a,
	0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
	0x3e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28,
	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, 0x54, 0x61, 0x67, 0x4d, 0x61, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
	0x02, 0x38, 0x01, 0x22, 0xba, 0x01, 0x0a, 0x06, 0x54, 0x61, 0x67, 0x4d, 0x61, 0x70, 0x12, 0x46,
	0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 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,
	0x54, 0x61, 0x67, 0x4d, 0x61, 0x70, 0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x1a, 0x68, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x45, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 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, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61,
	0x67, 0x65, 0x4d, 0x61, 0x70, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01,
	0x22, 0x9f, 0x01, 0x0a, 0x0d, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65, 0x4d,
	0x61, 0x70, 0x12, 0x53, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x67, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 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, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x67, 0x65,
	0x4d, 0x61, 0x70, 0x2e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
	0x06, 0x73, 0x74, 0x61, 0x67, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x67, 0x65,
	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
	0x38, 0x01, 0x22, 0x84, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x67, 0x65, 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, 0x75, 0x0a, 0x10, 0x47, 0x65, 0x74,
	0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a,
	0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70,
	0x68, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61,
	0x67, 0x65, 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, 0x42, 0x0a, 0x12, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 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,
	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x22, 0x6c, 0x0a, 0x13, 0x57, 0x61, 0x74, 0x63, 0x68, 0x53, 0x74, 0x61,
	0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x05, 0x73,
	0x74, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
	0x31, 0x2e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x12,
	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x22, 0x42, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x74, 0x61, 0x67,
	0x65, 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, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x0a,
	0x13, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61, 0x67, 0x65, 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, 0x22, 0x59, 0x0a, 0x14, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x74, 0x61,
	0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x05, 0x73, 0x74,
	0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
	0x2e, 0x53, 0x74, 0x61, 0x67, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x22, 0x5e, 0x0a,
	0x17, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d,
	0x61, 0x74, 0x18, 0x01, 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, 0x96, 0x01,
	0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0e, 0x63, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x33, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x1c, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x22, 0x1d, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x22, 0x1b, 0x0a, 0x19, 0x57, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x22, 0x8c, 0x01, 0x0a, 0x1a, 0x57, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x5a, 0x0a, 0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x63, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22,
	0x1d, 0x0a, 0x1b, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x7a,
	0x0a, 0x1c, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a,
	0x0a, 0x0e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x63, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x56, 0x0a, 0x15, 0x4c, 0x69,
	0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 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, 0x12, 0x19, 0x0a,
	0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05,
	0x73, 0x74, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61,
	0x67, 0x65, 0x22, 0x69, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0a,
	0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x2f, 0x2e, 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, 0x76,
	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x57, 0x0a,
	0x16, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 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, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06,
	0x5f, 0x73, 0x74, 0x61, 0x67, 0x65, 0x22, 0x7c, 0x0a, 0x17, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50,
	0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x4d, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d,
	0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x74, 0x79, 0x70, 0x65, 0x22, 0x88, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d,
	0x6f, 0x74, 0x69, 0x6f, 0x6e, 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,
	0x85, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6d,
	0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
	0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09,
	0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 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, 0x45, 0x0a, 0x15, 0x57, 0x61, 0x74, 0x63, 0x68,
	0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 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, 0x22, 0x7b,
	0x0a, 0x16, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6d,
	0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68,
	0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70, 0x72,
	0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x45, 0x0a, 0x15, 0x41,
	0x62, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 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, 0x22, 0x18, 0x0a, 0x16, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x0a, 0x14,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x6c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f,
	0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 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,
	0x7d, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72,
	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 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, 0x22, 0xa1,
	0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73,
	0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x70, 0x61, 0x67,
	0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x88, 0x01,
	0x01, 0x12, 0x1b, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x48, 0x02, 0x52, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x10,
	0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64,
	0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x07,
	0x0a, 0x05, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x66, 0x69, 0x6c, 0x74,
	0x65, 0x72, 0x22, 0x77, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63,
	0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x70, 0x72,
	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70,
	0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x08, 0x70, 0x72, 0x6f,
	0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x78, 0x0a, 0x17, 0x47,
	0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 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, 0x96, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f,
	0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
	0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48,
	0x00, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	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, 0x36,
	0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x1d, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
	0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x0a, 0x19, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72,
	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x8c, 0x01, 0x0a,
	0x1a, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0e, 0x70,
	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65,
	0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63,
	0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x37, 0x0a, 0x1b, 0x52,
	0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 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, 0x7a, 0x0a, 0x1c, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50,
	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f,
	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70,
	0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x22, 0x71, 0x0a, 0x15, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67,
	0x68, 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, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x14, 0x0a,
	0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74,
	0x61, 0x67, 0x65, 0x22, 0x18, 0x0a, 0x16, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x46, 0x72,
	0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5a, 0x0a,
	0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 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, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x17, 0x0a, 0x15, 0x44, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68,
	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, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x43, 0x0a, 0x06,
	0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 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, 0x7d, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67,
	0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e,
	0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x48, 0x00, 0x52, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67,
	0x68, 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,
	0x22, 0x2f, 0x0a, 0x13, 0x57, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 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, 0x22, 0x73, 0x0a, 0x14, 0x57, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68,
	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x07, 0x66, 0x72, 0x65,
	0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
	0x31, 0x2e, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67,
	0x68, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x15, 0x50, 0x72, 0x6f, 0x6d, 0x6f,
	0x74, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x67, 0x65, 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, 0x14, 0x0a, 0x05, 0x73, 0x74,
	0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65,
	0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x66, 0x72,
	0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0c, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x22,
	0x67, 0x0a, 0x16, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x61, 0x67,
	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x70, 0x72, 0x6f,
	0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70,
	0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x70,
	0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0x0a, 0x18, 0x50, 0x72, 0x6f,
	0x6d, 0x6f, 0x74, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 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,
	0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
	0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12,
	0x23, 0x0a, 0x0d, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x41,
	0x6c, 0x69, 0x61, 0x73, 0x22, 0x6c, 0x0a, 0x19, 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, 0x4f, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f,
	0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x22, 0xc5, 0x01, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69,
	0x67, 0x68, 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, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x5f, 0x62, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x42, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x6f,
	0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f,
	0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73,
	0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65,
	0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x07, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x73, 0x22, 0xdc, 0x01, 0x0a, 0x14, 0x51,
	0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x5a, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20,
	0x03, 0x28, 0x0b, 0x32, 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, 0x51, 0x75, 0x65, 0x72, 0x79, 0x46, 0x72, 0x65, 0x69,
	0x67, 0x68, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x1a,
	0x68, 0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
	0x12, 0x43, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x2d, 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, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x56, 0x0a, 0x0b, 0x46, 0x72, 0x65,
	0x69, 0x67, 0x68, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x47, 0x0a, 0x07, 0x66, 0x72, 0x65, 0x69,
	0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
	0x2e, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x07, 0x66, 0x72, 0x65, 0x69, 0x67, 0x68,
	0x74, 0x22, 0x83, 0x01, 0x0a, 0x19, 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, 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, 0x1b, 0x0a,
	0x09, 0x6f, 0x6c, 0x64, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x6f, 0x6c, 0x64, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x65,
	0x77, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e,
	0x65, 0x77, 0x41, 0x6c, 0x69, 0x61, 0x73, 0x22, 0x1c, 0x0a, 0x1a, 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, 0x22, 0x41, 0x0a, 0x0f, 0x52, 0x65, 0x76, 0x65, 0x72, 0x69, 0x66,
	0x79, 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, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x52, 0x65, 0x76, 0x65,
	0x72, 0x69, 0x66, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4a, 0x0a, 0x18,
	0x41, 0x62, 0x6f, 0x72, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 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, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x67, 0x65, 0x22, 0x1b, 0x0a, 0x19, 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, 0x22, 0x31, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x61, 0x72,
	0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 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, 0x69, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74,
	0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x4f, 0x0a, 0x0a, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57, 0x61,
	0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x0a, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75,
	0x73, 0x65, 0x73, 0x22, 0x88, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68,
	0x6f, 0x75, 0x73, 0x65, 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, 0x85,
	0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x09, 0x77, 0x61, 0x72, 0x65, 0x68,
	0x6f, 0x75, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61,
	0x31, 0x2e, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x48, 0x00, 0x52, 0x09, 0x77,
	0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 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, 0x46, 0x0a, 0x16, 0x57, 0x61, 0x74, 0x63, 0x68, 0x57,
	0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 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, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x7c,
	0x0a, 0x17, 0x57, 0x61, 0x74, 0x63, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x77, 0x61, 0x72,
	0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70,
	0x68, 0x61, 0x31, 0x2e, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x09, 0x77,
	0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x46, 0x0a, 0x16,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 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, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x57, 0x61,
	0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0x47, 0x0a, 0x17, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x57, 0x61, 0x72, 0x65, 0x68, 0x6f,
	0x75, 0x73, 0x65, 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, 0x22, 0x69, 0x0a, 0x18, 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, 0x4d, 0x0a, 0x09, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x57,
	0x61, 0x72, 0x65, 0x68, 0x6f, 0x75, 0x73, 0x65, 0x52, 0x09, 0x77, 0x61, 0x72, 0x65, 0x68, 0x6f,
	0x75, 0x73, 0x65, 0x22, 0x31, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 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, 0x58, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 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, 0x88, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 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, 0x74, 0x0a, 0x14, 0x47,
	0x65, 0x74, 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, 0xfc, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64,
	0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 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, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b,
	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12,
	0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x55, 0x52, 0x4c, 0x12, 0x29, 0x0a,
	0x11, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x5f, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x67,
	0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x55, 0x52,
	0x4c, 0x49, 0x73, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72,
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64,
	0x22, 0x59, 0x0a, 0x19, 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, 0x3c, 0x0a,
	0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 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, 0x52, 0x0b,
	0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x22, 0x48, 0x0a, 0x18, 0x44,
	0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 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, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x1b, 0x0a, 0x19, 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, 0x22, 0x8a, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e,
	0x74, 0x69, 0x61, 0x6c, 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, 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,
	0x76, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x63, 0x72, 0x65,
	0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 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, 0x0b, 0x63, 0x72,
	0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 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, 0x32, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x43,
	0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 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, 0x57, 0x0a, 0x17, 0x4c,
	0x69, 0x73, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e,
	0x74, 0x69, 0x61, 0x6c, 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, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74,
	0x69, 0x61, 0x6c, 0x73, 0x22, 0xfc, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43,
	0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 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, 0x12, 0x12, 0x0a, 0x04, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
	0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x75, 0x72,
	0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x55, 0x52, 0x4c,
	0x12, 0x29, 0x0a, 0x11, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x5f, 0x69, 0x73, 0x5f,
	0x72, 0x65, 0x67, 0x65, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x70,
	0x6f, 0x55, 0x52, 0x4c, 0x49, 0x73, 0x52, 0x65, 0x67, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x75,
	0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75,
	0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77,
	0x6f, 0x72, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77,
	0x6f, 0x72, 0x64, 0x22, 0x59, 0x0a, 0x19, 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, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 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, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x22, 0x35,
	0x0a, 0x19, 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, 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, 0x52, 0x0a, 0x1a, 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, 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, 0x81, 0x02, 0x0a, 0x1a, 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, 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, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x5a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61,
	0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 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, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04,
	0x64, 0x61, 0x74, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x51, 0x0a,
	0x1b, 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, 0x32, 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, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74,
	0x22, 0x81, 0x02, 0x0a, 0x1a, 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, 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, 0x20, 0x0a,
	0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x5a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 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, 0x2e, 0x44, 0x61, 0x74, 0x61,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x44,
	0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x3a, 0x02, 0x38, 0x01, 0x22, 0x51, 0x0a, 0x1b, 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, 0x32, 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, 0x52,
	0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x4a, 0x0a, 0x1a, 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, 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, 0x22, 0x1d, 0x0a, 0x1b, 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, 0x22, 0x38, 0x0a, 0x1c, 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, 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, 0x95, 0x01, 0x0a,
	0x1d, 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, 0x74,
	0x0a, 0x12, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x45, 0x2e, 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, 0x73, 0x74, 0x75, 0x62, 0x73, 0x2e, 0x72,
	0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31,
	0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
	0x65, 0x52, 0x11, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x73, 0x22, 0x8f, 0x01, 0x0a, 0x1a, 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, 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, 0xb1, 0x01, 0x0a, 0x1b, 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, 0x74, 0x0a, 0x11, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73,
	0x69, 0x73, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x45, 0x2e, 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,
	0x73, 0x74, 0x75, 0x62, 0x73, 0x2e, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2e, 0x76,
	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73,
	0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x10, 0x61, 0x6e, 0x61, 0x6c,
	0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 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, 0x4d, 0x0a, 0x1d, 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, 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, 0x22, 0x20, 0x0a, 0x1e, 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, 0x22, 0x25, 0x0a, 0x23, 0x4c,
	0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73,
	0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x22, 0xb3, 0x01, 0x0a, 0x24, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74,
	0x65, 0x72, 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, 0x8a, 0x01, 0x0a, 0x1a,
	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73,
	0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x4c, 0x2e, 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, 0x73,
	0x74, 0x75, 0x62, 0x73, 0x2e, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2e, 0x76, 0x31,
	0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e,
	0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x18,
	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54,
	0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x22, 0x7c, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65,
	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 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, 0xcf, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x8a, 0x01,
	0x0a, 0x19, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73,
	0x69, 0x73, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x4c, 0x2e, 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,
	0x73, 0x74, 0x75, 0x62, 0x73, 0x2e, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2e, 0x76,
	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41,
	0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48,
	0x00, 0x52, 0x17, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73,
	0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 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, 0x3a, 0x0a, 0x24, 0x44, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69,
	0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x22, 0x27, 0x0a, 0x25, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d,
	0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8e, 0x01,
	0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73,
	0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65,
	0x73, 0x70, 0x61, 0x63, 0x65, 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, 0x9d,
	0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75,
	0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x65, 0x0a, 0x0c, 0x61, 0x6e, 0x61,
	0x6c, 0x79, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x40, 0x2e, 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, 0x73, 0x74,
	0x75, 0x62, 0x73, 0x2e, 0x72, 0x6f, 0x6c, 0x6c, 0x6f, 0x75, 0x74, 0x73, 0x2e, 0x76, 0x31, 0x61,
	0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75,
	0x6e, 0x48, 0x00, 0x52, 0x0b, 0x61, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e,
	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, 0x95,
	0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75,
	0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09,
	0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f,
	0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12,
	0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e,
	0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x32, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61,
	0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x05, 0x63, 0x68, 0x75, 0x6e, 0x6b, 0x22, 0x34, 0x0a, 0x18, 0x4c, 0x69,
	0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x45, 0x76, 0x65, 0x6e, 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, 0x4e, 0x0a, 0x19, 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, 0x31, 0x0a,
	0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e,
	0x6b, 0x38, 0x73, 0x2e, 0x69, 0x6f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73,
	0x22, 0x35, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f,
	0x6e, 0x54, 0x61, 0x73, 0x6b, 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, 0x7a, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x50,
	0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33,
	0x2e, 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, 0x76, 0x31, 0x61,
	0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54,
	0x61, 0x73, 0x6b, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61,
	0x73, 0x6b, 0x73, 0x22, 0x8c, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f,
	0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 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, 0x96, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74,
	0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x5c, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x73,
	0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x50,
	0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x0d,
	0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 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, 0x22, 0x0a, 0x20, 0x4c,
	0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74,
	0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22,
	0x97, 0x01, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50,
	0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x17, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x5f, 0x70, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 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, 0x76, 0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61,
	0x73, 0x6b, 0x52, 0x15, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f,
	0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x22, 0x79, 0x0a, 0x1e, 0x47, 0x65, 0x74,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e,
	0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 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, 0xab, 0x01, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6a, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x6d,
	0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x3a, 0x2e, 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, 0x76,
	0x31, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x31, 0x2e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50,
	0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x48, 0x00, 0x52, 0x14,
	0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e,
	0x54, 0x61, 0x73, 0x6b, 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, 0x58, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 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, 0x59, 0x0a, 0x12,
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x2f, 0x2e, 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, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x52, 0x6f, 0x6c, 0x65, 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, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x65,
	0x6c, 0x65, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x22, 0xa6, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 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, 0x21, 0x0a, 0x0c, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04,
	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, 0xd0, 0x01, 0x0a, 0x0f, 0x47, 0x65,
	0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a,
	0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 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, 0x48, 0x00, 0x52, 0x04,
	0x72, 0x6f, 0x6c, 0x65, 0x12, 0x58, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 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, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x73, 0x48, 0x00, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x12,
	0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x03, 0x72,
	0x61, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x52, 0x0a, 0x06,
	0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73,
	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 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, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x52, 0x06, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73,
	0x22, 0xfd, 0x01, 0x0a, 0x0c, 0x47, 0x72, 0x61, 0x6e, 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, 0x72,
	0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12,
	0x4b, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 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, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x48, 0x00,
	0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x12, 0x67, 0x0a, 0x10,
	0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 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, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69,
	0x6c, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65,
	0x74, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x22, 0x54, 0x0a, 0x0d, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x43, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x2f, 0x2e, 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, 0x4f, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f,
	0x6c, 0x65, 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, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x73, 0x52, 0x65,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0xb2, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74,
	0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a,
	0x05, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 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, 0x05, 0x72,
	0x6f, 0x6c, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 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, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x73, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0xfe, 0x01, 0x0a,
	0x0d, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 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, 0x72, 0x6f, 0x6c, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x4b, 0x0a, 0x0b,
	0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x28, 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, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x48, 0x00, 0x52, 0x0a, 0x75,
	0x73, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x69, 0x6d, 0x73, 0x12, 0x67, 0x0a, 0x10, 0x72, 0x65, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 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, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x48,
	0x00, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69,
	0x6c, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x55, 0x0a,
	0x0e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x43, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e,
	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, 0x58, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f,
	0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x43, 0x0a, 0x04, 0x72, 0x6f, 0x6c,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 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, 0x59,
	0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x2f, 0x2e, 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, 0x1b, 0x0a, 0x19, 0x4c, 0x69, 0x73,
	0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x73, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x52, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c,
	0x75, 0x73, 0x74, 0x65, 0x72, 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, 0xc5, 0x01, 0x0a, 0x1a, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x63, 0x72,
	0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5a, 0x0a,
	0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 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, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x63, 0x72,
	0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e,
	0x74, 0x72, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x44, 0x61, 0x74,
	0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02,
	0x38, 0x01, 0x22, 0x51, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x32, 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, 0x52, 0x06, 0x73,
	0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0xc5, 0x01, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61,
	0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x46, 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, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04,
	0x64, 0x61, 0x74, 0x61, 0x1a, 0x37, 0x0a, 0x09, 0x44, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72,
	0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
	0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x51, 0x0a,
	0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65,
	0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x32, 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, 0x52, 0x06, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74,
	0x22, 0x30, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12,
	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x22, 0x1d, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	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, 0x92, 0x56, 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,
	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, 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,
	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,
	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, 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, 0x89, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x92, 0x01,
	0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x12, 0x91, 0x01, 0x0a, 0x12, 0x57, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x57, 0x61, 0x74,
	0x63, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x57, 0x61, 0x74, 0x63, 0x68, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70,
	0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x95, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x66, 0x72, 0x65,
	0x73, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
	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, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 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, 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, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x50,
	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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,
	0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	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, 0x47, 0x65, 0x74, 0x50, 0x72,
	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x91, 0x01, 0x0a, 0x12, 0x57, 0x61, 0x74,
	0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 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,
	0x57, 0x61, 0x74, 0x63, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x95, 0x01, 0x0a,
	0x14, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 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, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68,
	0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x50,
	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 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,
	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, 0x7f, 0x0a, 0x0c, 0x57, 0x61, 0x74, 0x63, 0x68, 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, 0x57, 0x61, 0x74, 0x63, 0x68, 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, 0x57, 0x61, 0x74, 0x63, 0x68, 0x46, 0x72, 0x65, 0x69, 0x67, 0x68, 0x74, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 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, 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, 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, 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,
	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, 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, 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, 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, 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, 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, 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, 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, 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, 0x83, 0x01, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x4d, 0x61, 0x70, 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, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x4d, 0x61, 0x70, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 0x73, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 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, 0x43, 0x6f,
	0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 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, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4d, 0x61, 0x70, 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, 0xad, 0x01, 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70,
	0x6c, 0x61, 0x74, 0x65, 0x73, 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, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75,
	0x73, 0x74, 0x65, 0x72, 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, 0x46, 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, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0xa7, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x12, 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, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x47, 0x65, 0x74, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0xb0,
	0x01, 0x0a, 0x1d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72,
	0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x12, 0x46, 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, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
	0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 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, 0x44, 0x65, 0x6c, 0x65,
	0x74, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 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, 0x91, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41,
	0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x4c, 0x6f, 0x67, 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, 0x47, 0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e,
	0x4c, 0x6f, 0x67, 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, 0x47,
	0x65, 0x74, 0x41, 0x6e, 0x61, 0x6c, 0x79, 0x73, 0x69, 0x73, 0x52, 0x75, 0x6e, 0x4c, 0x6f, 0x67,
	0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 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, 0x8f, 0x01, 0x0a, 0x12, 0x4c,
	0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b,
	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, 0x6d, 0x6f, 0x74, 0x69,
	0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 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, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54,
	0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0xa4, 0x01, 0x0a,
	0x19, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d,
	0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 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, 0x4c, 0x69,
	0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69,
	0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 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, 0x4c, 0x69, 0x73, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f,
	0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f,
	0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 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, 0x47, 0x65, 0x74, 0x50,
	0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 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, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74,
	0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
	0x9e, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72,
	0x6f, 0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x12, 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, 0x47,
	0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f, 0x74, 0x69,
	0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x41, 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, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6d, 0x6f,
	0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x73, 0x6b, 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, 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, 0x12, 0x8f, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73,
	0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x43, 0x6c, 0x75, 0x73,
	0x74, 0x65, 0x72, 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, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 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, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65,
	0x72, 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, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x43,
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 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, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x63, 0x72, 0x65,
	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x93, 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, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61,
	0x6b, 0x75, 0x69, 0x74, 0x79, 0x2f, 0x6b, 0x61, 0x72, 0x67, 0x6f, 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 (
	file_api_service_v1alpha1_service_proto_rawDescOnce sync.Once
	file_api_service_v1alpha1_service_proto_rawDescData = file_api_service_v1alpha1_service_proto_rawDesc
)

func file_api_service_v1alpha1_service_proto_rawDescGZIP() []byte {
	file_api_service_v1alpha1_service_proto_rawDescOnce.Do(func() {
		file_api_service_v1alpha1_service_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_service_v1alpha1_service_proto_rawDescData)
	})
	return file_api_service_v1alpha1_service_proto_rawDescData
}

var file_api_service_v1alpha1_service_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_api_service_v1alpha1_service_proto_msgTypes = make([]protoimpl.MessageInfo, 181)
var file_api_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
	(*GetClusterConfigRequest)(nil),               // 39: akuity.io.kargo.service.v1alpha1.GetClusterConfigRequest
	(*GetClusterConfigResponse)(nil),              // 40: akuity.io.kargo.service.v1alpha1.GetClusterConfigResponse
	(*DeleteClusterConfigRequest)(nil),            // 41: akuity.io.kargo.service.v1alpha1.DeleteClusterConfigRequest
	(*DeleteClusterConfigResponse)(nil),           // 42: akuity.io.kargo.service.v1alpha1.DeleteClusterConfigResponse
	(*WatchClusterConfigRequest)(nil),             // 43: akuity.io.kargo.service.v1alpha1.WatchClusterConfigRequest
	(*WatchClusterConfigResponse)(nil),            // 44: akuity.io.kargo.service.v1alpha1.WatchClusterConfigResponse
	(*RefreshClusterConfigRequest)(nil),           // 45: akuity.io.kargo.service.v1alpha1.RefreshClusterConfigRequest
	(*RefreshClusterConfigResponse)(nil),          // 46: akuity.io.kargo.service.v1alpha1.RefreshClusterConfigResponse
	(*ListPromotionsRequest)(nil),                 // 47: akuity.io.kargo.service.v1alpha1.ListPromotionsRequest
	(*ListPromotionsResponse)(nil),                // 48: akuity.io.kargo.service.v1alpha1.ListPromotionsResponse
	(*WatchPromotionsRequest)(nil),                // 49: akuity.io.kargo.service.v1alpha1.WatchPromotionsRequest
	(*WatchPromotionsResponse)(nil),               // 50: akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse
	(*GetPromotionRequest)(nil),                   // 51: akuity.io.kargo.service.v1alpha1.GetPromotionRequest
	(*GetPromotionResponse)(nil),                  // 52: akuity.io.kargo.service.v1alpha1.GetPromotionResponse
	(*WatchPromotionRequest)(nil),                 // 53: akuity.io.kargo.service.v1alpha1.WatchPromotionRequest
	(*WatchPromotionResponse)(nil),                // 54: akuity.io.kargo.service.v1alpha1.WatchPromotionResponse
	(*AbortPromotionRequest)(nil),                 // 55: akuity.io.kargo.service.v1alpha1.AbortPromotionRequest
	(*AbortPromotionResponse)(nil),                // 56: akuity.io.kargo.service.v1alpha1.AbortPromotionResponse
	(*DeleteProjectRequest)(nil),                  // 57: akuity.io.kargo.service.v1alpha1.DeleteProjectRequest
	(*DeleteProjectResponse)(nil),                 // 58: akuity.io.kargo.service.v1alpha1.DeleteProjectResponse
	(*GetProjectRequest)(nil),                     // 59: akuity.io.kargo.service.v1alpha1.GetProjectRequest
	(*GetProjectResponse)(nil),                    // 60: akuity.io.kargo.service.v1alpha1.GetProjectResponse
	(*ListProjectsRequest)(nil),                   // 61: akuity.io.kargo.service.v1alpha1.ListProjectsRequest
	(*ListProjectsResponse)(nil),                  // 62: akuity.io.kargo.service.v1alpha1.ListProjectsResponse
	(*GetProjectConfigRequest)(nil),               // 63: akuity.io.kargo.service.v1alpha1.GetProjectConfigRequest
	(*GetProjectConfigResponse)(nil),              // 64: akuity.io.kargo.service.v1alpha1.GetProjectConfigResponse
	(*DeleteProjectConfigRequest)(nil),            // 65: akuity.io.kargo.service.v1alpha1.DeleteProjectConfigRequest
	(*DeleteProjectConfigResponse)(nil),           // 66: akuity.io.kargo.service.v1alpha1.DeleteProjectConfigResponse
	(*WatchProjectConfigRequest)(nil),             // 67: akuity.io.kargo.service.v1alpha1.WatchProjectConfigRequest
	(*WatchProjectConfigResponse)(nil),            // 68: akuity.io.kargo.service.v1alpha1.WatchProjectConfigResponse
	(*RefreshProjectConfigRequest)(nil),           // 69: akuity.io.kargo.service.v1alpha1.RefreshProjectConfigRequest
	(*RefreshProjectConfigResponse)(nil),          // 70: akuity.io.kargo.service.v1alpha1.RefreshProjectConfigResponse
	(*ApproveFreightRequest)(nil),                 // 71: akuity.io.kargo.service.v1alpha1.ApproveFreightRequest
	(*ApproveFreightResponse)(nil),                // 72: akuity.io.kargo.service.v1alpha1.ApproveFreightResponse
	(*DeleteFreightRequest)(nil),                  // 73: akuity.io.kargo.service.v1alpha1.DeleteFreightRequest
	(*DeleteFreightResponse)(nil),                 // 74: akuity.io.kargo.service.v1alpha1.DeleteFreightResponse
	(*GetFreightRequest)(nil),                     // 75: akuity.io.kargo.service.v1alpha1.GetFreightRequest
	(*GetFreightResponse)(nil),                    // 76: akuity.io.kargo.service.v1alpha1.GetFreightResponse
	(*WatchFreightRequest)(nil),                   // 77: akuity.io.kargo.service.v1alpha1.WatchFreightRequest
	(*WatchFreightResponse)(nil),                  // 78: akuity.io.kargo.service.v1alpha1.WatchFreightResponse
	(*PromoteToStageRequest)(nil),                 // 79: akuity.io.kargo.service.v1alpha1.PromoteToStageRequest
	(*PromoteToStageResponse)(nil),                // 80: akuity.io.kargo.service.v1alpha1.PromoteToStageResponse
	(*PromoteDownstreamRequest)(nil),              // 81: akuity.io.kargo.service.v1alpha1.PromoteDownstreamRequest
	(*PromoteDownstreamResponse)(nil),             // 82: akuity.io.kargo.service.v1alpha1.PromoteDownstreamResponse
	(*QueryFreightRequest)(nil),                   // 83: akuity.io.kargo.service.v1alpha1.QueryFreightRequest
	(*QueryFreightResponse)(nil),                  // 84: akuity.io.kargo.service.v1alpha1.QueryFreightResponse
	(*FreightList)(nil),                           // 85: akuity.io.kargo.service.v1alpha1.FreightList
	(*UpdateFreightAliasRequest)(nil),             // 86: akuity.io.kargo.service.v1alpha1.UpdateFreightAliasRequest
	(*UpdateFreightAliasResponse)(nil),            // 87: akuity.io.kargo.service.v1alpha1.UpdateFreightAliasResponse
	(*ReverifyRequest)(nil),                       // 88: akuity.io.kargo.service.v1alpha1.ReverifyRequest
	(*ReverifyResponse)(nil),                      // 89: akuity.io.kargo.service.v1alpha1.ReverifyResponse
	(*AbortVerificationRequest)(nil),              // 90: akuity.io.kargo.service.v1alpha1.AbortVerificationRequest
	(*AbortVerificationResponse)(nil),             // 91: akuity.io.kargo.service.v1alpha1.AbortVerificationResponse
	(*ListWarehousesRequest)(nil),                 // 92: akuity.io.kargo.service.v1alpha1.ListWarehousesRequest
	(*ListWarehousesResponse)(nil),                // 93: akuity.io.kargo.service.v1alpha1.ListWarehousesResponse
	(*GetWarehouseRequest)(nil),                   // 94: akuity.io.kargo.service.v1alpha1.GetWarehouseRequest
	(*GetWarehouseResponse)(nil),                  // 95: akuity.io.kargo.service.v1alpha1.GetWarehouseResponse
	(*WatchWarehousesRequest)(nil),                // 96: akuity.io.kargo.service.v1alpha1.WatchWarehousesRequest
	(*WatchWarehousesResponse)(nil),               // 97: akuity.io.kargo.service.v1alpha1.WatchWarehousesResponse
	(*DeleteWarehouseRequest)(nil),                // 98: akuity.io.kargo.service.v1alpha1.DeleteWarehouseRequest
	(*DeleteWarehouseResponse)(nil),               // 99: akuity.io.kargo.service.v1alpha1.DeleteWarehouseResponse
	(*RefreshWarehouseRequest)(nil),               // 100: akuity.io.kargo.service.v1alpha1.RefreshWarehouseRequest
	(*RefreshWarehouseResponse)(nil),              // 101: akuity.io.kargo.service.v1alpha1.RefreshWarehouseResponse
	(*ListConfigMapsRequest)(nil),                 // 102: akuity.io.kargo.service.v1alpha1.ListConfigMapsRequest
	(*ListConfigMapsResponse)(nil),                // 103: akuity.io.kargo.service.v1alpha1.ListConfigMapsResponse
	(*GetConfigMapRequest)(nil),                   // 104: akuity.io.kargo.service.v1alpha1.GetConfigMapRequest
	(*GetConfigMapResponse)(nil),                  // 105: akuity.io.kargo.service.v1alpha1.GetConfigMapResponse
	(*CreateCredentialsRequest)(nil),              // 106: akuity.io.kargo.service.v1alpha1.CreateCredentialsRequest
	(*CreateCredentialsResponse)(nil),             // 107: akuity.io.kargo.service.v1alpha1.CreateCredentialsResponse
	(*DeleteCredentialsRequest)(nil),              // 108: akuity.io.kargo.service.v1alpha1.DeleteCredentialsRequest
	(*DeleteCredentialsResponse)(nil),             // 109: akuity.io.kargo.service.v1alpha1.DeleteCredentialsResponse
	(*GetCredentialsRequest)(nil),                 // 110: akuity.io.kargo.service.v1alpha1.GetCredentialsRequest
	(*GetCredentialsResponse)(nil),                // 111: akuity.io.kargo.service.v1alpha1.GetCredentialsResponse
	(*ListCredentialsRequest)(nil),                // 112: akuity.io.kargo.service.v1alpha1.ListCredentialsRequest
	(*ListCredentialsResponse)(nil),               // 113: akuity.io.kargo.service.v1alpha1.ListCredentialsResponse
	(*UpdateCredentialsRequest)(nil),              // 114: akuity.io.kargo.service.v1alpha1.UpdateCredentialsRequest
	(*UpdateCredentialsResponse)(nil),             // 115: akuity.io.kargo.service.v1alpha1.UpdateCredentialsResponse
	(*ListProjectSecretsRequest)(nil),             // 116: akuity.io.kargo.service.v1alpha1.ListProjectSecretsRequest
	(*ListProjectSecretsResponse)(nil),            // 117: akuity.io.kargo.service.v1alpha1.ListProjectSecretsResponse
	(*CreateProjectSecretRequest)(nil),            // 118: akuity.io.kargo.service.v1alpha1.CreateProjectSecretRequest
	(*CreateProjectSecretResponse)(nil),           // 119: akuity.io.kargo.service.v1alpha1.CreateProjectSecretResponse
	(*UpdateProjectSecretRequest)(nil),            // 120: akuity.io.kargo.service.v1alpha1.UpdateProjectSecretRequest
	(*UpdateProjectSecretResponse)(nil),           // 121: akuity.io.kargo.service.v1alpha1.UpdateProjectSecretResponse
	(*DeleteProjectSecretRequest)(nil),            // 122: akuity.io.kargo.service.v1alpha1.DeleteProjectSecretRequest
	(*DeleteProjectSecretResponse)(nil),           // 123: akuity.io.kargo.service.v1alpha1.DeleteProjectSecretResponse
	(*ListAnalysisTemplatesRequest)(nil),          // 124: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesRequest
	(*ListAnalysisTemplatesResponse)(nil),         // 125: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesResponse
	(*GetAnalysisTemplateRequest)(nil),            // 126: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateRequest
	(*GetAnalysisTemplateResponse)(nil),           // 127: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateResponse
	(*DeleteAnalysisTemplateRequest)(nil),         // 128: akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateRequest
	(*DeleteAnalysisTemplateResponse)(nil),        // 129: akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateResponse
	(*ListClusterAnalysisTemplatesRequest)(nil),   // 130: akuity.io.kargo.service.v1alpha1.ListClusterAnalysisTemplatesRequest
	(*ListClusterAnalysisTemplatesResponse)(nil),  // 131: akuity.io.kargo.service.v1alpha1.ListClusterAnalysisTemplatesResponse
	(*GetClusterAnalysisTemplateRequest)(nil),     // 132: akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateRequest
	(*GetClusterAnalysisTemplateResponse)(nil),    // 133: akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateResponse
	(*DeleteClusterAnalysisTemplateRequest)(nil),  // 134: akuity.io.kargo.service.v1alpha1.DeleteClusterAnalysisTemplateRequest
	(*DeleteClusterAnalysisTemplateResponse)(nil), // 135: akuity.io.kargo.service.v1alpha1.DeleteClusterAnalysisTemplateResponse
	(*GetAnalysisRunRequest)(nil),                 // 136: akuity.io.kargo.service.v1alpha1.GetAnalysisRunRequest
	(*GetAnalysisRunResponse)(nil),                // 137: akuity.io.kargo.service.v1alpha1.GetAnalysisRunResponse
	(*GetAnalysisRunLogsRequest)(nil),             // 138: akuity.io.kargo.service.v1alpha1.GetAnalysisRunLogsRequest
	(*GetAnalysisRunLogsResponse)(nil),            // 139: akuity.io.kargo.service.v1alpha1.GetAnalysisRunLogsResponse
	(*ListProjectEventsRequest)(nil),              // 140: akuity.io.kargo.service.v1alpha1.ListProjectEventsRequest
	(*ListProjectEventsResponse)(nil),             // 141: akuity.io.kargo.service.v1alpha1.ListProjectEventsResponse
	(*ListPromotionTasksRequest)(nil),             // 142: akuity.io.kargo.service.v1alpha1.ListPromotionTasksRequest
	(*ListPromotionTasksResponse)(nil),            // 143: akuity.io.kargo.service.v1alpha1.ListPromotionTasksResponse
	(*GetPromotionTaskRequest)(nil),               // 144: akuity.io.kargo.service.v1alpha1.GetPromotionTaskRequest
	(*GetPromotionTaskResponse)(nil),              // 145: akuity.io.kargo.service.v1alpha1.GetPromotionTaskResponse
	(*ListClusterPromotionTasksRequest)(nil),      // 146: akuity.io.kargo.service.v1alpha1.ListClusterPromotionTasksRequest
	(*ListClusterPromotionTasksResponse)(nil),     // 147: akuity.io.kargo.service.v1alpha1.ListClusterPromotionTasksResponse
	(*GetClusterPromotionTaskRequest)(nil),        // 148: akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskRequest
	(*GetClusterPromotionTaskResponse)(nil),       // 149: akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskResponse
	(*CreateRoleRequest)(nil),                     // 150: akuity.io.kargo.service.v1alpha1.CreateRoleRequest
	(*CreateRoleResponse)(nil),                    // 151: akuity.io.kargo.service.v1alpha1.CreateRoleResponse
	(*DeleteRoleRequest)(nil),                     // 152: akuity.io.kargo.service.v1alpha1.DeleteRoleRequest
	(*DeleteRoleResponse)(nil),                    // 153: akuity.io.kargo.service.v1alpha1.DeleteRoleResponse
	(*GetRoleRequest)(nil),                        // 154: akuity.io.kargo.service.v1alpha1.GetRoleRequest
	(*GetRoleResponse)(nil),                       // 155: akuity.io.kargo.service.v1alpha1.GetRoleResponse
	(*Claims)(nil),                                // 156: akuity.io.kargo.service.v1alpha1.Claims
	(*GrantRequest)(nil),                          // 157: akuity.io.kargo.service.v1alpha1.GrantRequest
	(*GrantResponse)(nil),                         // 158: akuity.io.kargo.service.v1alpha1.GrantResponse
	(*ListRolesRequest)(nil),                      // 159: akuity.io.kargo.service.v1alpha1.ListRolesRequest
	(*ListRolesResponse)(nil),                     // 160: akuity.io.kargo.service.v1alpha1.ListRolesResponse
	(*RevokeRequest)(nil),                         // 161: akuity.io.kargo.service.v1alpha1.RevokeRequest
	(*RevokeResponse)(nil),                        // 162: akuity.io.kargo.service.v1alpha1.RevokeResponse
	(*UpdateRoleRequest)(nil),                     // 163: akuity.io.kargo.service.v1alpha1.UpdateRoleRequest
	(*UpdateRoleResponse)(nil),                    // 164: akuity.io.kargo.service.v1alpha1.UpdateRoleResponse
	(*ListClusterSecretsRequest)(nil),             // 165: akuity.io.kargo.service.v1alpha1.ListClusterSecretsRequest
	(*ListClusterSecretsResponse)(nil),            // 166: akuity.io.kargo.service.v1alpha1.ListClusterSecretsResponse
	(*CreateClusterSecretRequest)(nil),            // 167: akuity.io.kargo.service.v1alpha1.CreateClusterSecretRequest
	(*CreateClusterSecretResponse)(nil),           // 168: akuity.io.kargo.service.v1alpha1.CreateClusterSecretResponse
	(*UpdateClusterSecretRequest)(nil),            // 169: akuity.io.kargo.service.v1alpha1.UpdateClusterSecretRequest
	(*UpdateClusterSecretResponse)(nil),           // 170: akuity.io.kargo.service.v1alpha1.UpdateClusterSecretResponse
	(*DeleteClusterSecretRequest)(nil),            // 171: akuity.io.kargo.service.v1alpha1.DeleteClusterSecretRequest
	(*DeleteClusterSecretResponse)(nil),           // 172: akuity.io.kargo.service.v1alpha1.DeleteClusterSecretResponse
	nil,                                           // 173: akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry
	nil,                                           // 174: akuity.io.kargo.service.v1alpha1.ListImagesResponse.ImagesEntry
	nil,                                           // 175: akuity.io.kargo.service.v1alpha1.TagMap.TagsEntry
	nil,                                           // 176: akuity.io.kargo.service.v1alpha1.ImageStageMap.StagesEntry
	nil,                                           // 177: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry
	nil,                                           // 178: akuity.io.kargo.service.v1alpha1.CreateProjectSecretRequest.DataEntry
	nil,                                           // 179: akuity.io.kargo.service.v1alpha1.UpdateProjectSecretRequest.DataEntry
	nil,                                           // 180: akuity.io.kargo.service.v1alpha1.CreateClusterSecretRequest.DataEntry
	nil,                                           // 181: akuity.io.kargo.service.v1alpha1.UpdateClusterSecretRequest.DataEntry
	(*timestamppb.Timestamp)(nil),                 // 182: google.protobuf.Timestamp
	(*v1alpha1.Stage)(nil),                        // 183: github.com.akuity.kargo.api.v1alpha1.Stage
	(*v1alpha1.ClusterConfig)(nil),                // 184: github.com.akuity.kargo.api.v1alpha1.ClusterConfig
	(*v1alpha1.Promotion)(nil),                    // 185: github.com.akuity.kargo.api.v1alpha1.Promotion
	(*v1alpha1.Project)(nil),                      // 186: github.com.akuity.kargo.api.v1alpha1.Project
	(*v1alpha1.ProjectConfig)(nil),                // 187: github.com.akuity.kargo.api.v1alpha1.ProjectConfig
	(*v1alpha1.Freight)(nil),                      // 188: github.com.akuity.kargo.api.v1alpha1.Freight
	(*v1alpha1.Warehouse)(nil),                    // 189: github.com.akuity.kargo.api.v1alpha1.Warehouse
	(*v1.ConfigMap)(nil),                          // 190: k8s.io.api.core.v1.ConfigMap
	(*v1.Secret)(nil),                             // 191: k8s.io.api.core.v1.Secret
	(*v1alpha11.AnalysisTemplate)(nil),            // 192: github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.AnalysisTemplate
	(*v1alpha11.ClusterAnalysisTemplate)(nil),     // 193: github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.ClusterAnalysisTemplate
	(*v1alpha11.AnalysisRun)(nil),                 // 194: github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.AnalysisRun
	(*v1.Event)(nil),                              // 195: k8s.io.api.core.v1.Event
	(*v1alpha1.PromotionTask)(nil),                // 196: github.com.akuity.kargo.api.v1alpha1.PromotionTask
	(*v1alpha1.ClusterPromotionTask)(nil),         // 197: github.com.akuity.kargo.api.v1alpha1.ClusterPromotionTask
	(*v1alpha12.Role)(nil),                        // 198: github.com.akuity.kargo.api.rbac.v1alpha1.Role
	(*v1alpha12.RoleResources)(nil),               // 199: github.com.akuity.kargo.api.rbac.v1alpha1.RoleResources
	(*v1alpha12.Claim)(nil),                       // 200: github.com.akuity.kargo.api.rbac.v1alpha1.Claim
	(*v1alpha12.ResourceDetails)(nil),             // 201: github.com.akuity.kargo.api.rbac.v1alpha1.ResourceDetails
}
var file_api_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
	182, // 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
	173, // 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
	183, // 10: akuity.io.kargo.service.v1alpha1.ListStagesResponse.stages:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage
	174, // 11: akuity.io.kargo.service.v1alpha1.ListImagesResponse.images:type_name -> akuity.io.kargo.service.v1alpha1.ListImagesResponse.ImagesEntry
	175, // 12: akuity.io.kargo.service.v1alpha1.TagMap.tags:type_name -> akuity.io.kargo.service.v1alpha1.TagMap.TagsEntry
	176, // 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
	183, // 15: akuity.io.kargo.service.v1alpha1.GetStageResponse.stage:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage
	183, // 16: akuity.io.kargo.service.v1alpha1.WatchStagesResponse.stage:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage
	183, // 17: akuity.io.kargo.service.v1alpha1.RefreshStageResponse.stage:type_name -> github.com.akuity.kargo.api.v1alpha1.Stage
	0,   // 18: akuity.io.kargo.service.v1alpha1.GetClusterConfigRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat
	184, // 19: akuity.io.kargo.service.v1alpha1.GetClusterConfigResponse.cluster_config:type_name -> github.com.akuity.kargo.api.v1alpha1.ClusterConfig
	184, // 20: akuity.io.kargo.service.v1alpha1.WatchClusterConfigResponse.cluster_config:type_name -> github.com.akuity.kargo.api.v1alpha1.ClusterConfig
	184, // 21: akuity.io.kargo.service.v1alpha1.RefreshClusterConfigResponse.cluster_config:type_name -> github.com.akuity.kargo.api.v1alpha1.ClusterConfig
	185, // 22: akuity.io.kargo.service.v1alpha1.ListPromotionsResponse.promotions:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion
	185, // 23: akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion
	0,   // 24: akuity.io.kargo.service.v1alpha1.GetPromotionRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat
	185, // 25: akuity.io.kargo.service.v1alpha1.GetPromotionResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion
	185, // 26: akuity.io.kargo.service.v1alpha1.WatchPromotionResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion
	0,   // 27: akuity.io.kargo.service.v1alpha1.GetProjectRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat
	186, // 28: akuity.io.kargo.service.v1alpha1.GetProjectResponse.project:type_name -> github.com.akuity.kargo.api.v1alpha1.Project
	186, // 29: akuity.io.kargo.service.v1alpha1.ListProjectsResponse.projects:type_name -> github.com.akuity.kargo.api.v1alpha1.Project
	0,   // 30: akuity.io.kargo.service.v1alpha1.GetProjectConfigRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat
	187, // 31: akuity.io.kargo.service.v1alpha1.GetProjectConfigResponse.project_config:type_name -> github.com.akuity.kargo.api.v1alpha1.ProjectConfig
	187, // 32: akuity.io.kargo.service.v1alpha1.WatchProjectConfigResponse.project_config:type_name -> github.com.akuity.kargo.api.v1alpha1.ProjectConfig
	187, // 33: akuity.io.kargo.service.v1alpha1.RefreshProjectConfigResponse.project_config:type_name -> github.com.akuity.kargo.api.v1alpha1.ProjectConfig
	0,   // 34: akuity.io.kargo.service.v1alpha1.GetFreightRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat
	188, // 35: akuity.io.kargo.service.v1alpha1.GetFreightResponse.freight:type_name -> github.com.akuity.kargo.api.v1alpha1.Freight
	188, // 36: akuity.io.kargo.service.v1alpha1.WatchFreightResponse.freight:type_name -> github.com.akuity.kargo.api.v1alpha1.Freight
	185, // 37: akuity.io.kargo.service.v1alpha1.PromoteToStageResponse.promotion:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion
	185, // 38: akuity.io.kargo.service.v1alpha1.PromoteDownstreamResponse.promotions:type_name -> github.com.akuity.kargo.api.v1alpha1.Promotion
	177, // 39: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.groups:type_name -> akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry
	188, // 40: akuity.io.kargo.service.v1alpha1.FreightList.freight:type_name -> github.com.akuity.kargo.api.v1alpha1.Freight
	189, // 41: akuity.io.kargo.service.v1alpha1.ListWarehousesResponse.warehouses:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse
	0,   // 42: akuity.io.kargo.service.v1alpha1.GetWarehouseRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat
	189, // 43: akuity.io.kargo.service.v1alpha1.GetWarehouseResponse.warehouse:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse
	189, // 44: akuity.io.kargo.service.v1alpha1.WatchWarehousesResponse.warehouse:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse
	189, // 45: akuity.io.kargo.service.v1alpha1.RefreshWarehouseResponse.warehouse:type_name -> github.com.akuity.kargo.api.v1alpha1.Warehouse
	190, // 46: akuity.io.kargo.service.v1alpha1.ListConfigMapsResponse.config_maps:type_name -> k8s.io.api.core.v1.ConfigMap
	0,   // 47: akuity.io.kargo.service.v1alpha1.GetConfigMapRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat
	190, // 48: akuity.io.kargo.service.v1alpha1.GetConfigMapResponse.config_map:type_name -> k8s.io.api.core.v1.ConfigMap
	191, // 49: akuity.io.kargo.service.v1alpha1.CreateCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret
	0,   // 50: akuity.io.kargo.service.v1alpha1.GetCredentialsRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat
	191, // 51: akuity.io.kargo.service.v1alpha1.GetCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret
	191, // 52: akuity.io.kargo.service.v1alpha1.ListCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret
	191, // 53: akuity.io.kargo.service.v1alpha1.UpdateCredentialsResponse.credentials:type_name -> k8s.io.api.core.v1.Secret
	191, // 54: akuity.io.kargo.service.v1alpha1.ListProjectSecretsResponse.secrets:type_name -> k8s.io.api.core.v1.Secret
	178, // 55: akuity.io.kargo.service.v1alpha1.CreateProjectSecretRequest.data:type_name -> akuity.io.kargo.service.v1alpha1.CreateProjectSecretRequest.DataEntry
	191, // 56: akuity.io.kargo.service.v1alpha1.CreateProjectSecretResponse.secret:type_name -> k8s.io.api.core.v1.Secret
	179, // 57: akuity.io.kargo.service.v1alpha1.UpdateProjectSecretRequest.data:type_name -> akuity.io.kargo.service.v1alpha1.UpdateProjectSecretRequest.DataEntry
	191, // 58: akuity.io.kargo.service.v1alpha1.UpdateProjectSecretResponse.secret:type_name -> k8s.io.api.core.v1.Secret
	192, // 59: akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesResponse.analysis_templates:type_name -> github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.AnalysisTemplate
	0,   // 60: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat
	192, // 61: akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateResponse.analysis_template:type_name -> github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.AnalysisTemplate
	193, // 62: akuity.io.kargo.service.v1alpha1.ListClusterAnalysisTemplatesResponse.cluster_analysis_templates:type_name -> github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.ClusterAnalysisTemplate
	0,   // 63: akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat
	193, // 64: akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateResponse.cluster_analysis_template:type_name -> github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.ClusterAnalysisTemplate
	0,   // 65: akuity.io.kargo.service.v1alpha1.GetAnalysisRunRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat
	194, // 66: akuity.io.kargo.service.v1alpha1.GetAnalysisRunResponse.analysis_run:type_name -> github.com.akuity.kargo.api.stubs.rollouts.v1alpha1.AnalysisRun
	195, // 67: akuity.io.kargo.service.v1alpha1.ListProjectEventsResponse.events:type_name -> k8s.io.api.core.v1.Event
	196, // 68: akuity.io.kargo.service.v1alpha1.ListPromotionTasksResponse.promotion_tasks:type_name -> github.com.akuity.kargo.api.v1alpha1.PromotionTask
	0,   // 69: akuity.io.kargo.service.v1alpha1.GetPromotionTaskRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat
	196, // 70: akuity.io.kargo.service.v1alpha1.GetPromotionTaskResponse.promotion_task:type_name -> github.com.akuity.kargo.api.v1alpha1.PromotionTask
	197, // 71: akuity.io.kargo.service.v1alpha1.ListClusterPromotionTasksResponse.cluster_promotion_tasks:type_name -> github.com.akuity.kargo.api.v1alpha1.ClusterPromotionTask
	0,   // 72: akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat
	197, // 73: akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskResponse.promotion_task:type_name -> github.com.akuity.kargo.api.v1alpha1.ClusterPromotionTask
	198, // 74: akuity.io.kargo.service.v1alpha1.CreateRoleRequest.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role
	198, // 75: akuity.io.kargo.service.v1alpha1.CreateRoleResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role
	0,   // 76: akuity.io.kargo.service.v1alpha1.GetRoleRequest.format:type_name -> akuity.io.kargo.service.v1alpha1.RawFormat
	198, // 77: akuity.io.kargo.service.v1alpha1.GetRoleResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role
	199, // 78: akuity.io.kargo.service.v1alpha1.GetRoleResponse.resources:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.RoleResources
	200, // 79: akuity.io.kargo.service.v1alpha1.Claims.claims:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Claim
	156, // 80: akuity.io.kargo.service.v1alpha1.GrantRequest.user_claims:type_name -> akuity.io.kargo.service.v1alpha1.Claims
	201, // 81: akuity.io.kargo.service.v1alpha1.GrantRequest.resource_details:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.ResourceDetails
	198, // 82: akuity.io.kargo.service.v1alpha1.GrantResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role
	198, // 83: akuity.io.kargo.service.v1alpha1.ListRolesResponse.roles:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role
	199, // 84: akuity.io.kargo.service.v1alpha1.ListRolesResponse.resources:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.RoleResources
	156, // 85: akuity.io.kargo.service.v1alpha1.RevokeRequest.user_claims:type_name -> akuity.io.kargo.service.v1alpha1.Claims
	201, // 86: akuity.io.kargo.service.v1alpha1.RevokeRequest.resource_details:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.ResourceDetails
	198, // 87: akuity.io.kargo.service.v1alpha1.RevokeResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role
	198, // 88: akuity.io.kargo.service.v1alpha1.UpdateRoleRequest.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role
	198, // 89: akuity.io.kargo.service.v1alpha1.UpdateRoleResponse.role:type_name -> github.com.akuity.kargo.api.rbac.v1alpha1.Role
	191, // 90: akuity.io.kargo.service.v1alpha1.ListClusterSecretsResponse.secrets:type_name -> k8s.io.api.core.v1.Secret
	180, // 91: akuity.io.kargo.service.v1alpha1.CreateClusterSecretRequest.data:type_name -> akuity.io.kargo.service.v1alpha1.CreateClusterSecretRequest.DataEntry
	191, // 92: akuity.io.kargo.service.v1alpha1.CreateClusterSecretResponse.secret:type_name -> k8s.io.api.core.v1.Secret
	181, // 93: akuity.io.kargo.service.v1alpha1.UpdateClusterSecretRequest.data:type_name -> akuity.io.kargo.service.v1alpha1.UpdateClusterSecretRequest.DataEntry
	191, // 94: akuity.io.kargo.service.v1alpha1.UpdateClusterSecretResponse.secret:type_name -> k8s.io.api.core.v1.Secret
	6,   // 95: akuity.io.kargo.service.v1alpha1.GetConfigResponse.ArgocdShardsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.ArgoCDShard
	29,  // 96: akuity.io.kargo.service.v1alpha1.ListImagesResponse.ImagesEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.TagMap
	30,  // 97: akuity.io.kargo.service.v1alpha1.TagMap.TagsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.ImageStageMap
	85,  // 98: akuity.io.kargo.service.v1alpha1.QueryFreightResponse.GroupsEntry.value:type_name -> akuity.io.kargo.service.v1alpha1.FreightList
	3,   // 99: akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo:input_type -> akuity.io.kargo.service.v1alpha1.GetVersionInfoRequest
	5,   // 100: akuity.io.kargo.service.v1alpha1.KargoService.GetConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetConfigRequest
	8,   // 101: akuity.io.kargo.service.v1alpha1.KargoService.GetPublicConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetPublicConfigRequest
	11,  // 102: akuity.io.kargo.service.v1alpha1.KargoService.AdminLogin:input_type -> akuity.io.kargo.service.v1alpha1.AdminLoginRequest
	13,  // 103: akuity.io.kargo.service.v1alpha1.KargoService.CreateResource:input_type -> akuity.io.kargo.service.v1alpha1.CreateResourceRequest
	16,  // 104: akuity.io.kargo.service.v1alpha1.KargoService.CreateOrUpdateResource:input_type -> akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceRequest
	19,  // 105: akuity.io.kargo.service.v1alpha1.KargoService.UpdateResource:input_type -> akuity.io.kargo.service.v1alpha1.UpdateResourceRequest
	22,  // 106: akuity.io.kargo.service.v1alpha1.KargoService.DeleteResource:input_type -> akuity.io.kargo.service.v1alpha1.DeleteResourceRequest
	25,  // 107: akuity.io.kargo.service.v1alpha1.KargoService.ListStages:input_type -> akuity.io.kargo.service.v1alpha1.ListStagesRequest
	27,  // 108: akuity.io.kargo.service.v1alpha1.KargoService.ListImages:input_type -> akuity.io.kargo.service.v1alpha1.ListImagesRequest
	31,  // 109: akuity.io.kargo.service.v1alpha1.KargoService.GetStage:input_type -> akuity.io.kargo.service.v1alpha1.GetStageRequest
	33,  // 110: akuity.io.kargo.service.v1alpha1.KargoService.WatchStages:input_type -> akuity.io.kargo.service.v1alpha1.WatchStagesRequest
	35,  // 111: akuity.io.kargo.service.v1alpha1.KargoService.DeleteStage:input_type -> akuity.io.kargo.service.v1alpha1.DeleteStageRequest
	37,  // 112: akuity.io.kargo.service.v1alpha1.KargoService.RefreshStage:input_type -> akuity.io.kargo.service.v1alpha1.RefreshStageRequest
	39,  // 113: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetClusterConfigRequest
	41,  // 114: akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterConfig:input_type -> akuity.io.kargo.service.v1alpha1.DeleteClusterConfigRequest
	43,  // 115: akuity.io.kargo.service.v1alpha1.KargoService.WatchClusterConfig:input_type -> akuity.io.kargo.service.v1alpha1.WatchClusterConfigRequest
	45,  // 116: akuity.io.kargo.service.v1alpha1.KargoService.RefreshClusterConfig:input_type -> akuity.io.kargo.service.v1alpha1.RefreshClusterConfigRequest
	47,  // 117: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotions:input_type -> akuity.io.kargo.service.v1alpha1.ListPromotionsRequest
	49,  // 118: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotions:input_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionsRequest
	51,  // 119: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotion:input_type -> akuity.io.kargo.service.v1alpha1.GetPromotionRequest
	53,  // 120: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotion:input_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionRequest
	55,  // 121: akuity.io.kargo.service.v1alpha1.KargoService.AbortPromotion:input_type -> akuity.io.kargo.service.v1alpha1.AbortPromotionRequest
	57,  // 122: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProject:input_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectRequest
	59,  // 123: akuity.io.kargo.service.v1alpha1.KargoService.GetProject:input_type -> akuity.io.kargo.service.v1alpha1.GetProjectRequest
	61,  // 124: akuity.io.kargo.service.v1alpha1.KargoService.ListProjects:input_type -> akuity.io.kargo.service.v1alpha1.ListProjectsRequest
	63,  // 125: akuity.io.kargo.service.v1alpha1.KargoService.GetProjectConfig:input_type -> akuity.io.kargo.service.v1alpha1.GetProjectConfigRequest
	65,  // 126: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProjectConfig:input_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectConfigRequest
	67,  // 127: akuity.io.kargo.service.v1alpha1.KargoService.WatchProjectConfig:input_type -> akuity.io.kargo.service.v1alpha1.WatchProjectConfigRequest
	69,  // 128: akuity.io.kargo.service.v1alpha1.KargoService.RefreshProjectConfig:input_type -> akuity.io.kargo.service.v1alpha1.RefreshProjectConfigRequest
	71,  // 129: akuity.io.kargo.service.v1alpha1.KargoService.ApproveFreight:input_type -> akuity.io.kargo.service.v1alpha1.ApproveFreightRequest
	73,  // 130: akuity.io.kargo.service.v1alpha1.KargoService.DeleteFreight:input_type -> akuity.io.kargo.service.v1alpha1.DeleteFreightRequest
	75,  // 131: akuity.io.kargo.service.v1alpha1.KargoService.GetFreight:input_type -> akuity.io.kargo.service.v1alpha1.GetFreightRequest
	77,  // 132: akuity.io.kargo.service.v1alpha1.KargoService.WatchFreight:input_type -> akuity.io.kargo.service.v1alpha1.WatchFreightRequest
	79,  // 133: akuity.io.kargo.service.v1alpha1.KargoService.PromoteToStage:input_type -> akuity.io.kargo.service.v1alpha1.PromoteToStageRequest
	81,  // 134: akuity.io.kargo.service.v1alpha1.KargoService.PromoteDownstream:input_type -> akuity.io.kargo.service.v1alpha1.PromoteDownstreamRequest
	83,  // 135: akuity.io.kargo.service.v1alpha1.KargoService.QueryFreight:input_type -> akuity.io.kargo.service.v1alpha1.QueryFreightRequest
	86,  // 136: akuity.io.kargo.service.v1alpha1.KargoService.UpdateFreightAlias:input_type -> akuity.io.kargo.service.v1alpha1.UpdateFreightAliasRequest
	88,  // 137: akuity.io.kargo.service.v1alpha1.KargoService.Reverify:input_type -> akuity.io.kargo.service.v1alpha1.ReverifyRequest
	90,  // 138: akuity.io.kargo.service.v1alpha1.KargoService.AbortVerification:input_type -> akuity.io.kargo.service.v1alpha1.AbortVerificationRequest
	92,  // 139: akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses:input_type -> akuity.io.kargo.service.v1alpha1.ListWarehousesRequest
	94,  // 140: akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.GetWarehouseRequest
	96,  // 141: akuity.io.kargo.service.v1alpha1.KargoService.WatchWarehouses:input_type -> akuity.io.kargo.service.v1alpha1.WatchWarehousesRequest
	98,  // 142: akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.DeleteWarehouseRequest
	100, // 143: akuity.io.kargo.service.v1alpha1.KargoService.RefreshWarehouse:input_type -> akuity.io.kargo.service.v1alpha1.RefreshWarehouseRequest
	106, // 144: akuity.io.kargo.service.v1alpha1.KargoService.CreateCredentials:input_type -> akuity.io.kargo.service.v1alpha1.CreateCredentialsRequest
	108, // 145: akuity.io.kargo.service.v1alpha1.KargoService.DeleteCredentials:input_type -> akuity.io.kargo.service.v1alpha1.DeleteCredentialsRequest
	110, // 146: akuity.io.kargo.service.v1alpha1.KargoService.GetCredentials:input_type -> akuity.io.kargo.service.v1alpha1.GetCredentialsRequest
	112, // 147: akuity.io.kargo.service.v1alpha1.KargoService.ListCredentials:input_type -> akuity.io.kargo.service.v1alpha1.ListCredentialsRequest
	114, // 148: akuity.io.kargo.service.v1alpha1.KargoService.UpdateCredentials:input_type -> akuity.io.kargo.service.v1alpha1.UpdateCredentialsRequest
	116, // 149: akuity.io.kargo.service.v1alpha1.KargoService.ListProjectSecrets:input_type -> akuity.io.kargo.service.v1alpha1.ListProjectSecretsRequest
	118, // 150: akuity.io.kargo.service.v1alpha1.KargoService.CreateProjectSecret:input_type -> akuity.io.kargo.service.v1alpha1.CreateProjectSecretRequest
	120, // 151: akuity.io.kargo.service.v1alpha1.KargoService.UpdateProjectSecret:input_type -> akuity.io.kargo.service.v1alpha1.UpdateProjectSecretRequest
	122, // 152: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProjectSecret:input_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectSecretRequest
	102, // 153: akuity.io.kargo.service.v1alpha1.KargoService.ListConfigMaps:input_type -> akuity.io.kargo.service.v1alpha1.ListConfigMapsRequest
	104, // 154: akuity.io.kargo.service.v1alpha1.KargoService.GetConfigMap:input_type -> akuity.io.kargo.service.v1alpha1.GetConfigMapRequest
	124, // 155: akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplates:input_type -> akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesRequest
	126, // 156: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplate:input_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateRequest
	128, // 157: akuity.io.kargo.service.v1alpha1.KargoService.DeleteAnalysisTemplate:input_type -> akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateRequest
	130, // 158: akuity.io.kargo.service.v1alpha1.KargoService.ListClusterAnalysisTemplates:input_type -> akuity.io.kargo.service.v1alpha1.ListClusterAnalysisTemplatesRequest
	132, // 159: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterAnalysisTemplate:input_type -> akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateRequest
	134, // 160: akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterAnalysisTemplate:input_type -> akuity.io.kargo.service.v1alpha1.DeleteClusterAnalysisTemplateRequest
	136, // 161: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRun:input_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisRunRequest
	138, // 162: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRunLogs:input_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisRunLogsRequest
	140, // 163: akuity.io.kargo.service.v1alpha1.KargoService.ListProjectEvents:input_type -> akuity.io.kargo.service.v1alpha1.ListProjectEventsRequest
	142, // 164: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotionTasks:input_type -> akuity.io.kargo.service.v1alpha1.ListPromotionTasksRequest
	146, // 165: akuity.io.kargo.service.v1alpha1.KargoService.ListClusterPromotionTasks:input_type -> akuity.io.kargo.service.v1alpha1.ListClusterPromotionTasksRequest
	144, // 166: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotionTask:input_type -> akuity.io.kargo.service.v1alpha1.GetPromotionTaskRequest
	148, // 167: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterPromotionTask:input_type -> akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskRequest
	150, // 168: akuity.io.kargo.service.v1alpha1.KargoService.CreateRole:input_type -> akuity.io.kargo.service.v1alpha1.CreateRoleRequest
	152, // 169: akuity.io.kargo.service.v1alpha1.KargoService.DeleteRole:input_type -> akuity.io.kargo.service.v1alpha1.DeleteRoleRequest
	154, // 170: akuity.io.kargo.service.v1alpha1.KargoService.GetRole:input_type -> akuity.io.kargo.service.v1alpha1.GetRoleRequest
	157, // 171: akuity.io.kargo.service.v1alpha1.KargoService.Grant:input_type -> akuity.io.kargo.service.v1alpha1.GrantRequest
	159, // 172: akuity.io.kargo.service.v1alpha1.KargoService.ListRoles:input_type -> akuity.io.kargo.service.v1alpha1.ListRolesRequest
	161, // 173: akuity.io.kargo.service.v1alpha1.KargoService.Revoke:input_type -> akuity.io.kargo.service.v1alpha1.RevokeRequest
	163, // 174: akuity.io.kargo.service.v1alpha1.KargoService.UpdateRole:input_type -> akuity.io.kargo.service.v1alpha1.UpdateRoleRequest
	165, // 175: akuity.io.kargo.service.v1alpha1.KargoService.ListClusterSecrets:input_type -> akuity.io.kargo.service.v1alpha1.ListClusterSecretsRequest
	167, // 176: akuity.io.kargo.service.v1alpha1.KargoService.CreateClusterSecret:input_type -> akuity.io.kargo.service.v1alpha1.CreateClusterSecretRequest
	169, // 177: akuity.io.kargo.service.v1alpha1.KargoService.UpdateClusterSecret:input_type -> akuity.io.kargo.service.v1alpha1.UpdateClusterSecretRequest
	171, // 178: akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterSecret:input_type -> akuity.io.kargo.service.v1alpha1.DeleteClusterSecretRequest
	4,   // 179: akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo:output_type -> akuity.io.kargo.service.v1alpha1.GetVersionInfoResponse
	7,   // 180: akuity.io.kargo.service.v1alpha1.KargoService.GetConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetConfigResponse
	9,   // 181: akuity.io.kargo.service.v1alpha1.KargoService.GetPublicConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetPublicConfigResponse
	12,  // 182: akuity.io.kargo.service.v1alpha1.KargoService.AdminLogin:output_type -> akuity.io.kargo.service.v1alpha1.AdminLoginResponse
	15,  // 183: akuity.io.kargo.service.v1alpha1.KargoService.CreateResource:output_type -> akuity.io.kargo.service.v1alpha1.CreateResourceResponse
	18,  // 184: akuity.io.kargo.service.v1alpha1.KargoService.CreateOrUpdateResource:output_type -> akuity.io.kargo.service.v1alpha1.CreateOrUpdateResourceResponse
	21,  // 185: akuity.io.kargo.service.v1alpha1.KargoService.UpdateResource:output_type -> akuity.io.kargo.service.v1alpha1.UpdateResourceResponse
	24,  // 186: akuity.io.kargo.service.v1alpha1.KargoService.DeleteResource:output_type -> akuity.io.kargo.service.v1alpha1.DeleteResourceResponse
	26,  // 187: akuity.io.kargo.service.v1alpha1.KargoService.ListStages:output_type -> akuity.io.kargo.service.v1alpha1.ListStagesResponse
	28,  // 188: akuity.io.kargo.service.v1alpha1.KargoService.ListImages:output_type -> akuity.io.kargo.service.v1alpha1.ListImagesResponse
	32,  // 189: akuity.io.kargo.service.v1alpha1.KargoService.GetStage:output_type -> akuity.io.kargo.service.v1alpha1.GetStageResponse
	34,  // 190: akuity.io.kargo.service.v1alpha1.KargoService.WatchStages:output_type -> akuity.io.kargo.service.v1alpha1.WatchStagesResponse
	36,  // 191: akuity.io.kargo.service.v1alpha1.KargoService.DeleteStage:output_type -> akuity.io.kargo.service.v1alpha1.DeleteStageResponse
	38,  // 192: akuity.io.kargo.service.v1alpha1.KargoService.RefreshStage:output_type -> akuity.io.kargo.service.v1alpha1.RefreshStageResponse
	40,  // 193: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetClusterConfigResponse
	42,  // 194: akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterConfig:output_type -> akuity.io.kargo.service.v1alpha1.DeleteClusterConfigResponse
	44,  // 195: akuity.io.kargo.service.v1alpha1.KargoService.WatchClusterConfig:output_type -> akuity.io.kargo.service.v1alpha1.WatchClusterConfigResponse
	46,  // 196: akuity.io.kargo.service.v1alpha1.KargoService.RefreshClusterConfig:output_type -> akuity.io.kargo.service.v1alpha1.RefreshClusterConfigResponse
	48,  // 197: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotions:output_type -> akuity.io.kargo.service.v1alpha1.ListPromotionsResponse
	50,  // 198: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotions:output_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionsResponse
	52,  // 199: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotion:output_type -> akuity.io.kargo.service.v1alpha1.GetPromotionResponse
	54,  // 200: akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotion:output_type -> akuity.io.kargo.service.v1alpha1.WatchPromotionResponse
	56,  // 201: akuity.io.kargo.service.v1alpha1.KargoService.AbortPromotion:output_type -> akuity.io.kargo.service.v1alpha1.AbortPromotionResponse
	58,  // 202: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProject:output_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectResponse
	60,  // 203: akuity.io.kargo.service.v1alpha1.KargoService.GetProject:output_type -> akuity.io.kargo.service.v1alpha1.GetProjectResponse
	62,  // 204: akuity.io.kargo.service.v1alpha1.KargoService.ListProjects:output_type -> akuity.io.kargo.service.v1alpha1.ListProjectsResponse
	64,  // 205: akuity.io.kargo.service.v1alpha1.KargoService.GetProjectConfig:output_type -> akuity.io.kargo.service.v1alpha1.GetProjectConfigResponse
	66,  // 206: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProjectConfig:output_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectConfigResponse
	68,  // 207: akuity.io.kargo.service.v1alpha1.KargoService.WatchProjectConfig:output_type -> akuity.io.kargo.service.v1alpha1.WatchProjectConfigResponse
	70,  // 208: akuity.io.kargo.service.v1alpha1.KargoService.RefreshProjectConfig:output_type -> akuity.io.kargo.service.v1alpha1.RefreshProjectConfigResponse
	72,  // 209: akuity.io.kargo.service.v1alpha1.KargoService.ApproveFreight:output_type -> akuity.io.kargo.service.v1alpha1.ApproveFreightResponse
	74,  // 210: akuity.io.kargo.service.v1alpha1.KargoService.DeleteFreight:output_type -> akuity.io.kargo.service.v1alpha1.DeleteFreightResponse
	76,  // 211: akuity.io.kargo.service.v1alpha1.KargoService.GetFreight:output_type -> akuity.io.kargo.service.v1alpha1.GetFreightResponse
	78,  // 212: akuity.io.kargo.service.v1alpha1.KargoService.WatchFreight:output_type -> akuity.io.kargo.service.v1alpha1.WatchFreightResponse
	80,  // 213: akuity.io.kargo.service.v1alpha1.KargoService.PromoteToStage:output_type -> akuity.io.kargo.service.v1alpha1.PromoteToStageResponse
	82,  // 214: akuity.io.kargo.service.v1alpha1.KargoService.PromoteDownstream:output_type -> akuity.io.kargo.service.v1alpha1.PromoteDownstreamResponse
	84,  // 215: akuity.io.kargo.service.v1alpha1.KargoService.QueryFreight:output_type -> akuity.io.kargo.service.v1alpha1.QueryFreightResponse
	87,  // 216: akuity.io.kargo.service.v1alpha1.KargoService.UpdateFreightAlias:output_type -> akuity.io.kargo.service.v1alpha1.UpdateFreightAliasResponse
	89,  // 217: akuity.io.kargo.service.v1alpha1.KargoService.Reverify:output_type -> akuity.io.kargo.service.v1alpha1.ReverifyResponse
	91,  // 218: akuity.io.kargo.service.v1alpha1.KargoService.AbortVerification:output_type -> akuity.io.kargo.service.v1alpha1.AbortVerificationResponse
	93,  // 219: akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses:output_type -> akuity.io.kargo.service.v1alpha1.ListWarehousesResponse
	95,  // 220: akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.GetWarehouseResponse
	97,  // 221: akuity.io.kargo.service.v1alpha1.KargoService.WatchWarehouses:output_type -> akuity.io.kargo.service.v1alpha1.WatchWarehousesResponse
	99,  // 222: akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.DeleteWarehouseResponse
	101, // 223: akuity.io.kargo.service.v1alpha1.KargoService.RefreshWarehouse:output_type -> akuity.io.kargo.service.v1alpha1.RefreshWarehouseResponse
	107, // 224: akuity.io.kargo.service.v1alpha1.KargoService.CreateCredentials:output_type -> akuity.io.kargo.service.v1alpha1.CreateCredentialsResponse
	109, // 225: akuity.io.kargo.service.v1alpha1.KargoService.DeleteCredentials:output_type -> akuity.io.kargo.service.v1alpha1.DeleteCredentialsResponse
	111, // 226: akuity.io.kargo.service.v1alpha1.KargoService.GetCredentials:output_type -> akuity.io.kargo.service.v1alpha1.GetCredentialsResponse
	113, // 227: akuity.io.kargo.service.v1alpha1.KargoService.ListCredentials:output_type -> akuity.io.kargo.service.v1alpha1.ListCredentialsResponse
	115, // 228: akuity.io.kargo.service.v1alpha1.KargoService.UpdateCredentials:output_type -> akuity.io.kargo.service.v1alpha1.UpdateCredentialsResponse
	117, // 229: akuity.io.kargo.service.v1alpha1.KargoService.ListProjectSecrets:output_type -> akuity.io.kargo.service.v1alpha1.ListProjectSecretsResponse
	119, // 230: akuity.io.kargo.service.v1alpha1.KargoService.CreateProjectSecret:output_type -> akuity.io.kargo.service.v1alpha1.CreateProjectSecretResponse
	121, // 231: akuity.io.kargo.service.v1alpha1.KargoService.UpdateProjectSecret:output_type -> akuity.io.kargo.service.v1alpha1.UpdateProjectSecretResponse
	123, // 232: akuity.io.kargo.service.v1alpha1.KargoService.DeleteProjectSecret:output_type -> akuity.io.kargo.service.v1alpha1.DeleteProjectSecretResponse
	103, // 233: akuity.io.kargo.service.v1alpha1.KargoService.ListConfigMaps:output_type -> akuity.io.kargo.service.v1alpha1.ListConfigMapsResponse
	105, // 234: akuity.io.kargo.service.v1alpha1.KargoService.GetConfigMap:output_type -> akuity.io.kargo.service.v1alpha1.GetConfigMapResponse
	125, // 235: akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplates:output_type -> akuity.io.kargo.service.v1alpha1.ListAnalysisTemplatesResponse
	127, // 236: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplate:output_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisTemplateResponse
	129, // 237: akuity.io.kargo.service.v1alpha1.KargoService.DeleteAnalysisTemplate:output_type -> akuity.io.kargo.service.v1alpha1.DeleteAnalysisTemplateResponse
	131, // 238: akuity.io.kargo.service.v1alpha1.KargoService.ListClusterAnalysisTemplates:output_type -> akuity.io.kargo.service.v1alpha1.ListClusterAnalysisTemplatesResponse
	133, // 239: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterAnalysisTemplate:output_type -> akuity.io.kargo.service.v1alpha1.GetClusterAnalysisTemplateResponse
	135, // 240: akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterAnalysisTemplate:output_type -> akuity.io.kargo.service.v1alpha1.DeleteClusterAnalysisTemplateResponse
	137, // 241: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRun:output_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisRunResponse
	139, // 242: akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRunLogs:output_type -> akuity.io.kargo.service.v1alpha1.GetAnalysisRunLogsResponse
	141, // 243: akuity.io.kargo.service.v1alpha1.KargoService.ListProjectEvents:output_type -> akuity.io.kargo.service.v1alpha1.ListProjectEventsResponse
	143, // 244: akuity.io.kargo.service.v1alpha1.KargoService.ListPromotionTasks:output_type -> akuity.io.kargo.service.v1alpha1.ListPromotionTasksResponse
	147, // 245: akuity.io.kargo.service.v1alpha1.KargoService.ListClusterPromotionTasks:output_type -> akuity.io.kargo.service.v1alpha1.ListClusterPromotionTasksResponse
	145, // 246: akuity.io.kargo.service.v1alpha1.KargoService.GetPromotionTask:output_type -> akuity.io.kargo.service.v1alpha1.GetPromotionTaskResponse
	149, // 247: akuity.io.kargo.service.v1alpha1.KargoService.GetClusterPromotionTask:output_type -> akuity.io.kargo.service.v1alpha1.GetClusterPromotionTaskResponse
	151, // 248: akuity.io.kargo.service.v1alpha1.KargoService.CreateRole:output_type -> akuity.io.kargo.service.v1alpha1.CreateRoleResponse
	153, // 249: akuity.io.kargo.service.v1alpha1.KargoService.DeleteRole:output_type -> akuity.io.kargo.service.v1alpha1.DeleteRoleResponse
	155, // 250: akuity.io.kargo.service.v1alpha1.KargoService.GetRole:output_type -> akuity.io.kargo.service.v1alpha1.GetRoleResponse
	158, // 251: akuity.io.kargo.service.v1alpha1.KargoService.Grant:output_type -> akuity.io.kargo.service.v1alpha1.GrantResponse
	160, // 252: akuity.io.kargo.service.v1alpha1.KargoService.ListRoles:output_type -> akuity.io.kargo.service.v1alpha1.ListRolesResponse
	162, // 253: akuity.io.kargo.service.v1alpha1.KargoService.Revoke:output_type -> akuity.io.kargo.service.v1alpha1.RevokeResponse
	164, // 254: akuity.io.kargo.service.v1alpha1.KargoService.UpdateRole:output_type -> akuity.io.kargo.service.v1alpha1.UpdateRoleResponse
	166, // 255: akuity.io.kargo.service.v1alpha1.KargoService.ListClusterSecrets:output_type -> akuity.io.kargo.service.v1alpha1.ListClusterSecretsResponse
	168, // 256: akuity.io.kargo.service.v1alpha1.KargoService.CreateClusterSecret:output_type -> akuity.io.kargo.service.v1alpha1.CreateClusterSecretResponse
	170, // 257: akuity.io.kargo.service.v1alpha1.KargoService.UpdateClusterSecret:output_type -> akuity.io.kargo.service.v1alpha1.UpdateClusterSecretResponse
	172, // 258: akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterSecret:output_type -> akuity.io.kargo.service.v1alpha1.DeleteClusterSecretResponse
	179, // [179:259] is the sub-list for method output_type
	99,  // [99:179] is the sub-list for method input_type
	99,  // [99:99] is the sub-list for extension type_name
	99,  // [99:99] is the sub-list for extension extendee
	0,   // [0:99] is the sub-list for field type_name
}

func init() { file_api_service_v1alpha1_service_proto_init() }
func file_api_service_v1alpha1_service_proto_init() {
	if File_api_service_v1alpha1_service_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_api_service_v1alpha1_service_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ComponentVersions); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*VersionInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetVersionInfoRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetVersionInfoResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ArgoCDShard); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetPublicConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetPublicConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OIDCConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AdminLoginRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AdminLoginResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateResourceRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateResourceResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateResourceResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateOrUpdateResourceRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateOrUpdateResourceResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateOrUpdateResourceResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateResourceRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateResourceResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateResourceResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteResourceRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteResourceResult); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteResourceResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListStagesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListStagesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListImagesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListImagesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*TagMap); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ImageStageMap); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetStageRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetStageResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchStagesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchStagesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteStageRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteStageResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RefreshStageRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RefreshStageResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetClusterConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetClusterConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteClusterConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteClusterConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchClusterConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchClusterConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RefreshClusterConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RefreshClusterConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPromotionsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPromotionsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchPromotionsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchPromotionsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetPromotionRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetPromotionResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchPromotionRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchPromotionResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AbortPromotionRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AbortPromotionResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteProjectRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteProjectResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetProjectRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetProjectResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListProjectsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListProjectsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetProjectConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetProjectConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteProjectConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteProjectConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchProjectConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchProjectConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RefreshProjectConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RefreshProjectConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApproveFreightRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ApproveFreightResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteFreightRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteFreightResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetFreightRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetFreightResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchFreightRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchFreightResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PromoteToStageRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PromoteToStageResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PromoteDownstreamRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PromoteDownstreamResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryFreightRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*QueryFreightResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FreightList); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateFreightAliasRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateFreightAliasResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReverifyRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ReverifyResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AbortVerificationRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AbortVerificationResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListWarehousesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListWarehousesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetWarehouseRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetWarehouseResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchWarehousesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*WatchWarehousesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteWarehouseRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteWarehouseResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RefreshWarehouseRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RefreshWarehouseResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListConfigMapsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListConfigMapsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetConfigMapRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetConfigMapResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateCredentialsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateCredentialsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteCredentialsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteCredentialsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetCredentialsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetCredentialsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListCredentialsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListCredentialsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateCredentialsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateCredentialsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListProjectSecretsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListProjectSecretsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateProjectSecretRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateProjectSecretResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateProjectSecretRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateProjectSecretResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteProjectSecretRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteProjectSecretResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListAnalysisTemplatesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListAnalysisTemplatesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetAnalysisTemplateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetAnalysisTemplateResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteAnalysisTemplateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteAnalysisTemplateResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListClusterAnalysisTemplatesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListClusterAnalysisTemplatesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetClusterAnalysisTemplateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetClusterAnalysisTemplateResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteClusterAnalysisTemplateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteClusterAnalysisTemplateResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetAnalysisRunRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetAnalysisRunResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetAnalysisRunLogsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetAnalysisRunLogsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListProjectEventsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListProjectEventsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPromotionTasksRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListPromotionTasksResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetPromotionTaskRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetPromotionTaskResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListClusterPromotionTasksRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListClusterPromotionTasksResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetClusterPromotionTaskRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetClusterPromotionTaskResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateRoleRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateRoleResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteRoleRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[152].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteRoleResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[153].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetRoleRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[154].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetRoleResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[155].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Claims); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[156].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GrantRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[157].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GrantResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[158].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListRolesRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[159].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListRolesResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[160].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RevokeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[161].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RevokeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[162].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateRoleRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[163].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateRoleResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[164].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListClusterSecretsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[165].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ListClusterSecretsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[166].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateClusterSecretRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[167].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateClusterSecretResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[168].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateClusterSecretRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[169].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*UpdateClusterSecretResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[170].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteClusterSecretRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_api_service_v1alpha1_service_proto_msgTypes[171].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteClusterSecretResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_api_service_v1alpha1_service_proto_msgTypes[0].OneofWrappers = []interface{}{}
	file_api_service_v1alpha1_service_proto_msgTypes[13].OneofWrappers = []interface{}{
		(*CreateResourceResult_CreatedResourceManifest)(nil),
		(*CreateResourceResult_Error)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[16].OneofWrappers = []interface{}{
		(*CreateOrUpdateResourceResult_CreatedResourceManifest)(nil),
		(*CreateOrUpdateResourceResult_UpdatedResourceManifest)(nil),
		(*CreateOrUpdateResourceResult_Error)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[19].OneofWrappers = []interface{}{
		(*UpdateResourceResult_UpdatedResourceManifest)(nil),
		(*UpdateResourceResult_Error)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[22].OneofWrappers = []interface{}{
		(*DeleteResourceResult_DeletedResourceManifest)(nil),
		(*DeleteResourceResult_Error)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[31].OneofWrappers = []interface{}{
		(*GetStageResponse_Stage)(nil),
		(*GetStageResponse_Raw)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[39].OneofWrappers = []interface{}{
		(*GetClusterConfigResponse_ClusterConfig)(nil),
		(*GetClusterConfigResponse_Raw)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[46].OneofWrappers = []interface{}{}
	file_api_service_v1alpha1_service_proto_msgTypes[48].OneofWrappers = []interface{}{}
	file_api_service_v1alpha1_service_proto_msgTypes[51].OneofWrappers = []interface{}{
		(*GetPromotionResponse_Promotion)(nil),
		(*GetPromotionResponse_Raw)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[59].OneofWrappers = []interface{}{
		(*GetProjectResponse_Project)(nil),
		(*GetProjectResponse_Raw)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[60].OneofWrappers = []interface{}{}
	file_api_service_v1alpha1_service_proto_msgTypes[63].OneofWrappers = []interface{}{
		(*GetProjectConfigResponse_ProjectConfig)(nil),
		(*GetProjectConfigResponse_Raw)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[75].OneofWrappers = []interface{}{
		(*GetFreightResponse_Freight)(nil),
		(*GetFreightResponse_Raw)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[94].OneofWrappers = []interface{}{
		(*GetWarehouseResponse_Warehouse)(nil),
		(*GetWarehouseResponse_Raw)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[104].OneofWrappers = []interface{}{
		(*GetConfigMapResponse_ConfigMap)(nil),
		(*GetConfigMapResponse_Raw)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[110].OneofWrappers = []interface{}{
		(*GetCredentialsResponse_Credentials)(nil),
		(*GetCredentialsResponse_Raw)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[126].OneofWrappers = []interface{}{
		(*GetAnalysisTemplateResponse_AnalysisTemplate)(nil),
		(*GetAnalysisTemplateResponse_Raw)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[132].OneofWrappers = []interface{}{
		(*GetClusterAnalysisTemplateResponse_ClusterAnalysisTemplate)(nil),
		(*GetClusterAnalysisTemplateResponse_Raw)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[136].OneofWrappers = []interface{}{
		(*GetAnalysisRunResponse_AnalysisRun)(nil),
		(*GetAnalysisRunResponse_Raw)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[144].OneofWrappers = []interface{}{
		(*GetPromotionTaskResponse_PromotionTask)(nil),
		(*GetPromotionTaskResponse_Raw)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[148].OneofWrappers = []interface{}{
		(*GetClusterPromotionTaskResponse_PromotionTask)(nil),
		(*GetClusterPromotionTaskResponse_Raw)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[154].OneofWrappers = []interface{}{
		(*GetRoleResponse_Role)(nil),
		(*GetRoleResponse_Resources)(nil),
		(*GetRoleResponse_Raw)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[156].OneofWrappers = []interface{}{
		(*GrantRequest_UserClaims)(nil),
		(*GrantRequest_ResourceDetails)(nil),
	}
	file_api_service_v1alpha1_service_proto_msgTypes[160].OneofWrappers = []interface{}{
		(*RevokeRequest_UserClaims)(nil),
		(*RevokeRequest_ResourceDetails)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_api_service_v1alpha1_service_proto_rawDesc,
			NumEnums:      1,
			NumMessages:   181,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_api_service_v1alpha1_service_proto_goTypes,
		DependencyIndexes: file_api_service_v1alpha1_service_proto_depIdxs,
		EnumInfos:         file_api_service_v1alpha1_service_proto_enumTypes,
		MessageInfos:      file_api_service_v1alpha1_service_proto_msgTypes,
	}.Build()
	File_api_service_v1alpha1_service_proto = out.File
	file_api_service_v1alpha1_service_proto_rawDesc = nil
	file_api_service_v1alpha1_service_proto_goTypes = nil
	file_api_service_v1alpha1_service_proto_depIdxs = nil
}
