// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.5.1
// - protoc             v3.21.12
// source: kodex/runtime/v1/runtime_manager.proto

package runtimev1

import (
	context "context"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
)

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
// Requires gRPC-Go v1.64.0 or later.
const _ = grpc.SupportPackageIsVersion9

const (
	RuntimeManagerService_PrepareRuntime_FullMethodName                         = "/kodex.runtime.v1.RuntimeManagerService/PrepareRuntime"
	RuntimeManagerService_ReserveSlot_FullMethodName                            = "/kodex.runtime.v1.RuntimeManagerService/ReserveSlot"
	RuntimeManagerService_ExtendSlotLease_FullMethodName                        = "/kodex.runtime.v1.RuntimeManagerService/ExtendSlotLease"
	RuntimeManagerService_ReleaseSlot_FullMethodName                            = "/kodex.runtime.v1.RuntimeManagerService/ReleaseSlot"
	RuntimeManagerService_MarkSlotFailed_FullMethodName                         = "/kodex.runtime.v1.RuntimeManagerService/MarkSlotFailed"
	RuntimeManagerService_GetSlot_FullMethodName                                = "/kodex.runtime.v1.RuntimeManagerService/GetSlot"
	RuntimeManagerService_ListSlots_FullMethodName                              = "/kodex.runtime.v1.RuntimeManagerService/ListSlots"
	RuntimeManagerService_StartWorkspaceMaterialization_FullMethodName          = "/kodex.runtime.v1.RuntimeManagerService/StartWorkspaceMaterialization"
	RuntimeManagerService_ReportWorkspaceMaterializationProgress_FullMethodName = "/kodex.runtime.v1.RuntimeManagerService/ReportWorkspaceMaterializationProgress"
	RuntimeManagerService_GetWorkspaceMaterialization_FullMethodName            = "/kodex.runtime.v1.RuntimeManagerService/GetWorkspaceMaterialization"
	RuntimeManagerService_ListWorkspaceMaterializations_FullMethodName          = "/kodex.runtime.v1.RuntimeManagerService/ListWorkspaceMaterializations"
	RuntimeManagerService_PrepareBuildContext_FullMethodName                    = "/kodex.runtime.v1.RuntimeManagerService/PrepareBuildContext"
	RuntimeManagerService_ReportBuildContextProgress_FullMethodName             = "/kodex.runtime.v1.RuntimeManagerService/ReportBuildContextProgress"
	RuntimeManagerService_GetBuildContext_FullMethodName                        = "/kodex.runtime.v1.RuntimeManagerService/GetBuildContext"
	RuntimeManagerService_CreateJob_FullMethodName                              = "/kodex.runtime.v1.RuntimeManagerService/CreateJob"
	RuntimeManagerService_ClaimRunnableJob_FullMethodName                       = "/kodex.runtime.v1.RuntimeManagerService/ClaimRunnableJob"
	RuntimeManagerService_ReportJobStepProgress_FullMethodName                  = "/kodex.runtime.v1.RuntimeManagerService/ReportJobStepProgress"
	RuntimeManagerService_CompleteJob_FullMethodName                            = "/kodex.runtime.v1.RuntimeManagerService/CompleteJob"
	RuntimeManagerService_FailJob_FullMethodName                                = "/kodex.runtime.v1.RuntimeManagerService/FailJob"
	RuntimeManagerService_CancelJob_FullMethodName                              = "/kodex.runtime.v1.RuntimeManagerService/CancelJob"
	RuntimeManagerService_GetJob_FullMethodName                                 = "/kodex.runtime.v1.RuntimeManagerService/GetJob"
	RuntimeManagerService_ListJobs_FullMethodName                               = "/kodex.runtime.v1.RuntimeManagerService/ListJobs"
	RuntimeManagerService_RecordRuntimeArtifactRef_FullMethodName               = "/kodex.runtime.v1.RuntimeManagerService/RecordRuntimeArtifactRef"
	RuntimeManagerService_ListRuntimeArtifactRefs_FullMethodName                = "/kodex.runtime.v1.RuntimeManagerService/ListRuntimeArtifactRefs"
	RuntimeManagerService_CreateOrUpdateCleanupPolicy_FullMethodName            = "/kodex.runtime.v1.RuntimeManagerService/CreateOrUpdateCleanupPolicy"
	RuntimeManagerService_RunCleanupBatch_FullMethodName                        = "/kodex.runtime.v1.RuntimeManagerService/RunCleanupBatch"
	RuntimeManagerService_CreateOrUpdatePrewarmPool_FullMethodName              = "/kodex.runtime.v1.RuntimeManagerService/CreateOrUpdatePrewarmPool"
	RuntimeManagerService_ReconcilePrewarmPool_FullMethodName                   = "/kodex.runtime.v1.RuntimeManagerService/ReconcilePrewarmPool"
)

