// Copyright 2016-2022 Fraunhofer AISEC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
//           $$\                           $$\ $$\   $$\
//           $$ |                          $$ |\__|  $$ |
//  $$$$$$$\ $$ | $$$$$$\  $$\   $$\  $$$$$$$ |$$\ $$$$$$\    $$$$$$\   $$$$$$\
// $$  _____|$$ |$$  __$$\ $$ |  $$ |$$  __$$ |$$ |\_$$  _|  $$  __$$\ $$  __$$\
// $$ /      $$ |$$ /  $$ |$$ |  $$ |$$ /  $$ |$$ |  $$ |    $$ /  $$ |$$ | \__|
// $$ |      $$ |$$ |  $$ |$$ |  $$ |$$ |  $$ |$$ |  $$ |$$\ $$ |  $$ |$$ |
// \$$$$$$\  $$ |\$$$$$   |\$$$$$   |\$$$$$$  |$$ |  \$$$   |\$$$$$   |$$ |
//  \_______|\__| \______/  \______/  \_______|\__|   \____/  \______/ \__|
//
// This file is part of Clouditor Community Edition.

// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.5.1
// - protoc             (unknown)
// source: api/orchestrator/orchestrator.proto

package orchestrator

import (
	assessment "clouditor.io/clouditor/v2/api/assessment"
	runtime "clouditor.io/clouditor/v2/api/runtime"
	context "context"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
)

// 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 (
	Orchestrator_RegisterAssessmentTool_FullMethodName          = "/clouditor.orchestrator.v1.Orchestrator/RegisterAssessmentTool"
	Orchestrator_ListAssessmentTools_FullMethodName             = "/clouditor.orchestrator.v1.Orchestrator/ListAssessmentTools"
	Orchestrator_GetAssessmentTool_FullMethodName               = "/clouditor.orchestrator.v1.Orchestrator/GetAssessmentTool"
	Orchestrator_UpdateAssessmentTool_FullMethodName            = "/clouditor.orchestrator.v1.Orchestrator/UpdateAssessmentTool"
	Orchestrator_DeregisterAssessmentTool_FullMethodName        = "/clouditor.orchestrator.v1.Orchestrator/DeregisterAssessmentTool"
	Orchestrator_StoreAssessmentResult_FullMethodName           = "/clouditor.orchestrator.v1.Orchestrator/StoreAssessmentResult"
	Orchestrator_StoreAssessmentResults_FullMethodName          = "/clouditor.orchestrator.v1.Orchestrator/StoreAssessmentResults"
	Orchestrator_GetAssessmentResult_FullMethodName             = "/clouditor.orchestrator.v1.Orchestrator/GetAssessmentResult"
	Orchestrator_ListAssessmentResults_FullMethodName           = "/clouditor.orchestrator.v1.Orchestrator/ListAssessmentResults"
	Orchestrator_CreateMetric_FullMethodName                    = "/clouditor.orchestrator.v1.Orchestrator/CreateMetric"
	Orchestrator_UpdateMetric_FullMethodName                    = "/clouditor.orchestrator.v1.Orchestrator/UpdateMetric"
	Orchestrator_GetMetric_FullMethodName                       = "/clouditor.orchestrator.v1.Orchestrator/GetMetric"
	Orchestrator_ListMetrics_FullMethodName                     = "/clouditor.orchestrator.v1.Orchestrator/ListMetrics"
	Orchestrator_RemoveMetric_FullMethodName                    = "/clouditor.orchestrator.v1.Orchestrator/RemoveMetric"
	Orchestrator_CreateTargetOfEvaluation_FullMethodName        = "/clouditor.orchestrator.v1.Orchestrator/CreateTargetOfEvaluation"
	Orchestrator_UpdateTargetOfEvaluation_FullMethodName        = "/clouditor.orchestrator.v1.Orchestrator/UpdateTargetOfEvaluation"
	Orchestrator_GetTargetOfEvaluation_FullMethodName           = "/clouditor.orchestrator.v1.Orchestrator/GetTargetOfEvaluation"
	Orchestrator_ListTargetsOfEvaluation_FullMethodName         = "/clouditor.orchestrator.v1.Orchestrator/ListTargetsOfEvaluation"
	Orchestrator_RemoveTargetOfEvaluation_FullMethodName        = "/clouditor.orchestrator.v1.Orchestrator/RemoveTargetOfEvaluation"
	Orchestrator_GetTargetOfEvaluationStatistics_FullMethodName = "/clouditor.orchestrator.v1.Orchestrator/GetTargetOfEvaluationStatistics"
	Orchestrator_UpdateMetricConfiguration_FullMethodName       = "/clouditor.orchestrator.v1.Orchestrator/UpdateMetricConfiguration"
	Orchestrator_GetMetricConfiguration_FullMethodName          = "/clouditor.orchestrator.v1.Orchestrator/GetMetricConfiguration"
	Orchestrator_ListMetricConfigurations_FullMethodName        = "/clouditor.orchestrator.v1.Orchestrator/ListMetricConfigurations"
	Orchestrator_UpdateMetricImplementation_FullMethodName      = "/clouditor.orchestrator.v1.Orchestrator/UpdateMetricImplementation"
	Orchestrator_GetMetricImplementation_FullMethodName         = "/clouditor.orchestrator.v1.Orchestrator/GetMetricImplementation"
	Orchestrator_SubscribeMetricChangeEvents_FullMethodName     = "/clouditor.orchestrator.v1.Orchestrator/SubscribeMetricChangeEvents"
	Orchestrator_CreateCertificate_FullMethodName               = "/clouditor.orchestrator.v1.Orchestrator/CreateCertificate"
	Orchestrator_GetCertificate_FullMethodName                  = "/clouditor.orchestrator.v1.Orchestrator/GetCertificate"
	Orchestrator_ListCertificates_FullMethodName                = "/clouditor.orchestrator.v1.Orchestrator/ListCertificates"
	Orchestrator_ListPublicCertificates_FullMethodName          = "/clouditor.orchestrator.v1.Orchestrator/ListPublicCertificates"
	Orchestrator_UpdateCertificate_FullMethodName               = "/clouditor.orchestrator.v1.Orchestrator/UpdateCertificate"
	Orchestrator_RemoveCertificate_FullMethodName               = "/clouditor.orchestrator.v1.Orchestrator/RemoveCertificate"
	Orchestrator_CreateCatalog_FullMethodName                   = "/clouditor.orchestrator.v1.Orchestrator/CreateCatalog"
	Orchestrator_ListCatalogs_FullMethodName                    = "/clouditor.orchestrator.v1.Orchestrator/ListCatalogs"
	Orchestrator_GetCatalog_FullMethodName                      = "/clouditor.orchestrator.v1.Orchestrator/GetCatalog"
	Orchestrator_RemoveCatalog_FullMethodName                   = "/clouditor.orchestrator.v1.Orchestrator/RemoveCatalog"
	Orchestrator_UpdateCatalog_FullMethodName                   = "/clouditor.orchestrator.v1.Orchestrator/UpdateCatalog"
	Orchestrator_GetCategory_FullMethodName                     = "/clouditor.orchestrator.v1.Orchestrator/GetCategory"
	Orchestrator_ListControls_FullMethodName                    = "/clouditor.orchestrator.v1.Orchestrator/ListControls"
	Orchestrator_GetControl_FullMethodName                      = "/clouditor.orchestrator.v1.Orchestrator/GetControl"
	Orchestrator_CreateAuditScope_FullMethodName                = "/clouditor.orchestrator.v1.Orchestrator/CreateAuditScope"
	Orchestrator_GetAuditScope_FullMethodName                   = "/clouditor.orchestrator.v1.Orchestrator/GetAuditScope"
	Orchestrator_ListAuditScopes_FullMethodName                 = "/clouditor.orchestrator.v1.Orchestrator/ListAuditScopes"
	Orchestrator_UpdateAuditScope_FullMethodName                = "/clouditor.orchestrator.v1.Orchestrator/UpdateAuditScope"
	Orchestrator_RemoveAuditScope_FullMethodName                = "/clouditor.orchestrator.v1.Orchestrator/RemoveAuditScope"
	Orchestrator_GetRuntimeInfo_FullMethodName                  = "/clouditor.orchestrator.v1.Orchestrator/GetRuntimeInfo"
)

