[YUNIKORN-760] Fix build failures on clean checkout (#42)

The update of the proto compiler caused the build to fail on a clean
checkout. The new protoc uses a different plugin setup and stricter rules
around the proto content. gRPC generations has been removed at this
point as it is not used. Simplified the protoc command line.
diff --git a/Makefile b/Makefile
index cdf14d5..12c7d4c 100644
--- a/Makefile
+++ b/Makefile
@@ -55,21 +55,19 @@
 INTERFACE_GO := $(API_LIB)/interface.go
 
 define GENERATED_HEADER
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-     http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//     http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
 
 // Code generated by make build. DO NOT EDIT
 
@@ -130,13 +128,14 @@
 # Simple clean of generated files only (no local cleanup).
 .PHONY: clean
 clean:
-	rm -rf $(COMMON_LIB)
+	rm -rf $(CONSTANTS_GO)
+	rm -rf $(INTERFACE_GO)
 	cd $(BASE_DIR) && \
 	$(MAKE) -C $(LIB_DIR) $@
 
 # Remove all non versioned files,
 # Running this target will trigger a re-install of protoc etc in te next build cycle.
 .PHONY: clobber
-clobber:
+clobber: clean
 	cd $(BASE_DIR) && \
 	$(MAKE) -C $(LIB_DIR) $@
diff --git a/lib/go/Makefile b/lib/go/Makefile
index ab9585b..b8e9042 100644
--- a/lib/go/Makefile
+++ b/lib/go/Makefile
@@ -35,7 +35,7 @@
 
 # Only set PROTOC_VER if it has an empty value.
 ifeq (,$(strip $(PROTOC_VER)))
-PROTOC_VER := 3.16
+PROTOC_VER := 3.16.0
 endif
 
 # Fix OS string for Mac builds.
@@ -47,7 +47,7 @@
 
 # Allow building on 32 bit machines.
 PROTOC_ARCH := $(shell uname -m)
-PROTOGEN_ARCH := amd64 #or 386 for 32 bits
+PROTOGEN_ARCH := amd64
 ifeq (i386,$(PROTOC_ARCH))
 PROTOC_ARCH := x86_32
 PROTOGEN_ARCH := 386
@@ -55,7 +55,7 @@
 
 # Get and install the protoc binary.
 PROTOC_ZIP := protoc-$(PROTOC_VER)-$(PROTOC_OS)-$(PROTOC_ARCH).zip
-PROTOC_URL := https://github.com/google/protobuf/releases/download/v$(PROTOC_VER)/$(PROTOC_ZIP)
+PROTOC_URL := https://github.com/protocolbuffers/protobuf/releases/download/v$(PROTOC_VER)/$(PROTOC_ZIP)
 PROTOC_TMP_DIR := protoc
 PROTOC_BIN_DIR := $(PROTOC_TMP_DIR)/bin
 PROTOC := $(PROTOC_BIN_DIR)/protoc
@@ -67,14 +67,14 @@
 	stat $@ > /dev/null 2>&1
 
 # Get and install the go plug-in for protoc.
-PROTO_GEN_GO_TAR := protoc-gen-go.$(PROTOBUF_VERSION).$(PROTOGEN_OS).$(PROTOGEN_ARCH).tar.gz
-PROTO_GEN_URL    := https://github.com/protocolbuffers/protobuf-go/releases/download/$(PROTOBUF_VERSION)/$(PROTO_GEN_GO_TAR)
-PROTO_GEN_GO     := $(PROTO_BIN_DIR)/protoc-gen-go
-$(PROTO_GEN_GO):
-        mkdir -p $(PROTO_TMP_DIR) && \
-                curl -L $(PROTO_GEN_URL) -o $(PROTO_TMP_DIR)/$(PROTO_GEN_GO_TAR) && \
-                tar -C $(PROTOC_BIN_DIR) -xzvf $(PROTO_TMP_DIR)/$(PROTO_GEN_GO_TAR) protoc-gen-go && \
-                chmod 0755 $(PROTO_GEN_GO)
+PROTOC_GEN_GO_TAR := protoc-gen-go.$(PROTOBUF_VERSION).$(PROTOGEN_OS).$(PROTOGEN_ARCH).tar.gz
+PROTOC_GEN_URL    := https://github.com/protocolbuffers/protobuf-go/releases/download/$(PROTOBUF_VERSION)/$(PROTOC_GEN_GO_TAR)
+PROTOC_GEN_GO     := $(PROTOC_BIN_DIR)/protoc-gen-go
+$(PROTOC_GEN_GO):
+	mkdir -p $(PROTOC_TMP_DIR) && \
+                curl -L $(PROTOC_GEN_URL) -o $(PROTOC_TMP_DIR)/$(PROTOC_GEN_GO_TAR) && \
+                tar -C $(PROTOC_BIN_DIR) -xzvf $(PROTOC_TMP_DIR)/$(PROTOC_GEN_GO_TAR) protoc-gen-go && \
+                chmod 0755 $(PROTOC_GEN_GO)
 	stat $@ > /dev/null 2>&1
 
 # Update PATH with the protoc bin dir which contains protoc and its plug-in
@@ -85,17 +85,14 @@
 SI_PKG_SUB := si
 SI_BUILD := $(SI_PKG_SUB)/build
 SI_GO := $(SI_PKG_SUB)/si.pb.go
+GO_OUT := $(HERE)/$(SI_BUILD)
 SI_GO_TMP := $(SI_BUILD)/$(PKG_ROOT)/si.pb.go
-$(SI_GO_TMP): GO_OUT := plugins=grpc
-$(SI_GO_TMP): GO_OUT := $(GO_OUT),Mgoogle/protobuf/descriptor.proto=$(PROTOC_GEN_GO_PKG)/descriptor
-$(SI_GO_TMP): GO_OUT := $(GO_OUT):$(HERE)/$(SI_BUILD)
-$(SI_GO_TMP): INCLUDE := -I$(BASE) -I$(HERE)/$(PROTOC_TMP_DIR)/include
 $(SI_GO_TMP): $(SI_PROTO) | $(PROTOC) $(PROTOC_GEN_GO)
 	mkdir -p $(SI_BUILD) && \
 		(cd $(BASE) && \
-		$(HERE)/$(PROTOC) $(INCLUDE) --go_out=$(GO_OUT) $(PKG_ROOT)/$(<F))
+		$(HERE)/$(PROTOC) --go_opt=paths=source_relative --go_out=$(GO_OUT) $(PKG_ROOT)/$(<F))
 
-# Syntax check contants to make sure it passes
+# Syntax check constants to make sure it passes
 COMMON_DIR := ./common
 .PHONY: syntax_check
 syntax_check:
@@ -108,11 +105,11 @@
 	@echo "\nprotobuf go source generated:\n\t$(HERE)/$(SI_GO)\n"
 
 # Simple clean of generated file language binding.
+.PHONY: clean
 clean:
-	rm -rf $(SI_GO)
+	rm -rf $(SI_GO) $(SI_GO_TMP)
 
 # Remove all non versioned files (including compiler and cache)
+.PHONY: clobber
 clobber: clean
 	rm -rf $(PROTOC_TMP_DIR) $(PROTOC_GEN_GO_SRC) $(SI_BUILD)
-
-.PHONY: clean clobber
diff --git a/lib/go/api/interface.go b/lib/go/api/interface.go
index 02494b7..c27448e 100644
--- a/lib/go/api/interface.go
+++ b/lib/go/api/interface.go
@@ -1,18 +1,16 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-     http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//     http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
 
 // Code generated by make build. DO NOT EDIT
 
@@ -21,15 +19,15 @@
 import "github.com/apache/incubator-yunikorn-scheduler-interface/lib/go/si"
 
 type SchedulerAPI interface {
-    // Register a new RM, if it is a reconnect from previous RM, cleanup 
-	// all in-memory data and resync with RM. 
+	// Register a new RM, if it is a reconnect from previous RM, cleanup
+	// all in-memory data and resync with RM.
 	RegisterResourceManager(request *si.RegisterResourceManagerRequest, callback ResourceManagerCallback) (*si.RegisterResourceManagerResponse, error)
 
-	// Update Scheduler status (including node status update, allocation request 
-	// updates, etc. 
+	// Update Scheduler status (including node status update, allocation request
+	// updates, etc.
 	Update(request *si.UpdateRequest) error
 
-	// Notify scheduler to reload configuration and hot-refresh in-memory state based on configuration changes 
+	// Notify scheduler to reload configuration and hot-refresh in-memory state based on configuration changes
 	ReloadConfiguration(clusterID string) error
 }
 
diff --git a/lib/go/common/constants.go b/lib/go/common/constants.go
index a7bfb6b..6eb21e8 100644
--- a/lib/go/common/constants.go
+++ b/lib/go/common/constants.go
@@ -1,18 +1,16 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-     http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//     http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
 
 // Code generated by make build. DO NOT EDIT
 
@@ -50,7 +48,6 @@
 	GroupAnnotation = "annotation/"
 
 	// Keys
-	KeyPodName             = "podName"
-	KeyNamespace           = "namespace"
-	KeyIgnoreUnschedulable = "ignoreUnschedulableNodes"
+	KeyPodName   = "podName"
+	KeyNamespace = "namespace"
 )
diff --git a/lib/go/si/si.pb.go b/lib/go/si/si.pb.go
index 5b4e72d..afb2855 100644
--- a/lib/go/si/si.pb.go
+++ b/lib/go/si/si.pb.go
@@ -1,59 +1,92 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//     http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+// Code generated by make build. DO NOT EDIT
+
 // Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// 	protoc-gen-go v1.26.0
+// 	protoc        v3.16.0
 // source: incubator-yunikorn-scheduler-interface/si.proto
 
 package si
 
 import (
-	context "context"
-	fmt "fmt"
-	proto "github.com/golang/protobuf/proto"
-	descriptor "github.com/golang/protobuf/protoc-gen-go/descriptor"
-	grpc "google.golang.org/grpc"
-	codes "google.golang.org/grpc/codes"
-	status "google.golang.org/grpc/status"
-	math "math"
+	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+	descriptorpb "google.golang.org/protobuf/types/descriptorpb"
+	reflect "reflect"
+	sync "sync"
 )
 
