From 2a74e0b096e01a9d7c66fd82c094fc8e0c2aefc1 Mon Sep 17 00:00:00 2001 From: Shivam-nagar23 Date: Wed, 3 Dec 2025 12:31:10 +0530 Subject: [PATCH 01/10] manual gc --- git-sensor/internals/Configuration.go | 1 + git-sensor/pkg/git/GitBaseManager.go | 41 +++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/git-sensor/internals/Configuration.go b/git-sensor/internals/Configuration.go index ba4e2839b..01454641f 100644 --- a/git-sensor/internals/Configuration.go +++ b/git-sensor/internals/Configuration.go @@ -29,6 +29,7 @@ type Configuration struct { CliCmdTimeoutGlobal int `env:"CLI_CMD_TIMEOUT_GLOBAL_SECONDS" envDefault:"900"` CliCmdTimeoutJson string `env:"CLI_CMD_TIMEOUT_JSON" envDefault:""` GoGitTimeout int `env:"GOGIT_TIMEOUT_SECONDS" envDefault:"10" ` + EnableManualGitGc bool `env:"ENABLE_MANUAL_GIT_GC" envDefault:"false"` } func ParseConfiguration() (*Configuration, error) { diff --git a/git-sensor/pkg/git/GitBaseManager.go b/git-sensor/pkg/git/GitBaseManager.go index 6802b247e..e0c0ef155 100644 --- a/git-sensor/pkg/git/GitBaseManager.go +++ b/git-sensor/pkg/git/GitBaseManager.go @@ -387,7 +387,9 @@ func (impl *GitManagerBaseImpl) createCmdWithContext(ctx GitContext, name string //TODO: how to make it generic, currently works because the // git command is placed at index 2 for current implementations timeout := 0 + command := "" if len(arg) > 2 { + command = arg[2] timeout = impl.getCommandTimeout(arg[2]) } if timeout > 0 { @@ -406,6 +408,13 @@ func (impl *GitManagerBaseImpl) createCmdWithContext(ctx GitContext, name string } else { impl.logger.Infow("sucess cancel command", "name", name, "arg", arg) } + + // Run git gc --prune=now to clean up temp.pack files left by killed git commands + if impl.conf.EnableManualGitGc && name == "git" && command == "fetch" { + if rootDir := impl.extractRootDirFromArgs(arg); rootDir != "" { + impl.runGitGcWithTimeout(rootDir, 5*time.Minute) + } + } return err } return cmd, newCtx, cancel @@ -431,3 +440,35 @@ func (impl *GitManagerBaseImpl) ExecuteCustomCommand(gitContext GitContext, name output, errMsg, err := impl.runCommandWithCred(cmd, newGitCtx, gitContext.Username, gitContext.Password, tlsPathInfo) return output, errMsg, err } + +// extractRootDirFromArgs extracts the root directory from git command arguments. +// It looks for the -C flag which specifies the directory to run git commands in. +func (impl *GitManagerBaseImpl) extractRootDirFromArgs(args []string) string { + for i, arg := range args { + if arg == "-C" && i+1 < len(args) { + return args[i+1] + } + } + return "" +} + +// runGitGcWithTimeout runs git gc --prune=now with a timeout to clean up +// temporary pack files left behind when git commands are killed/cancelled. +func (impl *GitManagerBaseImpl) runGitGcWithTimeout(rootDir string, timeout time.Duration) { + ctx, cancel := context.WithTimeout(context.Background(), timeout) + defer cancel() + + impl.logger.Infow("running git gc --prune=now", "rootDir", rootDir, "timeout", timeout) + cmd := exec.CommandContext(ctx, "git", "-C", rootDir, "gc", "--prune=now") + cmd.Env = append(os.Environ(), "HOME=/dev/null") + output, err := cmd.CombinedOutput() + if err != nil { + if errors.Is(ctx.Err(), context.DeadlineExceeded) { + impl.logger.Warnw("git gc timed out", "rootDir", rootDir, "timeout", timeout) + } else { + impl.logger.Errorw("error running git gc", "rootDir", rootDir, "err", err, "output", string(output)) + } + } else { + impl.logger.Infow("git gc completed successfully", "rootDir", rootDir) + } +} From dc1e8638c309e8d33b4ba91a7f053568077d1da6 Mon Sep 17 00:00:00 2001 From: Shivam-nagar23 Date: Wed, 3 Dec 2025 13:32:32 +0530 Subject: [PATCH 02/10] main sync dep update oss --- git-sensor/pkg/git/GitBaseManager.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/git-sensor/pkg/git/GitBaseManager.go b/git-sensor/pkg/git/GitBaseManager.go index e0c0ef155..857394fdc 100644 --- a/git-sensor/pkg/git/GitBaseManager.go +++ b/git-sensor/pkg/git/GitBaseManager.go @@ -410,7 +410,7 @@ func (impl *GitManagerBaseImpl) createCmdWithContext(ctx GitContext, name string } // Run git gc --prune=now to clean up temp.pack files left by killed git commands - if impl.conf.EnableManualGitGc && name == "git" && command == "fetch" { + if impl.conf.EnableManualGitGc && command == "fetch" { if rootDir := impl.extractRootDirFromArgs(arg); rootDir != "" { impl.runGitGcWithTimeout(rootDir, 5*time.Minute) } From a15af1f1728f991d7b71ec0be03c7d8858067e14 Mon Sep 17 00:00:00 2001 From: SATYAsasini Date: Wed, 3 Dec 2025 14:56:00 +0530 Subject: [PATCH 03/10] feat: enable take ownership option in helm install optional config --- kubelink/grpc/applist.pb.go | 3546 +++++++++-------------------- kubelink/grpc/applist.proto | 1 + kubelink/grpc/applist_grpc.pb.go | 258 +-- kubelink/pkg/helmClient/client.go | 1 + kubelink/pkg/helmClient/types.go | 6 +- 5 files changed, 1189 insertions(+), 2623 deletions(-) diff --git a/kubelink/grpc/applist.pb.go b/kubelink/grpc/applist.pb.go index 558e1f6c0..62fdee84b 100644 --- a/kubelink/grpc/applist.pb.go +++ b/kubelink/grpc/applist.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 +// protoc-gen-go v1.36.10 // protoc v3.9.1 // source: grpc/applist.proto @@ -12,6 +12,7 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" + unsafe "unsafe" ) const ( @@ -71,10 +72,7 @@ func (RemoteConnectionMethod) EnumDescriptor() ([]byte, []int) { } type ClusterConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` ApiServerUrl string `protobuf:"bytes,1,opt,name=apiServerUrl,proto3" json:"apiServerUrl,omitempty"` Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` ClusterId int32 `protobuf:"varint,3,opt,name=clusterId,proto3" json:"clusterId,omitempty"` @@ -84,15 +82,15 @@ type ClusterConfig struct { CertData string `protobuf:"bytes,7,opt,name=certData,proto3" json:"certData,omitempty"` CaData string `protobuf:"bytes,8,opt,name=caData,proto3" json:"caData,omitempty"` RemoteConnectionConfig *RemoteConnectionConfig `protobuf:"bytes,9,opt,name=RemoteConnectionConfig,proto3" json:"RemoteConnectionConfig,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ClusterConfig) Reset() { *x = ClusterConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ClusterConfig) String() string { @@ -103,7 +101,7 @@ func (*ClusterConfig) ProtoMessage() {} func (x *ClusterConfig) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -182,20 +180,17 @@ func (x *ClusterConfig) GetRemoteConnectionConfig() *RemoteConnectionConfig { } type AppListRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Clusters []*ClusterConfig `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"` unknownFields protoimpl.UnknownFields - - Clusters []*ClusterConfig `protobuf:"bytes,1,rep,name=clusters,proto3" json:"clusters,omitempty"` + sizeCache protoimpl.SizeCache } func (x *AppListRequest) Reset() { *x = AppListRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AppListRequest) String() string { @@ -206,7 +201,7 @@ func (*AppListRequest) ProtoMessage() {} func (x *AppListRequest) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -229,28 +224,25 @@ func (x *AppListRequest) GetClusters() []*ClusterConfig { } type GetResourceTreeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ClusterConfig *ClusterConfig `protobuf:"bytes,1,opt,name=clusterConfig,proto3" json:"clusterConfig,omitempty"` - Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` - ReleaseName string `protobuf:"bytes,3,opt,name=ReleaseName,proto3" json:"ReleaseName,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ClusterConfig *ClusterConfig `protobuf:"bytes,1,opt,name=clusterConfig,proto3" json:"clusterConfig,omitempty"` + Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` + ReleaseName string `protobuf:"bytes,3,opt,name=ReleaseName,proto3" json:"ReleaseName,omitempty"` // Map key cannot be float, double, bytes, message, or enum types (map could be a better option) ResourceTreeFilter *ResourceTreeFilter `protobuf:"bytes,4,opt,name=resourceTreeFilter,proto3" json:"resourceTreeFilter,omitempty"` PreferCache bool `protobuf:"varint,5,opt,name=PreferCache,proto3" json:"PreferCache,omitempty"` UseFallBack bool `protobuf:"varint,6,opt,name=UseFallBack,proto3" json:"UseFallBack,omitempty"` CacheConfig *CacheConfig `protobuf:"bytes,7,opt,name=cacheConfig,proto3" json:"cacheConfig,omitempty"` ObjectIdentifiers []*ObjectIdentifier `protobuf:"bytes,8,rep,name=objectIdentifiers,proto3" json:"objectIdentifiers,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *GetResourceTreeRequest) Reset() { *x = GetResourceTreeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *GetResourceTreeRequest) String() string { @@ -261,7 +253,7 @@ func (*GetResourceTreeRequest) ProtoMessage() {} func (x *GetResourceTreeRequest) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -333,23 +325,20 @@ func (x *GetResourceTreeRequest) GetObjectIdentifiers() []*ObjectIdentifier { } type CacheConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ServiceName string `protobuf:"bytes,1,opt,name=serviceName,proto3" json:"serviceName,omitempty"` + Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` + PassKey string `protobuf:"bytes,3,opt,name=passKey,proto3" json:"passKey,omitempty"` + Port string `protobuf:"bytes,4,opt,name=port,proto3" json:"port,omitempty"` unknownFields protoimpl.UnknownFields - - ServiceName string `protobuf:"bytes,1,opt,name=serviceName,proto3" json:"serviceName,omitempty"` - Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` - PassKey string `protobuf:"bytes,3,opt,name=passKey,proto3" json:"passKey,omitempty"` - Port string `protobuf:"bytes,4,opt,name=port,proto3" json:"port,omitempty"` + sizeCache protoimpl.SizeCache } func (x *CacheConfig) Reset() { *x = CacheConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *CacheConfig) String() string { @@ -360,7 +349,7 @@ func (*CacheConfig) ProtoMessage() {} func (x *CacheConfig) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -404,24 +393,21 @@ func (x *CacheConfig) GetPort() string { } type ExternalResourceTreeRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` ClusterConfig *ClusterConfig `protobuf:"bytes,1,opt,name=clusterConfig,proto3" json:"clusterConfig,omitempty"` ExternalResourceDetail []*ExternalResourceDetail `protobuf:"bytes,2,rep,name=externalResourceDetail,proto3" json:"externalResourceDetail,omitempty"` CacheConfig *CacheConfig `protobuf:"bytes,3,opt,name=cacheConfig,proto3" json:"cacheConfig,omitempty"` PreferCache bool `protobuf:"varint,4,opt,name=PreferCache,proto3" json:"PreferCache,omitempty"` UseFallBack bool `protobuf:"varint,5,opt,name=UseFallBack,proto3" json:"UseFallBack,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ExternalResourceTreeRequest) Reset() { *x = ExternalResourceTreeRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExternalResourceTreeRequest) String() string { @@ -432,7 +418,7 @@ func (*ExternalResourceTreeRequest) ProtoMessage() {} func (x *ExternalResourceTreeRequest) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -483,24 +469,21 @@ func (x *ExternalResourceTreeRequest) GetUseFallBack() bool { } type ExternalResourceDetail struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Group string `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Namespace string `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` unknownFields protoimpl.UnknownFields - - Group string `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` - Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` - Namespace string `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ExternalResourceDetail) Reset() { *x = ExternalResourceDetail{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ExternalResourceDetail) String() string { @@ -511,7 +494,7 @@ func (*ExternalResourceDetail) ProtoMessage() {} func (x *ExternalResourceDetail) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -562,23 +545,20 @@ func (x *ExternalResourceDetail) GetNamespace() string { } type DeployedAppList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DeployedAppDetail []*DeployedAppDetail `protobuf:"bytes,1,rep,name=DeployedAppDetail,proto3" json:"DeployedAppDetail,omitempty"` - ClusterId int32 `protobuf:"varint,2,opt,name=clusterId,proto3" json:"clusterId,omitempty"` - ErrorMsg string `protobuf:"bytes,3,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` - Errored bool `protobuf:"varint,4,opt,name=errored,proto3" json:"errored,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + DeployedAppDetail []*DeployedAppDetail `protobuf:"bytes,1,rep,name=DeployedAppDetail,proto3" json:"DeployedAppDetail,omitempty"` + ClusterId int32 `protobuf:"varint,2,opt,name=clusterId,proto3" json:"clusterId,omitempty"` + ErrorMsg string `protobuf:"bytes,3,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` + Errored bool `protobuf:"varint,4,opt,name=errored,proto3" json:"errored,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeployedAppList) Reset() { *x = DeployedAppList{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeployedAppList) String() string { @@ -589,7 +569,7 @@ func (*DeployedAppList) ProtoMessage() {} func (x *DeployedAppList) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -633,23 +613,20 @@ func (x *DeployedAppList) GetErrored() bool { } type FluxApplicationList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ClusterId int32 `protobuf:"varint,1,opt,name=clusterId,proto3" json:"clusterId,omitempty"` - FluxApplication []*FluxApplication `protobuf:"bytes,2,rep,name=FluxApplication,proto3" json:"FluxApplication,omitempty"` - ErrorMsg string `protobuf:"bytes,3,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` - Errored bool `protobuf:"varint,4,opt,name=errored,proto3" json:"errored,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ClusterId int32 `protobuf:"varint,1,opt,name=clusterId,proto3" json:"clusterId,omitempty"` + FluxApplication []*FluxApplication `protobuf:"bytes,2,rep,name=FluxApplication,proto3" json:"FluxApplication,omitempty"` + ErrorMsg string `protobuf:"bytes,3,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` + Errored bool `protobuf:"varint,4,opt,name=errored,proto3" json:"errored,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *FluxApplicationList) Reset() { *x = FluxApplicationList{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FluxApplicationList) String() string { @@ -660,7 +637,7 @@ func (*FluxApplicationList) ProtoMessage() {} func (x *FluxApplicationList) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -704,25 +681,22 @@ func (x *FluxApplicationList) GetErrored() bool { } type FluxApplication struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - HealthStatus string `protobuf:"bytes,2,opt,name=healthStatus,proto3" json:"healthStatus,omitempty"` - SyncStatus string `protobuf:"bytes,3,opt,name=syncStatus,proto3" json:"syncStatus,omitempty"` - EnvironmentDetail *EnvironmentDetails `protobuf:"bytes,4,opt,name=environmentDetail,proto3" json:"environmentDetail,omitempty"` - FluxAppDeploymentType string `protobuf:"bytes,5,opt,name=fluxAppDeploymentType,proto3" json:"fluxAppDeploymentType,omitempty"` - HelmReleaseNamespace string `protobuf:"bytes,6,opt,name=helmReleaseNamespace,proto3" json:"helmReleaseNamespace,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + HealthStatus string `protobuf:"bytes,2,opt,name=healthStatus,proto3" json:"healthStatus,omitempty"` + SyncStatus string `protobuf:"bytes,3,opt,name=syncStatus,proto3" json:"syncStatus,omitempty"` + EnvironmentDetail *EnvironmentDetails `protobuf:"bytes,4,opt,name=environmentDetail,proto3" json:"environmentDetail,omitempty"` + FluxAppDeploymentType string `protobuf:"bytes,5,opt,name=fluxAppDeploymentType,proto3" json:"fluxAppDeploymentType,omitempty"` + HelmReleaseNamespace string `protobuf:"bytes,6,opt,name=helmReleaseNamespace,proto3" json:"helmReleaseNamespace,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *FluxApplication) Reset() { *x = FluxApplication{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FluxApplication) String() string { @@ -733,7 +707,7 @@ func (*FluxApplication) ProtoMessage() {} func (x *FluxApplication) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -791,26 +765,23 @@ func (x *FluxApplication) GetHelmReleaseNamespace() string { } type FluxAppDetailRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ClusterConfig *ClusterConfig `protobuf:"bytes,1,opt,name=clusterConfig,proto3" json:"clusterConfig,omitempty"` - Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - IsKustomizeApp bool `protobuf:"varint,4,opt,name=IsKustomizeApp,proto3" json:"IsKustomizeApp,omitempty"` - CacheConfig *CacheConfig `protobuf:"bytes,5,opt,name=cacheConfig,proto3" json:"cacheConfig,omitempty"` - PreferCache bool `protobuf:"varint,6,opt,name=PreferCache,proto3" json:"PreferCache,omitempty"` - UseFallBack bool `protobuf:"varint,7,opt,name=UseFallBack,proto3" json:"UseFallBack,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ClusterConfig *ClusterConfig `protobuf:"bytes,1,opt,name=clusterConfig,proto3" json:"clusterConfig,omitempty"` + Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + IsKustomizeApp bool `protobuf:"varint,4,opt,name=IsKustomizeApp,proto3" json:"IsKustomizeApp,omitempty"` + CacheConfig *CacheConfig `protobuf:"bytes,5,opt,name=cacheConfig,proto3" json:"cacheConfig,omitempty"` + PreferCache bool `protobuf:"varint,6,opt,name=PreferCache,proto3" json:"PreferCache,omitempty"` + UseFallBack bool `protobuf:"varint,7,opt,name=UseFallBack,proto3" json:"UseFallBack,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *FluxAppDetailRequest) Reset() { *x = FluxAppDetailRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FluxAppDetailRequest) String() string { @@ -821,7 +792,7 @@ func (*FluxAppDetailRequest) ProtoMessage() {} func (x *FluxAppDetailRequest) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -886,24 +857,21 @@ func (x *FluxAppDetailRequest) GetUseFallBack() bool { } type FluxAppDetail struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FluxApplication *FluxApplication `protobuf:"bytes,1,opt,name=fluxApplication,proto3" json:"fluxApplication,omitempty"` - FluxAppStatusDetail *FluxAppStatusDetail `protobuf:"bytes,2,opt,name=FluxAppStatusDetail,proto3" json:"FluxAppStatusDetail,omitempty"` - ResourceTreeResponse *ResourceTreeResponse `protobuf:"bytes,3,opt,name=resourceTreeResponse,proto3" json:"resourceTreeResponse,omitempty"` - ApplicationStatus string `protobuf:"bytes,4,opt,name=applicationStatus,proto3" json:"applicationStatus,omitempty"` - LastObservedGeneration string `protobuf:"bytes,5,opt,name=lastObservedGeneration,proto3" json:"lastObservedGeneration,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + FluxApplication *FluxApplication `protobuf:"bytes,1,opt,name=fluxApplication,proto3" json:"fluxApplication,omitempty"` + FluxAppStatusDetail *FluxAppStatusDetail `protobuf:"bytes,2,opt,name=FluxAppStatusDetail,proto3" json:"FluxAppStatusDetail,omitempty"` + ResourceTreeResponse *ResourceTreeResponse `protobuf:"bytes,3,opt,name=resourceTreeResponse,proto3" json:"resourceTreeResponse,omitempty"` + ApplicationStatus string `protobuf:"bytes,4,opt,name=applicationStatus,proto3" json:"applicationStatus,omitempty"` + LastObservedGeneration string `protobuf:"bytes,5,opt,name=lastObservedGeneration,proto3" json:"lastObservedGeneration,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *FluxAppDetail) Reset() { *x = FluxAppDetail{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FluxAppDetail) String() string { @@ -914,7 +882,7 @@ func (*FluxAppDetail) ProtoMessage() {} func (x *FluxAppDetail) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -965,22 +933,19 @@ func (x *FluxAppDetail) GetLastObservedGeneration() string { } type FluxAppStatusDetail struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status string `protobuf:"bytes,1,opt,name=Status,proto3" json:"Status,omitempty"` + Reason string `protobuf:"bytes,2,opt,name=Reason,proto3" json:"Reason,omitempty"` + Message string `protobuf:"bytes,3,opt,name=Message,proto3" json:"Message,omitempty"` unknownFields protoimpl.UnknownFields - - Status string `protobuf:"bytes,1,opt,name=Status,proto3" json:"Status,omitempty"` - Reason string `protobuf:"bytes,2,opt,name=Reason,proto3" json:"Reason,omitempty"` - Message string `protobuf:"bytes,3,opt,name=Message,proto3" json:"Message,omitempty"` + sizeCache protoimpl.SizeCache } func (x *FluxAppStatusDetail) Reset() { *x = FluxAppStatusDetail{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *FluxAppStatusDetail) String() string { @@ -991,7 +956,7 @@ func (*FluxAppStatusDetail) ProtoMessage() {} func (x *FluxAppStatusDetail) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1028,28 +993,25 @@ func (x *FluxAppStatusDetail) GetMessage() string { } type DeployedAppDetail struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AppId string `protobuf:"bytes,1,opt,name=appId,proto3" json:"appId,omitempty"` - AppName string `protobuf:"bytes,2,opt,name=appName,proto3" json:"appName,omitempty"` - ChartName string `protobuf:"bytes,3,opt,name=chartName,proto3" json:"chartName,omitempty"` - ChartAvatar string `protobuf:"bytes,4,opt,name=chartAvatar,proto3" json:"chartAvatar,omitempty"` - EnvironmentDetail *EnvironmentDetails `protobuf:"bytes,5,opt,name=environmentDetail,proto3" json:"environmentDetail,omitempty"` - LastDeployed *timestamp.Timestamp `protobuf:"bytes,6,opt,name=LastDeployed,proto3" json:"LastDeployed,omitempty"` - ChartVersion string `protobuf:"bytes,7,opt,name=chartVersion,proto3" json:"chartVersion,omitempty"` - ReleaseStatus string `protobuf:"bytes,8,opt,name=releaseStatus,proto3" json:"releaseStatus,omitempty"` - Home string `protobuf:"bytes,9,opt,name=home,proto3" json:"home,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + AppId string `protobuf:"bytes,1,opt,name=appId,proto3" json:"appId,omitempty"` + AppName string `protobuf:"bytes,2,opt,name=appName,proto3" json:"appName,omitempty"` + ChartName string `protobuf:"bytes,3,opt,name=chartName,proto3" json:"chartName,omitempty"` + ChartAvatar string `protobuf:"bytes,4,opt,name=chartAvatar,proto3" json:"chartAvatar,omitempty"` + EnvironmentDetail *EnvironmentDetails `protobuf:"bytes,5,opt,name=environmentDetail,proto3" json:"environmentDetail,omitempty"` + LastDeployed *timestamp.Timestamp `protobuf:"bytes,6,opt,name=LastDeployed,proto3" json:"LastDeployed,omitempty"` + ChartVersion string `protobuf:"bytes,7,opt,name=chartVersion,proto3" json:"chartVersion,omitempty"` + ReleaseStatus string `protobuf:"bytes,8,opt,name=releaseStatus,proto3" json:"releaseStatus,omitempty"` + Home string `protobuf:"bytes,9,opt,name=home,proto3" json:"home,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeployedAppDetail) Reset() { *x = DeployedAppDetail{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeployedAppDetail) String() string { @@ -1060,7 +1022,7 @@ func (*DeployedAppDetail) ProtoMessage() {} func (x *DeployedAppDetail) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1139,22 +1101,19 @@ func (x *DeployedAppDetail) GetHome() string { } type EnvironmentDetails struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ClusterName string `protobuf:"bytes,1,opt,name=clusterName,proto3" json:"clusterName,omitempty"` + ClusterId int32 `protobuf:"varint,2,opt,name=clusterId,proto3" json:"clusterId,omitempty"` + Namespace string `protobuf:"bytes,3,opt,name=namespace,proto3" json:"namespace,omitempty"` unknownFields protoimpl.UnknownFields - - ClusterName string `protobuf:"bytes,1,opt,name=clusterName,proto3" json:"clusterName,omitempty"` - ClusterId int32 `protobuf:"varint,2,opt,name=clusterId,proto3" json:"clusterId,omitempty"` - Namespace string `protobuf:"bytes,3,opt,name=namespace,proto3" json:"namespace,omitempty"` + sizeCache protoimpl.SizeCache } func (x *EnvironmentDetails) Reset() { *x = EnvironmentDetails{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EnvironmentDetails) String() string { @@ -1165,7 +1124,7 @@ func (*EnvironmentDetails) ProtoMessage() {} func (x *EnvironmentDetails) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1202,27 +1161,24 @@ func (x *EnvironmentDetails) GetNamespace() string { } type AppDetailRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ClusterConfig *ClusterConfig `protobuf:"bytes,1,opt,name=clusterConfig,proto3" json:"clusterConfig,omitempty"` - Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` - ReleaseName string `protobuf:"bytes,3,opt,name=ReleaseName,proto3" json:"ReleaseName,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ClusterConfig *ClusterConfig `protobuf:"bytes,1,opt,name=clusterConfig,proto3" json:"clusterConfig,omitempty"` + Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` + ReleaseName string `protobuf:"bytes,3,opt,name=ReleaseName,proto3" json:"ReleaseName,omitempty"` // Map key cannot be float, double, bytes, message, or enum types (map could be a better option) ResourceTreeFilter *ResourceTreeFilter `protobuf:"bytes,4,opt,name=resourceTreeFilter,proto3" json:"resourceTreeFilter,omitempty"` PreferCache bool `protobuf:"varint,5,opt,name=PreferCache,proto3" json:"PreferCache,omitempty"` UseFallBack bool `protobuf:"varint,6,opt,name=UseFallBack,proto3" json:"UseFallBack,omitempty"` CacheConfig *CacheConfig `protobuf:"bytes,7,opt,name=cacheConfig,proto3" json:"cacheConfig,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AppDetailRequest) Reset() { *x = AppDetailRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AppDetailRequest) String() string { @@ -1233,7 +1189,7 @@ func (*AppDetailRequest) ProtoMessage() {} func (x *AppDetailRequest) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1298,26 +1254,23 @@ func (x *AppDetailRequest) GetCacheConfig() *CacheConfig { } type AppDetail struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ApplicationStatus string `protobuf:"bytes,1,opt,name=applicationStatus,proto3" json:"applicationStatus,omitempty"` - ReleaseStatus *ReleaseStatus `protobuf:"bytes,2,opt,name=releaseStatus,proto3" json:"releaseStatus,omitempty"` - LastDeployed *timestamp.Timestamp `protobuf:"bytes,6,opt,name=lastDeployed,proto3" json:"lastDeployed,omitempty"` - ChartMetadata *ChartMetadata `protobuf:"bytes,7,opt,name=chartMetadata,proto3" json:"chartMetadata,omitempty"` - ResourceTreeResponse *ResourceTreeResponse `protobuf:"bytes,8,opt,name=resourceTreeResponse,proto3" json:"resourceTreeResponse,omitempty"` - EnvironmentDetails *EnvironmentDetails `protobuf:"bytes,9,opt,name=environmentDetails,proto3" json:"environmentDetails,omitempty"` - ReleaseExist bool `protobuf:"varint,10,opt,name=ReleaseExist,proto3" json:"ReleaseExist,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ApplicationStatus string `protobuf:"bytes,1,opt,name=applicationStatus,proto3" json:"applicationStatus,omitempty"` + ReleaseStatus *ReleaseStatus `protobuf:"bytes,2,opt,name=releaseStatus,proto3" json:"releaseStatus,omitempty"` + LastDeployed *timestamp.Timestamp `protobuf:"bytes,6,opt,name=lastDeployed,proto3" json:"lastDeployed,omitempty"` + ChartMetadata *ChartMetadata `protobuf:"bytes,7,opt,name=chartMetadata,proto3" json:"chartMetadata,omitempty"` + ResourceTreeResponse *ResourceTreeResponse `protobuf:"bytes,8,opt,name=resourceTreeResponse,proto3" json:"resourceTreeResponse,omitempty"` + EnvironmentDetails *EnvironmentDetails `protobuf:"bytes,9,opt,name=environmentDetails,proto3" json:"environmentDetails,omitempty"` + ReleaseExist bool `protobuf:"varint,10,opt,name=ReleaseExist,proto3" json:"ReleaseExist,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AppDetail) Reset() { *x = AppDetail{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AppDetail) String() string { @@ -1328,7 +1281,7 @@ func (*AppDetail) ProtoMessage() {} func (x *AppDetail) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1393,23 +1346,20 @@ func (x *AppDetail) GetReleaseExist() bool { } type AppStatus struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ApplicationStatus string `protobuf:"bytes,1,opt,name=ApplicationStatus,proto3" json:"ApplicationStatus,omitempty"` - ReleaseStatus string `protobuf:"bytes,2,opt,name=ReleaseStatus,proto3" json:"ReleaseStatus,omitempty"` - Description string `protobuf:"bytes,3,opt,name=Description,proto3" json:"Description,omitempty"` - LastDeployed *timestamp.Timestamp `protobuf:"bytes,4,opt,name=LastDeployed,proto3" json:"LastDeployed,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ApplicationStatus string `protobuf:"bytes,1,opt,name=ApplicationStatus,proto3" json:"ApplicationStatus,omitempty"` + ReleaseStatus string `protobuf:"bytes,2,opt,name=ReleaseStatus,proto3" json:"ReleaseStatus,omitempty"` + Description string `protobuf:"bytes,3,opt,name=Description,proto3" json:"Description,omitempty"` + LastDeployed *timestamp.Timestamp `protobuf:"bytes,4,opt,name=LastDeployed,proto3" json:"LastDeployed,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *AppStatus) Reset() { *x = AppStatus{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *AppStatus) String() string { @@ -1420,7 +1370,7 @@ func (*AppStatus) ProtoMessage() {} func (x *AppStatus) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1464,22 +1414,19 @@ func (x *AppStatus) GetLastDeployed() *timestamp.Timestamp { } type ReleaseStatus struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` unknownFields protoimpl.UnknownFields - - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` - Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ReleaseStatus) Reset() { *x = ReleaseStatus{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReleaseStatus) String() string { @@ -1490,7 +1437,7 @@ func (*ReleaseStatus) ProtoMessage() {} func (x *ReleaseStatus) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1527,26 +1474,23 @@ func (x *ReleaseStatus) GetDescription() string { } type ChartMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ChartName string `protobuf:"bytes,1,opt,name=chartName,proto3" json:"chartName,omitempty"` - ChartVersion string `protobuf:"bytes,2,opt,name=chartVersion,proto3" json:"chartVersion,omitempty"` - Home string `protobuf:"bytes,3,opt,name=home,proto3" json:"home,omitempty"` - Sources []string `protobuf:"bytes,4,rep,name=sources,proto3" json:"sources,omitempty"` - Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ChartName string `protobuf:"bytes,1,opt,name=chartName,proto3" json:"chartName,omitempty"` + ChartVersion string `protobuf:"bytes,2,opt,name=chartVersion,proto3" json:"chartVersion,omitempty"` + Home string `protobuf:"bytes,3,opt,name=home,proto3" json:"home,omitempty"` + Sources []string `protobuf:"bytes,4,rep,name=sources,proto3" json:"sources,omitempty"` + Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` // Contains the rendered templates/NOTES.txt - Notes string `protobuf:"bytes,6,opt,name=notes,proto3" json:"notes,omitempty"` + Notes string `protobuf:"bytes,6,opt,name=notes,proto3" json:"notes,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ChartMetadata) Reset() { *x = ChartMetadata{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChartMetadata) String() string { @@ -1557,7 +1501,7 @@ func (*ChartMetadata) ProtoMessage() {} func (x *ChartMetadata) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1615,21 +1559,18 @@ func (x *ChartMetadata) GetNotes() string { } type ResourceTreeResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Nodes []*ResourceNode `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` + PodMetadata []*PodMetadata `protobuf:"bytes,2,rep,name=podMetadata,proto3" json:"podMetadata,omitempty"` unknownFields protoimpl.UnknownFields - - Nodes []*ResourceNode `protobuf:"bytes,1,rep,name=nodes,proto3" json:"nodes,omitempty"` - PodMetadata []*PodMetadata `protobuf:"bytes,2,rep,name=podMetadata,proto3" json:"podMetadata,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResourceTreeResponse) Reset() { *x = ResourceTreeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResourceTreeResponse) String() string { @@ -1640,7 +1581,7 @@ func (*ResourceTreeResponse) ProtoMessage() {} func (x *ResourceTreeResponse) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1670,10 +1611,7 @@ func (x *ResourceTreeResponse) GetPodMetadata() []*PodMetadata { } type ResourceNode struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` Group string `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` Kind string `protobuf:"bytes,3,opt,name=kind,proto3" json:"kind,omitempty"` @@ -1691,15 +1629,15 @@ type ResourceNode struct { Port []int64 `protobuf:"varint,15,rep,packed,name=port,proto3" json:"port,omitempty"` IsHook bool `protobuf:"varint,16,opt,name=isHook,proto3" json:"isHook,omitempty"` HookType string `protobuf:"bytes,17,opt,name=hookType,proto3" json:"hookType,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResourceNode) Reset() { *x = ResourceNode{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResourceNode) String() string { @@ -1710,7 +1648,7 @@ func (*ResourceNode) ProtoMessage() {} func (x *ResourceNode) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1845,21 +1783,18 @@ func (x *ResourceNode) GetHookType() string { } type InfoItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + sizeCache protoimpl.SizeCache } func (x *InfoItem) Reset() { *x = InfoItem{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InfoItem) String() string { @@ -1870,7 +1805,7 @@ func (*InfoItem) ProtoMessage() {} func (x *InfoItem) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1900,21 +1835,18 @@ func (x *InfoItem) GetValue() string { } type HealthStatus struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` unknownFields protoimpl.UnknownFields - - Status string `protobuf:"bytes,1,opt,name=status,proto3" json:"status,omitempty"` - Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HealthStatus) Reset() { *x = HealthStatus{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HealthStatus) String() string { @@ -1925,7 +1857,7 @@ func (*HealthStatus) ProtoMessage() {} func (x *HealthStatus) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -1955,20 +1887,17 @@ func (x *HealthStatus) GetMessage() string { } type ResourceNetworkingInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Labels map[string]string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - Labels map[string]string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ResourceNetworkingInfo) Reset() { *x = ResourceNetworkingInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResourceNetworkingInfo) String() string { @@ -1979,7 +1908,7 @@ func (*ResourceNetworkingInfo) ProtoMessage() {} func (x *ResourceNetworkingInfo) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2002,25 +1931,22 @@ func (x *ResourceNetworkingInfo) GetLabels() map[string]string { } type ResourceRef struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Group string `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + Kind string `protobuf:"bytes,3,opt,name=kind,proto3" json:"kind,omitempty"` + Namespace string `protobuf:"bytes,4,opt,name=namespace,proto3" json:"namespace,omitempty"` + Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` + Uid string `protobuf:"bytes,6,opt,name=uid,proto3" json:"uid,omitempty"` unknownFields protoimpl.UnknownFields - - Group string `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` - Kind string `protobuf:"bytes,3,opt,name=kind,proto3" json:"kind,omitempty"` - Namespace string `protobuf:"bytes,4,opt,name=namespace,proto3" json:"namespace,omitempty"` - Name string `protobuf:"bytes,5,opt,name=name,proto3" json:"name,omitempty"` - Uid string `protobuf:"bytes,6,opt,name=uid,proto3" json:"uid,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ResourceRef) Reset() { *x = ResourceRef{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResourceRef) String() string { @@ -2031,7 +1957,7 @@ func (*ResourceRef) ProtoMessage() {} func (x *ResourceRef) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2089,25 +2015,22 @@ func (x *ResourceRef) GetUid() string { } type PodMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` Containers []string `protobuf:"bytes,3,rep,name=containers,proto3" json:"containers,omitempty"` InitContainers []string `protobuf:"bytes,4,rep,name=initContainers,proto3" json:"initContainers,omitempty"` IsNew bool `protobuf:"varint,5,opt,name=isNew,proto3" json:"isNew,omitempty"` EphemeralContainers []*EphemeralContainerData `protobuf:"bytes,6,rep,name=ephemeralContainers,proto3" json:"ephemeralContainers,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PodMetadata) Reset() { *x = PodMetadata{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *PodMetadata) String() string { @@ -2118,7 +2041,7 @@ func (*PodMetadata) ProtoMessage() {} func (x *PodMetadata) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2176,21 +2099,18 @@ func (x *PodMetadata) GetEphemeralContainers() []*EphemeralContainerData { } type EphemeralContainerData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + IsExternal bool `protobuf:"varint,2,opt,name=isExternal,proto3" json:"isExternal,omitempty"` unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - IsExternal bool `protobuf:"varint,2,opt,name=isExternal,proto3" json:"isExternal,omitempty"` + sizeCache protoimpl.SizeCache } func (x *EphemeralContainerData) Reset() { *x = EphemeralContainerData{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *EphemeralContainerData) String() string { @@ -2201,7 +2121,7 @@ func (*EphemeralContainerData) ProtoMessage() {} func (x *EphemeralContainerData) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2231,21 +2151,18 @@ func (x *EphemeralContainerData) GetIsExternal() bool { } type HibernateRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ClusterConfig *ClusterConfig `protobuf:"bytes,1,opt,name=clusterConfig,proto3" json:"clusterConfig,omitempty"` - ObjectIdentifier []*ObjectIdentifier `protobuf:"bytes,2,rep,name=objectIdentifier,proto3" json:"objectIdentifier,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ClusterConfig *ClusterConfig `protobuf:"bytes,1,opt,name=clusterConfig,proto3" json:"clusterConfig,omitempty"` + ObjectIdentifier []*ObjectIdentifier `protobuf:"bytes,2,rep,name=objectIdentifier,proto3" json:"objectIdentifier,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *HibernateRequest) Reset() { *x = HibernateRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HibernateRequest) String() string { @@ -2256,7 +2173,7 @@ func (*HibernateRequest) ProtoMessage() {} func (x *HibernateRequest) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2286,25 +2203,22 @@ func (x *HibernateRequest) GetObjectIdentifier() []*ObjectIdentifier { } type ObjectIdentifier struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Group string `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + Namespace string `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` + Annotations map[string]string `protobuf:"bytes,6,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` //to move this to a internal object or rename ObjectIdentifier unknownFields protoimpl.UnknownFields - - Group string `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - Kind string `protobuf:"bytes,2,opt,name=kind,proto3" json:"kind,omitempty"` - Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` - Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` - Namespace string `protobuf:"bytes,5,opt,name=namespace,proto3" json:"namespace,omitempty"` - Annotations map[string]string `protobuf:"bytes,6,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` //to move this to a internal object or rename ObjectIdentifier + sizeCache protoimpl.SizeCache } func (x *ObjectIdentifier) Reset() { *x = ObjectIdentifier{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ObjectIdentifier) String() string { @@ -2315,7 +2229,7 @@ func (*ObjectIdentifier) ProtoMessage() {} func (x *ObjectIdentifier) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2373,22 +2287,19 @@ func (x *ObjectIdentifier) GetAnnotations() map[string]string { } type HibernateStatus struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + TargetObject *ObjectIdentifier `protobuf:"bytes,1,opt,name=targetObject,proto3" json:"targetObject,omitempty"` + Success bool `protobuf:"varint,2,opt,name=success,proto3" json:"success,omitempty"` + ErrorMsg string `protobuf:"bytes,3,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` unknownFields protoimpl.UnknownFields - - TargetObject *ObjectIdentifier `protobuf:"bytes,1,opt,name=targetObject,proto3" json:"targetObject,omitempty"` - Success bool `protobuf:"varint,2,opt,name=success,proto3" json:"success,omitempty"` - ErrorMsg string `protobuf:"bytes,3,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HibernateStatus) Reset() { *x = HibernateStatus{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HibernateStatus) String() string { @@ -2399,7 +2310,7 @@ func (*HibernateStatus) ProtoMessage() {} func (x *HibernateStatus) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2436,20 +2347,17 @@ func (x *HibernateStatus) GetErrorMsg() string { } type HibernateResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Status []*HibernateStatus `protobuf:"bytes,1,rep,name=status,proto3" json:"status,omitempty"` unknownFields protoimpl.UnknownFields - - Status []*HibernateStatus `protobuf:"bytes,1,rep,name=status,proto3" json:"status,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HibernateResponse) Reset() { *x = HibernateResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HibernateResponse) String() string { @@ -2460,7 +2368,7 @@ func (*HibernateResponse) ProtoMessage() {} func (x *HibernateResponse) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2483,26 +2391,23 @@ func (x *HibernateResponse) GetStatus() []*HibernateStatus { } type HelmAppDeploymentDetail struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ChartMetadata *ChartMetadata `protobuf:"bytes,1,opt,name=chartMetadata,proto3" json:"chartMetadata,omitempty"` + DockerImages []string `protobuf:"bytes,2,rep,name=dockerImages,proto3" json:"dockerImages,omitempty"` + Version int32 `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"` + DeployedAt *timestamp.Timestamp `protobuf:"bytes,4,opt,name=deployedAt,proto3" json:"deployedAt,omitempty"` + DeployedBy string `protobuf:"bytes,5,opt,name=deployedBy,proto3" json:"deployedBy,omitempty"` + Status string `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"` + Message string `protobuf:"bytes,7,opt,name=message,proto3" json:"message,omitempty"` unknownFields protoimpl.UnknownFields - - ChartMetadata *ChartMetadata `protobuf:"bytes,1,opt,name=chartMetadata,proto3" json:"chartMetadata,omitempty"` - DockerImages []string `protobuf:"bytes,2,rep,name=dockerImages,proto3" json:"dockerImages,omitempty"` - Version int32 `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"` - DeployedAt *timestamp.Timestamp `protobuf:"bytes,4,opt,name=deployedAt,proto3" json:"deployedAt,omitempty"` - DeployedBy string `protobuf:"bytes,5,opt,name=deployedBy,proto3" json:"deployedBy,omitempty"` - Status string `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"` - Message string `protobuf:"bytes,7,opt,name=message,proto3" json:"message,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HelmAppDeploymentDetail) Reset() { *x = HelmAppDeploymentDetail{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HelmAppDeploymentDetail) String() string { @@ -2513,7 +2418,7 @@ func (*HelmAppDeploymentDetail) ProtoMessage() {} func (x *HelmAppDeploymentDetail) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2578,20 +2483,17 @@ func (x *HelmAppDeploymentDetail) GetMessage() string { } type HelmAppDeploymentHistory struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` DeploymentHistory []*HelmAppDeploymentDetail `protobuf:"bytes,1,rep,name=deploymentHistory,proto3" json:"deploymentHistory,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *HelmAppDeploymentHistory) Reset() { *x = HelmAppDeploymentHistory{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HelmAppDeploymentHistory) String() string { @@ -2602,7 +2504,7 @@ func (*HelmAppDeploymentHistory) ProtoMessage() {} func (x *HelmAppDeploymentHistory) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2625,25 +2527,22 @@ func (x *HelmAppDeploymentHistory) GetDeploymentHistory() []*HelmAppDeploymentDe } type ReleaseInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DeployedAppDetail *DeployedAppDetail `protobuf:"bytes,1,opt,name=deployedAppDetail,proto3" json:"deployedAppDetail,omitempty"` - DefaultValues string `protobuf:"bytes,2,opt,name=defaultValues,proto3" json:"defaultValues,omitempty"` - OverrideValues string `protobuf:"bytes,3,opt,name=overrideValues,proto3" json:"overrideValues,omitempty"` - MergedValues string `protobuf:"bytes,4,opt,name=mergedValues,proto3" json:"mergedValues,omitempty"` - Readme string `protobuf:"bytes,5,opt,name=readme,proto3" json:"readme,omitempty"` - ValuesSchemaJson string `protobuf:"bytes,6,opt,name=valuesSchemaJson,proto3" json:"valuesSchemaJson,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + DeployedAppDetail *DeployedAppDetail `protobuf:"bytes,1,opt,name=deployedAppDetail,proto3" json:"deployedAppDetail,omitempty"` + DefaultValues string `protobuf:"bytes,2,opt,name=defaultValues,proto3" json:"defaultValues,omitempty"` + OverrideValues string `protobuf:"bytes,3,opt,name=overrideValues,proto3" json:"overrideValues,omitempty"` + MergedValues string `protobuf:"bytes,4,opt,name=mergedValues,proto3" json:"mergedValues,omitempty"` + Readme string `protobuf:"bytes,5,opt,name=readme,proto3" json:"readme,omitempty"` + ValuesSchemaJson string `protobuf:"bytes,6,opt,name=valuesSchemaJson,proto3" json:"valuesSchemaJson,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReleaseInfo) Reset() { *x = ReleaseInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReleaseInfo) String() string { @@ -2654,7 +2553,7 @@ func (*ReleaseInfo) ProtoMessage() {} func (x *ReleaseInfo) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2712,23 +2611,20 @@ func (x *ReleaseInfo) GetValuesSchemaJson() string { } type ObjectRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ClusterConfig *ClusterConfig `protobuf:"bytes,1,opt,name=clusterConfig,proto3" json:"clusterConfig,omitempty"` - ObjectIdentifier *ObjectIdentifier `protobuf:"bytes,2,opt,name=objectIdentifier,proto3" json:"objectIdentifier,omitempty"` - ReleaseName string `protobuf:"bytes,3,opt,name=releaseName,proto3" json:"releaseName,omitempty"` - ReleaseNamespace string `protobuf:"bytes,4,opt,name=releaseNamespace,proto3" json:"releaseNamespace,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ClusterConfig *ClusterConfig `protobuf:"bytes,1,opt,name=clusterConfig,proto3" json:"clusterConfig,omitempty"` + ObjectIdentifier *ObjectIdentifier `protobuf:"bytes,2,opt,name=objectIdentifier,proto3" json:"objectIdentifier,omitempty"` + ReleaseName string `protobuf:"bytes,3,opt,name=releaseName,proto3" json:"releaseName,omitempty"` + ReleaseNamespace string `protobuf:"bytes,4,opt,name=releaseNamespace,proto3" json:"releaseNamespace,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ObjectRequest) Reset() { *x = ObjectRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ObjectRequest) String() string { @@ -2739,7 +2635,7 @@ func (*ObjectRequest) ProtoMessage() {} func (x *ObjectRequest) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2783,20 +2679,17 @@ func (x *ObjectRequest) GetReleaseNamespace() string { } type DesiredManifestResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Manifest string `protobuf:"bytes,1,opt,name=manifest,proto3" json:"manifest,omitempty"` unknownFields protoimpl.UnknownFields - - Manifest string `protobuf:"bytes,1,opt,name=manifest,proto3" json:"manifest,omitempty"` + sizeCache protoimpl.SizeCache } func (x *DesiredManifestResponse) Reset() { *x = DesiredManifestResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DesiredManifestResponse) String() string { @@ -2807,7 +2700,7 @@ func (*DesiredManifestResponse) ProtoMessage() {} func (x *DesiredManifestResponse) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2830,20 +2723,17 @@ func (x *DesiredManifestResponse) GetManifest() string { } type UninstallReleaseResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` unknownFields protoimpl.UnknownFields - - Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UninstallReleaseResponse) Reset() { *x = UninstallReleaseResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UninstallReleaseResponse) String() string { @@ -2854,7 +2744,7 @@ func (*UninstallReleaseResponse) ProtoMessage() {} func (x *UninstallReleaseResponse) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2877,22 +2767,19 @@ func (x *UninstallReleaseResponse) GetSuccess() bool { } type ReleaseIdentifier struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ClusterConfig *ClusterConfig `protobuf:"bytes,1,opt,name=clusterConfig,proto3" json:"clusterConfig,omitempty"` - ReleaseName string `protobuf:"bytes,2,opt,name=releaseName,proto3" json:"releaseName,omitempty"` - ReleaseNamespace string `protobuf:"bytes,3,opt,name=releaseNamespace,proto3" json:"releaseNamespace,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ClusterConfig *ClusterConfig `protobuf:"bytes,1,opt,name=clusterConfig,proto3" json:"clusterConfig,omitempty"` + ReleaseName string `protobuf:"bytes,2,opt,name=releaseName,proto3" json:"releaseName,omitempty"` + ReleaseNamespace string `protobuf:"bytes,3,opt,name=releaseNamespace,proto3" json:"releaseNamespace,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ReleaseIdentifier) Reset() { *x = ReleaseIdentifier{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ReleaseIdentifier) String() string { @@ -2903,7 +2790,7 @@ func (*ReleaseIdentifier) ProtoMessage() {} func (x *ReleaseIdentifier) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -2940,25 +2827,22 @@ func (x *ReleaseIdentifier) GetReleaseNamespace() string { } type UpgradeReleaseRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ReleaseIdentifier *ReleaseIdentifier `protobuf:"bytes,1,opt,name=releaseIdentifier,proto3" json:"releaseIdentifier,omitempty"` - ValuesYaml string `protobuf:"bytes,2,opt,name=valuesYaml,proto3" json:"valuesYaml,omitempty"` - HistoryMax int32 `protobuf:"varint,3,opt,name=historyMax,proto3" json:"historyMax,omitempty"` - ChartContent *ChartContent `protobuf:"bytes,4,opt,name=chartContent,proto3" json:"chartContent,omitempty"` - RunInCtx bool `protobuf:"varint,5,opt,name=RunInCtx,proto3" json:"RunInCtx,omitempty"` - K8SVersion string `protobuf:"bytes,6,opt,name=K8sVersion,proto3" json:"K8sVersion,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ReleaseIdentifier *ReleaseIdentifier `protobuf:"bytes,1,opt,name=releaseIdentifier,proto3" json:"releaseIdentifier,omitempty"` + ValuesYaml string `protobuf:"bytes,2,opt,name=valuesYaml,proto3" json:"valuesYaml,omitempty"` + HistoryMax int32 `protobuf:"varint,3,opt,name=historyMax,proto3" json:"historyMax,omitempty"` + ChartContent *ChartContent `protobuf:"bytes,4,opt,name=chartContent,proto3" json:"chartContent,omitempty"` + RunInCtx bool `protobuf:"varint,5,opt,name=RunInCtx,proto3" json:"RunInCtx,omitempty"` + K8SVersion string `protobuf:"bytes,6,opt,name=K8sVersion,proto3" json:"K8sVersion,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *UpgradeReleaseRequest) Reset() { *x = UpgradeReleaseRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpgradeReleaseRequest) String() string { @@ -2969,7 +2853,7 @@ func (*UpgradeReleaseRequest) ProtoMessage() {} func (x *UpgradeReleaseRequest) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3027,20 +2911,17 @@ func (x *UpgradeReleaseRequest) GetK8SVersion() string { } type UpgradeReleaseResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` unknownFields protoimpl.UnknownFields - - Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + sizeCache protoimpl.SizeCache } func (x *UpgradeReleaseResponse) Reset() { *x = UpgradeReleaseResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *UpgradeReleaseResponse) String() string { @@ -3051,7 +2932,7 @@ func (*UpgradeReleaseResponse) ProtoMessage() {} func (x *UpgradeReleaseResponse) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3074,21 +2955,18 @@ func (x *UpgradeReleaseResponse) GetSuccess() bool { } type DeploymentDetailRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ReleaseIdentifier *ReleaseIdentifier `protobuf:"bytes,1,opt,name=releaseIdentifier,proto3" json:"releaseIdentifier,omitempty"` - DeploymentVersion int32 `protobuf:"varint,2,opt,name=deploymentVersion,proto3" json:"deploymentVersion,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ReleaseIdentifier *ReleaseIdentifier `protobuf:"bytes,1,opt,name=releaseIdentifier,proto3" json:"releaseIdentifier,omitempty"` + DeploymentVersion int32 `protobuf:"varint,2,opt,name=deploymentVersion,proto3" json:"deploymentVersion,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *DeploymentDetailRequest) Reset() { *x = DeploymentDetailRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[40] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeploymentDetailRequest) String() string { @@ -3099,7 +2977,7 @@ func (*DeploymentDetailRequest) ProtoMessage() {} func (x *DeploymentDetailRequest) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[40] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3129,21 +3007,18 @@ func (x *DeploymentDetailRequest) GetDeploymentVersion() int32 { } type DeploymentDetailResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Manifest string `protobuf:"bytes,1,opt,name=manifest,proto3" json:"manifest,omitempty"` + ValuesYaml string `protobuf:"bytes,2,opt,name=valuesYaml,proto3" json:"valuesYaml,omitempty"` unknownFields protoimpl.UnknownFields - - Manifest string `protobuf:"bytes,1,opt,name=manifest,proto3" json:"manifest,omitempty"` - ValuesYaml string `protobuf:"bytes,2,opt,name=valuesYaml,proto3" json:"valuesYaml,omitempty"` + sizeCache protoimpl.SizeCache } func (x *DeploymentDetailResponse) Reset() { *x = DeploymentDetailResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[41] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *DeploymentDetailResponse) String() string { @@ -3154,7 +3029,7 @@ func (*DeploymentDetailResponse) ProtoMessage() {} func (x *DeploymentDetailResponse) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[41] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3184,24 +3059,21 @@ func (x *DeploymentDetailResponse) GetValuesYaml() string { } type ChartRepository struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` - Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"` - Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` - AllowInsecureConnection bool `protobuf:"varint,5,opt,name=allowInsecureConnection,proto3" json:"allowInsecureConnection,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"` + Password string `protobuf:"bytes,4,opt,name=password,proto3" json:"password,omitempty"` + AllowInsecureConnection bool `protobuf:"varint,5,opt,name=allowInsecureConnection,proto3" json:"allowInsecureConnection,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ChartRepository) Reset() { *x = ChartRepository{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[42] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChartRepository) String() string { @@ -3212,7 +3084,7 @@ func (*ChartRepository) ProtoMessage() {} func (x *ChartRepository) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[42] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3263,31 +3135,28 @@ func (x *ChartRepository) GetAllowInsecureConnection() bool { } type InstallReleaseRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ReleaseIdentifier *ReleaseIdentifier `protobuf:"bytes,1,opt,name=releaseIdentifier,proto3" json:"releaseIdentifier,omitempty"` - ChartName string `protobuf:"bytes,2,opt,name=chartName,proto3" json:"chartName,omitempty"` - ChartVersion string `protobuf:"bytes,3,opt,name=chartVersion,proto3" json:"chartVersion,omitempty"` - ValuesYaml string `protobuf:"bytes,4,opt,name=valuesYaml,proto3" json:"valuesYaml,omitempty"` - ChartRepository *ChartRepository `protobuf:"bytes,5,opt,name=chartRepository,proto3" json:"chartRepository,omitempty"` - K8SVersion string `protobuf:"bytes,6,opt,name=K8sVersion,proto3" json:"K8sVersion,omitempty"` - HistoryMax int32 `protobuf:"varint,7,opt,name=historyMax,proto3" json:"historyMax,omitempty"` - RegistryCredential *RegistryCredential `protobuf:"bytes,8,opt,name=RegistryCredential,proto3" json:"RegistryCredential,omitempty"` - IsOCIRepo bool `protobuf:"varint,9,opt,name=IsOCIRepo,proto3" json:"IsOCIRepo,omitempty"` - InstallAppVersionHistoryId int32 `protobuf:"varint,10,opt,name=installAppVersionHistoryId,proto3" json:"installAppVersionHistoryId,omitempty"` - ChartContent *ChartContent `protobuf:"bytes,11,opt,name=chartContent,proto3" json:"chartContent,omitempty"` - AppName string `protobuf:"bytes,12,opt,name=appName,proto3" json:"appName,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ReleaseIdentifier *ReleaseIdentifier `protobuf:"bytes,1,opt,name=releaseIdentifier,proto3" json:"releaseIdentifier,omitempty"` + ChartName string `protobuf:"bytes,2,opt,name=chartName,proto3" json:"chartName,omitempty"` + ChartVersion string `protobuf:"bytes,3,opt,name=chartVersion,proto3" json:"chartVersion,omitempty"` + ValuesYaml string `protobuf:"bytes,4,opt,name=valuesYaml,proto3" json:"valuesYaml,omitempty"` + ChartRepository *ChartRepository `protobuf:"bytes,5,opt,name=chartRepository,proto3" json:"chartRepository,omitempty"` + K8SVersion string `protobuf:"bytes,6,opt,name=K8sVersion,proto3" json:"K8sVersion,omitempty"` + HistoryMax int32 `protobuf:"varint,7,opt,name=historyMax,proto3" json:"historyMax,omitempty"` + RegistryCredential *RegistryCredential `protobuf:"bytes,8,opt,name=RegistryCredential,proto3" json:"RegistryCredential,omitempty"` + IsOCIRepo bool `protobuf:"varint,9,opt,name=IsOCIRepo,proto3" json:"IsOCIRepo,omitempty"` + InstallAppVersionHistoryId int32 `protobuf:"varint,10,opt,name=installAppVersionHistoryId,proto3" json:"installAppVersionHistoryId,omitempty"` + ChartContent *ChartContent `protobuf:"bytes,11,opt,name=chartContent,proto3" json:"chartContent,omitempty"` + AppName string `protobuf:"bytes,12,opt,name=appName,proto3" json:"appName,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *InstallReleaseRequest) Reset() { *x = InstallReleaseRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[43] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InstallReleaseRequest) String() string { @@ -3298,7 +3167,7 @@ func (*InstallReleaseRequest) ProtoMessage() {} func (x *InstallReleaseRequest) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[43] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3398,20 +3267,17 @@ func (x *InstallReleaseRequest) GetAppName() string { } type BulkInstallReleaseRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` BulkInstallReleaseRequest []*InstallReleaseRequest `protobuf:"bytes,1,rep,name=BulkInstallReleaseRequest,proto3" json:"BulkInstallReleaseRequest,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *BulkInstallReleaseRequest) Reset() { *x = BulkInstallReleaseRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[44] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BulkInstallReleaseRequest) String() string { @@ -3422,7 +3288,7 @@ func (*BulkInstallReleaseRequest) ProtoMessage() {} func (x *BulkInstallReleaseRequest) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[44] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3445,20 +3311,17 @@ func (x *BulkInstallReleaseRequest) GetBulkInstallReleaseRequest() []*InstallRel } type InstallReleaseResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` unknownFields protoimpl.UnknownFields - - Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + sizeCache protoimpl.SizeCache } func (x *InstallReleaseResponse) Reset() { *x = InstallReleaseResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[45] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *InstallReleaseResponse) String() string { @@ -3469,7 +3332,7 @@ func (*InstallReleaseResponse) ProtoMessage() {} func (x *InstallReleaseResponse) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[45] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3492,20 +3355,17 @@ func (x *InstallReleaseResponse) GetSuccess() bool { } type BooleanResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Result bool `protobuf:"varint,1,opt,name=result,proto3" json:"result,omitempty"` unknownFields protoimpl.UnknownFields - - Result bool `protobuf:"varint,1,opt,name=result,proto3" json:"result,omitempty"` + sizeCache protoimpl.SizeCache } func (x *BooleanResponse) Reset() { *x = BooleanResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[46] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BooleanResponse) String() string { @@ -3516,7 +3376,7 @@ func (*BooleanResponse) ProtoMessage() {} func (x *BooleanResponse) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[46] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3539,21 +3399,18 @@ func (x *BooleanResponse) GetResult() bool { } type RollbackReleaseRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ReleaseIdentifier *ReleaseIdentifier `protobuf:"bytes,1,opt,name=releaseIdentifier,proto3" json:"releaseIdentifier,omitempty"` - Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ReleaseIdentifier *ReleaseIdentifier `protobuf:"bytes,1,opt,name=releaseIdentifier,proto3" json:"releaseIdentifier,omitempty"` + Version int32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RollbackReleaseRequest) Reset() { *x = RollbackReleaseRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[47] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RollbackReleaseRequest) String() string { @@ -3564,7 +3421,7 @@ func (*RollbackReleaseRequest) ProtoMessage() {} func (x *RollbackReleaseRequest) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[47] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3594,21 +3451,18 @@ func (x *RollbackReleaseRequest) GetVersion() int32 { } type TemplateChartResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GeneratedManifest string `protobuf:"bytes,1,opt,name=generatedManifest,proto3" json:"generatedManifest,omitempty"` - AppName string `protobuf:"bytes,2,opt,name=appName,proto3" json:"appName,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + GeneratedManifest string `protobuf:"bytes,1,opt,name=generatedManifest,proto3" json:"generatedManifest,omitempty"` + AppName string `protobuf:"bytes,2,opt,name=appName,proto3" json:"appName,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *TemplateChartResponse) Reset() { *x = TemplateChartResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[48] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TemplateChartResponse) String() string { @@ -3619,7 +3473,7 @@ func (*TemplateChartResponse) ProtoMessage() {} func (x *TemplateChartResponse) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[48] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3649,20 +3503,17 @@ func (x *TemplateChartResponse) GetAppName() string { } type BulkTemplateChartResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` BulkTemplateChartResponse []*TemplateChartResponse `protobuf:"bytes,1,rep,name=BulkTemplateChartResponse,proto3" json:"BulkTemplateChartResponse,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *BulkTemplateChartResponse) Reset() { *x = BulkTemplateChartResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[49] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *BulkTemplateChartResponse) String() string { @@ -3673,7 +3524,7 @@ func (*BulkTemplateChartResponse) ProtoMessage() {} func (x *BulkTemplateChartResponse) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[49] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3696,21 +3547,18 @@ func (x *BulkTemplateChartResponse) GetBulkTemplateChartResponse() []*TemplateCh } type TemplateChartResponseWithChart struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` TemplateChartResponse *TemplateChartResponse `protobuf:"bytes,1,opt,name=templateChartResponse,proto3" json:"templateChartResponse,omitempty"` ChartBytes *ChartContent `protobuf:"bytes,2,opt,name=chartBytes,proto3" json:"chartBytes,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *TemplateChartResponseWithChart) Reset() { *x = TemplateChartResponseWithChart{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[50] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *TemplateChartResponseWithChart) String() string { @@ -3721,7 +3569,7 @@ func (*TemplateChartResponseWithChart) ProtoMessage() {} func (x *TemplateChartResponseWithChart) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[50] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3751,24 +3599,22 @@ func (x *TemplateChartResponseWithChart) GetChartBytes() *ChartContent { } type HelmInstallCustomRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ValuesYaml string `protobuf:"bytes,1,opt,name=valuesYaml,proto3" json:"valuesYaml,omitempty"` - ChartContent *ChartContent `protobuf:"bytes,2,opt,name=chartContent,proto3" json:"chartContent,omitempty"` - ReleaseIdentifier *ReleaseIdentifier `protobuf:"bytes,3,opt,name=releaseIdentifier,proto3" json:"releaseIdentifier,omitempty"` - RunInCtx bool `protobuf:"varint,4,opt,name=RunInCtx,proto3" json:"RunInCtx,omitempty"` - K8SVersion string `protobuf:"bytes,5,opt,name=K8sVersion,proto3" json:"K8sVersion,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + ValuesYaml string `protobuf:"bytes,1,opt,name=valuesYaml,proto3" json:"valuesYaml,omitempty"` + ChartContent *ChartContent `protobuf:"bytes,2,opt,name=chartContent,proto3" json:"chartContent,omitempty"` + ReleaseIdentifier *ReleaseIdentifier `protobuf:"bytes,3,opt,name=releaseIdentifier,proto3" json:"releaseIdentifier,omitempty"` + RunInCtx bool `protobuf:"varint,4,opt,name=RunInCtx,proto3" json:"RunInCtx,omitempty"` + K8SVersion string `protobuf:"bytes,5,opt,name=K8sVersion,proto3" json:"K8sVersion,omitempty"` + TakeOwnership bool `protobuf:"varint,6,opt,name=TakeOwnership,proto3" json:"TakeOwnership,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *HelmInstallCustomRequest) Reset() { *x = HelmInstallCustomRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[51] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HelmInstallCustomRequest) String() string { @@ -3779,7 +3625,7 @@ func (*HelmInstallCustomRequest) ProtoMessage() {} func (x *HelmInstallCustomRequest) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[51] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3829,21 +3675,25 @@ func (x *HelmInstallCustomRequest) GetK8SVersion() string { return "" } +func (x *HelmInstallCustomRequest) GetTakeOwnership() bool { + if x != nil { + return x.TakeOwnership + } + return false +} + type HelmInstallCustomResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` unknownFields protoimpl.UnknownFields - - Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + sizeCache protoimpl.SizeCache } func (x *HelmInstallCustomResponse) Reset() { *x = HelmInstallCustomResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[52] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *HelmInstallCustomResponse) String() string { @@ -3854,7 +3704,7 @@ func (*HelmInstallCustomResponse) ProtoMessage() {} func (x *HelmInstallCustomResponse) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[52] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3877,20 +3727,17 @@ func (x *HelmInstallCustomResponse) GetSuccess() bool { } type ChartContent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Content []byte `protobuf:"bytes,1,opt,name=Content,proto3" json:"Content,omitempty"` unknownFields protoimpl.UnknownFields - - Content []byte `protobuf:"bytes,1,opt,name=Content,proto3" json:"Content,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ChartContent) Reset() { *x = ChartContent{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[53] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChartContent) String() string { @@ -3901,7 +3748,7 @@ func (*ChartContent) ProtoMessage() {} func (x *ChartContent) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[53] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3924,22 +3771,19 @@ func (x *ChartContent) GetContent() []byte { } type Gvk struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Group string `protobuf:"bytes,1,opt,name=Group,proto3" json:"Group,omitempty"` + Version string `protobuf:"bytes,2,opt,name=Version,proto3" json:"Version,omitempty"` + Kind string `protobuf:"bytes,3,opt,name=Kind,proto3" json:"Kind,omitempty"` unknownFields protoimpl.UnknownFields - - Group string `protobuf:"bytes,1,opt,name=Group,proto3" json:"Group,omitempty"` - Version string `protobuf:"bytes,2,opt,name=Version,proto3" json:"Version,omitempty"` - Kind string `protobuf:"bytes,3,opt,name=Kind,proto3" json:"Kind,omitempty"` + sizeCache protoimpl.SizeCache } func (x *Gvk) Reset() { *x = Gvk{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[54] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *Gvk) String() string { @@ -3950,7 +3794,7 @@ func (*Gvk) ProtoMessage() {} func (x *Gvk) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[54] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -3987,21 +3831,18 @@ func (x *Gvk) GetKind() string { } type ResourceFilter struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Gvk *Gvk `protobuf:"bytes,1,opt,name=gvk,proto3" json:"gvk,omitempty"` - ResourceIdentifier *ResourceIdentifier `protobuf:"bytes,2,opt,name=resourceIdentifier,proto3" json:"resourceIdentifier,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Gvk *Gvk `protobuf:"bytes,1,opt,name=gvk,proto3" json:"gvk,omitempty"` + ResourceIdentifier *ResourceIdentifier `protobuf:"bytes,2,opt,name=resourceIdentifier,proto3" json:"resourceIdentifier,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResourceFilter) Reset() { *x = ResourceFilter{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[55] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResourceFilter) String() string { @@ -4012,7 +3853,7 @@ func (*ResourceFilter) ProtoMessage() {} func (x *ResourceFilter) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[55] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4042,20 +3883,17 @@ func (x *ResourceFilter) GetResourceIdentifier() *ResourceIdentifier { } type ResourceIdentifier struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Labels map[string]string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields - - Labels map[string]string `protobuf:"bytes,1,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + sizeCache protoimpl.SizeCache } func (x *ResourceIdentifier) Reset() { *x = ResourceIdentifier{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[56] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResourceIdentifier) String() string { @@ -4066,7 +3904,7 @@ func (*ResourceIdentifier) ProtoMessage() {} func (x *ResourceIdentifier) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[56] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4089,21 +3927,18 @@ func (x *ResourceIdentifier) GetLabels() map[string]string { } type ResourceTreeFilter struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GlobalFilter *ResourceIdentifier `protobuf:"bytes,1,opt,name=globalFilter,proto3" json:"globalFilter,omitempty"` - ResourceFilters []*ResourceFilter `protobuf:"bytes,2,rep,name=resourceFilters,proto3" json:"resourceFilters,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + GlobalFilter *ResourceIdentifier `protobuf:"bytes,1,opt,name=globalFilter,proto3" json:"globalFilter,omitempty"` + ResourceFilters []*ResourceFilter `protobuf:"bytes,2,rep,name=resourceFilters,proto3" json:"resourceFilters,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ResourceTreeFilter) Reset() { *x = ResourceTreeFilter{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[57] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ResourceTreeFilter) String() string { @@ -4114,7 +3949,7 @@ func (*ResourceTreeFilter) ProtoMessage() {} func (x *ResourceTreeFilter) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[57] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4144,20 +3979,17 @@ func (x *ResourceTreeFilter) GetResourceFilters() []*ResourceFilter { } type ChartNotesResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Notes string `protobuf:"bytes,1,opt,name=notes,proto3" json:"notes,omitempty"` unknownFields protoimpl.UnknownFields - - Notes string `protobuf:"bytes,1,opt,name=notes,proto3" json:"notes,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ChartNotesResponse) Reset() { *x = ChartNotesResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[58] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[58] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ChartNotesResponse) String() string { @@ -4168,7 +4000,7 @@ func (*ChartNotesResponse) ProtoMessage() {} func (x *ChartNotesResponse) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[58] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4191,24 +4023,21 @@ func (x *ChartNotesResponse) GetNotes() string { } type OCIRegistryRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Chart []byte `protobuf:"bytes,1,opt,name=Chart,proto3" json:"Chart,omitempty"` - ChartName string `protobuf:"bytes,2,opt,name=ChartName,proto3" json:"ChartName,omitempty"` - ChartVersion string `protobuf:"bytes,3,opt,name=ChartVersion,proto3" json:"ChartVersion,omitempty"` - IsInsecure bool `protobuf:"varint,4,opt,name=IsInsecure,proto3" json:"IsInsecure,omitempty"` - RegistryCredential *RegistryCredential `protobuf:"bytes,5,opt,name=RegistryCredential,proto3" json:"RegistryCredential,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + Chart []byte `protobuf:"bytes,1,opt,name=Chart,proto3" json:"Chart,omitempty"` + ChartName string `protobuf:"bytes,2,opt,name=ChartName,proto3" json:"ChartName,omitempty"` + ChartVersion string `protobuf:"bytes,3,opt,name=ChartVersion,proto3" json:"ChartVersion,omitempty"` + IsInsecure bool `protobuf:"varint,4,opt,name=IsInsecure,proto3" json:"IsInsecure,omitempty"` + RegistryCredential *RegistryCredential `protobuf:"bytes,5,opt,name=RegistryCredential,proto3" json:"RegistryCredential,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *OCIRegistryRequest) Reset() { *x = OCIRegistryRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[59] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *OCIRegistryRequest) String() string { @@ -4219,7 +4048,7 @@ func (*OCIRegistryRequest) ProtoMessage() {} func (x *OCIRegistryRequest) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[59] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4270,10 +4099,7 @@ func (x *OCIRegistryRequest) GetRegistryCredential() *RegistryCredential { } type RegistryCredential struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` RegistryUrl string `protobuf:"bytes,1,opt,name=RegistryUrl,proto3" json:"RegistryUrl,omitempty"` Username string `protobuf:"bytes,2,opt,name=Username,proto3" json:"Username,omitempty"` Password string `protobuf:"bytes,3,opt,name=Password,proto3" json:"Password,omitempty"` @@ -4288,15 +4114,15 @@ type RegistryCredential struct { RegistryName string `protobuf:"bytes,12,opt,name=RegistryName,proto3" json:"RegistryName,omitempty"` RegistryCertificate string `protobuf:"bytes,13,opt,name=RegistryCertificate,proto3" json:"RegistryCertificate,omitempty"` CredentialsType string `protobuf:"bytes,14,opt,name=CredentialsType,proto3" json:"CredentialsType,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RegistryCredential) Reset() { *x = RegistryCredential{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[60] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RegistryCredential) String() string { @@ -4307,7 +4133,7 @@ func (*RegistryCredential) ProtoMessage() {} func (x *RegistryCredential) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[60] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4421,20 +4247,17 @@ func (x *RegistryCredential) GetCredentialsType() string { } type ProxyConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + ProxyUrl string `protobuf:"bytes,1,opt,name=ProxyUrl,proto3" json:"ProxyUrl,omitempty"` unknownFields protoimpl.UnknownFields - - ProxyUrl string `protobuf:"bytes,1,opt,name=ProxyUrl,proto3" json:"ProxyUrl,omitempty"` + sizeCache protoimpl.SizeCache } func (x *ProxyConfig) Reset() { *x = ProxyConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[61] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[61] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *ProxyConfig) String() string { @@ -4445,7 +4268,7 @@ func (*ProxyConfig) ProtoMessage() {} func (x *ProxyConfig) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[61] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4468,23 +4291,20 @@ func (x *ProxyConfig) GetProxyUrl() string { } type SSHTunnelConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SSHServerAddress string `protobuf:"bytes,1,opt,name=SSHServerAddress,proto3" json:"SSHServerAddress,omitempty"` - SSHUsername string `protobuf:"bytes,2,opt,name=SSHUsername,proto3" json:"SSHUsername,omitempty"` - SSHPassword string `protobuf:"bytes,3,opt,name=SSHPassword,proto3" json:"SSHPassword,omitempty"` - SSHAuthKey string `protobuf:"bytes,4,opt,name=SSHAuthKey,proto3" json:"SSHAuthKey,omitempty"` + state protoimpl.MessageState `protogen:"open.v1"` + SSHServerAddress string `protobuf:"bytes,1,opt,name=SSHServerAddress,proto3" json:"SSHServerAddress,omitempty"` + SSHUsername string `protobuf:"bytes,2,opt,name=SSHUsername,proto3" json:"SSHUsername,omitempty"` + SSHPassword string `protobuf:"bytes,3,opt,name=SSHPassword,proto3" json:"SSHPassword,omitempty"` + SSHAuthKey string `protobuf:"bytes,4,opt,name=SSHAuthKey,proto3" json:"SSHAuthKey,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *SSHTunnelConfig) Reset() { *x = SSHTunnelConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[62] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[62] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *SSHTunnelConfig) String() string { @@ -4495,7 +4315,7 @@ func (*SSHTunnelConfig) ProtoMessage() {} func (x *SSHTunnelConfig) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[62] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4539,22 +4359,19 @@ func (x *SSHTunnelConfig) GetSSHAuthKey() string { } type RemoteConnectionConfig struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - + state protoimpl.MessageState `protogen:"open.v1"` RemoteConnectionMethod RemoteConnectionMethod `protobuf:"varint,1,opt,name=RemoteConnectionMethod,proto3,enum=RemoteConnectionMethod" json:"RemoteConnectionMethod,omitempty"` ProxyConfig *ProxyConfig `protobuf:"bytes,2,opt,name=ProxyConfig,proto3" json:"ProxyConfig,omitempty"` SSHTunnelConfig *SSHTunnelConfig `protobuf:"bytes,3,opt,name=SSHTunnelConfig,proto3" json:"SSHTunnelConfig,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *RemoteConnectionConfig) Reset() { *x = RemoteConnectionConfig{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[63] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[63] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *RemoteConnectionConfig) String() string { @@ -4565,7 +4382,7 @@ func (*RemoteConnectionConfig) ProtoMessage() {} func (x *RemoteConnectionConfig) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[63] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4602,21 +4419,18 @@ func (x *RemoteConnectionConfig) GetSSHTunnelConfig() *SSHTunnelConfig { } type OCIRegistryResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + IsLoggedIn bool `protobuf:"varint,1,opt,name=IsLoggedIn,proto3" json:"IsLoggedIn,omitempty"` + PushResult *OCIRegistryPushResponse `protobuf:"bytes,2,opt,name=PushResult,proto3" json:"PushResult,omitempty"` unknownFields protoimpl.UnknownFields - - IsLoggedIn bool `protobuf:"varint,1,opt,name=IsLoggedIn,proto3" json:"IsLoggedIn,omitempty"` - PushResult *OCIRegistryPushResponse `protobuf:"bytes,2,opt,name=PushResult,proto3" json:"PushResult,omitempty"` + sizeCache protoimpl.SizeCache } func (x *OCIRegistryResponse) Reset() { *x = OCIRegistryResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[64] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[64] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *OCIRegistryResponse) String() string { @@ -4627,7 +4441,7 @@ func (*OCIRegistryResponse) ProtoMessage() {} func (x *OCIRegistryResponse) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[64] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4657,21 +4471,18 @@ func (x *OCIRegistryResponse) GetPushResult() *OCIRegistryPushResponse { } type OCIRegistryPushResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Digest string `protobuf:"bytes,1,opt,name=Digest,proto3" json:"Digest,omitempty"` + PushedURL string `protobuf:"bytes,2,opt,name=PushedURL,proto3" json:"PushedURL,omitempty"` unknownFields protoimpl.UnknownFields - - Digest string `protobuf:"bytes,1,opt,name=Digest,proto3" json:"Digest,omitempty"` - PushedURL string `protobuf:"bytes,2,opt,name=PushedURL,proto3" json:"PushedURL,omitempty"` + sizeCache protoimpl.SizeCache } func (x *OCIRegistryPushResponse) Reset() { *x = OCIRegistryPushResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_grpc_applist_proto_msgTypes[65] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + mi := &file_grpc_applist_proto_msgTypes[65] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } func (x *OCIRegistryPushResponse) String() string { @@ -4682,7 +4493,7 @@ func (*OCIRegistryPushResponse) ProtoMessage() {} func (x *OCIRegistryPushResponse) ProtoReflect() protoreflect.Message { mi := &file_grpc_applist_proto_msgTypes[65] - if protoimpl.UnsafeEnabled && x != nil { + if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) @@ -4713,891 +4524,443 @@ func (x *OCIRegistryPushResponse) GetPushedURL() string { var File_grpc_applist_proto protoreflect.FileDescriptor -var file_grpc_applist_proto_rawDesc = []byte{ - 0x0a, 0x12, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x73, 0x74, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 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, 0x22, 0xde, 0x02, 0x0a, 0x0d, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, - 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x70, 0x69, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, - 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x34, 0x0a, 0x15, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x53, 0x6b, 0x69, - 0x70, 0x54, 0x4c, 0x53, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x15, 0x69, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x53, 0x6b, 0x69, 0x70, 0x54, 0x4c, - 0x53, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x44, 0x61, - 0x74, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x65, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x65, 0x72, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, - 0x06, 0x63, 0x61, 0x44, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, - 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4f, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x16, - 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3c, 0x0a, 0x0e, 0x41, 0x70, 0x70, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x08, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x43, 0x6c, 0x75, - 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x08, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x73, 0x22, 0x88, 0x03, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x34, 0x0a, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 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, 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, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x54, 0x72, 0x65, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x54, 0x72, 0x65, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0b, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x55, 0x73, 0x65, 0x46, 0x61, 0x6c, 0x6c, 0x42, 0x61, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x55, 0x73, 0x65, 0x46, 0x61, 0x6c, 0x6c, 0x42, 0x61, 0x63, 0x6b, 0x12, 0x2e, - 0x0a, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3f, - 0x0a, 0x11, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x11, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x73, 0x22, - 0x7b, 0x0a, 0x0b, 0x43, 0x61, 0x63, 0x68, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, - 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 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, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x70, 0x61, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x98, 0x02, 0x0a, - 0x1b, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x0d, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0e, 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, 0x4f, 0x0a, 0x16, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x16, 0x65, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x12, 0x2e, 0x0a, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x46, 0x61, 0x6c, 0x6c, - 0x42, 0x61, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x55, 0x73, 0x65, 0x46, - 0x61, 0x6c, 0x6c, 0x42, 0x61, 0x63, 0x6b, 0x22, 0x8e, 0x01, 0x0a, 0x16, 0x45, 0x78, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x0f, 0x44, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x41, 0x70, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x11, - 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x65, 0x64, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x11, 0x44, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x65, 0x64, 0x22, 0xa5, 0x01, 0x0a, 0x13, 0x46, 0x6c, 0x75, 0x78, 0x41, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, - 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x0f, 0x46, 0x6c, 0x75, 0x78, - 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x46, 0x6c, 0x75, 0x78, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x46, 0x6c, 0x75, 0x78, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, - 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x65, 0x64, 0x22, 0x96, 0x02, 0x0a, 0x0f, 0x46, - 0x6c, 0x75, 0x78, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x79, 0x6e, 0x63, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x79, 0x6e, 0x63, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x41, 0x0a, 0x11, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, - 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x13, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x11, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, - 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x15, 0x66, 0x6c, 0x75, - 0x78, 0x41, 0x70, 0x70, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x66, 0x6c, 0x75, 0x78, 0x41, 0x70, - 0x70, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x32, 0x0a, 0x14, 0x68, 0x65, 0x6c, 0x6d, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x68, - 0x65, 0x6c, 0x6d, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x22, 0x9a, 0x02, 0x0a, 0x14, 0x46, 0x6c, 0x75, 0x78, 0x41, 0x70, 0x70, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x0d, - 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0e, 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, 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, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x49, 0x73, 0x4b, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x69, 0x7a, 0x65, 0x41, 0x70, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x49, 0x73, - 0x4b, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x69, 0x7a, 0x65, 0x41, 0x70, 0x70, 0x12, 0x2e, 0x0a, 0x0b, - 0x63, 0x61, 0x63, 0x68, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x43, 0x61, 0x63, 0x68, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x20, 0x0a, 0x0b, - 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0b, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x46, 0x61, 0x6c, 0x6c, 0x42, 0x61, 0x63, 0x6b, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x55, 0x73, 0x65, 0x46, 0x61, 0x6c, 0x6c, 0x42, 0x61, 0x63, 0x6b, - 0x22, 0xc4, 0x02, 0x0a, 0x0d, 0x46, 0x6c, 0x75, 0x78, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x12, 0x3a, 0x0a, 0x0f, 0x66, 0x6c, 0x75, 0x78, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x46, 0x6c, - 0x75, 0x78, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x66, - 0x6c, 0x75, 0x78, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x46, - 0x0a, 0x13, 0x46, 0x6c, 0x75, 0x78, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x46, 0x6c, - 0x75, 0x78, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x13, 0x46, 0x6c, 0x75, 0x78, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x49, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, - 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x14, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x61, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x36, 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x16, 0x6c, 0x61, 0x73, 0x74, 0x4f, 0x62, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5f, 0x0a, 0x13, 0x46, 0x6c, 0x75, 0x78, 0x41, - 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x16, - 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x18, - 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xe4, 0x02, 0x0a, 0x11, 0x44, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x14, - 0x0a, 0x05, 0x61, 0x70, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, - 0x70, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x63, 0x68, 0x61, 0x72, 0x74, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x68, 0x61, 0x72, 0x74, 0x41, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x41, - 0x0a, 0x11, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x45, 0x6e, 0x76, 0x69, - 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x11, - 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x12, 0x3e, 0x0a, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, - 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x72, 0x74, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x68, - 0x6f, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x6d, 0x65, 0x22, - 0x72, 0x0a, 0x12, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x75, 0x73, 0x74, - 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, - 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x22, 0xc1, 0x02, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x0d, 0x63, 0x6c, 0x75, 0x73, - 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0e, 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, 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, 0x12, 0x20, 0x0a, 0x0b, - 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x43, - 0x0a, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, - 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x55, 0x73, 0x65, 0x46, 0x61, 0x6c, 0x6c, - 0x42, 0x61, 0x63, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x55, 0x73, 0x65, 0x46, - 0x61, 0x6c, 0x6c, 0x42, 0x61, 0x63, 0x6b, 0x12, 0x2e, 0x0a, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x43, - 0x61, 0x63, 0x68, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, - 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x99, 0x03, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x34, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x52, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0d, 0x72, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3e, 0x0a, 0x0c, 0x6c, 0x61, 0x73, - 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x6c, 0x61, 0x73, - 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x0d, 0x63, 0x68, 0x61, - 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0e, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x49, 0x0a, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x14, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x72, - 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x12, 0x65, 0x6e, - 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x45, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x12, 0x65, 0x6e, 0x76, - 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0x22, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x45, 0x78, 0x69, 0x73, 0x74, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x45, 0x78, - 0x69, 0x73, 0x74, 0x22, 0xc1, 0x01, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x41, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x24, 0x0a, 0x0d, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x44, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x44, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x4c, 0x61, 0x73, 0x74, 0x44, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x22, 0x63, 0x0a, 0x0d, 0x52, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 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, 0x22, 0xb7, 0x01, 0x0a, - 0x0d, 0x43, 0x68, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, - 0x63, 0x68, 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x68, 0x6f, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x20, - 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x22, 0x6b, 0x0a, 0x14, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, - 0x0a, 0x05, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x05, 0x6e, 0x6f, - 0x64, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x0b, 0x70, 0x6f, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x50, 0x6f, 0x64, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x6f, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x22, 0xa9, 0x04, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, - 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x0a, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x66, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x0c, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x52, 0x0a, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x66, 0x73, 0x12, 0x3f, 0x0a, 0x0e, 0x6e, 0x65, - 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x12, 0x22, 0x0a, 0x0c, - 0x69, 0x73, 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x64, - 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x61, 0x6e, 0x42, 0x65, 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, - 0x74, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x61, 0x6e, 0x42, 0x65, - 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x04, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x49, - 0x74, 0x65, 0x6d, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x0f, 0x20, 0x03, 0x28, 0x03, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69, - 0x73, 0x48, 0x6f, 0x6f, 0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x48, - 0x6f, 0x6f, 0x6b, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x68, 0x6f, 0x6f, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x22, - 0x34, 0x0a, 0x08, 0x49, 0x6e, 0x66, 0x6f, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x40, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, - 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x95, 0x01, 0x0a, 0x0b, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, - 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x1c, - 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, - 0x69, 0x64, 0x22, 0xdc, 0x01, 0x0a, 0x0b, 0x50, 0x6f, 0x64, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, - 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x6e, 0x69, 0x74, - 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, - 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x05, 0x69, 0x73, 0x4e, 0x65, 0x77, 0x12, 0x49, 0x0a, 0x13, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, - 0x72, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x45, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x43, - 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x13, 0x65, 0x70, - 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, - 0x73, 0x22, 0x4c, 0x0a, 0x16, 0x45, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x43, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x22, - 0x87, 0x01, 0x0a, 0x10, 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 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, 0x3d, 0x0a, 0x10, 0x6f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x10, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x8e, 0x02, 0x0a, 0x10, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x14, - 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x12, 0x44, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x09, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7e, 0x0a, 0x0f, 0x48, 0x69, - 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x35, 0x0a, - 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x1a, - 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x3d, 0x0a, 0x11, 0x48, 0x69, - 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x28, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x17, 0x48, 0x65, - 0x6c, 0x6d, 0x41, 0x70, 0x70, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x74, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x43, - 0x68, 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x0d, 0x63, 0x68, - 0x61, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x64, - 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0c, 0x64, 0x6f, 0x63, 0x6b, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x12, - 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x0a, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x41, 0x74, 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, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, - 0x64, 0x42, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x65, 0x64, 0x42, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x62, 0x0a, 0x18, 0x48, 0x65, 0x6c, 0x6d, 0x41, - 0x70, 0x70, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x12, 0x46, 0x0a, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x48, 0x65, 0x6c, 0x6d, 0x41, 0x70, 0x70, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x22, 0x85, 0x02, 0x0a, 0x0b, - 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x40, 0x0a, 0x11, 0x64, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x65, - 0x64, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x11, 0x64, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x65, 0x64, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x24, 0x0a, - 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x76, 0x65, - 0x72, 0x72, 0x69, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x6d, - 0x65, 0x72, 0x67, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x64, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x72, 0x65, 0x61, 0x64, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4a, 0x73, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x4a, - 0x73, 0x6f, 0x6e, 0x22, 0xd2, 0x01, 0x0a, 0x0d, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 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, 0x3d, 0x0a, 0x10, 0x6f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x10, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, - 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, 0x35, 0x0a, 0x17, 0x44, 0x65, 0x73, 0x69, - 0x72, 0x65, 0x64, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x22, - 0x34, 0x0a, 0x18, 0x55, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, - 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x97, 0x01, 0x0a, 0x11, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x34, 0x0a, 0x0d, 0x63, - 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 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, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x72, - 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x22, - 0x88, 0x02, 0x0a, 0x15, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x11, 0x72, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x11, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x59, 0x61, 0x6d, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x59, 0x61, 0x6d, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x68, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x12, 0x31, 0x0a, 0x0c, 0x63, - 0x68, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x52, 0x0c, 0x63, 0x68, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x52, 0x75, 0x6e, 0x49, 0x6e, 0x43, 0x74, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x52, 0x75, 0x6e, 0x49, 0x6e, 0x43, 0x74, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x4b, 0x38, - 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x4b, 0x38, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x32, 0x0a, 0x16, 0x55, 0x70, - 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x89, - 0x01, 0x0a, 0x17, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x11, 0x72, 0x65, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x11, 0x72, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, - 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x56, 0x0a, 0x18, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, - 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x59, 0x61, 0x6d, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x59, 0x61, - 0x6d, 0x6c, 0x22, 0xa9, 0x01, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, - 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 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, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x12, 0x38, 0x0a, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x73, - 0x65, 0x63, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x49, 0x6e, 0x73, 0x65, - 0x63, 0x75, 0x72, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa7, - 0x04, 0x0a, 0x15, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x11, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x68, - 0x61, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, - 0x68, 0x61, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x72, - 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x63, 0x68, 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x59, 0x61, 0x6d, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x59, 0x61, 0x6d, 0x6c, 0x12, 0x3a, 0x0a, 0x0f, - 0x63, 0x68, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x0f, 0x63, 0x68, 0x61, 0x72, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x4b, 0x38, 0x73, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4b, 0x38, - 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x68, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4d, 0x61, 0x78, 0x12, 0x43, 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x43, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x1c, 0x0a, - 0x09, 0x49, 0x73, 0x4f, 0x43, 0x49, 0x52, 0x65, 0x70, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x49, 0x73, 0x4f, 0x43, 0x49, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x3e, 0x0a, 0x1a, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x1a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x41, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x0c, 0x63, - 0x68, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x52, 0x0c, 0x63, 0x68, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x71, 0x0a, 0x19, 0x42, 0x75, 0x6c, 0x6b, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x19, 0x42, 0x75, 0x6c, 0x6b, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6c, 0x6c, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x19, 0x42, 0x75, 0x6c, 0x6b, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x32, 0x0a, 0x16, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, - 0x29, 0x0a, 0x0f, 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x74, 0x0a, 0x16, 0x52, 0x6f, - 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x52, 0x11, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x22, 0x5f, 0x0a, 0x15, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x72, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x67, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x4d, - 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0x71, 0x0a, 0x19, 0x42, 0x75, 0x6c, 0x6b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x54, - 0x0a, 0x19, 0x42, 0x75, 0x6c, 0x6b, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, - 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x16, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x72, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x19, 0x42, 0x75, 0x6c, 0x6b, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9d, 0x01, 0x0a, 0x1e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x57, 0x69, - 0x74, 0x68, 0x43, 0x68, 0x61, 0x72, 0x74, 0x12, 0x4c, 0x0a, 0x15, 0x74, 0x65, 0x6d, 0x70, 0x6c, - 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x15, - 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x74, 0x42, 0x79, - 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x43, 0x68, 0x61, 0x72, - 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x72, 0x74, 0x42, - 0x79, 0x74, 0x65, 0x73, 0x22, 0xeb, 0x01, 0x0a, 0x18, 0x48, 0x65, 0x6c, 0x6d, 0x49, 0x6e, 0x73, - 0x74, 0x61, 0x6c, 0x6c, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x59, 0x61, 0x6d, 0x6c, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x59, 0x61, 0x6d, - 0x6c, 0x12, 0x31, 0x0a, 0x0c, 0x63, 0x68, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x0c, 0x63, 0x68, 0x61, 0x72, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x12, 0x40, 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x52, 0x11, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x75, 0x6e, 0x49, 0x6e, 0x43, - 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x52, 0x75, 0x6e, 0x49, 0x6e, 0x43, - 0x74, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x4b, 0x38, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x4b, 0x38, 0x73, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x22, 0x35, 0x0a, 0x19, 0x48, 0x65, 0x6c, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, - 0x6c, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x28, 0x0a, 0x0c, 0x43, 0x68, 0x61, - 0x72, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x22, 0x49, 0x0a, 0x03, 0x47, 0x76, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x18, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x4b, 0x69, - 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x22, 0x6d, - 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, - 0x12, 0x16, 0x0a, 0x03, 0x67, 0x76, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x04, 0x2e, - 0x47, 0x76, 0x6b, 0x52, 0x03, 0x67, 0x76, 0x6b, 0x12, 0x43, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x22, 0x88, 0x01, - 0x0a, 0x12, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x1a, 0x39, 0x0a, - 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 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, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x88, 0x01, 0x0a, 0x12, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, - 0x37, 0x0a, 0x0c, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x52, 0x0c, 0x67, 0x6c, 0x6f, 0x62, - 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x0f, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x52, 0x0f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x73, 0x22, 0x2a, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x74, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x74, 0x65, 0x73, 0x22, - 0xd1, 0x01, 0x0a, 0x12, 0x4f, 0x43, 0x49, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x68, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x43, 0x68, 0x61, 0x72, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x43, 0x68, 0x61, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x43, 0x68, 0x61, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x43, 0x68, - 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x43, 0x68, 0x61, 0x72, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, - 0x0a, 0x0a, 0x49, 0x73, 0x49, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0a, 0x49, 0x73, 0x49, 0x6e, 0x73, 0x65, 0x63, 0x75, 0x72, 0x65, 0x12, 0x43, - 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x52, - 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x61, 0x6c, 0x22, 0x95, 0x04, 0x0a, 0x12, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, - 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, - 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x61, 0x73, 0x73, - 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x77, 0x73, 0x52, 0x65, 0x67, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, 0x77, 0x73, 0x52, 0x65, 0x67, 0x69, - 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, - 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x12, 0x22, - 0x0a, 0x0c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x54, 0x79, 0x70, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x65, 0x70, 0x6f, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x52, 0x65, 0x70, 0x6f, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x49, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x49, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x4f, 0x0a, 0x16, 0x52, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x52, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x30, 0x0a, 0x13, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x43, 0x65, 0x72, 0x74, 0x69, - 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x72, 0x65, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x0b, 0x50, - 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x72, - 0x6f, 0x78, 0x79, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x50, 0x72, - 0x6f, 0x78, 0x79, 0x55, 0x72, 0x6c, 0x22, 0xa1, 0x01, 0x0a, 0x0f, 0x53, 0x53, 0x48, 0x54, 0x75, - 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x0a, 0x10, 0x53, 0x53, - 0x48, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x53, 0x53, 0x48, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x53, 0x48, 0x55, 0x73, 0x65, - 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x53, 0x48, - 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x53, 0x48, 0x50, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, - 0x53, 0x48, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x53, - 0x48, 0x41, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x53, 0x53, 0x48, 0x41, 0x75, 0x74, 0x68, 0x4b, 0x65, 0x79, 0x22, 0xd5, 0x01, 0x0a, 0x16, 0x52, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x4f, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x16, - 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x2e, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x50, 0x72, - 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0b, 0x50, 0x72, 0x6f, 0x78, 0x79, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3a, 0x0a, 0x0f, 0x53, 0x53, 0x48, 0x54, 0x75, 0x6e, - 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x53, 0x53, 0x48, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x0f, 0x53, 0x53, 0x48, 0x54, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x22, 0x6f, 0x0a, 0x13, 0x4f, 0x43, 0x49, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x73, 0x4c, - 0x6f, 0x67, 0x67, 0x65, 0x64, 0x49, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x49, - 0x73, 0x4c, 0x6f, 0x67, 0x67, 0x65, 0x64, 0x49, 0x6e, 0x12, 0x38, 0x0a, 0x0a, 0x50, 0x75, 0x73, - 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, - 0x4f, 0x43, 0x49, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x50, 0x75, 0x73, 0x68, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x22, 0x4f, 0x0a, 0x17, 0x4f, 0x43, 0x49, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x79, 0x50, 0x75, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x44, 0x69, 0x67, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x50, 0x75, 0x73, 0x68, 0x65, 0x64, - 0x55, 0x52, 0x4c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x50, 0x75, 0x73, 0x68, 0x65, - 0x64, 0x55, 0x52, 0x4c, 0x2a, 0x38, 0x0a, 0x16, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x09, - 0x0a, 0x05, 0x50, 0x52, 0x4f, 0x58, 0x59, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x53, 0x48, - 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x10, 0x02, 0x32, 0xd9, - 0x0f, 0x0a, 0x12, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x39, 0x0a, 0x10, 0x4c, 0x69, 0x73, 0x74, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0f, 0x2e, 0x41, 0x70, 0x70, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, 0x44, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x41, 0x70, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x00, 0x30, 0x01, - 0x12, 0x41, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x75, 0x78, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x0f, 0x2e, 0x41, 0x70, 0x70, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x46, 0x6c, 0x75, 0x78, - 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x22, - 0x00, 0x30, 0x01, 0x12, 0x2f, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x12, 0x11, 0x2e, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0a, 0x2e, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x22, 0x00, 0x12, 0x2f, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x11, 0x2e, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0a, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x31, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x70, 0x70, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x32, 0x12, 0x11, 0x2e, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0a, 0x2e, 0x41, 0x70, 0x70, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x00, 0x12, 0x34, 0x0a, 0x09, 0x48, 0x69, 0x62, 0x65, - 0x72, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x11, 0x2e, 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x48, 0x69, 0x62, 0x65, 0x72, - 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x36, - 0x0a, 0x0b, 0x55, 0x6e, 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x11, 0x2e, - 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x12, 0x2e, 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x46, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x11, - 0x2e, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x19, 0x2e, 0x48, 0x65, 0x6c, 0x6d, 0x41, 0x70, 0x70, 0x44, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x22, 0x00, 0x12, 0x32, - 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x59, 0x61, 0x6d, 0x6c, 0x12, - 0x11, 0x2e, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x0c, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x22, 0x00, 0x12, 0x40, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x44, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, - 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x2e, 0x4f, 0x62, 0x6a, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x44, 0x65, 0x73, 0x69, 0x72, - 0x65, 0x64, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x10, 0x55, 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, - 0x6c, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x12, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, - 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x1a, 0x19, 0x2e, 0x55, - 0x6e, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x67, - 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x16, 0x2e, 0x55, 0x70, - 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x4c, - 0x0a, 0x13, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x19, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x43, 0x0a, 0x0e, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x16, - 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, - 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x50, 0x0a, 0x1b, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x43, 0x68, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x16, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, - 0x64, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x3c, 0x0a, 0x12, 0x49, 0x73, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x12, 0x2e, 0x52, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x1a, 0x10, 0x2e, - 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x3e, 0x0a, 0x0f, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x6c, - 0x65, 0x61, 0x73, 0x65, 0x12, 0x17, 0x2e, 0x52, 0x6f, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, - 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x10, 0x2e, - 0x42, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x41, 0x0a, 0x0d, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, - 0x72, 0x74, 0x12, 0x16, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x6c, 0x65, - 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x54, 0x65, 0x6d, - 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x4d, 0x0a, 0x11, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, - 0x43, 0x68, 0x61, 0x72, 0x74, 0x42, 0x75, 0x6c, 0x6b, 0x12, 0x1a, 0x2e, 0x42, 0x75, 0x6c, 0x6b, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x54, 0x65, 0x6d, 0x70, - 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x1d, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, - 0x68, 0x61, 0x72, 0x74, 0x41, 0x6e, 0x64, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x65, 0x43, - 0x68, 0x61, 0x72, 0x74, 0x12, 0x16, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, - 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x54, - 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x43, 0x68, 0x61, 0x72, 0x74, 0x22, 0x00, 0x12, - 0x58, 0x0a, 0x1d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x43, 0x68, 0x61, 0x72, 0x74, - 0x12, 0x19, 0x2e, 0x48, 0x65, 0x6c, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x43, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x48, 0x65, - 0x6c, 0x6d, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x39, 0x0a, 0x08, 0x47, 0x65, 0x74, - 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x12, 0x16, 0x2e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x52, - 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, - 0x43, 0x68, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x1d, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, - 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x43, 0x68, 0x61, 0x72, 0x74, 0x12, 0x16, 0x2e, 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, - 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, - 0x55, 0x70, 0x67, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x42, 0x0a, 0x13, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x65, 0x4f, 0x43, 0x49, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x12, - 0x13, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x61, 0x6c, 0x1a, 0x14, 0x2e, 0x4f, 0x43, 0x49, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x49, 0x0a, 0x1a, - 0x50, 0x75, 0x73, 0x68, 0x48, 0x65, 0x6c, 0x6d, 0x43, 0x68, 0x61, 0x72, 0x74, 0x54, 0x6f, 0x4f, - 0x43, 0x49, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x12, 0x13, 0x2e, 0x4f, 0x43, 0x49, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x14, 0x2e, 0x4f, 0x43, 0x49, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x46, 0x6f, 0x72, 0x45, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x1c, - 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x78, - 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x15, 0x2e, 0x46, 0x6c, 0x75, 0x78, - 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x0e, 0x2e, 0x46, 0x6c, 0x75, 0x78, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x22, 0x00, 0x12, 0x3d, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x12, 0x2e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, - 0x65, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x1a, 0x12, 0x2e, 0x44, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x65, 0x64, 0x41, 0x70, 0x70, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, - 0x00, 0x12, 0x57, 0x0a, 0x23, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x17, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x15, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x72, 0x65, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x33, 0x5a, 0x31, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x64, 0x65, 0x76, 0x74, 0x72, 0x6f, 0x6e, - 0x2d, 0x6c, 0x61, 0x62, 0x73, 0x2f, 0x6b, 0x75, 0x62, 0x65, 0x6c, 0x69, 0x6e, 0x6b, 0x2f, 0x62, - 0x65, 0x61, 0x6e, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} +const file_grpc_applist_proto_rawDesc = "" + + "\n" + + "\x12grpc/applist.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xde\x02\n" + + "\rClusterConfig\x12\"\n" + + "\fapiServerUrl\x18\x01 \x01(\tR\fapiServerUrl\x12\x14\n" + + "\x05token\x18\x02 \x01(\tR\x05token\x12\x1c\n" + + "\tclusterId\x18\x03 \x01(\x05R\tclusterId\x12 \n" + + "\vclusterName\x18\x04 \x01(\tR\vclusterName\x124\n" + + "\x15insecureSkipTLSVerify\x18\x05 \x01(\bR\x15insecureSkipTLSVerify\x12\x18\n" + + "\akeyData\x18\x06 \x01(\tR\akeyData\x12\x1a\n" + + "\bcertData\x18\a \x01(\tR\bcertData\x12\x16\n" + + "\x06caData\x18\b \x01(\tR\x06caData\x12O\n" + + "\x16RemoteConnectionConfig\x18\t \x01(\v2\x17.RemoteConnectionConfigR\x16RemoteConnectionConfig\"<\n" + + "\x0eAppListRequest\x12*\n" + + "\bclusters\x18\x01 \x03(\v2\x0e.ClusterConfigR\bclusters\"\x88\x03\n" + + "\x16GetResourceTreeRequest\x124\n" + + "\rclusterConfig\x18\x01 \x01(\v2\x0e.ClusterConfigR\rclusterConfig\x12\x1c\n" + + "\tnamespace\x18\x02 \x01(\tR\tnamespace\x12 \n" + + "\vReleaseName\x18\x03 \x01(\tR\vReleaseName\x12C\n" + + "\x12resourceTreeFilter\x18\x04 \x01(\v2\x13.ResourceTreeFilterR\x12resourceTreeFilter\x12 \n" + + "\vPreferCache\x18\x05 \x01(\bR\vPreferCache\x12 \n" + + "\vUseFallBack\x18\x06 \x01(\bR\vUseFallBack\x12.\n" + + "\vcacheConfig\x18\a \x01(\v2\f.CacheConfigR\vcacheConfig\x12?\n" + + "\x11objectIdentifiers\x18\b \x03(\v2\x11.ObjectIdentifierR\x11objectIdentifiers\"{\n" + + "\vCacheConfig\x12 \n" + + "\vserviceName\x18\x01 \x01(\tR\vserviceName\x12\x1c\n" + + "\tnamespace\x18\x02 \x01(\tR\tnamespace\x12\x18\n" + + "\apassKey\x18\x03 \x01(\tR\apassKey\x12\x12\n" + + "\x04port\x18\x04 \x01(\tR\x04port\"\x98\x02\n" + + "\x1bExternalResourceTreeRequest\x124\n" + + "\rclusterConfig\x18\x01 \x01(\v2\x0e.ClusterConfigR\rclusterConfig\x12O\n" + + "\x16externalResourceDetail\x18\x02 \x03(\v2\x17.ExternalResourceDetailR\x16externalResourceDetail\x12.\n" + + "\vcacheConfig\x18\x03 \x01(\v2\f.CacheConfigR\vcacheConfig\x12 \n" + + "\vPreferCache\x18\x04 \x01(\bR\vPreferCache\x12 \n" + + "\vUseFallBack\x18\x05 \x01(\bR\vUseFallBack\"\x8e\x01\n" + + "\x16ExternalResourceDetail\x12\x14\n" + + "\x05group\x18\x01 \x01(\tR\x05group\x12\x12\n" + + "\x04kind\x18\x02 \x01(\tR\x04kind\x12\x18\n" + + "\aversion\x18\x03 \x01(\tR\aversion\x12\x12\n" + + "\x04name\x18\x04 \x01(\tR\x04name\x12\x1c\n" + + "\tnamespace\x18\x05 \x01(\tR\tnamespace\"\xa7\x01\n" + + "\x0fDeployedAppList\x12@\n" + + "\x11DeployedAppDetail\x18\x01 \x03(\v2\x12.DeployedAppDetailR\x11DeployedAppDetail\x12\x1c\n" + + "\tclusterId\x18\x02 \x01(\x05R\tclusterId\x12\x1a\n" + + "\berrorMsg\x18\x03 \x01(\tR\berrorMsg\x12\x18\n" + + "\aerrored\x18\x04 \x01(\bR\aerrored\"\xa5\x01\n" + + "\x13FluxApplicationList\x12\x1c\n" + + "\tclusterId\x18\x01 \x01(\x05R\tclusterId\x12:\n" + + "\x0fFluxApplication\x18\x02 \x03(\v2\x10.FluxApplicationR\x0fFluxApplication\x12\x1a\n" + + "\berrorMsg\x18\x03 \x01(\tR\berrorMsg\x12\x18\n" + + "\aerrored\x18\x04 \x01(\bR\aerrored\"\x96\x02\n" + + "\x0fFluxApplication\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\"\n" + + "\fhealthStatus\x18\x02 \x01(\tR\fhealthStatus\x12\x1e\n" + + "\n" + + "syncStatus\x18\x03 \x01(\tR\n" + + "syncStatus\x12A\n" + + "\x11environmentDetail\x18\x04 \x01(\v2\x13.EnvironmentDetailsR\x11environmentDetail\x124\n" + + "\x15fluxAppDeploymentType\x18\x05 \x01(\tR\x15fluxAppDeploymentType\x122\n" + + "\x14helmReleaseNamespace\x18\x06 \x01(\tR\x14helmReleaseNamespace\"\x9a\x02\n" + + "\x14FluxAppDetailRequest\x124\n" + + "\rclusterConfig\x18\x01 \x01(\v2\x0e.ClusterConfigR\rclusterConfig\x12\x1c\n" + + "\tnamespace\x18\x02 \x01(\tR\tnamespace\x12\x12\n" + + "\x04name\x18\x03 \x01(\tR\x04name\x12&\n" + + "\x0eIsKustomizeApp\x18\x04 \x01(\bR\x0eIsKustomizeApp\x12.\n" + + "\vcacheConfig\x18\x05 \x01(\v2\f.CacheConfigR\vcacheConfig\x12 \n" + + "\vPreferCache\x18\x06 \x01(\bR\vPreferCache\x12 \n" + + "\vUseFallBack\x18\a \x01(\bR\vUseFallBack\"\xc4\x02\n" + + "\rFluxAppDetail\x12:\n" + + "\x0ffluxApplication\x18\x01 \x01(\v2\x10.FluxApplicationR\x0ffluxApplication\x12F\n" + + "\x13FluxAppStatusDetail\x18\x02 \x01(\v2\x14.FluxAppStatusDetailR\x13FluxAppStatusDetail\x12I\n" + + "\x14resourceTreeResponse\x18\x03 \x01(\v2\x15.ResourceTreeResponseR\x14resourceTreeResponse\x12,\n" + + "\x11applicationStatus\x18\x04 \x01(\tR\x11applicationStatus\x126\n" + + "\x16lastObservedGeneration\x18\x05 \x01(\tR\x16lastObservedGeneration\"_\n" + + "\x13FluxAppStatusDetail\x12\x16\n" + + "\x06Status\x18\x01 \x01(\tR\x06Status\x12\x16\n" + + "\x06Reason\x18\x02 \x01(\tR\x06Reason\x12\x18\n" + + "\aMessage\x18\x03 \x01(\tR\aMessage\"\xe4\x02\n" + + "\x11DeployedAppDetail\x12\x14\n" + + "\x05appId\x18\x01 \x01(\tR\x05appId\x12\x18\n" + + "\aappName\x18\x02 \x01(\tR\aappName\x12\x1c\n" + + "\tchartName\x18\x03 \x01(\tR\tchartName\x12 \n" + + "\vchartAvatar\x18\x04 \x01(\tR\vchartAvatar\x12A\n" + + "\x11environmentDetail\x18\x05 \x01(\v2\x13.EnvironmentDetailsR\x11environmentDetail\x12>\n" + + "\fLastDeployed\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\fLastDeployed\x12\"\n" + + "\fchartVersion\x18\a \x01(\tR\fchartVersion\x12$\n" + + "\rreleaseStatus\x18\b \x01(\tR\rreleaseStatus\x12\x12\n" + + "\x04home\x18\t \x01(\tR\x04home\"r\n" + + "\x12EnvironmentDetails\x12 \n" + + "\vclusterName\x18\x01 \x01(\tR\vclusterName\x12\x1c\n" + + "\tclusterId\x18\x02 \x01(\x05R\tclusterId\x12\x1c\n" + + "\tnamespace\x18\x03 \x01(\tR\tnamespace\"\xc1\x02\n" + + "\x10AppDetailRequest\x124\n" + + "\rclusterConfig\x18\x01 \x01(\v2\x0e.ClusterConfigR\rclusterConfig\x12\x1c\n" + + "\tnamespace\x18\x02 \x01(\tR\tnamespace\x12 \n" + + "\vReleaseName\x18\x03 \x01(\tR\vReleaseName\x12C\n" + + "\x12resourceTreeFilter\x18\x04 \x01(\v2\x13.ResourceTreeFilterR\x12resourceTreeFilter\x12 \n" + + "\vPreferCache\x18\x05 \x01(\bR\vPreferCache\x12 \n" + + "\vUseFallBack\x18\x06 \x01(\bR\vUseFallBack\x12.\n" + + "\vcacheConfig\x18\a \x01(\v2\f.CacheConfigR\vcacheConfig\"\x99\x03\n" + + "\tAppDetail\x12,\n" + + "\x11applicationStatus\x18\x01 \x01(\tR\x11applicationStatus\x124\n" + + "\rreleaseStatus\x18\x02 \x01(\v2\x0e.ReleaseStatusR\rreleaseStatus\x12>\n" + + "\flastDeployed\x18\x06 \x01(\v2\x1a.google.protobuf.TimestampR\flastDeployed\x124\n" + + "\rchartMetadata\x18\a \x01(\v2\x0e.ChartMetadataR\rchartMetadata\x12I\n" + + "\x14resourceTreeResponse\x18\b \x01(\v2\x15.ResourceTreeResponseR\x14resourceTreeResponse\x12C\n" + + "\x12environmentDetails\x18\t \x01(\v2\x13.EnvironmentDetailsR\x12environmentDetails\x12\"\n" + + "\fReleaseExist\x18\n" + + " \x01(\bR\fReleaseExist\"\xc1\x01\n" + + "\tAppStatus\x12,\n" + + "\x11ApplicationStatus\x18\x01 \x01(\tR\x11ApplicationStatus\x12$\n" + + "\rReleaseStatus\x18\x02 \x01(\tR\rReleaseStatus\x12 \n" + + "\vDescription\x18\x03 \x01(\tR\vDescription\x12>\n" + + "\fLastDeployed\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\fLastDeployed\"c\n" + + "\rReleaseStatus\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\x12 \n" + + "\vdescription\x18\x03 \x01(\tR\vdescription\"\xb7\x01\n" + + "\rChartMetadata\x12\x1c\n" + + "\tchartName\x18\x01 \x01(\tR\tchartName\x12\"\n" + + "\fchartVersion\x18\x02 \x01(\tR\fchartVersion\x12\x12\n" + + "\x04home\x18\x03 \x01(\tR\x04home\x12\x18\n" + + "\asources\x18\x04 \x03(\tR\asources\x12 \n" + + "\vdescription\x18\x05 \x01(\tR\vdescription\x12\x14\n" + + "\x05notes\x18\x06 \x01(\tR\x05notes\"k\n" + + "\x14ResourceTreeResponse\x12#\n" + + "\x05nodes\x18\x01 \x03(\v2\r.ResourceNodeR\x05nodes\x12.\n" + + "\vpodMetadata\x18\x02 \x03(\v2\f.PodMetadataR\vpodMetadata\"\xa9\x04\n" + + "\fResourceNode\x12\x14\n" + + "\x05group\x18\x01 \x01(\tR\x05group\x12\x18\n" + + "\aversion\x18\x02 \x01(\tR\aversion\x12\x12\n" + + "\x04kind\x18\x03 \x01(\tR\x04kind\x12\x1c\n" + + "\tnamespace\x18\x04 \x01(\tR\tnamespace\x12\x12\n" + + "\x04name\x18\x05 \x01(\tR\x04name\x12\x10\n" + + "\x03uid\x18\x06 \x01(\tR\x03uid\x12,\n" + + "\n" + + "parentRefs\x18\a \x03(\v2\f.ResourceRefR\n" + + "parentRefs\x12?\n" + + "\x0enetworkingInfo\x18\b \x01(\v2\x17.ResourceNetworkingInfoR\x0enetworkingInfo\x12(\n" + + "\x0fresourceVersion\x18\t \x01(\tR\x0fresourceVersion\x12%\n" + + "\x06health\x18\n" + + " \x01(\v2\r.HealthStatusR\x06health\x12\"\n" + + "\fisHibernated\x18\v \x01(\bR\fisHibernated\x12(\n" + + "\x0fcanBeHibernated\x18\f \x01(\bR\x0fcanBeHibernated\x12\x1d\n" + + "\x04info\x18\r \x03(\v2\t.InfoItemR\x04info\x12\x1c\n" + + "\tcreatedAt\x18\x0e \x01(\tR\tcreatedAt\x12\x12\n" + + "\x04port\x18\x0f \x03(\x03R\x04port\x12\x16\n" + + "\x06isHook\x18\x10 \x01(\bR\x06isHook\x12\x1a\n" + + "\bhookType\x18\x11 \x01(\tR\bhookType\"4\n" + + "\bInfoItem\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value\"@\n" + + "\fHealthStatus\x12\x16\n" + + "\x06status\x18\x01 \x01(\tR\x06status\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\"\x90\x01\n" + + "\x16ResourceNetworkingInfo\x12;\n" + + "\x06labels\x18\x01 \x03(\v2#.ResourceNetworkingInfo.LabelsEntryR\x06labels\x1a9\n" + + "\vLabelsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x95\x01\n" + + "\vResourceRef\x12\x14\n" + + "\x05group\x18\x01 \x01(\tR\x05group\x12\x18\n" + + "\aversion\x18\x02 \x01(\tR\aversion\x12\x12\n" + + "\x04kind\x18\x03 \x01(\tR\x04kind\x12\x1c\n" + + "\tnamespace\x18\x04 \x01(\tR\tnamespace\x12\x12\n" + + "\x04name\x18\x05 \x01(\tR\x04name\x12\x10\n" + + "\x03uid\x18\x06 \x01(\tR\x03uid\"\xdc\x01\n" + + "\vPodMetadata\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n" + + "\x03uid\x18\x02 \x01(\tR\x03uid\x12\x1e\n" + + "\n" + + "containers\x18\x03 \x03(\tR\n" + + "containers\x12&\n" + + "\x0einitContainers\x18\x04 \x03(\tR\x0einitContainers\x12\x14\n" + + "\x05isNew\x18\x05 \x01(\bR\x05isNew\x12I\n" + + "\x13ephemeralContainers\x18\x06 \x03(\v2\x17.EphemeralContainerDataR\x13ephemeralContainers\"L\n" + + "\x16EphemeralContainerData\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x1e\n" + + "\n" + + "isExternal\x18\x02 \x01(\bR\n" + + "isExternal\"\x87\x01\n" + + "\x10HibernateRequest\x124\n" + + "\rclusterConfig\x18\x01 \x01(\v2\x0e.ClusterConfigR\rclusterConfig\x12=\n" + + "\x10objectIdentifier\x18\x02 \x03(\v2\x11.ObjectIdentifierR\x10objectIdentifier\"\x8e\x02\n" + + "\x10ObjectIdentifier\x12\x14\n" + + "\x05group\x18\x01 \x01(\tR\x05group\x12\x12\n" + + "\x04kind\x18\x02 \x01(\tR\x04kind\x12\x18\n" + + "\aversion\x18\x03 \x01(\tR\aversion\x12\x12\n" + + "\x04name\x18\x04 \x01(\tR\x04name\x12\x1c\n" + + "\tnamespace\x18\x05 \x01(\tR\tnamespace\x12D\n" + + "\vannotations\x18\x06 \x03(\v2\".ObjectIdentifier.AnnotationsEntryR\vannotations\x1a>\n" + + "\x10AnnotationsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"~\n" + + "\x0fHibernateStatus\x125\n" + + "\ftargetObject\x18\x01 \x01(\v2\x11.ObjectIdentifierR\ftargetObject\x12\x18\n" + + "\asuccess\x18\x02 \x01(\bR\asuccess\x12\x1a\n" + + "\berrorMsg\x18\x03 \x01(\tR\berrorMsg\"=\n" + + "\x11HibernateResponse\x12(\n" + + "\x06status\x18\x01 \x03(\v2\x10.HibernateStatusR\x06status\"\x9b\x02\n" + + "\x17HelmAppDeploymentDetail\x124\n" + + "\rchartMetadata\x18\x01 \x01(\v2\x0e.ChartMetadataR\rchartMetadata\x12\"\n" + + "\fdockerImages\x18\x02 \x03(\tR\fdockerImages\x12\x18\n" + + "\aversion\x18\x03 \x01(\x05R\aversion\x12:\n" + + "\n" + + "deployedAt\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "deployedAt\x12\x1e\n" + + "\n" + + "deployedBy\x18\x05 \x01(\tR\n" + + "deployedBy\x12\x16\n" + + "\x06status\x18\x06 \x01(\tR\x06status\x12\x18\n" + + "\amessage\x18\a \x01(\tR\amessage\"b\n" + + "\x18HelmAppDeploymentHistory\x12F\n" + + "\x11deploymentHistory\x18\x01 \x03(\v2\x18.HelmAppDeploymentDetailR\x11deploymentHistory\"\x85\x02\n" + + "\vReleaseInfo\x12@\n" + + "\x11deployedAppDetail\x18\x01 \x01(\v2\x12.DeployedAppDetailR\x11deployedAppDetail\x12$\n" + + "\rdefaultValues\x18\x02 \x01(\tR\rdefaultValues\x12&\n" + + "\x0eoverrideValues\x18\x03 \x01(\tR\x0eoverrideValues\x12\"\n" + + "\fmergedValues\x18\x04 \x01(\tR\fmergedValues\x12\x16\n" + + "\x06readme\x18\x05 \x01(\tR\x06readme\x12*\n" + + "\x10valuesSchemaJson\x18\x06 \x01(\tR\x10valuesSchemaJson\"\xd2\x01\n" + + "\rObjectRequest\x124\n" + + "\rclusterConfig\x18\x01 \x01(\v2\x0e.ClusterConfigR\rclusterConfig\x12=\n" + + "\x10objectIdentifier\x18\x02 \x01(\v2\x11.ObjectIdentifierR\x10objectIdentifier\x12 \n" + + "\vreleaseName\x18\x03 \x01(\tR\vreleaseName\x12*\n" + + "\x10releaseNamespace\x18\x04 \x01(\tR\x10releaseNamespace\"5\n" + + "\x17DesiredManifestResponse\x12\x1a\n" + + "\bmanifest\x18\x01 \x01(\tR\bmanifest\"4\n" + + "\x18UninstallReleaseResponse\x12\x18\n" + + "\asuccess\x18\x01 \x01(\bR\asuccess\"\x97\x01\n" + + "\x11ReleaseIdentifier\x124\n" + + "\rclusterConfig\x18\x01 \x01(\v2\x0e.ClusterConfigR\rclusterConfig\x12 \n" + + "\vreleaseName\x18\x02 \x01(\tR\vreleaseName\x12*\n" + + "\x10releaseNamespace\x18\x03 \x01(\tR\x10releaseNamespace\"\x88\x02\n" + + "\x15UpgradeReleaseRequest\x12@\n" + + "\x11releaseIdentifier\x18\x01 \x01(\v2\x12.ReleaseIdentifierR\x11releaseIdentifier\x12\x1e\n" + + "\n" + + "valuesYaml\x18\x02 \x01(\tR\n" + + "valuesYaml\x12\x1e\n" + + "\n" + + "historyMax\x18\x03 \x01(\x05R\n" + + "historyMax\x121\n" + + "\fchartContent\x18\x04 \x01(\v2\r.ChartContentR\fchartContent\x12\x1a\n" + + "\bRunInCtx\x18\x05 \x01(\bR\bRunInCtx\x12\x1e\n" + + "\n" + + "K8sVersion\x18\x06 \x01(\tR\n" + + "K8sVersion\"2\n" + + "\x16UpgradeReleaseResponse\x12\x18\n" + + "\asuccess\x18\x01 \x01(\bR\asuccess\"\x89\x01\n" + + "\x17DeploymentDetailRequest\x12@\n" + + "\x11releaseIdentifier\x18\x01 \x01(\v2\x12.ReleaseIdentifierR\x11releaseIdentifier\x12,\n" + + "\x11deploymentVersion\x18\x02 \x01(\x05R\x11deploymentVersion\"V\n" + + "\x18DeploymentDetailResponse\x12\x1a\n" + + "\bmanifest\x18\x01 \x01(\tR\bmanifest\x12\x1e\n" + + "\n" + + "valuesYaml\x18\x02 \x01(\tR\n" + + "valuesYaml\"\xa9\x01\n" + + "\x0fChartRepository\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x10\n" + + "\x03url\x18\x02 \x01(\tR\x03url\x12\x1a\n" + + "\busername\x18\x03 \x01(\tR\busername\x12\x1a\n" + + "\bpassword\x18\x04 \x01(\tR\bpassword\x128\n" + + "\x17allowInsecureConnection\x18\x05 \x01(\bR\x17allowInsecureConnection\"\xa7\x04\n" + + "\x15InstallReleaseRequest\x12@\n" + + "\x11releaseIdentifier\x18\x01 \x01(\v2\x12.ReleaseIdentifierR\x11releaseIdentifier\x12\x1c\n" + + "\tchartName\x18\x02 \x01(\tR\tchartName\x12\"\n" + + "\fchartVersion\x18\x03 \x01(\tR\fchartVersion\x12\x1e\n" + + "\n" + + "valuesYaml\x18\x04 \x01(\tR\n" + + "valuesYaml\x12:\n" + + "\x0fchartRepository\x18\x05 \x01(\v2\x10.ChartRepositoryR\x0fchartRepository\x12\x1e\n" + + "\n" + + "K8sVersion\x18\x06 \x01(\tR\n" + + "K8sVersion\x12\x1e\n" + + "\n" + + "historyMax\x18\a \x01(\x05R\n" + + "historyMax\x12C\n" + + "\x12RegistryCredential\x18\b \x01(\v2\x13.RegistryCredentialR\x12RegistryCredential\x12\x1c\n" + + "\tIsOCIRepo\x18\t \x01(\bR\tIsOCIRepo\x12>\n" + + "\x1ainstallAppVersionHistoryId\x18\n" + + " \x01(\x05R\x1ainstallAppVersionHistoryId\x121\n" + + "\fchartContent\x18\v \x01(\v2\r.ChartContentR\fchartContent\x12\x18\n" + + "\aappName\x18\f \x01(\tR\aappName\"q\n" + + "\x19BulkInstallReleaseRequest\x12T\n" + + "\x19BulkInstallReleaseRequest\x18\x01 \x03(\v2\x16.InstallReleaseRequestR\x19BulkInstallReleaseRequest\"2\n" + + "\x16InstallReleaseResponse\x12\x18\n" + + "\asuccess\x18\x01 \x01(\bR\asuccess\")\n" + + "\x0fBooleanResponse\x12\x16\n" + + "\x06result\x18\x01 \x01(\bR\x06result\"t\n" + + "\x16RollbackReleaseRequest\x12@\n" + + "\x11releaseIdentifier\x18\x01 \x01(\v2\x12.ReleaseIdentifierR\x11releaseIdentifier\x12\x18\n" + + "\aversion\x18\x02 \x01(\x05R\aversion\"_\n" + + "\x15TemplateChartResponse\x12,\n" + + "\x11generatedManifest\x18\x01 \x01(\tR\x11generatedManifest\x12\x18\n" + + "\aappName\x18\x02 \x01(\tR\aappName\"q\n" + + "\x19BulkTemplateChartResponse\x12T\n" + + "\x19BulkTemplateChartResponse\x18\x01 \x03(\v2\x16.TemplateChartResponseR\x19BulkTemplateChartResponse\"\x9d\x01\n" + + "\x1eTemplateChartResponseWithChart\x12L\n" + + "\x15templateChartResponse\x18\x01 \x01(\v2\x16.TemplateChartResponseR\x15templateChartResponse\x12-\n" + + "\n" + + "chartBytes\x18\x02 \x01(\v2\r.ChartContentR\n" + + "chartBytes\"\x91\x02\n" + + "\x18HelmInstallCustomRequest\x12\x1e\n" + + "\n" + + "valuesYaml\x18\x01 \x01(\tR\n" + + "valuesYaml\x121\n" + + "\fchartContent\x18\x02 \x01(\v2\r.ChartContentR\fchartContent\x12@\n" + + "\x11releaseIdentifier\x18\x03 \x01(\v2\x12.ReleaseIdentifierR\x11releaseIdentifier\x12\x1a\n" + + "\bRunInCtx\x18\x04 \x01(\bR\bRunInCtx\x12\x1e\n" + + "\n" + + "K8sVersion\x18\x05 \x01(\tR\n" + + "K8sVersion\x12$\n" + + "\rTakeOwnership\x18\x06 \x01(\bR\rTakeOwnership\"5\n" + + "\x19HelmInstallCustomResponse\x12\x18\n" + + "\asuccess\x18\x01 \x01(\bR\asuccess\"(\n" + + "\fChartContent\x12\x18\n" + + "\aContent\x18\x01 \x01(\fR\aContent\"I\n" + + "\x03Gvk\x12\x14\n" + + "\x05Group\x18\x01 \x01(\tR\x05Group\x12\x18\n" + + "\aVersion\x18\x02 \x01(\tR\aVersion\x12\x12\n" + + "\x04Kind\x18\x03 \x01(\tR\x04Kind\"m\n" + + "\x0eResourceFilter\x12\x16\n" + + "\x03gvk\x18\x01 \x01(\v2\x04.GvkR\x03gvk\x12C\n" + + "\x12resourceIdentifier\x18\x02 \x01(\v2\x13.ResourceIdentifierR\x12resourceIdentifier\"\x88\x01\n" + + "\x12ResourceIdentifier\x127\n" + + "\x06labels\x18\x01 \x03(\v2\x1f.ResourceIdentifier.LabelsEntryR\x06labels\x1a9\n" + + "\vLabelsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x88\x01\n" + + "\x12ResourceTreeFilter\x127\n" + + "\fglobalFilter\x18\x01 \x01(\v2\x13.ResourceIdentifierR\fglobalFilter\x129\n" + + "\x0fresourceFilters\x18\x02 \x03(\v2\x0f.ResourceFilterR\x0fresourceFilters\"*\n" + + "\x12ChartNotesResponse\x12\x14\n" + + "\x05notes\x18\x01 \x01(\tR\x05notes\"\xd1\x01\n" + + "\x12OCIRegistryRequest\x12\x14\n" + + "\x05Chart\x18\x01 \x01(\fR\x05Chart\x12\x1c\n" + + "\tChartName\x18\x02 \x01(\tR\tChartName\x12\"\n" + + "\fChartVersion\x18\x03 \x01(\tR\fChartVersion\x12\x1e\n" + + "\n" + + "IsInsecure\x18\x04 \x01(\bR\n" + + "IsInsecure\x12C\n" + + "\x12RegistryCredential\x18\x05 \x01(\v2\x13.RegistryCredentialR\x12RegistryCredential\"\x95\x04\n" + + "\x12RegistryCredential\x12 \n" + + "\vRegistryUrl\x18\x01 \x01(\tR\vRegistryUrl\x12\x1a\n" + + "\bUsername\x18\x02 \x01(\tR\bUsername\x12\x1a\n" + + "\bPassword\x18\x03 \x01(\tR\bPassword\x12\x1c\n" + + "\tAwsRegion\x18\x04 \x01(\tR\tAwsRegion\x12\x1c\n" + + "\tAccessKey\x18\x05 \x01(\tR\tAccessKey\x12\x1c\n" + + "\tSecretKey\x18\x06 \x01(\tR\tSecretKey\x12\"\n" + + "\fRegistryType\x18\a \x01(\tR\fRegistryType\x12\x1a\n" + + "\bRepoName\x18\b \x01(\tR\bRepoName\x12\x1a\n" + + "\bIsPublic\x18\t \x01(\bR\bIsPublic\x12O\n" + + "\x16RemoteConnectionConfig\x18\n" + + " \x01(\v2\x17.RemoteConnectionConfigR\x16RemoteConnectionConfig\x12\x1e\n" + + "\n" + + "Connection\x18\v \x01(\tR\n" + + "Connection\x12\"\n" + + "\fRegistryName\x18\f \x01(\tR\fRegistryName\x120\n" + + "\x13RegistryCertificate\x18\r \x01(\tR\x13RegistryCertificate\x12(\n" + + "\x0fCredentialsType\x18\x0e \x01(\tR\x0fCredentialsType\")\n" + + "\vProxyConfig\x12\x1a\n" + + "\bProxyUrl\x18\x01 \x01(\tR\bProxyUrl\"\xa1\x01\n" + + "\x0fSSHTunnelConfig\x12*\n" + + "\x10SSHServerAddress\x18\x01 \x01(\tR\x10SSHServerAddress\x12 \n" + + "\vSSHUsername\x18\x02 \x01(\tR\vSSHUsername\x12 \n" + + "\vSSHPassword\x18\x03 \x01(\tR\vSSHPassword\x12\x1e\n" + + "\n" + + "SSHAuthKey\x18\x04 \x01(\tR\n" + + "SSHAuthKey\"\xd5\x01\n" + + "\x16RemoteConnectionConfig\x12O\n" + + "\x16RemoteConnectionMethod\x18\x01 \x01(\x0e2\x17.RemoteConnectionMethodR\x16RemoteConnectionMethod\x12.\n" + + "\vProxyConfig\x18\x02 \x01(\v2\f.ProxyConfigR\vProxyConfig\x12:\n" + + "\x0fSSHTunnelConfig\x18\x03 \x01(\v2\x10.SSHTunnelConfigR\x0fSSHTunnelConfig\"o\n" + + "\x13OCIRegistryResponse\x12\x1e\n" + + "\n" + + "IsLoggedIn\x18\x01 \x01(\bR\n" + + "IsLoggedIn\x128\n" + + "\n" + + "PushResult\x18\x02 \x01(\v2\x18.OCIRegistryPushResponseR\n" + + "PushResult\"O\n" + + "\x17OCIRegistryPushResponse\x12\x16\n" + + "\x06Digest\x18\x01 \x01(\tR\x06Digest\x12\x1c\n" + + "\tPushedURL\x18\x02 \x01(\tR\tPushedURL*8\n" + + "\x16RemoteConnectionMethod\x12\t\n" + + "\x05PROXY\x10\x00\x12\a\n" + + "\x03SSH\x10\x01\x12\n" + + "\n" + + "\x06DIRECT\x10\x022\xd9\x0f\n" + + "\x12ApplicationService\x129\n" + + "\x10ListApplications\x12\x0f.AppListRequest\x1a\x10.DeployedAppList\"\x000\x01\x12A\n" + + "\x14ListFluxApplications\x12\x0f.AppListRequest\x1a\x14.FluxApplicationList\"\x000\x01\x12/\n" + + "\fGetAppDetail\x12\x11.AppDetailRequest\x1a\n" + + ".AppDetail\"\x00\x12/\n" + + "\fGetAppStatus\x12\x11.AppDetailRequest\x1a\n" + + ".AppStatus\"\x00\x121\n" + + "\x0eGetAppStatusV2\x12\x11.AppDetailRequest\x1a\n" + + ".AppStatus\"\x00\x124\n" + + "\tHibernate\x12\x11.HibernateRequest\x1a\x12.HibernateResponse\"\x00\x126\n" + + "\vUnHibernate\x12\x11.HibernateRequest\x1a\x12.HibernateResponse\"\x00\x12F\n" + + "\x14GetDeploymentHistory\x12\x11.AppDetailRequest\x1a\x19.HelmAppDeploymentHistory\"\x00\x122\n" + + "\rGetValuesYaml\x12\x11.AppDetailRequest\x1a\f.ReleaseInfo\"\x00\x12@\n" + + "\x12GetDesiredManifest\x12\x0e.ObjectRequest\x1a\x18.DesiredManifestResponse\"\x00\x12C\n" + + "\x10UninstallRelease\x12\x12.ReleaseIdentifier\x1a\x19.UninstallReleaseResponse\"\x00\x12C\n" + + "\x0eUpgradeRelease\x12\x16.UpgradeReleaseRequest\x1a\x17.UpgradeReleaseResponse\"\x00\x12L\n" + + "\x13GetDeploymentDetail\x12\x18.DeploymentDetailRequest\x1a\x19.DeploymentDetailResponse\"\x00\x12C\n" + + "\x0eInstallRelease\x12\x16.InstallReleaseRequest\x1a\x17.InstallReleaseResponse\"\x00\x12P\n" + + "\x1bUpgradeReleaseWithChartInfo\x12\x16.InstallReleaseRequest\x1a\x17.UpgradeReleaseResponse\"\x00\x12<\n" + + "\x12IsReleaseInstalled\x12\x12.ReleaseIdentifier\x1a\x10.BooleanResponse\"\x00\x12>\n" + + "\x0fRollbackRelease\x12\x17.RollbackReleaseRequest\x1a\x10.BooleanResponse\"\x00\x12A\n" + + "\rTemplateChart\x12\x16.InstallReleaseRequest\x1a\x16.TemplateChartResponse\"\x00\x12M\n" + + "\x11TemplateChartBulk\x12\x1a.BulkInstallReleaseRequest\x1a\x1a.BulkTemplateChartResponse\"\x00\x12Z\n" + + "\x1dTemplateChartAndRetrieveChart\x12\x16.InstallReleaseRequest\x1a\x1f.TemplateChartResponseWithChart\"\x00\x12X\n" + + "\x1dInstallReleaseWithCustomChart\x12\x19.HelmInstallCustomRequest\x1a\x1a.HelmInstallCustomResponse\"\x00\x129\n" + + "\bGetNotes\x12\x16.InstallReleaseRequest\x1a\x13.ChartNotesResponse\"\x00\x12R\n" + + "\x1dUpgradeReleaseWithCustomChart\x12\x16.UpgradeReleaseRequest\x1a\x17.UpgradeReleaseResponse\"\x00\x12B\n" + + "\x13ValidateOCIRegistry\x12\x13.RegistryCredential\x1a\x14.OCIRegistryResponse\"\x00\x12I\n" + + "\x1aPushHelmChartToOCIRegistry\x12\x13.OCIRegistryRequest\x1a\x14.OCIRegistryResponse\"\x00\x12\\\n" + + "#GetResourceTreeForExternalResources\x12\x1c.ExternalResourceTreeRequest\x1a\x15.ResourceTreeResponse\"\x00\x12;\n" + + "\x10GetFluxAppDetail\x12\x15.FluxAppDetailRequest\x1a\x0e.FluxAppDetail\"\x00\x12=\n" + + "\x11GetReleaseDetails\x12\x12.ReleaseIdentifier\x1a\x12.DeployedAppDetail\"\x00\x12W\n" + + "#BuildResourceTreeUsingParentObjects\x12\x17.GetResourceTreeRequest\x1a\x15.ResourceTreeResponse\"\x00B3Z1github.com/devtron-labs/kubelink/bean/grpc/clientb\x06proto3" var ( file_grpc_applist_proto_rawDescOnce sync.Once - file_grpc_applist_proto_rawDescData = file_grpc_applist_proto_rawDesc + file_grpc_applist_proto_rawDescData []byte ) func file_grpc_applist_proto_rawDescGZIP() []byte { file_grpc_applist_proto_rawDescOnce.Do(func() { - file_grpc_applist_proto_rawDescData = protoimpl.X.CompressGZIP(file_grpc_applist_proto_rawDescData) + file_grpc_applist_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_grpc_applist_proto_rawDesc), len(file_grpc_applist_proto_rawDesc))) }) return file_grpc_applist_proto_rawDescData } var file_grpc_applist_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_grpc_applist_proto_msgTypes = make([]protoimpl.MessageInfo, 69) -var file_grpc_applist_proto_goTypes = []interface{}{ +var file_grpc_applist_proto_goTypes = []any{ (RemoteConnectionMethod)(0), // 0: RemoteConnectionMethod (*ClusterConfig)(nil), // 1: ClusterConfig (*AppListRequest)(nil), // 2: AppListRequest @@ -5814,805 +5177,11 @@ func file_grpc_applist_proto_init() { if File_grpc_applist_proto != nil { return } - if !protoimpl.UnsafeEnabled { - file_grpc_applist_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClusterConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AppListRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetResourceTreeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CacheConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExternalResourceTreeRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ExternalResourceDetail); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeployedAppList); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FluxApplicationList); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FluxApplication); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FluxAppDetailRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FluxAppDetail); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FluxAppStatusDetail); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeployedAppDetail); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EnvironmentDetails); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AppDetailRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AppDetail); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AppStatus); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReleaseStatus); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChartMetadata); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResourceTreeResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResourceNode); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InfoItem); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HealthStatus); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResourceNetworkingInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResourceRef); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PodMetadata); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EphemeralContainerData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HibernateRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ObjectIdentifier); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HibernateStatus); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HibernateResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HelmAppDeploymentDetail); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HelmAppDeploymentHistory); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReleaseInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ObjectRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DesiredManifestResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UninstallReleaseResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReleaseIdentifier); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpgradeReleaseRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpgradeReleaseResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeploymentDetailRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeploymentDetailResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChartRepository); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InstallReleaseRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BulkInstallReleaseRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InstallReleaseResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BooleanResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RollbackReleaseRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TemplateChartResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BulkTemplateChartResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TemplateChartResponseWithChart); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HelmInstallCustomRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HelmInstallCustomResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChartContent); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Gvk); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResourceFilter); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResourceIdentifier); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResourceTreeFilter); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ChartNotesResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OCIRegistryRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RegistryCredential); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ProxyConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SSHTunnelConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoteConnectionConfig); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OCIRegistryResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_grpc_applist_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OCIRegistryPushResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_grpc_applist_proto_rawDesc, + RawDescriptor: unsafe.Slice(unsafe.StringData(file_grpc_applist_proto_rawDesc), len(file_grpc_applist_proto_rawDesc)), NumEnums: 1, NumMessages: 69, NumExtensions: 0, @@ -6624,7 +5193,6 @@ func file_grpc_applist_proto_init() { MessageInfos: file_grpc_applist_proto_msgTypes, }.Build() File_grpc_applist_proto = out.File - file_grpc_applist_proto_rawDesc = nil file_grpc_applist_proto_goTypes = nil file_grpc_applist_proto_depIdxs = nil } diff --git a/kubelink/grpc/applist.proto b/kubelink/grpc/applist.proto index 78bb00a34..14a856ed2 100644 --- a/kubelink/grpc/applist.proto +++ b/kubelink/grpc/applist.proto @@ -421,6 +421,7 @@ message HelmInstallCustomRequest { ReleaseIdentifier releaseIdentifier = 3; bool RunInCtx = 4; string K8sVersion = 5; + bool TakeOwnership = 6; } message HelmInstallCustomResponse { diff --git a/kubelink/grpc/applist_grpc.pb.go b/kubelink/grpc/applist_grpc.pb.go index 87761c62e..29511d9e0 100644 --- a/kubelink/grpc/applist_grpc.pb.go +++ b/kubelink/grpc/applist_grpc.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: -// - protoc-gen-go-grpc v1.3.0 +// - protoc-gen-go-grpc v1.6.0 // - protoc v3.9.1 // source: grpc/applist.proto @@ -15,8 +15,8 @@ import ( // This is a compile-time assertion to ensure that this generated file // is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 const ( ApplicationService_ListApplications_FullMethodName = "/ApplicationService/ListApplications" @@ -54,8 +54,8 @@ const ( // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type ApplicationServiceClient interface { - ListApplications(ctx context.Context, in *AppListRequest, opts ...grpc.CallOption) (ApplicationService_ListApplicationsClient, error) - ListFluxApplications(ctx context.Context, in *AppListRequest, opts ...grpc.CallOption) (ApplicationService_ListFluxApplicationsClient, error) + ListApplications(ctx context.Context, in *AppListRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[DeployedAppList], error) + ListFluxApplications(ctx context.Context, in *AppListRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[FluxApplicationList], error) GetAppDetail(ctx context.Context, in *AppDetailRequest, opts ...grpc.CallOption) (*AppDetail, error) GetAppStatus(ctx context.Context, in *AppDetailRequest, opts ...grpc.CallOption) (*AppStatus, error) GetAppStatusV2(ctx context.Context, in *AppDetailRequest, opts ...grpc.CallOption) (*AppStatus, error) @@ -93,12 +93,13 @@ func NewApplicationServiceClient(cc grpc.ClientConnInterface) ApplicationService return &applicationServiceClient{cc} } -func (c *applicationServiceClient) ListApplications(ctx context.Context, in *AppListRequest, opts ...grpc.CallOption) (ApplicationService_ListApplicationsClient, error) { - stream, err := c.cc.NewStream(ctx, &ApplicationService_ServiceDesc.Streams[0], ApplicationService_ListApplications_FullMethodName, opts...) +func (c *applicationServiceClient) ListApplications(ctx context.Context, in *AppListRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[DeployedAppList], error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + stream, err := c.cc.NewStream(ctx, &ApplicationService_ServiceDesc.Streams[0], ApplicationService_ListApplications_FullMethodName, cOpts...) if err != nil { return nil, err } - x := &applicationServiceListApplicationsClient{stream} + x := &grpc.GenericClientStream[AppListRequest, DeployedAppList]{ClientStream: stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } @@ -108,29 +109,16 @@ func (c *applicationServiceClient) ListApplications(ctx context.Context, in *App return x, nil } -type ApplicationService_ListApplicationsClient interface { - Recv() (*DeployedAppList, error) - grpc.ClientStream -} - -type applicationServiceListApplicationsClient struct { - grpc.ClientStream -} - -func (x *applicationServiceListApplicationsClient) Recv() (*DeployedAppList, error) { - m := new(DeployedAppList) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type ApplicationService_ListApplicationsClient = grpc.ServerStreamingClient[DeployedAppList] -func (c *applicationServiceClient) ListFluxApplications(ctx context.Context, in *AppListRequest, opts ...grpc.CallOption) (ApplicationService_ListFluxApplicationsClient, error) { - stream, err := c.cc.NewStream(ctx, &ApplicationService_ServiceDesc.Streams[1], ApplicationService_ListFluxApplications_FullMethodName, opts...) +func (c *applicationServiceClient) ListFluxApplications(ctx context.Context, in *AppListRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[FluxApplicationList], error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + stream, err := c.cc.NewStream(ctx, &ApplicationService_ServiceDesc.Streams[1], ApplicationService_ListFluxApplications_FullMethodName, cOpts...) if err != nil { return nil, err } - x := &applicationServiceListFluxApplicationsClient{stream} + x := &grpc.GenericClientStream[AppListRequest, FluxApplicationList]{ClientStream: stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } @@ -140,26 +128,13 @@ func (c *applicationServiceClient) ListFluxApplications(ctx context.Context, in return x, nil } -type ApplicationService_ListFluxApplicationsClient interface { - Recv() (*FluxApplicationList, error) - grpc.ClientStream -} - -type applicationServiceListFluxApplicationsClient struct { - grpc.ClientStream -} - -func (x *applicationServiceListFluxApplicationsClient) Recv() (*FluxApplicationList, error) { - m := new(FluxApplicationList) - if err := x.ClientStream.RecvMsg(m); err != nil { - return nil, err - } - return m, nil -} +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type ApplicationService_ListFluxApplicationsClient = grpc.ServerStreamingClient[FluxApplicationList] func (c *applicationServiceClient) GetAppDetail(ctx context.Context, in *AppDetailRequest, opts ...grpc.CallOption) (*AppDetail, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(AppDetail) - err := c.cc.Invoke(ctx, ApplicationService_GetAppDetail_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_GetAppDetail_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -167,8 +142,9 @@ func (c *applicationServiceClient) GetAppDetail(ctx context.Context, in *AppDeta } func (c *applicationServiceClient) GetAppStatus(ctx context.Context, in *AppDetailRequest, opts ...grpc.CallOption) (*AppStatus, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(AppStatus) - err := c.cc.Invoke(ctx, ApplicationService_GetAppStatus_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_GetAppStatus_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -176,8 +152,9 @@ func (c *applicationServiceClient) GetAppStatus(ctx context.Context, in *AppDeta } func (c *applicationServiceClient) GetAppStatusV2(ctx context.Context, in *AppDetailRequest, opts ...grpc.CallOption) (*AppStatus, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(AppStatus) - err := c.cc.Invoke(ctx, ApplicationService_GetAppStatusV2_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_GetAppStatusV2_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -185,8 +162,9 @@ func (c *applicationServiceClient) GetAppStatusV2(ctx context.Context, in *AppDe } func (c *applicationServiceClient) Hibernate(ctx context.Context, in *HibernateRequest, opts ...grpc.CallOption) (*HibernateResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HibernateResponse) - err := c.cc.Invoke(ctx, ApplicationService_Hibernate_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_Hibernate_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -194,8 +172,9 @@ func (c *applicationServiceClient) Hibernate(ctx context.Context, in *HibernateR } func (c *applicationServiceClient) UnHibernate(ctx context.Context, in *HibernateRequest, opts ...grpc.CallOption) (*HibernateResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HibernateResponse) - err := c.cc.Invoke(ctx, ApplicationService_UnHibernate_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_UnHibernate_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -203,8 +182,9 @@ func (c *applicationServiceClient) UnHibernate(ctx context.Context, in *Hibernat } func (c *applicationServiceClient) GetDeploymentHistory(ctx context.Context, in *AppDetailRequest, opts ...grpc.CallOption) (*HelmAppDeploymentHistory, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HelmAppDeploymentHistory) - err := c.cc.Invoke(ctx, ApplicationService_GetDeploymentHistory_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_GetDeploymentHistory_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -212,8 +192,9 @@ func (c *applicationServiceClient) GetDeploymentHistory(ctx context.Context, in } func (c *applicationServiceClient) GetValuesYaml(ctx context.Context, in *AppDetailRequest, opts ...grpc.CallOption) (*ReleaseInfo, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ReleaseInfo) - err := c.cc.Invoke(ctx, ApplicationService_GetValuesYaml_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_GetValuesYaml_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -221,8 +202,9 @@ func (c *applicationServiceClient) GetValuesYaml(ctx context.Context, in *AppDet } func (c *applicationServiceClient) GetDesiredManifest(ctx context.Context, in *ObjectRequest, opts ...grpc.CallOption) (*DesiredManifestResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(DesiredManifestResponse) - err := c.cc.Invoke(ctx, ApplicationService_GetDesiredManifest_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_GetDesiredManifest_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -230,8 +212,9 @@ func (c *applicationServiceClient) GetDesiredManifest(ctx context.Context, in *O } func (c *applicationServiceClient) UninstallRelease(ctx context.Context, in *ReleaseIdentifier, opts ...grpc.CallOption) (*UninstallReleaseResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(UninstallReleaseResponse) - err := c.cc.Invoke(ctx, ApplicationService_UninstallRelease_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_UninstallRelease_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -239,8 +222,9 @@ func (c *applicationServiceClient) UninstallRelease(ctx context.Context, in *Rel } func (c *applicationServiceClient) UpgradeRelease(ctx context.Context, in *UpgradeReleaseRequest, opts ...grpc.CallOption) (*UpgradeReleaseResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(UpgradeReleaseResponse) - err := c.cc.Invoke(ctx, ApplicationService_UpgradeRelease_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_UpgradeRelease_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -248,8 +232,9 @@ func (c *applicationServiceClient) UpgradeRelease(ctx context.Context, in *Upgra } func (c *applicationServiceClient) GetDeploymentDetail(ctx context.Context, in *DeploymentDetailRequest, opts ...grpc.CallOption) (*DeploymentDetailResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(DeploymentDetailResponse) - err := c.cc.Invoke(ctx, ApplicationService_GetDeploymentDetail_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_GetDeploymentDetail_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -257,8 +242,9 @@ func (c *applicationServiceClient) GetDeploymentDetail(ctx context.Context, in * } func (c *applicationServiceClient) InstallRelease(ctx context.Context, in *InstallReleaseRequest, opts ...grpc.CallOption) (*InstallReleaseResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(InstallReleaseResponse) - err := c.cc.Invoke(ctx, ApplicationService_InstallRelease_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_InstallRelease_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -266,8 +252,9 @@ func (c *applicationServiceClient) InstallRelease(ctx context.Context, in *Insta } func (c *applicationServiceClient) UpgradeReleaseWithChartInfo(ctx context.Context, in *InstallReleaseRequest, opts ...grpc.CallOption) (*UpgradeReleaseResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(UpgradeReleaseResponse) - err := c.cc.Invoke(ctx, ApplicationService_UpgradeReleaseWithChartInfo_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_UpgradeReleaseWithChartInfo_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -275,8 +262,9 @@ func (c *applicationServiceClient) UpgradeReleaseWithChartInfo(ctx context.Conte } func (c *applicationServiceClient) IsReleaseInstalled(ctx context.Context, in *ReleaseIdentifier, opts ...grpc.CallOption) (*BooleanResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(BooleanResponse) - err := c.cc.Invoke(ctx, ApplicationService_IsReleaseInstalled_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_IsReleaseInstalled_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -284,8 +272,9 @@ func (c *applicationServiceClient) IsReleaseInstalled(ctx context.Context, in *R } func (c *applicationServiceClient) RollbackRelease(ctx context.Context, in *RollbackReleaseRequest, opts ...grpc.CallOption) (*BooleanResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(BooleanResponse) - err := c.cc.Invoke(ctx, ApplicationService_RollbackRelease_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_RollbackRelease_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -293,8 +282,9 @@ func (c *applicationServiceClient) RollbackRelease(ctx context.Context, in *Roll } func (c *applicationServiceClient) TemplateChart(ctx context.Context, in *InstallReleaseRequest, opts ...grpc.CallOption) (*TemplateChartResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(TemplateChartResponse) - err := c.cc.Invoke(ctx, ApplicationService_TemplateChart_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_TemplateChart_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -302,8 +292,9 @@ func (c *applicationServiceClient) TemplateChart(ctx context.Context, in *Instal } func (c *applicationServiceClient) TemplateChartBulk(ctx context.Context, in *BulkInstallReleaseRequest, opts ...grpc.CallOption) (*BulkTemplateChartResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(BulkTemplateChartResponse) - err := c.cc.Invoke(ctx, ApplicationService_TemplateChartBulk_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_TemplateChartBulk_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -311,8 +302,9 @@ func (c *applicationServiceClient) TemplateChartBulk(ctx context.Context, in *Bu } func (c *applicationServiceClient) TemplateChartAndRetrieveChart(ctx context.Context, in *InstallReleaseRequest, opts ...grpc.CallOption) (*TemplateChartResponseWithChart, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(TemplateChartResponseWithChart) - err := c.cc.Invoke(ctx, ApplicationService_TemplateChartAndRetrieveChart_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_TemplateChartAndRetrieveChart_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -320,8 +312,9 @@ func (c *applicationServiceClient) TemplateChartAndRetrieveChart(ctx context.Con } func (c *applicationServiceClient) InstallReleaseWithCustomChart(ctx context.Context, in *HelmInstallCustomRequest, opts ...grpc.CallOption) (*HelmInstallCustomResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(HelmInstallCustomResponse) - err := c.cc.Invoke(ctx, ApplicationService_InstallReleaseWithCustomChart_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_InstallReleaseWithCustomChart_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -329,8 +322,9 @@ func (c *applicationServiceClient) InstallReleaseWithCustomChart(ctx context.Con } func (c *applicationServiceClient) GetNotes(ctx context.Context, in *InstallReleaseRequest, opts ...grpc.CallOption) (*ChartNotesResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ChartNotesResponse) - err := c.cc.Invoke(ctx, ApplicationService_GetNotes_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_GetNotes_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -338,8 +332,9 @@ func (c *applicationServiceClient) GetNotes(ctx context.Context, in *InstallRele } func (c *applicationServiceClient) UpgradeReleaseWithCustomChart(ctx context.Context, in *UpgradeReleaseRequest, opts ...grpc.CallOption) (*UpgradeReleaseResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(UpgradeReleaseResponse) - err := c.cc.Invoke(ctx, ApplicationService_UpgradeReleaseWithCustomChart_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_UpgradeReleaseWithCustomChart_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -347,8 +342,9 @@ func (c *applicationServiceClient) UpgradeReleaseWithCustomChart(ctx context.Con } func (c *applicationServiceClient) ValidateOCIRegistry(ctx context.Context, in *RegistryCredential, opts ...grpc.CallOption) (*OCIRegistryResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(OCIRegistryResponse) - err := c.cc.Invoke(ctx, ApplicationService_ValidateOCIRegistry_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_ValidateOCIRegistry_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -356,8 +352,9 @@ func (c *applicationServiceClient) ValidateOCIRegistry(ctx context.Context, in * } func (c *applicationServiceClient) PushHelmChartToOCIRegistry(ctx context.Context, in *OCIRegistryRequest, opts ...grpc.CallOption) (*OCIRegistryResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(OCIRegistryResponse) - err := c.cc.Invoke(ctx, ApplicationService_PushHelmChartToOCIRegistry_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_PushHelmChartToOCIRegistry_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -365,8 +362,9 @@ func (c *applicationServiceClient) PushHelmChartToOCIRegistry(ctx context.Contex } func (c *applicationServiceClient) GetResourceTreeForExternalResources(ctx context.Context, in *ExternalResourceTreeRequest, opts ...grpc.CallOption) (*ResourceTreeResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ResourceTreeResponse) - err := c.cc.Invoke(ctx, ApplicationService_GetResourceTreeForExternalResources_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_GetResourceTreeForExternalResources_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -374,8 +372,9 @@ func (c *applicationServiceClient) GetResourceTreeForExternalResources(ctx conte } func (c *applicationServiceClient) GetFluxAppDetail(ctx context.Context, in *FluxAppDetailRequest, opts ...grpc.CallOption) (*FluxAppDetail, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(FluxAppDetail) - err := c.cc.Invoke(ctx, ApplicationService_GetFluxAppDetail_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_GetFluxAppDetail_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -383,8 +382,9 @@ func (c *applicationServiceClient) GetFluxAppDetail(ctx context.Context, in *Flu } func (c *applicationServiceClient) GetReleaseDetails(ctx context.Context, in *ReleaseIdentifier, opts ...grpc.CallOption) (*DeployedAppDetail, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(DeployedAppDetail) - err := c.cc.Invoke(ctx, ApplicationService_GetReleaseDetails_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_GetReleaseDetails_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -392,8 +392,9 @@ func (c *applicationServiceClient) GetReleaseDetails(ctx context.Context, in *Re } func (c *applicationServiceClient) BuildResourceTreeUsingParentObjects(ctx context.Context, in *GetResourceTreeRequest, opts ...grpc.CallOption) (*ResourceTreeResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(ResourceTreeResponse) - err := c.cc.Invoke(ctx, ApplicationService_BuildResourceTreeUsingParentObjects_FullMethodName, in, out, opts...) + err := c.cc.Invoke(ctx, ApplicationService_BuildResourceTreeUsingParentObjects_FullMethodName, in, out, cOpts...) if err != nil { return nil, err } @@ -402,10 +403,10 @@ func (c *applicationServiceClient) BuildResourceTreeUsingParentObjects(ctx conte // ApplicationServiceServer is the server API for ApplicationService service. // All implementations must embed UnimplementedApplicationServiceServer -// for forward compatibility +// for forward compatibility. type ApplicationServiceServer interface { - ListApplications(*AppListRequest, ApplicationService_ListApplicationsServer) error - ListFluxApplications(*AppListRequest, ApplicationService_ListFluxApplicationsServer) error + ListApplications(*AppListRequest, grpc.ServerStreamingServer[DeployedAppList]) error + ListFluxApplications(*AppListRequest, grpc.ServerStreamingServer[FluxApplicationList]) error GetAppDetail(context.Context, *AppDetailRequest) (*AppDetail, error) GetAppStatus(context.Context, *AppDetailRequest) (*AppStatus, error) GetAppStatusV2(context.Context, *AppDetailRequest) (*AppStatus, error) @@ -436,98 +437,102 @@ type ApplicationServiceServer interface { mustEmbedUnimplementedApplicationServiceServer() } -// UnimplementedApplicationServiceServer must be embedded to have forward compatible implementations. -type UnimplementedApplicationServiceServer struct { -} +// UnimplementedApplicationServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedApplicationServiceServer struct{} -func (UnimplementedApplicationServiceServer) ListApplications(*AppListRequest, ApplicationService_ListApplicationsServer) error { - return status.Errorf(codes.Unimplemented, "method ListApplications not implemented") +func (UnimplementedApplicationServiceServer) ListApplications(*AppListRequest, grpc.ServerStreamingServer[DeployedAppList]) error { + return status.Error(codes.Unimplemented, "method ListApplications not implemented") } -func (UnimplementedApplicationServiceServer) ListFluxApplications(*AppListRequest, ApplicationService_ListFluxApplicationsServer) error { - return status.Errorf(codes.Unimplemented, "method ListFluxApplications not implemented") +func (UnimplementedApplicationServiceServer) ListFluxApplications(*AppListRequest, grpc.ServerStreamingServer[FluxApplicationList]) error { + return status.Error(codes.Unimplemented, "method ListFluxApplications not implemented") } func (UnimplementedApplicationServiceServer) GetAppDetail(context.Context, *AppDetailRequest) (*AppDetail, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetAppDetail not implemented") + return nil, status.Error(codes.Unimplemented, "method GetAppDetail not implemented") } func (UnimplementedApplicationServiceServer) GetAppStatus(context.Context, *AppDetailRequest) (*AppStatus, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetAppStatus not implemented") + return nil, status.Error(codes.Unimplemented, "method GetAppStatus not implemented") } func (UnimplementedApplicationServiceServer) GetAppStatusV2(context.Context, *AppDetailRequest) (*AppStatus, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetAppStatusV2 not implemented") + return nil, status.Error(codes.Unimplemented, "method GetAppStatusV2 not implemented") } func (UnimplementedApplicationServiceServer) Hibernate(context.Context, *HibernateRequest) (*HibernateResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method Hibernate not implemented") + return nil, status.Error(codes.Unimplemented, "method Hibernate not implemented") } func (UnimplementedApplicationServiceServer) UnHibernate(context.Context, *HibernateRequest) (*HibernateResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UnHibernate not implemented") + return nil, status.Error(codes.Unimplemented, "method UnHibernate not implemented") } func (UnimplementedApplicationServiceServer) GetDeploymentHistory(context.Context, *AppDetailRequest) (*HelmAppDeploymentHistory, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDeploymentHistory not implemented") + return nil, status.Error(codes.Unimplemented, "method GetDeploymentHistory not implemented") } func (UnimplementedApplicationServiceServer) GetValuesYaml(context.Context, *AppDetailRequest) (*ReleaseInfo, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetValuesYaml not implemented") + return nil, status.Error(codes.Unimplemented, "method GetValuesYaml not implemented") } func (UnimplementedApplicationServiceServer) GetDesiredManifest(context.Context, *ObjectRequest) (*DesiredManifestResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDesiredManifest not implemented") + return nil, status.Error(codes.Unimplemented, "method GetDesiredManifest not implemented") } func (UnimplementedApplicationServiceServer) UninstallRelease(context.Context, *ReleaseIdentifier) (*UninstallReleaseResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UninstallRelease not implemented") + return nil, status.Error(codes.Unimplemented, "method UninstallRelease not implemented") } func (UnimplementedApplicationServiceServer) UpgradeRelease(context.Context, *UpgradeReleaseRequest) (*UpgradeReleaseResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpgradeRelease not implemented") + return nil, status.Error(codes.Unimplemented, "method UpgradeRelease not implemented") } func (UnimplementedApplicationServiceServer) GetDeploymentDetail(context.Context, *DeploymentDetailRequest) (*DeploymentDetailResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDeploymentDetail not implemented") + return nil, status.Error(codes.Unimplemented, "method GetDeploymentDetail not implemented") } func (UnimplementedApplicationServiceServer) InstallRelease(context.Context, *InstallReleaseRequest) (*InstallReleaseResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method InstallRelease not implemented") + return nil, status.Error(codes.Unimplemented, "method InstallRelease not implemented") } func (UnimplementedApplicationServiceServer) UpgradeReleaseWithChartInfo(context.Context, *InstallReleaseRequest) (*UpgradeReleaseResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpgradeReleaseWithChartInfo not implemented") + return nil, status.Error(codes.Unimplemented, "method UpgradeReleaseWithChartInfo not implemented") } func (UnimplementedApplicationServiceServer) IsReleaseInstalled(context.Context, *ReleaseIdentifier) (*BooleanResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method IsReleaseInstalled not implemented") + return nil, status.Error(codes.Unimplemented, "method IsReleaseInstalled not implemented") } func (UnimplementedApplicationServiceServer) RollbackRelease(context.Context, *RollbackReleaseRequest) (*BooleanResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method RollbackRelease not implemented") + return nil, status.Error(codes.Unimplemented, "method RollbackRelease not implemented") } func (UnimplementedApplicationServiceServer) TemplateChart(context.Context, *InstallReleaseRequest) (*TemplateChartResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method TemplateChart not implemented") + return nil, status.Error(codes.Unimplemented, "method TemplateChart not implemented") } func (UnimplementedApplicationServiceServer) TemplateChartBulk(context.Context, *BulkInstallReleaseRequest) (*BulkTemplateChartResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method TemplateChartBulk not implemented") + return nil, status.Error(codes.Unimplemented, "method TemplateChartBulk not implemented") } func (UnimplementedApplicationServiceServer) TemplateChartAndRetrieveChart(context.Context, *InstallReleaseRequest) (*TemplateChartResponseWithChart, error) { - return nil, status.Errorf(codes.Unimplemented, "method TemplateChartAndRetrieveChart not implemented") + return nil, status.Error(codes.Unimplemented, "method TemplateChartAndRetrieveChart not implemented") } func (UnimplementedApplicationServiceServer) InstallReleaseWithCustomChart(context.Context, *HelmInstallCustomRequest) (*HelmInstallCustomResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method InstallReleaseWithCustomChart not implemented") + return nil, status.Error(codes.Unimplemented, "method InstallReleaseWithCustomChart not implemented") } func (UnimplementedApplicationServiceServer) GetNotes(context.Context, *InstallReleaseRequest) (*ChartNotesResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetNotes not implemented") + return nil, status.Error(codes.Unimplemented, "method GetNotes not implemented") } func (UnimplementedApplicationServiceServer) UpgradeReleaseWithCustomChart(context.Context, *UpgradeReleaseRequest) (*UpgradeReleaseResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method UpgradeReleaseWithCustomChart not implemented") + return nil, status.Error(codes.Unimplemented, "method UpgradeReleaseWithCustomChart not implemented") } func (UnimplementedApplicationServiceServer) ValidateOCIRegistry(context.Context, *RegistryCredential) (*OCIRegistryResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ValidateOCIRegistry not implemented") + return nil, status.Error(codes.Unimplemented, "method ValidateOCIRegistry not implemented") } func (UnimplementedApplicationServiceServer) PushHelmChartToOCIRegistry(context.Context, *OCIRegistryRequest) (*OCIRegistryResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method PushHelmChartToOCIRegistry not implemented") + return nil, status.Error(codes.Unimplemented, "method PushHelmChartToOCIRegistry not implemented") } func (UnimplementedApplicationServiceServer) GetResourceTreeForExternalResources(context.Context, *ExternalResourceTreeRequest) (*ResourceTreeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetResourceTreeForExternalResources not implemented") + return nil, status.Error(codes.Unimplemented, "method GetResourceTreeForExternalResources not implemented") } func (UnimplementedApplicationServiceServer) GetFluxAppDetail(context.Context, *FluxAppDetailRequest) (*FluxAppDetail, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetFluxAppDetail not implemented") + return nil, status.Error(codes.Unimplemented, "method GetFluxAppDetail not implemented") } func (UnimplementedApplicationServiceServer) GetReleaseDetails(context.Context, *ReleaseIdentifier) (*DeployedAppDetail, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetReleaseDetails not implemented") + return nil, status.Error(codes.Unimplemented, "method GetReleaseDetails not implemented") } func (UnimplementedApplicationServiceServer) BuildResourceTreeUsingParentObjects(context.Context, *GetResourceTreeRequest) (*ResourceTreeResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method BuildResourceTreeUsingParentObjects not implemented") + return nil, status.Error(codes.Unimplemented, "method BuildResourceTreeUsingParentObjects not implemented") } func (UnimplementedApplicationServiceServer) mustEmbedUnimplementedApplicationServiceServer() {} +func (UnimplementedApplicationServiceServer) testEmbeddedByValue() {} // UnsafeApplicationServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to ApplicationServiceServer will @@ -537,6 +542,13 @@ type UnsafeApplicationServiceServer interface { } func RegisterApplicationServiceServer(s grpc.ServiceRegistrar, srv ApplicationServiceServer) { + // If the following call panics, it indicates UnimplementedApplicationServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } s.RegisterService(&ApplicationService_ServiceDesc, srv) } @@ -545,42 +557,22 @@ func _ApplicationService_ListApplications_Handler(srv interface{}, stream grpc.S if err := stream.RecvMsg(m); err != nil { return err } - return srv.(ApplicationServiceServer).ListApplications(m, &applicationServiceListApplicationsServer{stream}) + return srv.(ApplicationServiceServer).ListApplications(m, &grpc.GenericServerStream[AppListRequest, DeployedAppList]{ServerStream: stream}) } -type ApplicationService_ListApplicationsServer interface { - Send(*DeployedAppList) error - grpc.ServerStream -} - -type applicationServiceListApplicationsServer struct { - grpc.ServerStream -} - -func (x *applicationServiceListApplicationsServer) Send(m *DeployedAppList) error { - return x.ServerStream.SendMsg(m) -} +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type ApplicationService_ListApplicationsServer = grpc.ServerStreamingServer[DeployedAppList] func _ApplicationService_ListFluxApplications_Handler(srv interface{}, stream grpc.ServerStream) error { m := new(AppListRequest) if err := stream.RecvMsg(m); err != nil { return err } - return srv.(ApplicationServiceServer).ListFluxApplications(m, &applicationServiceListFluxApplicationsServer{stream}) -} - -type ApplicationService_ListFluxApplicationsServer interface { - Send(*FluxApplicationList) error - grpc.ServerStream + return srv.(ApplicationServiceServer).ListFluxApplications(m, &grpc.GenericServerStream[AppListRequest, FluxApplicationList]{ServerStream: stream}) } -type applicationServiceListFluxApplicationsServer struct { - grpc.ServerStream -} - -func (x *applicationServiceListFluxApplicationsServer) Send(m *FluxApplicationList) error { - return x.ServerStream.SendMsg(m) -} +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type ApplicationService_ListFluxApplicationsServer = grpc.ServerStreamingServer[FluxApplicationList] func _ApplicationService_GetAppDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(AppDetailRequest) diff --git a/kubelink/pkg/helmClient/client.go b/kubelink/pkg/helmClient/client.go index 9d27445e8..c397992fd 100644 --- a/kubelink/pkg/helmClient/client.go +++ b/kubelink/pkg/helmClient/client.go @@ -378,6 +378,7 @@ func copyInstallOptions(chartSpec *ChartSpec, installOptions *action.Install) { installOptions.SkipCRDs = chartSpec.SkipCRDs installOptions.DryRun = chartSpec.DryRun installOptions.SubNotes = chartSpec.SubNotes + installOptions.TakeOwnership = chartSpec.TakeOwnership } // getChart returns a chart matching the provided chart name and options. diff --git a/kubelink/pkg/helmClient/types.go b/kubelink/pkg/helmClient/types.go index 83d790211..598663ca8 100644 --- a/kubelink/pkg/helmClient/types.go +++ b/kubelink/pkg/helmClient/types.go @@ -145,7 +145,11 @@ type ChartSpec struct { // The timeout may be specified via the 'Timeout' field. WaitForJobs bool `json:"waitForJobs,omitempty"` // KubeVersion indicates Kubernetes version used for Capabilities.KubeVersion - KubeVersion string `json:"kubeVersion,omitempty"` + KubeVersion string `json:"kubeVersion,omitempty"` + // TakeOwnership will ignore the check for helm annotations and take ownership of the resources. + // +optional + TakeOwnership bool `json:"takeOwnership,omitempty"` + RepoURL string `json:"repoURL,omitempty"` RegistryClient *registry.Client } From 0531548a13fc5a973fa1bfc881d5c30e25e133ec Mon Sep 17 00:00:00 2001 From: SATYAsasini Date: Wed, 3 Dec 2025 16:31:56 +0530 Subject: [PATCH 04/10] feat: enable take ownership option in helm install optional config --- kubelink/grpc/applist.pb.go | 13 +++++++++-- kubelink/grpc/applist.proto | 1 + .../helmApplicationService/helmAppService.go | 22 ++++++++++--------- 3 files changed, 24 insertions(+), 12 deletions(-) diff --git a/kubelink/grpc/applist.pb.go b/kubelink/grpc/applist.pb.go index 62fdee84b..543fbe8ea 100644 --- a/kubelink/grpc/applist.pb.go +++ b/kubelink/grpc/applist.pb.go @@ -2834,6 +2834,7 @@ type UpgradeReleaseRequest struct { ChartContent *ChartContent `protobuf:"bytes,4,opt,name=chartContent,proto3" json:"chartContent,omitempty"` RunInCtx bool `protobuf:"varint,5,opt,name=RunInCtx,proto3" json:"RunInCtx,omitempty"` K8SVersion string `protobuf:"bytes,6,opt,name=K8sVersion,proto3" json:"K8sVersion,omitempty"` + TakeOwnership bool `protobuf:"varint,7,opt,name=TakeOwnership,proto3" json:"TakeOwnership,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -2910,6 +2911,13 @@ func (x *UpgradeReleaseRequest) GetK8SVersion() string { return "" } +func (x *UpgradeReleaseRequest) GetTakeOwnership() bool { + if x != nil { + return x.TakeOwnership + } + return false +} + type UpgradeReleaseResponse struct { state protoimpl.MessageState `protogen:"open.v1"` Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` @@ -4757,7 +4765,7 @@ const file_grpc_applist_proto_rawDesc = "" + "\x11ReleaseIdentifier\x124\n" + "\rclusterConfig\x18\x01 \x01(\v2\x0e.ClusterConfigR\rclusterConfig\x12 \n" + "\vreleaseName\x18\x02 \x01(\tR\vreleaseName\x12*\n" + - "\x10releaseNamespace\x18\x03 \x01(\tR\x10releaseNamespace\"\x88\x02\n" + + "\x10releaseNamespace\x18\x03 \x01(\tR\x10releaseNamespace\"\xae\x02\n" + "\x15UpgradeReleaseRequest\x12@\n" + "\x11releaseIdentifier\x18\x01 \x01(\v2\x12.ReleaseIdentifierR\x11releaseIdentifier\x12\x1e\n" + "\n" + @@ -4770,7 +4778,8 @@ const file_grpc_applist_proto_rawDesc = "" + "\bRunInCtx\x18\x05 \x01(\bR\bRunInCtx\x12\x1e\n" + "\n" + "K8sVersion\x18\x06 \x01(\tR\n" + - "K8sVersion\"2\n" + + "K8sVersion\x12$\n" + + "\rTakeOwnership\x18\a \x01(\bR\rTakeOwnership\"2\n" + "\x16UpgradeReleaseResponse\x12\x18\n" + "\asuccess\x18\x01 \x01(\bR\asuccess\"\x89\x01\n" + "\x17DeploymentDetailRequest\x12@\n" + diff --git a/kubelink/grpc/applist.proto b/kubelink/grpc/applist.proto index 14a856ed2..325675ee2 100644 --- a/kubelink/grpc/applist.proto +++ b/kubelink/grpc/applist.proto @@ -344,6 +344,7 @@ message UpgradeReleaseRequest { ChartContent chartContent = 4; bool RunInCtx = 5; string K8sVersion = 6; + bool TakeOwnership = 7; } message UpgradeReleaseResponse { diff --git a/kubelink/pkg/service/helmApplicationService/helmAppService.go b/kubelink/pkg/service/helmApplicationService/helmAppService.go index 666feceff..db3fcbab8 100644 --- a/kubelink/pkg/service/helmApplicationService/helmAppService.go +++ b/kubelink/pkg/service/helmApplicationService/helmAppService.go @@ -1303,11 +1303,12 @@ func (impl *HelmAppServiceImpl) InstallReleaseWithCustomChart(ctx context.Contex impl.logger.Debugw("tar file write at", "referenceChartDir", referenceChartDir) // Install release starts chartSpec := &helmClient.ChartSpec{ - ReleaseName: releaseIdentifier.ReleaseName, - Namespace: releaseIdentifier.ReleaseNamespace, - ValuesYaml: request.ValuesYaml, - ChartName: referenceChartDir, - KubeVersion: request.K8SVersion, + ReleaseName: releaseIdentifier.ReleaseName, + Namespace: releaseIdentifier.ReleaseNamespace, + ValuesYaml: request.ValuesYaml, + ChartName: referenceChartDir, + KubeVersion: request.K8SVersion, + TakeOwnership: request.TakeOwnership, } impl.logger.Debug("Installing release with chart info") @@ -1365,11 +1366,12 @@ func (impl *HelmAppServiceImpl) UpgradeReleaseWithCustomChart(ctx context.Contex impl.logger.Debugw("tar file write at", "referenceChartDir", referenceChartDir) // Install release spec installChartSpec := &helmClient.ChartSpec{ - ReleaseName: releaseIdentifier.ReleaseName, - Namespace: releaseIdentifier.ReleaseNamespace, - ValuesYaml: request.ValuesYaml, - ChartName: referenceChartDir, - KubeVersion: request.K8SVersion, + ReleaseName: releaseIdentifier.ReleaseName, + Namespace: releaseIdentifier.ReleaseNamespace, + ValuesYaml: request.ValuesYaml, + ChartName: referenceChartDir, + KubeVersion: request.K8SVersion, + TakeOwnership: request.TakeOwnership, } // Update release spec updateChartSpec := installChartSpec From 03223d44be4978f87ef48b7dbc50a74eb526e448 Mon Sep 17 00:00:00 2001 From: Shivam-nagar23 Date: Wed, 3 Dec 2025 17:55:00 +0530 Subject: [PATCH 05/10] refactor: simplify manual git gc condition in GitBaseManager --- git-sensor/env_gen.json | 2 +- git-sensor/env_gen.md | 2 ++ git-sensor/internals/Configuration.go | 1 + git-sensor/pkg/git/GitBaseManager.go | 7 +++---- git-sensor/wire_gen.go | 2 +- 5 files changed, 8 insertions(+), 6 deletions(-) diff --git a/git-sensor/env_gen.json b/git-sensor/env_gen.json index ee9920fa8..b82029354 100644 --- a/git-sensor/env_gen.json +++ b/git-sensor/env_gen.json @@ -1 +1 @@ -[{"Category":"DEVTRON","Fields":[{"Env":"ANALYTICS_DEBUG","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"APP","EnvType":"string","EnvValue":"git-sensor","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"CLI_CMD_TIMEOUT_GLOBAL_SECONDS","EnvType":"int","EnvValue":"900","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"CLI_CMD_TIMEOUT_JSON","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"COMMIT_STATS_TIMEOUT_IN_SEC","EnvType":"int","EnvValue":"2","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"CONSUMER_CONFIG_JSON","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"DEFAULT_LOG_TIME_LIMIT","EnvType":"int64","EnvValue":"1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"ENABLE_FILE_STATS","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"ENABLE_STATSVIZ","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"GIT_HISTORY_COUNT","EnvType":"int","EnvValue":"15","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"GOGIT_TIMEOUT_SECONDS","EnvType":"int","EnvValue":"10","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"LOG_LEVEL","EnvType":"int","EnvValue":"0","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"MIN_LIMIT_FOR_PVC","EnvType":"int","EnvValue":"1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_ACK_WAIT_IN_SECS","EnvType":"int","EnvValue":"120","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_BUFFER_SIZE","EnvType":"int","EnvValue":"-1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_MAX_AGE","EnvType":"int","EnvValue":"86400","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_PROCESSING_BATCH_SIZE","EnvType":"int","EnvValue":"1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_REPLICAS","EnvType":"int","EnvValue":"0","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_SERVER_HOST","EnvType":"string","EnvValue":"nats://devtron-nats.devtroncd:4222","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_ADDR","EnvType":"string","EnvValue":"127.0.0.1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_DATABASE","EnvType":"string","EnvValue":"git_sensor","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_EXPORT_PROM_METRICS","EnvType":"bool","EnvValue":"true","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_LOG_ALL_FAILURE_QUERIES","EnvType":"bool","EnvValue":"true","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_LOG_ALL_QUERY","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_LOG_SLOW_QUERY","EnvType":"bool","EnvValue":"true","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_PASSWORD","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_PORT","EnvType":"string","EnvValue":"5432","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_QUERY_DUR_THRESHOLD","EnvType":"int64","EnvValue":"5000","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_USER","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"POLL_DURATION","EnvType":"int","EnvValue":"2","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"POLL_WORKER","EnvType":"int","EnvValue":"5","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"RUNTIME_CONFIG_LOCAL_DEV","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"SERVER_GRPC_PORT","EnvType":"int","EnvValue":"8081","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"SERVER_REST_PORT","EnvType":"int","EnvValue":"8080","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"STREAM_CONFIG_JSON","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"USE_GIT_CLI","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"USE_GIT_CLI_ANALYTICS","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"}]},{"Category":"POSTGRES","Fields":[{"Env":"CASBIN_DATABASE","EnvType":"string","EnvValue":"casbin","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_READ_TIMEOUT","EnvType":"int64","EnvValue":"30","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_WRITE_TIMEOUT","EnvType":"int64","EnvValue":"30","EnvDescription":"","Example":"","Deprecated":"false"}]}] \ No newline at end of file +[{"Category":"DEVTRON","Fields":[{"Env":"ANALYTICS_DEBUG","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"APP","EnvType":"string","EnvValue":"git-sensor","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"CLI_CMD_TIMEOUT_GLOBAL_SECONDS","EnvType":"int","EnvValue":"900","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"CLI_CMD_TIMEOUT_JSON","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"COMMIT_STATS_TIMEOUT_IN_SEC","EnvType":"int","EnvValue":"2","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"CONSUMER_CONFIG_JSON","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"DEFAULT_LOG_TIME_LIMIT","EnvType":"int64","EnvValue":"1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"ENABLE_FILE_STATS","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"ENABLE_MANUAL_GIT_GC","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"ENABLE_STATSVIZ","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"GIT_HISTORY_COUNT","EnvType":"int","EnvValue":"15","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"GOGIT_TIMEOUT_SECONDS","EnvType":"int","EnvValue":"10","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"LOG_LEVEL","EnvType":"int","EnvValue":"0","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"MANUAL_GIT_GC_TIMEOUT_SECONDS","EnvType":"int","EnvValue":"300","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"MIN_LIMIT_FOR_PVC","EnvType":"int","EnvValue":"1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_ACK_WAIT_IN_SECS","EnvType":"int","EnvValue":"120","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_BUFFER_SIZE","EnvType":"int","EnvValue":"-1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_MAX_AGE","EnvType":"int","EnvValue":"86400","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_PROCESSING_BATCH_SIZE","EnvType":"int","EnvValue":"1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_REPLICAS","EnvType":"int","EnvValue":"0","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_SERVER_HOST","EnvType":"string","EnvValue":"nats://devtron-nats.devtroncd:4222","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_ADDR","EnvType":"string","EnvValue":"127.0.0.1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_DATABASE","EnvType":"string","EnvValue":"git_sensor","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_EXPORT_PROM_METRICS","EnvType":"bool","EnvValue":"true","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_LOG_ALL_FAILURE_QUERIES","EnvType":"bool","EnvValue":"true","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_LOG_ALL_QUERY","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_LOG_SLOW_QUERY","EnvType":"bool","EnvValue":"true","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_PASSWORD","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_PORT","EnvType":"string","EnvValue":"5432","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_QUERY_DUR_THRESHOLD","EnvType":"int64","EnvValue":"5000","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_USER","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"POLL_DURATION","EnvType":"int","EnvValue":"2","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"POLL_WORKER","EnvType":"int","EnvValue":"5","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"RUNTIME_CONFIG_LOCAL_DEV","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"SERVER_GRPC_PORT","EnvType":"int","EnvValue":"8081","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"SERVER_REST_PORT","EnvType":"int","EnvValue":"8080","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"STREAM_CONFIG_JSON","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"USE_GIT_CLI","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"USE_GIT_CLI_ANALYTICS","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"}]},{"Category":"POSTGRES","Fields":[{"Env":"CASBIN_DATABASE","EnvType":"string","EnvValue":"casbin","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_READ_TIMEOUT","EnvType":"int64","EnvValue":"30","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_WRITE_TIMEOUT","EnvType":"int64","EnvValue":"30","EnvDescription":"","Example":"","Deprecated":"false"}]}] \ No newline at end of file diff --git a/git-sensor/env_gen.md b/git-sensor/env_gen.md index f71486a1e..a7eeb8b86 100644 --- a/git-sensor/env_gen.md +++ b/git-sensor/env_gen.md @@ -11,10 +11,12 @@ | CONSUMER_CONFIG_JSON | string | | | | false | | DEFAULT_LOG_TIME_LIMIT | int64 |1 | | | false | | ENABLE_FILE_STATS | bool |false | | | false | + | ENABLE_MANUAL_GIT_GC | bool |false | | | false | | ENABLE_STATSVIZ | bool |false | | | false | | GIT_HISTORY_COUNT | int |15 | | | false | | GOGIT_TIMEOUT_SECONDS | int |10 | | | false | | LOG_LEVEL | int |0 | | | false | + | MANUAL_GIT_GC_TIMEOUT_SECONDS | int |300 | | | false | | MIN_LIMIT_FOR_PVC | int |1 | | | false | | NATS_MSG_ACK_WAIT_IN_SECS | int |120 | | | false | | NATS_MSG_BUFFER_SIZE | int |-1 | | | false | diff --git a/git-sensor/internals/Configuration.go b/git-sensor/internals/Configuration.go index 01454641f..abc132530 100644 --- a/git-sensor/internals/Configuration.go +++ b/git-sensor/internals/Configuration.go @@ -30,6 +30,7 @@ type Configuration struct { CliCmdTimeoutJson string `env:"CLI_CMD_TIMEOUT_JSON" envDefault:""` GoGitTimeout int `env:"GOGIT_TIMEOUT_SECONDS" envDefault:"10" ` EnableManualGitGc bool `env:"ENABLE_MANUAL_GIT_GC" envDefault:"false"` + ManualGitGcTimeout int `env:"MANUAL_GIT_GC_TIMEOUT_SECONDS" envDefault:"300"` } func ParseConfiguration() (*Configuration, error) { diff --git a/git-sensor/pkg/git/GitBaseManager.go b/git-sensor/pkg/git/GitBaseManager.go index 857394fdc..c1f8145d1 100644 --- a/git-sensor/pkg/git/GitBaseManager.go +++ b/git-sensor/pkg/git/GitBaseManager.go @@ -30,6 +30,7 @@ import ( "os" "os/exec" "regexp" + "slices" "strings" "time" ) @@ -387,9 +388,7 @@ func (impl *GitManagerBaseImpl) createCmdWithContext(ctx GitContext, name string //TODO: how to make it generic, currently works because the // git command is placed at index 2 for current implementations timeout := 0 - command := "" if len(arg) > 2 { - command = arg[2] timeout = impl.getCommandTimeout(arg[2]) } if timeout > 0 { @@ -410,9 +409,9 @@ func (impl *GitManagerBaseImpl) createCmdWithContext(ctx GitContext, name string } // Run git gc --prune=now to clean up temp.pack files left by killed git commands - if impl.conf.EnableManualGitGc && command == "fetch" { + if impl.conf.EnableManualGitGc && slices.Contains(arg, "fetch") { if rootDir := impl.extractRootDirFromArgs(arg); rootDir != "" { - impl.runGitGcWithTimeout(rootDir, 5*time.Minute) + impl.runGitGcWithTimeout(rootDir, time.Duration(impl.conf.ManualGitGcTimeout)*time.Second) } } return err diff --git a/git-sensor/wire_gen.go b/git-sensor/wire_gen.go index 3f2d145cb..a9a99e1f0 100644 --- a/git-sensor/wire_gen.go +++ b/git-sensor/wire_gen.go @@ -1,6 +1,6 @@ // Code generated by Wire. DO NOT EDIT. -//go:generate go run -mod=mod github.com/google/wire/cmd/wire +//go:generate go run github.com/google/wire/cmd/wire //go:build !wireinject // +build !wireinject From fcff5330bc9b0a18aa24cd7a0cd59f18186a1930 Mon Sep 17 00:00:00 2001 From: Ash-exp Date: Thu, 4 Dec 2025 15:45:34 +0530 Subject: [PATCH 06/10] fix: implement secure storage for sensitive data with encryption and repository management --- kubewatch/env_gen.json | 2 +- kubewatch/env_gen.md | 10 +- kubewatch/pkg/cluster/ClusterRepository.go | 35 ++--- .../securestore/AttributesRepoDBConnection.go | 75 ++++++++++ .../securestore/AttributesRepository.go | 111 ++++++++++++++ .../securestore/EncryptionKeyService.go | 136 ++++++++++++++++++ .../common-lib/securestore/common.go | 84 +++++++++++ .../common-lib/securestore/map.go | 73 ++++++++++ .../common-lib/securestore/strings.go | 60 ++++++++ .../common-lib/utils/sql/AuditLog.go | 51 +++++++ .../utils/sql/TransactionWrapper.go | 44 ++++++ .../common-lib/utils/sql/connection.go | 106 ++++++++++++++ .../common-lib/utils/sql/wire_sql.go | 26 ++++ kubewatch/vendor/modules.txt | 2 + 14 files changed, 796 insertions(+), 19 deletions(-) create mode 100644 kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/AttributesRepoDBConnection.go create mode 100644 kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/AttributesRepository.go create mode 100644 kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/EncryptionKeyService.go create mode 100644 kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/common.go create mode 100644 kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/map.go create mode 100644 kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/strings.go create mode 100644 kubewatch/vendor/github.com/devtron-labs/common-lib/utils/sql/AuditLog.go create mode 100644 kubewatch/vendor/github.com/devtron-labs/common-lib/utils/sql/TransactionWrapper.go create mode 100644 kubewatch/vendor/github.com/devtron-labs/common-lib/utils/sql/connection.go create mode 100644 kubewatch/vendor/github.com/devtron-labs/common-lib/utils/sql/wire_sql.go diff --git a/kubewatch/env_gen.json b/kubewatch/env_gen.json index 7e6863b42..045a01b12 100644 --- a/kubewatch/env_gen.json +++ b/kubewatch/env_gen.json @@ -1 +1 @@ -[{"Category":"ARGOCD_INFORMER","Fields":[{"Env":"ACD_INFORMER","EnvType":"bool","EnvValue":"true","EnvDescription":"Used to determine whether ArgoCD informer is enabled or not","Example":"","Deprecated":"false"},{"Env":"ACD_NAMESPACE","EnvType":"string","EnvValue":"devtroncd","EnvDescription":"Namespace where all the ArgoCD application objects are published. For multi-cluster mode, it will be set to v1.NamespaceAll","Example":"","Deprecated":"false"}]},{"Category":"CD_ARGO_WORKFLOW","Fields":[{"Env":"CD_DEFAULT_NAMESPACE","EnvType":"string","EnvValue":"devtron-cd","EnvDescription":"Namespace where all CD workflows objects are scheduled. For multi-cluster mode, it will be set to v1.NamespaceAll","Example":"","Deprecated":"false"},{"Env":"CD_INFORMER","EnvType":"bool","EnvValue":"true","EnvDescription":"Used to determine whether CD informer is enabled or not","Example":"","Deprecated":"false"}]},{"Category":"CI_ARGO_WORKFLOW","Fields":[{"Env":"CI_INFORMER","EnvType":"bool","EnvValue":"true","EnvDescription":"Used to determine whether CI informer is enabled or not","Example":"","Deprecated":"false"},{"Env":"DEFAULT_NAMESPACE","EnvType":"string","EnvValue":"devtron-ci","EnvDescription":"Namespace where all CI workflows objects are scheduled. For multi-cluster mode, it will be set to v1.NamespaceAll","Example":"","Deprecated":"false"}]},{"Category":"CLUSTER_MODE","Fields":[{"Env":"CLUSTER_ARGO_CD_TYPE","EnvType":"string","EnvValue":"IN_CLUSTER","EnvDescription":"Determines cluster mode for ArgoCD informer; for multiple cluster mode, it will be set to ALL_CLUSTER; for single cluster mode, it will be set to IN_CLUSTER","Example":"","Deprecated":"false"},{"Env":"CLUSTER_CD_ARGO_WF_TYPE","EnvType":"string","EnvValue":"IN_CLUSTER","EnvDescription":"Determines cluster mode for CD ArgoWorkflow informer; for multiple cluster mode, it will be set to ALL_CLUSTER; for single cluster mode, it will be set to IN_CLUSTER","Example":"","Deprecated":"false"},{"Env":"CLUSTER_CI_ARGO_WF_TYPE","EnvType":"string","EnvValue":"IN_CLUSTER","EnvDescription":"Determines cluster mode for CI ArgoWorkflow informer; for multiple cluster mode, it will be set to ALL_CLUSTER; for single cluster mode, it will be set to IN_CLUSTER","Example":"","Deprecated":"false"},{"Env":"CLUSTER_TYPE","EnvType":"string","EnvValue":"IN_CLUSTER","EnvDescription":"Determines cluster mode for System Executor informer; for multiple cluster mode, it will be set to ALL_CLUSTER; for single cluster mode, it will be set to IN_CLUSTER","Example":"","Deprecated":"false"}]},{"Category":"DEVTRON","Fields":[{"Env":"APP","EnvType":"string","EnvValue":"kubewatch","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"CONSUMER_CONFIG_JSON","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"DEFAULT_LOG_TIME_LIMIT","EnvType":"int64","EnvValue":"1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"ENABLE_STATSVIZ","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"K8s_CLIENT_MAX_IDLE_CONNS_PER_HOST","EnvType":"int","EnvValue":"25","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"K8s_TCP_IDLE_CONN_TIMEOUT","EnvType":"int","EnvValue":"300","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"K8s_TCP_KEEPALIVE","EnvType":"int","EnvValue":"30","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"K8s_TCP_TIMEOUT","EnvType":"int","EnvValue":"30","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"K8s_TLS_HANDSHAKE_TIMEOUT","EnvType":"int","EnvValue":"10","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"LOG_LEVEL","EnvType":"int","EnvValue":"-1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_ACK_WAIT_IN_SECS","EnvType":"int","EnvValue":"120","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_BUFFER_SIZE","EnvType":"int","EnvValue":"-1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_MAX_AGE","EnvType":"int","EnvValue":"86400","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_PROCESSING_BATCH_SIZE","EnvType":"int","EnvValue":"1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_REPLICAS","EnvType":"int","EnvValue":"0","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_SERVER_HOST","EnvType":"string","EnvValue":"nats://devtron-nats.devtroncd:4222","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_ADDR","EnvType":"string","EnvValue":"127.0.0.1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_DATABASE","EnvType":"string","EnvValue":"orchestrator","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_EXPORT_PROM_METRICS","EnvType":"bool","EnvValue":"true","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_LOG_ALL_FAILURE_QUERIES","EnvType":"bool","EnvValue":"true","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_LOG_ALL_QUERY","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_LOG_SLOW_QUERY","EnvType":"bool","EnvValue":"true","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_PASSWORD","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_PORT","EnvType":"string","EnvValue":"5432","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_QUERY_DUR_THRESHOLD","EnvType":"int64","EnvValue":"5000","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_USER","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"RUNTIME_CONFIG_LOCAL_DEV","EnvType":"LocalDevMode","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"STREAM_CONFIG_JSON","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"USE_CUSTOM_HTTP_TRANSPORT","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"}]},{"Category":"EXTERNAL_KUBEWATCH","Fields":[{"Env":"CD_EXTERNAL_LISTENER_URL","EnvType":"string","EnvValue":"http://devtroncd-orchestrator-service-prod.devtroncd:80","EnvDescription":"URL of the orchestrator","Example":"","Deprecated":"false"},{"Env":"CD_EXTERNAL_NAMESPACE","EnvType":"string","EnvValue":"","EnvDescription":"Namespace where the external kubewatch is set up","Example":"","Deprecated":"false"},{"Env":"CD_EXTERNAL_ORCHESTRATOR_TOKEN","EnvType":"string","EnvValue":"","EnvDescription":"Token used to authenticate with the orchestrator","Example":"","Deprecated":"false"},{"Env":"CD_EXTERNAL_REST_LISTENER","EnvType":"bool","EnvValue":"false","EnvDescription":"Used to determine whether it's an external kubewatch or internal kubewatch","Example":"","Deprecated":"false"}]},{"Category":"GRACEFUL_SHUTDOWN","Fields":[{"Env":"SLEEP_TIMEOUT","EnvType":"int","EnvValue":"5","EnvDescription":"Graceful shutdown timeout in seconds","Example":"","Deprecated":"false"}]}] \ No newline at end of file +[{"Category":"ARGOCD_INFORMER","Fields":[{"Env":"ACD_INFORMER","EnvType":"bool","EnvValue":"true","EnvDescription":"Used to determine whether ArgoCD informer is enabled or not","Example":"","Deprecated":"false"},{"Env":"ACD_NAMESPACE","EnvType":"string","EnvValue":"devtroncd","EnvDescription":"Namespace where all the ArgoCD application objects are published. For multi-cluster mode, it will be set to v1.NamespaceAll","Example":"","Deprecated":"false"}]},{"Category":"CD_ARGO_WORKFLOW","Fields":[{"Env":"CD_DEFAULT_NAMESPACE","EnvType":"string","EnvValue":"devtron-cd","EnvDescription":"Namespace where all CD workflows objects are scheduled. For multi-cluster mode, it will be set to v1.NamespaceAll","Example":"","Deprecated":"false"},{"Env":"CD_INFORMER","EnvType":"bool","EnvValue":"true","EnvDescription":"Used to determine whether CD informer is enabled or not","Example":"","Deprecated":"false"}]},{"Category":"CI_ARGO_WORKFLOW","Fields":[{"Env":"CI_INFORMER","EnvType":"bool","EnvValue":"true","EnvDescription":"Used to determine whether CI informer is enabled or not","Example":"","Deprecated":"false"},{"Env":"DEFAULT_NAMESPACE","EnvType":"string","EnvValue":"devtron-ci","EnvDescription":"Namespace where all CI workflows objects are scheduled. For multi-cluster mode, it will be set to v1.NamespaceAll","Example":"","Deprecated":"false"}]},{"Category":"CLUSTER_MODE","Fields":[{"Env":"CLUSTER_ARGO_CD_TYPE","EnvType":"string","EnvValue":"IN_CLUSTER","EnvDescription":"Determines cluster mode for ArgoCD informer; for multiple cluster mode, it will be set to ALL_CLUSTER; for single cluster mode, it will be set to IN_CLUSTER","Example":"","Deprecated":"false"},{"Env":"CLUSTER_CD_ARGO_WF_TYPE","EnvType":"string","EnvValue":"IN_CLUSTER","EnvDescription":"Determines cluster mode for CD ArgoWorkflow informer; for multiple cluster mode, it will be set to ALL_CLUSTER; for single cluster mode, it will be set to IN_CLUSTER","Example":"","Deprecated":"false"},{"Env":"CLUSTER_CI_ARGO_WF_TYPE","EnvType":"string","EnvValue":"IN_CLUSTER","EnvDescription":"Determines cluster mode for CI ArgoWorkflow informer; for multiple cluster mode, it will be set to ALL_CLUSTER; for single cluster mode, it will be set to IN_CLUSTER","Example":"","Deprecated":"false"},{"Env":"CLUSTER_TYPE","EnvType":"string","EnvValue":"IN_CLUSTER","EnvDescription":"Determines cluster mode for System Executor informer; for multiple cluster mode, it will be set to ALL_CLUSTER; for single cluster mode, it will be set to IN_CLUSTER","Example":"","Deprecated":"false"}]},{"Category":"DEVTRON","Fields":[{"Env":"APP","EnvType":"string","EnvValue":"kubewatch","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"CONSUMER_CONFIG_JSON","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"DEFAULT_LOG_TIME_LIMIT","EnvType":"int64","EnvValue":"1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"ENABLE_STATSVIZ","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"K8s_CLIENT_MAX_IDLE_CONNS_PER_HOST","EnvType":"int","EnvValue":"25","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"K8s_TCP_IDLE_CONN_TIMEOUT","EnvType":"int","EnvValue":"300","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"K8s_TCP_KEEPALIVE","EnvType":"int","EnvValue":"30","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"K8s_TCP_TIMEOUT","EnvType":"int","EnvValue":"30","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"K8s_TLS_HANDSHAKE_TIMEOUT","EnvType":"int","EnvValue":"10","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"LOG_LEVEL","EnvType":"int","EnvValue":"-1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_ACK_WAIT_IN_SECS","EnvType":"int","EnvValue":"120","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_BUFFER_SIZE","EnvType":"int","EnvValue":"-1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_MAX_AGE","EnvType":"int","EnvValue":"86400","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_PROCESSING_BATCH_SIZE","EnvType":"int","EnvValue":"1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_MSG_REPLICAS","EnvType":"int","EnvValue":"0","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"NATS_SERVER_HOST","EnvType":"string","EnvValue":"nats://devtron-nats.devtroncd:4222","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_ADDR","EnvType":"string","EnvValue":"127.0.0.1","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_DATABASE","EnvType":"string","EnvValue":"orchestrator","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_EXPORT_PROM_METRICS","EnvType":"bool","EnvValue":"true","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_LOG_ALL_FAILURE_QUERIES","EnvType":"bool","EnvValue":"true","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_LOG_ALL_QUERY","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_LOG_SLOW_QUERY","EnvType":"bool","EnvValue":"true","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_PASSWORD","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_PORT","EnvType":"string","EnvValue":"5432","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_QUERY_DUR_THRESHOLD","EnvType":"int64","EnvValue":"5000","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_USER","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"RUNTIME_CONFIG_LOCAL_DEV","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"STREAM_CONFIG_JSON","EnvType":"string","EnvValue":"","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"USE_CUSTOM_HTTP_TRANSPORT","EnvType":"bool","EnvValue":"false","EnvDescription":"","Example":"","Deprecated":"false"}]},{"Category":"EXTERNAL_KUBEWATCH","Fields":[{"Env":"CD_EXTERNAL_LISTENER_URL","EnvType":"string","EnvValue":"http://devtroncd-orchestrator-service-prod.devtroncd:80","EnvDescription":"URL of the orchestrator","Example":"","Deprecated":"false"},{"Env":"CD_EXTERNAL_NAMESPACE","EnvType":"string","EnvValue":"","EnvDescription":"Namespace where the external kubewatch is set up","Example":"","Deprecated":"false"},{"Env":"CD_EXTERNAL_ORCHESTRATOR_TOKEN","EnvType":"string","EnvValue":"","EnvDescription":"Token used to authenticate with the orchestrator","Example":"","Deprecated":"false"},{"Env":"CD_EXTERNAL_REST_LISTENER","EnvType":"bool","EnvValue":"false","EnvDescription":"Used to determine whether it's an external kubewatch or internal kubewatch","Example":"","Deprecated":"false"}]},{"Category":"GRACEFUL_SHUTDOWN","Fields":[{"Env":"SLEEP_TIMEOUT","EnvType":"int","EnvValue":"5","EnvDescription":"Graceful shutdown timeout in seconds","Example":"","Deprecated":"false"}]},{"Category":"POSTGRES","Fields":[{"Env":"CASBIN_DATABASE","EnvType":"string","EnvValue":"casbin","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_READ_TIMEOUT","EnvType":"int64","EnvValue":"30","EnvDescription":"","Example":"","Deprecated":"false"},{"Env":"PG_WRITE_TIMEOUT","EnvType":"int64","EnvValue":"30","EnvDescription":"","Example":"","Deprecated":"false"}]}] \ No newline at end of file diff --git a/kubewatch/env_gen.md b/kubewatch/env_gen.md index d766b2e9e..babb43804 100644 --- a/kubewatch/env_gen.md +++ b/kubewatch/env_gen.md @@ -59,7 +59,7 @@ | PG_PORT | string |5432 | | | false | | PG_QUERY_DUR_THRESHOLD | int64 |5000 | | | false | | PG_USER | string | | | | false | - | RUNTIME_CONFIG_LOCAL_DEV | LocalDevMode |false | | | false | + | RUNTIME_CONFIG_LOCAL_DEV | bool |false | | | false | | STREAM_CONFIG_JSON | string | | | | false | | USE_CUSTOM_HTTP_TRANSPORT | bool |false | | | false | @@ -78,3 +78,11 @@ |-------|----------|-------------------|-------------------|-----------------------|------------------| | SLEEP_TIMEOUT | int |5 | Graceful shutdown timeout in seconds | | false | + +## POSTGRES Related Environment Variables +| Key | Type | Default Value | Description | Example | Deprecated | +|-------|----------|-------------------|-------------------|-----------------------|------------------| + | CASBIN_DATABASE | string |casbin | | | false | + | PG_READ_TIMEOUT | int64 |30 | | | false | + | PG_WRITE_TIMEOUT | int64 |30 | | | false | + diff --git a/kubewatch/pkg/cluster/ClusterRepository.go b/kubewatch/pkg/cluster/ClusterRepository.go index 187407293..fee210477 100644 --- a/kubewatch/pkg/cluster/ClusterRepository.go +++ b/kubewatch/pkg/cluster/ClusterRepository.go @@ -17,6 +17,7 @@ package repository import ( + "github.com/devtron-labs/common-lib/securestore" "github.com/devtron-labs/common-lib/utils/k8s/commonBean" "github.com/devtron-labs/kubewatch/pkg/sql" "github.com/go-pg/pg" @@ -25,23 +26,23 @@ import ( ) type Cluster struct { - tableName struct{} `sql:"cluster" pg:",discard_unknown_columns"` - Id int `sql:"id,pk"` - ClusterName string `sql:"cluster_name"` - ServerUrl string `sql:"server_url"` - PrometheusEndpoint string `sql:"prometheus_endpoint"` - Active bool `sql:"active,notnull"` - CdArgoSetup bool `sql:"cd_argo_setup,notnull"` - Config map[string]string `sql:"config"` - PUserName string `sql:"p_username"` - PPassword string `sql:"p_password"` - PTlsClientCert string `sql:"p_tls_client_cert"` - PTlsClientKey string `sql:"p_tls_client_key"` - AgentInstallationStage int `sql:"agent_installation_stage"` - K8sVersion string `sql:"k8s_version"` - ErrorInConnecting string `sql:"error_in_connecting"` - InsecureSkipTlsVerify bool `sql:"insecure_skip_tls_verify"` - IsVirtualCluster bool `sql:"is_virtual_cluster"` + tableName struct{} `sql:"cluster" pg:",discard_unknown_columns"` + Id int `sql:"id,pk"` + ClusterName string `sql:"cluster_name"` + ServerUrl string `sql:"server_url"` + PrometheusEndpoint string `sql:"prometheus_endpoint"` + Active bool `sql:"active,notnull"` + CdArgoSetup bool `sql:"cd_argo_setup,notnull"` + Config securestore.EncryptedMap `sql:"config"` + PUserName string `sql:"p_username"` + PPassword string `sql:"p_password"` + PTlsClientCert string `sql:"p_tls_client_cert"` + PTlsClientKey string `sql:"p_tls_client_key"` + AgentInstallationStage int `sql:"agent_installation_stage"` + K8sVersion string `sql:"k8s_version"` + ErrorInConnecting string `sql:"error_in_connecting"` + InsecureSkipTlsVerify bool `sql:"insecure_skip_tls_verify"` + IsVirtualCluster bool `sql:"is_virtual_cluster"` sql.AuditLog } diff --git a/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/AttributesRepoDBConnection.go b/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/AttributesRepoDBConnection.go new file mode 100644 index 000000000..907d202bd --- /dev/null +++ b/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/AttributesRepoDBConnection.go @@ -0,0 +1,75 @@ +package securestore + +import ( + "github.com/caarlos0/env" + "github.com/devtron-labs/common-lib/utils" + "github.com/devtron-labs/common-lib/utils/bean" + "github.com/go-pg/pg" + "log" +) + +func NewAttributesRepositoryImplForDatabase(databaseName string) (*AttributesRepositoryImpl, error) { + dbConn, err := newDbConnection(databaseName) + if err != nil { + return nil, err + } + return NewAttributesRepositoryImpl(dbConn), nil +} + +type config struct { + Addr string `env:"PG_ADDR" envDefault:"127.0.0.1"` + Port string `env:"PG_PORT" envDefault:"5432"` + User string `env:"PG_USER" envDefault:""` + Password string `env:"PG_PASSWORD" envDefault:"" secretData:"-"` + Database string `env:"PG_DATABASE" envDefault:"orchestrator"` + ApplicationName string `env:"APP" envDefault:"orchestrator"` + bean.PgQueryMonitoringConfig + LocalDev bool `env:"RUNTIME_CONFIG_LOCAL_DEV" envDefault:"false"` +} + +func getDbConfig(databaseName string) (*config, error) { + cfg := &config{} + err := env.Parse(cfg) + if err != nil { + return cfg, err + } + monitoringCfg, err := bean.GetPgQueryMonitoringConfig(cfg.ApplicationName) + if err != nil { + return cfg, err + } + cfg.PgQueryMonitoringConfig = monitoringCfg + if !cfg.LocalDev { + cfg.Database = databaseName //overriding database + } + return cfg, err +} + +func newDbConnection(databaseName string) (*pg.DB, error) { + cfg, err := getDbConfig(databaseName) + if err != nil { + return nil, err + } + options := pg.Options{ + Addr: cfg.Addr + ":" + cfg.Port, + User: cfg.User, + Password: cfg.Password, + Database: cfg.Database, + ApplicationName: cfg.ApplicationName, + } + dbConnection := pg.Connect(&options) + //check db connection + var test string + _, err = dbConnection.QueryOne(&test, `SELECT 1`) + + if err != nil { + log.Println("error in connecting orchestrator db ", "err", err) + return nil, err + } else { + log.Println("connected with orchestrator db") + } + //-------------- + if cfg.LogSlowQuery { + dbConnection.OnQueryProcessed(utils.GetPGPostQueryProcessor(cfg.PgQueryMonitoringConfig)) + } + return dbConnection, err +} diff --git a/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/AttributesRepository.go b/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/AttributesRepository.go new file mode 100644 index 000000000..eadf7a8f4 --- /dev/null +++ b/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/AttributesRepository.go @@ -0,0 +1,111 @@ +/* + * Copyright (c) 2020-2024. Devtron Inc. + */ + +package securestore + +import ( + sql2 "github.com/devtron-labs/common-lib/utils/sql" + "github.com/go-pg/pg" + "time" +) + +const ENCRYPTION_KEY string = "encryptionKey" // AES-256 encryption key for sensitive data + +type Attributes struct { + tableName struct{} `sql:"attributes" pg:",discard_unknown_columns"` + Id int `sql:"id,pk"` + Key string `sql:"key,notnull"` + Value string `sql:"value,notnull"` + Active bool `sql:"active, notnull"` + sql2.AuditLog +} + +type AttributesRepository interface { + Save(model *Attributes, tx *pg.Tx) (*Attributes, error) + Update(model *Attributes, tx *pg.Tx) error + FindByKey(key string) (*Attributes, error) + GetConnection() (dbConnection *pg.DB) + SaveEncryptionKeyIfNotExists(value string) error + GetEncryptionKey() (string, error) +} + +type AttributesRepositoryImpl struct { + dbConnection *pg.DB +} + +func NewAttributesRepositoryImpl(dbConnection *pg.DB) *AttributesRepositoryImpl { + return &AttributesRepositoryImpl{dbConnection: dbConnection} +} + +func (impl *AttributesRepositoryImpl) GetConnection() (dbConnection *pg.DB) { + return impl.dbConnection +} + +func (repo AttributesRepositoryImpl) Save(model *Attributes, tx *pg.Tx) (*Attributes, error) { + err := tx.Insert(model) + if err != nil { + return model, err + } + return model, nil +} + +func (repo AttributesRepositoryImpl) Update(model *Attributes, tx *pg.Tx) error { + err := tx.Update(model) + if err != nil { + return err + } + return nil +} + +func (repo AttributesRepositoryImpl) FindByKey(key string) (*Attributes, error) { + model := &Attributes{} + err := repo.dbConnection. + Model(model). + Where("key = ?", key). + Where("active = ?", true). + Select() + if err != nil { + return model, err + } + return model, nil +} + +// SaveEncryptionKeyIfNotExists saves an encryption key in the attributes table if not exists +func (repo AttributesRepositoryImpl) SaveEncryptionKeyIfNotExists(value string) error { + dbConnection := repo.GetConnection() + tx, err := dbConnection.Begin() + if err != nil { + return err + } + defer tx.Rollback() + + //deleting all keys if exists for safe side + _, err = tx.Model(&Attributes{}).Where("key = ?", ENCRYPTION_KEY).Delete() + // Create new encryption key entry + model := &Attributes{ + Key: ENCRYPTION_KEY, + Value: value, + Active: true, + AuditLog: sql2.AuditLog{ + CreatedBy: 1, + UpdatedBy: 1, + CreatedOn: time.Now(), + UpdatedOn: time.Now(), + }, + } + _, err = repo.Save(model, tx) + if err != nil { + return err + } + return tx.Commit() +} + +// GetEncryptionKey retrieves the active encryption key from the attributes table +func (repo AttributesRepositoryImpl) GetEncryptionKey() (string, error) { + model, err := repo.FindByKey(ENCRYPTION_KEY) + if err != nil { + return "", err + } + return model.Value, nil +} diff --git a/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/EncryptionKeyService.go b/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/EncryptionKeyService.go new file mode 100644 index 000000000..f8a37acec --- /dev/null +++ b/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/EncryptionKeyService.go @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2024. Devtron Inc. + */ + +package securestore + +import ( + "crypto/rand" + "encoding/hex" + "fmt" + "github.com/go-pg/pg" + log "github.com/sirupsen/logrus" +) + +func SetEncryptionKey() error { + repo, err := NewAttributesRepositoryImplForDatabase("orchestrator") //hardcoded for orchestrator as need to pick a common key for every service + if err != nil { + log.Println("error in creating attributes repository", "err", err) + return err + } + encryptionService := NewEncryptionKeyServiceImpl(repo) + err = encryptionService.CreateAndStoreEncryptionKey() + if err != nil { + log.Println("error in creating and storing encryption key", "err", err) + return err + } + return nil +} + +type EncryptionKeyService interface { + // CreateAndStoreEncryptionKey generates a new AES-256 encryption key and stores it in the attributes repository + CreateAndStoreEncryptionKey() error + + // RotateEncryptionKey generates a new encryption key and stores it (deactivating the old one) + RotateEncryptionKey(userId int32) (string, error) + + // GenerateEncryptionKey generates a new AES-256 encryption key (32 bytes) + GenerateEncryptionKey() (string, error) + + GetEncryptionKey() (string, error) +} + +type EncryptionKeyServiceImpl struct { + attributesRepository AttributesRepository +} + +func NewEncryptionKeyServiceImpl(attributesRepository AttributesRepository) *EncryptionKeyServiceImpl { + impl := &EncryptionKeyServiceImpl{ + attributesRepository: attributesRepository, + } + return impl +} + +// GenerateEncryptionKey generates a new AES-256 encryption key (32 bytes = 256 bits) +func (impl *EncryptionKeyServiceImpl) GenerateEncryptionKey() (string, error) { + // Generate 32 random bytes for AES-256 + key := make([]byte, 32) + _, err := rand.Read(key) + if err != nil { + log.Error("error generating random encryption key", "err", err) + return "", fmt.Errorf("failed to generate encryption key: %w", err) + } + // Encode to hex string for storage + keyHex := hex.EncodeToString(key) + return keyHex, nil +} + +// CreateAndStoreEncryptionKey generates a new AES-256 encryption key and stores it in the attributes repository +func (impl *EncryptionKeyServiceImpl) CreateAndStoreEncryptionKey() error { + // Check if encryption key already exists + encryptionKeyModel, err := impl.attributesRepository.FindByKey(ENCRYPTION_KEY) + if err != nil && err != pg.ErrNoRows { + log.Error("error checking for existing encryption key", "err", err) + return err + } + var encryptionKeyEncoded string + if encryptionKeyModel != nil && encryptionKeyModel.Id > 0 && len(encryptionKeyModel.Value) > 0 { + encryptionKeyEncoded = encryptionKeyModel.Value + log.Println("encryption key already exists", "keyId", encryptionKeyModel.Id) + } else { + // Generate new encryption key + encryptionKeyNew, err := impl.GenerateEncryptionKey() + if err != nil { + return err + } + // Store in repository + err = impl.attributesRepository.SaveEncryptionKeyIfNotExists(encryptionKeyNew) + if err != nil { + log.Error("error storing encryption key", "err", err) + return fmt.Errorf("failed to store encryption key: %w", err) + } + encryptionKeyEncoded = encryptionKeyNew + log.Println("Successfully created and stored encryption key") + } + + encryptionKey, err = hex.DecodeString(encryptionKeyEncoded) + if err != nil || len(encryptionKey) != 32 { + return fmt.Errorf("encryptionKey is incorrect : %v", err) + } + return nil +} + +// RotateEncryptionKey generates a new encryption key and stores it (deactivating the old one) +func (impl *EncryptionKeyServiceImpl) RotateEncryptionKey(userId int32) (string, error) { + log.Println("Rotating encryption key", "userId", userId) + + // Generate new encryption key + newEncryptionKey, err := impl.GenerateEncryptionKey() + if err != nil { + return "", err + } + + // Store in repository (this will deactivate the old key) + err = impl.attributesRepository.SaveEncryptionKeyIfNotExists(newEncryptionKey) + if err != nil { + log.Error("error rotating encryption key", "err", err) + return "", fmt.Errorf("failed to rotate encryption key: %w", err) + } + //TODO: also need to rotate encryption's already done + log.Println("Successfully rotated encryption key", "userId", userId) + return newEncryptionKey, nil +} + +// GetEncryptionKey retrieves the active encryption key from the repository +func (impl *EncryptionKeyServiceImpl) GetEncryptionKey() (string, error) { + key, err := impl.attributesRepository.GetEncryptionKey() + if err != nil { + if err == pg.ErrNoRows { + log.Error("encryption key not found in repository") + return "", fmt.Errorf("encryption key not found, please create one first") + } + log.Error("error retrieving encryption key", "err", err) + return "", err + } + return key, nil +} diff --git a/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/common.go b/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/common.go new file mode 100644 index 000000000..4444765e3 --- /dev/null +++ b/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/common.go @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2024. Devtron Inc. + */ + +package securestore + +import ( + "crypto/aes" + "crypto/cipher" + "crypto/rand" + "encoding/base64" + "encoding/json" + "errors" + "fmt" + "github.com/go-pg/pg/types" + "io" +) + +var decryptionFailErr = fmt.Errorf("Decryption failed") + +func DidDecryptionFail(err error) bool { + return errors.Is(err, decryptionFailErr) +} + +var encryptionKey []byte + +func encrypt(data []byte) (string, error) { + if len(data) == 0 { + return "", nil + } + block, err := aes.NewCipher(encryptionKey) + if err != nil { + return "", err + } + aesGCM, err := cipher.NewGCM(block) + if err != nil { + return "", err + } + nonce := make([]byte, aesGCM.NonceSize()) + if _, err := io.ReadFull(rand.Reader, nonce); err != nil { + return "", err + } + ciphertext := aesGCM.Seal(nonce, nonce, data, nil) + return base64.StdEncoding.EncodeToString(ciphertext), nil +} + +func decrypt(cipherBase64 string) (string, error) { + // Try decrypting (normal encrypted flow) + cipherData, err := base64.StdEncoding.DecodeString(cipherBase64) + if err == nil { + block, err := aes.NewCipher(encryptionKey) + if err != nil { + return "", err + } + aesGCM, err := cipher.NewGCM(block) + if err != nil { + return "", err + } + nonceSize := aesGCM.NonceSize() + if len(cipherData) >= nonceSize { + nonce, ciphertext := cipherData[:nonceSize], cipherData[nonceSize:] + plainText, err := aesGCM.Open(nil, nonce, ciphertext, nil) + if err == nil { + return string(plainText), nil // Successfully decrypted + } + } + } + return cipherBase64, decryptionFailErr +} + +// AppendValue : can be used for auto encryption of fields but is only supported in go-pg/v10. Not being used anywhere as of now, to be tested when start using. +func (e EncryptedMap) AppendValue(b []byte, quote int) ([]byte, error) { + jsonBytes, err := json.Marshal(e) + if err != nil { + return nil, err + } + + encryptedString, err := encrypt(jsonBytes) + if err != nil { + return nil, err + } + + return types.AppendString(b, encryptedString, quote), nil +} diff --git a/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/map.go b/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/map.go new file mode 100644 index 000000000..dd9c25846 --- /dev/null +++ b/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/map.go @@ -0,0 +1,73 @@ +package securestore + +import ( + "encoding/json" + "fmt" +) + +type EncryptedMap map[string]string + +const ( + ENCRYPTED_KEY = "encrypted_data" +) + +func EncryptMap(m EncryptedMap) (map[string]string, error) { + bytesM, err := json.Marshal(m) + if err != nil { + return nil, err + } + encryptedData, err := encrypt(bytesM) + if err != nil { + return nil, err + } + return EncryptedMap{ENCRYPTED_KEY: encryptedData}, nil +} + +func decryptMap(mCipher []byte) (map[string]string, error) { + var m map[string]string + err := json.Unmarshal(mCipher, &m) + if err != nil { + return nil, err + } + if len(m[ENCRYPTED_KEY]) > 0 { + decryptedMapBytes, err := decrypt(m[ENCRYPTED_KEY]) + if err != nil && !DidDecryptionFail(err) { + return nil, err + } + if err == nil { + var decryptedMap map[string]string + err = json.Unmarshal([]byte(decryptedMapBytes), &decryptedMap) + if err != nil { + return nil, err + } + return decryptedMap, nil + } + } else { + // Fallback: maybe it's just raw JSON + // Validate that it's a valid JSON map[string]string + // Neither decrypted nor valid plaintext JSON + return m, nil + } + return nil, fmt.Errorf("decryption failed and data is not valid plaintext JSON") +} + +func (e *EncryptedMap) Scan(value interface{}) error { + if value == nil { + return nil + } + var encrypted []byte + switch v := value.(type) { + case string: + encrypted = []byte(v) + case []byte: + encrypted = v + default: + return fmt.Errorf("unsupported type: %T", v) + } + var err error + *e, err = decryptMap(encrypted) + if err != nil { + return err + } + return nil +} diff --git a/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/strings.go b/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/strings.go new file mode 100644 index 000000000..e7c5128b2 --- /dev/null +++ b/kubewatch/vendor/github.com/devtron-labs/common-lib/securestore/strings.go @@ -0,0 +1,60 @@ +package securestore + +import ( + "fmt" +) + +type EncryptedString string + +func (e *EncryptedString) String() string { + return string(*e) +} + +func ToEncryptedString(s string) EncryptedString { + return EncryptedString(s) +} + +func EncryptString(data string) (EncryptedString, error) { + encryptedStr, err := encrypt([]byte(data)) + if err != nil { + return "", err + } + return EncryptedString(encryptedStr), nil +} + +func decryptString(cipherBase64 string) (string, error) { + decryptedBytes, err := decrypt(cipherBase64) + if err != nil && !DidDecryptionFail(err) { + return "", err + } + // Fallback: decrypting failed, considering it as just normal string + if DidDecryptionFail(err) { + return cipherBase64, nil + } else { + return decryptedBytes, nil + } +} + +func (e *EncryptedString) Scan(value interface{}) error { + if value == nil { + return nil + } + var encrypted []byte + switch v := value.(type) { + case string: + encrypted = []byte(v) + case []byte: + encrypted = v + default: + return fmt.Errorf("unsupported type: %T", v) + } + decryptedBytes, err := decryptString(string(encrypted)) + if err != nil { + return err + } + if decryptedBytes == "" { + return nil + } + *e = EncryptedString(decryptedBytes) + return nil +} diff --git a/kubewatch/vendor/github.com/devtron-labs/common-lib/utils/sql/AuditLog.go b/kubewatch/vendor/github.com/devtron-labs/common-lib/utils/sql/AuditLog.go new file mode 100644 index 000000000..fb3a38e79 --- /dev/null +++ b/kubewatch/vendor/github.com/devtron-labs/common-lib/utils/sql/AuditLog.go @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2020-2024. Devtron Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package sql + +import ( + "time" +) + +type AuditLog struct { + CreatedOn time.Time `sql:"created_on,type:timestamptz"` + CreatedBy int32 `sql:"created_by,type:integer"` + UpdatedOn time.Time `sql:"updated_on,type:timestamptz"` + UpdatedBy int32 `sql:"updated_by,type:integer"` +} + +func NewDefaultAuditLog(userId int32) AuditLog { + return AuditLog{ + CreatedOn: time.Now(), + CreatedBy: userId, + UpdatedOn: time.Now(), + UpdatedBy: userId, + } +} + +// CreateAuditLog can be used by any repository to create AuditLog for insert operation +func (model *AuditLog) CreateAuditLog(userId int32) { + model.CreatedOn = time.Now() + model.UpdatedOn = time.Now() + model.CreatedBy = userId + model.UpdatedBy = userId +} + +// UpdateAuditLog can be used by any repository to update AuditLog for update operation +func (model *AuditLog) UpdateAuditLog(userId int32) { + model.UpdatedOn = time.Now() + model.UpdatedBy = userId +} diff --git a/kubewatch/vendor/github.com/devtron-labs/common-lib/utils/sql/TransactionWrapper.go b/kubewatch/vendor/github.com/devtron-labs/common-lib/utils/sql/TransactionWrapper.go new file mode 100644 index 000000000..3c797e1e1 --- /dev/null +++ b/kubewatch/vendor/github.com/devtron-labs/common-lib/utils/sql/TransactionWrapper.go @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2024. Devtron Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package sql + +import "github.com/go-pg/pg" + +type TransactionWrapper interface { + StartTx() (*pg.Tx, error) + RollbackTx(tx *pg.Tx) error + CommitTx(tx *pg.Tx) error +} + +type TransactionUtilImpl struct { + dbConnection *pg.DB +} + +func NewTransactionUtilImpl(db *pg.DB) *TransactionUtilImpl { + return &TransactionUtilImpl{ + dbConnection: db, + } +} +func (impl *TransactionUtilImpl) RollbackTx(tx *pg.Tx) error { + return tx.Rollback() +} +func (impl *TransactionUtilImpl) CommitTx(tx *pg.Tx) error { + return tx.Commit() +} +func (impl *TransactionUtilImpl) StartTx() (*pg.Tx, error) { + return impl.dbConnection.Begin() +} diff --git a/kubewatch/vendor/github.com/devtron-labs/common-lib/utils/sql/connection.go b/kubewatch/vendor/github.com/devtron-labs/common-lib/utils/sql/connection.go new file mode 100644 index 000000000..fa6858e5d --- /dev/null +++ b/kubewatch/vendor/github.com/devtron-labs/common-lib/utils/sql/connection.go @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2020-2024. Devtron Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package sql + +import ( + "github.com/devtron-labs/common-lib/utils" + "github.com/devtron-labs/common-lib/utils/bean" + "go.uber.org/zap" + "reflect" + "time" + + "github.com/caarlos0/env" + "github.com/go-pg/pg" +) + +// CATEGORY=POSTGRES +type Config struct { + Addr string `env:"PG_ADDR" envDefault:"127.0.0.1" description:"address of postgres service" example:"postgresql-postgresql.devtroncd" deprecated:"false"` + Port string `env:"PG_PORT" envDefault:"5432" description:"port of postgresql service" example:"5432"` + User string `env:"PG_USER" envDefault:"" description:"user for postgres" example:"postgres"` + Password string `env:"PG_PASSWORD" envDefault:"" secretData:"-" description:"password for postgres, associated with PG_USER" example:"confidential ;)"` + Database string `env:"PG_DATABASE" envDefault:"orchestrator" description:"postgres database to be made connection with" example:"orchestrator, casbin, git_sensor, lens"` + CasbinDatabase string `env:"CASBIN_DATABASE" envDefault:"casbin""` + ApplicationName string `env:"APP" envDefault:"orchestrator" description:"Application name"` + ReadTimeout int64 `env:"PG_READ_TIMEOUT" envDefault:"30"` + WriteTimeout int64 `env:"PG_WRITE_TIMEOUT" envDefault:"30"` + bean.PgQueryMonitoringConfig +} + +func GetConfig() (*Config, error) { + cfg := &Config{} + err := env.Parse(cfg) + if err != nil { + return cfg, err + } + monitoringCfg, err := bean.GetPgQueryMonitoringConfig(cfg.ApplicationName) + if err != nil { + return cfg, err + } + cfg.PgQueryMonitoringConfig = monitoringCfg + return cfg, err +} + +func NewDbConnection(cfg *Config, logger *zap.SugaredLogger) (*pg.DB, error) { + options := pg.Options{ + Addr: cfg.Addr + ":" + cfg.Port, + User: cfg.User, + Password: cfg.Password, + Database: cfg.Database, + ApplicationName: cfg.ApplicationName, + ReadTimeout: time.Duration(cfg.ReadTimeout) * time.Second, + WriteTimeout: time.Duration(cfg.WriteTimeout) * time.Second, + } + dbConnection := pg.Connect(&options) + // check db connection + var test string + _, err := dbConnection.QueryOne(&test, `SELECT 1`) + + if err != nil { + logger.Errorw("error in connecting db ", "db", obfuscateSecretTags(cfg), "err", err) + return nil, err + } else { + logger.Infow("connected with db", "db", obfuscateSecretTags(cfg)) + } + + // -------------- + dbConnection.OnQueryProcessed(utils.GetPGPostQueryProcessor(cfg.PgQueryMonitoringConfig)) + return dbConnection, err +} + +func obfuscateSecretTags(cfg interface{}) interface{} { + + cfgDpl := reflect.New(reflect.ValueOf(cfg).Elem().Type()).Interface() + cfgDplElm := reflect.ValueOf(cfgDpl).Elem() + t := cfgDplElm.Type() + for i := 0; i < t.NumField(); i++ { + if _, ok := t.Field(i).Tag.Lookup("secretData"); ok { + cfgDplElm.Field(i).SetString("********") + } else { + cfgDplElm.Field(i).Set(reflect.ValueOf(cfg).Elem().Field(i)) + } + } + return cfgDpl +} + +/*type DbConnectionHolder struct { + connection *pg.DB +} + +func (holder *DbConnectionHolder) CloseConnection() error { + return holder.connection.Close() +}*/ diff --git a/kubewatch/vendor/github.com/devtron-labs/common-lib/utils/sql/wire_sql.go b/kubewatch/vendor/github.com/devtron-labs/common-lib/utils/sql/wire_sql.go new file mode 100644 index 000000000..32aee8f5b --- /dev/null +++ b/kubewatch/vendor/github.com/devtron-labs/common-lib/utils/sql/wire_sql.go @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2024. Devtron Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package sql + +import ( + "github.com/google/wire" +) + +var PgSqlWireSet = wire.NewSet( + GetConfig, + NewDbConnection, +) diff --git a/kubewatch/vendor/modules.txt b/kubewatch/vendor/modules.txt index 3bdaf3309..ca31a87a3 100644 --- a/kubewatch/vendor/modules.txt +++ b/kubewatch/vendor/modules.txt @@ -264,6 +264,7 @@ github.com/devtron-labs/common-lib/monitoring/statsViz github.com/devtron-labs/common-lib/pubsub-lib github.com/devtron-labs/common-lib/pubsub-lib/metrics github.com/devtron-labs/common-lib/pubsub-lib/model +github.com/devtron-labs/common-lib/securestore github.com/devtron-labs/common-lib/utils github.com/devtron-labs/common-lib/utils/bean github.com/devtron-labs/common-lib/utils/http @@ -274,6 +275,7 @@ github.com/devtron-labs/common-lib/utils/k8s/health github.com/devtron-labs/common-lib/utils/k8sObjectsUtil github.com/devtron-labs/common-lib/utils/remoteConnection/bean github.com/devtron-labs/common-lib/utils/runTime +github.com/devtron-labs/common-lib/utils/sql github.com/devtron-labs/common-lib/utils/yaml # github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f ## explicit From eeb0d42a1502ab075644582d9409601935338eb9 Mon Sep 17 00:00:00 2001 From: Ash-exp Date: Thu, 4 Dec 2025 15:56:59 +0530 Subject: [PATCH 07/10] fix: add encryption key setup for secure storage initialization --- kubewatch/main.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/kubewatch/main.go b/kubewatch/main.go index fdb48bfb5..d4f25cabe 100644 --- a/kubewatch/main.go +++ b/kubewatch/main.go @@ -17,6 +17,7 @@ package main import ( + "github.com/devtron-labs/common-lib/securestore" "log" "os" "os/signal" @@ -25,6 +26,10 @@ import ( ) func main() { + err := securestore.SetEncryptionKey() + if err != nil { + log.Println("error in setting encryption key", "err", err) + } app, err := InitializeApp() if err != nil { log.Panic(err) From f1e14227dde19885e031f6c168f89d4fd7e538c9 Mon Sep 17 00:00:00 2001 From: SATYAsasini Date: Tue, 9 Dec 2025 13:34:19 +0530 Subject: [PATCH 08/10] fix: propagate take ownership in helm upgrade option --- kubelink/pkg/helmClient/client.go | 1 + 1 file changed, 1 insertion(+) diff --git a/kubelink/pkg/helmClient/client.go b/kubelink/pkg/helmClient/client.go index c397992fd..a22259c84 100644 --- a/kubelink/pkg/helmClient/client.go +++ b/kubelink/pkg/helmClient/client.go @@ -359,6 +359,7 @@ func copyUpgradeOptions(chartSpec *ChartSpec, upgradeOptions *action.Upgrade) { upgradeOptions.CleanupOnFail = chartSpec.CleanupOnFail upgradeOptions.DryRun = chartSpec.DryRun upgradeOptions.SubNotes = chartSpec.SubNotes + upgradeOptions.TakeOwnership = chartSpec.TakeOwnership } // copyInstallOptions merges values of the provided chart to helm install options used by the client. From a2f0562a9b359316e5d9fe0a74a0b10693275780 Mon Sep 17 00:00:00 2001 From: Ash-exp Date: Wed, 17 Dec 2025 12:59:23 +0530 Subject: [PATCH 09/10] chore: updated dependency versions --- chart-sync/go.mod | 2 +- chart-sync/go.sum | 4 ++-- chart-sync/vendor/modules.txt | 4 ++-- ci-runner/go.mod | 2 +- ci-runner/go.sum | 4 ++-- ci-runner/vendor/modules.txt | 4 ++-- git-sensor/go.mod | 2 +- git-sensor/go.sum | 4 ++-- git-sensor/vendor/modules.txt | 4 ++-- image-scanner/go.mod | 2 +- image-scanner/go.sum | 4 ++-- image-scanner/vendor/modules.txt | 4 ++-- kubelink/go.mod | 2 +- kubelink/go.sum | 4 ++-- kubelink/vendor/modules.txt | 4 ++-- kubewatch/go.mod | 2 +- kubewatch/go.sum | 4 ++-- kubewatch/vendor/modules.txt | 4 ++-- lens/go.mod | 2 +- lens/go.sum | 4 ++-- lens/vendor/modules.txt | 4 ++-- 21 files changed, 35 insertions(+), 35 deletions(-) diff --git a/chart-sync/go.mod b/chart-sync/go.mod index d3cf6c7d1..0793007ad 100644 --- a/chart-sync/go.mod +++ b/chart-sync/go.mod @@ -4,7 +4,7 @@ go 1.24.0 toolchain go1.24.3 -replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 require ( github.com/caarlos0/env v3.5.0+incompatible diff --git a/chart-sync/go.sum b/chart-sync/go.sum index 22b81c209..8a4e2d511 100644 --- a/chart-sync/go.sum +++ b/chart-sync/go.sum @@ -43,8 +43,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab h1:TkIDIzNCc7MO7bFcXKQ4anBZHodBrYqG6W6XMBiYTIg= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab/go.mod h1:CqHnvltrng2O40hNGVl56qcAhv7tiXK3SKx47LKyE/A= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 h1:L1XupZ+tdjzcMjtzncAszzTeDZKUm7h9HThDIFYkTz4= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72/go.mod h1:CqHnvltrng2O40hNGVl56qcAhv7tiXK3SKx47LKyE/A= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/distribution/distribution/v3 v3.0.0 h1:q4R8wemdRQDClzoNNStftB2ZAfqOiN6UX90KJc4HjyM= diff --git a/chart-sync/vendor/modules.txt b/chart-sync/vendor/modules.txt index 791a1317c..f657b9fd0 100644 --- a/chart-sync/vendor/modules.txt +++ b/chart-sync/vendor/modules.txt @@ -95,7 +95,7 @@ github.com/containerd/platforms # github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc ## explicit github.com/davecgh/go-spew/spew -# github.com/devtron-labs/common-lib v0.19.1 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +# github.com/devtron-labs/common-lib v0.19.1 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 ## explicit; go 1.24.0 github.com/devtron-labs/common-lib/constants github.com/devtron-labs/common-lib/fetchAllEnv @@ -975,4 +975,4 @@ sigs.k8s.io/structured-merge-diff/v4/value sigs.k8s.io/yaml sigs.k8s.io/yaml/goyaml.v2 sigs.k8s.io/yaml/goyaml.v3 -# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 diff --git a/ci-runner/go.mod b/ci-runner/go.mod index 0604ad149..8048db3c0 100644 --- a/ci-runner/go.mod +++ b/ci-runner/go.mod @@ -4,7 +4,7 @@ go 1.24.0 toolchain go1.24.3 -replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 require ( github.com/Knetic/govaluate v3.0.0+incompatible diff --git a/ci-runner/go.sum b/ci-runner/go.sum index 9b43ad657..cbf89bc5e 100644 --- a/ci-runner/go.sum +++ b/ci-runner/go.sum @@ -114,8 +114,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab h1:TkIDIzNCc7MO7bFcXKQ4anBZHodBrYqG6W6XMBiYTIg= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab/go.mod h1:CqHnvltrng2O40hNGVl56qcAhv7tiXK3SKx47LKyE/A= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 h1:L1XupZ+tdjzcMjtzncAszzTeDZKUm7h9HThDIFYkTz4= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72/go.mod h1:CqHnvltrng2O40hNGVl56qcAhv7tiXK3SKx47LKyE/A= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= github.com/docker/cli v28.1.1+incompatible h1:eyUemzeI45DY7eDPuwUcmDyDj1pM98oD5MdSpiItp8k= diff --git a/ci-runner/vendor/modules.txt b/ci-runner/vendor/modules.txt index 9fe693da1..11a9d9188 100644 --- a/ci-runner/vendor/modules.txt +++ b/ci-runner/vendor/modules.txt @@ -298,7 +298,7 @@ github.com/cncf/xds/go/xds/type/v3 # github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc ## explicit github.com/davecgh/go-spew/spew -# github.com/devtron-labs/common-lib v0.19.1 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +# github.com/devtron-labs/common-lib v0.19.1 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 ## explicit; go 1.24.0 github.com/devtron-labs/common-lib/blob-storage github.com/devtron-labs/common-lib/constants @@ -1199,4 +1199,4 @@ sigs.k8s.io/structured-merge-diff/v4/value ## explicit; go 1.22 sigs.k8s.io/yaml sigs.k8s.io/yaml/goyaml.v2 -# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 diff --git a/git-sensor/go.mod b/git-sensor/go.mod index 35e70bc68..cf4f55ebd 100644 --- a/git-sensor/go.mod +++ b/git-sensor/go.mod @@ -4,7 +4,7 @@ go 1.24.0 toolchain go1.24.3 -replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 require ( github.com/caarlos0/env v3.5.0+incompatible diff --git a/git-sensor/go.sum b/git-sensor/go.sum index 4ec79a1b0..ca86277ce 100644 --- a/git-sensor/go.sum +++ b/git-sensor/go.sum @@ -26,8 +26,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab h1:TkIDIzNCc7MO7bFcXKQ4anBZHodBrYqG6W6XMBiYTIg= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab/go.mod h1:CqHnvltrng2O40hNGVl56qcAhv7tiXK3SKx47LKyE/A= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 h1:L1XupZ+tdjzcMjtzncAszzTeDZKUm7h9HThDIFYkTz4= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72/go.mod h1:CqHnvltrng2O40hNGVl56qcAhv7tiXK3SKx47LKyE/A= github.com/devtron-labs/protos v0.0.3-0.20250323220609-ecf8a0f7305e h1:U6UdYbW8a7xn5IzFPd8cywjVVPfutGJCudjePAfL/Hs= github.com/devtron-labs/protos v0.0.3-0.20250323220609-ecf8a0f7305e/go.mod h1:1TqULGlTey+VNhAu/ag7NJuUvByJemkqodsc9L5PHJk= github.com/docker/cli v28.1.1+incompatible h1:eyUemzeI45DY7eDPuwUcmDyDj1pM98oD5MdSpiItp8k= diff --git a/git-sensor/vendor/modules.txt b/git-sensor/vendor/modules.txt index 01ffbf2c0..c7b6ccc42 100644 --- a/git-sensor/vendor/modules.txt +++ b/git-sensor/vendor/modules.txt @@ -66,7 +66,7 @@ github.com/cyphar/filepath-securejoin # github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc ## explicit github.com/davecgh/go-spew/spew -# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 ## explicit; go 1.24.0 github.com/devtron-labs/common-lib/constants github.com/devtron-labs/common-lib/fetchAllEnv @@ -469,4 +469,4 @@ gopkg.in/yaml.v3 # mellium.im/sasl v0.3.2 ## explicit; go 1.20 mellium.im/sasl -# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 diff --git a/image-scanner/go.mod b/image-scanner/go.mod index 3efddfa73..1a209958b 100644 --- a/image-scanner/go.mod +++ b/image-scanner/go.mod @@ -69,4 +69,4 @@ require ( mellium.im/sasl v0.3.2 // indirect ) -replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 diff --git a/image-scanner/go.sum b/image-scanner/go.sum index 1bbe796dd..6c38f7479 100644 --- a/image-scanner/go.sum +++ b/image-scanner/go.sum @@ -279,8 +279,8 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab h1:TkIDIzNCc7MO7bFcXKQ4anBZHodBrYqG6W6XMBiYTIg= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab/go.mod h1:CqHnvltrng2O40hNGVl56qcAhv7tiXK3SKx47LKyE/A= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 h1:L1XupZ+tdjzcMjtzncAszzTeDZKUm7h9HThDIFYkTz4= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72/go.mod h1:CqHnvltrng2O40hNGVl56qcAhv7tiXK3SKx47LKyE/A= github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= diff --git a/image-scanner/vendor/modules.txt b/image-scanner/vendor/modules.txt index 98effa3c5..d53c5c4c3 100644 --- a/image-scanner/vendor/modules.txt +++ b/image-scanner/vendor/modules.txt @@ -74,7 +74,7 @@ github.com/cespare/xxhash/v2 github.com/coreos/clair/api/v3/clairpb github.com/coreos/clair/database github.com/coreos/clair/ext/versionfmt -# github.com/devtron-labs/common-lib v0.19.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +# github.com/devtron-labs/common-lib v0.19.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 ## explicit; go 1.24.0 github.com/devtron-labs/common-lib/async github.com/devtron-labs/common-lib/constants @@ -457,4 +457,4 @@ google.golang.org/protobuf/types/known/wrapperspb # mellium.im/sasl v0.3.2 ## explicit; go 1.20 mellium.im/sasl -# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 diff --git a/kubelink/go.mod b/kubelink/go.mod index 685204bb1..609e6f685 100644 --- a/kubelink/go.mod +++ b/kubelink/go.mod @@ -168,4 +168,4 @@ require ( sigs.k8s.io/structured-merge-diff/v4 v4.7.0 // indirect ) -replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +replace github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 diff --git a/kubelink/go.sum b/kubelink/go.sum index da7321388..a1024b0c4 100644 --- a/kubelink/go.sum +++ b/kubelink/go.sum @@ -65,8 +65,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab h1:TkIDIzNCc7MO7bFcXKQ4anBZHodBrYqG6W6XMBiYTIg= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab/go.mod h1:CqHnvltrng2O40hNGVl56qcAhv7tiXK3SKx47LKyE/A= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 h1:L1XupZ+tdjzcMjtzncAszzTeDZKUm7h9HThDIFYkTz4= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72/go.mod h1:CqHnvltrng2O40hNGVl56qcAhv7tiXK3SKx47LKyE/A= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/distribution/distribution/v3 v3.0.0 h1:q4R8wemdRQDClzoNNStftB2ZAfqOiN6UX90KJc4HjyM= diff --git a/kubelink/vendor/modules.txt b/kubelink/vendor/modules.txt index d52169ef0..4d5adada4 100644 --- a/kubelink/vendor/modules.txt +++ b/kubelink/vendor/modules.txt @@ -125,7 +125,7 @@ github.com/cyphar/filepath-securejoin # github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc ## explicit github.com/davecgh/go-spew/spew -# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 ## explicit; go 1.24.0 github.com/devtron-labs/common-lib/async github.com/devtron-labs/common-lib/constants @@ -1403,4 +1403,4 @@ sigs.k8s.io/structured-merge-diff/v4/value sigs.k8s.io/yaml sigs.k8s.io/yaml/goyaml.v2 sigs.k8s.io/yaml/goyaml.v3 -# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 diff --git a/kubewatch/go.mod b/kubewatch/go.mod index 143b9c4b0..fc9801979 100644 --- a/kubewatch/go.mod +++ b/kubewatch/go.mod @@ -241,5 +241,5 @@ require ( replace ( github.com/cyphar/filepath-securejoin v0.4.1 => github.com/cyphar/filepath-securejoin v0.3.6 // indirect - github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab + github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 ) diff --git a/kubewatch/go.sum b/kubewatch/go.sum index 9506f0398..83360e45a 100644 --- a/kubewatch/go.sum +++ b/kubewatch/go.sum @@ -129,8 +129,8 @@ github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/denisenkom/go-mssqldb v0.12.3/go.mod h1:k0mtMFOnU+AihqFxPMiF05rtiDrorD1Vrm1KEz5hxDo= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab h1:TkIDIzNCc7MO7bFcXKQ4anBZHodBrYqG6W6XMBiYTIg= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab/go.mod h1:CqHnvltrng2O40hNGVl56qcAhv7tiXK3SKx47LKyE/A= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 h1:L1XupZ+tdjzcMjtzncAszzTeDZKUm7h9HThDIFYkTz4= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72/go.mod h1:CqHnvltrng2O40hNGVl56qcAhv7tiXK3SKx47LKyE/A= github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= diff --git a/kubewatch/vendor/modules.txt b/kubewatch/vendor/modules.txt index 50e6b2acc..983311452 100644 --- a/kubewatch/vendor/modules.txt +++ b/kubewatch/vendor/modules.txt @@ -251,7 +251,7 @@ github.com/cyphar/filepath-securejoin # github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc ## explicit github.com/davecgh/go-spew/spew -# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +# github.com/devtron-labs/common-lib v0.0.0 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 ## explicit; go 1.24.0 github.com/devtron-labs/common-lib/async github.com/devtron-labs/common-lib/constants @@ -2002,4 +2002,4 @@ sigs.k8s.io/structured-merge-diff/v4/value sigs.k8s.io/yaml sigs.k8s.io/yaml/goyaml.v2 sigs.k8s.io/yaml/goyaml.v3 -# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 diff --git a/lens/go.mod b/lens/go.mod index e3b01ecb1..6ae1d36d9 100644 --- a/lens/go.mod +++ b/lens/go.mod @@ -60,6 +60,6 @@ require ( ) replace ( - github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab + github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.61.0 => go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1 ) diff --git a/lens/go.sum b/lens/go.sum index dc5029d1a..cf34d1945 100644 --- a/lens/go.sum +++ b/lens/go.sum @@ -17,8 +17,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab h1:TkIDIzNCc7MO7bFcXKQ4anBZHodBrYqG6W6XMBiYTIg= -github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab/go.mod h1:CqHnvltrng2O40hNGVl56qcAhv7tiXK3SKx47LKyE/A= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 h1:L1XupZ+tdjzcMjtzncAszzTeDZKUm7h9HThDIFYkTz4= +github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72/go.mod h1:CqHnvltrng2O40hNGVl56qcAhv7tiXK3SKx47LKyE/A= github.com/devtron-labs/protos v0.0.3-0.20240912111807-605886d90b8d h1:IV6FWU6eWSfKq67Fs2DBx3LjkX/wtjMj9QB3ufZgga4= github.com/devtron-labs/protos v0.0.3-0.20240912111807-605886d90b8d/go.mod h1:1TqULGlTey+VNhAu/ag7NJuUvByJemkqodsc9L5PHJk= github.com/docker/cli v28.1.1+incompatible h1:eyUemzeI45DY7eDPuwUcmDyDj1pM98oD5MdSpiItp8k= diff --git a/lens/vendor/modules.txt b/lens/vendor/modules.txt index dab6a2adf..8d433a1ee 100644 --- a/lens/vendor/modules.txt +++ b/lens/vendor/modules.txt @@ -7,7 +7,7 @@ github.com/caarlos0/env # github.com/cespare/xxhash/v2 v2.3.0 ## explicit; go 1.11 github.com/cespare/xxhash/v2 -# github.com/devtron-labs/common-lib v0.19.1 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +# github.com/devtron-labs/common-lib v0.19.1 => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 ## explicit; go 1.24.0 github.com/devtron-labs/common-lib/constants github.com/devtron-labs/common-lib/fetchAllEnv @@ -304,4 +304,4 @@ google.golang.org/protobuf/types/known/timestamppb # mellium.im/sasl v0.3.2 ## explicit; go 1.20 mellium.im/sasl -# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251208103603-781b3db37eab +# github.com/devtron-labs/common-lib => github.com/devtron-labs/devtron-services/common-lib v0.0.0-20251217072256-6c8429c6cc72 From 25119077c33edfdd973c82762e4dc15163593b50 Mon Sep 17 00:00:00 2001 From: Shivam-nagar23 Date: Thu, 18 Dec 2025 16:43:46 +0530 Subject: [PATCH 10/10] env default changed to 10 : --- common-lib/env/licenseMangerEnv.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common-lib/env/licenseMangerEnv.go b/common-lib/env/licenseMangerEnv.go index a2e19c5be..3b821032d 100644 --- a/common-lib/env/licenseMangerEnv.go +++ b/common-lib/env/licenseMangerEnv.go @@ -6,7 +6,7 @@ import ( ) type ReminderThresholdConfig struct { - ReminderThresholdForFreeTrial int `env:"REMINDER_THRESHOLD_FOR_FREE_TRIAL" envDefault:"3" description:"this is used to set ( to be remind in time) for free trial"` + ReminderThresholdForFreeTrial int `env:"REMINDER_THRESHOLD_FOR_FREE_TRIAL" envDefault:"10" description:"this is used to set ( to be remind in time) for free trial"` ReminderThresholdForLicense int `env:"REMINDER_THRESHOLD_FOR_LICENSE" envDefault:"15" description:"this is used to set ( to be remind in time) for license"` }