// RuntimeManagerServiceClient is the client API for RuntimeManagerService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
//
// RuntimeManagerService is the stable v1 inter-service contract for the
// runtime and fleet boundary. Runtime-manager owns slots, workspace
// materialization, platform jobs, short diagnostics, cleanup and prewarm state.
type RuntimeManagerServiceClient interface {
	// PrepareRuntime resolves placement through fleet-manager, reserves a slot and starts workspace materialization.
	PrepareRuntime(ctx context.Context, in *PrepareRuntimeRequest, opts ...grpc.CallOption) (*PrepareRuntimeResponse, error)
	// ReserveSlot reserves or creates a runtime slot.
	ReserveSlot(ctx context.Context, in *ReserveSlotRequest, opts ...grpc.CallOption) (*SlotResponse, error)
	// ExtendSlotLease extends active slot lease.
	ExtendSlotLease(ctx context.Context, in *ExtendSlotLeaseRequest, opts ...grpc.CallOption) (*SlotResponse, error)
	// ReleaseSlot releases a slot after work finishes.
	ReleaseSlot(ctx context.Context, in *ReleaseSlotRequest, opts ...grpc.CallOption) (*SlotResponse, error)
	// MarkSlotFailed marks a slot as failed with a classified error.
	MarkSlotFailed(ctx context.Context, in *MarkSlotFailedRequest, opts ...grpc.CallOption) (*SlotResponse, error)
	// GetSlot returns authoritative slot state.
	GetSlot(ctx context.Context, in *GetSlotRequest, opts ...grpc.CallOption) (*SlotResponse, error)
	// ListSlots returns slots by project, status, runtime profile or fleet scope.
	ListSlots(ctx context.Context, in *ListSlotsRequest, opts ...grpc.CallOption) (*ListSlotsResponse, error)
	// StartWorkspaceMaterialization starts source preparation inside a slot.
	StartWorkspaceMaterialization(ctx context.Context, in *StartWorkspaceMaterializationRequest, opts ...grpc.CallOption) (*WorkspaceMaterializationResponse, error)
	// ReportWorkspaceMaterializationProgress updates materialization status, fingerprint and classified error.
	ReportWorkspaceMaterializationProgress(ctx context.Context, in *ReportWorkspaceMaterializationProgressRequest, opts ...grpc.CallOption) (*WorkspaceMaterializationResponse, error)
	// GetWorkspaceMaterialization returns one materialization attempt.
	GetWorkspaceMaterialization(ctx context.Context, in *GetWorkspaceMaterializationRequest, opts ...grpc.CallOption) (*WorkspaceMaterializationResponse, error)
	// ListWorkspaceMaterializations returns materialization attempts by slot or agent run.
	ListWorkspaceMaterializations(ctx context.Context, in *ListWorkspaceMaterializationsRequest, opts ...grpc.CallOption) (*ListWorkspaceMaterializationsResponse, error)
	// PrepareBuildContext records a runtime-owned build context materialization request.
	PrepareBuildContext(ctx context.Context, in *PrepareBuildContextRequest, opts ...grpc.CallOption) (*BuildContextResponse, error)
	// ReportBuildContextProgress updates build context materialization status from a trusted controller.
	ReportBuildContextProgress(ctx context.Context, in *ReportBuildContextProgressRequest, opts ...grpc.CallOption) (*BuildContextResponse, error)
	// GetBuildContext returns one build context materialization attempt.
	GetBuildContext(ctx context.Context, in *GetBuildContextRequest, opts ...grpc.CallOption) (*BuildContextResponse, error)
	// CreateJob creates a platform technical job.
	CreateJob(ctx context.Context, in *CreateJobRequest, opts ...grpc.CallOption) (*JobResponse, error)
	// ClaimRunnableJob claims a runnable job with a short lease and returns a lease token.
	ClaimRunnableJob(ctx context.Context, in *ClaimRunnableJobRequest, opts ...grpc.CallOption) (*ClaimRunnableJobResponse, error)
	// ReportJobStepProgress updates job step progress and short diagnostics.
	ReportJobStepProgress(ctx context.Context, in *ReportJobStepProgressRequest, opts ...grpc.CallOption) (*JobResponse, error)
	// CompleteJob completes a job successfully.
	CompleteJob(ctx context.Context, in *CompleteJobRequest, opts ...grpc.CallOption) (*JobResponse, error)
	// FailJob completes a job with a classified error.
	FailJob(ctx context.Context, in *FailJobRequest, opts ...grpc.CallOption) (*JobResponse, error)
	// CancelJob cancels a pending or running job by policy.
	CancelJob(ctx context.Context, in *CancelJobRequest, opts ...grpc.CallOption) (*JobResponse, error)
	// GetJob returns authoritative job state.
	GetJob(ctx context.Context, in *GetJobRequest, opts ...grpc.CallOption) (*JobResponse, error)
	// ListJobs returns jobs by status, type, project, slot, agent run or release line.
	ListJobs(ctx context.Context, in *ListJobsRequest, opts ...grpc.CallOption) (*ListJobsResponse, error)
	// RecordRuntimeArtifactRef records a reference to an external runtime artifact.
	RecordRuntimeArtifactRef(ctx context.Context, in *RecordRuntimeArtifactRefRequest, opts ...grpc.CallOption) (*RuntimeArtifactRefResponse, error)
	// ListRuntimeArtifactRefs returns runtime artifact references by job or slot.
	ListRuntimeArtifactRefs(ctx context.Context, in *ListRuntimeArtifactRefsRequest, opts ...grpc.CallOption) (*ListRuntimeArtifactRefsResponse, error)
	// CreateOrUpdateCleanupPolicy creates or updates retention policy for runtime objects.
	CreateOrUpdateCleanupPolicy(ctx context.Context, in *CreateOrUpdateCleanupPolicyRequest, opts ...grpc.CallOption) (*CleanupPolicyResponse, error)
	// RunCleanupBatch claims and executes a cleanup batch by policy.
	RunCleanupBatch(ctx context.Context, in *RunCleanupBatchRequest, opts ...grpc.CallOption) (*RunCleanupBatchResponse, error)
	// CreateOrUpdatePrewarmPool creates or updates a pool of prewarmed slots.
	CreateOrUpdatePrewarmPool(ctx context.Context, in *CreateOrUpdatePrewarmPoolRequest, opts ...grpc.CallOption) (*PrewarmPoolResponse, error)
	// ReconcilePrewarmPool reconciles actual prewarmed slots with target pool size.
	ReconcilePrewarmPool(ctx context.Context, in *ReconcilePrewarmPoolRequest, opts ...grpc.CallOption) (*PrewarmPoolResponse, error)
}

type runtimeManagerServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewRuntimeManagerServiceClient(cc grpc.ClientConnInterface) RuntimeManagerServiceClient {
	return &runtimeManagerServiceClient{cc}
}

func (c *runtimeManagerServiceClient) PrepareRuntime(ctx context.Context, in *PrepareRuntimeRequest, opts ...grpc.CallOption) (*PrepareRuntimeResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(PrepareRuntimeResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_PrepareRuntime_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) ReserveSlot(ctx context.Context, in *ReserveSlotRequest, opts ...grpc.CallOption) (*SlotResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SlotResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_ReserveSlot_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) ExtendSlotLease(ctx context.Context, in *ExtendSlotLeaseRequest, opts ...grpc.CallOption) (*SlotResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SlotResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_ExtendSlotLease_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) ReleaseSlot(ctx context.Context, in *ReleaseSlotRequest, opts ...grpc.CallOption) (*SlotResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SlotResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_ReleaseSlot_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) MarkSlotFailed(ctx context.Context, in *MarkSlotFailedRequest, opts ...grpc.CallOption) (*SlotResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SlotResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_MarkSlotFailed_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) GetSlot(ctx context.Context, in *GetSlotRequest, opts ...grpc.CallOption) (*SlotResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SlotResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_GetSlot_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) ListSlots(ctx context.Context, in *ListSlotsRequest, opts ...grpc.CallOption) (*ListSlotsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListSlotsResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_ListSlots_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) StartWorkspaceMaterialization(ctx context.Context, in *StartWorkspaceMaterializationRequest, opts ...grpc.CallOption) (*WorkspaceMaterializationResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(WorkspaceMaterializationResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_StartWorkspaceMaterialization_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) ReportWorkspaceMaterializationProgress(ctx context.Context, in *ReportWorkspaceMaterializationProgressRequest, opts ...grpc.CallOption) (*WorkspaceMaterializationResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(WorkspaceMaterializationResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_ReportWorkspaceMaterializationProgress_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) GetWorkspaceMaterialization(ctx context.Context, in *GetWorkspaceMaterializationRequest, opts ...grpc.CallOption) (*WorkspaceMaterializationResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(WorkspaceMaterializationResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_GetWorkspaceMaterialization_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) ListWorkspaceMaterializations(ctx context.Context, in *ListWorkspaceMaterializationsRequest, opts ...grpc.CallOption) (*ListWorkspaceMaterializationsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListWorkspaceMaterializationsResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_ListWorkspaceMaterializations_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) PrepareBuildContext(ctx context.Context, in *PrepareBuildContextRequest, opts ...grpc.CallOption) (*BuildContextResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(BuildContextResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_PrepareBuildContext_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) ReportBuildContextProgress(ctx context.Context, in *ReportBuildContextProgressRequest, opts ...grpc.CallOption) (*BuildContextResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(BuildContextResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_ReportBuildContextProgress_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) GetBuildContext(ctx context.Context, in *GetBuildContextRequest, opts ...grpc.CallOption) (*BuildContextResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(BuildContextResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_GetBuildContext_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) CreateJob(ctx context.Context, in *CreateJobRequest, opts ...grpc.CallOption) (*JobResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(JobResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_CreateJob_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) ClaimRunnableJob(ctx context.Context, in *ClaimRunnableJobRequest, opts ...grpc.CallOption) (*ClaimRunnableJobResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ClaimRunnableJobResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_ClaimRunnableJob_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) ReportJobStepProgress(ctx context.Context, in *ReportJobStepProgressRequest, opts ...grpc.CallOption) (*JobResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(JobResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_ReportJobStepProgress_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) CompleteJob(ctx context.Context, in *CompleteJobRequest, opts ...grpc.CallOption) (*JobResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(JobResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_CompleteJob_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) FailJob(ctx context.Context, in *FailJobRequest, opts ...grpc.CallOption) (*JobResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(JobResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_FailJob_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) CancelJob(ctx context.Context, in *CancelJobRequest, opts ...grpc.CallOption) (*JobResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(JobResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_CancelJob_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) GetJob(ctx context.Context, in *GetJobRequest, opts ...grpc.CallOption) (*JobResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(JobResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_GetJob_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) ListJobs(ctx context.Context, in *ListJobsRequest, opts ...grpc.CallOption) (*ListJobsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListJobsResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_ListJobs_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) RecordRuntimeArtifactRef(ctx context.Context, in *RecordRuntimeArtifactRefRequest, opts ...grpc.CallOption) (*RuntimeArtifactRefResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(RuntimeArtifactRefResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_RecordRuntimeArtifactRef_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) ListRuntimeArtifactRefs(ctx context.Context, in *ListRuntimeArtifactRefsRequest, opts ...grpc.CallOption) (*ListRuntimeArtifactRefsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListRuntimeArtifactRefsResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_ListRuntimeArtifactRefs_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) CreateOrUpdateCleanupPolicy(ctx context.Context, in *CreateOrUpdateCleanupPolicyRequest, opts ...grpc.CallOption) (*CleanupPolicyResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(CleanupPolicyResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_CreateOrUpdateCleanupPolicy_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) RunCleanupBatch(ctx context.Context, in *RunCleanupBatchRequest, opts ...grpc.CallOption) (*RunCleanupBatchResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(RunCleanupBatchResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_RunCleanupBatch_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) CreateOrUpdatePrewarmPool(ctx context.Context, in *CreateOrUpdatePrewarmPoolRequest, opts ...grpc.CallOption) (*PrewarmPoolResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(PrewarmPoolResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_CreateOrUpdatePrewarmPool_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *runtimeManagerServiceClient) ReconcilePrewarmPool(ctx context.Context, in *ReconcilePrewarmPoolRequest, opts ...grpc.CallOption) (*PrewarmPoolResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(PrewarmPoolResponse)
	err := c.cc.Invoke(ctx, RuntimeManagerService_ReconcilePrewarmPool_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// RuntimeManagerServiceServer is the server API for RuntimeManagerService service.
// All implementations must embed UnimplementedRuntimeManagerServiceServer
// for forward compatibility.
//
// RuntimeManagerService is the stable v1 inter-service contract for the
// runtime and fleet boundary. Runtime-manager owns slots, workspace
// materialization, platform jobs, short diagnostics, cleanup and prewarm state.
type RuntimeManagerServiceServer interface {
	// PrepareRuntime resolves placement through fleet-manager, reserves a slot and starts workspace materialization.
	PrepareRuntime(context.Context, *PrepareRuntimeRequest) (*PrepareRuntimeResponse, error)
	// ReserveSlot reserves or creates a runtime slot.
	ReserveSlot(context.Context, *ReserveSlotRequest) (*SlotResponse, error)
	// ExtendSlotLease extends active slot lease.
	ExtendSlotLease(context.Context, *ExtendSlotLeaseRequest) (*SlotResponse, error)
	// ReleaseSlot releases a slot after work finishes.
	ReleaseSlot(context.Context, *ReleaseSlotRequest) (*SlotResponse, error)
	// MarkSlotFailed marks a slot as failed with a classified error.
	MarkSlotFailed(context.Context, *MarkSlotFailedRequest) (*SlotResponse, error)
	// GetSlot returns authoritative slot state.
	GetSlot(context.Context, *GetSlotRequest) (*SlotResponse, error)
	// ListSlots returns slots by project, status, runtime profile or fleet scope.
	ListSlots(context.Context, *ListSlotsRequest) (*ListSlotsResponse, error)
	// StartWorkspaceMaterialization starts source preparation inside a slot.
	StartWorkspaceMaterialization(context.Context, *StartWorkspaceMaterializationRequest) (*WorkspaceMaterializationResponse, error)
	// ReportWorkspaceMaterializationProgress updates materialization status, fingerprint and classified error.
	ReportWorkspaceMaterializationProgress(context.Context, *ReportWorkspaceMaterializationProgressRequest) (*WorkspaceMaterializationResponse, error)
	// GetWorkspaceMaterialization returns one materialization attempt.
	GetWorkspaceMaterialization(context.Context, *GetWorkspaceMaterializationRequest) (*WorkspaceMaterializationResponse, error)
	// ListWorkspaceMaterializations returns materialization attempts by slot or agent run.
	ListWorkspaceMaterializations(context.Context, *ListWorkspaceMaterializationsRequest) (*ListWorkspaceMaterializationsResponse, error)
	// PrepareBuildContext records a runtime-owned build context materialization request.
	PrepareBuildContext(context.Context, *PrepareBuildContextRequest) (*BuildContextResponse, error)
	// ReportBuildContextProgress updates build context materialization status from a trusted controller.
	ReportBuildContextProgress(context.Context, *ReportBuildContextProgressRequest) (*BuildContextResponse, error)
	// GetBuildContext returns one build context materialization attempt.
	GetBuildContext(context.Context, *GetBuildContextRequest) (*BuildContextResponse, error)
	// CreateJob creates a platform technical job.
	CreateJob(context.Context, *CreateJobRequest) (*JobResponse, error)
	// ClaimRunnableJob claims a runnable job with a short lease and returns a lease token.
	ClaimRunnableJob(context.Context, *ClaimRunnableJobRequest) (*ClaimRunnableJobResponse, error)
	// ReportJobStepProgress updates job step progress and short diagnostics.
	ReportJobStepProgress(context.Context, *ReportJobStepProgressRequest) (*JobResponse, error)
	// CompleteJob completes a job successfully.
	CompleteJob(context.Context, *CompleteJobRequest) (*JobResponse, error)
	// FailJob completes a job with a classified error.
	FailJob(context.Context, *FailJobRequest) (*JobResponse, error)
	// CancelJob cancels a pending or running job by policy.
	CancelJob(context.Context, *CancelJobRequest) (*JobResponse, error)
	// GetJob returns authoritative job state.
	GetJob(context.Context, *GetJobRequest) (*JobResponse, error)
	// ListJobs returns jobs by status, type, project, slot, agent run or release line.
	ListJobs(context.Context, *ListJobsRequest) (*ListJobsResponse, error)
	// RecordRuntimeArtifactRef records a reference to an external runtime artifact.
	RecordRuntimeArtifactRef(context.Context, *RecordRuntimeArtifactRefRequest) (*RuntimeArtifactRefResponse, error)
	// ListRuntimeArtifactRefs returns runtime artifact references by job or slot.
	ListRuntimeArtifactRefs(context.Context, *ListRuntimeArtifactRefsRequest) (*ListRuntimeArtifactRefsResponse, error)
	// CreateOrUpdateCleanupPolicy creates or updates retention policy for runtime objects.
	CreateOrUpdateCleanupPolicy(context.Context, *CreateOrUpdateCleanupPolicyRequest) (*CleanupPolicyResponse, error)
	// RunCleanupBatch claims and executes a cleanup batch by policy.
	RunCleanupBatch(context.Context, *RunCleanupBatchRequest) (*RunCleanupBatchResponse, error)
	// CreateOrUpdatePrewarmPool creates or updates a pool of prewarmed slots.
	CreateOrUpdatePrewarmPool(context.Context, *CreateOrUpdatePrewarmPoolRequest) (*PrewarmPoolResponse, error)
	// ReconcilePrewarmPool reconciles actual prewarmed slots with target pool size.
	ReconcilePrewarmPool(context.Context, *ReconcilePrewarmPoolRequest) (*PrewarmPoolResponse, error)
	mustEmbedUnimplementedRuntimeManagerServiceServer()
}

// UnimplementedRuntimeManagerServiceServer must be embedded to have
// forward compatible implementations.
//
// NOTE: this should be embedded by value instead of pointer to avoid a nil
// pointer dereference when methods are called.
type UnimplementedRuntimeManagerServiceServer struct{}

func (UnimplementedRuntimeManagerServiceServer) PrepareRuntime(context.Context, *PrepareRuntimeRequest) (*PrepareRuntimeResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PrepareRuntime not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) ReserveSlot(context.Context, *ReserveSlotRequest) (*SlotResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ReserveSlot not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) ExtendSlotLease(context.Context, *ExtendSlotLeaseRequest) (*SlotResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ExtendSlotLease not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) ReleaseSlot(context.Context, *ReleaseSlotRequest) (*SlotResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ReleaseSlot not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) MarkSlotFailed(context.Context, *MarkSlotFailedRequest) (*SlotResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method MarkSlotFailed not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) GetSlot(context.Context, *GetSlotRequest) (*SlotResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetSlot not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) ListSlots(context.Context, *ListSlotsRequest) (*ListSlotsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListSlots not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) StartWorkspaceMaterialization(context.Context, *StartWorkspaceMaterializationRequest) (*WorkspaceMaterializationResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method StartWorkspaceMaterialization not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) ReportWorkspaceMaterializationProgress(context.Context, *ReportWorkspaceMaterializationProgressRequest) (*WorkspaceMaterializationResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ReportWorkspaceMaterializationProgress not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) GetWorkspaceMaterialization(context.Context, *GetWorkspaceMaterializationRequest) (*WorkspaceMaterializationResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetWorkspaceMaterialization not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) ListWorkspaceMaterializations(context.Context, *ListWorkspaceMaterializationsRequest) (*ListWorkspaceMaterializationsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListWorkspaceMaterializations not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) PrepareBuildContext(context.Context, *PrepareBuildContextRequest) (*BuildContextResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method PrepareBuildContext not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) ReportBuildContextProgress(context.Context, *ReportBuildContextProgressRequest) (*BuildContextResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ReportBuildContextProgress not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) GetBuildContext(context.Context, *GetBuildContextRequest) (*BuildContextResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetBuildContext not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) CreateJob(context.Context, *CreateJobRequest) (*JobResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateJob not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) ClaimRunnableJob(context.Context, *ClaimRunnableJobRequest) (*ClaimRunnableJobResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ClaimRunnableJob not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) ReportJobStepProgress(context.Context, *ReportJobStepProgressRequest) (*JobResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ReportJobStepProgress not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) CompleteJob(context.Context, *CompleteJobRequest) (*JobResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CompleteJob not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) FailJob(context.Context, *FailJobRequest) (*JobResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method FailJob not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) CancelJob(context.Context, *CancelJobRequest) (*JobResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CancelJob not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) GetJob(context.Context, *GetJobRequest) (*JobResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetJob not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) ListJobs(context.Context, *ListJobsRequest) (*ListJobsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListJobs not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) RecordRuntimeArtifactRef(context.Context, *RecordRuntimeArtifactRefRequest) (*RuntimeArtifactRefResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RecordRuntimeArtifactRef not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) ListRuntimeArtifactRefs(context.Context, *ListRuntimeArtifactRefsRequest) (*ListRuntimeArtifactRefsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListRuntimeArtifactRefs not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) CreateOrUpdateCleanupPolicy(context.Context, *CreateOrUpdateCleanupPolicyRequest) (*CleanupPolicyResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateOrUpdateCleanupPolicy not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) RunCleanupBatch(context.Context, *RunCleanupBatchRequest) (*RunCleanupBatchResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RunCleanupBatch not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) CreateOrUpdatePrewarmPool(context.Context, *CreateOrUpdatePrewarmPoolRequest) (*PrewarmPoolResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateOrUpdatePrewarmPool not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) ReconcilePrewarmPool(context.Context, *ReconcilePrewarmPoolRequest) (*PrewarmPoolResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ReconcilePrewarmPool not implemented")
}
func (UnimplementedRuntimeManagerServiceServer) mustEmbedUnimplementedRuntimeManagerServiceServer() {}
func (UnimplementedRuntimeManagerServiceServer) testEmbeddedByValue()                               {}

// UnsafeRuntimeManagerServiceServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to RuntimeManagerServiceServer will
// result in compilation errors.
type UnsafeRuntimeManagerServiceServer interface {
	mustEmbedUnimplementedRuntimeManagerServiceServer()
}

func RegisterRuntimeManagerServiceServer(s grpc.ServiceRegistrar, srv RuntimeManagerServiceServer) {
	// If the following call pancis, it indicates UnimplementedRuntimeManagerServiceServer was
	// embedded by pointer and is nil.  This will cause panics if an
	// unimplemented method is ever invoked, so we test this at initialization
	// time to prevent it from happening at runtime later due to I/O.
	if t, ok := srv.(interface{ testEmbeddedByValue() }); ok {
		t.testEmbeddedByValue()
	}
	s.RegisterService(&RuntimeManagerService_ServiceDesc, srv)
}

func _RuntimeManagerService_PrepareRuntime_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PrepareRuntimeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).PrepareRuntime(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_PrepareRuntime_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).PrepareRuntime(ctx, req.(*PrepareRuntimeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_ReserveSlot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReserveSlotRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).ReserveSlot(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_ReserveSlot_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).ReserveSlot(ctx, req.(*ReserveSlotRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_ExtendSlotLease_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ExtendSlotLeaseRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).ExtendSlotLease(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_ExtendSlotLease_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).ExtendSlotLease(ctx, req.(*ExtendSlotLeaseRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_ReleaseSlot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReleaseSlotRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).ReleaseSlot(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_ReleaseSlot_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).ReleaseSlot(ctx, req.(*ReleaseSlotRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_MarkSlotFailed_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(MarkSlotFailedRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).MarkSlotFailed(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_MarkSlotFailed_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).MarkSlotFailed(ctx, req.(*MarkSlotFailedRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_GetSlot_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetSlotRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).GetSlot(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_GetSlot_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).GetSlot(ctx, req.(*GetSlotRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_ListSlots_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListSlotsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).ListSlots(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_ListSlots_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).ListSlots(ctx, req.(*ListSlotsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_StartWorkspaceMaterialization_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StartWorkspaceMaterializationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).StartWorkspaceMaterialization(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_StartWorkspaceMaterialization_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).StartWorkspaceMaterialization(ctx, req.(*StartWorkspaceMaterializationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_ReportWorkspaceMaterializationProgress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReportWorkspaceMaterializationProgressRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).ReportWorkspaceMaterializationProgress(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_ReportWorkspaceMaterializationProgress_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).ReportWorkspaceMaterializationProgress(ctx, req.(*ReportWorkspaceMaterializationProgressRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_GetWorkspaceMaterialization_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetWorkspaceMaterializationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).GetWorkspaceMaterialization(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_GetWorkspaceMaterialization_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).GetWorkspaceMaterialization(ctx, req.(*GetWorkspaceMaterializationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_ListWorkspaceMaterializations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListWorkspaceMaterializationsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).ListWorkspaceMaterializations(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_ListWorkspaceMaterializations_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).ListWorkspaceMaterializations(ctx, req.(*ListWorkspaceMaterializationsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_PrepareBuildContext_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PrepareBuildContextRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).PrepareBuildContext(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_PrepareBuildContext_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).PrepareBuildContext(ctx, req.(*PrepareBuildContextRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_ReportBuildContextProgress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReportBuildContextProgressRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).ReportBuildContextProgress(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_ReportBuildContextProgress_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).ReportBuildContextProgress(ctx, req.(*ReportBuildContextProgressRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_GetBuildContext_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetBuildContextRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).GetBuildContext(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_GetBuildContext_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).GetBuildContext(ctx, req.(*GetBuildContextRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_CreateJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateJobRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).CreateJob(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_CreateJob_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).CreateJob(ctx, req.(*CreateJobRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_ClaimRunnableJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ClaimRunnableJobRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).ClaimRunnableJob(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_ClaimRunnableJob_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).ClaimRunnableJob(ctx, req.(*ClaimRunnableJobRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_ReportJobStepProgress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReportJobStepProgressRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).ReportJobStepProgress(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_ReportJobStepProgress_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).ReportJobStepProgress(ctx, req.(*ReportJobStepProgressRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_CompleteJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CompleteJobRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).CompleteJob(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_CompleteJob_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).CompleteJob(ctx, req.(*CompleteJobRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_FailJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(FailJobRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).FailJob(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_FailJob_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).FailJob(ctx, req.(*FailJobRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_CancelJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CancelJobRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).CancelJob(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_CancelJob_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).CancelJob(ctx, req.(*CancelJobRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_GetJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetJobRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).GetJob(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_GetJob_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).GetJob(ctx, req.(*GetJobRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_ListJobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListJobsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).ListJobs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_ListJobs_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).ListJobs(ctx, req.(*ListJobsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_RecordRuntimeArtifactRef_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RecordRuntimeArtifactRefRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).RecordRuntimeArtifactRef(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_RecordRuntimeArtifactRef_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).RecordRuntimeArtifactRef(ctx, req.(*RecordRuntimeArtifactRefRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_ListRuntimeArtifactRefs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListRuntimeArtifactRefsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).ListRuntimeArtifactRefs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_ListRuntimeArtifactRefs_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).ListRuntimeArtifactRefs(ctx, req.(*ListRuntimeArtifactRefsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_CreateOrUpdateCleanupPolicy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateOrUpdateCleanupPolicyRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).CreateOrUpdateCleanupPolicy(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_CreateOrUpdateCleanupPolicy_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).CreateOrUpdateCleanupPolicy(ctx, req.(*CreateOrUpdateCleanupPolicyRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_RunCleanupBatch_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RunCleanupBatchRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).RunCleanupBatch(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_RunCleanupBatch_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).RunCleanupBatch(ctx, req.(*RunCleanupBatchRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_CreateOrUpdatePrewarmPool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateOrUpdatePrewarmPoolRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).CreateOrUpdatePrewarmPool(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_CreateOrUpdatePrewarmPool_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).CreateOrUpdatePrewarmPool(ctx, req.(*CreateOrUpdatePrewarmPoolRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _RuntimeManagerService_ReconcilePrewarmPool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ReconcilePrewarmPoolRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(RuntimeManagerServiceServer).ReconcilePrewarmPool(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: RuntimeManagerService_ReconcilePrewarmPool_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(RuntimeManagerServiceServer).ReconcilePrewarmPool(ctx, req.(*ReconcilePrewarmPoolRequest))
	}
	return interceptor(ctx, in, info, handler)
}

// RuntimeManagerService_ServiceDesc is the grpc.ServiceDesc for RuntimeManagerService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var RuntimeManagerService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "kodex.runtime.v1.RuntimeManagerService",
	HandlerType: (*RuntimeManagerServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "PrepareRuntime",
			Handler:    _RuntimeManagerService_PrepareRuntime_Handler,
		},
		{
			MethodName: "ReserveSlot",
			Handler:    _RuntimeManagerService_ReserveSlot_Handler,
		},
		{
			MethodName: "ExtendSlotLease",
			Handler:    _RuntimeManagerService_ExtendSlotLease_Handler,
		},
		{
			MethodName: "ReleaseSlot",
			Handler:    _RuntimeManagerService_ReleaseSlot_Handler,
		},
		{
			MethodName: "MarkSlotFailed",
			Handler:    _RuntimeManagerService_MarkSlotFailed_Handler,
		},
		{
			MethodName: "GetSlot",
			Handler:    _RuntimeManagerService_GetSlot_Handler,
		},
		{
			MethodName: "ListSlots",
			Handler:    _RuntimeManagerService_ListSlots_Handler,
		},
		{
			MethodName: "StartWorkspaceMaterialization",
			Handler:    _RuntimeManagerService_StartWorkspaceMaterialization_Handler,
		},
		{
			MethodName: "ReportWorkspaceMaterializationProgress",
			Handler:    _RuntimeManagerService_ReportWorkspaceMaterializationProgress_Handler,
		},
		{
			MethodName: "GetWorkspaceMaterialization",
			Handler:    _RuntimeManagerService_GetWorkspaceMaterialization_Handler,
		},
		{
			MethodName: "ListWorkspaceMaterializations",
			Handler:    _RuntimeManagerService_ListWorkspaceMaterializations_Handler,
		},
		{
			MethodName: "PrepareBuildContext",
			Handler:    _RuntimeManagerService_PrepareBuildContext_Handler,
		},
		{
			MethodName: "ReportBuildContextProgress",
			Handler:    _RuntimeManagerService_ReportBuildContextProgress_Handler,
		},
		{
			MethodName: "GetBuildContext",
			Handler:    _RuntimeManagerService_GetBuildContext_Handler,
		},
		{
			MethodName: "CreateJob",
			Handler:    _RuntimeManagerService_CreateJob_Handler,
		},
		{
			MethodName: "ClaimRunnableJob",
			Handler:    _RuntimeManagerService_ClaimRunnableJob_Handler,
		},
		{
			MethodName: "ReportJobStepProgress",
			Handler:    _RuntimeManagerService_ReportJobStepProgress_Handler,
		},
		{
			MethodName: "CompleteJob",
			Handler:    _RuntimeManagerService_CompleteJob_Handler,
		},
		{
			MethodName: "FailJob",
			Handler:    _RuntimeManagerService_FailJob_Handler,
		},
		{
			MethodName: "CancelJob",
			Handler:    _RuntimeManagerService_CancelJob_Handler,
		},
		{
			MethodName: "GetJob",
			Handler:    _RuntimeManagerService_GetJob_Handler,
		},
		{
			MethodName: "ListJobs",
			Handler:    _RuntimeManagerService_ListJobs_Handler,
		},
		{
			MethodName: "RecordRuntimeArtifactRef",
			Handler:    _RuntimeManagerService_RecordRuntimeArtifactRef_Handler,
		},
		{
			MethodName: "ListRuntimeArtifactRefs",
			Handler:    _RuntimeManagerService_ListRuntimeArtifactRefs_Handler,
		},
		{
			MethodName: "CreateOrUpdateCleanupPolicy",
			Handler:    _RuntimeManagerService_CreateOrUpdateCleanupPolicy_Handler,
		},
		{
			MethodName: "RunCleanupBatch",
			Handler:    _RuntimeManagerService_RunCleanupBatch_Handler,
		},
		{
			MethodName: "CreateOrUpdatePrewarmPool",
			Handler:    _RuntimeManagerService_CreateOrUpdatePrewarmPool_Handler,
		},
		{
			MethodName: "ReconcilePrewarmPool",
			Handler:    _RuntimeManagerService_ReconcilePrewarmPool_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "kodex/runtime/v1/runtime_manager.proto",
}