// OrchestratorClient is the client API for Orchestrator 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.
//
// Manages the orchestration of components within the Clouditor architecture
type OrchestratorClient interface {
	// Registers the passed assessment tool
	RegisterAssessmentTool(ctx context.Context, in *RegisterAssessmentToolRequest, opts ...grpc.CallOption) (*AssessmentTool, error)
	// Lists all assessment tools assessing evidences for the metric given by the
	// passed metric id
	ListAssessmentTools(ctx context.Context, in *ListAssessmentToolsRequest, opts ...grpc.CallOption) (*ListAssessmentToolsResponse, error)
	// Returns assessment tool given by the passed tool id
	GetAssessmentTool(ctx context.Context, in *GetAssessmentToolRequest, opts ...grpc.CallOption) (*AssessmentTool, error)
	// Updates the assessment tool given by the passed id
	UpdateAssessmentTool(ctx context.Context, in *UpdateAssessmentToolRequest, opts ...grpc.CallOption) (*AssessmentTool, error)
	// Remove assessment tool with passed id from the list of active assessment
	// tools
	DeregisterAssessmentTool(ctx context.Context, in *DeregisterAssessmentToolRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Stores the assessment result provided by an assessment tool
	StoreAssessmentResult(ctx context.Context, in *StoreAssessmentResultRequest, opts ...grpc.CallOption) (*StoreAssessmentResultResponse, error)
	// Stores stream of assessment results provided by an assessment tool and
	// returns a response stream. Part of the public API, not exposed as REST.
	StoreAssessmentResults(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[StoreAssessmentResultRequest, StoreAssessmentResultsResponse], error)
	// Get an assessment result by ID
	GetAssessmentResult(ctx context.Context, in *GetAssessmentResultRequest, opts ...grpc.CallOption) (*assessment.AssessmentResult, error)
	// List all assessment results. Part of the public API, also exposed as REST.
	ListAssessmentResults(ctx context.Context, in *ListAssessmentResultsRequest, opts ...grpc.CallOption) (*ListAssessmentResultsResponse, error)
	// Creates a new metric
	CreateMetric(ctx context.Context, in *CreateMetricRequest, opts ...grpc.CallOption) (*assessment.Metric, error)
	// Updates an existing metric
	UpdateMetric(ctx context.Context, in *UpdateMetricRequest, opts ...grpc.CallOption) (*assessment.Metric, error)
	// Returns the metric with the passed metric id
	GetMetric(ctx context.Context, in *GetMetricRequest, opts ...grpc.CallOption) (*assessment.Metric, error)
	// List all metrics provided by the metric catalog
	ListMetrics(ctx context.Context, in *ListMetricsRequest, opts ...grpc.CallOption) (*ListMetricsResponse, error)
	// Removes a new metric
	RemoveMetric(ctx context.Context, in *RemoveMetricRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Registers a new target of evaluation
	CreateTargetOfEvaluation(ctx context.Context, in *CreateTargetOfEvaluationRequest, opts ...grpc.CallOption) (*TargetOfEvaluation, error)
	// Registers a new target of evaluation
	UpdateTargetOfEvaluation(ctx context.Context, in *UpdateTargetOfEvaluationRequest, opts ...grpc.CallOption) (*TargetOfEvaluation, error)
	// Retrieves a target of evaluation
	GetTargetOfEvaluation(ctx context.Context, in *GetTargetOfEvaluationRequest, opts ...grpc.CallOption) (*TargetOfEvaluation, error)
	// Lists all targets of evaluations
	ListTargetsOfEvaluation(ctx context.Context, in *ListTargetsOfEvaluationRequest, opts ...grpc.CallOption) (*ListTargetsOfEvaluationResponse, error)
	// Removes a target of evaluation
	RemoveTargetOfEvaluation(ctx context.Context, in *RemoveTargetOfEvaluationRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Retrieves target of evaluation statistics
	GetTargetOfEvaluationStatistics(ctx context.Context, in *GetTargetOfEvaluationStatisticsRequest, opts ...grpc.CallOption) (*GetTargetOfEvaluationStatisticsResponse, error)
	// Updates a metric configuration (target value and operator) for a specific
	// target of evaluation and metric ID
	UpdateMetricConfiguration(ctx context.Context, in *UpdateMetricConfigurationRequest, opts ...grpc.CallOption) (*assessment.MetricConfiguration, error)
	// Retrieves a metric configuration (target value and operator) for a specific
	// target of evaluation and metric ID.
	GetMetricConfiguration(ctx context.Context, in *GetMetricConfigurationRequest, opts ...grpc.CallOption) (*assessment.MetricConfiguration, error)
	// Lists all metric configurations (target value and operator) for a
	// specific target of evaluation ID
	ListMetricConfigurations(ctx context.Context, in *ListMetricConfigurationRequest, opts ...grpc.CallOption) (*ListMetricConfigurationResponse, error)
	// Updates an existing metric implementation
	UpdateMetricImplementation(ctx context.Context, in *UpdateMetricImplementationRequest, opts ...grpc.CallOption) (*assessment.MetricImplementation, error)
	// Returns the metric implementation of the passed metric id
	GetMetricImplementation(ctx context.Context, in *GetMetricImplementationRequest, opts ...grpc.CallOption) (*assessment.MetricImplementation, error)
	SubscribeMetricChangeEvents(ctx context.Context, in *SubscribeMetricChangeEventRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[MetricChangeEvent], error)
	// Creates a new certificate
	CreateCertificate(ctx context.Context, in *CreateCertificateRequest, opts ...grpc.CallOption) (*Certificate, error)
	// Retrieves a certificate
	GetCertificate(ctx context.Context, in *GetCertificateRequest, opts ...grpc.CallOption) (*Certificate, error)
	// Lists all target certificates
	ListCertificates(ctx context.Context, in *ListCertificatesRequest, opts ...grpc.CallOption) (*ListCertificatesResponse, error)
	// Lists all target certificates without state history
	ListPublicCertificates(ctx context.Context, in *ListPublicCertificatesRequest, opts ...grpc.CallOption) (*ListPublicCertificatesResponse, error)
	// Updates an existing certificate
	UpdateCertificate(ctx context.Context, in *UpdateCertificateRequest, opts ...grpc.CallOption) (*Certificate, error)
	// Removes a certificate
	RemoveCertificate(ctx context.Context, in *RemoveCertificateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Creates a new security controls catalog
	CreateCatalog(ctx context.Context, in *CreateCatalogRequest, opts ...grpc.CallOption) (*Catalog, error)
	// Lists all security controls catalogs. Each catalog includes a list of its
	// categories but no additional sub-resources.
	ListCatalogs(ctx context.Context, in *ListCatalogsRequest, opts ...grpc.CallOption) (*ListCatalogsResponse, error)
	// Retrieves a specific catalog by it's ID. The catalog includes a list of all
	// of it categories as well as the first level of controls in each category.
	GetCatalog(ctx context.Context, in *GetCatalogRequest, opts ...grpc.CallOption) (*Catalog, error)
	// Removes a catalog
	RemoveCatalog(ctx context.Context, in *RemoveCatalogRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Updates an existing certificate
	UpdateCatalog(ctx context.Context, in *UpdateCatalogRequest, opts ...grpc.CallOption) (*Catalog, error)
	// Retrieves a category of a catalog specified by the catalog ID and the
	// category name. It includes the first level of controls within each
	// category.
	GetCategory(ctx context.Context, in *GetCategoryRequest, opts ...grpc.CallOption) (*Category, error)
	// If no additional parameters are specified, this lists all controls. If a
	// catalog ID and a category name is specified, then only controls containing
	// in this category are returned.
	ListControls(ctx context.Context, in *ListControlsRequest, opts ...grpc.CallOption) (*ListControlsResponse, error)
	// Retrieves a control specified by the catalog ID, the control's category
	// name and the control ID. If present, it also includes a list of
	// sub-controls if present or a list of metrics if no sub-controls but metrics
	// are present.
	GetControl(ctx context.Context, in *GetControlRequest, opts ...grpc.CallOption) (*Control, error)
	// Creates a new Audit Scope
	CreateAuditScope(ctx context.Context, in *CreateAuditScopeRequest, opts ...grpc.CallOption) (*AuditScope, error)
	// Retrieves an Audit Scope
	GetAuditScope(ctx context.Context, in *GetAuditScopeRequest, opts ...grpc.CallOption) (*AuditScope, error)
	// Lists all Audit Scopes
	ListAuditScopes(ctx context.Context, in *ListAuditScopesRequest, opts ...grpc.CallOption) (*ListAuditScopesResponse, error)
	// Updates an existing Audit Scope
	UpdateAuditScope(ctx context.Context, in *UpdateAuditScopeRequest, opts ...grpc.CallOption) (*AuditScope, error)
	// Removes an Audit Scope
	RemoveAuditScope(ctx context.Context, in *RemoveAuditScopeRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
	// Get Runtime Information
	GetRuntimeInfo(ctx context.Context, in *runtime.GetRuntimeInfoRequest, opts ...grpc.CallOption) (*runtime.Runtime, error)
}

type orchestratorClient struct {
	cc grpc.ClientConnInterface
}

func NewOrchestratorClient(cc grpc.ClientConnInterface) OrchestratorClient {
	return &orchestratorClient{cc}
}

func (c *orchestratorClient) RegisterAssessmentTool(ctx context.Context, in *RegisterAssessmentToolRequest, opts ...grpc.CallOption) (*AssessmentTool, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(AssessmentTool)
	err := c.cc.Invoke(ctx, Orchestrator_RegisterAssessmentTool_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) ListAssessmentTools(ctx context.Context, in *ListAssessmentToolsRequest, opts ...grpc.CallOption) (*ListAssessmentToolsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListAssessmentToolsResponse)
	err := c.cc.Invoke(ctx, Orchestrator_ListAssessmentTools_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) GetAssessmentTool(ctx context.Context, in *GetAssessmentToolRequest, opts ...grpc.CallOption) (*AssessmentTool, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(AssessmentTool)
	err := c.cc.Invoke(ctx, Orchestrator_GetAssessmentTool_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) UpdateAssessmentTool(ctx context.Context, in *UpdateAssessmentToolRequest, opts ...grpc.CallOption) (*AssessmentTool, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(AssessmentTool)
	err := c.cc.Invoke(ctx, Orchestrator_UpdateAssessmentTool_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) DeregisterAssessmentTool(ctx context.Context, in *DeregisterAssessmentToolRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, Orchestrator_DeregisterAssessmentTool_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) StoreAssessmentResult(ctx context.Context, in *StoreAssessmentResultRequest, opts ...grpc.CallOption) (*StoreAssessmentResultResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(StoreAssessmentResultResponse)
	err := c.cc.Invoke(ctx, Orchestrator_StoreAssessmentResult_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) StoreAssessmentResults(ctx context.Context, opts ...grpc.CallOption) (grpc.BidiStreamingClient[StoreAssessmentResultRequest, StoreAssessmentResultsResponse], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &Orchestrator_ServiceDesc.Streams[0], Orchestrator_StoreAssessmentResults_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[StoreAssessmentResultRequest, StoreAssessmentResultsResponse]{ClientStream: stream}
	return x, nil
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type Orchestrator_StoreAssessmentResultsClient = grpc.BidiStreamingClient[StoreAssessmentResultRequest, StoreAssessmentResultsResponse]

func (c *orchestratorClient) GetAssessmentResult(ctx context.Context, in *GetAssessmentResultRequest, opts ...grpc.CallOption) (*assessment.AssessmentResult, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(assessment.AssessmentResult)
	err := c.cc.Invoke(ctx, Orchestrator_GetAssessmentResult_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) ListAssessmentResults(ctx context.Context, in *ListAssessmentResultsRequest, opts ...grpc.CallOption) (*ListAssessmentResultsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListAssessmentResultsResponse)
	err := c.cc.Invoke(ctx, Orchestrator_ListAssessmentResults_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) CreateMetric(ctx context.Context, in *CreateMetricRequest, opts ...grpc.CallOption) (*assessment.Metric, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(assessment.Metric)
	err := c.cc.Invoke(ctx, Orchestrator_CreateMetric_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) UpdateMetric(ctx context.Context, in *UpdateMetricRequest, opts ...grpc.CallOption) (*assessment.Metric, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(assessment.Metric)
	err := c.cc.Invoke(ctx, Orchestrator_UpdateMetric_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) GetMetric(ctx context.Context, in *GetMetricRequest, opts ...grpc.CallOption) (*assessment.Metric, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(assessment.Metric)
	err := c.cc.Invoke(ctx, Orchestrator_GetMetric_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) ListMetrics(ctx context.Context, in *ListMetricsRequest, opts ...grpc.CallOption) (*ListMetricsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListMetricsResponse)
	err := c.cc.Invoke(ctx, Orchestrator_ListMetrics_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) RemoveMetric(ctx context.Context, in *RemoveMetricRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, Orchestrator_RemoveMetric_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) CreateTargetOfEvaluation(ctx context.Context, in *CreateTargetOfEvaluationRequest, opts ...grpc.CallOption) (*TargetOfEvaluation, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(TargetOfEvaluation)
	err := c.cc.Invoke(ctx, Orchestrator_CreateTargetOfEvaluation_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) UpdateTargetOfEvaluation(ctx context.Context, in *UpdateTargetOfEvaluationRequest, opts ...grpc.CallOption) (*TargetOfEvaluation, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(TargetOfEvaluation)
	err := c.cc.Invoke(ctx, Orchestrator_UpdateTargetOfEvaluation_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) GetTargetOfEvaluation(ctx context.Context, in *GetTargetOfEvaluationRequest, opts ...grpc.CallOption) (*TargetOfEvaluation, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(TargetOfEvaluation)
	err := c.cc.Invoke(ctx, Orchestrator_GetTargetOfEvaluation_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) ListTargetsOfEvaluation(ctx context.Context, in *ListTargetsOfEvaluationRequest, opts ...grpc.CallOption) (*ListTargetsOfEvaluationResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListTargetsOfEvaluationResponse)
	err := c.cc.Invoke(ctx, Orchestrator_ListTargetsOfEvaluation_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) RemoveTargetOfEvaluation(ctx context.Context, in *RemoveTargetOfEvaluationRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, Orchestrator_RemoveTargetOfEvaluation_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) GetTargetOfEvaluationStatistics(ctx context.Context, in *GetTargetOfEvaluationStatisticsRequest, opts ...grpc.CallOption) (*GetTargetOfEvaluationStatisticsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetTargetOfEvaluationStatisticsResponse)
	err := c.cc.Invoke(ctx, Orchestrator_GetTargetOfEvaluationStatistics_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) UpdateMetricConfiguration(ctx context.Context, in *UpdateMetricConfigurationRequest, opts ...grpc.CallOption) (*assessment.MetricConfiguration, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(assessment.MetricConfiguration)
	err := c.cc.Invoke(ctx, Orchestrator_UpdateMetricConfiguration_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) GetMetricConfiguration(ctx context.Context, in *GetMetricConfigurationRequest, opts ...grpc.CallOption) (*assessment.MetricConfiguration, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(assessment.MetricConfiguration)
	err := c.cc.Invoke(ctx, Orchestrator_GetMetricConfiguration_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) ListMetricConfigurations(ctx context.Context, in *ListMetricConfigurationRequest, opts ...grpc.CallOption) (*ListMetricConfigurationResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListMetricConfigurationResponse)
	err := c.cc.Invoke(ctx, Orchestrator_ListMetricConfigurations_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) UpdateMetricImplementation(ctx context.Context, in *UpdateMetricImplementationRequest, opts ...grpc.CallOption) (*assessment.MetricImplementation, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(assessment.MetricImplementation)
	err := c.cc.Invoke(ctx, Orchestrator_UpdateMetricImplementation_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) GetMetricImplementation(ctx context.Context, in *GetMetricImplementationRequest, opts ...grpc.CallOption) (*assessment.MetricImplementation, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(assessment.MetricImplementation)
	err := c.cc.Invoke(ctx, Orchestrator_GetMetricImplementation_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) SubscribeMetricChangeEvents(ctx context.Context, in *SubscribeMetricChangeEventRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[MetricChangeEvent], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &Orchestrator_ServiceDesc.Streams[1], Orchestrator_SubscribeMetricChangeEvents_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[SubscribeMetricChangeEventRequest, MetricChangeEvent]{ClientStream: stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type Orchestrator_SubscribeMetricChangeEventsClient = grpc.ServerStreamingClient[MetricChangeEvent]

func (c *orchestratorClient) CreateCertificate(ctx context.Context, in *CreateCertificateRequest, opts ...grpc.CallOption) (*Certificate, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Certificate)
	err := c.cc.Invoke(ctx, Orchestrator_CreateCertificate_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) GetCertificate(ctx context.Context, in *GetCertificateRequest, opts ...grpc.CallOption) (*Certificate, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Certificate)
	err := c.cc.Invoke(ctx, Orchestrator_GetCertificate_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) ListCertificates(ctx context.Context, in *ListCertificatesRequest, opts ...grpc.CallOption) (*ListCertificatesResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListCertificatesResponse)
	err := c.cc.Invoke(ctx, Orchestrator_ListCertificates_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) ListPublicCertificates(ctx context.Context, in *ListPublicCertificatesRequest, opts ...grpc.CallOption) (*ListPublicCertificatesResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListPublicCertificatesResponse)
	err := c.cc.Invoke(ctx, Orchestrator_ListPublicCertificates_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) UpdateCertificate(ctx context.Context, in *UpdateCertificateRequest, opts ...grpc.CallOption) (*Certificate, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Certificate)
	err := c.cc.Invoke(ctx, Orchestrator_UpdateCertificate_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) RemoveCertificate(ctx context.Context, in *RemoveCertificateRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, Orchestrator_RemoveCertificate_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) CreateCatalog(ctx context.Context, in *CreateCatalogRequest, opts ...grpc.CallOption) (*Catalog, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Catalog)
	err := c.cc.Invoke(ctx, Orchestrator_CreateCatalog_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) ListCatalogs(ctx context.Context, in *ListCatalogsRequest, opts ...grpc.CallOption) (*ListCatalogsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListCatalogsResponse)
	err := c.cc.Invoke(ctx, Orchestrator_ListCatalogs_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) GetCatalog(ctx context.Context, in *GetCatalogRequest, opts ...grpc.CallOption) (*Catalog, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Catalog)
	err := c.cc.Invoke(ctx, Orchestrator_GetCatalog_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) RemoveCatalog(ctx context.Context, in *RemoveCatalogRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, Orchestrator_RemoveCatalog_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) UpdateCatalog(ctx context.Context, in *UpdateCatalogRequest, opts ...grpc.CallOption) (*Catalog, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Catalog)
	err := c.cc.Invoke(ctx, Orchestrator_UpdateCatalog_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) GetCategory(ctx context.Context, in *GetCategoryRequest, opts ...grpc.CallOption) (*Category, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Category)
	err := c.cc.Invoke(ctx, Orchestrator_GetCategory_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) ListControls(ctx context.Context, in *ListControlsRequest, opts ...grpc.CallOption) (*ListControlsResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListControlsResponse)
	err := c.cc.Invoke(ctx, Orchestrator_ListControls_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) GetControl(ctx context.Context, in *GetControlRequest, opts ...grpc.CallOption) (*Control, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Control)
	err := c.cc.Invoke(ctx, Orchestrator_GetControl_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) CreateAuditScope(ctx context.Context, in *CreateAuditScopeRequest, opts ...grpc.CallOption) (*AuditScope, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(AuditScope)
	err := c.cc.Invoke(ctx, Orchestrator_CreateAuditScope_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) GetAuditScope(ctx context.Context, in *GetAuditScopeRequest, opts ...grpc.CallOption) (*AuditScope, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(AuditScope)
	err := c.cc.Invoke(ctx, Orchestrator_GetAuditScope_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) ListAuditScopes(ctx context.Context, in *ListAuditScopesRequest, opts ...grpc.CallOption) (*ListAuditScopesResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListAuditScopesResponse)
	err := c.cc.Invoke(ctx, Orchestrator_ListAuditScopes_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) UpdateAuditScope(ctx context.Context, in *UpdateAuditScopeRequest, opts ...grpc.CallOption) (*AuditScope, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(AuditScope)
	err := c.cc.Invoke(ctx, Orchestrator_UpdateAuditScope_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) RemoveAuditScope(ctx context.Context, in *RemoveAuditScopeRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(emptypb.Empty)
	err := c.cc.Invoke(ctx, Orchestrator_RemoveAuditScope_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *orchestratorClient) GetRuntimeInfo(ctx context.Context, in *runtime.GetRuntimeInfoRequest, opts ...grpc.CallOption) (*runtime.Runtime, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(runtime.Runtime)
	err := c.cc.Invoke(ctx, Orchestrator_GetRuntimeInfo_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// OrchestratorServer is the server API for Orchestrator service.
// All implementations must embed UnimplementedOrchestratorServer
// for forward compatibility.
//
// Manages the orchestration of components within the Clouditor architecture
type OrchestratorServer interface {
	// Registers the passed assessment tool
	RegisterAssessmentTool(context.Context, *RegisterAssessmentToolRequest) (*AssessmentTool, error)
	// Lists all assessment tools assessing evidences for the metric given by the
	// passed metric id
	ListAssessmentTools(context.Context, *ListAssessmentToolsRequest) (*ListAssessmentToolsResponse, error)
	// Returns assessment tool given by the passed tool id
	GetAssessmentTool(context.Context, *GetAssessmentToolRequest) (*AssessmentTool, error)
	// Updates the assessment tool given by the passed id
	UpdateAssessmentTool(context.Context, *UpdateAssessmentToolRequest) (*AssessmentTool, error)
	// Remove assessment tool with passed id from the list of active assessment
	// tools
	DeregisterAssessmentTool(context.Context, *DeregisterAssessmentToolRequest) (*emptypb.Empty, error)
	// Stores the assessment result provided by an assessment tool
	StoreAssessmentResult(context.Context, *StoreAssessmentResultRequest) (*StoreAssessmentResultResponse, error)
	// Stores stream of assessment results provided by an assessment tool and
	// returns a response stream. Part of the public API, not exposed as REST.
	StoreAssessmentResults(grpc.BidiStreamingServer[StoreAssessmentResultRequest, StoreAssessmentResultsResponse]) error
	// Get an assessment result by ID
	GetAssessmentResult(context.Context, *GetAssessmentResultRequest) (*assessment.AssessmentResult, error)
	// List all assessment results. Part of the public API, also exposed as REST.
	ListAssessmentResults(context.Context, *ListAssessmentResultsRequest) (*ListAssessmentResultsResponse, error)
	// Creates a new metric
	CreateMetric(context.Context, *CreateMetricRequest) (*assessment.Metric, error)
	// Updates an existing metric
	UpdateMetric(context.Context, *UpdateMetricRequest) (*assessment.Metric, error)
	// Returns the metric with the passed metric id
	GetMetric(context.Context, *GetMetricRequest) (*assessment.Metric, error)
	// List all metrics provided by the metric catalog
	ListMetrics(context.Context, *ListMetricsRequest) (*ListMetricsResponse, error)
	// Removes a new metric
	RemoveMetric(context.Context, *RemoveMetricRequest) (*emptypb.Empty, error)
	// Registers a new target of evaluation
	CreateTargetOfEvaluation(context.Context, *CreateTargetOfEvaluationRequest) (*TargetOfEvaluation, error)
	// Registers a new target of evaluation
	UpdateTargetOfEvaluation(context.Context, *UpdateTargetOfEvaluationRequest) (*TargetOfEvaluation, error)
	// Retrieves a target of evaluation
	GetTargetOfEvaluation(context.Context, *GetTargetOfEvaluationRequest) (*TargetOfEvaluation, error)
	// Lists all targets of evaluations
	ListTargetsOfEvaluation(context.Context, *ListTargetsOfEvaluationRequest) (*ListTargetsOfEvaluationResponse, error)
	// Removes a target of evaluation
	RemoveTargetOfEvaluation(context.Context, *RemoveTargetOfEvaluationRequest) (*emptypb.Empty, error)
	// Retrieves target of evaluation statistics
	GetTargetOfEvaluationStatistics(context.Context, *GetTargetOfEvaluationStatisticsRequest) (*GetTargetOfEvaluationStatisticsResponse, error)
	// Updates a metric configuration (target value and operator) for a specific
	// target of evaluation and metric ID
	UpdateMetricConfiguration(context.Context, *UpdateMetricConfigurationRequest) (*assessment.MetricConfiguration, error)
	// Retrieves a metric configuration (target value and operator) for a specific
	// target of evaluation and metric ID.
	GetMetricConfiguration(context.Context, *GetMetricConfigurationRequest) (*assessment.MetricConfiguration, error)
	// Lists all metric configurations (target value and operator) for a
	// specific target of evaluation ID
	ListMetricConfigurations(context.Context, *ListMetricConfigurationRequest) (*ListMetricConfigurationResponse, error)
	// Updates an existing metric implementation
	UpdateMetricImplementation(context.Context, *UpdateMetricImplementationRequest) (*assessment.MetricImplementation, error)
	// Returns the metric implementation of the passed metric id
	GetMetricImplementation(context.Context, *GetMetricImplementationRequest) (*assessment.MetricImplementation, error)
	SubscribeMetricChangeEvents(*SubscribeMetricChangeEventRequest, grpc.ServerStreamingServer[MetricChangeEvent]) error
	// Creates a new certificate
	CreateCertificate(context.Context, *CreateCertificateRequest) (*Certificate, error)
	// Retrieves a certificate
	GetCertificate(context.Context, *GetCertificateRequest) (*Certificate, error)
	// Lists all target certificates
	ListCertificates(context.Context, *ListCertificatesRequest) (*ListCertificatesResponse, error)
	// Lists all target certificates without state history
	ListPublicCertificates(context.Context, *ListPublicCertificatesRequest) (*ListPublicCertificatesResponse, error)
	// Updates an existing certificate
	UpdateCertificate(context.Context, *UpdateCertificateRequest) (*Certificate, error)
	// Removes a certificate
	RemoveCertificate(context.Context, *RemoveCertificateRequest) (*emptypb.Empty, error)
	// Creates a new security controls catalog
	CreateCatalog(context.Context, *CreateCatalogRequest) (*Catalog, error)
	// Lists all security controls catalogs. Each catalog includes a list of its
	// categories but no additional sub-resources.
	ListCatalogs(context.Context, *ListCatalogsRequest) (*ListCatalogsResponse, error)
	// Retrieves a specific catalog by it's ID. The catalog includes a list of all
	// of it categories as well as the first level of controls in each category.
	GetCatalog(context.Context, *GetCatalogRequest) (*Catalog, error)
	// Removes a catalog
	RemoveCatalog(context.Context, *RemoveCatalogRequest) (*emptypb.Empty, error)
	// Updates an existing certificate
	UpdateCatalog(context.Context, *UpdateCatalogRequest) (*Catalog, error)
	// Retrieves a category of a catalog specified by the catalog ID and the
	// category name. It includes the first level of controls within each
	// category.
	GetCategory(context.Context, *GetCategoryRequest) (*Category, error)
	// If no additional parameters are specified, this lists all controls. If a
	// catalog ID and a category name is specified, then only controls containing
	// in this category are returned.
	ListControls(context.Context, *ListControlsRequest) (*ListControlsResponse, error)
	// Retrieves a control specified by the catalog ID, the control's category
	// name and the control ID. If present, it also includes a list of
	// sub-controls if present or a list of metrics if no sub-controls but metrics
	// are present.
	GetControl(context.Context, *GetControlRequest) (*Control, error)
	// Creates a new Audit Scope
	CreateAuditScope(context.Context, *CreateAuditScopeRequest) (*AuditScope, error)
	// Retrieves an Audit Scope
	GetAuditScope(context.Context, *GetAuditScopeRequest) (*AuditScope, error)
	// Lists all Audit Scopes
	ListAuditScopes(context.Context, *ListAuditScopesRequest) (*ListAuditScopesResponse, error)
	// Updates an existing Audit Scope
	UpdateAuditScope(context.Context, *UpdateAuditScopeRequest) (*AuditScope, error)
	// Removes an Audit Scope
	RemoveAuditScope(context.Context, *RemoveAuditScopeRequest) (*emptypb.Empty, error)
	// Get Runtime Information
	GetRuntimeInfo(context.Context, *runtime.GetRuntimeInfoRequest) (*runtime.Runtime, error)
	mustEmbedUnimplementedOrchestratorServer()
}

// UnimplementedOrchestratorServer 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 UnimplementedOrchestratorServer struct{}

func (UnimplementedOrchestratorServer) RegisterAssessmentTool(context.Context, *RegisterAssessmentToolRequest) (*AssessmentTool, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RegisterAssessmentTool not implemented")
}
func (UnimplementedOrchestratorServer) ListAssessmentTools(context.Context, *ListAssessmentToolsRequest) (*ListAssessmentToolsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListAssessmentTools not implemented")
}
func (UnimplementedOrchestratorServer) GetAssessmentTool(context.Context, *GetAssessmentToolRequest) (*AssessmentTool, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAssessmentTool not implemented")
}
func (UnimplementedOrchestratorServer) UpdateAssessmentTool(context.Context, *UpdateAssessmentToolRequest) (*AssessmentTool, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateAssessmentTool not implemented")
}
func (UnimplementedOrchestratorServer) DeregisterAssessmentTool(context.Context, *DeregisterAssessmentToolRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeregisterAssessmentTool not implemented")
}
func (UnimplementedOrchestratorServer) StoreAssessmentResult(context.Context, *StoreAssessmentResultRequest) (*StoreAssessmentResultResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method StoreAssessmentResult not implemented")
}
func (UnimplementedOrchestratorServer) StoreAssessmentResults(grpc.BidiStreamingServer[StoreAssessmentResultRequest, StoreAssessmentResultsResponse]) error {
	return status.Errorf(codes.Unimplemented, "method StoreAssessmentResults not implemented")
}
func (UnimplementedOrchestratorServer) GetAssessmentResult(context.Context, *GetAssessmentResultRequest) (*assessment.AssessmentResult, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAssessmentResult not implemented")
}
func (UnimplementedOrchestratorServer) ListAssessmentResults(context.Context, *ListAssessmentResultsRequest) (*ListAssessmentResultsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListAssessmentResults not implemented")
}
func (UnimplementedOrchestratorServer) CreateMetric(context.Context, *CreateMetricRequest) (*assessment.Metric, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateMetric not implemented")
}
func (UnimplementedOrchestratorServer) UpdateMetric(context.Context, *UpdateMetricRequest) (*assessment.Metric, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateMetric not implemented")
}
func (UnimplementedOrchestratorServer) GetMetric(context.Context, *GetMetricRequest) (*assessment.Metric, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetMetric not implemented")
}
func (UnimplementedOrchestratorServer) ListMetrics(context.Context, *ListMetricsRequest) (*ListMetricsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListMetrics not implemented")
}
func (UnimplementedOrchestratorServer) RemoveMetric(context.Context, *RemoveMetricRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RemoveMetric not implemented")
}
func (UnimplementedOrchestratorServer) CreateTargetOfEvaluation(context.Context, *CreateTargetOfEvaluationRequest) (*TargetOfEvaluation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateTargetOfEvaluation not implemented")
}
func (UnimplementedOrchestratorServer) UpdateTargetOfEvaluation(context.Context, *UpdateTargetOfEvaluationRequest) (*TargetOfEvaluation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateTargetOfEvaluation not implemented")
}
func (UnimplementedOrchestratorServer) GetTargetOfEvaluation(context.Context, *GetTargetOfEvaluationRequest) (*TargetOfEvaluation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetTargetOfEvaluation not implemented")
}
func (UnimplementedOrchestratorServer) ListTargetsOfEvaluation(context.Context, *ListTargetsOfEvaluationRequest) (*ListTargetsOfEvaluationResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListTargetsOfEvaluation not implemented")
}
func (UnimplementedOrchestratorServer) RemoveTargetOfEvaluation(context.Context, *RemoveTargetOfEvaluationRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RemoveTargetOfEvaluation not implemented")
}
func (UnimplementedOrchestratorServer) GetTargetOfEvaluationStatistics(context.Context, *GetTargetOfEvaluationStatisticsRequest) (*GetTargetOfEvaluationStatisticsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetTargetOfEvaluationStatistics not implemented")
}
func (UnimplementedOrchestratorServer) UpdateMetricConfiguration(context.Context, *UpdateMetricConfigurationRequest) (*assessment.MetricConfiguration, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateMetricConfiguration not implemented")
}
func (UnimplementedOrchestratorServer) GetMetricConfiguration(context.Context, *GetMetricConfigurationRequest) (*assessment.MetricConfiguration, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetMetricConfiguration not implemented")
}
func (UnimplementedOrchestratorServer) ListMetricConfigurations(context.Context, *ListMetricConfigurationRequest) (*ListMetricConfigurationResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListMetricConfigurations not implemented")
}
func (UnimplementedOrchestratorServer) UpdateMetricImplementation(context.Context, *UpdateMetricImplementationRequest) (*assessment.MetricImplementation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateMetricImplementation not implemented")
}
func (UnimplementedOrchestratorServer) GetMetricImplementation(context.Context, *GetMetricImplementationRequest) (*assessment.MetricImplementation, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetMetricImplementation not implemented")
}
func (UnimplementedOrchestratorServer) SubscribeMetricChangeEvents(*SubscribeMetricChangeEventRequest, grpc.ServerStreamingServer[MetricChangeEvent]) error {
	return status.Errorf(codes.Unimplemented, "method SubscribeMetricChangeEvents not implemented")
}
func (UnimplementedOrchestratorServer) CreateCertificate(context.Context, *CreateCertificateRequest) (*Certificate, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateCertificate not implemented")
}
func (UnimplementedOrchestratorServer) GetCertificate(context.Context, *GetCertificateRequest) (*Certificate, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCertificate not implemented")
}
func (UnimplementedOrchestratorServer) ListCertificates(context.Context, *ListCertificatesRequest) (*ListCertificatesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListCertificates not implemented")
}
func (UnimplementedOrchestratorServer) ListPublicCertificates(context.Context, *ListPublicCertificatesRequest) (*ListPublicCertificatesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListPublicCertificates not implemented")
}
func (UnimplementedOrchestratorServer) UpdateCertificate(context.Context, *UpdateCertificateRequest) (*Certificate, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateCertificate not implemented")
}
func (UnimplementedOrchestratorServer) RemoveCertificate(context.Context, *RemoveCertificateRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RemoveCertificate not implemented")
}
func (UnimplementedOrchestratorServer) CreateCatalog(context.Context, *CreateCatalogRequest) (*Catalog, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateCatalog not implemented")
}
func (UnimplementedOrchestratorServer) ListCatalogs(context.Context, *ListCatalogsRequest) (*ListCatalogsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListCatalogs not implemented")
}
func (UnimplementedOrchestratorServer) GetCatalog(context.Context, *GetCatalogRequest) (*Catalog, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCatalog not implemented")
}
func (UnimplementedOrchestratorServer) RemoveCatalog(context.Context, *RemoveCatalogRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RemoveCatalog not implemented")
}
func (UnimplementedOrchestratorServer) UpdateCatalog(context.Context, *UpdateCatalogRequest) (*Catalog, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateCatalog not implemented")
}
func (UnimplementedOrchestratorServer) GetCategory(context.Context, *GetCategoryRequest) (*Category, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetCategory not implemented")
}
func (UnimplementedOrchestratorServer) ListControls(context.Context, *ListControlsRequest) (*ListControlsResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListControls not implemented")
}
func (UnimplementedOrchestratorServer) GetControl(context.Context, *GetControlRequest) (*Control, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetControl not implemented")
}
func (UnimplementedOrchestratorServer) CreateAuditScope(context.Context, *CreateAuditScopeRequest) (*AuditScope, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateAuditScope not implemented")
}
func (UnimplementedOrchestratorServer) GetAuditScope(context.Context, *GetAuditScopeRequest) (*AuditScope, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAuditScope not implemented")
}
func (UnimplementedOrchestratorServer) ListAuditScopes(context.Context, *ListAuditScopesRequest) (*ListAuditScopesResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListAuditScopes not implemented")
}
func (UnimplementedOrchestratorServer) UpdateAuditScope(context.Context, *UpdateAuditScopeRequest) (*AuditScope, error) {
	return nil, status.Errorf(codes.Unimplemented, "method UpdateAuditScope not implemented")
}
func (UnimplementedOrchestratorServer) RemoveAuditScope(context.Context, *RemoveAuditScopeRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method RemoveAuditScope not implemented")
}
func (UnimplementedOrchestratorServer) GetRuntimeInfo(context.Context, *runtime.GetRuntimeInfoRequest) (*runtime.Runtime, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetRuntimeInfo not implemented")
}
func (UnimplementedOrchestratorServer) mustEmbedUnimplementedOrchestratorServer() {}
func (UnimplementedOrchestratorServer) testEmbeddedByValue()                      {}

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

func RegisterOrchestratorServer(s grpc.ServiceRegistrar, srv OrchestratorServer) {
	// If the following call pancis, it indicates UnimplementedOrchestratorServer 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(&Orchestrator_ServiceDesc, srv)
}

func _Orchestrator_RegisterAssessmentTool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RegisterAssessmentToolRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).RegisterAssessmentTool(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_RegisterAssessmentTool_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).RegisterAssessmentTool(ctx, req.(*RegisterAssessmentToolRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_ListAssessmentTools_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListAssessmentToolsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).ListAssessmentTools(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_ListAssessmentTools_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).ListAssessmentTools(ctx, req.(*ListAssessmentToolsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_GetAssessmentTool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetAssessmentToolRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).GetAssessmentTool(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_GetAssessmentTool_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).GetAssessmentTool(ctx, req.(*GetAssessmentToolRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_UpdateAssessmentTool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateAssessmentToolRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).UpdateAssessmentTool(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_UpdateAssessmentTool_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).UpdateAssessmentTool(ctx, req.(*UpdateAssessmentToolRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_DeregisterAssessmentTool_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeregisterAssessmentToolRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).DeregisterAssessmentTool(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_DeregisterAssessmentTool_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).DeregisterAssessmentTool(ctx, req.(*DeregisterAssessmentToolRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_StoreAssessmentResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(StoreAssessmentResultRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).StoreAssessmentResult(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_StoreAssessmentResult_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).StoreAssessmentResult(ctx, req.(*StoreAssessmentResultRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_StoreAssessmentResults_Handler(srv interface{}, stream grpc.ServerStream) error {
	return srv.(OrchestratorServer).StoreAssessmentResults(&grpc.GenericServerStream[StoreAssessmentResultRequest, StoreAssessmentResultsResponse]{ServerStream: stream})
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type Orchestrator_StoreAssessmentResultsServer = grpc.BidiStreamingServer[StoreAssessmentResultRequest, StoreAssessmentResultsResponse]

func _Orchestrator_GetAssessmentResult_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetAssessmentResultRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).GetAssessmentResult(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_GetAssessmentResult_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).GetAssessmentResult(ctx, req.(*GetAssessmentResultRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_ListAssessmentResults_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListAssessmentResultsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).ListAssessmentResults(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_ListAssessmentResults_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).ListAssessmentResults(ctx, req.(*ListAssessmentResultsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_CreateMetric_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateMetricRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).CreateMetric(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_CreateMetric_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).CreateMetric(ctx, req.(*CreateMetricRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_UpdateMetric_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateMetricRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).UpdateMetric(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_UpdateMetric_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).UpdateMetric(ctx, req.(*UpdateMetricRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_GetMetric_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetMetricRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).GetMetric(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_GetMetric_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).GetMetric(ctx, req.(*GetMetricRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_ListMetrics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListMetricsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).ListMetrics(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_ListMetrics_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).ListMetrics(ctx, req.(*ListMetricsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_RemoveMetric_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RemoveMetricRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).RemoveMetric(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_RemoveMetric_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).RemoveMetric(ctx, req.(*RemoveMetricRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_CreateTargetOfEvaluation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateTargetOfEvaluationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).CreateTargetOfEvaluation(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_CreateTargetOfEvaluation_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).CreateTargetOfEvaluation(ctx, req.(*CreateTargetOfEvaluationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_UpdateTargetOfEvaluation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateTargetOfEvaluationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).UpdateTargetOfEvaluation(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_UpdateTargetOfEvaluation_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).UpdateTargetOfEvaluation(ctx, req.(*UpdateTargetOfEvaluationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_GetTargetOfEvaluation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetTargetOfEvaluationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).GetTargetOfEvaluation(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_GetTargetOfEvaluation_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).GetTargetOfEvaluation(ctx, req.(*GetTargetOfEvaluationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_ListTargetsOfEvaluation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListTargetsOfEvaluationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).ListTargetsOfEvaluation(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_ListTargetsOfEvaluation_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).ListTargetsOfEvaluation(ctx, req.(*ListTargetsOfEvaluationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_RemoveTargetOfEvaluation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RemoveTargetOfEvaluationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).RemoveTargetOfEvaluation(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_RemoveTargetOfEvaluation_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).RemoveTargetOfEvaluation(ctx, req.(*RemoveTargetOfEvaluationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_GetTargetOfEvaluationStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetTargetOfEvaluationStatisticsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).GetTargetOfEvaluationStatistics(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_GetTargetOfEvaluationStatistics_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).GetTargetOfEvaluationStatistics(ctx, req.(*GetTargetOfEvaluationStatisticsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_UpdateMetricConfiguration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateMetricConfigurationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).UpdateMetricConfiguration(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_UpdateMetricConfiguration_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).UpdateMetricConfiguration(ctx, req.(*UpdateMetricConfigurationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_GetMetricConfiguration_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetMetricConfigurationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).GetMetricConfiguration(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_GetMetricConfiguration_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).GetMetricConfiguration(ctx, req.(*GetMetricConfigurationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_ListMetricConfigurations_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListMetricConfigurationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).ListMetricConfigurations(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_ListMetricConfigurations_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).ListMetricConfigurations(ctx, req.(*ListMetricConfigurationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_UpdateMetricImplementation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateMetricImplementationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).UpdateMetricImplementation(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_UpdateMetricImplementation_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).UpdateMetricImplementation(ctx, req.(*UpdateMetricImplementationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_GetMetricImplementation_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetMetricImplementationRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).GetMetricImplementation(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_GetMetricImplementation_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).GetMetricImplementation(ctx, req.(*GetMetricImplementationRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_SubscribeMetricChangeEvents_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(SubscribeMetricChangeEventRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(OrchestratorServer).SubscribeMetricChangeEvents(m, &grpc.GenericServerStream[SubscribeMetricChangeEventRequest, MetricChangeEvent]{ServerStream: stream})
}

// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name.
type Orchestrator_SubscribeMetricChangeEventsServer = grpc.ServerStreamingServer[MetricChangeEvent]

func _Orchestrator_CreateCertificate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateCertificateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).CreateCertificate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_CreateCertificate_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).CreateCertificate(ctx, req.(*CreateCertificateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_GetCertificate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetCertificateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).GetCertificate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_GetCertificate_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).GetCertificate(ctx, req.(*GetCertificateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_ListCertificates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListCertificatesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).ListCertificates(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_ListCertificates_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).ListCertificates(ctx, req.(*ListCertificatesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_ListPublicCertificates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListPublicCertificatesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).ListPublicCertificates(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_ListPublicCertificates_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).ListPublicCertificates(ctx, req.(*ListPublicCertificatesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_UpdateCertificate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateCertificateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).UpdateCertificate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_UpdateCertificate_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).UpdateCertificate(ctx, req.(*UpdateCertificateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_RemoveCertificate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RemoveCertificateRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).RemoveCertificate(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_RemoveCertificate_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).RemoveCertificate(ctx, req.(*RemoveCertificateRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_CreateCatalog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateCatalogRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).CreateCatalog(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_CreateCatalog_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).CreateCatalog(ctx, req.(*CreateCatalogRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_ListCatalogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListCatalogsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).ListCatalogs(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_ListCatalogs_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).ListCatalogs(ctx, req.(*ListCatalogsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_GetCatalog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetCatalogRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).GetCatalog(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_GetCatalog_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).GetCatalog(ctx, req.(*GetCatalogRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_RemoveCatalog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RemoveCatalogRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).RemoveCatalog(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_RemoveCatalog_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).RemoveCatalog(ctx, req.(*RemoveCatalogRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_UpdateCatalog_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateCatalogRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).UpdateCatalog(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_UpdateCatalog_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).UpdateCatalog(ctx, req.(*UpdateCatalogRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_GetCategory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetCategoryRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).GetCategory(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_GetCategory_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).GetCategory(ctx, req.(*GetCategoryRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_ListControls_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListControlsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).ListControls(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_ListControls_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).ListControls(ctx, req.(*ListControlsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_GetControl_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetControlRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).GetControl(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_GetControl_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).GetControl(ctx, req.(*GetControlRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_CreateAuditScope_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateAuditScopeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).CreateAuditScope(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_CreateAuditScope_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).CreateAuditScope(ctx, req.(*CreateAuditScopeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_GetAuditScope_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetAuditScopeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).GetAuditScope(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_GetAuditScope_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).GetAuditScope(ctx, req.(*GetAuditScopeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_ListAuditScopes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListAuditScopesRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).ListAuditScopes(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_ListAuditScopes_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).ListAuditScopes(ctx, req.(*ListAuditScopesRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_UpdateAuditScope_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(UpdateAuditScopeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).UpdateAuditScope(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_UpdateAuditScope_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).UpdateAuditScope(ctx, req.(*UpdateAuditScopeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_RemoveAuditScope_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(RemoveAuditScopeRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).RemoveAuditScope(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_RemoveAuditScope_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).RemoveAuditScope(ctx, req.(*RemoveAuditScopeRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Orchestrator_GetRuntimeInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(runtime.GetRuntimeInfoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(OrchestratorServer).GetRuntimeInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: Orchestrator_GetRuntimeInfo_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(OrchestratorServer).GetRuntimeInfo(ctx, req.(*runtime.GetRuntimeInfoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

// Orchestrator_ServiceDesc is the grpc.ServiceDesc for Orchestrator service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var Orchestrator_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "clouditor.orchestrator.v1.Orchestrator",
	HandlerType: (*OrchestratorServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "RegisterAssessmentTool",
			Handler:    _Orchestrator_RegisterAssessmentTool_Handler,
		},
		{
			MethodName: "ListAssessmentTools",
			Handler:    _Orchestrator_ListAssessmentTools_Handler,
		},
		{
			MethodName: "GetAssessmentTool",
			Handler:    _Orchestrator_GetAssessmentTool_Handler,
		},
		{
			MethodName: "UpdateAssessmentTool",
			Handler:    _Orchestrator_UpdateAssessmentTool_Handler,
		},
		{
			MethodName: "DeregisterAssessmentTool",
			Handler:    _Orchestrator_DeregisterAssessmentTool_Handler,
		},
		{
			MethodName: "StoreAssessmentResult",
			Handler:    _Orchestrator_StoreAssessmentResult_Handler,
		},
		{
			MethodName: "GetAssessmentResult",
			Handler:    _Orchestrator_GetAssessmentResult_Handler,
		},
		{
			MethodName: "ListAssessmentResults",
			Handler:    _Orchestrator_ListAssessmentResults_Handler,
		},
		{
			MethodName: "CreateMetric",
			Handler:    _Orchestrator_CreateMetric_Handler,
		},
		{
			MethodName: "UpdateMetric",
			Handler:    _Orchestrator_UpdateMetric_Handler,
		},
		{
			MethodName: "GetMetric",
			Handler:    _Orchestrator_GetMetric_Handler,
		},
		{
			MethodName: "ListMetrics",
			Handler:    _Orchestrator_ListMetrics_Handler,
		},
		{
			MethodName: "RemoveMetric",
			Handler:    _Orchestrator_RemoveMetric_Handler,
		},
		{
			MethodName: "CreateTargetOfEvaluation",
			Handler:    _Orchestrator_CreateTargetOfEvaluation_Handler,
		},
		{
			MethodName: "UpdateTargetOfEvaluation",
			Handler:    _Orchestrator_UpdateTargetOfEvaluation_Handler,
		},
		{
			MethodName: "GetTargetOfEvaluation",
			Handler:    _Orchestrator_GetTargetOfEvaluation_Handler,
		},
		{
			MethodName: "ListTargetsOfEvaluation",
			Handler:    _Orchestrator_ListTargetsOfEvaluation_Handler,
		},
		{
			MethodName: "RemoveTargetOfEvaluation",
			Handler:    _Orchestrator_RemoveTargetOfEvaluation_Handler,
		},
		{
			MethodName: "GetTargetOfEvaluationStatistics",
			Handler:    _Orchestrator_GetTargetOfEvaluationStatistics_Handler,
		},
		{
			MethodName: "UpdateMetricConfiguration",
			Handler:    _Orchestrator_UpdateMetricConfiguration_Handler,
		},
		{
			MethodName: "GetMetricConfiguration",
			Handler:    _Orchestrator_GetMetricConfiguration_Handler,
		},
		{
			MethodName: "ListMetricConfigurations",
			Handler:    _Orchestrator_ListMetricConfigurations_Handler,
		},
		{
			MethodName: "UpdateMetricImplementation",
			Handler:    _Orchestrator_UpdateMetricImplementation_Handler,
		},
		{
			MethodName: "GetMetricImplementation",
			Handler:    _Orchestrator_GetMetricImplementation_Handler,
		},
		{
			MethodName: "CreateCertificate",
			Handler:    _Orchestrator_CreateCertificate_Handler,
		},
		{
			MethodName: "GetCertificate",
			Handler:    _Orchestrator_GetCertificate_Handler,
		},
		{
			MethodName: "ListCertificates",
			Handler:    _Orchestrator_ListCertificates_Handler,
		},
		{
			MethodName: "ListPublicCertificates",
			Handler:    _Orchestrator_ListPublicCertificates_Handler,
		},
		{
			MethodName: "UpdateCertificate",
			Handler:    _Orchestrator_UpdateCertificate_Handler,
		},
		{
			MethodName: "RemoveCertificate",
			Handler:    _Orchestrator_RemoveCertificate_Handler,
		},
		{
			MethodName: "CreateCatalog",
			Handler:    _Orchestrator_CreateCatalog_Handler,
		},
		{
			MethodName: "ListCatalogs",
			Handler:    _Orchestrator_ListCatalogs_Handler,
		},
		{
			MethodName: "GetCatalog",
			Handler:    _Orchestrator_GetCatalog_Handler,
		},
		{
			MethodName: "RemoveCatalog",
			Handler:    _Orchestrator_RemoveCatalog_Handler,
		},
		{
			MethodName: "UpdateCatalog",
			Handler:    _Orchestrator_UpdateCatalog_Handler,
		},
		{
			MethodName: "GetCategory",
			Handler:    _Orchestrator_GetCategory_Handler,
		},
		{
			MethodName: "ListControls",
			Handler:    _Orchestrator_ListControls_Handler,
		},
		{
			MethodName: "GetControl",
			Handler:    _Orchestrator_GetControl_Handler,
		},
		{
			MethodName: "CreateAuditScope",
			Handler:    _Orchestrator_CreateAuditScope_Handler,
		},
		{
			MethodName: "GetAuditScope",
			Handler:    _Orchestrator_GetAuditScope_Handler,
		},
		{
			MethodName: "ListAuditScopes",
			Handler:    _Orchestrator_ListAuditScopes_Handler,
		},
		{
			MethodName: "UpdateAuditScope",
			Handler:    _Orchestrator_UpdateAuditScope_Handler,
		},
		{
			MethodName: "RemoveAuditScope",
			Handler:    _Orchestrator_RemoveAuditScope_Handler,
		},
		{
			MethodName: "GetRuntimeInfo",
			Handler:    _Orchestrator_GetRuntimeInfo_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "StoreAssessmentResults",
			Handler:       _Orchestrator_StoreAssessmentResults_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
		{
			StreamName:    "SubscribeMetricChangeEvents",
			Handler:       _Orchestrator_SubscribeMetricChangeEvents_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "api/orchestrator/orchestrator.proto",
}