-// Reference imports to suppress errors if they are not otherwise used.
-var _ = proto.Marshal
-var _ = fmt.Errorf
-var _ = math.Inf
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the proto package it is being compiled against.
-// A compilation error at this line likely means your copy of the
-// proto package needs to be updated.
-const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
+const (
+	// Verify that this generated code is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+	// Verify that runtime/protoimpl is sufficiently up-to-date.
+	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
 
 type TerminationType int32
 
 const (
-	TerminationType_STOPPED_BY_RM          TerminationType = 0
-	TerminationType_TIMEOUT                TerminationType = 1
-	TerminationType_PREEMPTED_BY_SCHEDULER TerminationType = 2
-	TerminationType_PLACEHOLDER_REPLACED   TerminationType = 3
+	TerminationType_STOPPED_BY_RM          TerminationType = 0 // Stopped or killed by ResourceManager (created by RM)
+	TerminationType_TIMEOUT                TerminationType = 1 // Timed out based on the executionTimeoutMilliSeconds (created by core)
+	TerminationType_PREEMPTED_BY_SCHEDULER TerminationType = 2 // Preempted allocation by scheduler (created by core)
+	TerminationType_PLACEHOLDER_REPLACED   TerminationType = 3 // Placeholder allocation replaced by real allocation (created by core)
 )
 
-var TerminationType_name = map[int32]string{
-	0: "STOPPED_BY_RM",
-	1: "TIMEOUT",
-	2: "PREEMPTED_BY_SCHEDULER",
-	3: "PLACEHOLDER_REPLACED",
-}
+// Enum value maps for TerminationType.
+var (
+	TerminationType_name = map[int32]string{
+		0: "STOPPED_BY_RM",
+		1: "TIMEOUT",
+		2: "PREEMPTED_BY_SCHEDULER",
+		3: "PLACEHOLDER_REPLACED",
+	}
+	TerminationType_value = map[string]int32{
+		"STOPPED_BY_RM":          0,
+		"TIMEOUT":                1,
+		"PREEMPTED_BY_SCHEDULER": 2,
+		"PLACEHOLDER_REPLACED":   3,
+	}
+)
 
-var TerminationType_value = map[string]int32{
-	"STOPPED_BY_RM":          0,
-	"TIMEOUT":                1,
-	"PREEMPTED_BY_SCHEDULER": 2,
-	"PLACEHOLDER_REPLACED":   3,
+func (x TerminationType) Enum() *TerminationType {
+	p := new(TerminationType)
+	*p = x
+	return p
 }
 
 func (x TerminationType) String() string {
-	return proto.EnumName(TerminationType_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (TerminationType) Descriptor() protoreflect.EnumDescriptor {
+	return file_incubator_yunikorn_scheduler_interface_si_proto_enumTypes[0].Descriptor()
+}
+
+func (TerminationType) Type() protoreflect.EnumType {
+	return &file_incubator_yunikorn_scheduler_interface_si_proto_enumTypes[0]
+}
+
+func (x TerminationType) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use TerminationType.Descriptor instead.
 func (TerminationType) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{0}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{0}
 }
 
 // Scheduler can send action to RM.
@@ -66,22 +99,43 @@
 	UpdateResponse_RESYNC UpdateResponse_ActionFromScheduler = 1
 )
 
-var UpdateResponse_ActionFromScheduler_name = map[int32]string{
-	0: "NOACTION",
-	1: "RESYNC",
-}
+// Enum value maps for UpdateResponse_ActionFromScheduler.
+var (
+	UpdateResponse_ActionFromScheduler_name = map[int32]string{
+		0: "NOACTION",
+		1: "RESYNC",
+	}
+	UpdateResponse_ActionFromScheduler_value = map[string]int32{
+		"NOACTION": 0,
+		"RESYNC":   1,
+	}
+)
 
-var UpdateResponse_ActionFromScheduler_value = map[string]int32{
-	"NOACTION": 0,
-	"RESYNC":   1,
+func (x UpdateResponse_ActionFromScheduler) Enum() *UpdateResponse_ActionFromScheduler {
+	p := new(UpdateResponse_ActionFromScheduler)
+	*p = x
+	return p
 }
 
 func (x UpdateResponse_ActionFromScheduler) String() string {
-	return proto.EnumName(UpdateResponse_ActionFromScheduler_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (UpdateResponse_ActionFromScheduler) Descriptor() protoreflect.EnumDescriptor {
+	return file_incubator_yunikorn_scheduler_interface_si_proto_enumTypes[1].Descriptor()
+}
+
+func (UpdateResponse_ActionFromScheduler) Type() protoreflect.EnumType {
+	return &file_incubator_yunikorn_scheduler_interface_si_proto_enumTypes[1]
+}
+
+func (x UpdateResponse_ActionFromScheduler) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use UpdateResponse_ActionFromScheduler.Descriptor instead.
 func (UpdateResponse_ActionFromScheduler) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{3, 0}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{3, 0}
 }
 
 // Action from RM
@@ -100,26 +154,47 @@
 	UpdateNodeInfo_DRAIN_TO_SCHEDULABLE UpdateNodeInfo_ActionFromRM = 3
 )
 
-var UpdateNodeInfo_ActionFromRM_name = map[int32]string{
-	0: "UPDATE",
-	1: "DRAIN_NODE",
-	2: "DECOMISSION",
-	3: "DRAIN_TO_SCHEDULABLE",
-}
+// Enum value maps for UpdateNodeInfo_ActionFromRM.
+var (
+	UpdateNodeInfo_ActionFromRM_name = map[int32]string{
+		0: "UPDATE",
+		1: "DRAIN_NODE",
+		2: "DECOMISSION",
+		3: "DRAIN_TO_SCHEDULABLE",
+	}
+	UpdateNodeInfo_ActionFromRM_value = map[string]int32{
+		"UPDATE":               0,
+		"DRAIN_NODE":           1,
+		"DECOMISSION":          2,
+		"DRAIN_TO_SCHEDULABLE": 3,
+	}
+)
 
-var UpdateNodeInfo_ActionFromRM_value = map[string]int32{
-	"UPDATE":               0,
-	"DRAIN_NODE":           1,
-	"DECOMISSION":          2,
-	"DRAIN_TO_SCHEDULABLE": 3,
+func (x UpdateNodeInfo_ActionFromRM) Enum() *UpdateNodeInfo_ActionFromRM {
+	p := new(UpdateNodeInfo_ActionFromRM)
+	*p = x
+	return p
 }
 
 func (x UpdateNodeInfo_ActionFromRM) String() string {
-	return proto.EnumName(UpdateNodeInfo_ActionFromRM_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (UpdateNodeInfo_ActionFromRM) Descriptor() protoreflect.EnumDescriptor {
+	return file_incubator_yunikorn_scheduler_interface_si_proto_enumTypes[2].Descriptor()
+}
+
+func (UpdateNodeInfo_ActionFromRM) Type() protoreflect.EnumType {
+	return &file_incubator_yunikorn_scheduler_interface_si_proto_enumTypes[2]
+}
+
+func (x UpdateNodeInfo_ActionFromRM) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use UpdateNodeInfo_ActionFromRM.Descriptor instead.
 func (UpdateNodeInfo_ActionFromRM) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{21, 0}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{21, 0}
 }
 
 // container scheduling states
@@ -137,26 +212,47 @@
 	UpdateContainerSchedulingStateRequest_FAILED UpdateContainerSchedulingStateRequest_SchedulingState = 3
 )
 
-var UpdateContainerSchedulingStateRequest_SchedulingState_name = map[int32]string{
-	0: "SKIPPED",
-	1: "SCHEDULED",
-	2: "RESERVED",
-	3: "FAILED",
-}
+// Enum value maps for UpdateContainerSchedulingStateRequest_SchedulingState.
+var (
+	UpdateContainerSchedulingStateRequest_SchedulingState_name = map[int32]string{
+		0: "SKIPPED",
+		1: "SCHEDULED",
+		2: "RESERVED",
+		3: "FAILED",
+	}
+	UpdateContainerSchedulingStateRequest_SchedulingState_value = map[string]int32{
+		"SKIPPED":   0,
+		"SCHEDULED": 1,
+		"RESERVED":  2,
+		"FAILED":    3,
+	}
+)
 
-var UpdateContainerSchedulingStateRequest_SchedulingState_value = map[string]int32{
-	"SKIPPED":   0,
-	"SCHEDULED": 1,
-	"RESERVED":  2,
-	"FAILED":    3,
+func (x UpdateContainerSchedulingStateRequest_SchedulingState) Enum() *UpdateContainerSchedulingStateRequest_SchedulingState {
+	p := new(UpdateContainerSchedulingStateRequest_SchedulingState)
+	*p = x
+	return p
 }
 
 func (x UpdateContainerSchedulingStateRequest_SchedulingState) String() string {
-	return proto.EnumName(UpdateContainerSchedulingStateRequest_SchedulingState_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (UpdateContainerSchedulingStateRequest_SchedulingState) Descriptor() protoreflect.EnumDescriptor {
+	return file_incubator_yunikorn_scheduler_interface_si_proto_enumTypes[3].Descriptor()
+}
+
+func (UpdateContainerSchedulingStateRequest_SchedulingState) Type() protoreflect.EnumType {
+	return &file_incubator_yunikorn_scheduler_interface_si_proto_enumTypes[3]
+}
+
+func (x UpdateContainerSchedulingStateRequest_SchedulingState) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use UpdateContainerSchedulingStateRequest_SchedulingState.Descriptor instead.
 func (UpdateContainerSchedulingStateRequest_SchedulingState) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{27, 0}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{27, 0}
 }
 
 type EventRecord_Type int32
@@ -168,32 +264,57 @@
 	EventRecord_QUEUE   EventRecord_Type = 3
 )
 
-var EventRecord_Type_name = map[int32]string{
-	0: "REQUEST",
-	1: "APP",
-	2: "NODE",
-	3: "QUEUE",
-}
+// Enum value maps for EventRecord_Type.
+var (
+	EventRecord_Type_name = map[int32]string{
+		0: "REQUEST",
+		1: "APP",
+		2: "NODE",
+		3: "QUEUE",
+	}
+	EventRecord_Type_value = map[string]int32{
+		"REQUEST": 0,
+		"APP":     1,
+		"NODE":    2,
+		"QUEUE":   3,
+	}
+)
 
-var EventRecord_Type_value = map[string]int32{
-	"REQUEST": 0,
-	"APP":     1,
-	"NODE":    2,
-	"QUEUE":   3,
+func (x EventRecord_Type) Enum() *EventRecord_Type {
+	p := new(EventRecord_Type)
+	*p = x
+	return p
 }
 
 func (x EventRecord_Type) String() string {
-	return proto.EnumName(EventRecord_Type_name, int32(x))
+	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 }
 
+func (EventRecord_Type) Descriptor() protoreflect.EnumDescriptor {
+	return file_incubator_yunikorn_scheduler_interface_si_proto_enumTypes[4].Descriptor()
+}
+
+func (EventRecord_Type) Type() protoreflect.EnumType {
+	return &file_incubator_yunikorn_scheduler_interface_si_proto_enumTypes[4]
+}
+
+func (x EventRecord_Type) Number() protoreflect.EnumNumber {
+	return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Use EventRecord_Type.Descriptor instead.
 func (EventRecord_Type) EnumDescriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{30, 0}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{30, 0}
 }
 
 //
 //service MetricsService {
 //}
 type RegisterResourceManagerRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// An ID which can uniquely identify a RM **cluster**. (For example, if a RM cluster has multiple manager instances for HA purpose, they should use the same information when do registration).
 	// If RM register with the same ID, all previous scheduling state in memory will be cleaned up, and expect RM report full scheduling state after registration.
 	RmID string `protobuf:"bytes,1,opt,name=rmID,proto3" json:"rmID,omitempty"`
@@ -202,91 +323,106 @@
 	// Policy group name:
 	// This defines which policy to use. Policy should be statically configured. (Think about network security group concept of ec2).
 	// Different RMs can refer to the same policyGroup if their static configuration is identical.
-	PolicyGroup          string   `protobuf:"bytes,3,opt,name=policyGroup,proto3" json:"policyGroup,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	PolicyGroup string `protobuf:"bytes,3,opt,name=policyGroup,proto3" json:"policyGroup,omitempty"`
 }
 
-func (m *RegisterResourceManagerRequest) Reset()         { *m = RegisterResourceManagerRequest{} }
-func (m *RegisterResourceManagerRequest) String() string { return proto.CompactTextString(m) }
-func (*RegisterResourceManagerRequest) ProtoMessage()    {}
+func (x *RegisterResourceManagerRequest) Reset() {
+	*x = RegisterResourceManagerRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[0]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *RegisterResourceManagerRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RegisterResourceManagerRequest) ProtoMessage() {}
+
+func (x *RegisterResourceManagerRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[0]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RegisterResourceManagerRequest.ProtoReflect.Descriptor instead.
 func (*RegisterResourceManagerRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{0}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{0}
 }
 
-func (m *RegisterResourceManagerRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_RegisterResourceManagerRequest.Unmarshal(m, b)
-}
-func (m *RegisterResourceManagerRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_RegisterResourceManagerRequest.Marshal(b, m, deterministic)
-}
-func (m *RegisterResourceManagerRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_RegisterResourceManagerRequest.Merge(m, src)
-}
-func (m *RegisterResourceManagerRequest) XXX_Size() int {
-	return xxx_messageInfo_RegisterResourceManagerRequest.Size(m)
-}
-func (m *RegisterResourceManagerRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_RegisterResourceManagerRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RegisterResourceManagerRequest proto.InternalMessageInfo
-
-func (m *RegisterResourceManagerRequest) GetRmID() string {
-	if m != nil {
-		return m.RmID
+func (x *RegisterResourceManagerRequest) GetRmID() string {
+	if x != nil {
+		return x.RmID
 	}
 	return ""
 }
 
-func (m *RegisterResourceManagerRequest) GetVersion() string {
-	if m != nil {
-		return m.Version
+func (x *RegisterResourceManagerRequest) GetVersion() string {
+	if x != nil {
+		return x.Version
 	}
 	return ""
 }
 
-func (m *RegisterResourceManagerRequest) GetPolicyGroup() string {
-	if m != nil {
-		return m.PolicyGroup
+func (x *RegisterResourceManagerRequest) GetPolicyGroup() string {
+	if x != nil {
+		return x.PolicyGroup
 	}
 	return ""
 }
 
 // Upon success, scheduler returns RegisterResourceManagerResponse to RM, otherwise RM receives exception.
 type RegisterResourceManagerResponse struct {
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
 }
 
-func (m *RegisterResourceManagerResponse) Reset()         { *m = RegisterResourceManagerResponse{} }
-func (m *RegisterResourceManagerResponse) String() string { return proto.CompactTextString(m) }
-func (*RegisterResourceManagerResponse) ProtoMessage()    {}
+func (x *RegisterResourceManagerResponse) Reset() {
+	*x = RegisterResourceManagerResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[1]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *RegisterResourceManagerResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RegisterResourceManagerResponse) ProtoMessage() {}
+
+func (x *RegisterResourceManagerResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[1]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RegisterResourceManagerResponse.ProtoReflect.Descriptor instead.
 func (*RegisterResourceManagerResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{1}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{1}
 }
 
-func (m *RegisterResourceManagerResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_RegisterResourceManagerResponse.Unmarshal(m, b)
-}
-func (m *RegisterResourceManagerResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_RegisterResourceManagerResponse.Marshal(b, m, deterministic)
-}
-func (m *RegisterResourceManagerResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_RegisterResourceManagerResponse.Merge(m, src)
-}
-func (m *RegisterResourceManagerResponse) XXX_Size() int {
-	return xxx_messageInfo_RegisterResourceManagerResponse.Size(m)
-}
-func (m *RegisterResourceManagerResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_RegisterResourceManagerResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RegisterResourceManagerResponse proto.InternalMessageInfo
-
 type UpdateRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// New allocation requests or replace existing allocation request (if allocationID is same)
 	Asks []*AllocationAsk `protobuf:"bytes,1,rep,name=asks,proto3" json:"asks,omitempty"`
 	// Allocations can be released.
@@ -308,87 +444,95 @@
 	// This is optional if allocation request doesn't belong to a application. (Independent allocation)
 	NewApplications []*AddApplicationRequest `protobuf:"bytes,6,rep,name=newApplications,proto3" json:"newApplications,omitempty"`
 	// RM can also remove applications, all allocation/allocation requests associated with the application will be removed
-	RemoveApplications   []*RemoveApplicationRequest `protobuf:"bytes,7,rep,name=removeApplications,proto3" json:"removeApplications,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
-	XXX_unrecognized     []byte                      `json:"-"`
-	XXX_sizecache        int32                       `json:"-"`
+	RemoveApplications []*RemoveApplicationRequest `protobuf:"bytes,7,rep,name=removeApplications,proto3" json:"removeApplications,omitempty"`
 }
 
-func (m *UpdateRequest) Reset()         { *m = UpdateRequest{} }
-func (m *UpdateRequest) String() string { return proto.CompactTextString(m) }
-func (*UpdateRequest) ProtoMessage()    {}
+func (x *UpdateRequest) Reset() {
+	*x = UpdateRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[2]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *UpdateRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateRequest) ProtoMessage() {}
+
+func (x *UpdateRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[2]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateRequest.ProtoReflect.Descriptor instead.
 func (*UpdateRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{2}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{2}
 }
 
-func (m *UpdateRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_UpdateRequest.Unmarshal(m, b)
-}
-func (m *UpdateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_UpdateRequest.Marshal(b, m, deterministic)
-}
-func (m *UpdateRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_UpdateRequest.Merge(m, src)
-}
-func (m *UpdateRequest) XXX_Size() int {
-	return xxx_messageInfo_UpdateRequest.Size(m)
-}
-func (m *UpdateRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_UpdateRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_UpdateRequest proto.InternalMessageInfo
-
-func (m *UpdateRequest) GetAsks() []*AllocationAsk {
-	if m != nil {
-		return m.Asks
+func (x *UpdateRequest) GetAsks() []*AllocationAsk {
+	if x != nil {
+		return x.Asks
 	}
 	return nil
 }
 
-func (m *UpdateRequest) GetReleases() *AllocationReleasesRequest {
-	if m != nil {
-		return m.Releases
+func (x *UpdateRequest) GetReleases() *AllocationReleasesRequest {
+	if x != nil {
+		return x.Releases
 	}
 	return nil
 }
 
-func (m *UpdateRequest) GetNewSchedulableNodes() []*NewNodeInfo {
-	if m != nil {
-		return m.NewSchedulableNodes
+func (x *UpdateRequest) GetNewSchedulableNodes() []*NewNodeInfo {
+	if x != nil {
+		return x.NewSchedulableNodes
 	}
 	return nil
 }
 
-func (m *UpdateRequest) GetUpdatedNodes() []*UpdateNodeInfo {
-	if m != nil {
-		return m.UpdatedNodes
+func (x *UpdateRequest) GetUpdatedNodes() []*UpdateNodeInfo {
+	if x != nil {
+		return x.UpdatedNodes
 	}
 	return nil
 }
 
-func (m *UpdateRequest) GetRmID() string {
-	if m != nil {
-		return m.RmID
+func (x *UpdateRequest) GetRmID() string {
+	if x != nil {
+		return x.RmID
 	}
 	return ""
 }
 
-func (m *UpdateRequest) GetNewApplications() []*AddApplicationRequest {
-	if m != nil {
-		return m.NewApplications
+func (x *UpdateRequest) GetNewApplications() []*AddApplicationRequest {
+	if x != nil {
+		return x.NewApplications
 	}
 	return nil
 }
 
-func (m *UpdateRequest) GetRemoveApplications() []*RemoveApplicationRequest {
-	if m != nil {
-		return m.RemoveApplications
+func (x *UpdateRequest) GetRemoveApplications() []*RemoveApplicationRequest {
+	if x != nil {
+		return x.RemoveApplications
 	}
 	return nil
 }
 
 type UpdateResponse struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// What RM needs to do, scheduler can send control code to RM when something goes wrong.
 	// Don't use/expand this field for other general purposed actions. (Like kill a remote container process).
 	Action UpdateResponse_ActionFromScheduler `protobuf:"varint,1,opt,name=action,proto3,enum=si.v1.UpdateResponse_ActionFromScheduler" json:"action,omitempty"`
@@ -410,108 +554,116 @@
 	// Rejected Node Registrations
 	RejectedNodes []*RejectedNode `protobuf:"bytes,9,rep,name=rejectedNodes,proto3" json:"rejectedNodes,omitempty"`
 	// Accepted Node Registrations
-	AcceptedNodes        []*AcceptedNode `protobuf:"bytes,10,rep,name=acceptedNodes,proto3" json:"acceptedNodes,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
-	XXX_unrecognized     []byte          `json:"-"`
-	XXX_sizecache        int32           `json:"-"`
+	AcceptedNodes []*AcceptedNode `protobuf:"bytes,10,rep,name=acceptedNodes,proto3" json:"acceptedNodes,omitempty"`
 }
 
-func (m *UpdateResponse) Reset()         { *m = UpdateResponse{} }
-func (m *UpdateResponse) String() string { return proto.CompactTextString(m) }
-func (*UpdateResponse) ProtoMessage()    {}
+func (x *UpdateResponse) Reset() {
+	*x = UpdateResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[3]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *UpdateResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateResponse) ProtoMessage() {}
+
+func (x *UpdateResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[3]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateResponse.ProtoReflect.Descriptor instead.
 func (*UpdateResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{3}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{3}
 }
 
-func (m *UpdateResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_UpdateResponse.Unmarshal(m, b)
-}
-func (m *UpdateResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_UpdateResponse.Marshal(b, m, deterministic)
-}
-func (m *UpdateResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_UpdateResponse.Merge(m, src)
-}
-func (m *UpdateResponse) XXX_Size() int {
-	return xxx_messageInfo_UpdateResponse.Size(m)
-}
-func (m *UpdateResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_UpdateResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_UpdateResponse proto.InternalMessageInfo
-
-func (m *UpdateResponse) GetAction() UpdateResponse_ActionFromScheduler {
-	if m != nil {
-		return m.Action
+func (x *UpdateResponse) GetAction() UpdateResponse_ActionFromScheduler {
+	if x != nil {
+		return x.Action
 	}
 	return UpdateResponse_NOACTION
 }
 
-func (m *UpdateResponse) GetNewAllocations() []*Allocation {
-	if m != nil {
-		return m.NewAllocations
+func (x *UpdateResponse) GetNewAllocations() []*Allocation {
+	if x != nil {
+		return x.NewAllocations
 	}
 	return nil
 }
 
-func (m *UpdateResponse) GetReleasedAllocations() []*AllocationRelease {
-	if m != nil {
-		return m.ReleasedAllocations
+func (x *UpdateResponse) GetReleasedAllocations() []*AllocationRelease {
+	if x != nil {
+		return x.ReleasedAllocations
 	}
 	return nil
 }
 
-func (m *UpdateResponse) GetReleasedAllocationAsks() []*AllocationAskRelease {
-	if m != nil {
-		return m.ReleasedAllocationAsks
+func (x *UpdateResponse) GetReleasedAllocationAsks() []*AllocationAskRelease {
+	if x != nil {
+		return x.ReleasedAllocationAsks
 	}
 	return nil
 }
 
-func (m *UpdateResponse) GetRejectedAllocations() []*RejectedAllocationAsk {
-	if m != nil {
-		return m.RejectedAllocations
+func (x *UpdateResponse) GetRejectedAllocations() []*RejectedAllocationAsk {
+	if x != nil {
+		return x.RejectedAllocations
 	}
 	return nil
 }
 
-func (m *UpdateResponse) GetRejectedApplications() []*RejectedApplication {
-	if m != nil {
-		return m.RejectedApplications
+func (x *UpdateResponse) GetRejectedApplications() []*RejectedApplication {
+	if x != nil {
+		return x.RejectedApplications
 	}
 	return nil
 }
 
-func (m *UpdateResponse) GetAcceptedApplications() []*AcceptedApplication {
-	if m != nil {
-		return m.AcceptedApplications
+func (x *UpdateResponse) GetAcceptedApplications() []*AcceptedApplication {
+	if x != nil {
+		return x.AcceptedApplications
 	}
 	return nil
 }
 
-func (m *UpdateResponse) GetUpdatedApplications() []*UpdatedApplication {
-	if m != nil {
-		return m.UpdatedApplications
+func (x *UpdateResponse) GetUpdatedApplications() []*UpdatedApplication {
+	if x != nil {
+		return x.UpdatedApplications
 	}
 	return nil
 }
 
-func (m *UpdateResponse) GetRejectedNodes() []*RejectedNode {
-	if m != nil {
-		return m.RejectedNodes
+func (x *UpdateResponse) GetRejectedNodes() []*RejectedNode {
+	if x != nil {
+		return x.RejectedNodes
 	}
 	return nil
 }
 
-func (m *UpdateResponse) GetAcceptedNodes() []*AcceptedNode {
-	if m != nil {
-		return m.AcceptedNodes
+func (x *UpdateResponse) GetAcceptedNodes() []*AcceptedNode {
+	if x != nil {
+		return x.AcceptedNodes
 	}
 	return nil
 }
 
 type UpdatedApplication struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// The application ID that was updated
 	ApplicationID string `protobuf:"bytes,1,opt,name=applicationID,proto3" json:"applicationID,omitempty"`
 	// State of the application
@@ -519,294 +671,322 @@
 	// Timestamp of the state transition
 	StateTransitionTimestamp int64 `protobuf:"varint,3,opt,name=stateTransitionTimestamp,proto3" json:"stateTransitionTimestamp,omitempty"`
 	// Detailed message
-	Message              string   `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"`
 }
 
-func (m *UpdatedApplication) Reset()         { *m = UpdatedApplication{} }
-func (m *UpdatedApplication) String() string { return proto.CompactTextString(m) }
-func (*UpdatedApplication) ProtoMessage()    {}
+func (x *UpdatedApplication) Reset() {
+	*x = UpdatedApplication{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[4]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *UpdatedApplication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdatedApplication) ProtoMessage() {}
+
+func (x *UpdatedApplication) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[4]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdatedApplication.ProtoReflect.Descriptor instead.
 func (*UpdatedApplication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{4}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{4}
 }
 
-func (m *UpdatedApplication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_UpdatedApplication.Unmarshal(m, b)
-}
-func (m *UpdatedApplication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_UpdatedApplication.Marshal(b, m, deterministic)
-}
-func (m *UpdatedApplication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_UpdatedApplication.Merge(m, src)
-}
-func (m *UpdatedApplication) XXX_Size() int {
-	return xxx_messageInfo_UpdatedApplication.Size(m)
-}
-func (m *UpdatedApplication) XXX_DiscardUnknown() {
-	xxx_messageInfo_UpdatedApplication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_UpdatedApplication proto.InternalMessageInfo
-
-func (m *UpdatedApplication) GetApplicationID() string {
-	if m != nil {
-		return m.ApplicationID
+func (x *UpdatedApplication) GetApplicationID() string {
+	if x != nil {
+		return x.ApplicationID
 	}
 	return ""
 }
 
-func (m *UpdatedApplication) GetState() string {
-	if m != nil {
-		return m.State
+func (x *UpdatedApplication) GetState() string {
+	if x != nil {
+		return x.State
 	}
 	return ""
 }
 
-func (m *UpdatedApplication) GetStateTransitionTimestamp() int64 {
-	if m != nil {
-		return m.StateTransitionTimestamp
+func (x *UpdatedApplication) GetStateTransitionTimestamp() int64 {
+	if x != nil {
+		return x.StateTransitionTimestamp
 	}
 	return 0
 }
 
-func (m *UpdatedApplication) GetMessage() string {
-	if m != nil {
-		return m.Message
+func (x *UpdatedApplication) GetMessage() string {
+	if x != nil {
+		return x.Message
 	}
 	return ""
 }
 
 type RejectedApplication struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// The application ID that was rejected
 	ApplicationID string `protobuf:"bytes,1,opt,name=applicationID,proto3" json:"applicationID,omitempty"`
 	// A human-readable reason message
-	Reason               string   `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
 }
 
-func (m *RejectedApplication) Reset()         { *m = RejectedApplication{} }
-func (m *RejectedApplication) String() string { return proto.CompactTextString(m) }
-func (*RejectedApplication) ProtoMessage()    {}
+func (x *RejectedApplication) Reset() {
+	*x = RejectedApplication{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[5]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *RejectedApplication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RejectedApplication) ProtoMessage() {}
+
+func (x *RejectedApplication) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[5]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RejectedApplication.ProtoReflect.Descriptor instead.
 func (*RejectedApplication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{5}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{5}
 }
 
-func (m *RejectedApplication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_RejectedApplication.Unmarshal(m, b)
-}
-func (m *RejectedApplication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_RejectedApplication.Marshal(b, m, deterministic)
-}
-func (m *RejectedApplication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_RejectedApplication.Merge(m, src)
-}
-func (m *RejectedApplication) XXX_Size() int {
-	return xxx_messageInfo_RejectedApplication.Size(m)
-}
-func (m *RejectedApplication) XXX_DiscardUnknown() {
-	xxx_messageInfo_RejectedApplication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RejectedApplication proto.InternalMessageInfo
-
-func (m *RejectedApplication) GetApplicationID() string {
-	if m != nil {
-		return m.ApplicationID
+func (x *RejectedApplication) GetApplicationID() string {
+	if x != nil {
+		return x.ApplicationID
 	}
 	return ""
 }
 
-func (m *RejectedApplication) GetReason() string {
-	if m != nil {
-		return m.Reason
+func (x *RejectedApplication) GetReason() string {
+	if x != nil {
+		return x.Reason
 	}
 	return ""
 }
 
 type AcceptedApplication struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// The application ID that was accepted
-	ApplicationID        string   `protobuf:"bytes,1,opt,name=applicationID,proto3" json:"applicationID,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	ApplicationID string `protobuf:"bytes,1,opt,name=applicationID,proto3" json:"applicationID,omitempty"`
 }
 
-func (m *AcceptedApplication) Reset()         { *m = AcceptedApplication{} }
-func (m *AcceptedApplication) String() string { return proto.CompactTextString(m) }
-func (*AcceptedApplication) ProtoMessage()    {}
+func (x *AcceptedApplication) Reset() {
+	*x = AcceptedApplication{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[6]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *AcceptedApplication) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AcceptedApplication) ProtoMessage() {}
+
+func (x *AcceptedApplication) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[6]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AcceptedApplication.ProtoReflect.Descriptor instead.
 func (*AcceptedApplication) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{6}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{6}
 }
 
-func (m *AcceptedApplication) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AcceptedApplication.Unmarshal(m, b)
-}
-func (m *AcceptedApplication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AcceptedApplication.Marshal(b, m, deterministic)
-}
-func (m *AcceptedApplication) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AcceptedApplication.Merge(m, src)
-}
-func (m *AcceptedApplication) XXX_Size() int {
-	return xxx_messageInfo_AcceptedApplication.Size(m)
-}
-func (m *AcceptedApplication) XXX_DiscardUnknown() {
-	xxx_messageInfo_AcceptedApplication.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AcceptedApplication proto.InternalMessageInfo
-
-func (m *AcceptedApplication) GetApplicationID() string {
-	if m != nil {
-		return m.ApplicationID
+func (x *AcceptedApplication) GetApplicationID() string {
+	if x != nil {
+		return x.ApplicationID
 	}
 	return ""
 }
 
 type RejectedNode struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// The node ID that was rejected
 	NodeID string `protobuf:"bytes,1,opt,name=nodeID,proto3" json:"nodeID,omitempty"`
 	// A human-readable reason message
-	Reason               string   `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Reason string `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
 }
 
-func (m *RejectedNode) Reset()         { *m = RejectedNode{} }
-func (m *RejectedNode) String() string { return proto.CompactTextString(m) }
-func (*RejectedNode) ProtoMessage()    {}
+func (x *RejectedNode) Reset() {
+	*x = RejectedNode{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[7]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *RejectedNode) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RejectedNode) ProtoMessage() {}
+
+func (x *RejectedNode) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[7]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RejectedNode.ProtoReflect.Descriptor instead.
 func (*RejectedNode) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{7}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{7}
 }
 
-func (m *RejectedNode) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_RejectedNode.Unmarshal(m, b)
-}
-func (m *RejectedNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_RejectedNode.Marshal(b, m, deterministic)
-}
-func (m *RejectedNode) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_RejectedNode.Merge(m, src)
-}
-func (m *RejectedNode) XXX_Size() int {
-	return xxx_messageInfo_RejectedNode.Size(m)
-}
-func (m *RejectedNode) XXX_DiscardUnknown() {
-	xxx_messageInfo_RejectedNode.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RejectedNode proto.InternalMessageInfo
-
-func (m *RejectedNode) GetNodeID() string {
-	if m != nil {
-		return m.NodeID
+func (x *RejectedNode) GetNodeID() string {
+	if x != nil {
+		return x.NodeID
 	}
 	return ""
 }
 
-func (m *RejectedNode) GetReason() string {
-	if m != nil {
-		return m.Reason
+func (x *RejectedNode) GetReason() string {
+	if x != nil {
+		return x.Reason
 	}
 	return ""
 }
 
 type AcceptedNode struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// The node ID that was accepted
-	NodeID               string   `protobuf:"bytes,1,opt,name=nodeID,proto3" json:"nodeID,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	NodeID string `protobuf:"bytes,1,opt,name=nodeID,proto3" json:"nodeID,omitempty"`
 }
 
-func (m *AcceptedNode) Reset()         { *m = AcceptedNode{} }
-func (m *AcceptedNode) String() string { return proto.CompactTextString(m) }
-func (*AcceptedNode) ProtoMessage()    {}
+func (x *AcceptedNode) Reset() {
+	*x = AcceptedNode{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[8]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *AcceptedNode) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AcceptedNode) ProtoMessage() {}
+
+func (x *AcceptedNode) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[8]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AcceptedNode.ProtoReflect.Descriptor instead.
 func (*AcceptedNode) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{8}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{8}
 }
 
-func (m *AcceptedNode) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AcceptedNode.Unmarshal(m, b)
-}
-func (m *AcceptedNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AcceptedNode.Marshal(b, m, deterministic)
-}
-func (m *AcceptedNode) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AcceptedNode.Merge(m, src)
-}
-func (m *AcceptedNode) XXX_Size() int {
-	return xxx_messageInfo_AcceptedNode.Size(m)
-}
-func (m *AcceptedNode) XXX_DiscardUnknown() {
-	xxx_messageInfo_AcceptedNode.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AcceptedNode proto.InternalMessageInfo
-
-func (m *AcceptedNode) GetNodeID() string {
-	if m != nil {
-		return m.NodeID
+func (x *AcceptedNode) GetNodeID() string {
+	if x != nil {
+		return x.NodeID
 	}
 	return ""
 }
 
 type Priority struct {
-	// Types that are valid to be assigned to Priority:
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	// Types that are assignable to Priority:
 	//	*Priority_PriorityValue
 	//	*Priority_PriorityClassName
-	Priority             isPriority_Priority `protobuf_oneof:"priority"`
-	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
-	XXX_unrecognized     []byte              `json:"-"`
-	XXX_sizecache        int32               `json:"-"`
+	Priority isPriority_Priority `protobuf_oneof:"priority"`
 }
 
-func (m *Priority) Reset()         { *m = Priority{} }
-func (m *Priority) String() string { return proto.CompactTextString(m) }
-func (*Priority) ProtoMessage()    {}
+func (x *Priority) Reset() {
+	*x = Priority{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[9]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *Priority) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Priority) ProtoMessage() {}
+
+func (x *Priority) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[9]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Priority.ProtoReflect.Descriptor instead.
 func (*Priority) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{9}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{9}
 }
 
-func (m *Priority) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Priority.Unmarshal(m, b)
-}
-func (m *Priority) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Priority.Marshal(b, m, deterministic)
-}
-func (m *Priority) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Priority.Merge(m, src)
-}
-func (m *Priority) XXX_Size() int {
-	return xxx_messageInfo_Priority.Size(m)
-}
-func (m *Priority) XXX_DiscardUnknown() {
-	xxx_messageInfo_Priority.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Priority proto.InternalMessageInfo
-
-type isPriority_Priority interface {
-	isPriority_Priority()
-}
-
-type Priority_PriorityValue struct {
-	PriorityValue int32 `protobuf:"varint,1,opt,name=priorityValue,proto3,oneof"`
-}
-
-type Priority_PriorityClassName struct {
-	PriorityClassName string `protobuf:"bytes,2,opt,name=priorityClassName,proto3,oneof"`
-}
-
-func (*Priority_PriorityValue) isPriority_Priority() {}
-
-func (*Priority_PriorityClassName) isPriority_Priority() {}
-
 func (m *Priority) GetPriority() isPriority_Priority {
 	if m != nil {
 		return m.Priority
@@ -814,109 +994,141 @@
 	return nil
 }
 
-func (m *Priority) GetPriorityValue() int32 {
-	if x, ok := m.GetPriority().(*Priority_PriorityValue); ok {
+func (x *Priority) GetPriorityValue() int32 {
+	if x, ok := x.GetPriority().(*Priority_PriorityValue); ok {
 		return x.PriorityValue
 	}
 	return 0
 }
 
-func (m *Priority) GetPriorityClassName() string {
-	if x, ok := m.GetPriority().(*Priority_PriorityClassName); ok {
+func (x *Priority) GetPriorityClassName() string {
+	if x, ok := x.GetPriority().(*Priority_PriorityClassName); ok {
 		return x.PriorityClassName
 	}
 	return ""
 }
 
-// XXX_OneofWrappers is for the internal use of the proto package.
-func (*Priority) XXX_OneofWrappers() []interface{} {
-	return []interface{}{
-		(*Priority_PriorityValue)(nil),
-		(*Priority_PriorityClassName)(nil),
-	}
+type isPriority_Priority interface {
+	isPriority_Priority()
 }
 
+type Priority_PriorityValue struct {
+	// Priority of each ask, higher is more important.
+	// How to deal with Priority is handled by each scheduler implementation.
+	PriorityValue int32 `protobuf:"varint,1,opt,name=priorityValue,proto3,oneof"`
+}
+
+type Priority_PriorityClassName struct {
+	// PriorityClass is used for app owners to set named priorities. This is a portable way for
+	// app owners have a consistent way to setup priority across clusters
+	PriorityClassName string `protobuf:"bytes,2,opt,name=priorityClassName,proto3,oneof"`
+}
+
+func (*Priority_PriorityValue) isPriority_Priority() {}
+
+func (*Priority_PriorityClassName) isPriority_Priority() {}
+
 // A sparse map of resource to Quantity.
 type Resource struct {
-	Resources            map[string]*Quantity `protobuf:"bytes,1,rep,name=resources,proto3" json:"resources,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
-	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
-	XXX_unrecognized     []byte               `json:"-"`
-	XXX_sizecache        int32                `json:"-"`
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Resources map[string]*Quantity `protobuf:"bytes,1,rep,name=resources,proto3" json:"resources,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 }
 
-func (m *Resource) Reset()         { *m = Resource{} }
-func (m *Resource) String() string { return proto.CompactTextString(m) }
-func (*Resource) ProtoMessage()    {}
+func (x *Resource) Reset() {
+	*x = Resource{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[10]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *Resource) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Resource) ProtoMessage() {}
+
+func (x *Resource) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[10]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Resource.ProtoReflect.Descriptor instead.
 func (*Resource) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{10}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{10}
 }
 
-func (m *Resource) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Resource.Unmarshal(m, b)
-}
-func (m *Resource) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Resource.Marshal(b, m, deterministic)
-}
-func (m *Resource) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Resource.Merge(m, src)
-}
-func (m *Resource) XXX_Size() int {
-	return xxx_messageInfo_Resource.Size(m)
-}
-func (m *Resource) XXX_DiscardUnknown() {
-	xxx_messageInfo_Resource.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Resource proto.InternalMessageInfo
-
-func (m *Resource) GetResources() map[string]*Quantity {
-	if m != nil {
-		return m.Resources
+func (x *Resource) GetResources() map[string]*Quantity {
+	if x != nil {
+		return x.Resources
 	}
 	return nil
 }
 
 // Quantity includes a single int64 value
 type Quantity struct {
-	Value                int64    `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
+	Value int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
 }
 
-func (m *Quantity) Reset()         { *m = Quantity{} }
-func (m *Quantity) String() string { return proto.CompactTextString(m) }
-func (*Quantity) ProtoMessage()    {}
+func (x *Quantity) Reset() {
+	*x = Quantity{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[11]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *Quantity) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Quantity) ProtoMessage() {}
+
+func (x *Quantity) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[11]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Quantity.ProtoReflect.Descriptor instead.
 func (*Quantity) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{11}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{11}
 }
 
-func (m *Quantity) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Quantity.Unmarshal(m, b)
-}
-func (m *Quantity) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Quantity.Marshal(b, m, deterministic)
-}
-func (m *Quantity) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Quantity.Merge(m, src)
-}
-func (m *Quantity) XXX_Size() int {
-	return xxx_messageInfo_Quantity.Size(m)
-}
-func (m *Quantity) XXX_DiscardUnknown() {
-	xxx_messageInfo_Quantity.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Quantity proto.InternalMessageInfo
-
-func (m *Quantity) GetValue() int64 {
-	if m != nil {
-		return m.Value
+func (x *Quantity) GetValue() int64 {
+	if x != nil {
+		return x.Value
 	}
 	return 0
 }
 
 type AllocationAsk struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// Allocation key is used by both of scheduler and RM to track allocations.
 	// It doesn't have to be same as RM's internal allocation id (such as Pod name of K8s or ContainerID of YARN).
 	// Allocations from the same AllocationAsk which are returned to the RM at the same time will have the same allocationKey.
@@ -944,108 +1156,116 @@
 	TaskGroupName string `protobuf:"bytes,9,opt,name=taskGroupName,proto3" json:"taskGroupName,omitempty"`
 	// Is this a placeholder ask (true) or a real ask (false), defaults to false
 	// ignored if the taskGroupName is not set
-	Placeholder          bool     `protobuf:"varint,10,opt,name=placeholder,proto3" json:"placeholder,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Placeholder bool `protobuf:"varint,10,opt,name=placeholder,proto3" json:"placeholder,omitempty"`
 }
 
-func (m *AllocationAsk) Reset()         { *m = AllocationAsk{} }
-func (m *AllocationAsk) String() string { return proto.CompactTextString(m) }
-func (*AllocationAsk) ProtoMessage()    {}
+func (x *AllocationAsk) Reset() {
+	*x = AllocationAsk{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[12]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *AllocationAsk) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AllocationAsk) ProtoMessage() {}
+
+func (x *AllocationAsk) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[12]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AllocationAsk.ProtoReflect.Descriptor instead.
 func (*AllocationAsk) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{12}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{12}
 }
 
-func (m *AllocationAsk) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AllocationAsk.Unmarshal(m, b)
-}
-func (m *AllocationAsk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AllocationAsk.Marshal(b, m, deterministic)
-}
-func (m *AllocationAsk) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AllocationAsk.Merge(m, src)
-}
-func (m *AllocationAsk) XXX_Size() int {
-	return xxx_messageInfo_AllocationAsk.Size(m)
-}
-func (m *AllocationAsk) XXX_DiscardUnknown() {
-	xxx_messageInfo_AllocationAsk.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AllocationAsk proto.InternalMessageInfo
-
-func (m *AllocationAsk) GetAllocationKey() string {
-	if m != nil {
-		return m.AllocationKey
+func (x *AllocationAsk) GetAllocationKey() string {
+	if x != nil {
+		return x.AllocationKey
 	}
 	return ""
 }
 
-func (m *AllocationAsk) GetApplicationID() string {
-	if m != nil {
-		return m.ApplicationID
+func (x *AllocationAsk) GetApplicationID() string {
+	if x != nil {
+		return x.ApplicationID
 	}
 	return ""
 }
 
-func (m *AllocationAsk) GetPartitionName() string {
-	if m != nil {
-		return m.PartitionName
+func (x *AllocationAsk) GetPartitionName() string {
+	if x != nil {
+		return x.PartitionName
 	}
 	return ""
 }
 
-func (m *AllocationAsk) GetResourceAsk() *Resource {
-	if m != nil {
-		return m.ResourceAsk
+func (x *AllocationAsk) GetResourceAsk() *Resource {
+	if x != nil {
+		return x.ResourceAsk
 	}
 	return nil
 }
 
-func (m *AllocationAsk) GetMaxAllocations() int32 {
-	if m != nil {
-		return m.MaxAllocations
+func (x *AllocationAsk) GetMaxAllocations() int32 {
+	if x != nil {
+		return x.MaxAllocations
 	}
 	return 0
 }
 
-func (m *AllocationAsk) GetPriority() *Priority {
-	if m != nil {
-		return m.Priority
+func (x *AllocationAsk) GetPriority() *Priority {
+	if x != nil {
+		return x.Priority
 	}
 	return nil
 }
 
-func (m *AllocationAsk) GetExecutionTimeoutMilliSeconds() int64 {
-	if m != nil {
-		return m.ExecutionTimeoutMilliSeconds
+func (x *AllocationAsk) GetExecutionTimeoutMilliSeconds() int64 {
+	if x != nil {
+		return x.ExecutionTimeoutMilliSeconds
 	}
 	return 0
 }
 
-func (m *AllocationAsk) GetTags() map[string]string {
-	if m != nil {
-		return m.Tags
+func (x *AllocationAsk) GetTags() map[string]string {
+	if x != nil {
+		return x.Tags
 	}
 	return nil
 }
 
-func (m *AllocationAsk) GetTaskGroupName() string {
-	if m != nil {
-		return m.TaskGroupName
+func (x *AllocationAsk) GetTaskGroupName() string {
+	if x != nil {
+		return x.TaskGroupName
 	}
 	return ""
 }
 
-func (m *AllocationAsk) GetPlaceholder() bool {
-	if m != nil {
-		return m.Placeholder
+func (x *AllocationAsk) GetPlaceholder() bool {
+	if x != nil {
+		return x.Placeholder
 	}
 	return false
 }
 
 type AddApplicationRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// The ID of the application, must be unique
 	ApplicationID string `protobuf:"bytes,1,opt,name=applicationID,proto3" json:"applicationID,omitempty"`
 	// The queue this application is requesting. The scheduler will place the application into a
@@ -1066,192 +1286,216 @@
 	PlaceholderAsk *Resource `protobuf:"bytes,7,opt,name=placeholderAsk,proto3" json:"placeholderAsk,omitempty"`
 	// Gang scheduling style can be hard (the application will fail after placeholder timeout)
 	// or soft (after the timeout the application will be scheduled as a normal application)
-	GangSchedulingStyle  string   `protobuf:"bytes,8,opt,name=gangSchedulingStyle,proto3" json:"gangSchedulingStyle,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	GangSchedulingStyle string `protobuf:"bytes,8,opt,name=gangSchedulingStyle,proto3" json:"gangSchedulingStyle,omitempty"`
 }
 
-func (m *AddApplicationRequest) Reset()         { *m = AddApplicationRequest{} }
-func (m *AddApplicationRequest) String() string { return proto.CompactTextString(m) }
-func (*AddApplicationRequest) ProtoMessage()    {}
+func (x *AddApplicationRequest) Reset() {
+	*x = AddApplicationRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[13]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *AddApplicationRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AddApplicationRequest) ProtoMessage() {}
+
+func (x *AddApplicationRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[13]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AddApplicationRequest.ProtoReflect.Descriptor instead.
 func (*AddApplicationRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{13}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{13}
 }
 
-func (m *AddApplicationRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AddApplicationRequest.Unmarshal(m, b)
-}
-func (m *AddApplicationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AddApplicationRequest.Marshal(b, m, deterministic)
-}
-func (m *AddApplicationRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AddApplicationRequest.Merge(m, src)
-}
-func (m *AddApplicationRequest) XXX_Size() int {
-	return xxx_messageInfo_AddApplicationRequest.Size(m)
-}
-func (m *AddApplicationRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_AddApplicationRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AddApplicationRequest proto.InternalMessageInfo
-
-func (m *AddApplicationRequest) GetApplicationID() string {
-	if m != nil {
-		return m.ApplicationID
+func (x *AddApplicationRequest) GetApplicationID() string {
+	if x != nil {
+		return x.ApplicationID
 	}
 	return ""
 }
 
-func (m *AddApplicationRequest) GetQueueName() string {
-	if m != nil {
-		return m.QueueName
+func (x *AddApplicationRequest) GetQueueName() string {
+	if x != nil {
+		return x.QueueName
 	}
 	return ""
 }
 
-func (m *AddApplicationRequest) GetPartitionName() string {
-	if m != nil {
-		return m.PartitionName
+func (x *AddApplicationRequest) GetPartitionName() string {
+	if x != nil {
+		return x.PartitionName
 	}
 	return ""
 }
 
-func (m *AddApplicationRequest) GetUgi() *UserGroupInformation {
-	if m != nil {
-		return m.Ugi
+func (x *AddApplicationRequest) GetUgi() *UserGroupInformation {
+	if x != nil {
+		return x.Ugi
 	}
 	return nil
 }
 
-func (m *AddApplicationRequest) GetTags() map[string]string {
-	if m != nil {
-		return m.Tags
+func (x *AddApplicationRequest) GetTags() map[string]string {
+	if x != nil {
+		return x.Tags
 	}
 	return nil
 }
 
-func (m *AddApplicationRequest) GetExecutionTimeoutMilliSeconds() int64 {
-	if m != nil {
-		return m.ExecutionTimeoutMilliSeconds
+func (x *AddApplicationRequest) GetExecutionTimeoutMilliSeconds() int64 {
+	if x != nil {
+		return x.ExecutionTimeoutMilliSeconds
 	}
 	return 0
 }
 
-func (m *AddApplicationRequest) GetPlaceholderAsk() *Resource {
-	if m != nil {
-		return m.PlaceholderAsk
+func (x *AddApplicationRequest) GetPlaceholderAsk() *Resource {
+	if x != nil {
+		return x.PlaceholderAsk
 	}
 	return nil
 }
 
-func (m *AddApplicationRequest) GetGangSchedulingStyle() string {
-	if m != nil {
-		return m.GangSchedulingStyle
+func (x *AddApplicationRequest) GetGangSchedulingStyle() string {
+	if x != nil {
+		return x.GangSchedulingStyle
 	}
 	return ""
 }
 
 type RemoveApplicationRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// The ID of the application to remove
 	ApplicationID string `protobuf:"bytes,1,opt,name=applicationID,proto3" json:"applicationID,omitempty"`
 	// The partition the application belongs to
-	PartitionName        string   `protobuf:"bytes,2,opt,name=partitionName,proto3" json:"partitionName,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	PartitionName string `protobuf:"bytes,2,opt,name=partitionName,proto3" json:"partitionName,omitempty"`
 }
 
-func (m *RemoveApplicationRequest) Reset()         { *m = RemoveApplicationRequest{} }
-func (m *RemoveApplicationRequest) String() string { return proto.CompactTextString(m) }
-func (*RemoveApplicationRequest) ProtoMessage()    {}
+func (x *RemoveApplicationRequest) Reset() {
+	*x = RemoveApplicationRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[14]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *RemoveApplicationRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RemoveApplicationRequest) ProtoMessage() {}
+
+func (x *RemoveApplicationRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_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 RemoveApplicationRequest.ProtoReflect.Descriptor instead.
 func (*RemoveApplicationRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{14}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{14}
 }
 
-func (m *RemoveApplicationRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_RemoveApplicationRequest.Unmarshal(m, b)
-}
-func (m *RemoveApplicationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_RemoveApplicationRequest.Marshal(b, m, deterministic)
-}
-func (m *RemoveApplicationRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_RemoveApplicationRequest.Merge(m, src)
-}
-func (m *RemoveApplicationRequest) XXX_Size() int {
-	return xxx_messageInfo_RemoveApplicationRequest.Size(m)
-}
-func (m *RemoveApplicationRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_RemoveApplicationRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RemoveApplicationRequest proto.InternalMessageInfo
-
-func (m *RemoveApplicationRequest) GetApplicationID() string {
-	if m != nil {
-		return m.ApplicationID
+func (x *RemoveApplicationRequest) GetApplicationID() string {
+	if x != nil {
+		return x.ApplicationID
 	}
 	return ""
 }
 
-func (m *RemoveApplicationRequest) GetPartitionName() string {
-	if m != nil {
-		return m.PartitionName
+func (x *RemoveApplicationRequest) GetPartitionName() string {
+	if x != nil {
+		return x.PartitionName
 	}
 	return ""
 }
 
 type UserGroupInformation struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// the user name
 	User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
 	// the list of groups of the user, can be empty
-	Groups               []string `protobuf:"bytes,2,rep,name=groups,proto3" json:"groups,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Groups []string `protobuf:"bytes,2,rep,name=groups,proto3" json:"groups,omitempty"`
 }
 
-func (m *UserGroupInformation) Reset()         { *m = UserGroupInformation{} }
-func (m *UserGroupInformation) String() string { return proto.CompactTextString(m) }
-func (*UserGroupInformation) ProtoMessage()    {}
+func (x *UserGroupInformation) Reset() {
+	*x = UserGroupInformation{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[15]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *UserGroupInformation) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UserGroupInformation) ProtoMessage() {}
+
+func (x *UserGroupInformation) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_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 UserGroupInformation.ProtoReflect.Descriptor instead.
 func (*UserGroupInformation) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{15}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{15}
 }
 
-func (m *UserGroupInformation) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_UserGroupInformation.Unmarshal(m, b)
-}
-func (m *UserGroupInformation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_UserGroupInformation.Marshal(b, m, deterministic)
-}
-func (m *UserGroupInformation) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_UserGroupInformation.Merge(m, src)
-}
-func (m *UserGroupInformation) XXX_Size() int {
-	return xxx_messageInfo_UserGroupInformation.Size(m)
-}
-func (m *UserGroupInformation) XXX_DiscardUnknown() {
-	xxx_messageInfo_UserGroupInformation.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_UserGroupInformation proto.InternalMessageInfo
-
-func (m *UserGroupInformation) GetUser() string {
-	if m != nil {
-		return m.User
+func (x *UserGroupInformation) GetUser() string {
+	if x != nil {
+		return x.User
 	}
 	return ""
 }
 
-func (m *UserGroupInformation) GetGroups() []string {
-	if m != nil {
-		return m.Groups
+func (x *UserGroupInformation) GetGroups() []string {
+	if x != nil {
+		return x.Groups
 	}
 	return nil
 }
 
 type Allocation struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// AllocationKey from AllocationAsk
 	AllocationKey string `protobuf:"bytes,1,opt,name=allocationKey,proto3" json:"allocationKey,omitempty"`
 	// Allocation tags from AllocationAsk
@@ -1274,159 +1518,171 @@
 	TaskGroupName string `protobuf:"bytes,11,opt,name=taskGroupName,proto3" json:"taskGroupName,omitempty"`
 	// Is this a placeholder allocation (true) or a real allocation (false), defaults to false
 	// ignored if the taskGroupName is not set
-	Placeholder          bool     `protobuf:"varint,12,opt,name=placeholder,proto3" json:"placeholder,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Placeholder bool `protobuf:"varint,12,opt,name=placeholder,proto3" json:"placeholder,omitempty"`
 }
 
-func (m *Allocation) Reset()         { *m = Allocation{} }
-func (m *Allocation) String() string { return proto.CompactTextString(m) }
-func (*Allocation) ProtoMessage()    {}
+func (x *Allocation) Reset() {
+	*x = Allocation{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[16]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *Allocation) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Allocation) ProtoMessage() {}
+
+func (x *Allocation) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[16]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use Allocation.ProtoReflect.Descriptor instead.
 func (*Allocation) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{16}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{16}
 }
 
-func (m *Allocation) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_Allocation.Unmarshal(m, b)
-}
-func (m *Allocation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_Allocation.Marshal(b, m, deterministic)
-}
-func (m *Allocation) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_Allocation.Merge(m, src)
-}
-func (m *Allocation) XXX_Size() int {
-	return xxx_messageInfo_Allocation.Size(m)
-}
-func (m *Allocation) XXX_DiscardUnknown() {
-	xxx_messageInfo_Allocation.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_Allocation proto.InternalMessageInfo
-
-func (m *Allocation) GetAllocationKey() string {
-	if m != nil {
-		return m.AllocationKey
+func (x *Allocation) GetAllocationKey() string {
+	if x != nil {
+		return x.AllocationKey
 	}
 	return ""
 }
 
-func (m *Allocation) GetAllocationTags() map[string]string {
-	if m != nil {
-		return m.AllocationTags
+func (x *Allocation) GetAllocationTags() map[string]string {
+	if x != nil {
+		return x.AllocationTags
 	}
 	return nil
 }
 
-func (m *Allocation) GetUUID() string {
-	if m != nil {
-		return m.UUID
+func (x *Allocation) GetUUID() string {
+	if x != nil {
+		return x.UUID
 	}
 	return ""
 }
 
-func (m *Allocation) GetResourcePerAlloc() *Resource {
-	if m != nil {
-		return m.ResourcePerAlloc
+func (x *Allocation) GetResourcePerAlloc() *Resource {
+	if x != nil {
+		return x.ResourcePerAlloc
 	}
 	return nil
 }
 
-func (m *Allocation) GetPriority() *Priority {
-	if m != nil {
-		return m.Priority
+func (x *Allocation) GetPriority() *Priority {
+	if x != nil {
+		return x.Priority
 	}
 	return nil
 }
 
-func (m *Allocation) GetQueueName() string {
-	if m != nil {
-		return m.QueueName
+func (x *Allocation) GetQueueName() string {
+	if x != nil {
+		return x.QueueName
 	}
 	return ""
 }
 
-func (m *Allocation) GetNodeID() string {
-	if m != nil {
-		return m.NodeID
+func (x *Allocation) GetNodeID() string {
+	if x != nil {
+		return x.NodeID
 	}
 	return ""
 }
 
-func (m *Allocation) GetApplicationID() string {
-	if m != nil {
-		return m.ApplicationID
+func (x *Allocation) GetApplicationID() string {
+	if x != nil {
+		return x.ApplicationID
 	}
 	return ""
 }
 
-func (m *Allocation) GetPartitionName() string {
-	if m != nil {
-		return m.PartitionName
+func (x *Allocation) GetPartitionName() string {
+	if x != nil {
+		return x.PartitionName
 	}
 	return ""
 }
 
-func (m *Allocation) GetTaskGroupName() string {
-	if m != nil {
-		return m.TaskGroupName
+func (x *Allocation) GetTaskGroupName() string {
+	if x != nil {
+		return x.TaskGroupName
 	}
 	return ""
 }
 
-func (m *Allocation) GetPlaceholder() bool {
-	if m != nil {
-		return m.Placeholder
+func (x *Allocation) GetPlaceholder() bool {
+	if x != nil {
+		return x.Placeholder
 	}
 	return false
 }
 
 type AllocationReleasesRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// The allocations to release
 	AllocationsToRelease []*AllocationRelease `protobuf:"bytes,1,rep,name=allocationsToRelease,proto3" json:"allocationsToRelease,omitempty"`
 	// The asks to release
 	AllocationAsksToRelease []*AllocationAskRelease `protobuf:"bytes,2,rep,name=allocationAsksToRelease,proto3" json:"allocationAsksToRelease,omitempty"`
-	XXX_NoUnkeyedLiteral    struct{}                `json:"-"`
-	XXX_unrecognized        []byte                  `json:"-"`
-	XXX_sizecache           int32                   `json:"-"`
 }
 
-func (m *AllocationReleasesRequest) Reset()         { *m = AllocationReleasesRequest{} }
-func (m *AllocationReleasesRequest) String() string { return proto.CompactTextString(m) }
-func (*AllocationReleasesRequest) ProtoMessage()    {}
+func (x *AllocationReleasesRequest) Reset() {
+	*x = AllocationReleasesRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[17]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *AllocationReleasesRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AllocationReleasesRequest) ProtoMessage() {}
+
+func (x *AllocationReleasesRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[17]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AllocationReleasesRequest.ProtoReflect.Descriptor instead.
 func (*AllocationReleasesRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{17}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{17}
 }
 
-func (m *AllocationReleasesRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AllocationReleasesRequest.Unmarshal(m, b)
-}
-func (m *AllocationReleasesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AllocationReleasesRequest.Marshal(b, m, deterministic)
-}
-func (m *AllocationReleasesRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AllocationReleasesRequest.Merge(m, src)
-}
-func (m *AllocationReleasesRequest) XXX_Size() int {
-	return xxx_messageInfo_AllocationReleasesRequest.Size(m)
-}
-func (m *AllocationReleasesRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_AllocationReleasesRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AllocationReleasesRequest proto.InternalMessageInfo
-
-func (m *AllocationReleasesRequest) GetAllocationsToRelease() []*AllocationRelease {
-	if m != nil {
-		return m.AllocationsToRelease
+func (x *AllocationReleasesRequest) GetAllocationsToRelease() []*AllocationRelease {
+	if x != nil {
+		return x.AllocationsToRelease
 	}
 	return nil
 }
 
-func (m *AllocationReleasesRequest) GetAllocationAsksToRelease() []*AllocationAskRelease {
-	if m != nil {
-		return m.AllocationAsksToRelease
+func (x *AllocationReleasesRequest) GetAllocationAsksToRelease() []*AllocationAskRelease {
+	if x != nil {
+		return x.AllocationAsksToRelease
 	}
 	return nil
 }
@@ -1435,6 +1691,10 @@
 // as per the comment. The confirmation or response from the receiver is the same message with the same
 // termination type set.
 type AllocationRelease struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// The name of the partition the allocation belongs to
 	PartitionName string `protobuf:"bytes,1,opt,name=partitionName,proto3" json:"partitionName,omitempty"`
 	// The application the allocation belongs to
@@ -1445,74 +1705,82 @@
 	// Termination type of the released allocation
 	TerminationType TerminationType `protobuf:"varint,4,opt,name=terminationType,proto3,enum=si.v1.TerminationType" json:"terminationType,omitempty"`
 	// human-readable message
-	Message              string   `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
 }
 
-func (m *AllocationRelease) Reset()         { *m = AllocationRelease{} }
-func (m *AllocationRelease) String() string { return proto.CompactTextString(m) }
-func (*AllocationRelease) ProtoMessage()    {}
+func (x *AllocationRelease) Reset() {
+	*x = AllocationRelease{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[18]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *AllocationRelease) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AllocationRelease) ProtoMessage() {}
+
+func (x *AllocationRelease) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_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 AllocationRelease.ProtoReflect.Descriptor instead.
 func (*AllocationRelease) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{18}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{18}
 }
 
-func (m *AllocationRelease) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AllocationRelease.Unmarshal(m, b)
-}
-func (m *AllocationRelease) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AllocationRelease.Marshal(b, m, deterministic)
-}
-func (m *AllocationRelease) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AllocationRelease.Merge(m, src)
-}
-func (m *AllocationRelease) XXX_Size() int {
-	return xxx_messageInfo_AllocationRelease.Size(m)
-}
-func (m *AllocationRelease) XXX_DiscardUnknown() {
-	xxx_messageInfo_AllocationRelease.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AllocationRelease proto.InternalMessageInfo
-
-func (m *AllocationRelease) GetPartitionName() string {
-	if m != nil {
-		return m.PartitionName
+func (x *AllocationRelease) GetPartitionName() string {
+	if x != nil {
+		return x.PartitionName
 	}
 	return ""
 }
 
-func (m *AllocationRelease) GetApplicationID() string {
-	if m != nil {
-		return m.ApplicationID
+func (x *AllocationRelease) GetApplicationID() string {
+	if x != nil {
+		return x.ApplicationID
 	}
 	return ""
 }
 
-func (m *AllocationRelease) GetUUID() string {
-	if m != nil {
-		return m.UUID
+func (x *AllocationRelease) GetUUID() string {
+	if x != nil {
+		return x.UUID
 	}
 	return ""
 }
 
-func (m *AllocationRelease) GetTerminationType() TerminationType {
-	if m != nil {
-		return m.TerminationType
+func (x *AllocationRelease) GetTerminationType() TerminationType {
+	if x != nil {
+		return x.TerminationType
 	}
 	return TerminationType_STOPPED_BY_RM
 }
 
-func (m *AllocationRelease) GetMessage() string {
-	if m != nil {
-		return m.Message
+func (x *AllocationRelease) GetMessage() string {
+	if x != nil {
+		return x.Message
 	}
 	return ""
 }
 
 // Release ask
 type AllocationAskRelease struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// Which partition to release the ask from, required.
 	PartitionName string `protobuf:"bytes,1,opt,name=partitionName,proto3" json:"partitionName,omitempty"`
 	// optional, when this is set, filter allocation key by application id.
@@ -1523,73 +1791,81 @@
 	// Termination type of the released allocation ask
 	TerminationType TerminationType `protobuf:"varint,4,opt,name=terminationType,proto3,enum=si.v1.TerminationType" json:"terminationType,omitempty"`
 	// For human-readable message
-	Message              string   `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
 }
 
-func (m *AllocationAskRelease) Reset()         { *m = AllocationAskRelease{} }
-func (m *AllocationAskRelease) String() string { return proto.CompactTextString(m) }
-func (*AllocationAskRelease) ProtoMessage()    {}
+func (x *AllocationAskRelease) Reset() {
+	*x = AllocationAskRelease{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[19]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *AllocationAskRelease) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AllocationAskRelease) ProtoMessage() {}
+
+func (x *AllocationAskRelease) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_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 AllocationAskRelease.ProtoReflect.Descriptor instead.
 func (*AllocationAskRelease) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{19}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{19}
 }
 
-func (m *AllocationAskRelease) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AllocationAskRelease.Unmarshal(m, b)
-}
-func (m *AllocationAskRelease) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AllocationAskRelease.Marshal(b, m, deterministic)
-}
-func (m *AllocationAskRelease) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AllocationAskRelease.Merge(m, src)
-}
-func (m *AllocationAskRelease) XXX_Size() int {
-	return xxx_messageInfo_AllocationAskRelease.Size(m)
-}
-func (m *AllocationAskRelease) XXX_DiscardUnknown() {
-	xxx_messageInfo_AllocationAskRelease.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AllocationAskRelease proto.InternalMessageInfo
-
-func (m *AllocationAskRelease) GetPartitionName() string {
-	if m != nil {
-		return m.PartitionName
+func (x *AllocationAskRelease) GetPartitionName() string {
+	if x != nil {
+		return x.PartitionName
 	}
 	return ""
 }
 
-func (m *AllocationAskRelease) GetApplicationID() string {
-	if m != nil {
-		return m.ApplicationID
+func (x *AllocationAskRelease) GetApplicationID() string {
+	if x != nil {
+		return x.ApplicationID
 	}
 	return ""
 }
 
-func (m *AllocationAskRelease) GetAllocationkey() string {
-	if m != nil {
-		return m.Allocationkey
+func (x *AllocationAskRelease) GetAllocationkey() string {
+	if x != nil {
+		return x.Allocationkey
 	}
 	return ""
 }
 
-func (m *AllocationAskRelease) GetTerminationType() TerminationType {
-	if m != nil {
-		return m.TerminationType
+func (x *AllocationAskRelease) GetTerminationType() TerminationType {
+	if x != nil {
+		return x.TerminationType
 	}
 	return TerminationType_STOPPED_BY_RM
 }
 
-func (m *AllocationAskRelease) GetMessage() string {
-	if m != nil {
-		return m.Message
+func (x *AllocationAskRelease) GetMessage() string {
+	if x != nil {
+		return x.Message
 	}
 	return ""
 }
 
 type NewNodeInfo struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// ID of node, must be unique
 	NodeID string `protobuf:"bytes,1,opt,name=nodeID,proto3" json:"nodeID,omitempty"`
 	// node attributes
@@ -1599,73 +1875,81 @@
 	// Occupied Resource
 	OccupiedResource *Resource `protobuf:"bytes,4,opt,name=occupiedResource,proto3" json:"occupiedResource,omitempty"`
 	// Allocated resources, this will be added when node registered to RM (recovery)
-	ExistingAllocations  []*Allocation `protobuf:"bytes,5,rep,name=existingAllocations,proto3" json:"existingAllocations,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
-	XXX_unrecognized     []byte        `json:"-"`
-	XXX_sizecache        int32         `json:"-"`
+	ExistingAllocations []*Allocation `protobuf:"bytes,5,rep,name=existingAllocations,proto3" json:"existingAllocations,omitempty"`
 }
 
-func (m *NewNodeInfo) Reset()         { *m = NewNodeInfo{} }
-func (m *NewNodeInfo) String() string { return proto.CompactTextString(m) }
-func (*NewNodeInfo) ProtoMessage()    {}
+func (x *NewNodeInfo) Reset() {
+	*x = NewNodeInfo{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[20]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *NewNodeInfo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*NewNodeInfo) ProtoMessage() {}
+
+func (x *NewNodeInfo) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[20]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use NewNodeInfo.ProtoReflect.Descriptor instead.
 func (*NewNodeInfo) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{20}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{20}
 }
 
-func (m *NewNodeInfo) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_NewNodeInfo.Unmarshal(m, b)
-}
-func (m *NewNodeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_NewNodeInfo.Marshal(b, m, deterministic)
-}
-func (m *NewNodeInfo) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_NewNodeInfo.Merge(m, src)
-}
-func (m *NewNodeInfo) XXX_Size() int {
-	return xxx_messageInfo_NewNodeInfo.Size(m)
-}
-func (m *NewNodeInfo) XXX_DiscardUnknown() {
-	xxx_messageInfo_NewNodeInfo.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_NewNodeInfo proto.InternalMessageInfo
-
-func (m *NewNodeInfo) GetNodeID() string {
-	if m != nil {
-		return m.NodeID
+func (x *NewNodeInfo) GetNodeID() string {
+	if x != nil {
+		return x.NodeID
 	}
 	return ""
 }
 
-func (m *NewNodeInfo) GetAttributes() map[string]string {
-	if m != nil {
-		return m.Attributes
+func (x *NewNodeInfo) GetAttributes() map[string]string {
+	if x != nil {
+		return x.Attributes
 	}
 	return nil
 }
 
-func (m *NewNodeInfo) GetSchedulableResource() *Resource {
-	if m != nil {
-		return m.SchedulableResource
+func (x *NewNodeInfo) GetSchedulableResource() *Resource {
+	if x != nil {
+		return x.SchedulableResource
 	}
 	return nil
 }
 
-func (m *NewNodeInfo) GetOccupiedResource() *Resource {
-	if m != nil {
-		return m.OccupiedResource
+func (x *NewNodeInfo) GetOccupiedResource() *Resource {
+	if x != nil {
+		return x.OccupiedResource
 	}
 	return nil
 }
 
-func (m *NewNodeInfo) GetExistingAllocations() []*Allocation {
-	if m != nil {
-		return m.ExistingAllocations
+func (x *NewNodeInfo) GetExistingAllocations() []*Allocation {
+	if x != nil {
+		return x.ExistingAllocations
 	}
 	return nil
 }
 
 type UpdateNodeInfo struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// ID of node, the node must exist to be updated
 	NodeID string `protobuf:"bytes,1,opt,name=nodeID,proto3" json:"nodeID,omitempty"`
 	// New attributes of node, which will replace previously reported attribute.
@@ -1677,327 +1961,375 @@
 	// resources might be occupied (allocated) by other schedulers.
 	OccupiedResource *Resource `protobuf:"bytes,4,opt,name=occupiedResource,proto3" json:"occupiedResource,omitempty"`
 	// Action to perform by the scheduler
-	Action               UpdateNodeInfo_ActionFromRM `protobuf:"varint,5,opt,name=action,proto3,enum=si.v1.UpdateNodeInfo_ActionFromRM" json:"action,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}                    `json:"-"`
-	XXX_unrecognized     []byte                      `json:"-"`
-	XXX_sizecache        int32                       `json:"-"`
+	Action UpdateNodeInfo_ActionFromRM `protobuf:"varint,5,opt,name=action,proto3,enum=si.v1.UpdateNodeInfo_ActionFromRM" json:"action,omitempty"`
 }
 
-func (m *UpdateNodeInfo) Reset()         { *m = UpdateNodeInfo{} }
-func (m *UpdateNodeInfo) String() string { return proto.CompactTextString(m) }
-func (*UpdateNodeInfo) ProtoMessage()    {}
+func (x *UpdateNodeInfo) Reset() {
+	*x = UpdateNodeInfo{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[21]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *UpdateNodeInfo) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateNodeInfo) ProtoMessage() {}
+
+func (x *UpdateNodeInfo) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[21]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateNodeInfo.ProtoReflect.Descriptor instead.
 func (*UpdateNodeInfo) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{21}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{21}
 }
 
-func (m *UpdateNodeInfo) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_UpdateNodeInfo.Unmarshal(m, b)
-}
-func (m *UpdateNodeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_UpdateNodeInfo.Marshal(b, m, deterministic)
-}
-func (m *UpdateNodeInfo) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_UpdateNodeInfo.Merge(m, src)
-}
-func (m *UpdateNodeInfo) XXX_Size() int {
-	return xxx_messageInfo_UpdateNodeInfo.Size(m)
-}
-func (m *UpdateNodeInfo) XXX_DiscardUnknown() {
-	xxx_messageInfo_UpdateNodeInfo.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_UpdateNodeInfo proto.InternalMessageInfo
-
-func (m *UpdateNodeInfo) GetNodeID() string {
-	if m != nil {
-		return m.NodeID
+func (x *UpdateNodeInfo) GetNodeID() string {
+	if x != nil {
+		return x.NodeID
 	}
 	return ""
 }
 
-func (m *UpdateNodeInfo) GetAttributes() map[string]string {
-	if m != nil {
-		return m.Attributes
+func (x *UpdateNodeInfo) GetAttributes() map[string]string {
+	if x != nil {
+		return x.Attributes
 	}
 	return nil
 }
 
-func (m *UpdateNodeInfo) GetSchedulableResource() *Resource {
-	if m != nil {
-		return m.SchedulableResource
+func (x *UpdateNodeInfo) GetSchedulableResource() *Resource {
+	if x != nil {
+		return x.SchedulableResource
 	}
 	return nil
 }
 
-func (m *UpdateNodeInfo) GetOccupiedResource() *Resource {
-	if m != nil {
-		return m.OccupiedResource
+func (x *UpdateNodeInfo) GetOccupiedResource() *Resource {
+	if x != nil {
+		return x.OccupiedResource
 	}
 	return nil
 }
 
-func (m *UpdateNodeInfo) GetAction() UpdateNodeInfo_ActionFromRM {
-	if m != nil {
-		return m.Action
+func (x *UpdateNodeInfo) GetAction() UpdateNodeInfo_ActionFromRM {
+	if x != nil {
+		return x.Action
 	}
 	return UpdateNodeInfo_UPDATE
 }
 
 type RejectedAllocationAsk struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	AllocationKey string `protobuf:"bytes,1,opt,name=allocationKey,proto3" json:"allocationKey,omitempty"`
 	// The ID of the application
 	ApplicationID string `protobuf:"bytes,2,opt,name=applicationID,proto3" json:"applicationID,omitempty"`
 	// A human-readable reason message
-	Reason               string   `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Reason string `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"`
 }
 
-func (m *RejectedAllocationAsk) Reset()         { *m = RejectedAllocationAsk{} }
-func (m *RejectedAllocationAsk) String() string { return proto.CompactTextString(m) }
-func (*RejectedAllocationAsk) ProtoMessage()    {}
+func (x *RejectedAllocationAsk) Reset() {
+	*x = RejectedAllocationAsk{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[22]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *RejectedAllocationAsk) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RejectedAllocationAsk) ProtoMessage() {}
+
+func (x *RejectedAllocationAsk) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[22]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use RejectedAllocationAsk.ProtoReflect.Descriptor instead.
 func (*RejectedAllocationAsk) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{22}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{22}
 }
 
-func (m *RejectedAllocationAsk) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_RejectedAllocationAsk.Unmarshal(m, b)
-}
-func (m *RejectedAllocationAsk) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_RejectedAllocationAsk.Marshal(b, m, deterministic)
-}
-func (m *RejectedAllocationAsk) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_RejectedAllocationAsk.Merge(m, src)
-}
-func (m *RejectedAllocationAsk) XXX_Size() int {
-	return xxx_messageInfo_RejectedAllocationAsk.Size(m)
-}
-func (m *RejectedAllocationAsk) XXX_DiscardUnknown() {
-	xxx_messageInfo_RejectedAllocationAsk.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_RejectedAllocationAsk proto.InternalMessageInfo
-
-func (m *RejectedAllocationAsk) GetAllocationKey() string {
-	if m != nil {
-		return m.AllocationKey
+func (x *RejectedAllocationAsk) GetAllocationKey() string {
+	if x != nil {
+		return x.AllocationKey
 	}
 	return ""
 }
 
-func (m *RejectedAllocationAsk) GetApplicationID() string {
-	if m != nil {
-		return m.ApplicationID
+func (x *RejectedAllocationAsk) GetApplicationID() string {
+	if x != nil {
+		return x.ApplicationID
 	}
 	return ""
 }
 
-func (m *RejectedAllocationAsk) GetReason() string {
-	if m != nil {
-		return m.Reason
+func (x *RejectedAllocationAsk) GetReason() string {
+	if x != nil {
+		return x.Reason
 	}
 	return ""
 }
 
 type PredicatesArgs struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// allocation key identifies a container, the predicates function is going to check
 	// if this container is eligible to be placed ont to a node.
 	AllocationKey string `protobuf:"bytes,1,opt,name=allocationKey,proto3" json:"allocationKey,omitempty"`
 	// the node ID the container is assigned to.
 	NodeID string `protobuf:"bytes,2,opt,name=nodeID,proto3" json:"nodeID,omitempty"`
 	// run the predicates for alloactions (true) or reservations (false)
-	Allocate             bool     `protobuf:"varint,3,opt,name=allocate,proto3" json:"allocate,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Allocate bool `protobuf:"varint,3,opt,name=allocate,proto3" json:"allocate,omitempty"`
 }
 
-func (m *PredicatesArgs) Reset()         { *m = PredicatesArgs{} }
-func (m *PredicatesArgs) String() string { return proto.CompactTextString(m) }
-func (*PredicatesArgs) ProtoMessage()    {}
+func (x *PredicatesArgs) Reset() {
+	*x = PredicatesArgs{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[23]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *PredicatesArgs) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PredicatesArgs) ProtoMessage() {}
+
+func (x *PredicatesArgs) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[23]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use PredicatesArgs.ProtoReflect.Descriptor instead.
 func (*PredicatesArgs) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{23}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{23}
 }
 
-func (m *PredicatesArgs) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_PredicatesArgs.Unmarshal(m, b)
-}
-func (m *PredicatesArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_PredicatesArgs.Marshal(b, m, deterministic)
-}
-func (m *PredicatesArgs) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_PredicatesArgs.Merge(m, src)
-}
-func (m *PredicatesArgs) XXX_Size() int {
-	return xxx_messageInfo_PredicatesArgs.Size(m)
-}
-func (m *PredicatesArgs) XXX_DiscardUnknown() {
-	xxx_messageInfo_PredicatesArgs.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_PredicatesArgs proto.InternalMessageInfo
-
-func (m *PredicatesArgs) GetAllocationKey() string {
-	if m != nil {
-		return m.AllocationKey
+func (x *PredicatesArgs) GetAllocationKey() string {
+	if x != nil {
+		return x.AllocationKey
 	}
 	return ""
 }
 
-func (m *PredicatesArgs) GetNodeID() string {
-	if m != nil {
-		return m.NodeID
+func (x *PredicatesArgs) GetNodeID() string {
+	if x != nil {
+		return x.NodeID
 	}
 	return ""
 }
 
-func (m *PredicatesArgs) GetAllocate() bool {
-	if m != nil {
-		return m.Allocate
+func (x *PredicatesArgs) GetAllocate() bool {
+	if x != nil {
+		return x.Allocate
 	}
 	return false
 }
 
 type ReSyncSchedulerCacheArgs struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// a list of assumed allocations, this will be sync'd to scheduler cache.
 	AssumedAllocations []*AssumedAllocation `protobuf:"bytes,1,rep,name=assumedAllocations,proto3" json:"assumedAllocations,omitempty"`
 	// a list of allocations to forget
-	ForgetAllocations    []*ForgotAllocation `protobuf:"bytes,2,rep,name=forgetAllocations,proto3" json:"forgetAllocations,omitempty"`
-	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
-	XXX_unrecognized     []byte              `json:"-"`
-	XXX_sizecache        int32               `json:"-"`
+	ForgetAllocations []*ForgotAllocation `protobuf:"bytes,2,rep,name=forgetAllocations,proto3" json:"forgetAllocations,omitempty"`
 }
 
-func (m *ReSyncSchedulerCacheArgs) Reset()         { *m = ReSyncSchedulerCacheArgs{} }
-func (m *ReSyncSchedulerCacheArgs) String() string { return proto.CompactTextString(m) }
-func (*ReSyncSchedulerCacheArgs) ProtoMessage()    {}
+func (x *ReSyncSchedulerCacheArgs) Reset() {
+	*x = ReSyncSchedulerCacheArgs{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[24]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *ReSyncSchedulerCacheArgs) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ReSyncSchedulerCacheArgs) ProtoMessage() {}
+
+func (x *ReSyncSchedulerCacheArgs) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[24]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ReSyncSchedulerCacheArgs.ProtoReflect.Descriptor instead.
 func (*ReSyncSchedulerCacheArgs) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{24}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{24}
 }
 
-func (m *ReSyncSchedulerCacheArgs) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ReSyncSchedulerCacheArgs.Unmarshal(m, b)
-}
-func (m *ReSyncSchedulerCacheArgs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ReSyncSchedulerCacheArgs.Marshal(b, m, deterministic)
-}
-func (m *ReSyncSchedulerCacheArgs) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ReSyncSchedulerCacheArgs.Merge(m, src)
-}
-func (m *ReSyncSchedulerCacheArgs) XXX_Size() int {
-	return xxx_messageInfo_ReSyncSchedulerCacheArgs.Size(m)
-}
-func (m *ReSyncSchedulerCacheArgs) XXX_DiscardUnknown() {
-	xxx_messageInfo_ReSyncSchedulerCacheArgs.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ReSyncSchedulerCacheArgs proto.InternalMessageInfo
-
-func (m *ReSyncSchedulerCacheArgs) GetAssumedAllocations() []*AssumedAllocation {
-	if m != nil {
-		return m.AssumedAllocations
+func (x *ReSyncSchedulerCacheArgs) GetAssumedAllocations() []*AssumedAllocation {
+	if x != nil {
+		return x.AssumedAllocations
 	}
 	return nil
 }
 
-func (m *ReSyncSchedulerCacheArgs) GetForgetAllocations() []*ForgotAllocation {
-	if m != nil {
-		return m.ForgetAllocations
+func (x *ReSyncSchedulerCacheArgs) GetForgetAllocations() []*ForgotAllocation {
+	if x != nil {
+		return x.ForgetAllocations
 	}
 	return nil
 }
 
 type AssumedAllocation struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// allocation key used to identify a container.
 	AllocationKey string `protobuf:"bytes,1,opt,name=allocationKey,proto3" json:"allocationKey,omitempty"`
 	// the node ID the container is assumed to be allocated to, this info is stored in scheduler cache.
-	NodeID               string   `protobuf:"bytes,2,opt,name=nodeID,proto3" json:"nodeID,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	NodeID string `protobuf:"bytes,2,opt,name=nodeID,proto3" json:"nodeID,omitempty"`
 }
 
-func (m *AssumedAllocation) Reset()         { *m = AssumedAllocation{} }
-func (m *AssumedAllocation) String() string { return proto.CompactTextString(m) }
-func (*AssumedAllocation) ProtoMessage()    {}
+func (x *AssumedAllocation) Reset() {
+	*x = AssumedAllocation{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[25]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *AssumedAllocation) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AssumedAllocation) ProtoMessage() {}
+
+func (x *AssumedAllocation) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[25]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use AssumedAllocation.ProtoReflect.Descriptor instead.
 func (*AssumedAllocation) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{25}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{25}
 }
 
-func (m *AssumedAllocation) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_AssumedAllocation.Unmarshal(m, b)
-}
-func (m *AssumedAllocation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_AssumedAllocation.Marshal(b, m, deterministic)
-}
-func (m *AssumedAllocation) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_AssumedAllocation.Merge(m, src)
-}
-func (m *AssumedAllocation) XXX_Size() int {
-	return xxx_messageInfo_AssumedAllocation.Size(m)
-}
-func (m *AssumedAllocation) XXX_DiscardUnknown() {
-	xxx_messageInfo_AssumedAllocation.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_AssumedAllocation proto.InternalMessageInfo
-
-func (m *AssumedAllocation) GetAllocationKey() string {
-	if m != nil {
-		return m.AllocationKey
+func (x *AssumedAllocation) GetAllocationKey() string {
+	if x != nil {
+		return x.AllocationKey
 	}
 	return ""
 }
 
-func (m *AssumedAllocation) GetNodeID() string {
-	if m != nil {
-		return m.NodeID
+func (x *AssumedAllocation) GetNodeID() string {
+	if x != nil {
+		return x.NodeID
 	}
 	return ""
 }
 
 type ForgotAllocation struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// allocation key used to identify a container.
-	AllocationKey        string   `protobuf:"bytes,1,opt,name=allocationKey,proto3" json:"allocationKey,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	AllocationKey string `protobuf:"bytes,1,opt,name=allocationKey,proto3" json:"allocationKey,omitempty"`
 }
 
-func (m *ForgotAllocation) Reset()         { *m = ForgotAllocation{} }
-func (m *ForgotAllocation) String() string { return proto.CompactTextString(m) }
-func (*ForgotAllocation) ProtoMessage()    {}
+func (x *ForgotAllocation) Reset() {
+	*x = ForgotAllocation{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[26]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *ForgotAllocation) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ForgotAllocation) ProtoMessage() {}
+
+func (x *ForgotAllocation) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[26]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use ForgotAllocation.ProtoReflect.Descriptor instead.
 func (*ForgotAllocation) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{26}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{26}
 }
 
-func (m *ForgotAllocation) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_ForgotAllocation.Unmarshal(m, b)
-}
-func (m *ForgotAllocation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_ForgotAllocation.Marshal(b, m, deterministic)
-}
-func (m *ForgotAllocation) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_ForgotAllocation.Merge(m, src)
-}
-func (m *ForgotAllocation) XXX_Size() int {
-	return xxx_messageInfo_ForgotAllocation.Size(m)
-}
-func (m *ForgotAllocation) XXX_DiscardUnknown() {
-	xxx_messageInfo_ForgotAllocation.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_ForgotAllocation proto.InternalMessageInfo
-
-func (m *ForgotAllocation) GetAllocationKey() string {
-	if m != nil {
-		return m.AllocationKey
+func (x *ForgotAllocation) GetAllocationKey() string {
+	if x != nil {
+		return x.AllocationKey
 	}
 	return ""
 }
 
 type UpdateContainerSchedulingStateRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// application ID
 	ApplicartionID string `protobuf:"bytes,1,opt,name=applicartionID,proto3" json:"applicartionID,omitempty"`
 	// allocation key used to identify a container.
@@ -2005,164 +2337,188 @@
 	// container scheduling state
 	State UpdateContainerSchedulingStateRequest_SchedulingState `protobuf:"varint,3,opt,name=state,proto3,enum=si.v1.UpdateContainerSchedulingStateRequest_SchedulingState" json:"state,omitempty"`
 	// an optional plain message to explain why it is in such state
-	Reason               string   `protobuf:"bytes,4,opt,name=reason,proto3" json:"reason,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Reason string `protobuf:"bytes,4,opt,name=reason,proto3" json:"reason,omitempty"`
 }
 
-func (m *UpdateContainerSchedulingStateRequest) Reset()         { *m = UpdateContainerSchedulingStateRequest{} }
-func (m *UpdateContainerSchedulingStateRequest) String() string { return proto.CompactTextString(m) }
-func (*UpdateContainerSchedulingStateRequest) ProtoMessage()    {}
+func (x *UpdateContainerSchedulingStateRequest) Reset() {
+	*x = UpdateContainerSchedulingStateRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[27]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *UpdateContainerSchedulingStateRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateContainerSchedulingStateRequest) ProtoMessage() {}
+
+func (x *UpdateContainerSchedulingStateRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[27]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateContainerSchedulingStateRequest.ProtoReflect.Descriptor instead.
 func (*UpdateContainerSchedulingStateRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{27}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{27}
 }
 
-func (m *UpdateContainerSchedulingStateRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_UpdateContainerSchedulingStateRequest.Unmarshal(m, b)
-}
-func (m *UpdateContainerSchedulingStateRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_UpdateContainerSchedulingStateRequest.Marshal(b, m, deterministic)
-}
-func (m *UpdateContainerSchedulingStateRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_UpdateContainerSchedulingStateRequest.Merge(m, src)
-}
-func (m *UpdateContainerSchedulingStateRequest) XXX_Size() int {
-	return xxx_messageInfo_UpdateContainerSchedulingStateRequest.Size(m)
-}
-func (m *UpdateContainerSchedulingStateRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_UpdateContainerSchedulingStateRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_UpdateContainerSchedulingStateRequest proto.InternalMessageInfo
-
-func (m *UpdateContainerSchedulingStateRequest) GetApplicartionID() string {
-	if m != nil {
-		return m.ApplicartionID
+func (x *UpdateContainerSchedulingStateRequest) GetApplicartionID() string {
+	if x != nil {
+		return x.ApplicartionID
 	}
 	return ""
 }
 
-func (m *UpdateContainerSchedulingStateRequest) GetAllocationKey() string {
-	if m != nil {
-		return m.AllocationKey
+func (x *UpdateContainerSchedulingStateRequest) GetAllocationKey() string {
+	if x != nil {
+		return x.AllocationKey
 	}
 	return ""
 }
 
-func (m *UpdateContainerSchedulingStateRequest) GetState() UpdateContainerSchedulingStateRequest_SchedulingState {
-	if m != nil {
-		return m.State
+func (x *UpdateContainerSchedulingStateRequest) GetState() UpdateContainerSchedulingStateRequest_SchedulingState {
+	if x != nil {
+		return x.State
 	}
 	return UpdateContainerSchedulingStateRequest_SKIPPED
 }
 
-func (m *UpdateContainerSchedulingStateRequest) GetReason() string {
-	if m != nil {
-		return m.Reason
+func (x *UpdateContainerSchedulingStateRequest) GetReason() string {
+	if x != nil {
+		return x.Reason
 	}
 	return ""
 }
 
 type UpdateConfigurationRequest struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// New config what needs to be saved
-	Configs              string   `protobuf:"bytes,1,opt,name=configs,proto3" json:"configs,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Configs string `protobuf:"bytes,1,opt,name=configs,proto3" json:"configs,omitempty"`
 }
 
-func (m *UpdateConfigurationRequest) Reset()         { *m = UpdateConfigurationRequest{} }
-func (m *UpdateConfigurationRequest) String() string { return proto.CompactTextString(m) }
-func (*UpdateConfigurationRequest) ProtoMessage()    {}
+func (x *UpdateConfigurationRequest) Reset() {
+	*x = UpdateConfigurationRequest{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[28]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *UpdateConfigurationRequest) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateConfigurationRequest) ProtoMessage() {}
+
+func (x *UpdateConfigurationRequest) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[28]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateConfigurationRequest.ProtoReflect.Descriptor instead.
 func (*UpdateConfigurationRequest) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{28}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{28}
 }
 
-func (m *UpdateConfigurationRequest) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_UpdateConfigurationRequest.Unmarshal(m, b)
-}
-func (m *UpdateConfigurationRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_UpdateConfigurationRequest.Marshal(b, m, deterministic)
-}
-func (m *UpdateConfigurationRequest) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_UpdateConfigurationRequest.Merge(m, src)
-}
-func (m *UpdateConfigurationRequest) XXX_Size() int {
-	return xxx_messageInfo_UpdateConfigurationRequest.Size(m)
-}
-func (m *UpdateConfigurationRequest) XXX_DiscardUnknown() {
-	xxx_messageInfo_UpdateConfigurationRequest.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_UpdateConfigurationRequest proto.InternalMessageInfo
-
-func (m *UpdateConfigurationRequest) GetConfigs() string {
-	if m != nil {
-		return m.Configs
+func (x *UpdateConfigurationRequest) GetConfigs() string {
+	if x != nil {
+		return x.Configs
 	}
 	return ""
 }
 
 type UpdateConfigurationResponse struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// flag that marks the config update success or failure
 	Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
 	// the old configuration what was changed
 	OldConfig string `protobuf:"bytes,2,opt,name=oldConfig,proto3" json:"oldConfig,omitempty"`
 	// reason in case of failure
-	Reason               string   `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	Reason string `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"`
 }
 
-func (m *UpdateConfigurationResponse) Reset()         { *m = UpdateConfigurationResponse{} }
-func (m *UpdateConfigurationResponse) String() string { return proto.CompactTextString(m) }
-func (*UpdateConfigurationResponse) ProtoMessage()    {}
+func (x *UpdateConfigurationResponse) Reset() {
+	*x = UpdateConfigurationResponse{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[29]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *UpdateConfigurationResponse) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*UpdateConfigurationResponse) ProtoMessage() {}
+
+func (x *UpdateConfigurationResponse) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[29]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use UpdateConfigurationResponse.ProtoReflect.Descriptor instead.
 func (*UpdateConfigurationResponse) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{29}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{29}
 }
 
-func (m *UpdateConfigurationResponse) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_UpdateConfigurationResponse.Unmarshal(m, b)
-}
-func (m *UpdateConfigurationResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_UpdateConfigurationResponse.Marshal(b, m, deterministic)
-}
-func (m *UpdateConfigurationResponse) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_UpdateConfigurationResponse.Merge(m, src)
-}
-func (m *UpdateConfigurationResponse) XXX_Size() int {
-	return xxx_messageInfo_UpdateConfigurationResponse.Size(m)
-}
-func (m *UpdateConfigurationResponse) XXX_DiscardUnknown() {
-	xxx_messageInfo_UpdateConfigurationResponse.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_UpdateConfigurationResponse proto.InternalMessageInfo
-
-func (m *UpdateConfigurationResponse) GetSuccess() bool {
-	if m != nil {
-		return m.Success
+func (x *UpdateConfigurationResponse) GetSuccess() bool {
+	if x != nil {
+		return x.Success
 	}
 	return false
 }
 
-func (m *UpdateConfigurationResponse) GetOldConfig() string {
-	if m != nil {
-		return m.OldConfig
+func (x *UpdateConfigurationResponse) GetOldConfig() string {
+	if x != nil {
+		return x.OldConfig
 	}
 	return ""
 }
 
-func (m *UpdateConfigurationResponse) GetReason() string {
-	if m != nil {
-		return m.Reason
+func (x *UpdateConfigurationResponse) GetReason() string {
+	if x != nil {
+		return x.Reason
 	}
 	return ""
 }
 
 type EventRecord struct {
+	state         protoimpl.MessageState
+	sizeCache     protoimpl.SizeCache
+	unknownFields protoimpl.UnknownFields
+
 	// the type of the object associated with the event
 	Type EventRecord_Type `protobuf:"varint,1,opt,name=type,proto3,enum=si.v1.EventRecord_Type" json:"type,omitempty"`
 	// ID of the object associated with the event
@@ -2175,430 +2531,1059 @@
 	// the detailed message as string
 	Message string `protobuf:"bytes,5,opt,name=message,proto3" json:"message,omitempty"`
 	// timestamp of the event
-	TimestampNano        int64    `protobuf:"varint,6,opt,name=timestampNano,proto3" json:"timestampNano,omitempty"`
-	XXX_NoUnkeyedLiteral struct{} `json:"-"`
-	XXX_unrecognized     []byte   `json:"-"`
-	XXX_sizecache        int32    `json:"-"`
+	TimestampNano int64 `protobuf:"varint,6,opt,name=timestampNano,proto3" json:"timestampNano,omitempty"`
 }
 
-func (m *EventRecord) Reset()         { *m = EventRecord{} }
-func (m *EventRecord) String() string { return proto.CompactTextString(m) }
-func (*EventRecord) ProtoMessage()    {}
+func (x *EventRecord) Reset() {
+	*x = EventRecord{}
+	if protoimpl.UnsafeEnabled {
+		mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[30]
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		ms.StoreMessageInfo(mi)
+	}
+}
+
+func (x *EventRecord) String() string {
+	return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EventRecord) ProtoMessage() {}
+
+func (x *EventRecord) ProtoReflect() protoreflect.Message {
+	mi := &file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[30]
+	if protoimpl.UnsafeEnabled && x != nil {
+		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+		if ms.LoadMessageInfo() == nil {
+			ms.StoreMessageInfo(mi)
+		}
+		return ms
+	}
+	return mi.MessageOf(x)
+}
+
+// Deprecated: Use EventRecord.ProtoReflect.Descriptor instead.
 func (*EventRecord) Descriptor() ([]byte, []int) {
-	return fileDescriptor_bcd2636ebca16c8c, []int{30}
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP(), []int{30}
 }
 
-func (m *EventRecord) XXX_Unmarshal(b []byte) error {
-	return xxx_messageInfo_EventRecord.Unmarshal(m, b)
-}
-func (m *EventRecord) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
-	return xxx_messageInfo_EventRecord.Marshal(b, m, deterministic)
-}
-func (m *EventRecord) XXX_Merge(src proto.Message) {
-	xxx_messageInfo_EventRecord.Merge(m, src)
-}
-func (m *EventRecord) XXX_Size() int {
-	return xxx_messageInfo_EventRecord.Size(m)
-}
-func (m *EventRecord) XXX_DiscardUnknown() {
-	xxx_messageInfo_EventRecord.DiscardUnknown(m)
-}
-
-var xxx_messageInfo_EventRecord proto.InternalMessageInfo
-
-func (m *EventRecord) GetType() EventRecord_Type {
-	if m != nil {
-		return m.Type
+func (x *EventRecord) GetType() EventRecord_Type {
+	if x != nil {
+		return x.Type
 	}
 	return EventRecord_REQUEST
 }
 
-func (m *EventRecord) GetObjectID() string {
-	if m != nil {
-		return m.ObjectID
+func (x *EventRecord) GetObjectID() string {
+	if x != nil {
+		return x.ObjectID
 	}
 	return ""
 }
 
-func (m *EventRecord) GetGroupID() string {
-	if m != nil {
-		return m.GroupID
+func (x *EventRecord) GetGroupID() string {
+	if x != nil {
+		return x.GroupID
 	}
 	return ""
 }
 
-func (m *EventRecord) GetReason() string {
-	if m != nil {
-		return m.Reason
+func (x *EventRecord) GetReason() string {
+	if x != nil {
+		return x.Reason
 	}
 	return ""
 }
 
-func (m *EventRecord) GetMessage() string {
-	if m != nil {
-		return m.Message
+func (x *EventRecord) GetMessage() string {
+	if x != nil {
+		return x.Message
 	}
 	return ""
 }
 
-func (m *EventRecord) GetTimestampNano() int64 {
-	if m != nil {
-		return m.TimestampNano
+func (x *EventRecord) GetTimestampNano() int64 {
+	if x != nil {
+		return x.TimestampNano
 	}
 	return 0
 }
 
-var E_SiSecret = &proto.ExtensionDesc{
-	ExtendedType:  (*descriptor.FieldOptions)(nil),
-	ExtensionType: (*bool)(nil),
-	Field:         1059,
-	Name:          "si.v1.si_secret",
-	Tag:           "varint,1059,opt,name=si_secret",
-	Filename:      "incubator-yunikorn-scheduler-interface/si.proto",
-}
-
-func init() {
-	proto.RegisterEnum("si.v1.TerminationType", TerminationType_name, TerminationType_value)
-	proto.RegisterEnum("si.v1.UpdateResponse_ActionFromScheduler", UpdateResponse_ActionFromScheduler_name, UpdateResponse_ActionFromScheduler_value)
-	proto.RegisterEnum("si.v1.UpdateNodeInfo_ActionFromRM", UpdateNodeInfo_ActionFromRM_name, UpdateNodeInfo_ActionFromRM_value)
-	proto.RegisterEnum("si.v1.UpdateContainerSchedulingStateRequest_SchedulingState", UpdateContainerSchedulingStateRequest_SchedulingState_name, UpdateContainerSchedulingStateRequest_SchedulingState_value)
-	proto.RegisterEnum("si.v1.EventRecord_Type", EventRecord_Type_name, EventRecord_Type_value)
-	proto.RegisterType((*RegisterResourceManagerRequest)(nil), "si.v1.RegisterResourceManagerRequest")
-	proto.RegisterType((*RegisterResourceManagerResponse)(nil), "si.v1.RegisterResourceManagerResponse")
-	proto.RegisterType((*UpdateRequest)(nil), "si.v1.UpdateRequest")
-	proto.RegisterType((*UpdateResponse)(nil), "si.v1.UpdateResponse")
-	proto.RegisterType((*UpdatedApplication)(nil), "si.v1.UpdatedApplication")
-	proto.RegisterType((*RejectedApplication)(nil), "si.v1.RejectedApplication")
-	proto.RegisterType((*AcceptedApplication)(nil), "si.v1.AcceptedApplication")
-	proto.RegisterType((*RejectedNode)(nil), "si.v1.RejectedNode")
-	proto.RegisterType((*AcceptedNode)(nil), "si.v1.AcceptedNode")
-	proto.RegisterType((*Priority)(nil), "si.v1.Priority")
-	proto.RegisterType((*Resource)(nil), "si.v1.Resource")
-	proto.RegisterMapType((map[string]*Quantity)(nil), "si.v1.Resource.ResourcesEntry")
-	proto.RegisterType((*Quantity)(nil), "si.v1.Quantity")
-	proto.RegisterType((*AllocationAsk)(nil), "si.v1.AllocationAsk")
-	proto.RegisterMapType((map[string]string)(nil), "si.v1.AllocationAsk.TagsEntry")
-	proto.RegisterType((*AddApplicationRequest)(nil), "si.v1.AddApplicationRequest")
-	proto.RegisterMapType((map[string]string)(nil), "si.v1.AddApplicationRequest.TagsEntry")
-	proto.RegisterType((*RemoveApplicationRequest)(nil), "si.v1.RemoveApplicationRequest")
-	proto.RegisterType((*UserGroupInformation)(nil), "si.v1.UserGroupInformation")
-	proto.RegisterType((*Allocation)(nil), "si.v1.Allocation")
-	proto.RegisterMapType((map[string]string)(nil), "si.v1.Allocation.AllocationTagsEntry")
-	proto.RegisterType((*AllocationReleasesRequest)(nil), "si.v1.AllocationReleasesRequest")
-	proto.RegisterType((*AllocationRelease)(nil), "si.v1.AllocationRelease")
-	proto.RegisterType((*AllocationAskRelease)(nil), "si.v1.AllocationAskRelease")
-	proto.RegisterType((*NewNodeInfo)(nil), "si.v1.NewNodeInfo")
-	proto.RegisterMapType((map[string]string)(nil), "si.v1.NewNodeInfo.AttributesEntry")
-	proto.RegisterType((*UpdateNodeInfo)(nil), "si.v1.UpdateNodeInfo")
-	proto.RegisterMapType((map[string]string)(nil), "si.v1.UpdateNodeInfo.AttributesEntry")
-	proto.RegisterType((*RejectedAllocationAsk)(nil), "si.v1.RejectedAllocationAsk")
-	proto.RegisterType((*PredicatesArgs)(nil), "si.v1.PredicatesArgs")
-	proto.RegisterType((*ReSyncSchedulerCacheArgs)(nil), "si.v1.ReSyncSchedulerCacheArgs")
-	proto.RegisterType((*AssumedAllocation)(nil), "si.v1.AssumedAllocation")
-	proto.RegisterType((*ForgotAllocation)(nil), "si.v1.ForgotAllocation")
-	proto.RegisterType((*UpdateContainerSchedulingStateRequest)(nil), "si.v1.UpdateContainerSchedulingStateRequest")
-	proto.RegisterType((*UpdateConfigurationRequest)(nil), "si.v1.UpdateConfigurationRequest")
-	proto.RegisterType((*UpdateConfigurationResponse)(nil), "si.v1.UpdateConfigurationResponse")
-	proto.RegisterType((*EventRecord)(nil), "si.v1.EventRecord")
-	proto.RegisterExtension(E_SiSecret)
-}
-
-func init() {
-	proto.RegisterFile("incubator-yunikorn-scheduler-interface/si.proto", fileDescriptor_bcd2636ebca16c8c)
-}
-
-var fileDescriptor_bcd2636ebca16c8c = []byte{
-	// 2114 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0xcd, 0x72, 0xdb, 0xc8,
-	0xf1, 0x17, 0xf8, 0x21, 0x92, 0x4d, 0x89, 0xa2, 0x86, 0xb2, 0xcd, 0xd5, 0xfa, 0xef, 0xd5, 0x1f,
-	0xb5, 0x56, 0x29, 0xd9, 0x32, 0xbd, 0x56, 0xaa, 0xb2, 0xeb, 0x8f, 0xa4, 0x02, 0x89, 0xd0, 0x4a,
-	0xb1, 0x44, 0xd2, 0x43, 0x72, 0xab, 0x36, 0x17, 0x15, 0x04, 0x8e, 0x68, 0x58, 0x24, 0xc0, 0x9d,
-	0x01, 0x64, 0xab, 0x72, 0xcb, 0x39, 0xb7, 0x1c, 0xf2, 0x00, 0xa9, 0xe4, 0x90, 0x5c, 0xf3, 0x00,
-	0xc9, 0x13, 0xe4, 0x92, 0x47, 0xc8, 0x35, 0x4f, 0x90, 0x4b, 0x6a, 0x06, 0x03, 0x10, 0x5f, 0xb4,
-	0xe8, 0xec, 0xa6, 0x2a, 0x37, 0x4c, 0xcf, 0xaf, 0x7b, 0x66, 0xba, 0x7f, 0xd3, 0xd3, 0x33, 0x80,
-	0xc7, 0x96, 0x6d, 0x7a, 0x17, 0x86, 0xeb, 0xd0, 0x47, 0x37, 0x9e, 0x6d, 0x5d, 0x39, 0xd4, 0x7e,
-	0xc4, 0xcc, 0xd7, 0x64, 0xe4, 0x4d, 0x08, 0x7d, 0x64, 0xd9, 0x2e, 0xa1, 0x97, 0x86, 0x49, 0x1e,
-	0x33, 0xab, 0x35, 0xa3, 0x8e, 0xeb, 0xa0, 0x22, 0xb3, 0x5a, 0xd7, 0x4f, 0xb6, 0x77, 0xc6, 0x8e,
-	0x33, 0x9e, 0x90, 0xc7, 0x42, 0x78, 0xe1, 0x5d, 0x3e, 0x1e, 0x11, 0x66, 0x52, 0x6b, 0xe6, 0x3a,
-	0xd4, 0x07, 0xaa, 0x33, 0x78, 0x80, 0xc9, 0xd8, 0x62, 0x2e, 0xa1, 0x98, 0x30, 0xc7, 0xa3, 0x26,
-	0x39, 0x33, 0x6c, 0x63, 0xcc, 0x9b, 0xdf, 0x7a, 0x84, 0xb9, 0x08, 0x41, 0x81, 0x4e, 0x4f, 0xda,
-	0x4d, 0x65, 0x47, 0xd9, 0xab, 0x60, 0xf1, 0x8d, 0x9a, 0x50, 0xba, 0x26, 0x94, 0x59, 0x8e, 0xdd,
-	0xcc, 0x09, 0x71, 0xd0, 0x44, 0x3b, 0x50, 0x9d, 0x39, 0x13, 0xcb, 0xbc, 0xf9, 0x8a, 0x3a, 0xde,
-	0xac, 0x99, 0x17, 0xbd, 0x51, 0x91, 0xfa, 0xff, 0xf0, 0xc9, 0xc2, 0x11, 0xd9, 0xcc, 0xb1, 0x19,
-	0x51, 0x7f, 0x9f, 0x87, 0xf5, 0xe1, 0x6c, 0x64, 0xb8, 0x24, 0x98, 0xc4, 0x1e, 0x14, 0x0c, 0x76,
-	0xc5, 0x9a, 0xca, 0x4e, 0x7e, 0xaf, 0xba, 0xbf, 0xd5, 0x12, 0xcb, 0x6b, 0x69, 0x93, 0x89, 0x63,
-	0x1a, 0xae, 0xe5, 0xd8, 0x1a, 0xbb, 0xc2, 0x02, 0x81, 0x5e, 0x40, 0x99, 0x92, 0x09, 0x31, 0x18,
-	0x61, 0x62, 0x6e, 0xd5, 0xfd, 0x9d, 0x14, 0x1a, 0x4b, 0x80, 0xb4, 0x8e, 0x43, 0x0d, 0xd4, 0x86,
-	0x86, 0x4d, 0xde, 0xf6, 0x7d, 0xd7, 0x1a, 0x17, 0x13, 0xd2, 0x71, 0x46, 0x84, 0x35, 0xf3, 0x62,
-	0x58, 0x24, 0x0d, 0x75, 0xc8, 0x5b, 0x2e, 0x3e, 0xb1, 0x2f, 0x1d, 0x9c, 0x05, 0x47, 0x4f, 0x61,
-	0xcd, 0x13, 0xd3, 0x1f, 0xf9, 0xea, 0x05, 0xa1, 0x7e, 0x47, 0xaa, 0xfb, 0x2b, 0x0b, 0x2d, 0xc4,
-	0xa0, 0xa1, 0xb7, 0x8b, 0x11, 0x6f, 0x1f, 0xc1, 0x86, 0x4d, 0xde, 0x6a, 0xb3, 0xd9, 0xc4, 0xf2,
-	0xe7, 0xcf, 0x9a, 0xab, 0xc2, 0xe2, 0xfd, 0x60, 0x65, 0xa3, 0x51, 0xa4, 0x37, 0x58, 0x55, 0x52,
-	0x09, 0x75, 0x01, 0x51, 0x32, 0x75, 0xae, 0x49, 0xcc, 0x54, 0x49, 0x98, 0xfa, 0x44, 0x9a, 0xc2,
-	0x49, 0x40, 0x60, 0x2d, 0x43, 0x55, 0xfd, 0xcd, 0x2a, 0xd4, 0x82, 0x38, 0xf9, 0xa1, 0x43, 0x1a,
-	0xac, 0x1a, 0x26, 0xef, 0x15, 0x7c, 0xa9, 0xed, 0xff, 0x20, 0xb6, 0xe8, 0x00, 0xd6, 0xd2, 0x04,
-	0xe6, 0x88, 0x3a, 0xd3, 0x7e, 0x40, 0x63, 0x2c, 0x15, 0xd1, 0x53, 0xa8, 0xf1, 0x99, 0x87, 0xd1,
-	0xe2, 0x71, 0xe4, 0x53, 0xdc, 0x4c, 0xc7, 0x31, 0x01, 0x44, 0x3f, 0x87, 0x86, 0x0c, 0xe5, 0x28,
-	0xaa, 0xef, 0x87, 0xaf, 0xb9, 0x88, 0x07, 0x38, 0x4b, 0x09, 0xf5, 0xe1, 0x6e, 0x5a, 0xac, 0x71,
-	0x12, 0xfa, 0xe1, 0xfc, 0x38, 0x93, 0x84, 0xd2, 0xe2, 0x02, 0x55, 0xd4, 0xe1, 0x13, 0x7c, 0x43,
-	0x4c, 0x37, 0x3e, 0xc1, 0x62, 0x2c, 0x9c, 0x38, 0x85, 0xe0, 0x96, 0xb3, 0x14, 0x51, 0x07, 0xb6,
-	0x42, 0x71, 0x9a, 0x1f, 0xdb, 0x49, 0x83, 0x91, 0xb0, 0x66, 0xea, 0x71, 0x7b, 0x86, 0x69, 0x92,
-	0x59, 0xd2, 0x5e, 0x29, 0x66, 0x4f, 0x4b, 0x43, 0x70, 0xa6, 0x1e, 0x7a, 0x09, 0x0d, 0x49, 0xef,
-	0x98, 0xb9, 0xb2, 0x30, 0xf7, 0x51, 0x8c, 0x1b, 0x31, 0x6b, 0x59, 0x5a, 0xe8, 0x29, 0xac, 0x07,
-	0x93, 0xf6, 0xf7, 0x55, 0x45, 0x98, 0x69, 0x24, 0x56, 0xc9, 0xfb, 0x70, 0x1c, 0xc9, 0x55, 0x83,
-	0xf9, 0xf9, 0xaa, 0x10, 0x53, 0xd5, 0x22, 0x7d, 0x38, 0x8e, 0x54, 0x1f, 0x43, 0x23, 0x83, 0xad,
-	0x68, 0x0d, 0xca, 0x9d, 0xae, 0x76, 0x38, 0x38, 0xe9, 0x76, 0xea, 0x2b, 0x08, 0x60, 0x15, 0xeb,
-	0xfd, 0x6f, 0x3a, 0x87, 0x75, 0x45, 0xfd, 0x83, 0x02, 0x28, 0xbd, 0x24, 0xf4, 0x29, 0xac, 0x1b,
-	0xf3, 0x66, 0x98, 0x50, 0xe3, 0x42, 0xb4, 0x05, 0x45, 0xe6, 0x1a, 0x2e, 0x91, 0x79, 0xd5, 0x6f,
-	0xa0, 0x67, 0xd0, 0x14, 0x1f, 0x03, 0x6a, 0xd8, 0xcc, 0xe2, 0xd0, 0x81, 0x35, 0x25, 0xcc, 0x35,
-	0xa6, 0x7e, 0x8a, 0xcd, 0xe3, 0x85, 0xfd, 0x3c, 0x57, 0x4f, 0x09, 0x63, 0xc6, 0x98, 0x34, 0x0b,
-	0x7e, 0xae, 0x96, 0x4d, 0xb5, 0x0f, 0x8d, 0x0c, 0x66, 0x2c, 0x39, 0xd1, 0xbb, 0xb0, 0x4a, 0x89,
-	0xc1, 0xc2, 0x13, 0x40, 0xb6, 0xd4, 0xe7, 0xdc, 0x5d, 0x29, 0x26, 0x2c, 0x67, 0x54, 0xfd, 0x29,
-	0xac, 0x45, 0xa3, 0xc8, 0x07, 0xb1, 0x79, 0x9e, 0x0c, 0xe0, 0xb2, 0xb5, 0x70, 0xf0, 0x5d, 0x58,
-	0x8b, 0x86, 0x72, 0x91, 0xbe, 0x6a, 0x43, 0xb9, 0x47, 0x2d, 0x87, 0x5a, 0xee, 0x0d, 0xda, 0x85,
-	0xf5, 0x99, 0xfc, 0xfe, 0xda, 0x98, 0x78, 0x44, 0x40, 0x8b, 0xc7, 0x2b, 0x38, 0x2e, 0x46, 0x2d,
-	0xd8, 0x0c, 0x04, 0x87, 0x13, 0x83, 0xb1, 0x8e, 0x31, 0x95, 0x51, 0x3a, 0x5e, 0xc1, 0xe9, 0xae,
-	0x03, 0x80, 0x72, 0x20, 0x54, 0x7f, 0xab, 0x40, 0x39, 0x38, 0xec, 0xd0, 0x0b, 0xa8, 0x50, 0xf9,
-	0x1d, 0x1c, 0x68, 0x0f, 0x42, 0x0a, 0xfb, 0xf2, 0xf0, 0x83, 0xe9, 0xb6, 0x4b, 0x6f, 0xf0, 0x5c,
-	0x61, 0xfb, 0x0c, 0x6a, 0xf1, 0x4e, 0x54, 0x87, 0xfc, 0x15, 0xb9, 0x91, 0x2b, 0xe4, 0x9f, 0xe8,
-	0x21, 0x14, 0xaf, 0xc5, 0x52, 0xfc, 0x03, 0x70, 0x43, 0x5a, 0x7f, 0xe5, 0x19, 0xb6, 0x6b, 0xb9,
-	0x37, 0xd8, 0xef, 0x7d, 0x96, 0xfb, 0x52, 0x51, 0x77, 0xa0, 0x1c, 0x88, 0x39, 0xf7, 0xae, 0x43,
-	0x0f, 0xe4, 0x25, 0x4a, 0xfd, 0x55, 0x01, 0xd6, 0x63, 0x99, 0x48, 0xc4, 0x32, 0x14, 0xbc, 0x0c,
-	0x87, 0x8e, 0x0b, 0xd3, 0x11, 0xcf, 0x65, 0xd1, 0xe8, 0x53, 0x58, 0x9f, 0x19, 0xd4, 0x15, 0x9c,
-	0x15, 0x1e, 0xf5, 0x2b, 0x86, 0xb8, 0x10, 0x3d, 0x81, 0x6a, 0xe0, 0x01, 0x8d, 0x5d, 0x09, 0x1e,
-	0xcf, 0x97, 0x15, 0xb8, 0x03, 0x47, 0x31, 0x68, 0x17, 0x6a, 0x53, 0xe3, 0x5d, 0x3c, 0xc9, 0x2a,
-	0x7b, 0x45, 0x9c, 0x90, 0xa2, 0xcf, 0xe6, 0x61, 0x6a, 0xae, 0xc6, 0xec, 0x06, 0x0c, 0xc1, 0x21,
-	0x00, 0x1d, 0xc0, 0x7d, 0xf2, 0x8e, 0x98, 0x5e, 0xb0, 0xc3, 0x1c, 0xcf, 0x3d, 0xb3, 0x26, 0x13,
-	0xab, 0x4f, 0x4c, 0xc7, 0x1e, 0xf1, 0x34, 0xc9, 0x1d, 0xf7, 0x5e, 0x0c, 0xda, 0x87, 0x82, 0x6b,
-	0x8c, 0x83, 0x1c, 0xf8, 0x20, 0xeb, 0x14, 0x69, 0x0d, 0x8c, 0xb1, 0x8c, 0xbc, 0xc0, 0x72, 0x2f,
-	0xb9, 0x06, 0xbb, 0x12, 0x05, 0x94, 0xf0, 0x52, 0xc5, 0xf7, 0x52, 0x4c, 0x28, 0x6a, 0xaf, 0x89,
-	0x61, 0x92, 0xd7, 0xce, 0x64, 0x44, 0x68, 0x13, 0x76, 0x94, 0xbd, 0x32, 0x8e, 0x8a, 0xb6, 0xbf,
-	0x80, 0x4a, 0x68, 0x3a, 0x83, 0x37, 0x5b, 0x51, 0xde, 0x54, 0xa2, 0x34, 0xf9, 0x7b, 0x1e, 0xee,
-	0x64, 0x56, 0x19, 0x4b, 0x66, 0x8b, 0xfb, 0x50, 0xf9, 0xd6, 0x23, 0x1e, 0x99, 0x6f, 0x1a, 0x3c,
-	0x17, 0x2c, 0x49, 0x82, 0x47, 0x90, 0xf7, 0xc6, 0x96, 0x0c, 0x7e, 0x70, 0xfa, 0x0e, 0x19, 0xa1,
-	0xc2, 0x03, 0xbc, 0x96, 0xa2, 0x53, 0x7f, 0x6a, 0x1c, 0x87, 0x9e, 0x49, 0x3f, 0xfb, 0x67, 0xeb,
-	0xee, 0xfb, 0x4a, 0xa5, 0x94, 0xbf, 0x6f, 0x8b, 0xf3, 0xea, 0x12, 0x71, 0xfe, 0x02, 0x6a, 0x11,
-	0xd7, 0x73, 0xda, 0x96, 0xb2, 0x69, 0x9b, 0x80, 0xa1, 0xcf, 0xa1, 0x31, 0x36, 0xec, 0xb1, 0x3c,
-	0x6a, 0x2c, 0x7b, 0xdc, 0x77, 0x6f, 0x26, 0xa4, 0x59, 0x16, 0x3e, 0xc9, 0xea, 0xfa, 0xcf, 0xc3,
-	0x7a, 0x09, 0xcd, 0x45, 0x05, 0xdf, 0x92, 0x81, 0x4d, 0x85, 0x2e, 0x97, 0x11, 0x3a, 0xf5, 0x00,
-	0xb6, 0xb2, 0x02, 0xc5, 0xab, 0x5d, 0x8f, 0x11, 0x1a, 0xdc, 0x2d, 0xf8, 0x37, 0xcf, 0xd9, 0x63,
-	0x8e, 0xf3, 0xcb, 0xbe, 0x0a, 0x96, 0x2d, 0xf5, 0xd7, 0x05, 0x80, 0xf9, 0x2e, 0x59, 0x32, 0x09,
-	0x9d, 0x41, 0x6d, 0x2e, 0xe0, 0x3e, 0x92, 0xb5, 0xe4, 0xc3, 0xd4, 0xb6, 0x8b, 0x7c, 0xce, 0xd9,
-	0x90, 0x50, 0xe6, 0xf3, 0x1d, 0x0e, 0x4f, 0xda, 0x92, 0x9f, 0xe2, 0x1b, 0x3d, 0x87, 0x7a, 0x90,
-	0x77, 0x7a, 0x84, 0x0a, 0x2b, 0x22, 0xd5, 0x64, 0x44, 0x3a, 0x05, 0xfc, 0xb0, 0xec, 0x13, 0xdb,
-	0x44, 0xa5, 0xe4, 0x26, 0x9a, 0x9f, 0x75, 0xe5, 0xd8, 0x59, 0x99, 0x8a, 0x63, 0x65, 0xa9, 0x38,
-	0x42, 0xd6, 0x16, 0x4c, 0xe5, 0xa1, 0xea, 0x12, 0x79, 0x68, 0x2d, 0x9d, 0x87, 0x34, 0x68, 0x64,
-	0xb8, 0xfb, 0x83, 0xa8, 0xfb, 0x17, 0x05, 0x3e, 0x5a, 0x78, 0xa3, 0x43, 0xa7, 0xb0, 0x35, 0x0f,
-	0x1d, 0x1b, 0x38, 0xb2, 0x5f, 0x1e, 0xb7, 0x8b, 0x6f, 0x02, 0x99, 0x5a, 0x68, 0x08, 0xf7, 0x8c,
-	0x58, 0x1d, 0x3f, 0x37, 0x98, 0xbb, 0xfd, 0x2e, 0xb0, 0x48, 0x57, 0xfd, 0x9b, 0x02, 0x9b, 0xa9,
-	0x29, 0xa4, 0x23, 0xa1, 0x2c, 0x88, 0xc4, 0x12, 0xa7, 0x6b, 0x16, 0x5f, 0x7f, 0x06, 0x1b, 0x2e,
-	0xa1, 0x53, 0xcb, 0xf6, 0x9d, 0x7f, 0x33, 0xf3, 0xeb, 0xc2, 0xda, 0xfe, 0x5d, 0xb9, 0x88, 0x41,
-	0xbc, 0x17, 0x27, 0xe1, 0xd1, 0x8a, 0xb2, 0x18, 0xaf, 0x28, 0xff, 0xa1, 0xc0, 0x56, 0x96, 0x0f,
-	0xbe, 0xd7, 0x45, 0xc5, 0x76, 0x3e, 0xe7, 0x4b, 0x3e, 0xb9, 0xf3, 0x39, 0x73, 0xfe, 0x9b, 0xcb,
-	0xfc, 0x67, 0x0e, 0xaa, 0x91, 0x47, 0x80, 0x85, 0x65, 0xea, 0x01, 0x80, 0xe1, 0xba, 0xd4, 0xba,
-	0xf0, 0x5c, 0x12, 0x64, 0x1e, 0x35, 0xfd, 0x88, 0xd0, 0xd2, 0x42, 0x90, 0x9f, 0x76, 0x22, 0x5a,
-	0x48, 0x83, 0x06, 0x9b, 0xbf, 0x2f, 0x04, 0xa9, 0x44, 0xac, 0x39, 0x23, 0xc3, 0x64, 0x61, 0x79,
-	0x86, 0x72, 0x4c, 0xd3, 0x9b, 0x59, 0x64, 0x14, 0xea, 0x2f, 0x28, 0xa1, 0x52, 0x40, 0x74, 0x08,
-	0x0d, 0xf2, 0xce, 0x62, 0xae, 0x65, 0x8f, 0xd3, 0x37, 0xd6, 0x8c, 0x2b, 0x79, 0x16, 0x7a, 0xfb,
-	0x27, 0xb0, 0x91, 0x58, 0xe3, 0x07, 0xed, 0xf5, 0xbf, 0xe6, 0x83, 0x77, 0x86, 0x5b, 0x5d, 0xae,
-	0x67, 0xb8, 0xfc, 0x61, 0xe6, 0xc3, 0xcb, 0xff, 0xb4, 0xd7, 0x9f, 0x85, 0xcf, 0x28, 0x45, 0x41,
-	0x5a, 0x75, 0xc1, 0x12, 0xc2, 0x8b, 0x29, 0x3e, 0x0b, 0xde, 0x4f, 0xbe, 0xab, 0xb3, 0x87, 0xfc,
-	0x0e, 0x35, 0x37, 0xcb, 0xaf, 0xb6, 0xc3, 0x5e, 0x5b, 0x1b, 0xe8, 0xf5, 0x15, 0x54, 0x03, 0x68,
-	0x63, 0xed, 0xa4, 0x73, 0xde, 0xe9, 0xb6, 0xf5, 0xba, 0x82, 0x36, 0xa0, 0xda, 0xd6, 0x0f, 0xbb,
-	0x67, 0x27, 0xfd, 0x3e, 0xbf, 0x07, 0xe7, 0x50, 0x13, 0xb6, 0x7c, 0xc0, 0xa0, 0x7b, 0xde, 0x3f,
-	0x3c, 0xd6, 0xdb, 0xc3, 0x53, 0xed, 0xe0, 0x54, 0xaf, 0xe7, 0xd5, 0x5f, 0xc2, 0x9d, 0xcc, 0x77,
-	0x8d, 0xef, 0xf5, 0x36, 0x31, 0xbf, 0x17, 0xe6, 0x63, 0xf7, 0xc2, 0x37, 0x50, 0xeb, 0x51, 0x32,
-	0xe2, 0x40, 0xc2, 0x34, 0xea, 0x57, 0xd4, 0x4b, 0x8c, 0x3a, 0x67, 0x59, 0x2e, 0xc6, 0xb2, 0x6d,
-	0x28, 0x4b, 0xa0, 0xcf, 0x89, 0x32, 0x0e, 0xdb, 0xea, 0x9f, 0x14, 0x5e, 0x54, 0xf5, 0x6f, 0x6c,
-	0x33, 0x7c, 0x2c, 0x38, 0x34, 0xcc, 0xd7, 0x44, 0x0c, 0x7b, 0x0c, 0xc8, 0x60, 0xcc, 0x9b, 0xc6,
-	0x9f, 0x7f, 0x12, 0xa7, 0x52, 0x12, 0x80, 0x33, 0x74, 0x90, 0x0e, 0x9b, 0x97, 0x0e, 0x1d, 0x13,
-	0x37, 0xfd, 0x50, 0x76, 0x4f, 0x1a, 0x3a, 0x72, 0xe8, 0xd8, 0x89, 0xf4, 0xe3, 0xb4, 0x86, 0xfa,
-	0x0a, 0x36, 0x53, 0xe3, 0x7d, 0x37, 0xe7, 0xa8, 0x5f, 0x42, 0x3d, 0x39, 0xf2, 0x72, 0x16, 0xd5,
-	0x3f, 0xe6, 0xe0, 0xa1, 0xcf, 0xf0, 0x43, 0xc7, 0x76, 0x0d, 0xcb, 0x26, 0x34, 0x5a, 0xea, 0x46,
-	0xde, 0x83, 0x77, 0xa1, 0x26, 0x23, 0x4f, 0x63, 0xd5, 0x69, 0x42, 0x9a, 0x1e, 0x37, 0x97, 0xb5,
-	0x12, 0x1c, 0x3c, 0xba, 0xe4, 0xc5, 0x66, 0x7b, 0x11, 0xdb, 0x6c, 0xb7, 0x4c, 0xa5, 0x95, 0x14,
-	0xcb, 0x27, 0x9b, 0x39, 0x15, 0x0b, 0x31, 0x2a, 0x7e, 0x05, 0x1b, 0x09, 0x0d, 0x54, 0x85, 0x52,
-	0xff, 0xe5, 0x49, 0xaf, 0xa7, 0xb7, 0xeb, 0x2b, 0x68, 0x1d, 0x2a, 0x72, 0xe3, 0xe8, 0xed, 0xba,
-	0x82, 0xd6, 0xa0, 0x8c, 0xf5, 0xbe, 0x8e, 0xbf, 0xd6, 0xdb, 0xf5, 0x1c, 0xdf, 0x8b, 0x47, 0xda,
-	0x09, 0xef, 0xc9, 0xab, 0x3f, 0x86, 0xed, 0x70, 0x82, 0x97, 0xd6, 0xd8, 0xa3, 0xb1, 0xea, 0xbd,
-	0x09, 0x25, 0x53, 0xc8, 0x99, 0xf4, 0x4c, 0xd0, 0x54, 0xa7, 0xf0, 0x71, 0xa6, 0x9e, 0x7c, 0xc0,
-	0x6d, 0x42, 0x89, 0x79, 0xa6, 0x49, 0x98, 0xaf, 0x58, 0xc6, 0x41, 0x93, 0x97, 0x9f, 0xce, 0x64,
-	0xe4, 0x6b, 0x05, 0x77, 0xb8, 0x50, 0xb0, 0x70, 0xeb, 0xfd, 0x4b, 0x81, 0xaa, 0x7e, 0x4d, 0x6c,
-	0x17, 0x13, 0xd3, 0xa1, 0x23, 0xf4, 0x19, 0x14, 0x5c, 0x7e, 0x18, 0xfb, 0xcf, 0xc3, 0x01, 0x55,
-	0x23, 0x88, 0x96, 0x38, 0x8d, 0x05, 0x88, 0xef, 0x33, 0xe7, 0x82, 0x27, 0x8d, 0x90, 0x64, 0x61,
-	0x9b, 0x4f, 0x54, 0xdc, 0x0c, 0xc2, 0xf2, 0x26, 0x68, 0x2e, 0x72, 0xfd, 0xe2, 0x03, 0x5d, 0xd4,
-	0xb5, 0xc1, 0x83, 0x59, 0xc7, 0xb0, 0x1d, 0x79, 0xc1, 0x8b, 0x0b, 0xd5, 0x27, 0x50, 0x10, 0x85,
-	0x41, 0x15, 0x4a, 0x58, 0x7f, 0x35, 0xd4, 0xfb, 0x83, 0xfa, 0x0a, 0x2a, 0x41, 0x5e, 0xeb, 0xf5,
-	0xea, 0x0a, 0x2a, 0x43, 0x41, 0x64, 0xc5, 0x1c, 0xaa, 0x40, 0xf1, 0xd5, 0x50, 0x1f, 0xea, 0xf5,
-	0xfc, 0x0f, 0xc7, 0xb0, 0x91, 0xa8, 0x33, 0xd0, 0x26, 0xac, 0xf7, 0x07, 0x5d, 0x1e, 0xed, 0xf3,
-	0x83, 0x6f, 0xce, 0xf1, 0x59, 0x7d, 0x85, 0x1b, 0x1c, 0x9c, 0x9c, 0xe9, 0xdd, 0xe1, 0xa0, 0xae,
-	0xa0, 0x6d, 0xb8, 0xdb, 0xc3, 0xba, 0x7e, 0xd6, 0x1b, 0xf8, 0x88, 0x80, 0x0d, 0xd8, 0x4f, 0xaf,
-	0xbd, 0x53, 0xed, 0x50, 0x3f, 0xee, 0x9e, 0xb6, 0x75, 0x7c, 0x8e, 0x75, 0xd1, 0x6a, 0xd7, 0xf3,
-	0xfb, 0x7f, 0x56, 0xa0, 0x32, 0x7f, 0x9c, 0x7c, 0x03, 0xf7, 0x16, 0xfc, 0x63, 0x41, 0x0f, 0xc3,
-	0xc3, 0xe7, 0x7d, 0x7f, 0x7d, 0xb6, 0x77, 0x6f, 0x83, 0xc9, 0x5f, 0x35, 0x2b, 0xe8, 0x39, 0xac,
-	0xfa, 0x7c, 0x42, 0x5b, 0x89, 0xb7, 0x7e, 0xdf, 0xd2, 0x9d, 0xcc, 0x3f, 0x00, 0xea, 0xca, 0x9e,
-	0xf2, 0xb9, 0xf2, 0xec, 0x39, 0x54, 0x98, 0x75, 0xce, 0x88, 0x49, 0x89, 0x8b, 0xfe, 0xaf, 0xe5,
-	0xff, 0xae, 0x6a, 0x05, 0xbf, 0xab, 0x5a, 0x47, 0x16, 0x99, 0x8c, 0xba, 0x33, 0x3f, 0xb9, 0xfd,
-	0xae, 0xec, 0x67, 0x5a, 0xc6, 0xaf, 0xd8, 0x94, 0xb8, 0x07, 0x85, 0x5f, 0xe4, 0x98, 0x75, 0xb1,
-	0x2a, 0xd0, 0x3f, 0xfa, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xab, 0x5b, 0xe8, 0x94, 0x24, 0x1b,
-	0x00, 0x00,
-}
-
-// Reference imports to suppress errors if they are not otherwise used.
-var _ context.Context
-var _ grpc.ClientConn
-
-// This is a compile-time assertion to ensure that this generated file
-// is compatible with the grpc package it is being compiled against.
-const _ = grpc.SupportPackageIsVersion4
-
-// SchedulerClient is the client API for Scheduler service.
-//
-// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
-type SchedulerClient interface {
-	// Register a RM, if it is a reconnect from previous RM the call will
-	// trigger a cleanup of all in-memory data and resync with RM.
-	RegisterResourceManager(ctx context.Context, in *RegisterResourceManagerRequest, opts ...grpc.CallOption) (*RegisterResourceManagerResponse, error)
-	// Update Scheduler status (this includes node status update, allocation request
-	// updates, etc. And receive updates from scheduler for allocation changes,
-	// any required status changes, etc.
-	Update(ctx context.Context, opts ...grpc.CallOption) (Scheduler_UpdateClient, error)
-}
-
-type schedulerClient struct {
-	cc *grpc.ClientConn
-}
-
-func NewSchedulerClient(cc *grpc.ClientConn) SchedulerClient {
-	return &schedulerClient{cc}
-}
-
-func (c *schedulerClient) RegisterResourceManager(ctx context.Context, in *RegisterResourceManagerRequest, opts ...grpc.CallOption) (*RegisterResourceManagerResponse, error) {
-	out := new(RegisterResourceManagerResponse)
-	err := c.cc.Invoke(ctx, "/si.v1.Scheduler/RegisterResourceManager", in, out, opts...)
-	if err != nil {
-		return nil, err
-	}
-	return out, nil
-}
-
-func (c *schedulerClient) Update(ctx context.Context, opts ...grpc.CallOption) (Scheduler_UpdateClient, error) {
-	stream, err := c.cc.NewStream(ctx, &_Scheduler_serviceDesc.Streams[0], "/si.v1.Scheduler/Update", opts...)
-	if err != nil {
-		return nil, err
-	}
-	x := &schedulerUpdateClient{stream}
-	return x, nil
-}
-
-type Scheduler_UpdateClient interface {
-	Send(*UpdateRequest) error
-	Recv() (*UpdateResponse, error)
-	grpc.ClientStream
-}
-
-type schedulerUpdateClient struct {
-	grpc.ClientStream
-}
-
-func (x *schedulerUpdateClient) Send(m *UpdateRequest) error {
-	return x.ClientStream.SendMsg(m)
-}
-
-func (x *schedulerUpdateClient) Recv() (*UpdateResponse, error) {
-	m := new(UpdateResponse)
-	if err := x.ClientStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-// SchedulerServer is the server API for Scheduler service.
-type SchedulerServer interface {
-	// Register a RM, if it is a reconnect from previous RM the call will
-	// trigger a cleanup of all in-memory data and resync with RM.
-	RegisterResourceManager(context.Context, *RegisterResourceManagerRequest) (*RegisterResourceManagerResponse, error)
-	// Update Scheduler status (this includes node status update, allocation request
-	// updates, etc. And receive updates from scheduler for allocation changes,
-	// any required status changes, etc.
-	Update(Scheduler_UpdateServer) error
-}
-
-// UnimplementedSchedulerServer can be embedded to have forward compatible implementations.
-type UnimplementedSchedulerServer struct {
-}
-
-func (*UnimplementedSchedulerServer) RegisterResourceManager(ctx context.Context, req *RegisterResourceManagerRequest) (*RegisterResourceManagerResponse, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method RegisterResourceManager not implemented")
-}
-func (*UnimplementedSchedulerServer) Update(srv Scheduler_UpdateServer) error {
-	return status.Errorf(codes.Unimplemented, "method Update not implemented")
-}
-
-func RegisterSchedulerServer(s *grpc.Server, srv SchedulerServer) {
-	s.RegisterService(&_Scheduler_serviceDesc, srv)
-}
-
-func _Scheduler_RegisterResourceManager_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(RegisterResourceManagerRequest)
-	if err := dec(in); err != nil {
-		return nil, err
-	}
-	if interceptor == nil {
-		return srv.(SchedulerServer).RegisterResourceManager(ctx, in)
-	}
-	info := &grpc.UnaryServerInfo{
-		Server:     srv,
-		FullMethod: "/si.v1.Scheduler/RegisterResourceManager",
-	}
-	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(SchedulerServer).RegisterResourceManager(ctx, req.(*RegisterResourceManagerRequest))
-	}
-	return interceptor(ctx, in, info, handler)
-}
-
-func _Scheduler_Update_Handler(srv interface{}, stream grpc.ServerStream) error {
-	return srv.(SchedulerServer).Update(&schedulerUpdateServer{stream})
-}
-
-type Scheduler_UpdateServer interface {
-	Send(*UpdateResponse) error
-	Recv() (*UpdateRequest, error)
-	grpc.ServerStream
-}
-
-type schedulerUpdateServer struct {
-	grpc.ServerStream
-}
-
-func (x *schedulerUpdateServer) Send(m *UpdateResponse) error {
-	return x.ServerStream.SendMsg(m)
-}
-
-func (x *schedulerUpdateServer) Recv() (*UpdateRequest, error) {
-	m := new(UpdateRequest)
-	if err := x.ServerStream.RecvMsg(m); err != nil {
-		return nil, err
-	}
-	return m, nil
-}
-
-var _Scheduler_serviceDesc = grpc.ServiceDesc{
-	ServiceName: "si.v1.Scheduler",
-	HandlerType: (*SchedulerServer)(nil),
-	Methods: []grpc.MethodDesc{
-		{
-			MethodName: "RegisterResourceManager",
-			Handler:    _Scheduler_RegisterResourceManager_Handler,
-		},
+var file_incubator_yunikorn_scheduler_interface_si_proto_extTypes = []protoimpl.ExtensionInfo{
+	{
+		ExtendedType:  (*descriptorpb.FieldOptions)(nil),
+		ExtensionType: (*bool)(nil),
+		Field:         1059,
+		Name:          "si.v1.si_secret",
+		Tag:           "varint,1059,opt,name=si_secret",
+		Filename:      "incubator-yunikorn-scheduler-interface/si.proto",
 	},
-	Streams: []grpc.StreamDesc{
-		{
-			StreamName:    "Update",
-			Handler:       _Scheduler_Update_Handler,
-			ServerStreams: true,
-			ClientStreams: true,
+}
+
+// Extension fields to descriptorpb.FieldOptions.
+var (
+	// Indicates that a field MAY contain information that is sensitive
+	// and MUST be treated as such (e.g. not logged).
+	//
+	// optional bool si_secret = 1059;
+	E_SiSecret = &file_incubator_yunikorn_scheduler_interface_si_proto_extTypes[0]
+)
+
+var File_incubator_yunikorn_scheduler_interface_si_proto protoreflect.FileDescriptor
+
+var file_incubator_yunikorn_scheduler_interface_si_proto_rawDesc = []byte{
+	0x0a, 0x2f, 0x69, 0x6e, 0x63, 0x75, 0x62, 0x61, 0x74, 0x6f, 0x72, 0x2d, 0x79, 0x75, 0x6e, 0x69,
+	0x6b, 0x6f, 0x72, 0x6e, 0x2d, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72, 0x2d, 0x69,
+	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x2f, 0x73, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+	0x6f, 0x12, 0x05, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
+	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
+	0x70, 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x70, 0x0a, 0x1e, 0x52, 0x65,
+	0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x61,
+	0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04,
+	0x72, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6d, 0x49, 0x44,
+	0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6f,
+	0x6c, 0x69, 0x63, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x0b, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x21, 0x0a, 0x1f,
+	0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+	0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
+	0xa5, 0x03, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x12, 0x28, 0x0a, 0x04, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
+	0x14, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x41, 0x73, 0x6b, 0x52, 0x04, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x3c, 0x0a, 0x08, 0x72,
+	0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e,
+	0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52,
+	0x08, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x13, 0x6e, 0x65, 0x77,
+	0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73,
+	0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e,
+	0x65, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x13, 0x6e, 0x65, 0x77, 0x53,
+	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12,
+	0x39, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18,
+	0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70,
+	0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x75, 0x70,
+	0x64, 0x61, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6d,
+	0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x46,
+	0x0a, 0x0f, 0x6e, 0x65, 0x77, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e,
+	0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65,
+	0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0f, 0x6e, 0x65, 0x77, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4f, 0x0a, 0x12, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65,
+	0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03,
+	0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76,
+	0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75,
+	0x65, 0x73, 0x74, 0x52, 0x12, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69,
+	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x93, 0x06, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61,
+	0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x61, 0x63,
+	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x73, 0x69, 0x2e,
+	0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+	0x65, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x53, 0x63, 0x68, 0x65,
+	0x64, 0x75, 0x6c, 0x65, 0x72, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a,
+	0x0e, 0x6e, 0x65, 0x77, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
+	0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c,
+	0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x6e, 0x65, 0x77, 0x41, 0x6c, 0x6c,
+	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4a, 0x0a, 0x13, 0x72, 0x65, 0x6c, 0x65,
+	0x61, 0x73, 0x65, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
+	0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c,
+	0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52,
+	0x13, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74,
+	0x69, 0x6f, 0x6e, 0x73, 0x12, 0x53, 0x0a, 0x16, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64,
+	0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x73, 0x6b, 0x73, 0x18, 0x04,
+	0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x6c,
+	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x73, 0x6b, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73,
+	0x65, 0x52, 0x16, 0x72, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x63,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x73, 0x6b, 0x73, 0x12, 0x4e, 0x0a, 0x13, 0x72, 0x65, 0x6a,
+	0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+	0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52,
+	0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x41, 0x73, 0x6b, 0x52, 0x13, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x6c,
+	0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4e, 0x0a, 0x14, 0x72, 0x65, 0x6a,
+	0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e,
+	0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+	0x69, 0x6f, 0x6e, 0x52, 0x14, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70,
+	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4e, 0x0a, 0x14, 0x61, 0x63, 0x63,
+	0x65, 0x70, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e,
+	0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+	0x69, 0x6f, 0x6e, 0x52, 0x14, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70,
+	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4b, 0x0a, 0x13, 0x75, 0x70, 0x64,
+	0x61, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+	0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55,
+	0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x52, 0x13, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74,
+	0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e,
+	0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f,
+	0x64, 0x65, 0x52, 0x0d, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65,
+	0x73, 0x12, 0x39, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64,
+	0x65, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31,
+	0x2e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x0d, 0x61,
+	0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x22, 0x2f, 0x0a, 0x13,
+	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75,
+	0x6c, 0x65, 0x72, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10,
+	0x00, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x53, 0x59, 0x4e, 0x43, 0x10, 0x01, 0x22, 0xa6, 0x01,
+	0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+	0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+	0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70,
+	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74,
+	0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65,
+	0x12, 0x3a, 0x0a, 0x18, 0x73, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74,
+	0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01,
+	0x28, 0x03, 0x52, 0x18, 0x73, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74,
+	0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07,
+	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d,
+	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x53, 0x0a, 0x13, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74,
+	0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a,
+	0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x3b, 0x0a, 0x13, 0x41,
+	0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69,
+	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x3e, 0x0a, 0x0c, 0x52, 0x65, 0x6a, 0x65,
+	0x63, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65,
+	0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44,
+	0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x26, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x65,
+	0x70, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65,
+	0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44,
+	0x22, 0x6e, 0x0a, 0x08, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x26, 0x0a, 0x0d,
+	0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x56,
+	0x61, 0x6c, 0x75, 0x65, 0x12, 0x2e, 0x0a, 0x11, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79,
+	0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48,
+	0x00, 0x52, 0x11, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73,
+	0x4e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79,
+	0x22, 0x97, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3c, 0x0a,
+	0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
+	0x32, 0x1e, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
+	0x65, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
+	0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x1a, 0x4d, 0x0a, 0x0e, 0x52,
+	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 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,
+	0x25, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,
+	0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x52,
+	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x20, 0x0a, 0x08, 0x51, 0x75,
+	0x61, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x82, 0x04, 0x0a,
+	0x0d, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x73, 0x6b, 0x12, 0x24,
+	0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x18,
+	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+	0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70,
+	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61,
+	0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65,
+	0x12, 0x31, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x73, 0x6b, 0x18,
+	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65,
+	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
+	0x41, 0x73, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x6d, 0x61, 0x78, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61,
+	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6d, 0x61, 0x78,
+	0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x08, 0x70,
+	0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e,
+	0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08,
+	0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x1c, 0x65, 0x78, 0x65, 0x63,
+	0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x69, 0x6c, 0x6c,
+	0x69, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1c,
+	0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74,
+	0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x04,
+	0x74, 0x61, 0x67, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x73, 0x69, 0x2e,
+	0x76, 0x31, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x73, 0x6b,
+	0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73,
+	0x12, 0x24, 0x0a, 0x0d, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d,
+	0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x72, 0x6f,
+	0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68,
+	0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x6c, 0x61,
+	0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x1a, 0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73,
+	0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
+	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
+	0x01, 0x22, 0xd4, 0x03, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
+	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x61,
+	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
+	0x44, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12,
+	0x24, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65,
+	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f,
+	0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x03, 0x75, 0x67, 0x69, 0x18, 0x04, 0x20, 0x01,
+	0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x47,
+	0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
+	0x03, 0x75, 0x67, 0x69, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03,
+	0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x64, 0x64, 0x41, 0x70,
+	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+	0x2e, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73,
+	0x12, 0x42, 0x0a, 0x1c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d,
+	0x65, 0x6f, 0x75, 0x74, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73,
+	0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1c, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f,
+	0x6e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x53, 0x65, 0x63,
+	0x6f, 0x6e, 0x64, 0x73, 0x12, 0x37, 0x0a, 0x0e, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c,
+	0x64, 0x65, 0x72, 0x41, 0x73, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73,
+	0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x0e, 0x70,
+	0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x41, 0x73, 0x6b, 0x12, 0x30, 0x0a,
+	0x13, 0x67, 0x61, 0x6e, 0x67, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x53,
+	0x74, 0x79, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x67, 0x61, 0x6e, 0x67,
+	0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x1a,
+	0x37, 0x0a, 0x09, 0x54, 0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
+	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
+	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
+	0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x66, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f,
+	0x76, 0x65, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71,
+	0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
+	0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70,
+	0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61,
+	0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+	0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65,
+	0x22, 0x42, 0x0a, 0x14, 0x55, 0x73, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66,
+	0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06,
+	0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x67, 0x72,
+	0x6f, 0x75, 0x70, 0x73, 0x22, 0x8c, 0x04, 0x0a, 0x0a, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74,
+	0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f,
+	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x4d, 0x0a, 0x0e, 0x61, 0x6c, 0x6c,
+	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28,
+	0x0b, 0x32, 0x25, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61,
+	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54,
+	0x61, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61,
+	0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44,
+	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x3b, 0x0a, 0x10,
+	0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x65, 0x72, 0x41, 0x6c, 0x6c, 0x6f, 0x63,
+	0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52,
+	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
+	0x65, 0x50, 0x65, 0x72, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x12, 0x2b, 0x0a, 0x08, 0x70, 0x72, 0x69,
+	0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x69,
+	0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x08, 0x70, 0x72,
+	0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65, 0x4e,
+	0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, 0x65, 0x75, 0x65,
+	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x18, 0x08,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d,
+	0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x09, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e,
+	0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69,
+	0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x61, 0x73, 0x6b,
+	0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x0d, 0x74, 0x61, 0x73, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20,
+	0x0a, 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x0c, 0x20,
+	0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72,
+	0x1a, 0x41, 0x0a, 0x13, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x61,
+	0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c,
+	0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a,
+	0x02, 0x38, 0x01, 0x22, 0xc0, 0x01, 0x0a, 0x19, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x12, 0x4c, 0x0a, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+	0x54, 0x6f, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
+	0x18, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x14, 0x61, 0x6c, 0x6c, 0x6f, 0x63,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x6f, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12,
+	0x55, 0x0a, 0x17, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x73, 0x6b,
+	0x73, 0x54, 0x6f, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
+	0x32, 0x1b, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74,
+	0x69, 0x6f, 0x6e, 0x41, 0x73, 0x6b, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x52, 0x17, 0x61,
+	0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x73, 0x6b, 0x73, 0x54, 0x6f, 0x52,
+	0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x11, 0x41, 0x6c, 0x6c, 0x6f, 0x63,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x0d,
+	0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61,
+	0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69,
+	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44,
+	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x55, 0x55, 0x49, 0x44, 0x12, 0x40, 0x0a, 0x0f,
+	0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18,
+	0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65,
+	0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x74,
+	0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18,
+	0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xe4, 0x01, 0x0a, 0x14, 0x41, 0x6c, 0x6c,
+	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x73, 0x6b, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73,
+	0x65, 0x12, 0x24, 0x0a, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61,
+	0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74,
+	0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69,
+	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d,
+	0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x24, 0x0a,
+	0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x6b, 0x65, 0x79, 0x18, 0x03,
+	0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x6b, 0x65, 0x79, 0x12, 0x40, 0x0a, 0x0f, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x73,
+	0x69, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22,
+	0xed, 0x02, 0x0a, 0x0b, 0x4e, 0x65, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12,
+	0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+	0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x12, 0x42, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69,
+	0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x69,
+	0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x65, 0x77, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e,
+	0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
+	0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x13, 0x73,
+	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,
+	0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31,
+	0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x13, 0x73, 0x63, 0x68, 0x65, 0x64,
+	0x75, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x3b,
+	0x0a, 0x10, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,
+	0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31,
+	0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x10, 0x6f, 0x63, 0x63, 0x75, 0x70,
+	0x69, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x13, 0x65,
+	0x78, 0x69, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31,
+	0x2e, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x13, 0x65, 0x78, 0x69,
+	0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
+	0x1a, 0x3d, 0x0a, 0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 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, 0x22,
+	0xc1, 0x03, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e,
+	0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
+	0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x12, 0x45, 0x0a, 0x0a, 0x61, 0x74,
+	0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25,
+	0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x64,
+	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73,
+	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
+	0x73, 0x12, 0x41, 0x0a, 0x13, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x61, 0x62, 0x6c, 0x65,
+	0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,
+	0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52,
+	0x13, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x6f,
+	0x75, 0x72, 0x63, 0x65, 0x12, 0x3b, 0x0a, 0x10, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64,
+	0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,
+	0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52,
+	0x10, 0x6f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, 0x64, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63,
+	0x65, 0x12, 0x3a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28,
+	0x0e, 0x32, 0x22, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
+	0x4e, 0x6f, 0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46,
+	0x72, 0x6f, 0x6d, 0x52, 0x4d, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x3d, 0x0a,
+	0x0f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 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, 0x22, 0x55, 0x0a, 0x0c,
+	0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x72, 0x6f, 0x6d, 0x52, 0x4d, 0x12, 0x0a, 0x0a, 0x06,
+	0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x52, 0x41, 0x49,
+	0x4e, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x43, 0x4f,
+	0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x52, 0x41,
+	0x49, 0x4e, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x41, 0x42, 0x4c,
+	0x45, 0x10, 0x03, 0x22, 0x7b, 0x0a, 0x15, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x41,
+	0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x73, 0x6b, 0x12, 0x24, 0x0a, 0x0d,
+	0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b,
+	0x65, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x70, 0x70, 0x6c, 0x69,
+	0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73,
+	0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e,
+	0x22, 0x6a, 0x0a, 0x0e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x61, 0x74, 0x65, 0x73, 0x41, 0x72,
+	0x67, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+	0x4b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63,
+	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65,
+	0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44,
+	0x12, 0x1a, 0x0a, 0x08, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01,
+	0x28, 0x08, 0x52, 0x08, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x22, 0xab, 0x01, 0x0a,
+	0x18, 0x52, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
+	0x43, 0x61, 0x63, 0x68, 0x65, 0x41, 0x72, 0x67, 0x73, 0x12, 0x48, 0x0a, 0x12, 0x61, 0x73, 0x73,
+	0x75, 0x6d, 0x65, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
+	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x73,
+	0x73, 0x75, 0x6d, 0x65, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
+	0x12, 0x61, 0x73, 0x73, 0x75, 0x6d, 0x65, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x66, 0x6f, 0x72, 0x67, 0x65, 0x74, 0x41, 0x6c, 0x6c,
+	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17,
+	0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x6f, 0x72, 0x67, 0x6f, 0x74, 0x41, 0x6c, 0x6c,
+	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x66, 0x6f, 0x72, 0x67, 0x65, 0x74, 0x41,
+	0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x51, 0x0a, 0x11, 0x41, 0x73,
+	0x73, 0x75, 0x6d, 0x65, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+	0x24, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79,
+	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
+	0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x18,
+	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x44, 0x22, 0x38, 0x0a,
+	0x10, 0x46, 0x6f, 0x72, 0x67, 0x6f, 0x74, 0x41, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
+	0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b,
+	0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61,
+	0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x22, 0xaa, 0x02, 0x0a, 0x25, 0x55, 0x70, 0x64, 0x61,
+	0x74, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x64,
+	0x75, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
+	0x74, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x72, 0x74, 0x69, 0x6f,
+	0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x6c, 0x69,
+	0x63, 0x61, 0x72, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6c, 0x6c,
+	0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+	0x52, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x12,
+	0x52, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c,
+	0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e,
+	0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67,
+	0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x63, 0x68,
+	0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74,
+	0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x47, 0x0a, 0x0f, 0x53,
+	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b,
+	0x0a, 0x07, 0x53, 0x4b, 0x49, 0x50, 0x50, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x53,
+	0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45,
+	0x53, 0x45, 0x52, 0x56, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c,
+	0x45, 0x44, 0x10, 0x03, 0x22, 0x36, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f,
+	0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x01, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x22, 0x6d, 0x0a, 0x1b,
+	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x61, 0x74,
+	0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73,
+	0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75,
+	0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66,
+	0x69, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x6c, 0x64, 0x43, 0x6f, 0x6e,
+	0x66, 0x69, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20,
+	0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0xfb, 0x01, 0x0a, 0x0b,
+	0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2b, 0x0a, 0x04, 0x74,
+	0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x73, 0x69, 0x2e, 0x76,
+	0x31, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x2e, 0x54, 0x79,
+	0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x62, 0x6a, 0x65,
+	0x63, 0x74, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x65,
+	0x63, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18,
+	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16,
+	0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
+	0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
+	0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+	0x12, 0x24, 0x0a, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x61, 0x6e,
+	0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+	0x6d, 0x70, 0x4e, 0x61, 0x6e, 0x6f, 0x22, 0x31, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b,
+	0x0a, 0x07, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41,
+	0x50, 0x50, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x44, 0x45, 0x10, 0x02, 0x12, 0x09,
+	0x0a, 0x05, 0x51, 0x55, 0x45, 0x55, 0x45, 0x10, 0x03, 0x2a, 0x67, 0x0a, 0x0f, 0x54, 0x65, 0x72,
+	0x6d, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x11, 0x0a, 0x0d,
+	0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x5f, 0x52, 0x4d, 0x10, 0x00, 0x12,
+	0x0b, 0x0a, 0x07, 0x54, 0x49, 0x4d, 0x45, 0x4f, 0x55, 0x54, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16,
+	0x50, 0x52, 0x45, 0x45, 0x4d, 0x50, 0x54, 0x45, 0x44, 0x5f, 0x42, 0x59, 0x5f, 0x53, 0x43, 0x48,
+	0x45, 0x44, 0x55, 0x4c, 0x45, 0x52, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x50, 0x4c, 0x41, 0x43,
+	0x45, 0x48, 0x4f, 0x4c, 0x44, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x50, 0x4c, 0x41, 0x43, 0x45, 0x44,
+	0x10, 0x03, 0x32, 0xb4, 0x01, 0x0a, 0x09, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x72,
+	0x12, 0x6a, 0x0a, 0x17, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f,
+	0x75, 0x72, 0x63, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x25, 0x2e, 0x73, 0x69,
+	0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f,
+	0x75, 0x72, 0x63, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
+	0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x73,
+	0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67,
+	0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x3b, 0x0a, 0x06,
+	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x14, 0x2e, 0x73, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55,
+	0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x73,
+	0x69, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f,
+	0x6e, 0x73, 0x65, 0x22, 0x00, 0x28, 0x01, 0x30, 0x01, 0x3a, 0x3b, 0x0a, 0x09, 0x73, 0x69, 0x5f,
+	0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
+	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70,
+	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xa3, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x73, 0x69,
+	0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x42, 0x0b, 0x5a, 0x09, 0x6c, 0x69, 0x62, 0x2f, 0x67, 0x6f,
+	0x2f, 0x73, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+	file_incubator_yunikorn_scheduler_interface_si_proto_rawDescOnce sync.Once
+	file_incubator_yunikorn_scheduler_interface_si_proto_rawDescData = file_incubator_yunikorn_scheduler_interface_si_proto_rawDesc
+)
+
+func file_incubator_yunikorn_scheduler_interface_si_proto_rawDescGZIP() []byte {
+	file_incubator_yunikorn_scheduler_interface_si_proto_rawDescOnce.Do(func() {
+		file_incubator_yunikorn_scheduler_interface_si_proto_rawDescData = protoimpl.X.CompressGZIP(file_incubator_yunikorn_scheduler_interface_si_proto_rawDescData)
+	})
+	return file_incubator_yunikorn_scheduler_interface_si_proto_rawDescData
+}
+
+var file_incubator_yunikorn_scheduler_interface_si_proto_enumTypes = make([]protoimpl.EnumInfo, 5)
+var file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes = make([]protoimpl.MessageInfo, 37)
+var file_incubator_yunikorn_scheduler_interface_si_proto_goTypes = []interface{}{
+	(TerminationType)(0),                                       // 0: si.v1.TerminationType
+	(UpdateResponse_ActionFromScheduler)(0),                    // 1: si.v1.UpdateResponse.ActionFromScheduler
+	(UpdateNodeInfo_ActionFromRM)(0),                           // 2: si.v1.UpdateNodeInfo.ActionFromRM
+	(UpdateContainerSchedulingStateRequest_SchedulingState)(0), // 3: si.v1.UpdateContainerSchedulingStateRequest.SchedulingState
+	(EventRecord_Type)(0),                                      // 4: si.v1.EventRecord.Type
+	(*RegisterResourceManagerRequest)(nil),                     // 5: si.v1.RegisterResourceManagerRequest
+	(*RegisterResourceManagerResponse)(nil),                    // 6: si.v1.RegisterResourceManagerResponse
+	(*UpdateRequest)(nil),                                      // 7: si.v1.UpdateRequest
+	(*UpdateResponse)(nil),                                     // 8: si.v1.UpdateResponse
+	(*UpdatedApplication)(nil),                                 // 9: si.v1.UpdatedApplication
+	(*RejectedApplication)(nil),                                // 10: si.v1.RejectedApplication
+	(*AcceptedApplication)(nil),                                // 11: si.v1.AcceptedApplication
+	(*RejectedNode)(nil),                                       // 12: si.v1.RejectedNode
+	(*AcceptedNode)(nil),                                       // 13: si.v1.AcceptedNode
+	(*Priority)(nil),                                           // 14: si.v1.Priority
+	(*Resource)(nil),                                           // 15: si.v1.Resource
+	(*Quantity)(nil),                                           // 16: si.v1.Quantity
+	(*AllocationAsk)(nil),                                      // 17: si.v1.AllocationAsk
+	(*AddApplicationRequest)(nil),                              // 18: si.v1.AddApplicationRequest
+	(*RemoveApplicationRequest)(nil),                           // 19: si.v1.RemoveApplicationRequest
+	(*UserGroupInformation)(nil),                               // 20: si.v1.UserGroupInformation
+	(*Allocation)(nil),                                         // 21: si.v1.Allocation
+	(*AllocationReleasesRequest)(nil),                          // 22: si.v1.AllocationReleasesRequest
+	(*AllocationRelease)(nil),                                  // 23: si.v1.AllocationRelease
+	(*AllocationAskRelease)(nil),                               // 24: si.v1.AllocationAskRelease
+	(*NewNodeInfo)(nil),                                        // 25: si.v1.NewNodeInfo
+	(*UpdateNodeInfo)(nil),                                     // 26: si.v1.UpdateNodeInfo
+	(*RejectedAllocationAsk)(nil),                              // 27: si.v1.RejectedAllocationAsk
+	(*PredicatesArgs)(nil),                                     // 28: si.v1.PredicatesArgs
+	(*ReSyncSchedulerCacheArgs)(nil),                           // 29: si.v1.ReSyncSchedulerCacheArgs
+	(*AssumedAllocation)(nil),                                  // 30: si.v1.AssumedAllocation
+	(*ForgotAllocation)(nil),                                   // 31: si.v1.ForgotAllocation
+	(*UpdateContainerSchedulingStateRequest)(nil),              // 32: si.v1.UpdateContainerSchedulingStateRequest
+	(*UpdateConfigurationRequest)(nil),                         // 33: si.v1.UpdateConfigurationRequest
+	(*UpdateConfigurationResponse)(nil),                        // 34: si.v1.UpdateConfigurationResponse
+	(*EventRecord)(nil),                                        // 35: si.v1.EventRecord
+	nil,                                                        // 36: si.v1.Resource.ResourcesEntry
+	nil,                                                        // 37: si.v1.AllocationAsk.TagsEntry
+	nil,                                                        // 38: si.v1.AddApplicationRequest.TagsEntry
+	nil,                                                        // 39: si.v1.Allocation.AllocationTagsEntry
+	nil,                                                        // 40: si.v1.NewNodeInfo.AttributesEntry
+	nil,                                                        // 41: si.v1.UpdateNodeInfo.AttributesEntry
+	(*descriptorpb.FieldOptions)(nil),                          // 42: google.protobuf.FieldOptions
+}
+var file_incubator_yunikorn_scheduler_interface_si_proto_depIdxs = []int32{
+	17, // 0: si.v1.UpdateRequest.asks:type_name -> si.v1.AllocationAsk
+	22, // 1: si.v1.UpdateRequest.releases:type_name -> si.v1.AllocationReleasesRequest
+	25, // 2: si.v1.UpdateRequest.newSchedulableNodes:type_name -> si.v1.NewNodeInfo
+	26, // 3: si.v1.UpdateRequest.updatedNodes:type_name -> si.v1.UpdateNodeInfo
+	18, // 4: si.v1.UpdateRequest.newApplications:type_name -> si.v1.AddApplicationRequest
+	19, // 5: si.v1.UpdateRequest.removeApplications:type_name -> si.v1.RemoveApplicationRequest
+	1,  // 6: si.v1.UpdateResponse.action:type_name -> si.v1.UpdateResponse.ActionFromScheduler
+	21, // 7: si.v1.UpdateResponse.newAllocations:type_name -> si.v1.Allocation
+	23, // 8: si.v1.UpdateResponse.releasedAllocations:type_name -> si.v1.AllocationRelease
+	24, // 9: si.v1.UpdateResponse.releasedAllocationAsks:type_name -> si.v1.AllocationAskRelease
+	27, // 10: si.v1.UpdateResponse.rejectedAllocations:type_name -> si.v1.RejectedAllocationAsk
+	10, // 11: si.v1.UpdateResponse.rejectedApplications:type_name -> si.v1.RejectedApplication
+	11, // 12: si.v1.UpdateResponse.acceptedApplications:type_name -> si.v1.AcceptedApplication
+	9,  // 13: si.v1.UpdateResponse.updatedApplications:type_name -> si.v1.UpdatedApplication
+	12, // 14: si.v1.UpdateResponse.rejectedNodes:type_name -> si.v1.RejectedNode
+	13, // 15: si.v1.UpdateResponse.acceptedNodes:type_name -> si.v1.AcceptedNode
+	36, // 16: si.v1.Resource.resources:type_name -> si.v1.Resource.ResourcesEntry
+	15, // 17: si.v1.AllocationAsk.resourceAsk:type_name -> si.v1.Resource
+	14, // 18: si.v1.AllocationAsk.priority:type_name -> si.v1.Priority
+	37, // 19: si.v1.AllocationAsk.tags:type_name -> si.v1.AllocationAsk.TagsEntry
+	20, // 20: si.v1.AddApplicationRequest.ugi:type_name -> si.v1.UserGroupInformation
+	38, // 21: si.v1.AddApplicationRequest.tags:type_name -> si.v1.AddApplicationRequest.TagsEntry
+	15, // 22: si.v1.AddApplicationRequest.placeholderAsk:type_name -> si.v1.Resource
+	39, // 23: si.v1.Allocation.allocationTags:type_name -> si.v1.Allocation.AllocationTagsEntry
+	15, // 24: si.v1.Allocation.resourcePerAlloc:type_name -> si.v1.Resource
+	14, // 25: si.v1.Allocation.priority:type_name -> si.v1.Priority
+	23, // 26: si.v1.AllocationReleasesRequest.allocationsToRelease:type_name -> si.v1.AllocationRelease
+	24, // 27: si.v1.AllocationReleasesRequest.allocationAsksToRelease:type_name -> si.v1.AllocationAskRelease
+	0,  // 28: si.v1.AllocationRelease.terminationType:type_name -> si.v1.TerminationType
+	0,  // 29: si.v1.AllocationAskRelease.terminationType:type_name -> si.v1.TerminationType
+	40, // 30: si.v1.NewNodeInfo.attributes:type_name -> si.v1.NewNodeInfo.AttributesEntry
+	15, // 31: si.v1.NewNodeInfo.schedulableResource:type_name -> si.v1.Resource
+	15, // 32: si.v1.NewNodeInfo.occupiedResource:type_name -> si.v1.Resource
+	21, // 33: si.v1.NewNodeInfo.existingAllocations:type_name -> si.v1.Allocation
+	41, // 34: si.v1.UpdateNodeInfo.attributes:type_name -> si.v1.UpdateNodeInfo.AttributesEntry
+	15, // 35: si.v1.UpdateNodeInfo.schedulableResource:type_name -> si.v1.Resource
+	15, // 36: si.v1.UpdateNodeInfo.occupiedResource:type_name -> si.v1.Resource
+	2,  // 37: si.v1.UpdateNodeInfo.action:type_name -> si.v1.UpdateNodeInfo.ActionFromRM
+	30, // 38: si.v1.ReSyncSchedulerCacheArgs.assumedAllocations:type_name -> si.v1.AssumedAllocation
+	31, // 39: si.v1.ReSyncSchedulerCacheArgs.forgetAllocations:type_name -> si.v1.ForgotAllocation
+	3,  // 40: si.v1.UpdateContainerSchedulingStateRequest.state:type_name -> si.v1.UpdateContainerSchedulingStateRequest.SchedulingState
+	4,  // 41: si.v1.EventRecord.type:type_name -> si.v1.EventRecord.Type
+	16, // 42: si.v1.Resource.ResourcesEntry.value:type_name -> si.v1.Quantity
+	42, // 43: si.v1.si_secret:extendee -> google.protobuf.FieldOptions
+	5,  // 44: si.v1.Scheduler.RegisterResourceManager:input_type -> si.v1.RegisterResourceManagerRequest
+	7,  // 45: si.v1.Scheduler.Update:input_type -> si.v1.UpdateRequest
+	6,  // 46: si.v1.Scheduler.RegisterResourceManager:output_type -> si.v1.RegisterResourceManagerResponse
+	8,  // 47: si.v1.Scheduler.Update:output_type -> si.v1.UpdateResponse
+	46, // [46:48] is the sub-list for method output_type
+	44, // [44:46] is the sub-list for method input_type
+	44, // [44:44] is the sub-list for extension type_name
+	43, // [43:44] is the sub-list for extension extendee
+	0,  // [0:43] is the sub-list for field type_name
+}
+
+func init() { file_incubator_yunikorn_scheduler_interface_si_proto_init() }
+func file_incubator_yunikorn_scheduler_interface_si_proto_init() {
+	if File_incubator_yunikorn_scheduler_interface_si_proto != nil {
+		return
+	}
+	if !protoimpl.UnsafeEnabled {
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*RegisterResourceManagerRequest); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*RegisterResourceManagerResponse); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*UpdateRequest); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*UpdateResponse); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*UpdatedApplication); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*RejectedApplication); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*AcceptedApplication); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*RejectedNode); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*AcceptedNode); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*Priority); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*Resource); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*Quantity); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*AllocationAsk); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*AddApplicationRequest); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*RemoveApplicationRequest); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*UserGroupInformation); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*Allocation); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*AllocationReleasesRequest); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*AllocationRelease); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*AllocationAskRelease); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*NewNodeInfo); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*UpdateNodeInfo); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*RejectedAllocationAsk); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*PredicatesArgs); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*ReSyncSchedulerCacheArgs); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*AssumedAllocation); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*ForgotAllocation); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*UpdateContainerSchedulingStateRequest); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*UpdateConfigurationRequest); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*UpdateConfigurationResponse); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+		file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
+			switch v := v.(*EventRecord); i {
+			case 0:
+				return &v.state
+			case 1:
+				return &v.sizeCache
+			case 2:
+				return &v.unknownFields
+			default:
+				return nil
+			}
+		}
+	}
+	file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes[9].OneofWrappers = []interface{}{
+		(*Priority_PriorityValue)(nil),
+		(*Priority_PriorityClassName)(nil),
+	}
+	type x struct{}
+	out := protoimpl.TypeBuilder{
+		File: protoimpl.DescBuilder{
+			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+			RawDescriptor: file_incubator_yunikorn_scheduler_interface_si_proto_rawDesc,
+			NumEnums:      5,
+			NumMessages:   37,
+			NumExtensions: 1,
+			NumServices:   1,
 		},
-	},
-	Metadata: "incubator-yunikorn-scheduler-interface/si.proto",
+		GoTypes:           file_incubator_yunikorn_scheduler_interface_si_proto_goTypes,
+		DependencyIndexes: file_incubator_yunikorn_scheduler_interface_si_proto_depIdxs,
+		EnumInfos:         file_incubator_yunikorn_scheduler_interface_si_proto_enumTypes,
+		MessageInfos:      file_incubator_yunikorn_scheduler_interface_si_proto_msgTypes,
+		ExtensionInfos:    file_incubator_yunikorn_scheduler_interface_si_proto_extTypes,
+	}.Build()
+	File_incubator_yunikorn_scheduler_interface_si_proto = out.File
+	file_incubator_yunikorn_scheduler_interface_si_proto_rawDesc = nil
+	file_incubator_yunikorn_scheduler_interface_si_proto_goTypes = nil
+	file_incubator_yunikorn_scheduler_interface_si_proto_depIdxs = nil
 }
diff --git a/scheduler-interface-spec.md b/scheduler-interface-spec.md
index 4f01713..052de8a 100644
--- a/scheduler-interface-spec.md
+++ b/scheduler-interface-spec.md
@@ -56,7 +56,7 @@
 
 import "google/protobuf/descriptor.proto";
 
-option go_package = "si";
+option go_package = "lib/go/si";
 
 extend google.protobuf.FieldOptions {
   // Indicates that a field MAY contain information that is sensitive
diff --git a/si.proto b/si.proto
index a6cbdf4..b69a682 100644
--- a/si.proto
+++ b/si.proto
@@ -1,18 +1,16 @@
-/*
- Licensed to the Apache Software Foundation (ASF) under one
- or more contributor license agreements.  See the NOTICE file
- distributed with this work for additional information
- regarding copyright ownership.  The ASF licenses this file
- to you under the Apache License, Version 2.0 (the
- "License"); you may not use this file except in compliance
- with the License.  You may obtain a copy of the License at
-     http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-*/
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//     http://www.apache.org/licenses/LICENSE-2.0
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
 
 // Code generated by make build. DO NOT EDIT
 
@@ -21,7 +19,7 @@
 
 import "google/protobuf/descriptor.proto";
 
-option go_package = "si";
+option go_package = "lib/go/si";
 
 extend google.protobuf.FieldOptions {
   // Indicates that a field MAY contain information that is sensitive