diff --git a/api/core/core.proto b/api/core/core.proto index c69a90f195..75f9e58740 100644 --- a/api/core/core.proto +++ b/api/core/core.proto @@ -64,6 +64,30 @@ service Core { }; } + /* + * ListRuntimeObjects lists Weave GitOps runtime components. + * Weave GitOps runtime is composed of Flux runtime but also other components + * in the ecosystem like TF-controller or Policy Agent. + */ + rpc ListRuntimeObjects(ListRuntimeObjectsRequest) + returns (ListRuntimeObjectsResponse) { + option (google.api.http) = { + get: "/v1/runtime_objects" + }; + } + + /* + * ListRuntimeCrds lists Weave GitOps runtime components CRDs. + * Weave GitOps runtime is composed of Flux runtime but also other components + * in the ecosystem like TF-controller or Policy Agent. + */ + rpc ListRuntimeCrds(ListRuntimeCrdsRequest) + returns (ListRuntimeCrdsResponse) { + option (google.api.http) = { + get: "/v1/runtime_crds" + }; + } + /* * GetReconciledObjects returns a list of objects that were created * as a result of reconciling a Flux automation. @@ -318,6 +342,16 @@ message ListFluxRuntimeObjectsResponse { repeated ListError errors = 2; } +message ListRuntimeObjectsRequest { + string namespace = 1; + string clusterName = 2; +} + +message ListRuntimeObjectsResponse { + repeated Deployment deployments = 1; + repeated ListError errors = 2; +} + message ListFluxCrdsRequest { string clusterName = 1; } @@ -327,6 +361,15 @@ message ListFluxCrdsResponse { repeated ListError errors = 2; } +message ListRuntimeCrdsRequest { + string clusterName = 1; +} + +message ListRuntimeCrdsResponse { + repeated Crd crds = 1; + repeated ListError errors = 2; +} + message GetObjectRequest { string name = 1; string namespace = 2; diff --git a/api/core/core.swagger.json b/api/core/core.swagger.json index 671a957b47..c36652853d 100644 --- a/api/core/core.swagger.json +++ b/api/core/core.swagger.json @@ -602,6 +602,74 @@ ] } }, + "/v1/runtime_crds": { + "get": { + "summary": "ListRuntimeCrds lists Weave GitOps runtime components CRDs.\nWeave GitOps runtime is composed of Flux runtime but also other components\nin the ecosystem like TF-controller or Policy Agent.", + "operationId": "Core_ListRuntimeCrds", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1ListRuntimeCrdsResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "clusterName", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "Core" + ] + } + }, + "/v1/runtime_objects": { + "get": { + "summary": "ListRuntimeObjects lists Weave GitOps runtime components.\nWeave GitOps runtime is composed of Flux runtime but also other components\nin the ecosystem like TF-controller or Policy Agent.", + "operationId": "Core_ListRuntimeObjects", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1ListRuntimeObjectsResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "namespace", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "clusterName", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "Core" + ] + } + }, "/v1/session_logs": { "post": { "summary": "GetSessionLogs returns the logs for a given session", @@ -1319,6 +1387,40 @@ } } }, + "v1ListRuntimeCrdsResponse": { + "type": "object", + "properties": { + "crds": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Crd" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/v1ListError" + } + } + } + }, + "v1ListRuntimeObjectsResponse": { + "type": "object", + "properties": { + "deployments": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Deployment" + } + }, + "errors": { + "type": "array", + "items": { + "$ref": "#/definitions/v1ListError" + } + } + } + }, "v1LogEntry": { "type": "object", "properties": { diff --git a/charts/gitops-server/values.yaml b/charts/gitops-server/values.yaml index 8e27d5c987..41570debdc 100644 --- a/charts/gitops-server/values.yaml +++ b/charts/gitops-server/values.yaml @@ -24,6 +24,11 @@ envVars: value: "true" - name: WEAVE_GITOPS_FEATURE_CLUSTER value: "false" + # -- Enable this feature flag if you want to expand Flux Runtime UI with other Weave GitOps components like Policy Agent or TF-Controller. + # Ensure that Weave GitOps Deployment and CRDs have the label 'app.kubernetes.io/part-of=weave-gitops'. See https://docs.gitops.weave.works/docs/open-source/getting-started/install-OSS for more info. + - name: WEAVE_GITOPS_FEATURE_GITOPS_RUNTIME + value: "false" + # -- Annotations to add to the deployment annotations: {} # Should the 'oidc-auth' secret be created. For a detailed diff --git a/core/server/fluxruntime.go b/core/server/fluxruntime.go index de0a15a14d..a631884b35 100644 --- a/core/server/fluxruntime.go +++ b/core/server/fluxruntime.go @@ -28,7 +28,9 @@ import ( ) const ( - FluxNamespacePartOf = "flux" + Flux = "flux" + WeaveGitops = "weave-gitops" + GitopsRuntimeFeatureFlag = "WEAVE_GITOPS_FEATURE_GITOPS_RUNTIME" ) var ( @@ -45,6 +47,14 @@ var ( DefaultFluxNamespace = lookupEnv("WEAVE_GITOPS_FALLBACK_NAMESPACE", "flux-system") ) +var FluxRuntimeLabels = []string{ + Flux, +} + +var WeaveGitopsRuntimeLabels = []string{ + Flux, WeaveGitops, +} + func lookupEnv(envVar, fallback string) string { if val, ok := os.LookupEnv(envVar); ok { return val @@ -56,6 +66,20 @@ func lookupEnv(envVar, fallback string) string { func (cs *coreServer) ListFluxRuntimeObjects(ctx context.Context, msg *pb.ListFluxRuntimeObjectsRequest) (*pb.ListFluxRuntimeObjectsResponse, error) { respErrors := []*pb.ListError{} + respErrors, results := listRuntimeObjectsByLabels(ctx, cs, respErrors, FluxRuntimeLabels) + + return &pb.ListFluxRuntimeObjectsResponse{Deployments: results, Errors: respErrors}, nil +} + +func (cs *coreServer) ListRuntimeObjects(ctx context.Context, msg *pb.ListRuntimeObjectsRequest) (*pb.ListRuntimeObjectsResponse, error) { + respErrors := []*pb.ListError{} + + respErrors, results := listRuntimeObjectsByLabels(ctx, cs, respErrors, WeaveGitopsRuntimeLabels) + + return &pb.ListRuntimeObjectsResponse{Deployments: results, Errors: respErrors}, nil +} + +func listRuntimeObjectsByLabels(ctx context.Context, cs *coreServer, respErrors []*pb.ListError, labels []string) ([]*pb.ListError, []*pb.Deployment) { clustersClient, err := cs.clustersManager.GetImpersonatedClient(ctx, auth.Principal(ctx)) if err != nil { if merr, ok := err.(*multierror.Error); ok { @@ -69,60 +93,79 @@ func (cs *coreServer) ListFluxRuntimeObjects(ctx context.Context, msg *pb.ListFl var results []*pb.Deployment - for clusterName, nss := range cs.clustersManager.GetClustersNamespaces() { - fluxNamepsaces := filterFluxNamespace(nss) - if len(fluxNamepsaces) == 0 { - respErrors = append(respErrors, &pb.ListError{ClusterName: clusterName, Namespace: "", Message: ErrFluxNamespaceNotFound.Error()}) - continue - } - - opts := client.MatchingLabels{ - coretypes.PartOfLabel: FluxNamespacePartOf, - } - - list := &appsv1.DeploymentList{} - - for _, fluxNs := range fluxNamepsaces { - if err := clustersClient.List(ctx, clusterName, list, opts, client.InNamespace(fluxNs.Name)); err != nil { - respErrors = append(respErrors, &pb.ListError{ClusterName: clusterName, Namespace: fluxNs.Name, Message: fmt.Sprintf("%s, %s", ErrListingDeployments.Error(), err)}) + for _, runtimeLabel := range labels { + for clusterName, nss := range cs.clustersManager.GetClustersNamespaces() { + fluxNamespaces := filterFluxNamespace(nss) + if len(fluxNamespaces) == 0 { + respErrors = append(respErrors, &pb.ListError{ClusterName: clusterName, Namespace: "", Message: ErrFluxNamespaceNotFound.Error()}) continue } - for _, d := range list.Items { - r := &pb.Deployment{ - Name: d.Name, - Namespace: d.Namespace, - Conditions: []*pb.Condition{}, - ClusterName: clusterName, - Uid: string(d.GetUID()), - Labels: d.Labels, - } + opts := client.MatchingLabels{ + coretypes.PartOfLabel: runtimeLabel, + } - for _, cond := range d.Status.Conditions { - r.Conditions = append(r.Conditions, &pb.Condition{ - Message: cond.Message, - Reason: cond.Reason, - Status: string(cond.Status), - Type: string(cond.Type), - }) - } + deploymentList := &appsv1.DeploymentList{} - for _, img := range d.Spec.Template.Spec.Containers { - r.Images = append(r.Images, img.Image) + for _, fluxNs := range fluxNamespaces { + if err := clustersClient.List(ctx, clusterName, deploymentList, opts, client.InNamespace(fluxNs.Name)); err != nil { + respErrors = append(respErrors, &pb.ListError{ClusterName: clusterName, Namespace: fluxNs.Name, Message: fmt.Sprintf("%s, %s", ErrListingDeployments.Error(), err)}) + continue } - results = append(results, r) + for _, d := range deploymentList.Items { + r := &pb.Deployment{ + Name: d.Name, + Namespace: d.Namespace, + Conditions: []*pb.Condition{}, + ClusterName: clusterName, + Uid: string(d.GetUID()), + Labels: d.Labels, + } + + for _, cond := range d.Status.Conditions { + r.Conditions = append(r.Conditions, &pb.Condition{ + Message: cond.Message, + Reason: cond.Reason, + Status: string(cond.Status), + Type: string(cond.Type), + }) + } + + for _, img := range d.Spec.Template.Spec.Containers { + r.Images = append(r.Images, img.Image) + } + + results = append(results, r) + } } } } - - return &pb.ListFluxRuntimeObjectsResponse{Deployments: results, Errors: respErrors}, nil + return respErrors, results } func (cs *coreServer) ListFluxCrds(ctx context.Context, msg *pb.ListFluxCrdsRequest) (*pb.ListFluxCrdsResponse, error) { + respErrors, results, err2 := listRuntimeCrdsByLabel(ctx, cs, FluxRuntimeLabels) + if err2 != nil { + return nil, err2 + } + + return &pb.ListFluxCrdsResponse{Crds: results, Errors: respErrors}, nil +} + +func (cs *coreServer) ListRuntimeCrds(ctx context.Context, msg *pb.ListRuntimeCrdsRequest) (*pb.ListRuntimeCrdsResponse, error) { + respErrors, results, err2 := listRuntimeCrdsByLabel(ctx, cs, WeaveGitopsRuntimeLabels) + if err2 != nil { + return nil, err2 + } + + return &pb.ListRuntimeCrdsResponse{Crds: results, Errors: respErrors}, nil +} + +func listRuntimeCrdsByLabel(ctx context.Context, cs *coreServer, labels []string) ([]*pb.ListError, []*pb.Crd, error) { clustersClient, err := cs.clustersManager.GetImpersonatedClient(ctx, auth.Principal(ctx)) if err != nil { - return nil, fmt.Errorf("error getting impersonating client: %w", err) + return nil, nil, fmt.Errorf("error getting impersonating client: %w", err) } clist := clustersmngr.NewClusteredList(func() client.ObjectList { @@ -131,22 +174,23 @@ func (cs *coreServer) ListFluxCrds(ctx context.Context, msg *pb.ListFluxCrdsRequ respErrors := []*pb.ListError{} - opts := client.MatchingLabels{ - coretypes.PartOfLabel: FluxNamespacePartOf, - } - - if err := clustersClient.ClusteredList(ctx, clist, false, opts); err != nil { - var errs clustersmngr.ClusteredListError - - if !errors.As(err, &errs) { - return nil, fmt.Errorf("CRDs clustered list: %w", errs) + for _, runtimeLabel := range labels { + opts := client.MatchingLabels{ + coretypes.PartOfLabel: runtimeLabel, } + if err := clustersClient.ClusteredList(ctx, clist, false, opts); err != nil { + var errs clustersmngr.ClusteredListError + + if !errors.As(err, &errs) { + return nil, nil, fmt.Errorf("CRDs clustered list: %w", errs) + } - for _, e := range errs.Errors { - respErrors = append(respErrors, &pb.ListError{ - ClusterName: e.Cluster, - Message: e.Err.Error(), - }) + for _, e := range errs.Errors { + respErrors = append(respErrors, &pb.ListError{ + ClusterName: e.Cluster, + Message: e.Err.Error(), + }) + } } } @@ -185,15 +229,14 @@ func (cs *coreServer) ListFluxCrds(ctx context.Context, msg *pb.ListFluxCrdsRequ } } } - - return &pb.ListFluxCrdsResponse{Crds: results, Errors: respErrors}, nil + return respErrors, results, nil } func filterFluxNamespace(nss []v1.Namespace) []v1.Namespace { fluxSystem := []v1.Namespace{} for _, ns := range nss { - if val, ok := ns.Labels[coretypes.PartOfLabel]; ok && val == FluxNamespacePartOf { + if val, ok := ns.Labels[coretypes.PartOfLabel]; ok && val == Flux { fluxSystem = append(fluxSystem, ns) continue } diff --git a/core/server/fluxruntime_test.go b/core/server/fluxruntime_test.go index 36c3e64dc1..14f7ced6d6 100644 --- a/core/server/fluxruntime_test.go +++ b/core/server/fluxruntime_test.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "os" "testing" kustomizev1 "github.com/fluxcd/kustomize-controller/api/v1" @@ -12,6 +13,7 @@ import ( "github.com/weaveworks/weave-gitops/core/server" coretypes "github.com/weaveworks/weave-gitops/core/server/types" pb "github.com/weaveworks/weave-gitops/pkg/api/core" + "github.com/weaveworks/weave-gitops/pkg/featureflags" "github.com/weaveworks/weave-gitops/pkg/kube" "google.golang.org/grpc/metadata" appsv1 "k8s.io/api/apps/v1" @@ -352,9 +354,9 @@ func TestListFluxRuntimeObjects(t *testing.T) { "flux namespace label, with controllers", []runtime.Object{ &corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "flux-ns", Labels: map[string]string{ - coretypes.PartOfLabel: server.FluxNamespacePartOf, + coretypes.PartOfLabel: server.Flux, }}}, - newDeployment("random-flux-controller", "flux-ns", map[string]string{coretypes.PartOfLabel: server.FluxNamespacePartOf}), + newDeployment("random-flux-controller", "flux-ns", map[string]string{coretypes.PartOfLabel: server.Flux}), newDeployment("other-controller-in-flux-ns", "flux-ns", map[string]string{}), }, func(res *pb.ListFluxRuntimeObjectsResponse) { @@ -366,7 +368,7 @@ func TestListFluxRuntimeObjects(t *testing.T) { "use flux-system namespace when no namespace label available", []runtime.Object{ &corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "flux-system"}}, - newDeployment("random-flux-controller", "flux-system", map[string]string{coretypes.PartOfLabel: server.FluxNamespacePartOf}), + newDeployment("random-flux-controller", "flux-system", map[string]string{coretypes.PartOfLabel: server.Flux}), newDeployment("other-controller-in-flux-ns", "flux-system", map[string]string{}), }, func(res *pb.ListFluxRuntimeObjectsResponse) { @@ -391,6 +393,79 @@ func TestListFluxRuntimeObjects(t *testing.T) { } } +func TestListRuntimeObjects(t *testing.T) { + g := NewGomegaWithT(t) + + ctx := context.Background() + + tests := []struct { + description string + objects []runtime.Object + assertions func(*pb.ListRuntimeObjectsResponse) + }{ + { + "no runtime", + []runtime.Object{ + &corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "ns1"}}, + }, + func(res *pb.ListRuntimeObjectsResponse) { + g.Expect(res.Errors[0].Message).To(Equal(server.ErrFluxNamespaceNotFound.Error())) + g.Expect(res.Errors[0].Namespace).To(BeEmpty()) + g.Expect(res.Errors[0].ClusterName).To(Equal(cluster.DefaultCluster)) + }, + }, + { + "return weave gitops", + []runtime.Object{ + &corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "flux-ns", Labels: map[string]string{ + coretypes.PartOfLabel: server.Flux, + }}}, + newDeployment("kustomize-controller", "flux-ns", map[string]string{coretypes.PartOfLabel: server.Flux}), + newDeployment("policy-agent", "flux-ns", map[string]string{coretypes.PartOfLabel: server.WeaveGitops}), + newDeployment("other-controller-in-flux-ns", "flux-ns", map[string]string{}), + }, + func(res *pb.ListRuntimeObjectsResponse) { + g.Expect(res.Deployments).To(HaveLen(2), "expected deployments in the flux namespace to be returned") + g.Expect(res.Deployments[0].Name).To(Equal("kustomize-controller")) + g.Expect(res.Deployments[1].Name).To(Equal("policy-agent")) + }, + }, + { + "use flux-system namespace when no namespace label available", + []runtime.Object{ + &corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "flux-system"}}, + newDeployment("kustomize-controller", "flux-system", map[string]string{coretypes.PartOfLabel: server.Flux}), + newDeployment("policy-agent", "flux-system", map[string]string{coretypes.PartOfLabel: server.WeaveGitops}), + newDeployment("other-controller-in-flux-ns", "flux-system", map[string]string{}), + }, + func(res *pb.ListRuntimeObjectsResponse) { + g.Expect(res.Deployments).To(HaveLen(2), "expected deployments in the default flux namespace to be returned") + g.Expect(res.Deployments[0].Name).To(Equal("kustomize-controller")) + g.Expect(res.Deployments[1].Name).To(Equal("policy-agent")) + }, + }, + } + for _, tt := range tests { + t.Run(tt.description, func(t *testing.T) { + _ = os.Setenv(server.GitopsRuntimeFeatureFlag, "true") + defer func() { + _ = os.Unsetenv(server.GitopsRuntimeFeatureFlag) + }() + featureflags.SetFromEnv(os.Environ()) + scheme, err := kube.CreateScheme() + g.Expect(err).To(BeNil()) + client := fake.NewClientBuilder().WithScheme(scheme).WithRuntimeObjects(tt.objects...).Build() + cfg := makeServerConfig(client, t, "") + c := makeServer(cfg, t) + + res, err := c.ListRuntimeObjects(ctx, &pb.ListRuntimeObjectsRequest{}) + + g.Expect(err).NotTo(HaveOccurred()) + tt.assertions(res) + }) + } +} + func newDeployment(name, ns string, labels map[string]string) *appsv1.Deployment { return &appsv1.Deployment{ ObjectMeta: metav1.ObjectMeta{ @@ -463,3 +538,54 @@ func TestListFluxCrds(t *testing.T) { g.Expect(first.ClusterName).To(Equal(cluster.DefaultCluster)) g.Expect(res.Crds[1].Version).To(Equal("1")) } + +func TestListRuntimeCrds(t *testing.T) { + g := NewGomegaWithT(t) + ctx := context.Background() + + tests := []struct { + description string + objects []runtime.Object + assertions func(*pb.ListRuntimeCrdsResponse) + }{ + { + "return weave gitops runtime crds", + []runtime.Object{ + &apiextensions.CustomResourceDefinition{ObjectMeta: metav1.ObjectMeta{ + Name: "helmrelease", + Labels: map[string]string{coretypes.PartOfLabel: server.Flux}, + }, Spec: apiextensions.CustomResourceDefinitionSpec{ + Group: "group", + Names: apiextensions.CustomResourceDefinitionNames{Plural: "helmreleases", Kind: "kind"}, + Versions: []apiextensions.CustomResourceDefinitionVersion{}, + }}, + &apiextensions.CustomResourceDefinition{ObjectMeta: metav1.ObjectMeta{ + Name: "policy", + Labels: map[string]string{coretypes.PartOfLabel: server.WeaveGitops}, + }, Spec: apiextensions.CustomResourceDefinitionSpec{ + Group: "group", + Names: apiextensions.CustomResourceDefinitionNames{Plural: "policies", Kind: "kind"}, + Versions: []apiextensions.CustomResourceDefinitionVersion{}}}, + }, + func(res *pb.ListRuntimeCrdsResponse) { + g.Expect(res.Crds).To(HaveLen(2)) + g.Expect(res.Crds[0].GetName().Plural).To(Equal("helmreleases")) + g.Expect(res.Crds[1].GetName().Plural).To(Equal("policies")) + }, + }, + } + for _, tt := range tests { + t.Run(tt.description, func(t *testing.T) { + scheme, err := kube.CreateScheme() + g.Expect(err).To(BeNil()) + client := fake.NewClientBuilder().WithScheme(scheme).WithRuntimeObjects(tt.objects...).Build() + cfg := makeServerConfig(client, t, "") + c := makeServer(cfg, t) + + res, err := c.ListRuntimeCrds(ctx, &pb.ListRuntimeCrdsRequest{}) + g.Expect(err).NotTo(HaveOccurred()) + + tt.assertions(res) + }) + } +} diff --git a/core/server/session_logs.go b/core/server/session_logs.go index 21f36566c0..5a807db768 100644 --- a/core/server/session_logs.go +++ b/core/server/session_logs.go @@ -4,7 +4,6 @@ import ( "context" "encoding/json" "fmt" - sourcev1b2 "github.com/fluxcd/source-controller/api/v1beta2" "io" "regexp" "sort" @@ -12,6 +11,8 @@ import ( "strings" "time" + sourcev1b2 "github.com/fluxcd/source-controller/api/v1beta2" + "github.com/weaveworks/weave-gitops/pkg/compositehash" "github.com/minio/minio-go/v7" @@ -63,7 +64,7 @@ type bucketConnectionInfo struct { func (cs *coreServer) getFluxNamespace(ctx context.Context, k8sClient client.Client) (string, error) { namespaceList := corev1.NamespaceList{} opts := client.MatchingLabels{ - coretypes.PartOfLabel: FluxNamespacePartOf, + coretypes.PartOfLabel: Flux, } var ns *corev1.Namespace diff --git a/pkg/api/core/core.pb.go b/pkg/api/core/core.pb.go index 505a4de55a..28b19be586 100644 --- a/pkg/api/core/core.pb.go +++ b/pkg/api/core/core.pb.go @@ -1005,6 +1005,116 @@ func (x *ListFluxRuntimeObjectsResponse) GetErrors() []*ListError { return nil } +type ListRuntimeObjectsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` + ClusterName string `protobuf:"bytes,2,opt,name=clusterName,proto3" json:"clusterName,omitempty"` +} + +func (x *ListRuntimeObjectsRequest) Reset() { + *x = ListRuntimeObjectsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_core_core_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRuntimeObjectsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRuntimeObjectsRequest) ProtoMessage() {} + +func (x *ListRuntimeObjectsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_core_core_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRuntimeObjectsRequest.ProtoReflect.Descriptor instead. +func (*ListRuntimeObjectsRequest) Descriptor() ([]byte, []int) { + return file_api_core_core_proto_rawDescGZIP(), []int{14} +} + +func (x *ListRuntimeObjectsRequest) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +func (x *ListRuntimeObjectsRequest) GetClusterName() string { + if x != nil { + return x.ClusterName + } + return "" +} + +type ListRuntimeObjectsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Deployments []*Deployment `protobuf:"bytes,1,rep,name=deployments,proto3" json:"deployments,omitempty"` + Errors []*ListError `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"` +} + +func (x *ListRuntimeObjectsResponse) Reset() { + *x = ListRuntimeObjectsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_core_core_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRuntimeObjectsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRuntimeObjectsResponse) ProtoMessage() {} + +func (x *ListRuntimeObjectsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_core_core_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRuntimeObjectsResponse.ProtoReflect.Descriptor instead. +func (*ListRuntimeObjectsResponse) Descriptor() ([]byte, []int) { + return file_api_core_core_proto_rawDescGZIP(), []int{15} +} + +func (x *ListRuntimeObjectsResponse) GetDeployments() []*Deployment { + if x != nil { + return x.Deployments + } + return nil +} + +func (x *ListRuntimeObjectsResponse) GetErrors() []*ListError { + if x != nil { + return x.Errors + } + return nil +} + type ListFluxCrdsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1016,7 +1126,7 @@ type ListFluxCrdsRequest struct { func (x *ListFluxCrdsRequest) Reset() { *x = ListFluxCrdsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[14] + mi := &file_api_core_core_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1029,7 +1139,7 @@ func (x *ListFluxCrdsRequest) String() string { func (*ListFluxCrdsRequest) ProtoMessage() {} func (x *ListFluxCrdsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[14] + mi := &file_api_core_core_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1042,7 +1152,7 @@ func (x *ListFluxCrdsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListFluxCrdsRequest.ProtoReflect.Descriptor instead. func (*ListFluxCrdsRequest) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{14} + return file_api_core_core_proto_rawDescGZIP(), []int{16} } func (x *ListFluxCrdsRequest) GetClusterName() string { @@ -1064,7 +1174,7 @@ type ListFluxCrdsResponse struct { func (x *ListFluxCrdsResponse) Reset() { *x = ListFluxCrdsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[15] + mi := &file_api_core_core_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1077,7 +1187,7 @@ func (x *ListFluxCrdsResponse) String() string { func (*ListFluxCrdsResponse) ProtoMessage() {} func (x *ListFluxCrdsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[15] + mi := &file_api_core_core_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1090,7 +1200,7 @@ func (x *ListFluxCrdsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListFluxCrdsResponse.ProtoReflect.Descriptor instead. func (*ListFluxCrdsResponse) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{15} + return file_api_core_core_proto_rawDescGZIP(), []int{17} } func (x *ListFluxCrdsResponse) GetCrds() []*Crd { @@ -1107,6 +1217,108 @@ func (x *ListFluxCrdsResponse) GetErrors() []*ListError { return nil } +type ListRuntimeCrdsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ClusterName string `protobuf:"bytes,1,opt,name=clusterName,proto3" json:"clusterName,omitempty"` +} + +func (x *ListRuntimeCrdsRequest) Reset() { + *x = ListRuntimeCrdsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_api_core_core_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRuntimeCrdsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRuntimeCrdsRequest) ProtoMessage() {} + +func (x *ListRuntimeCrdsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_core_core_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRuntimeCrdsRequest.ProtoReflect.Descriptor instead. +func (*ListRuntimeCrdsRequest) Descriptor() ([]byte, []int) { + return file_api_core_core_proto_rawDescGZIP(), []int{18} +} + +func (x *ListRuntimeCrdsRequest) GetClusterName() string { + if x != nil { + return x.ClusterName + } + return "" +} + +type ListRuntimeCrdsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Crds []*Crd `protobuf:"bytes,1,rep,name=crds,proto3" json:"crds,omitempty"` + Errors []*ListError `protobuf:"bytes,2,rep,name=errors,proto3" json:"errors,omitempty"` +} + +func (x *ListRuntimeCrdsResponse) Reset() { + *x = ListRuntimeCrdsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_api_core_core_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ListRuntimeCrdsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRuntimeCrdsResponse) ProtoMessage() {} + +func (x *ListRuntimeCrdsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_core_core_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRuntimeCrdsResponse.ProtoReflect.Descriptor instead. +func (*ListRuntimeCrdsResponse) Descriptor() ([]byte, []int) { + return file_api_core_core_proto_rawDescGZIP(), []int{19} +} + +func (x *ListRuntimeCrdsResponse) GetCrds() []*Crd { + if x != nil { + return x.Crds + } + return nil +} + +func (x *ListRuntimeCrdsResponse) GetErrors() []*ListError { + if x != nil { + return x.Errors + } + return nil +} + type GetObjectRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1121,7 +1333,7 @@ type GetObjectRequest struct { func (x *GetObjectRequest) Reset() { *x = GetObjectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[16] + mi := &file_api_core_core_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1134,7 +1346,7 @@ func (x *GetObjectRequest) String() string { func (*GetObjectRequest) ProtoMessage() {} func (x *GetObjectRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[16] + mi := &file_api_core_core_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1147,7 +1359,7 @@ func (x *GetObjectRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetObjectRequest.ProtoReflect.Descriptor instead. func (*GetObjectRequest) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{16} + return file_api_core_core_proto_rawDescGZIP(), []int{20} } func (x *GetObjectRequest) GetName() string { @@ -1189,7 +1401,7 @@ type GetObjectResponse struct { func (x *GetObjectResponse) Reset() { *x = GetObjectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[17] + mi := &file_api_core_core_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1202,7 +1414,7 @@ func (x *GetObjectResponse) String() string { func (*GetObjectResponse) ProtoMessage() {} func (x *GetObjectResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[17] + mi := &file_api_core_core_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1215,7 +1427,7 @@ func (x *GetObjectResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetObjectResponse.ProtoReflect.Descriptor instead. func (*GetObjectResponse) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{17} + return file_api_core_core_proto_rawDescGZIP(), []int{21} } func (x *GetObjectResponse) GetObject() *Object { @@ -1239,7 +1451,7 @@ type ListObjectsRequest struct { func (x *ListObjectsRequest) Reset() { *x = ListObjectsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[18] + mi := &file_api_core_core_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1252,7 +1464,7 @@ func (x *ListObjectsRequest) String() string { func (*ListObjectsRequest) ProtoMessage() {} func (x *ListObjectsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[18] + mi := &file_api_core_core_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1265,7 +1477,7 @@ func (x *ListObjectsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListObjectsRequest.ProtoReflect.Descriptor instead. func (*ListObjectsRequest) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{18} + return file_api_core_core_proto_rawDescGZIP(), []int{22} } func (x *ListObjectsRequest) GetNamespace() string { @@ -1308,7 +1520,7 @@ type ClusterNamespaceList struct { func (x *ClusterNamespaceList) Reset() { *x = ClusterNamespaceList{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[19] + mi := &file_api_core_core_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1321,7 +1533,7 @@ func (x *ClusterNamespaceList) String() string { func (*ClusterNamespaceList) ProtoMessage() {} func (x *ClusterNamespaceList) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[19] + mi := &file_api_core_core_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1334,7 +1546,7 @@ func (x *ClusterNamespaceList) ProtoReflect() protoreflect.Message { // Deprecated: Use ClusterNamespaceList.ProtoReflect.Descriptor instead. func (*ClusterNamespaceList) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{19} + return file_api_core_core_proto_rawDescGZIP(), []int{23} } func (x *ClusterNamespaceList) GetClusterName() string { @@ -1364,7 +1576,7 @@ type ListObjectsResponse struct { func (x *ListObjectsResponse) Reset() { *x = ListObjectsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[20] + mi := &file_api_core_core_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1377,7 +1589,7 @@ func (x *ListObjectsResponse) String() string { func (*ListObjectsResponse) ProtoMessage() {} func (x *ListObjectsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[20] + mi := &file_api_core_core_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1390,7 +1602,7 @@ func (x *ListObjectsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListObjectsResponse.ProtoReflect.Descriptor instead. func (*ListObjectsResponse) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{20} + return file_api_core_core_proto_rawDescGZIP(), []int{24} } func (x *ListObjectsResponse) GetObjects() []*Object { @@ -1429,7 +1641,7 @@ type GetReconciledObjectsRequest struct { func (x *GetReconciledObjectsRequest) Reset() { *x = GetReconciledObjectsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[21] + mi := &file_api_core_core_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1442,7 +1654,7 @@ func (x *GetReconciledObjectsRequest) String() string { func (*GetReconciledObjectsRequest) ProtoMessage() {} func (x *GetReconciledObjectsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[21] + mi := &file_api_core_core_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1455,7 +1667,7 @@ func (x *GetReconciledObjectsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetReconciledObjectsRequest.ProtoReflect.Descriptor instead. func (*GetReconciledObjectsRequest) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{21} + return file_api_core_core_proto_rawDescGZIP(), []int{25} } func (x *GetReconciledObjectsRequest) GetAutomationName() string { @@ -1504,7 +1716,7 @@ type GetReconciledObjectsResponse struct { func (x *GetReconciledObjectsResponse) Reset() { *x = GetReconciledObjectsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[22] + mi := &file_api_core_core_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1517,7 +1729,7 @@ func (x *GetReconciledObjectsResponse) String() string { func (*GetReconciledObjectsResponse) ProtoMessage() {} func (x *GetReconciledObjectsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[22] + mi := &file_api_core_core_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1530,7 +1742,7 @@ func (x *GetReconciledObjectsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetReconciledObjectsResponse.ProtoReflect.Descriptor instead. func (*GetReconciledObjectsResponse) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{22} + return file_api_core_core_proto_rawDescGZIP(), []int{26} } func (x *GetReconciledObjectsResponse) GetObjects() []*Object { @@ -1554,7 +1766,7 @@ type GetChildObjectsRequest struct { func (x *GetChildObjectsRequest) Reset() { *x = GetChildObjectsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[23] + mi := &file_api_core_core_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1567,7 +1779,7 @@ func (x *GetChildObjectsRequest) String() string { func (*GetChildObjectsRequest) ProtoMessage() {} func (x *GetChildObjectsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[23] + mi := &file_api_core_core_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1580,7 +1792,7 @@ func (x *GetChildObjectsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChildObjectsRequest.ProtoReflect.Descriptor instead. func (*GetChildObjectsRequest) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{23} + return file_api_core_core_proto_rawDescGZIP(), []int{27} } func (x *GetChildObjectsRequest) GetGroupVersionKind() *GroupVersionKind { @@ -1622,7 +1834,7 @@ type GetChildObjectsResponse struct { func (x *GetChildObjectsResponse) Reset() { *x = GetChildObjectsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[24] + mi := &file_api_core_core_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1635,7 +1847,7 @@ func (x *GetChildObjectsResponse) String() string { func (*GetChildObjectsResponse) ProtoMessage() {} func (x *GetChildObjectsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[24] + mi := &file_api_core_core_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1648,7 +1860,7 @@ func (x *GetChildObjectsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChildObjectsResponse.ProtoReflect.Descriptor instead. func (*GetChildObjectsResponse) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{24} + return file_api_core_core_proto_rawDescGZIP(), []int{28} } func (x *GetChildObjectsResponse) GetObjects() []*Object { @@ -1667,7 +1879,7 @@ type GetFluxNamespaceRequest struct { func (x *GetFluxNamespaceRequest) Reset() { *x = GetFluxNamespaceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[25] + mi := &file_api_core_core_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1680,7 +1892,7 @@ func (x *GetFluxNamespaceRequest) String() string { func (*GetFluxNamespaceRequest) ProtoMessage() {} func (x *GetFluxNamespaceRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[25] + mi := &file_api_core_core_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1693,7 +1905,7 @@ func (x *GetFluxNamespaceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFluxNamespaceRequest.ProtoReflect.Descriptor instead. func (*GetFluxNamespaceRequest) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{25} + return file_api_core_core_proto_rawDescGZIP(), []int{29} } type GetFluxNamespaceResponse struct { @@ -1707,7 +1919,7 @@ type GetFluxNamespaceResponse struct { func (x *GetFluxNamespaceResponse) Reset() { *x = GetFluxNamespaceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[26] + mi := &file_api_core_core_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1720,7 +1932,7 @@ func (x *GetFluxNamespaceResponse) String() string { func (*GetFluxNamespaceResponse) ProtoMessage() {} func (x *GetFluxNamespaceResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[26] + mi := &file_api_core_core_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1733,7 +1945,7 @@ func (x *GetFluxNamespaceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFluxNamespaceResponse.ProtoReflect.Descriptor instead. func (*GetFluxNamespaceResponse) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{26} + return file_api_core_core_proto_rawDescGZIP(), []int{30} } func (x *GetFluxNamespaceResponse) GetName() string { @@ -1752,7 +1964,7 @@ type ListNamespacesRequest struct { func (x *ListNamespacesRequest) Reset() { *x = ListNamespacesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[27] + mi := &file_api_core_core_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1765,7 +1977,7 @@ func (x *ListNamespacesRequest) String() string { func (*ListNamespacesRequest) ProtoMessage() {} func (x *ListNamespacesRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[27] + mi := &file_api_core_core_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1778,7 +1990,7 @@ func (x *ListNamespacesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListNamespacesRequest.ProtoReflect.Descriptor instead. func (*ListNamespacesRequest) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{27} + return file_api_core_core_proto_rawDescGZIP(), []int{31} } type ListNamespacesResponse struct { @@ -1792,7 +2004,7 @@ type ListNamespacesResponse struct { func (x *ListNamespacesResponse) Reset() { *x = ListNamespacesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[28] + mi := &file_api_core_core_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1805,7 +2017,7 @@ func (x *ListNamespacesResponse) String() string { func (*ListNamespacesResponse) ProtoMessage() {} func (x *ListNamespacesResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[28] + mi := &file_api_core_core_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1818,7 +2030,7 @@ func (x *ListNamespacesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListNamespacesResponse.ProtoReflect.Descriptor instead. func (*ListNamespacesResponse) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{28} + return file_api_core_core_proto_rawDescGZIP(), []int{32} } func (x *ListNamespacesResponse) GetNamespaces() []*Namespace { @@ -1839,7 +2051,7 @@ type ListEventsRequest struct { func (x *ListEventsRequest) Reset() { *x = ListEventsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[29] + mi := &file_api_core_core_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1852,7 +2064,7 @@ func (x *ListEventsRequest) String() string { func (*ListEventsRequest) ProtoMessage() {} func (x *ListEventsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[29] + mi := &file_api_core_core_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1865,7 +2077,7 @@ func (x *ListEventsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListEventsRequest.ProtoReflect.Descriptor instead. func (*ListEventsRequest) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{29} + return file_api_core_core_proto_rawDescGZIP(), []int{33} } func (x *ListEventsRequest) GetInvolvedObject() *ObjectRef { @@ -1886,7 +2098,7 @@ type ListEventsResponse struct { func (x *ListEventsResponse) Reset() { *x = ListEventsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[30] + mi := &file_api_core_core_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1899,7 +2111,7 @@ func (x *ListEventsResponse) String() string { func (*ListEventsResponse) ProtoMessage() {} func (x *ListEventsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[30] + mi := &file_api_core_core_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1912,7 +2124,7 @@ func (x *ListEventsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListEventsResponse.ProtoReflect.Descriptor instead. func (*ListEventsResponse) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{30} + return file_api_core_core_proto_rawDescGZIP(), []int{34} } func (x *ListEventsResponse) GetEvents() []*Event { @@ -1934,7 +2146,7 @@ type SyncFluxObjectRequest struct { func (x *SyncFluxObjectRequest) Reset() { *x = SyncFluxObjectRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[31] + mi := &file_api_core_core_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1947,7 +2159,7 @@ func (x *SyncFluxObjectRequest) String() string { func (*SyncFluxObjectRequest) ProtoMessage() {} func (x *SyncFluxObjectRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[31] + mi := &file_api_core_core_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1960,7 +2172,7 @@ func (x *SyncFluxObjectRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncFluxObjectRequest.ProtoReflect.Descriptor instead. func (*SyncFluxObjectRequest) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{31} + return file_api_core_core_proto_rawDescGZIP(), []int{35} } func (x *SyncFluxObjectRequest) GetObjects() []*ObjectRef { @@ -1986,7 +2198,7 @@ type SyncFluxObjectResponse struct { func (x *SyncFluxObjectResponse) Reset() { *x = SyncFluxObjectResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[32] + mi := &file_api_core_core_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1999,7 +2211,7 @@ func (x *SyncFluxObjectResponse) String() string { func (*SyncFluxObjectResponse) ProtoMessage() {} func (x *SyncFluxObjectResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[32] + mi := &file_api_core_core_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2012,7 +2224,7 @@ func (x *SyncFluxObjectResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SyncFluxObjectResponse.ProtoReflect.Descriptor instead. func (*SyncFluxObjectResponse) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{32} + return file_api_core_core_proto_rawDescGZIP(), []int{36} } type GetVersionRequest struct { @@ -2024,7 +2236,7 @@ type GetVersionRequest struct { func (x *GetVersionRequest) Reset() { *x = GetVersionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[33] + mi := &file_api_core_core_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2037,7 +2249,7 @@ func (x *GetVersionRequest) String() string { func (*GetVersionRequest) ProtoMessage() {} func (x *GetVersionRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[33] + mi := &file_api_core_core_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2050,7 +2262,7 @@ func (x *GetVersionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetVersionRequest.ProtoReflect.Descriptor instead. func (*GetVersionRequest) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{33} + return file_api_core_core_proto_rawDescGZIP(), []int{37} } type GetVersionResponse struct { @@ -2068,7 +2280,7 @@ type GetVersionResponse struct { func (x *GetVersionResponse) Reset() { *x = GetVersionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[34] + mi := &file_api_core_core_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2081,7 +2293,7 @@ func (x *GetVersionResponse) String() string { func (*GetVersionResponse) ProtoMessage() {} func (x *GetVersionResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[34] + mi := &file_api_core_core_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2094,7 +2306,7 @@ func (x *GetVersionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetVersionResponse.ProtoReflect.Descriptor instead. func (*GetVersionResponse) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{34} + return file_api_core_core_proto_rawDescGZIP(), []int{38} } func (x *GetVersionResponse) GetSemver() string { @@ -2141,7 +2353,7 @@ type GetFeatureFlagsRequest struct { func (x *GetFeatureFlagsRequest) Reset() { *x = GetFeatureFlagsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[35] + mi := &file_api_core_core_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2154,7 +2366,7 @@ func (x *GetFeatureFlagsRequest) String() string { func (*GetFeatureFlagsRequest) ProtoMessage() {} func (x *GetFeatureFlagsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[35] + mi := &file_api_core_core_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2167,7 +2379,7 @@ func (x *GetFeatureFlagsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFeatureFlagsRequest.ProtoReflect.Descriptor instead. func (*GetFeatureFlagsRequest) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{35} + return file_api_core_core_proto_rawDescGZIP(), []int{39} } type GetFeatureFlagsResponse struct { @@ -2181,7 +2393,7 @@ type GetFeatureFlagsResponse struct { func (x *GetFeatureFlagsResponse) Reset() { *x = GetFeatureFlagsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[36] + mi := &file_api_core_core_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2194,7 +2406,7 @@ func (x *GetFeatureFlagsResponse) String() string { func (*GetFeatureFlagsResponse) ProtoMessage() {} func (x *GetFeatureFlagsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[36] + mi := &file_api_core_core_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2207,7 +2419,7 @@ func (x *GetFeatureFlagsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFeatureFlagsResponse.ProtoReflect.Descriptor instead. func (*GetFeatureFlagsResponse) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{36} + return file_api_core_core_proto_rawDescGZIP(), []int{40} } func (x *GetFeatureFlagsResponse) GetFlags() map[string]string { @@ -2230,7 +2442,7 @@ type ToggleSuspendResourceRequest struct { func (x *ToggleSuspendResourceRequest) Reset() { *x = ToggleSuspendResourceRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[37] + mi := &file_api_core_core_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2243,7 +2455,7 @@ func (x *ToggleSuspendResourceRequest) String() string { func (*ToggleSuspendResourceRequest) ProtoMessage() {} func (x *ToggleSuspendResourceRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[37] + mi := &file_api_core_core_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2256,7 +2468,7 @@ func (x *ToggleSuspendResourceRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ToggleSuspendResourceRequest.ProtoReflect.Descriptor instead. func (*ToggleSuspendResourceRequest) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{37} + return file_api_core_core_proto_rawDescGZIP(), []int{41} } func (x *ToggleSuspendResourceRequest) GetObjects() []*ObjectRef { @@ -2289,7 +2501,7 @@ type ToggleSuspendResourceResponse struct { func (x *ToggleSuspendResourceResponse) Reset() { *x = ToggleSuspendResourceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[38] + mi := &file_api_core_core_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2302,7 +2514,7 @@ func (x *ToggleSuspendResourceResponse) String() string { func (*ToggleSuspendResourceResponse) ProtoMessage() {} func (x *ToggleSuspendResourceResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[38] + mi := &file_api_core_core_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2315,7 +2527,7 @@ func (x *ToggleSuspendResourceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ToggleSuspendResourceResponse.ProtoReflect.Descriptor instead. func (*ToggleSuspendResourceResponse) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{38} + return file_api_core_core_proto_rawDescGZIP(), []int{42} } type GetSessionLogsRequest struct { @@ -2333,7 +2545,7 @@ type GetSessionLogsRequest struct { func (x *GetSessionLogsRequest) Reset() { *x = GetSessionLogsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[39] + mi := &file_api_core_core_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2346,7 +2558,7 @@ func (x *GetSessionLogsRequest) String() string { func (*GetSessionLogsRequest) ProtoMessage() {} func (x *GetSessionLogsRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[39] + mi := &file_api_core_core_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2359,7 +2571,7 @@ func (x *GetSessionLogsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSessionLogsRequest.ProtoReflect.Descriptor instead. func (*GetSessionLogsRequest) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{39} + return file_api_core_core_proto_rawDescGZIP(), []int{43} } func (x *GetSessionLogsRequest) GetSessionNamespace() string { @@ -2412,7 +2624,7 @@ type LogEntry struct { func (x *LogEntry) Reset() { *x = LogEntry{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[40] + mi := &file_api_core_core_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2425,7 +2637,7 @@ func (x *LogEntry) String() string { func (*LogEntry) ProtoMessage() {} func (x *LogEntry) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[40] + mi := &file_api_core_core_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2438,7 +2650,7 @@ func (x *LogEntry) ProtoReflect() protoreflect.Message { // Deprecated: Use LogEntry.ProtoReflect.Descriptor instead. func (*LogEntry) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{40} + return file_api_core_core_proto_rawDescGZIP(), []int{44} } func (x *LogEntry) GetTimestamp() string { @@ -2490,7 +2702,7 @@ type GetSessionLogsResponse struct { func (x *GetSessionLogsResponse) Reset() { *x = GetSessionLogsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[41] + mi := &file_api_core_core_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2503,7 +2715,7 @@ func (x *GetSessionLogsResponse) String() string { func (*GetSessionLogsResponse) ProtoMessage() {} func (x *GetSessionLogsResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[41] + mi := &file_api_core_core_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2516,7 +2728,7 @@ func (x *GetSessionLogsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSessionLogsResponse.ProtoReflect.Descriptor instead. func (*GetSessionLogsResponse) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{41} + return file_api_core_core_proto_rawDescGZIP(), []int{45} } func (x *GetSessionLogsResponse) GetLogs() []*LogEntry { @@ -2558,7 +2770,7 @@ type IsCRDAvailableRequest struct { func (x *IsCRDAvailableRequest) Reset() { *x = IsCRDAvailableRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[42] + mi := &file_api_core_core_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2571,7 +2783,7 @@ func (x *IsCRDAvailableRequest) String() string { func (*IsCRDAvailableRequest) ProtoMessage() {} func (x *IsCRDAvailableRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[42] + mi := &file_api_core_core_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2584,7 +2796,7 @@ func (x *IsCRDAvailableRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use IsCRDAvailableRequest.ProtoReflect.Descriptor instead. func (*IsCRDAvailableRequest) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{42} + return file_api_core_core_proto_rawDescGZIP(), []int{46} } func (x *IsCRDAvailableRequest) GetName() string { @@ -2605,7 +2817,7 @@ type IsCRDAvailableResponse struct { func (x *IsCRDAvailableResponse) Reset() { *x = IsCRDAvailableResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[43] + mi := &file_api_core_core_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2618,7 +2830,7 @@ func (x *IsCRDAvailableResponse) String() string { func (*IsCRDAvailableResponse) ProtoMessage() {} func (x *IsCRDAvailableResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[43] + mi := &file_api_core_core_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2631,7 +2843,7 @@ func (x *IsCRDAvailableResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use IsCRDAvailableResponse.ProtoReflect.Descriptor instead. func (*IsCRDAvailableResponse) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{43} + return file_api_core_core_proto_rawDescGZIP(), []int{47} } func (x *IsCRDAvailableResponse) GetClusters() map[string]bool { @@ -2653,7 +2865,7 @@ type ListPoliciesRequest struct { func (x *ListPoliciesRequest) Reset() { *x = ListPoliciesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[44] + mi := &file_api_core_core_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2666,7 +2878,7 @@ func (x *ListPoliciesRequest) String() string { func (*ListPoliciesRequest) ProtoMessage() {} func (x *ListPoliciesRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[44] + mi := &file_api_core_core_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2679,7 +2891,7 @@ func (x *ListPoliciesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListPoliciesRequest.ProtoReflect.Descriptor instead. func (*ListPoliciesRequest) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{44} + return file_api_core_core_proto_rawDescGZIP(), []int{48} } func (x *ListPoliciesRequest) GetClusterName() string { @@ -2710,7 +2922,7 @@ type ListPoliciesResponse struct { func (x *ListPoliciesResponse) Reset() { *x = ListPoliciesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[45] + mi := &file_api_core_core_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2723,7 +2935,7 @@ func (x *ListPoliciesResponse) String() string { func (*ListPoliciesResponse) ProtoMessage() {} func (x *ListPoliciesResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[45] + mi := &file_api_core_core_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2736,7 +2948,7 @@ func (x *ListPoliciesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListPoliciesResponse.ProtoReflect.Descriptor instead. func (*ListPoliciesResponse) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{45} + return file_api_core_core_proto_rawDescGZIP(), []int{49} } func (x *ListPoliciesResponse) GetPolicies() []*PolicyObj { @@ -2779,7 +2991,7 @@ type GetPolicyRequest struct { func (x *GetPolicyRequest) Reset() { *x = GetPolicyRequest{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[46] + mi := &file_api_core_core_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2792,7 +3004,7 @@ func (x *GetPolicyRequest) String() string { func (*GetPolicyRequest) ProtoMessage() {} func (x *GetPolicyRequest) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[46] + mi := &file_api_core_core_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2805,7 +3017,7 @@ func (x *GetPolicyRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPolicyRequest.ProtoReflect.Descriptor instead. func (*GetPolicyRequest) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{46} + return file_api_core_core_proto_rawDescGZIP(), []int{50} } func (x *GetPolicyRequest) GetPolicyName() string { @@ -2834,7 +3046,7 @@ type GetPolicyResponse struct { func (x *GetPolicyResponse) Reset() { *x = GetPolicyResponse{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[47] + mi := &file_api_core_core_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2847,7 +3059,7 @@ func (x *GetPolicyResponse) String() string { func (*GetPolicyResponse) ProtoMessage() {} func (x *GetPolicyResponse) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[47] + mi := &file_api_core_core_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2860,7 +3072,7 @@ func (x *GetPolicyResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPolicyResponse.ProtoReflect.Descriptor instead. func (*GetPolicyResponse) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{47} + return file_api_core_core_proto_rawDescGZIP(), []int{51} } func (x *GetPolicyResponse) GetPolicy() *PolicyObj { @@ -2903,7 +3115,7 @@ type PolicyObj struct { func (x *PolicyObj) Reset() { *x = PolicyObj{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[48] + mi := &file_api_core_core_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2916,7 +3128,7 @@ func (x *PolicyObj) String() string { func (*PolicyObj) ProtoMessage() {} func (x *PolicyObj) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[48] + mi := &file_api_core_core_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2929,7 +3141,7 @@ func (x *PolicyObj) ProtoReflect() protoreflect.Message { // Deprecated: Use PolicyObj.ProtoReflect.Descriptor instead. func (*PolicyObj) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{48} + return file_api_core_core_proto_rawDescGZIP(), []int{52} } func (x *PolicyObj) GetName() string { @@ -3056,7 +3268,7 @@ type PolicyStandard struct { func (x *PolicyStandard) Reset() { *x = PolicyStandard{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[49] + mi := &file_api_core_core_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3069,7 +3281,7 @@ func (x *PolicyStandard) String() string { func (*PolicyStandard) ProtoMessage() {} func (x *PolicyStandard) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[49] + mi := &file_api_core_core_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3082,7 +3294,7 @@ func (x *PolicyStandard) ProtoReflect() protoreflect.Message { // Deprecated: Use PolicyStandard.ProtoReflect.Descriptor instead. func (*PolicyStandard) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{49} + return file_api_core_core_proto_rawDescGZIP(), []int{53} } func (x *PolicyStandard) GetId() string { @@ -3115,7 +3327,7 @@ type PolicyParam struct { func (x *PolicyParam) Reset() { *x = PolicyParam{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[50] + mi := &file_api_core_core_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3128,7 +3340,7 @@ func (x *PolicyParam) String() string { func (*PolicyParam) ProtoMessage() {} func (x *PolicyParam) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[50] + mi := &file_api_core_core_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3141,7 +3353,7 @@ func (x *PolicyParam) ProtoReflect() protoreflect.Message { // Deprecated: Use PolicyParam.ProtoReflect.Descriptor instead. func (*PolicyParam) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{50} + return file_api_core_core_proto_rawDescGZIP(), []int{54} } func (x *PolicyParam) GetName() string { @@ -3185,7 +3397,7 @@ type PolicyTargets struct { func (x *PolicyTargets) Reset() { *x = PolicyTargets{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[51] + mi := &file_api_core_core_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3198,7 +3410,7 @@ func (x *PolicyTargets) String() string { func (*PolicyTargets) ProtoMessage() {} func (x *PolicyTargets) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[51] + mi := &file_api_core_core_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3211,7 +3423,7 @@ func (x *PolicyTargets) ProtoReflect() protoreflect.Message { // Deprecated: Use PolicyTargets.ProtoReflect.Descriptor instead. func (*PolicyTargets) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{51} + return file_api_core_core_proto_rawDescGZIP(), []int{55} } func (x *PolicyTargets) GetKinds() []string { @@ -3246,7 +3458,7 @@ type PolicyTargetLabel struct { func (x *PolicyTargetLabel) Reset() { *x = PolicyTargetLabel{} if protoimpl.UnsafeEnabled { - mi := &file_api_core_core_proto_msgTypes[52] + mi := &file_api_core_core_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3259,7 +3471,7 @@ func (x *PolicyTargetLabel) String() string { func (*PolicyTargetLabel) ProtoMessage() {} func (x *PolicyTargetLabel) ProtoReflect() protoreflect.Message { - mi := &file_api_core_core_proto_msgTypes[52] + mi := &file_api_core_core_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3272,7 +3484,7 @@ func (x *PolicyTargetLabel) ProtoReflect() protoreflect.Message { // Deprecated: Use PolicyTargetLabel.ProtoReflect.Descriptor instead. func (*PolicyTargetLabel) Descriptor() ([]byte, []int) { - return file_api_core_core_proto_rawDescGZIP(), []int{52} + return file_api_core_core_proto_rawDescGZIP(), []int{56} } func (x *PolicyTargetLabel) GetValues() map[string]string { @@ -3437,11 +3649,37 @@ var file_api_core_core_proto_rawDesc = []byte{ 0x74, 0x73, 0x12, 0x31, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x37, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x75, - 0x78, 0x43, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x22, 0x72, - 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x75, 0x78, 0x43, 0x72, 0x64, 0x73, 0x52, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, 0x5b, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x74, 0x69, + 0x6d, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, + 0x31, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x22, 0x37, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x75, 0x78, 0x43, 0x72, + 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x22, 0x72, 0x0a, 0x14, 0x4c, + 0x69, 0x73, 0x74, 0x46, 0x6c, 0x75, 0x78, 0x43, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x63, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x72, 0x64, 0x52, 0x04, 0x63, 0x72, 0x64, 0x73, 0x12, 0x31, 0x0a, 0x06, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x22, + 0x3a, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, + 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x22, 0x75, 0x0a, 0x17, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x63, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x64, 0x52, 0x04, 0x63, 0x72, 0x64, 0x73, 0x12, @@ -3733,7 +3971,7 @@ var file_api_core_core_proto_rawDesc = []byte{ 0x61, 0x6c, 0x75, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x32, 0xee, 0x13, 0x0a, 0x04, 0x43, 0x6f, 0x72, 0x65, 0x12, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x32, 0xf7, 0x15, 0x0a, 0x04, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x6b, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, @@ -3764,146 +4002,162 @@ var file_api_core_core_proto_rawDesc = []byte{ 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x46, 0x6c, 0x75, 0x78, 0x43, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, - 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x5f, 0x63, 0x72, 0x64, 0x73, 0x12, 0x94, 0x01, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x12, 0x2b, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, - 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2c, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x64, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x72, - 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x12, 0x80, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x4f, 0x62, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x26, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x4f, - 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, - 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, - 0x2a, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5f, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x12, 0x84, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x78, - 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x27, 0x2e, 0x67, 0x69, 0x74, 0x6f, - 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, - 0x75, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, + 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x5f, 0x63, 0x72, 0x64, 0x73, 0x12, 0x88, 0x01, 0x0a, 0x12, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x12, 0x29, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, + 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, + 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x62, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x7c, 0x0a, 0x0f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x64, 0x73, 0x12, 0x26, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, + 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, + 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x27, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x43, 0x72, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x12, 0x12, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x63, + 0x72, 0x64, 0x73, 0x12, 0x94, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, + 0x63, 0x69, 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x2b, 0x2e, 0x67, + 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x69, 0x74, 0x6f, + 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x3a, + 0x01, 0x2a, 0x22, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, + 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x26, + 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x69, 0x6c, 0x64, + 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x3a, 0x01, 0x2a, 0x22, 0x11, 0x2f, 0x76, 0x31, 0x2f, + 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5f, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x84, 0x01, + 0x0a, 0x10, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x12, 0x27, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x6c, 0x75, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a, 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, 0x66, 0x6c, 0x75, 0x78, 0x12, 0x77, 0x0a, 0x0e, 0x4c, - 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x25, 0x2e, + 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x69, + 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x46, 0x6c, 0x75, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x3a, 0x01, 0x2a, + 0x22, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x2f, + 0x66, 0x6c, 0x75, 0x78, 0x12, 0x77, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x25, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, + 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, - 0x61, 0x63, 0x65, 0x73, 0x12, 0x67, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x21, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x12, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x0c, 0x12, 0x0a, 0x2f, 0x76, 0x31, 0x2f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x74, 0x0a, - 0x0e, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x75, 0x78, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, - 0x25, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, + 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, + 0x76, 0x31, 0x2f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x12, 0x67, 0x0a, + 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x2e, 0x67, 0x69, + 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, + 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x12, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x12, 0x0a, 0x2f, 0x76, 0x31, 0x2f, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x74, 0x0a, 0x0e, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, + 0x75, 0x78, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, + 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, + 0x75, 0x78, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x26, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x75, 0x78, 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, - 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x46, 0x6c, 0x75, 0x78, - 0x4f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x3a, 0x01, 0x2a, 0x22, 0x08, 0x2f, 0x76, 0x31, 0x2f, 0x73, - 0x79, 0x6e, 0x63, 0x12, 0x68, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x21, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, - 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, - 0x12, 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x7c, 0x0a, - 0x0f, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, - 0x12, 0x26, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x46, 0x6c, 0x61, 0x67, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, - 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x66, - 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x8c, 0x01, 0x0a, 0x15, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x3a, + 0x01, 0x2a, 0x22, 0x08, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x68, 0x0a, 0x0a, + 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x2e, 0x67, 0x69, 0x74, + 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, + 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x13, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0d, 0x12, 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x7c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x26, 0x2e, 0x67, 0x69, 0x74, 0x6f, + 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x27, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x46, 0x6c, 0x61, + 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x12, 0x12, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x66, + 0x6c, 0x61, 0x67, 0x73, 0x12, 0x8c, 0x01, 0x0a, 0x15, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x53, + 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2c, + 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, - 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x53, 0x75, 0x73, - 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x67, 0x67, 0x6c, 0x65, 0x53, 0x75, 0x73, 0x70, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x3a, 0x01, 0x2a, 0x22, 0x0b, 0x2f, - 0x76, 0x31, 0x2f, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x7c, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x25, 0x2e, 0x67, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, + 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, + 0x67, 0x67, 0x6c, 0x65, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x10, 0x3a, 0x01, 0x2a, 0x22, 0x0b, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x73, 0x70, + 0x65, 0x6e, 0x64, 0x12, 0x7c, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x25, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, - 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, 0x22, 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x67, 0x73, 0x12, 0x7d, 0x0a, 0x0e, 0x49, 0x73, 0x43, 0x52, - 0x44, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x67, 0x69, 0x74, + 0x74, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x3a, 0x01, 0x2a, 0x22, + 0x10, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x6f, 0x67, + 0x73, 0x12, 0x7d, 0x0a, 0x0e, 0x49, 0x73, 0x43, 0x52, 0x44, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x43, 0x52, 0x44, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x43, 0x52, - 0x44, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x26, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, - 0x76, 0x31, 0x2e, 0x49, 0x73, 0x43, 0x52, 0x44, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x16, 0x12, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x72, 0x64, 0x2f, 0x69, 0x73, 0x5f, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x70, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x49, 0x6e, - 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x23, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, - 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x65, - 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, - 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, 0x2f, - 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x6f, 0x0a, 0x0c, 0x4c, 0x69, 0x73, - 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x23, 0x2e, 0x67, 0x69, 0x74, 0x6f, - 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, - 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x73, 0x0a, 0x09, 0x47, 0x65, - 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x12, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, - 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x69, 0x74, 0x6f, - 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, - 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, - 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, - 0x96, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x2e, 0x67, 0x69, 0x74, 0x6f, - 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, - 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, + 0x44, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x1c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x16, 0x12, 0x14, 0x2f, 0x76, 0x31, 0x2f, + 0x63, 0x72, 0x64, 0x2f, 0x69, 0x73, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x12, 0x70, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, + 0x12, 0x23, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x65, 0x6e, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x65, 0x6e, 0x74, 0x6f, + 0x72, 0x79, 0x12, 0x6f, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, + 0x65, 0x73, 0x12, 0x23, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, - 0x69, 0x63, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, - 0x2a, 0x22, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x9c, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x2a, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, - 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x69, 0x63, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, + 0x69, 0x65, 0x73, 0x12, 0x73, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x12, 0x20, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1b, 0x12, 0x19, 0x2f, + 0x76, 0x31, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x2f, 0x7b, 0x70, 0x6f, 0x6c, + 0x69, 0x63, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x96, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x26, 0x12, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x7d, 0x42, 0xa4, 0x01, 0x92, 0x41, 0x74, 0x12, 0x4e, 0x0a, - 0x15, 0x57, 0x65, 0x61, 0x76, 0x65, 0x20, 0x47, 0x69, 0x74, 0x4f, 0x70, 0x73, 0x20, 0x43, 0x6f, - 0x72, 0x65, 0x20, 0x41, 0x50, 0x49, 0x12, 0x30, 0x54, 0x68, 0x65, 0x20, 0x41, 0x50, 0x49, 0x20, - 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x57, 0x65, 0x61, 0x76, 0x65, 0x20, 0x47, 0x69, 0x74, - 0x4f, 0x70, 0x73, 0x20, 0x43, 0x6f, 0x72, 0x65, 0x32, 0x03, 0x30, 0x2e, 0x31, 0x32, 0x10, 0x61, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, - 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, - 0x6e, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x77, 0x65, - 0x61, 0x76, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x2f, 0x77, 0x65, 0x61, 0x76, 0x65, 0x2d, 0x67, - 0x69, 0x74, 0x6f, 0x70, 0x73, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x73, 0x12, 0x2c, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2d, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x22, 0x15, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x9c, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x2e, 0x67, 0x69, 0x74, 0x6f, + 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, + 0x6c, 0x69, 0x63, 0x79, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x5f, 0x63, + 0x6f, 0x72, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x79, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2f, 0x7b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x7d, + 0x42, 0xa4, 0x01, 0x92, 0x41, 0x74, 0x12, 0x4e, 0x0a, 0x15, 0x57, 0x65, 0x61, 0x76, 0x65, 0x20, + 0x47, 0x69, 0x74, 0x4f, 0x70, 0x73, 0x20, 0x43, 0x6f, 0x72, 0x65, 0x20, 0x41, 0x50, 0x49, 0x12, + 0x30, 0x54, 0x68, 0x65, 0x20, 0x41, 0x50, 0x49, 0x20, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x73, + 0x20, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, + 0x57, 0x65, 0x61, 0x76, 0x65, 0x20, 0x47, 0x69, 0x74, 0x4f, 0x70, 0x73, 0x20, 0x43, 0x6f, 0x72, + 0x65, 0x32, 0x03, 0x30, 0x2e, 0x31, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x5a, 0x2b, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x77, 0x65, 0x61, 0x76, 0x65, 0x77, 0x6f, 0x72, 0x6b, + 0x73, 0x2f, 0x77, 0x65, 0x61, 0x76, 0x65, 0x2d, 0x67, 0x69, 0x74, 0x6f, 0x70, 0x73, 0x2f, 0x63, + 0x6f, 0x72, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3918,7 +4172,7 @@ func file_api_core_core_proto_rawDescGZIP() []byte { return file_api_core_core_proto_rawDescData } -var file_api_core_core_proto_msgTypes = make([]protoimpl.MessageInfo, 57) +var file_api_core_core_proto_msgTypes = make([]protoimpl.MessageInfo, 61) var file_api_core_core_proto_goTypes = []interface{}{ (*GetInventoryRequest)(nil), // 0: gitops_core.v1.GetInventoryRequest (*GetInventoryResponse)(nil), // 1: gitops_core.v1.GetInventoryResponse @@ -3934,144 +4188,156 @@ var file_api_core_core_proto_goTypes = []interface{}{ (*ListError)(nil), // 11: gitops_core.v1.ListError (*ListFluxRuntimeObjectsRequest)(nil), // 12: gitops_core.v1.ListFluxRuntimeObjectsRequest (*ListFluxRuntimeObjectsResponse)(nil), // 13: gitops_core.v1.ListFluxRuntimeObjectsResponse - (*ListFluxCrdsRequest)(nil), // 14: gitops_core.v1.ListFluxCrdsRequest - (*ListFluxCrdsResponse)(nil), // 15: gitops_core.v1.ListFluxCrdsResponse - (*GetObjectRequest)(nil), // 16: gitops_core.v1.GetObjectRequest - (*GetObjectResponse)(nil), // 17: gitops_core.v1.GetObjectResponse - (*ListObjectsRequest)(nil), // 18: gitops_core.v1.ListObjectsRequest - (*ClusterNamespaceList)(nil), // 19: gitops_core.v1.ClusterNamespaceList - (*ListObjectsResponse)(nil), // 20: gitops_core.v1.ListObjectsResponse - (*GetReconciledObjectsRequest)(nil), // 21: gitops_core.v1.GetReconciledObjectsRequest - (*GetReconciledObjectsResponse)(nil), // 22: gitops_core.v1.GetReconciledObjectsResponse - (*GetChildObjectsRequest)(nil), // 23: gitops_core.v1.GetChildObjectsRequest - (*GetChildObjectsResponse)(nil), // 24: gitops_core.v1.GetChildObjectsResponse - (*GetFluxNamespaceRequest)(nil), // 25: gitops_core.v1.GetFluxNamespaceRequest - (*GetFluxNamespaceResponse)(nil), // 26: gitops_core.v1.GetFluxNamespaceResponse - (*ListNamespacesRequest)(nil), // 27: gitops_core.v1.ListNamespacesRequest - (*ListNamespacesResponse)(nil), // 28: gitops_core.v1.ListNamespacesResponse - (*ListEventsRequest)(nil), // 29: gitops_core.v1.ListEventsRequest - (*ListEventsResponse)(nil), // 30: gitops_core.v1.ListEventsResponse - (*SyncFluxObjectRequest)(nil), // 31: gitops_core.v1.SyncFluxObjectRequest - (*SyncFluxObjectResponse)(nil), // 32: gitops_core.v1.SyncFluxObjectResponse - (*GetVersionRequest)(nil), // 33: gitops_core.v1.GetVersionRequest - (*GetVersionResponse)(nil), // 34: gitops_core.v1.GetVersionResponse - (*GetFeatureFlagsRequest)(nil), // 35: gitops_core.v1.GetFeatureFlagsRequest - (*GetFeatureFlagsResponse)(nil), // 36: gitops_core.v1.GetFeatureFlagsResponse - (*ToggleSuspendResourceRequest)(nil), // 37: gitops_core.v1.ToggleSuspendResourceRequest - (*ToggleSuspendResourceResponse)(nil), // 38: gitops_core.v1.ToggleSuspendResourceResponse - (*GetSessionLogsRequest)(nil), // 39: gitops_core.v1.GetSessionLogsRequest - (*LogEntry)(nil), // 40: gitops_core.v1.LogEntry - (*GetSessionLogsResponse)(nil), // 41: gitops_core.v1.GetSessionLogsResponse - (*IsCRDAvailableRequest)(nil), // 42: gitops_core.v1.IsCRDAvailableRequest - (*IsCRDAvailableResponse)(nil), // 43: gitops_core.v1.IsCRDAvailableResponse - (*ListPoliciesRequest)(nil), // 44: gitops_core.v1.ListPoliciesRequest - (*ListPoliciesResponse)(nil), // 45: gitops_core.v1.ListPoliciesResponse - (*GetPolicyRequest)(nil), // 46: gitops_core.v1.GetPolicyRequest - (*GetPolicyResponse)(nil), // 47: gitops_core.v1.GetPolicyResponse - (*PolicyObj)(nil), // 48: gitops_core.v1.PolicyObj - (*PolicyStandard)(nil), // 49: gitops_core.v1.PolicyStandard - (*PolicyParam)(nil), // 50: gitops_core.v1.PolicyParam - (*PolicyTargets)(nil), // 51: gitops_core.v1.PolicyTargets - (*PolicyTargetLabel)(nil), // 52: gitops_core.v1.PolicyTargetLabel - nil, // 53: gitops_core.v1.ListObjectsRequest.LabelsEntry - nil, // 54: gitops_core.v1.GetFeatureFlagsResponse.FlagsEntry - nil, // 55: gitops_core.v1.IsCRDAvailableResponse.ClustersEntry - nil, // 56: gitops_core.v1.PolicyTargetLabel.ValuesEntry - (*InventoryEntry)(nil), // 57: gitops_core.v1.InventoryEntry - (*anypb.Any)(nil), // 58: google.protobuf.Any - (*Deployment)(nil), // 59: gitops_core.v1.Deployment - (*Crd)(nil), // 60: gitops_core.v1.Crd - (*Object)(nil), // 61: gitops_core.v1.Object - (*GroupVersionKind)(nil), // 62: gitops_core.v1.GroupVersionKind - (*Namespace)(nil), // 63: gitops_core.v1.Namespace - (*ObjectRef)(nil), // 64: gitops_core.v1.ObjectRef - (*Event)(nil), // 65: gitops_core.v1.Event + (*ListRuntimeObjectsRequest)(nil), // 14: gitops_core.v1.ListRuntimeObjectsRequest + (*ListRuntimeObjectsResponse)(nil), // 15: gitops_core.v1.ListRuntimeObjectsResponse + (*ListFluxCrdsRequest)(nil), // 16: gitops_core.v1.ListFluxCrdsRequest + (*ListFluxCrdsResponse)(nil), // 17: gitops_core.v1.ListFluxCrdsResponse + (*ListRuntimeCrdsRequest)(nil), // 18: gitops_core.v1.ListRuntimeCrdsRequest + (*ListRuntimeCrdsResponse)(nil), // 19: gitops_core.v1.ListRuntimeCrdsResponse + (*GetObjectRequest)(nil), // 20: gitops_core.v1.GetObjectRequest + (*GetObjectResponse)(nil), // 21: gitops_core.v1.GetObjectResponse + (*ListObjectsRequest)(nil), // 22: gitops_core.v1.ListObjectsRequest + (*ClusterNamespaceList)(nil), // 23: gitops_core.v1.ClusterNamespaceList + (*ListObjectsResponse)(nil), // 24: gitops_core.v1.ListObjectsResponse + (*GetReconciledObjectsRequest)(nil), // 25: gitops_core.v1.GetReconciledObjectsRequest + (*GetReconciledObjectsResponse)(nil), // 26: gitops_core.v1.GetReconciledObjectsResponse + (*GetChildObjectsRequest)(nil), // 27: gitops_core.v1.GetChildObjectsRequest + (*GetChildObjectsResponse)(nil), // 28: gitops_core.v1.GetChildObjectsResponse + (*GetFluxNamespaceRequest)(nil), // 29: gitops_core.v1.GetFluxNamespaceRequest + (*GetFluxNamespaceResponse)(nil), // 30: gitops_core.v1.GetFluxNamespaceResponse + (*ListNamespacesRequest)(nil), // 31: gitops_core.v1.ListNamespacesRequest + (*ListNamespacesResponse)(nil), // 32: gitops_core.v1.ListNamespacesResponse + (*ListEventsRequest)(nil), // 33: gitops_core.v1.ListEventsRequest + (*ListEventsResponse)(nil), // 34: gitops_core.v1.ListEventsResponse + (*SyncFluxObjectRequest)(nil), // 35: gitops_core.v1.SyncFluxObjectRequest + (*SyncFluxObjectResponse)(nil), // 36: gitops_core.v1.SyncFluxObjectResponse + (*GetVersionRequest)(nil), // 37: gitops_core.v1.GetVersionRequest + (*GetVersionResponse)(nil), // 38: gitops_core.v1.GetVersionResponse + (*GetFeatureFlagsRequest)(nil), // 39: gitops_core.v1.GetFeatureFlagsRequest + (*GetFeatureFlagsResponse)(nil), // 40: gitops_core.v1.GetFeatureFlagsResponse + (*ToggleSuspendResourceRequest)(nil), // 41: gitops_core.v1.ToggleSuspendResourceRequest + (*ToggleSuspendResourceResponse)(nil), // 42: gitops_core.v1.ToggleSuspendResourceResponse + (*GetSessionLogsRequest)(nil), // 43: gitops_core.v1.GetSessionLogsRequest + (*LogEntry)(nil), // 44: gitops_core.v1.LogEntry + (*GetSessionLogsResponse)(nil), // 45: gitops_core.v1.GetSessionLogsResponse + (*IsCRDAvailableRequest)(nil), // 46: gitops_core.v1.IsCRDAvailableRequest + (*IsCRDAvailableResponse)(nil), // 47: gitops_core.v1.IsCRDAvailableResponse + (*ListPoliciesRequest)(nil), // 48: gitops_core.v1.ListPoliciesRequest + (*ListPoliciesResponse)(nil), // 49: gitops_core.v1.ListPoliciesResponse + (*GetPolicyRequest)(nil), // 50: gitops_core.v1.GetPolicyRequest + (*GetPolicyResponse)(nil), // 51: gitops_core.v1.GetPolicyResponse + (*PolicyObj)(nil), // 52: gitops_core.v1.PolicyObj + (*PolicyStandard)(nil), // 53: gitops_core.v1.PolicyStandard + (*PolicyParam)(nil), // 54: gitops_core.v1.PolicyParam + (*PolicyTargets)(nil), // 55: gitops_core.v1.PolicyTargets + (*PolicyTargetLabel)(nil), // 56: gitops_core.v1.PolicyTargetLabel + nil, // 57: gitops_core.v1.ListObjectsRequest.LabelsEntry + nil, // 58: gitops_core.v1.GetFeatureFlagsResponse.FlagsEntry + nil, // 59: gitops_core.v1.IsCRDAvailableResponse.ClustersEntry + nil, // 60: gitops_core.v1.PolicyTargetLabel.ValuesEntry + (*InventoryEntry)(nil), // 61: gitops_core.v1.InventoryEntry + (*anypb.Any)(nil), // 62: google.protobuf.Any + (*Deployment)(nil), // 63: gitops_core.v1.Deployment + (*Crd)(nil), // 64: gitops_core.v1.Crd + (*Object)(nil), // 65: gitops_core.v1.Object + (*GroupVersionKind)(nil), // 66: gitops_core.v1.GroupVersionKind + (*Namespace)(nil), // 67: gitops_core.v1.Namespace + (*ObjectRef)(nil), // 68: gitops_core.v1.ObjectRef + (*Event)(nil), // 69: gitops_core.v1.Event } var file_api_core_core_proto_depIdxs = []int32{ - 57, // 0: gitops_core.v1.GetInventoryResponse.entries:type_name -> gitops_core.v1.InventoryEntry + 61, // 0: gitops_core.v1.GetInventoryResponse.entries:type_name -> gitops_core.v1.InventoryEntry 7, // 1: gitops_core.v1.PolicyValidation.occurrences:type_name -> gitops_core.v1.PolicyValidationOccurrence 8, // 2: gitops_core.v1.PolicyValidation.parameters:type_name -> gitops_core.v1.PolicyValidationParam 10, // 3: gitops_core.v1.ListPolicyValidationsRequest.pagination:type_name -> gitops_core.v1.Pagination 2, // 4: gitops_core.v1.ListPolicyValidationsResponse.violations:type_name -> gitops_core.v1.PolicyValidation 11, // 5: gitops_core.v1.ListPolicyValidationsResponse.errors:type_name -> gitops_core.v1.ListError 2, // 6: gitops_core.v1.GetPolicyValidationResponse.validation:type_name -> gitops_core.v1.PolicyValidation - 58, // 7: gitops_core.v1.PolicyValidationParam.value:type_name -> google.protobuf.Any - 59, // 8: gitops_core.v1.ListFluxRuntimeObjectsResponse.deployments:type_name -> gitops_core.v1.Deployment + 62, // 7: gitops_core.v1.PolicyValidationParam.value:type_name -> google.protobuf.Any + 63, // 8: gitops_core.v1.ListFluxRuntimeObjectsResponse.deployments:type_name -> gitops_core.v1.Deployment 11, // 9: gitops_core.v1.ListFluxRuntimeObjectsResponse.errors:type_name -> gitops_core.v1.ListError - 60, // 10: gitops_core.v1.ListFluxCrdsResponse.crds:type_name -> gitops_core.v1.Crd - 11, // 11: gitops_core.v1.ListFluxCrdsResponse.errors:type_name -> gitops_core.v1.ListError - 61, // 12: gitops_core.v1.GetObjectResponse.object:type_name -> gitops_core.v1.Object - 53, // 13: gitops_core.v1.ListObjectsRequest.labels:type_name -> gitops_core.v1.ListObjectsRequest.LabelsEntry - 61, // 14: gitops_core.v1.ListObjectsResponse.objects:type_name -> gitops_core.v1.Object - 11, // 15: gitops_core.v1.ListObjectsResponse.errors:type_name -> gitops_core.v1.ListError - 19, // 16: gitops_core.v1.ListObjectsResponse.searchedNamespaces:type_name -> gitops_core.v1.ClusterNamespaceList - 62, // 17: gitops_core.v1.GetReconciledObjectsRequest.kinds:type_name -> gitops_core.v1.GroupVersionKind - 61, // 18: gitops_core.v1.GetReconciledObjectsResponse.objects:type_name -> gitops_core.v1.Object - 62, // 19: gitops_core.v1.GetChildObjectsRequest.groupVersionKind:type_name -> gitops_core.v1.GroupVersionKind - 61, // 20: gitops_core.v1.GetChildObjectsResponse.objects:type_name -> gitops_core.v1.Object - 63, // 21: gitops_core.v1.ListNamespacesResponse.namespaces:type_name -> gitops_core.v1.Namespace - 64, // 22: gitops_core.v1.ListEventsRequest.involvedObject:type_name -> gitops_core.v1.ObjectRef - 65, // 23: gitops_core.v1.ListEventsResponse.events:type_name -> gitops_core.v1.Event - 64, // 24: gitops_core.v1.SyncFluxObjectRequest.objects:type_name -> gitops_core.v1.ObjectRef - 54, // 25: gitops_core.v1.GetFeatureFlagsResponse.flags:type_name -> gitops_core.v1.GetFeatureFlagsResponse.FlagsEntry - 64, // 26: gitops_core.v1.ToggleSuspendResourceRequest.objects:type_name -> gitops_core.v1.ObjectRef - 40, // 27: gitops_core.v1.GetSessionLogsResponse.logs:type_name -> gitops_core.v1.LogEntry - 55, // 28: gitops_core.v1.IsCRDAvailableResponse.clusters:type_name -> gitops_core.v1.IsCRDAvailableResponse.ClustersEntry - 10, // 29: gitops_core.v1.ListPoliciesRequest.pagination:type_name -> gitops_core.v1.Pagination - 48, // 30: gitops_core.v1.ListPoliciesResponse.policies:type_name -> gitops_core.v1.PolicyObj - 11, // 31: gitops_core.v1.ListPoliciesResponse.errors:type_name -> gitops_core.v1.ListError - 48, // 32: gitops_core.v1.GetPolicyResponse.policy:type_name -> gitops_core.v1.PolicyObj - 49, // 33: gitops_core.v1.PolicyObj.standards:type_name -> gitops_core.v1.PolicyStandard - 50, // 34: gitops_core.v1.PolicyObj.parameters:type_name -> gitops_core.v1.PolicyParam - 51, // 35: gitops_core.v1.PolicyObj.targets:type_name -> gitops_core.v1.PolicyTargets - 58, // 36: gitops_core.v1.PolicyParam.value:type_name -> google.protobuf.Any - 52, // 37: gitops_core.v1.PolicyTargets.labels:type_name -> gitops_core.v1.PolicyTargetLabel - 56, // 38: gitops_core.v1.PolicyTargetLabel.values:type_name -> gitops_core.v1.PolicyTargetLabel.ValuesEntry - 16, // 39: gitops_core.v1.Core.GetObject:input_type -> gitops_core.v1.GetObjectRequest - 18, // 40: gitops_core.v1.Core.ListObjects:input_type -> gitops_core.v1.ListObjectsRequest - 12, // 41: gitops_core.v1.Core.ListFluxRuntimeObjects:input_type -> gitops_core.v1.ListFluxRuntimeObjectsRequest - 14, // 42: gitops_core.v1.Core.ListFluxCrds:input_type -> gitops_core.v1.ListFluxCrdsRequest - 21, // 43: gitops_core.v1.Core.GetReconciledObjects:input_type -> gitops_core.v1.GetReconciledObjectsRequest - 23, // 44: gitops_core.v1.Core.GetChildObjects:input_type -> gitops_core.v1.GetChildObjectsRequest - 25, // 45: gitops_core.v1.Core.GetFluxNamespace:input_type -> gitops_core.v1.GetFluxNamespaceRequest - 27, // 46: gitops_core.v1.Core.ListNamespaces:input_type -> gitops_core.v1.ListNamespacesRequest - 29, // 47: gitops_core.v1.Core.ListEvents:input_type -> gitops_core.v1.ListEventsRequest - 31, // 48: gitops_core.v1.Core.SyncFluxObject:input_type -> gitops_core.v1.SyncFluxObjectRequest - 33, // 49: gitops_core.v1.Core.GetVersion:input_type -> gitops_core.v1.GetVersionRequest - 35, // 50: gitops_core.v1.Core.GetFeatureFlags:input_type -> gitops_core.v1.GetFeatureFlagsRequest - 37, // 51: gitops_core.v1.Core.ToggleSuspendResource:input_type -> gitops_core.v1.ToggleSuspendResourceRequest - 39, // 52: gitops_core.v1.Core.GetSessionLogs:input_type -> gitops_core.v1.GetSessionLogsRequest - 42, // 53: gitops_core.v1.Core.IsCRDAvailable:input_type -> gitops_core.v1.IsCRDAvailableRequest - 0, // 54: gitops_core.v1.Core.GetInventory:input_type -> gitops_core.v1.GetInventoryRequest - 44, // 55: gitops_core.v1.Core.ListPolicies:input_type -> gitops_core.v1.ListPoliciesRequest - 46, // 56: gitops_core.v1.Core.GetPolicy:input_type -> gitops_core.v1.GetPolicyRequest - 3, // 57: gitops_core.v1.Core.ListPolicyValidations:input_type -> gitops_core.v1.ListPolicyValidationsRequest - 5, // 58: gitops_core.v1.Core.GetPolicyValidation:input_type -> gitops_core.v1.GetPolicyValidationRequest - 17, // 59: gitops_core.v1.Core.GetObject:output_type -> gitops_core.v1.GetObjectResponse - 20, // 60: gitops_core.v1.Core.ListObjects:output_type -> gitops_core.v1.ListObjectsResponse - 13, // 61: gitops_core.v1.Core.ListFluxRuntimeObjects:output_type -> gitops_core.v1.ListFluxRuntimeObjectsResponse - 15, // 62: gitops_core.v1.Core.ListFluxCrds:output_type -> gitops_core.v1.ListFluxCrdsResponse - 22, // 63: gitops_core.v1.Core.GetReconciledObjects:output_type -> gitops_core.v1.GetReconciledObjectsResponse - 24, // 64: gitops_core.v1.Core.GetChildObjects:output_type -> gitops_core.v1.GetChildObjectsResponse - 26, // 65: gitops_core.v1.Core.GetFluxNamespace:output_type -> gitops_core.v1.GetFluxNamespaceResponse - 28, // 66: gitops_core.v1.Core.ListNamespaces:output_type -> gitops_core.v1.ListNamespacesResponse - 30, // 67: gitops_core.v1.Core.ListEvents:output_type -> gitops_core.v1.ListEventsResponse - 32, // 68: gitops_core.v1.Core.SyncFluxObject:output_type -> gitops_core.v1.SyncFluxObjectResponse - 34, // 69: gitops_core.v1.Core.GetVersion:output_type -> gitops_core.v1.GetVersionResponse - 36, // 70: gitops_core.v1.Core.GetFeatureFlags:output_type -> gitops_core.v1.GetFeatureFlagsResponse - 38, // 71: gitops_core.v1.Core.ToggleSuspendResource:output_type -> gitops_core.v1.ToggleSuspendResourceResponse - 41, // 72: gitops_core.v1.Core.GetSessionLogs:output_type -> gitops_core.v1.GetSessionLogsResponse - 43, // 73: gitops_core.v1.Core.IsCRDAvailable:output_type -> gitops_core.v1.IsCRDAvailableResponse - 1, // 74: gitops_core.v1.Core.GetInventory:output_type -> gitops_core.v1.GetInventoryResponse - 45, // 75: gitops_core.v1.Core.ListPolicies:output_type -> gitops_core.v1.ListPoliciesResponse - 47, // 76: gitops_core.v1.Core.GetPolicy:output_type -> gitops_core.v1.GetPolicyResponse - 4, // 77: gitops_core.v1.Core.ListPolicyValidations:output_type -> gitops_core.v1.ListPolicyValidationsResponse - 6, // 78: gitops_core.v1.Core.GetPolicyValidation:output_type -> gitops_core.v1.GetPolicyValidationResponse - 59, // [59:79] is the sub-list for method output_type - 39, // [39:59] is the sub-list for method input_type - 39, // [39:39] is the sub-list for extension type_name - 39, // [39:39] is the sub-list for extension extendee - 0, // [0:39] is the sub-list for field type_name + 63, // 10: gitops_core.v1.ListRuntimeObjectsResponse.deployments:type_name -> gitops_core.v1.Deployment + 11, // 11: gitops_core.v1.ListRuntimeObjectsResponse.errors:type_name -> gitops_core.v1.ListError + 64, // 12: gitops_core.v1.ListFluxCrdsResponse.crds:type_name -> gitops_core.v1.Crd + 11, // 13: gitops_core.v1.ListFluxCrdsResponse.errors:type_name -> gitops_core.v1.ListError + 64, // 14: gitops_core.v1.ListRuntimeCrdsResponse.crds:type_name -> gitops_core.v1.Crd + 11, // 15: gitops_core.v1.ListRuntimeCrdsResponse.errors:type_name -> gitops_core.v1.ListError + 65, // 16: gitops_core.v1.GetObjectResponse.object:type_name -> gitops_core.v1.Object + 57, // 17: gitops_core.v1.ListObjectsRequest.labels:type_name -> gitops_core.v1.ListObjectsRequest.LabelsEntry + 65, // 18: gitops_core.v1.ListObjectsResponse.objects:type_name -> gitops_core.v1.Object + 11, // 19: gitops_core.v1.ListObjectsResponse.errors:type_name -> gitops_core.v1.ListError + 23, // 20: gitops_core.v1.ListObjectsResponse.searchedNamespaces:type_name -> gitops_core.v1.ClusterNamespaceList + 66, // 21: gitops_core.v1.GetReconciledObjectsRequest.kinds:type_name -> gitops_core.v1.GroupVersionKind + 65, // 22: gitops_core.v1.GetReconciledObjectsResponse.objects:type_name -> gitops_core.v1.Object + 66, // 23: gitops_core.v1.GetChildObjectsRequest.groupVersionKind:type_name -> gitops_core.v1.GroupVersionKind + 65, // 24: gitops_core.v1.GetChildObjectsResponse.objects:type_name -> gitops_core.v1.Object + 67, // 25: gitops_core.v1.ListNamespacesResponse.namespaces:type_name -> gitops_core.v1.Namespace + 68, // 26: gitops_core.v1.ListEventsRequest.involvedObject:type_name -> gitops_core.v1.ObjectRef + 69, // 27: gitops_core.v1.ListEventsResponse.events:type_name -> gitops_core.v1.Event + 68, // 28: gitops_core.v1.SyncFluxObjectRequest.objects:type_name -> gitops_core.v1.ObjectRef + 58, // 29: gitops_core.v1.GetFeatureFlagsResponse.flags:type_name -> gitops_core.v1.GetFeatureFlagsResponse.FlagsEntry + 68, // 30: gitops_core.v1.ToggleSuspendResourceRequest.objects:type_name -> gitops_core.v1.ObjectRef + 44, // 31: gitops_core.v1.GetSessionLogsResponse.logs:type_name -> gitops_core.v1.LogEntry + 59, // 32: gitops_core.v1.IsCRDAvailableResponse.clusters:type_name -> gitops_core.v1.IsCRDAvailableResponse.ClustersEntry + 10, // 33: gitops_core.v1.ListPoliciesRequest.pagination:type_name -> gitops_core.v1.Pagination + 52, // 34: gitops_core.v1.ListPoliciesResponse.policies:type_name -> gitops_core.v1.PolicyObj + 11, // 35: gitops_core.v1.ListPoliciesResponse.errors:type_name -> gitops_core.v1.ListError + 52, // 36: gitops_core.v1.GetPolicyResponse.policy:type_name -> gitops_core.v1.PolicyObj + 53, // 37: gitops_core.v1.PolicyObj.standards:type_name -> gitops_core.v1.PolicyStandard + 54, // 38: gitops_core.v1.PolicyObj.parameters:type_name -> gitops_core.v1.PolicyParam + 55, // 39: gitops_core.v1.PolicyObj.targets:type_name -> gitops_core.v1.PolicyTargets + 62, // 40: gitops_core.v1.PolicyParam.value:type_name -> google.protobuf.Any + 56, // 41: gitops_core.v1.PolicyTargets.labels:type_name -> gitops_core.v1.PolicyTargetLabel + 60, // 42: gitops_core.v1.PolicyTargetLabel.values:type_name -> gitops_core.v1.PolicyTargetLabel.ValuesEntry + 20, // 43: gitops_core.v1.Core.GetObject:input_type -> gitops_core.v1.GetObjectRequest + 22, // 44: gitops_core.v1.Core.ListObjects:input_type -> gitops_core.v1.ListObjectsRequest + 12, // 45: gitops_core.v1.Core.ListFluxRuntimeObjects:input_type -> gitops_core.v1.ListFluxRuntimeObjectsRequest + 16, // 46: gitops_core.v1.Core.ListFluxCrds:input_type -> gitops_core.v1.ListFluxCrdsRequest + 14, // 47: gitops_core.v1.Core.ListRuntimeObjects:input_type -> gitops_core.v1.ListRuntimeObjectsRequest + 18, // 48: gitops_core.v1.Core.ListRuntimeCrds:input_type -> gitops_core.v1.ListRuntimeCrdsRequest + 25, // 49: gitops_core.v1.Core.GetReconciledObjects:input_type -> gitops_core.v1.GetReconciledObjectsRequest + 27, // 50: gitops_core.v1.Core.GetChildObjects:input_type -> gitops_core.v1.GetChildObjectsRequest + 29, // 51: gitops_core.v1.Core.GetFluxNamespace:input_type -> gitops_core.v1.GetFluxNamespaceRequest + 31, // 52: gitops_core.v1.Core.ListNamespaces:input_type -> gitops_core.v1.ListNamespacesRequest + 33, // 53: gitops_core.v1.Core.ListEvents:input_type -> gitops_core.v1.ListEventsRequest + 35, // 54: gitops_core.v1.Core.SyncFluxObject:input_type -> gitops_core.v1.SyncFluxObjectRequest + 37, // 55: gitops_core.v1.Core.GetVersion:input_type -> gitops_core.v1.GetVersionRequest + 39, // 56: gitops_core.v1.Core.GetFeatureFlags:input_type -> gitops_core.v1.GetFeatureFlagsRequest + 41, // 57: gitops_core.v1.Core.ToggleSuspendResource:input_type -> gitops_core.v1.ToggleSuspendResourceRequest + 43, // 58: gitops_core.v1.Core.GetSessionLogs:input_type -> gitops_core.v1.GetSessionLogsRequest + 46, // 59: gitops_core.v1.Core.IsCRDAvailable:input_type -> gitops_core.v1.IsCRDAvailableRequest + 0, // 60: gitops_core.v1.Core.GetInventory:input_type -> gitops_core.v1.GetInventoryRequest + 48, // 61: gitops_core.v1.Core.ListPolicies:input_type -> gitops_core.v1.ListPoliciesRequest + 50, // 62: gitops_core.v1.Core.GetPolicy:input_type -> gitops_core.v1.GetPolicyRequest + 3, // 63: gitops_core.v1.Core.ListPolicyValidations:input_type -> gitops_core.v1.ListPolicyValidationsRequest + 5, // 64: gitops_core.v1.Core.GetPolicyValidation:input_type -> gitops_core.v1.GetPolicyValidationRequest + 21, // 65: gitops_core.v1.Core.GetObject:output_type -> gitops_core.v1.GetObjectResponse + 24, // 66: gitops_core.v1.Core.ListObjects:output_type -> gitops_core.v1.ListObjectsResponse + 13, // 67: gitops_core.v1.Core.ListFluxRuntimeObjects:output_type -> gitops_core.v1.ListFluxRuntimeObjectsResponse + 17, // 68: gitops_core.v1.Core.ListFluxCrds:output_type -> gitops_core.v1.ListFluxCrdsResponse + 15, // 69: gitops_core.v1.Core.ListRuntimeObjects:output_type -> gitops_core.v1.ListRuntimeObjectsResponse + 19, // 70: gitops_core.v1.Core.ListRuntimeCrds:output_type -> gitops_core.v1.ListRuntimeCrdsResponse + 26, // 71: gitops_core.v1.Core.GetReconciledObjects:output_type -> gitops_core.v1.GetReconciledObjectsResponse + 28, // 72: gitops_core.v1.Core.GetChildObjects:output_type -> gitops_core.v1.GetChildObjectsResponse + 30, // 73: gitops_core.v1.Core.GetFluxNamespace:output_type -> gitops_core.v1.GetFluxNamespaceResponse + 32, // 74: gitops_core.v1.Core.ListNamespaces:output_type -> gitops_core.v1.ListNamespacesResponse + 34, // 75: gitops_core.v1.Core.ListEvents:output_type -> gitops_core.v1.ListEventsResponse + 36, // 76: gitops_core.v1.Core.SyncFluxObject:output_type -> gitops_core.v1.SyncFluxObjectResponse + 38, // 77: gitops_core.v1.Core.GetVersion:output_type -> gitops_core.v1.GetVersionResponse + 40, // 78: gitops_core.v1.Core.GetFeatureFlags:output_type -> gitops_core.v1.GetFeatureFlagsResponse + 42, // 79: gitops_core.v1.Core.ToggleSuspendResource:output_type -> gitops_core.v1.ToggleSuspendResourceResponse + 45, // 80: gitops_core.v1.Core.GetSessionLogs:output_type -> gitops_core.v1.GetSessionLogsResponse + 47, // 81: gitops_core.v1.Core.IsCRDAvailable:output_type -> gitops_core.v1.IsCRDAvailableResponse + 1, // 82: gitops_core.v1.Core.GetInventory:output_type -> gitops_core.v1.GetInventoryResponse + 49, // 83: gitops_core.v1.Core.ListPolicies:output_type -> gitops_core.v1.ListPoliciesResponse + 51, // 84: gitops_core.v1.Core.GetPolicy:output_type -> gitops_core.v1.GetPolicyResponse + 4, // 85: gitops_core.v1.Core.ListPolicyValidations:output_type -> gitops_core.v1.ListPolicyValidationsResponse + 6, // 86: gitops_core.v1.Core.GetPolicyValidation:output_type -> gitops_core.v1.GetPolicyValidationResponse + 65, // [65:87] is the sub-list for method output_type + 43, // [43:65] is the sub-list for method input_type + 43, // [43:43] is the sub-list for extension type_name + 43, // [43:43] is the sub-list for extension extendee + 0, // [0:43] is the sub-list for field type_name } func init() { file_api_core_core_proto_init() } @@ -4250,7 +4516,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListFluxCrdsRequest); i { + switch v := v.(*ListRuntimeObjectsRequest); i { case 0: return &v.state case 1: @@ -4262,7 +4528,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListFluxCrdsResponse); i { + switch v := v.(*ListRuntimeObjectsResponse); i { case 0: return &v.state case 1: @@ -4274,7 +4540,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetObjectRequest); i { + switch v := v.(*ListFluxCrdsRequest); i { case 0: return &v.state case 1: @@ -4286,7 +4552,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetObjectResponse); i { + switch v := v.(*ListFluxCrdsResponse); i { case 0: return &v.state case 1: @@ -4298,7 +4564,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListObjectsRequest); i { + switch v := v.(*ListRuntimeCrdsRequest); i { case 0: return &v.state case 1: @@ -4310,7 +4576,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClusterNamespaceList); i { + switch v := v.(*ListRuntimeCrdsResponse); i { case 0: return &v.state case 1: @@ -4322,7 +4588,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListObjectsResponse); i { + switch v := v.(*GetObjectRequest); i { case 0: return &v.state case 1: @@ -4334,7 +4600,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetReconciledObjectsRequest); i { + switch v := v.(*GetObjectResponse); i { case 0: return &v.state case 1: @@ -4346,7 +4612,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetReconciledObjectsResponse); i { + switch v := v.(*ListObjectsRequest); i { case 0: return &v.state case 1: @@ -4358,7 +4624,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetChildObjectsRequest); i { + switch v := v.(*ClusterNamespaceList); i { case 0: return &v.state case 1: @@ -4370,7 +4636,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetChildObjectsResponse); i { + switch v := v.(*ListObjectsResponse); i { case 0: return &v.state case 1: @@ -4382,7 +4648,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFluxNamespaceRequest); i { + switch v := v.(*GetReconciledObjectsRequest); i { case 0: return &v.state case 1: @@ -4394,7 +4660,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFluxNamespaceResponse); i { + switch v := v.(*GetReconciledObjectsResponse); i { case 0: return &v.state case 1: @@ -4406,7 +4672,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListNamespacesRequest); i { + switch v := v.(*GetChildObjectsRequest); i { case 0: return &v.state case 1: @@ -4418,7 +4684,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListNamespacesResponse); i { + switch v := v.(*GetChildObjectsResponse); i { case 0: return &v.state case 1: @@ -4430,7 +4696,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListEventsRequest); i { + switch v := v.(*GetFluxNamespaceRequest); i { case 0: return &v.state case 1: @@ -4442,7 +4708,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListEventsResponse); i { + switch v := v.(*GetFluxNamespaceResponse); i { case 0: return &v.state case 1: @@ -4454,7 +4720,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SyncFluxObjectRequest); i { + switch v := v.(*ListNamespacesRequest); i { case 0: return &v.state case 1: @@ -4466,7 +4732,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SyncFluxObjectResponse); i { + switch v := v.(*ListNamespacesResponse); i { case 0: return &v.state case 1: @@ -4478,7 +4744,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVersionRequest); i { + switch v := v.(*ListEventsRequest); i { case 0: return &v.state case 1: @@ -4490,7 +4756,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVersionResponse); i { + switch v := v.(*ListEventsResponse); i { case 0: return &v.state case 1: @@ -4502,7 +4768,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFeatureFlagsRequest); i { + switch v := v.(*SyncFluxObjectRequest); i { case 0: return &v.state case 1: @@ -4514,7 +4780,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFeatureFlagsResponse); i { + switch v := v.(*SyncFluxObjectResponse); i { case 0: return &v.state case 1: @@ -4526,7 +4792,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ToggleSuspendResourceRequest); i { + switch v := v.(*GetVersionRequest); i { case 0: return &v.state case 1: @@ -4538,7 +4804,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ToggleSuspendResourceResponse); i { + switch v := v.(*GetVersionResponse); i { case 0: return &v.state case 1: @@ -4550,7 +4816,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSessionLogsRequest); i { + switch v := v.(*GetFeatureFlagsRequest); i { case 0: return &v.state case 1: @@ -4562,7 +4828,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LogEntry); i { + switch v := v.(*GetFeatureFlagsResponse); i { case 0: return &v.state case 1: @@ -4574,7 +4840,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSessionLogsResponse); i { + switch v := v.(*ToggleSuspendResourceRequest); i { case 0: return &v.state case 1: @@ -4586,7 +4852,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsCRDAvailableRequest); i { + switch v := v.(*ToggleSuspendResourceResponse); i { case 0: return &v.state case 1: @@ -4598,7 +4864,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsCRDAvailableResponse); i { + switch v := v.(*GetSessionLogsRequest); i { case 0: return &v.state case 1: @@ -4610,7 +4876,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListPoliciesRequest); i { + switch v := v.(*LogEntry); i { case 0: return &v.state case 1: @@ -4622,7 +4888,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListPoliciesResponse); i { + switch v := v.(*GetSessionLogsResponse); i { case 0: return &v.state case 1: @@ -4634,7 +4900,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPolicyRequest); i { + switch v := v.(*IsCRDAvailableRequest); i { case 0: return &v.state case 1: @@ -4646,7 +4912,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPolicyResponse); i { + switch v := v.(*IsCRDAvailableResponse); i { case 0: return &v.state case 1: @@ -4658,7 +4924,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PolicyObj); i { + switch v := v.(*ListPoliciesRequest); i { case 0: return &v.state case 1: @@ -4670,7 +4936,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PolicyStandard); i { + switch v := v.(*ListPoliciesResponse); i { case 0: return &v.state case 1: @@ -4682,7 +4948,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PolicyParam); i { + switch v := v.(*GetPolicyRequest); i { case 0: return &v.state case 1: @@ -4694,7 +4960,7 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PolicyTargets); i { + switch v := v.(*GetPolicyResponse); i { case 0: return &v.state case 1: @@ -4706,6 +4972,54 @@ func file_api_core_core_proto_init() { } } file_api_core_core_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PolicyObj); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_core_core_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PolicyStandard); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_core_core_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PolicyParam); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_core_core_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PolicyTargets); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_core_core_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PolicyTargetLabel); i { case 0: return &v.state @@ -4724,7 +5038,7 @@ func file_api_core_core_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_api_core_core_proto_rawDesc, NumEnums: 0, - NumMessages: 57, + NumMessages: 61, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/api/core/core.pb.gw.go b/pkg/api/core/core.pb.gw.go index c9dfdb2961..0175e38668 100644 --- a/pkg/api/core/core.pb.gw.go +++ b/pkg/api/core/core.pb.gw.go @@ -207,6 +207,78 @@ func local_request_Core_ListFluxCrds_0(ctx context.Context, marshaler runtime.Ma } +var ( + filter_Core_ListRuntimeObjects_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_Core_ListRuntimeObjects_0(ctx context.Context, marshaler runtime.Marshaler, client CoreClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListRuntimeObjectsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Core_ListRuntimeObjects_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListRuntimeObjects(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Core_ListRuntimeObjects_0(ctx context.Context, marshaler runtime.Marshaler, server CoreServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListRuntimeObjectsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Core_ListRuntimeObjects_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListRuntimeObjects(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_Core_ListRuntimeCrds_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_Core_ListRuntimeCrds_0(ctx context.Context, marshaler runtime.Marshaler, client CoreClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListRuntimeCrdsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Core_ListRuntimeCrds_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.ListRuntimeCrds(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_Core_ListRuntimeCrds_0(ctx context.Context, marshaler runtime.Marshaler, server CoreServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq ListRuntimeCrdsRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_Core_ListRuntimeCrds_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.ListRuntimeCrds(ctx, &protoReq) + return msg, metadata, err + +} + func request_Core_GetReconciledObjects_0(ctx context.Context, marshaler runtime.Marshaler, client CoreClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq GetReconciledObjectsRequest var metadata runtime.ServerMetadata @@ -881,6 +953,52 @@ func RegisterCoreHandlerServer(ctx context.Context, mux *runtime.ServeMux, serve }) + mux.Handle("GET", pattern_Core_ListRuntimeObjects_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gitops_core.v1.Core/ListRuntimeObjects", runtime.WithHTTPPathPattern("/v1/runtime_objects")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Core_ListRuntimeObjects_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Core_ListRuntimeObjects_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Core_ListRuntimeCrds_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req, "/gitops_core.v1.Core/ListRuntimeCrds", runtime.WithHTTPPathPattern("/v1/runtime_crds")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_Core_ListRuntimeCrds_0(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Core_ListRuntimeCrds_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_Core_GetReconciledObjects_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1370,6 +1488,46 @@ func RegisterCoreHandlerClient(ctx context.Context, mux *runtime.ServeMux, clien }) + mux.Handle("GET", pattern_Core_ListRuntimeObjects_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gitops_core.v1.Core/ListRuntimeObjects", runtime.WithHTTPPathPattern("/v1/runtime_objects")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Core_ListRuntimeObjects_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Core_ListRuntimeObjects_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_Core_ListRuntimeCrds_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req, "/gitops_core.v1.Core/ListRuntimeCrds", runtime.WithHTTPPathPattern("/v1/runtime_crds")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_Core_ListRuntimeCrds_0(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_Core_ListRuntimeCrds_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_Core_GetReconciledObjects_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1702,6 +1860,10 @@ var ( pattern_Core_ListFluxCrds_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "flux_crds"}, "")) + pattern_Core_ListRuntimeObjects_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "runtime_objects"}, "")) + + pattern_Core_ListRuntimeCrds_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "runtime_crds"}, "")) + pattern_Core_GetReconciledObjects_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "reconciled_objects"}, "")) pattern_Core_GetChildObjects_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "child_objects"}, "")) @@ -1744,6 +1906,10 @@ var ( forward_Core_ListFluxCrds_0 = runtime.ForwardResponseMessage + forward_Core_ListRuntimeObjects_0 = runtime.ForwardResponseMessage + + forward_Core_ListRuntimeCrds_0 = runtime.ForwardResponseMessage + forward_Core_GetReconciledObjects_0 = runtime.ForwardResponseMessage forward_Core_GetChildObjects_0 = runtime.ForwardResponseMessage diff --git a/pkg/api/core/core_grpc.pb.go b/pkg/api/core/core_grpc.pb.go index d96c1bde8f..7a7bd8deb6 100644 --- a/pkg/api/core/core_grpc.pb.go +++ b/pkg/api/core/core_grpc.pb.go @@ -25,6 +25,14 @@ type CoreClient interface { // ListFluxRuntimeObjects lists the flux runtime deployments from a cluster. ListFluxRuntimeObjects(ctx context.Context, in *ListFluxRuntimeObjectsRequest, opts ...grpc.CallOption) (*ListFluxRuntimeObjectsResponse, error) ListFluxCrds(ctx context.Context, in *ListFluxCrdsRequest, opts ...grpc.CallOption) (*ListFluxCrdsResponse, error) + // ListRuntimeObjects lists Weave GitOps runtime components. + // Weave GitOps runtime is composed of Flux runtime but also other components + // in the ecosystem like TF-controller or Policy Agent. + ListRuntimeObjects(ctx context.Context, in *ListRuntimeObjectsRequest, opts ...grpc.CallOption) (*ListRuntimeObjectsResponse, error) + // ListRuntimeCrds lists Weave GitOps runtime components CRDs. + // Weave GitOps runtime is composed of Flux runtime but also other components + // in the ecosystem like TF-controller or Policy Agent. + ListRuntimeCrds(ctx context.Context, in *ListRuntimeCrdsRequest, opts ...grpc.CallOption) (*ListRuntimeCrdsResponse, error) // GetReconciledObjects returns a list of objects that were created // as a result of reconciling a Flux automation. // This list is derived by looking at the Kustomization or HelmRelease @@ -110,6 +118,24 @@ func (c *coreClient) ListFluxCrds(ctx context.Context, in *ListFluxCrdsRequest, return out, nil } +func (c *coreClient) ListRuntimeObjects(ctx context.Context, in *ListRuntimeObjectsRequest, opts ...grpc.CallOption) (*ListRuntimeObjectsResponse, error) { + out := new(ListRuntimeObjectsResponse) + err := c.cc.Invoke(ctx, "/gitops_core.v1.Core/ListRuntimeObjects", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *coreClient) ListRuntimeCrds(ctx context.Context, in *ListRuntimeCrdsRequest, opts ...grpc.CallOption) (*ListRuntimeCrdsResponse, error) { + out := new(ListRuntimeCrdsResponse) + err := c.cc.Invoke(ctx, "/gitops_core.v1.Core/ListRuntimeCrds", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *coreClient) GetReconciledObjects(ctx context.Context, in *GetReconciledObjectsRequest, opts ...grpc.CallOption) (*GetReconciledObjectsResponse, error) { out := new(GetReconciledObjectsResponse) err := c.cc.Invoke(ctx, "/gitops_core.v1.Core/GetReconciledObjects", in, out, opts...) @@ -265,6 +291,14 @@ type CoreServer interface { // ListFluxRuntimeObjects lists the flux runtime deployments from a cluster. ListFluxRuntimeObjects(context.Context, *ListFluxRuntimeObjectsRequest) (*ListFluxRuntimeObjectsResponse, error) ListFluxCrds(context.Context, *ListFluxCrdsRequest) (*ListFluxCrdsResponse, error) + // ListRuntimeObjects lists Weave GitOps runtime components. + // Weave GitOps runtime is composed of Flux runtime but also other components + // in the ecosystem like TF-controller or Policy Agent. + ListRuntimeObjects(context.Context, *ListRuntimeObjectsRequest) (*ListRuntimeObjectsResponse, error) + // ListRuntimeCrds lists Weave GitOps runtime components CRDs. + // Weave GitOps runtime is composed of Flux runtime but also other components + // in the ecosystem like TF-controller or Policy Agent. + ListRuntimeCrds(context.Context, *ListRuntimeCrdsRequest) (*ListRuntimeCrdsResponse, error) // GetReconciledObjects returns a list of objects that were created // as a result of reconciling a Flux automation. // This list is derived by looking at the Kustomization or HelmRelease @@ -323,6 +357,12 @@ func (UnimplementedCoreServer) ListFluxRuntimeObjects(context.Context, *ListFlux func (UnimplementedCoreServer) ListFluxCrds(context.Context, *ListFluxCrdsRequest) (*ListFluxCrdsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method ListFluxCrds not implemented") } +func (UnimplementedCoreServer) ListRuntimeObjects(context.Context, *ListRuntimeObjectsRequest) (*ListRuntimeObjectsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListRuntimeObjects not implemented") +} +func (UnimplementedCoreServer) ListRuntimeCrds(context.Context, *ListRuntimeCrdsRequest) (*ListRuntimeCrdsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method ListRuntimeCrds not implemented") +} func (UnimplementedCoreServer) GetReconciledObjects(context.Context, *GetReconciledObjectsRequest) (*GetReconciledObjectsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetReconciledObjects not implemented") } @@ -456,6 +496,42 @@ func _Core_ListFluxCrds_Handler(srv interface{}, ctx context.Context, dec func(i return interceptor(ctx, in, info, handler) } +func _Core_ListRuntimeObjects_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListRuntimeObjectsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CoreServer).ListRuntimeObjects(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gitops_core.v1.Core/ListRuntimeObjects", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CoreServer).ListRuntimeObjects(ctx, req.(*ListRuntimeObjectsRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _Core_ListRuntimeCrds_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ListRuntimeCrdsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CoreServer).ListRuntimeCrds(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gitops_core.v1.Core/ListRuntimeCrds", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CoreServer).ListRuntimeCrds(ctx, req.(*ListRuntimeCrdsRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _Core_GetReconciledObjects_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetReconciledObjectsRequest) if err := dec(in); err != nil { @@ -767,6 +843,14 @@ var Core_ServiceDesc = grpc.ServiceDesc{ MethodName: "ListFluxCrds", Handler: _Core_ListFluxCrds_Handler, }, + { + MethodName: "ListRuntimeObjects", + Handler: _Core_ListRuntimeObjects_Handler, + }, + { + MethodName: "ListRuntimeCrds", + Handler: _Core_ListRuntimeCrds_Handler, + }, { MethodName: "GetReconciledObjects", Handler: _Core_GetReconciledObjects_Handler, diff --git a/pkg/run/install/install_flux_test.go b/pkg/run/install/install_flux_test.go index 9aa8abfeb3..689961a410 100644 --- a/pkg/run/install/install_flux_test.go +++ b/pkg/run/install/install_flux_test.go @@ -40,7 +40,7 @@ var _ = Describe("GetFluxVersion", func() { fluxNs := &v1.Namespace{} fluxNs.Name = "flux-system" fluxNs.Labels = map[string]string{ - coretypes.PartOfLabel: server.FluxNamespacePartOf, + coretypes.PartOfLabel: server.Flux, } Expect(kubeClient.Create(ctx, fluxNs)).To(Succeed()) @@ -101,7 +101,7 @@ var _ = Describe("GetFluxVersion", func() { fluxNs := &v1.Namespace{} fluxNs.Name = "flux-ns-test" fluxNs.Labels = map[string]string{ - coretypes.PartOfLabel: server.FluxNamespacePartOf, + coretypes.PartOfLabel: server.Flux, coretypes.VersionLabel: testVersion, } diff --git a/tools/helm-values-dev.yaml b/tools/helm-values-dev.yaml index b15f3d5895..26ad61eeda 100644 --- a/tools/helm-values-dev.yaml +++ b/tools/helm-values-dev.yaml @@ -29,7 +29,8 @@ envVars: value: "Login with SSO" - name: WEAVE_GITOPS_FEATURE_DEV_MODE value: "true" - + - name: WEAVE_GITOPS_FEATURE_GITOPS_RUNTIME + value: "true" # Run the UI and API under /wego # additionalArgs: diff --git a/ui/App.tsx b/ui/App.tsx index c38b2c77a8..eeebcde691 100644 --- a/ui/App.tsx +++ b/ui/App.tsx @@ -28,6 +28,7 @@ import AppContextProvider, { } from "./contexts/AppContext"; import AuthContextProvider, { AuthCheck } from "./contexts/AuthContext"; import CoreClientContextProvider from "./contexts/CoreClientContext"; +import { useFeatureFlags } from "./hooks/featureflags"; import useNavigation from "./hooks/navigation"; import { useInDarkMode } from "./hooks/theme"; import { Core } from "./lib/api/core/core.pb"; @@ -52,6 +53,7 @@ import OCIRepositoryPage from "./pages/v2/OCIRepositoryPage"; import PoliciesList from "./pages/v2/PoliciesList"; import PolicyDetailsPage from "./pages/v2/PolicyDetailsPage"; import ProviderPage from "./pages/v2/ProviderPage"; +import Runtime from "./pages/v2/Runtime"; import Sources from "./pages/v2/Sources"; import UserInfo from "./pages/v2/UserInfo"; @@ -65,41 +67,60 @@ function withSearchParams(Cmp) { }; } -const navItems: NavItem[] = [ - { - label: "Applications", - link: { value: V2Routes.Automations }, - icon: IconType.ApplicationsIcon, - }, - { - label: "Sources", - link: { value: V2Routes.Sources }, - icon: IconType.SourcesIcon, - }, - { - label: "Image Automation", - link: { value: V2Routes.ImageAutomation }, - icon: IconType.ImageAutomationIcon, - }, - { - label: "Policies", - link: { value: V2Routes.Policies }, - icon: IconType.PoliciesIcon, - }, - { +function getRuntimeNavItem(isNewRuntimeEnabled: boolean): NavItem { + if (isNewRuntimeEnabled) { + return { + label: "Runtime", + link: { value: V2Routes.Runtime }, + icon: IconType.FluxIcon, + }; + } + + return { label: "Flux Runtime", link: { value: V2Routes.FluxRuntime }, icon: IconType.FluxIcon, - }, - { - label: "Notifications", - link: { value: V2Routes.Notifications }, - icon: IconType.NotificationsIcon, - }, -]; + }; +} const App = () => { const dark = useInDarkMode(); + + const { isFlagEnabled } = useFeatureFlags(); + + const isNewRuntimeEnabled = isFlagEnabled( + "WEAVE_GITOPS_FEATURE_GITOPS_RUNTIME" + ); + + const navItems: NavItem[] = [ + { + label: "Applications", + link: { value: V2Routes.Automations }, + icon: IconType.ApplicationsIcon, + }, + { + label: "Sources", + link: { value: V2Routes.Sources }, + icon: IconType.SourcesIcon, + }, + { + label: "Image Automation", + link: { value: V2Routes.ImageAutomation }, + icon: IconType.ImageAutomationIcon, + }, + { + label: "Policies", + link: { value: V2Routes.Policies }, + icon: IconType.PoliciesIcon, + }, + getRuntimeNavItem(isNewRuntimeEnabled), + { + label: "Notifications", + link: { value: V2Routes.Notifications }, + icon: IconType.NotificationsIcon, + }, + ]; + const [collapsed, setCollapsed] = React.useState(false); const { currentPage } = useNavigation(); const value = getParentNavRouteValue(currentPage); @@ -143,7 +164,11 @@ const App = () => { path={V2Routes.ImagePolicyDetails} component={withSearchParams(ImagePolicyDetails)} /> - + {isNewRuntimeEnabled ? ( + + ) : ( + + )} { component={withSearchParams(PolicyViolationPage)} /> - - - diff --git a/ui/components/FluxRuntime.tsx b/ui/components/FluxRuntime.tsx index f68f08151b..d3299bd250 100644 --- a/ui/components/FluxRuntime.tsx +++ b/ui/components/FluxRuntime.tsx @@ -8,18 +8,6 @@ import CrdsTable from "./CrdsTable"; import FluxVersionsTable, { FluxVersion } from "./FluxVersionsTable"; import { routeTab } from "./KustomizationDetail"; import SubRouterTabs, { RouterTab } from "./SubRouterTabs"; -import Text from "./Text"; - -const FluxVersionText = styled(Text)` - font-weight: 700; - margin-bottom: ${(props) => props.theme.spacing.medium}; - - span { - color: ${(props) => props.theme.colors.neutral40}; - font-weight: 400; - margin-left: ${(props) => props.theme.spacing.xs}; - } -`; type Props = { className?: string; @@ -27,6 +15,8 @@ type Props = { crds?: Crd[]; }; const fluxVersionLabel = "app.kubernetes.io/version"; +const partOfLabel = "app.kubernetes.io/part-of"; +const fluxLabel = "flux"; function FluxRuntime({ className, deployments, crds }: Props) { const { path } = useRouteMatch(); @@ -49,40 +39,32 @@ function FluxRuntime({ className, deployments, crds }: Props) { }, ]; const fluxVersions: { [key: string]: FluxVersion } = {}; - deployments.forEach((d) => { - const fv = d.labels[fluxVersionLabel]; - const k = `${fv}${d.clusterName}${d.namespace}`; - if (!fluxVersions[k]) { - fluxVersions[k] = { - version: fv, - clusterName: d.clusterName, - namespace: d.namespace, - }; - } - }); + deployments + .filter((d) => d.labels[partOfLabel] == fluxLabel) + .forEach((d) => { + const fv = d.labels[fluxVersionLabel]; + const k = `${fv}${d.clusterName}${d.namespace}`; + if (!fluxVersions[k]) { + fluxVersions[k] = { + version: fv, + clusterName: d.clusterName, + namespace: d.namespace, + }; + } + }); - const supportMultipleFlux = - Object.keys(fluxVersions).length > 1 ? true : false; + tabs.unshift({ + name: "Flux Versions", + path: `${path}/flux`, + component: () => { + return ; + }, + visible: true, + }); - if (supportMultipleFlux) { - tabs.unshift({ - name: "Flux Versions", - path: `${path}/flux`, - component: () => { - return ; - }, - visible: true, - }); - } return ( <> - {!supportMultipleFlux && deployments[0]?.labels[fluxVersionLabel] && ( - - This cluster is running Flux version: - {deployments[0].labels[fluxVersionLabel]} - - )} {tabs.map( (subRoute, index) => diff --git a/ui/hooks/flux.ts b/ui/hooks/flux.ts index c939ebc20d..96604dde23 100644 --- a/ui/hooks/flux.ts +++ b/ui/hooks/flux.ts @@ -4,6 +4,7 @@ import { CoreClientContext } from "../contexts/CoreClientContext"; import { ListFluxCrdsResponse, ListFluxRuntimeObjectsResponse, + ListRuntimeObjectsResponse, ToggleSuspendResourceRequest, ToggleSuspendResourceResponse, } from "../lib/api/core/core.pb"; @@ -44,6 +45,33 @@ export function useListFluxCrds(clusterName = DefaultCluster) { ); } +export function useListRuntimeObjects( + clusterName = DefaultCluster, + namespace = NoNamespace, + opts: ReactQueryOptions = { + retry: false, + refetchInterval: 5000, + } +) { + const { api } = useContext(CoreClientContext); + + return useQuery( + "runtime_objects", + () => api.ListRuntimeObjects({ namespace, clusterName }), + opts + ); +} + +export function useListRuntimeCrds(clusterName = DefaultCluster) { + const { api } = useContext(CoreClientContext); + + return useQuery( + "runtime_crds", + () => api.ListRuntimeCrds({ clusterName }), + { retry: false, refetchInterval: 5000 } + ); +} + export function flattenChildren(children: FluxObject[]) { return children.flatMap((child) => [child].concat(flattenChildren(child.children)) diff --git a/ui/index.ts b/ui/index.ts index 236838c2a7..22d17a1294 100644 --- a/ui/index.ts +++ b/ui/index.ts @@ -97,6 +97,8 @@ import { useFeatureFlags } from "./hooks/featureflags"; import { useListFluxCrds, useListFluxRuntimeObjects, + useListRuntimeObjects, + useListRuntimeCrds, useToggleSuspend, } from "./hooks/flux"; import { useCheckCRDInstalled } from "./hooks/imageautomation"; @@ -139,6 +141,7 @@ import { withBasePath, } from "./lib/utils"; import SignIn from "./pages/SignIn"; +import Runtime from "./pages/v2/Runtime"; export { Alert, @@ -170,6 +173,7 @@ export { FluxObject, FluxObjectsTable, FluxRuntime, + Runtime, Footer, GitRepository, GitRepositoryDetail, @@ -279,6 +283,8 @@ export { useListEvents, useListFluxCrds, useListFluxRuntimeObjects, + useListRuntimeCrds, + useListRuntimeObjects, useListObjects, useListProviders, useListSources, diff --git a/ui/lib/api/core/core.pb.ts b/ui/lib/api/core/core.pb.ts index 0c969efcc0..ad12eeb7e9 100644 --- a/ui/lib/api/core/core.pb.ts +++ b/ui/lib/api/core/core.pb.ts @@ -103,6 +103,16 @@ export type ListFluxRuntimeObjectsResponse = { errors?: ListError[] } +export type ListRuntimeObjectsRequest = { + namespace?: string + clusterName?: string +} + +export type ListRuntimeObjectsResponse = { + deployments?: Gitops_coreV1Types.Deployment[] + errors?: ListError[] +} + export type ListFluxCrdsRequest = { clusterName?: string } @@ -112,6 +122,15 @@ export type ListFluxCrdsResponse = { errors?: ListError[] } +export type ListRuntimeCrdsRequest = { + clusterName?: string +} + +export type ListRuntimeCrdsResponse = { + crds?: Gitops_coreV1Types.Crd[] + errors?: ListError[] +} + export type GetObjectRequest = { name?: string namespace?: string @@ -328,6 +347,12 @@ export class Core { static ListFluxCrds(req: ListFluxCrdsRequest, initReq?: fm.InitReq): Promise { return fm.fetchReq(`/v1/flux_crds?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: "GET"}) } + static ListRuntimeObjects(req: ListRuntimeObjectsRequest, initReq?: fm.InitReq): Promise { + return fm.fetchReq(`/v1/runtime_objects?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: "GET"}) + } + static ListRuntimeCrds(req: ListRuntimeCrdsRequest, initReq?: fm.InitReq): Promise { + return fm.fetchReq(`/v1/runtime_crds?${fm.renderURLSearchParams(req, [])}`, {...initReq, method: "GET"}) + } static GetReconciledObjects(req: GetReconciledObjectsRequest, initReq?: fm.InitReq): Promise { return fm.fetchReq(`/v1/reconciled_objects`, {...initReq, method: "POST", body: JSON.stringify(req)}) } diff --git a/ui/lib/types.ts b/ui/lib/types.ts index 9b7c8aaa1d..e973a662c4 100644 --- a/ui/lib/types.ts +++ b/ui/lib/types.ts @@ -28,6 +28,7 @@ export enum V2Routes { Automations = "/applications", Sources = "/sources", FluxRuntime = "/flux_runtime", + Runtime = "/runtime", Kustomization = "/kustomization", HelmRelease = "/helm_release", HelmRepo = "/helm_repo", diff --git a/ui/pages/v2/Runtime.tsx b/ui/pages/v2/Runtime.tsx new file mode 100644 index 0000000000..eb11336a1e --- /dev/null +++ b/ui/pages/v2/Runtime.tsx @@ -0,0 +1,30 @@ +import * as React from "react"; +import styled from "styled-components"; +import FluxRuntimeComponent from "../../components/FluxRuntime"; +import Page from "../../components/Page"; +import { useListRuntimeCrds, useListRuntimeObjects } from "../../hooks/flux"; + +type Props = { + className?: string; +}; + +function Runtime({ className }: Props) { + const { data, isLoading, error } = useListRuntimeObjects(); + const { + data: crds, + isLoading: crdsLoading, + error: crdsError, + } = useListRuntimeCrds(); + return ( + + + + ); +} + +export default styled(Runtime).attrs({ className: Runtime.name })``; diff --git a/website/docs/open-source/getting-started/install-OSS.mdx b/website/docs/open-source/getting-started/install-OSS.mdx index eace089a2c..062eefceae 100644 --- a/website/docs/open-source/getting-started/install-OSS.mdx +++ b/website/docs/open-source/getting-started/install-OSS.mdx @@ -142,7 +142,7 @@ brew install weaveworks/tap/gitops -### Deploy Weave GitOps +## Install Weave GitOps In this section we will: @@ -223,6 +223,56 @@ You can use the Weave GitOps Helm Chart to customize your installation. Find the full Chart reference [here](../../references/helm-reference.md). ::: +## Supercharge your Weave GitOps + +You could optionally unlock more from Weave GitOps by installing other components: + +- [Policy Agent:](../../../policy/intro/) for policy enforcement. Use the Flux Manifests [Here](https://raw.githubusercontent.com/weaveworks/tf-controller/main/docs/release.yaml). +- [Tf-Controller:](../../../terraform/terraform-intro/) for infrastructure management. Use the Flux Manifests [Here](https://raw.githubusercontent.com/weaveworks/policy-agent/dev/docs/examples/policy-agent-helmrelease.yaml) + +### View them in the UI + +1. Enable the feature flag [WEAVE_GITOPS_FEATURE_GITOPS_RUNTIME](../../references/helm-reference.md). +2. Leverage [Flux Post-Rendering](https://fluxcd.io/flux/components/helm/helmreleases/#post-renderers) to label Deployments and CRDs with `app.kubernetes.io/part-of: weave-gitops` + + +
Expand to see a simplified example for TF-controller + +```yaml +apiVersion: helm.toolkit.fluxcd.io/v2beta2 +kind: HelmRelease +metadata: + name: tf-controller + namespace: flux-system +spec: + # ... omitted for simplicity + interval: 1h0s + postRenderers: + - kustomize: + patchesStrategicMerge: + - apiVersion: apps/v1 + kind: Deployment + metadata: + labels: + app.kubernetes.io/part-of: weave-gitops + name: tf-controller + - apiVersion: apiextensions.k8s.io/v1 + kind: CustomResourceDefinition + metadata: + labels: + app.kubernetes.io/part-of: weave-gitops + name: terraforms.infra.contrib.fluxcd.io +``` + +Deploy it and see controllers and CRDs in the UI: + +![Runtime view showing Terraform CRDs](/img/dashboard-flux-runtime-terraform-crds.png) +::: + + +
+ + ## Next steps Now let's [explore the Weave GitOps Open Source UI](./ui-OSS.mdx). Then, we'll deploy an application. diff --git a/website/docs/open-source/getting-started/ui-OSS.mdx b/website/docs/open-source/getting-started/ui-OSS.mdx index c2b256ece1..25bbc1a2b0 100644 --- a/website/docs/open-source/getting-started/ui-OSS.mdx +++ b/website/docs/open-source/getting-started/ui-OSS.mdx @@ -149,11 +149,33 @@ If you make a mistake configuring one of the resources, you can use WeGO to easi ## The Flux Runtime View -Let's go back to the left-hand menu of the UI and click on `Flux Runtime`. This view provides information on the GitOps engine, which continuously reconciles your desired and live state, and helps users to know which apiVersion to use in manifests. It comes with two tabs: one for controllers, and other for custom resource definitions (CRDs). +Let's go back to the left-hand menu of the UI and click on `Flux Runtime`. This view provides information on the GitOps engine, +which continuously reconciles your desired and live state, and helps users to know which apiVersion to use in manifests. -#### Controllers +:::tip Beyond Flux Runtime -The Controllers tab shows your installed [GitOps Toolkit Controllers](https://fluxcd.io/flux/components/) and their version. +Enable the feature flag [`WEAVE_GITOPS_FEATURE_GITOPS_RUNTIME`](../../references/helm-reference.md) if you want to expand Flux Runtime UI with the ability to +view other Weave GitOps Runtime Components like Policy Agent or TF-Controller + +![Runtime view showing Terraform CRDs](/img/dashboard-flux-runtime-terraform-crds.png) + +::: + +It comes with three tabs: + +1. [Flux Versions](#flux-versions) that summarizes the versions of Flux running in your cluster. +2. [Controllers](#controllers): that shows your installed [GitOps Toolkit Controllers](https://fluxcd.io/flux/components/) and their versions. +3. [CRDs](#crds): that shows your installed [GitOps Toolkit Custom Resources Definitions](https://fluxcd.io/flux/components/) and their versions. + +### Flux Versions + +The Flux Versions tab shows your installed [Flux Versions](https://github.com/fluxcd/flux2/releases). + +![Flux Runtime view showing the various GitOps Toolkit controllers](/img/dashboard-flux-runtime-versions.png) + +### Controllers + +The Controllers tab shows your installed [GitOps Toolkit Controllers](https://fluxcd.io/flux/components/) and their versions. ![Flux Runtime view showing the various GitOps Toolkit controllers](/img/dashboard-flux-runtime.png) @@ -165,12 +187,13 @@ By default, `flux bootstrap` will install the following controllers: From this view you can see whether the controllers are healthy and which version of a given component is currently deployed. -#### CRDs +### CRDs The CRD tab lists the custom resources that the GitOps Toolkit Controllers use. This allows you to see which resources you will be able to create. ![Flux Runtime view showing the various GitOps Toolkit controllers](/img/dashboard-flux-runtime-crd.png) + ## Moving On Now that we are familiar with the dashboard, let's [deploy a new application](./deploy-OSS.mdx) :sparkles:. diff --git a/website/static/img/dashboard-flux-runtime-terraform-crds.png b/website/static/img/dashboard-flux-runtime-terraform-crds.png new file mode 100644 index 0000000000..f0690c25f9 Binary files /dev/null and b/website/static/img/dashboard-flux-runtime-terraform-crds.png differ diff --git a/website/static/img/dashboard-flux-runtime-versions.png b/website/static/img/dashboard-flux-runtime-versions.png new file mode 100644 index 0000000000..aac3ac7ff6 Binary files /dev/null and b/website/static/img/dashboard-flux-runtime-versions.png differ