
// Code generated by make build. DO NOT EDIT

package api

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. 
	RegisterResourceManager(request *si.RegisterResourceManagerRequest, callback ResourceManagerCallback) (*si.RegisterResourceManagerResponse, error)

	// 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 
	ReloadConfiguration(clusterID string) error
}

// RM side needs to implement this API
type ResourceManagerCallback interface {
	RecvUpdateResponse(response *si.UpdateResponse) error
}
