// Code generated by protoc-gen-connect-go. DO NOT EDIT.
//
// Source: api/service/v1alpha1/service.proto

package svcv1alpha1connect

import (
	connect "connectrpc.com/connect"
	context "context"
	errors "errors"
	v1alpha1 "github.com/akuity/kargo/api/service/v1alpha1"
	http "net/http"
	strings "strings"
)

// This is a compile-time assertion to ensure that this generated file and the connect package are
// compatible. If you get a compiler error that this constant is not defined, this code was
// generated with a version of connect newer than the one compiled into your binary. You can fix the
// problem by either regenerating this code with an older version of connect or updating the connect
// version compiled into your binary.
const _ = connect.IsAtLeastVersion1_13_0

const (
	// KargoServiceName is the fully-qualified name of the KargoService service.
	KargoServiceName = "akuity.io.kargo.service.v1alpha1.KargoService"
)

// These constants are the fully-qualified names of the RPCs defined in this package. They're
// exposed at runtime as Spec.Procedure and as the final two segments of the HTTP route.
//
// Note that these are different from the fully-qualified method names used by
// google.golang.org/protobuf/reflect/protoreflect. To convert from these constants to
// reflection-formatted method names, remove the leading slash and convert the remaining slash to a
// period.
const (
	// KargoServiceGetVersionInfoProcedure is the fully-qualified name of the KargoService's
	// GetVersionInfo RPC.
	KargoServiceGetVersionInfoProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetVersionInfo"
	// KargoServiceGetConfigProcedure is the fully-qualified name of the KargoService's GetConfig RPC.
	KargoServiceGetConfigProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetConfig"
	// KargoServiceGetPublicConfigProcedure is the fully-qualified name of the KargoService's
	// GetPublicConfig RPC.
	KargoServiceGetPublicConfigProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetPublicConfig"
	// KargoServiceAdminLoginProcedure is the fully-qualified name of the KargoService's AdminLogin RPC.
	KargoServiceAdminLoginProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/AdminLogin"
	// KargoServiceCreateResourceProcedure is the fully-qualified name of the KargoService's
	// CreateResource RPC.
	KargoServiceCreateResourceProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/CreateResource"
	// KargoServiceCreateOrUpdateResourceProcedure is the fully-qualified name of the KargoService's
	// CreateOrUpdateResource RPC.
	KargoServiceCreateOrUpdateResourceProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/CreateOrUpdateResource"
	// KargoServiceUpdateResourceProcedure is the fully-qualified name of the KargoService's
	// UpdateResource RPC.
	KargoServiceUpdateResourceProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/UpdateResource"
	// KargoServiceDeleteResourceProcedure is the fully-qualified name of the KargoService's
	// DeleteResource RPC.
	KargoServiceDeleteResourceProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/DeleteResource"
	// KargoServiceListStagesProcedure is the fully-qualified name of the KargoService's ListStages RPC.
	KargoServiceListStagesProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListStages"
	// KargoServiceListImagesProcedure is the fully-qualified name of the KargoService's ListImages RPC.
	KargoServiceListImagesProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListImages"
	// KargoServiceGetStageProcedure is the fully-qualified name of the KargoService's GetStage RPC.
	KargoServiceGetStageProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetStage"
	// KargoServiceWatchStagesProcedure is the fully-qualified name of the KargoService's WatchStages
	// RPC.
	KargoServiceWatchStagesProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/WatchStages"
	// KargoServiceDeleteStageProcedure is the fully-qualified name of the KargoService's DeleteStage
	// RPC.
	KargoServiceDeleteStageProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/DeleteStage"
	// KargoServiceRefreshStageProcedure is the fully-qualified name of the KargoService's RefreshStage
	// RPC.
	KargoServiceRefreshStageProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/RefreshStage"
	// KargoServiceGetClusterConfigProcedure is the fully-qualified name of the KargoService's
	// GetClusterConfig RPC.
	KargoServiceGetClusterConfigProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetClusterConfig"
	// KargoServiceDeleteClusterConfigProcedure is the fully-qualified name of the KargoService's
	// DeleteClusterConfig RPC.
	KargoServiceDeleteClusterConfigProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/DeleteClusterConfig"
	// KargoServiceWatchClusterConfigProcedure is the fully-qualified name of the KargoService's
	// WatchClusterConfig RPC.
	KargoServiceWatchClusterConfigProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/WatchClusterConfig"
	// KargoServiceRefreshClusterConfigProcedure is the fully-qualified name of the KargoService's
	// RefreshClusterConfig RPC.
	KargoServiceRefreshClusterConfigProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/RefreshClusterConfig"
	// KargoServiceListPromotionsProcedure is the fully-qualified name of the KargoService's
	// ListPromotions RPC.
	KargoServiceListPromotionsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListPromotions"
	// KargoServiceWatchPromotionsProcedure is the fully-qualified name of the KargoService's
	// WatchPromotions RPC.
	KargoServiceWatchPromotionsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/WatchPromotions"
	// KargoServiceGetPromotionProcedure is the fully-qualified name of the KargoService's GetPromotion
	// RPC.
	KargoServiceGetPromotionProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetPromotion"
	// KargoServiceWatchPromotionProcedure is the fully-qualified name of the KargoService's
	// WatchPromotion RPC.
	KargoServiceWatchPromotionProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/WatchPromotion"
	// KargoServiceAbortPromotionProcedure is the fully-qualified name of the KargoService's
	// AbortPromotion RPC.
	KargoServiceAbortPromotionProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/AbortPromotion"
	// KargoServiceDeleteProjectProcedure is the fully-qualified name of the KargoService's
	// DeleteProject RPC.
	KargoServiceDeleteProjectProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/DeleteProject"
	// KargoServiceGetProjectProcedure is the fully-qualified name of the KargoService's GetProject RPC.
	KargoServiceGetProjectProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetProject"
	// KargoServiceListProjectsProcedure is the fully-qualified name of the KargoService's ListProjects
	// RPC.
	KargoServiceListProjectsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListProjects"
	// KargoServiceGetProjectConfigProcedure is the fully-qualified name of the KargoService's
	// GetProjectConfig RPC.
	KargoServiceGetProjectConfigProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetProjectConfig"
	// KargoServiceDeleteProjectConfigProcedure is the fully-qualified name of the KargoService's
	// DeleteProjectConfig RPC.
	KargoServiceDeleteProjectConfigProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/DeleteProjectConfig"
	// KargoServiceWatchProjectConfigProcedure is the fully-qualified name of the KargoService's
	// WatchProjectConfig RPC.
	KargoServiceWatchProjectConfigProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/WatchProjectConfig"
	// KargoServiceRefreshProjectConfigProcedure is the fully-qualified name of the KargoService's
	// RefreshProjectConfig RPC.
	KargoServiceRefreshProjectConfigProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/RefreshProjectConfig"
	// KargoServiceApproveFreightProcedure is the fully-qualified name of the KargoService's
	// ApproveFreight RPC.
	KargoServiceApproveFreightProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ApproveFreight"
	// KargoServiceDeleteFreightProcedure is the fully-qualified name of the KargoService's
	// DeleteFreight RPC.
	KargoServiceDeleteFreightProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/DeleteFreight"
	// KargoServiceGetFreightProcedure is the fully-qualified name of the KargoService's GetFreight RPC.
	KargoServiceGetFreightProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetFreight"
	// KargoServiceWatchFreightProcedure is the fully-qualified name of the KargoService's WatchFreight
	// RPC.
	KargoServiceWatchFreightProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/WatchFreight"
	// KargoServicePromoteToStageProcedure is the fully-qualified name of the KargoService's
	// PromoteToStage RPC.
	KargoServicePromoteToStageProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/PromoteToStage"
	// KargoServicePromoteDownstreamProcedure is the fully-qualified name of the KargoService's
	// PromoteDownstream RPC.
	KargoServicePromoteDownstreamProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/PromoteDownstream"
	// KargoServiceQueryFreightProcedure is the fully-qualified name of the KargoService's QueryFreight
	// RPC.
	KargoServiceQueryFreightProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/QueryFreight"
	// KargoServiceUpdateFreightAliasProcedure is the fully-qualified name of the KargoService's
	// UpdateFreightAlias RPC.
	KargoServiceUpdateFreightAliasProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/UpdateFreightAlias"
	// KargoServiceReverifyProcedure is the fully-qualified name of the KargoService's Reverify RPC.
	KargoServiceReverifyProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/Reverify"
	// KargoServiceAbortVerificationProcedure is the fully-qualified name of the KargoService's
	// AbortVerification RPC.
	KargoServiceAbortVerificationProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/AbortVerification"
	// KargoServiceListWarehousesProcedure is the fully-qualified name of the KargoService's
	// ListWarehouses RPC.
	KargoServiceListWarehousesProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListWarehouses"
	// KargoServiceGetWarehouseProcedure is the fully-qualified name of the KargoService's GetWarehouse
	// RPC.
	KargoServiceGetWarehouseProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetWarehouse"
	// KargoServiceWatchWarehousesProcedure is the fully-qualified name of the KargoService's
	// WatchWarehouses RPC.
	KargoServiceWatchWarehousesProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/WatchWarehouses"
	// KargoServiceDeleteWarehouseProcedure is the fully-qualified name of the KargoService's
	// DeleteWarehouse RPC.
	KargoServiceDeleteWarehouseProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/DeleteWarehouse"
	// KargoServiceRefreshWarehouseProcedure is the fully-qualified name of the KargoService's
	// RefreshWarehouse RPC.
	KargoServiceRefreshWarehouseProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/RefreshWarehouse"
	// KargoServiceCreateCredentialsProcedure is the fully-qualified name of the KargoService's
	// CreateCredentials RPC.
	KargoServiceCreateCredentialsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/CreateCredentials"
	// KargoServiceDeleteCredentialsProcedure is the fully-qualified name of the KargoService's
	// DeleteCredentials RPC.
	KargoServiceDeleteCredentialsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/DeleteCredentials"
	// KargoServiceGetCredentialsProcedure is the fully-qualified name of the KargoService's
	// GetCredentials RPC.
	KargoServiceGetCredentialsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetCredentials"
	// KargoServiceListCredentialsProcedure is the fully-qualified name of the KargoService's
	// ListCredentials RPC.
	KargoServiceListCredentialsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListCredentials"
	// KargoServiceUpdateCredentialsProcedure is the fully-qualified name of the KargoService's
	// UpdateCredentials RPC.
	KargoServiceUpdateCredentialsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/UpdateCredentials"
	// KargoServiceListProjectSecretsProcedure is the fully-qualified name of the KargoService's
	// ListProjectSecrets RPC.
	KargoServiceListProjectSecretsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListProjectSecrets"
	// KargoServiceCreateProjectSecretProcedure is the fully-qualified name of the KargoService's
	// CreateProjectSecret RPC.
	KargoServiceCreateProjectSecretProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/CreateProjectSecret"
	// KargoServiceUpdateProjectSecretProcedure is the fully-qualified name of the KargoService's
	// UpdateProjectSecret RPC.
	KargoServiceUpdateProjectSecretProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/UpdateProjectSecret"
	// KargoServiceDeleteProjectSecretProcedure is the fully-qualified name of the KargoService's
	// DeleteProjectSecret RPC.
	KargoServiceDeleteProjectSecretProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/DeleteProjectSecret"
	// KargoServiceListConfigMapsProcedure is the fully-qualified name of the KargoService's
	// ListConfigMaps RPC.
	KargoServiceListConfigMapsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListConfigMaps"
	// KargoServiceGetConfigMapProcedure is the fully-qualified name of the KargoService's GetConfigMap
	// RPC.
	KargoServiceGetConfigMapProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetConfigMap"
	// KargoServiceListAnalysisTemplatesProcedure is the fully-qualified name of the KargoService's
	// ListAnalysisTemplates RPC.
	KargoServiceListAnalysisTemplatesProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListAnalysisTemplates"
	// KargoServiceGetAnalysisTemplateProcedure is the fully-qualified name of the KargoService's
	// GetAnalysisTemplate RPC.
	KargoServiceGetAnalysisTemplateProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetAnalysisTemplate"
	// KargoServiceDeleteAnalysisTemplateProcedure is the fully-qualified name of the KargoService's
	// DeleteAnalysisTemplate RPC.
	KargoServiceDeleteAnalysisTemplateProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/DeleteAnalysisTemplate"
	// KargoServiceListClusterAnalysisTemplatesProcedure is the fully-qualified name of the
	// KargoService's ListClusterAnalysisTemplates RPC.
	KargoServiceListClusterAnalysisTemplatesProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListClusterAnalysisTemplates"
	// KargoServiceGetClusterAnalysisTemplateProcedure is the fully-qualified name of the KargoService's
	// GetClusterAnalysisTemplate RPC.
	KargoServiceGetClusterAnalysisTemplateProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetClusterAnalysisTemplate"
	// KargoServiceDeleteClusterAnalysisTemplateProcedure is the fully-qualified name of the
	// KargoService's DeleteClusterAnalysisTemplate RPC.
	KargoServiceDeleteClusterAnalysisTemplateProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/DeleteClusterAnalysisTemplate"
	// KargoServiceGetAnalysisRunProcedure is the fully-qualified name of the KargoService's
	// GetAnalysisRun RPC.
	KargoServiceGetAnalysisRunProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetAnalysisRun"
	// KargoServiceGetAnalysisRunLogsProcedure is the fully-qualified name of the KargoService's
	// GetAnalysisRunLogs RPC.
	KargoServiceGetAnalysisRunLogsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetAnalysisRunLogs"
	// KargoServiceListProjectEventsProcedure is the fully-qualified name of the KargoService's
	// ListProjectEvents RPC.
	KargoServiceListProjectEventsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListProjectEvents"
	// KargoServiceListPromotionTasksProcedure is the fully-qualified name of the KargoService's
	// ListPromotionTasks RPC.
	KargoServiceListPromotionTasksProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListPromotionTasks"
	// KargoServiceListClusterPromotionTasksProcedure is the fully-qualified name of the KargoService's
	// ListClusterPromotionTasks RPC.
	KargoServiceListClusterPromotionTasksProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListClusterPromotionTasks"
	// KargoServiceGetPromotionTaskProcedure is the fully-qualified name of the KargoService's
	// GetPromotionTask RPC.
	KargoServiceGetPromotionTaskProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetPromotionTask"
	// KargoServiceGetClusterPromotionTaskProcedure is the fully-qualified name of the KargoService's
	// GetClusterPromotionTask RPC.
	KargoServiceGetClusterPromotionTaskProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetClusterPromotionTask"
	// KargoServiceCreateRoleProcedure is the fully-qualified name of the KargoService's CreateRole RPC.
	KargoServiceCreateRoleProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/CreateRole"
	// KargoServiceDeleteRoleProcedure is the fully-qualified name of the KargoService's DeleteRole RPC.
	KargoServiceDeleteRoleProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/DeleteRole"
	// KargoServiceGetRoleProcedure is the fully-qualified name of the KargoService's GetRole RPC.
	KargoServiceGetRoleProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetRole"
	// KargoServiceGrantProcedure is the fully-qualified name of the KargoService's Grant RPC.
	KargoServiceGrantProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/Grant"
	// KargoServiceListRolesProcedure is the fully-qualified name of the KargoService's ListRoles RPC.
	KargoServiceListRolesProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListRoles"
	// KargoServiceRevokeProcedure is the fully-qualified name of the KargoService's Revoke RPC.
	KargoServiceRevokeProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/Revoke"
	// KargoServiceUpdateRoleProcedure is the fully-qualified name of the KargoService's UpdateRole RPC.
	KargoServiceUpdateRoleProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/UpdateRole"
	// KargoServiceListClusterSecretsProcedure is the fully-qualified name of the KargoService's
	// ListClusterSecrets RPC.
	KargoServiceListClusterSecretsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListClusterSecrets"
	// KargoServiceCreateClusterSecretProcedure is the fully-qualified name of the KargoService's
	// CreateClusterSecret RPC.
	KargoServiceCreateClusterSecretProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/CreateClusterSecret"
	// KargoServiceUpdateClusterSecretProcedure is the fully-qualified name of the KargoService's
	// UpdateClusterSecret RPC.
	KargoServiceUpdateClusterSecretProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/UpdateClusterSecret"
	// KargoServiceDeleteClusterSecretProcedure is the fully-qualified name of the KargoService's
	// DeleteClusterSecret RPC.
	KargoServiceDeleteClusterSecretProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/DeleteClusterSecret"
)

// These variables are the protoreflect.Descriptor objects for the RPCs defined in this package.
var (
	kargoServiceServiceDescriptor                             = v1alpha1.File_api_service_v1alpha1_service_proto.Services().ByName("KargoService")
	kargoServiceGetVersionInfoMethodDescriptor                = kargoServiceServiceDescriptor.Methods().ByName("GetVersionInfo")
	kargoServiceGetConfigMethodDescriptor                     = kargoServiceServiceDescriptor.Methods().ByName("GetConfig")
	kargoServiceGetPublicConfigMethodDescriptor               = kargoServiceServiceDescriptor.Methods().ByName("GetPublicConfig")
	kargoServiceAdminLoginMethodDescriptor                    = kargoServiceServiceDescriptor.Methods().ByName("AdminLogin")
	kargoServiceCreateResourceMethodDescriptor                = kargoServiceServiceDescriptor.Methods().ByName("CreateResource")
	kargoServiceCreateOrUpdateResourceMethodDescriptor        = kargoServiceServiceDescriptor.Methods().ByName("CreateOrUpdateResource")
	kargoServiceUpdateResourceMethodDescriptor                = kargoServiceServiceDescriptor.Methods().ByName("UpdateResource")
	kargoServiceDeleteResourceMethodDescriptor                = kargoServiceServiceDescriptor.Methods().ByName("DeleteResource")
	kargoServiceListStagesMethodDescriptor                    = kargoServiceServiceDescriptor.Methods().ByName("ListStages")
	kargoServiceListImagesMethodDescriptor                    = kargoServiceServiceDescriptor.Methods().ByName("ListImages")
	kargoServiceGetStageMethodDescriptor                      = kargoServiceServiceDescriptor.Methods().ByName("GetStage")
	kargoServiceWatchStagesMethodDescriptor                   = kargoServiceServiceDescriptor.Methods().ByName("WatchStages")
	kargoServiceDeleteStageMethodDescriptor                   = kargoServiceServiceDescriptor.Methods().ByName("DeleteStage")
	kargoServiceRefreshStageMethodDescriptor                  = kargoServiceServiceDescriptor.Methods().ByName("RefreshStage")
	kargoServiceGetClusterConfigMethodDescriptor              = kargoServiceServiceDescriptor.Methods().ByName("GetClusterConfig")
	kargoServiceDeleteClusterConfigMethodDescriptor           = kargoServiceServiceDescriptor.Methods().ByName("DeleteClusterConfig")
	kargoServiceWatchClusterConfigMethodDescriptor            = kargoServiceServiceDescriptor.Methods().ByName("WatchClusterConfig")
	kargoServiceRefreshClusterConfigMethodDescriptor          = kargoServiceServiceDescriptor.Methods().ByName("RefreshClusterConfig")
	kargoServiceListPromotionsMethodDescriptor                = kargoServiceServiceDescriptor.Methods().ByName("ListPromotions")
	kargoServiceWatchPromotionsMethodDescriptor               = kargoServiceServiceDescriptor.Methods().ByName("WatchPromotions")
	kargoServiceGetPromotionMethodDescriptor                  = kargoServiceServiceDescriptor.Methods().ByName("GetPromotion")
	kargoServiceWatchPromotionMethodDescriptor                = kargoServiceServiceDescriptor.Methods().ByName("WatchPromotion")
	kargoServiceAbortPromotionMethodDescriptor                = kargoServiceServiceDescriptor.Methods().ByName("AbortPromotion")
	kargoServiceDeleteProjectMethodDescriptor                 = kargoServiceServiceDescriptor.Methods().ByName("DeleteProject")
	kargoServiceGetProjectMethodDescriptor                    = kargoServiceServiceDescriptor.Methods().ByName("GetProject")
	kargoServiceListProjectsMethodDescriptor                  = kargoServiceServiceDescriptor.Methods().ByName("ListProjects")
	kargoServiceGetProjectConfigMethodDescriptor              = kargoServiceServiceDescriptor.Methods().ByName("GetProjectConfig")
	kargoServiceDeleteProjectConfigMethodDescriptor           = kargoServiceServiceDescriptor.Methods().ByName("DeleteProjectConfig")
	kargoServiceWatchProjectConfigMethodDescriptor            = kargoServiceServiceDescriptor.Methods().ByName("WatchProjectConfig")
	kargoServiceRefreshProjectConfigMethodDescriptor          = kargoServiceServiceDescriptor.Methods().ByName("RefreshProjectConfig")
	kargoServiceApproveFreightMethodDescriptor                = kargoServiceServiceDescriptor.Methods().ByName("ApproveFreight")
	kargoServiceDeleteFreightMethodDescriptor                 = kargoServiceServiceDescriptor.Methods().ByName("DeleteFreight")
	kargoServiceGetFreightMethodDescriptor                    = kargoServiceServiceDescriptor.Methods().ByName("GetFreight")
	kargoServiceWatchFreightMethodDescriptor                  = kargoServiceServiceDescriptor.Methods().ByName("WatchFreight")
	kargoServicePromoteToStageMethodDescriptor                = kargoServiceServiceDescriptor.Methods().ByName("PromoteToStage")
	kargoServicePromoteDownstreamMethodDescriptor             = kargoServiceServiceDescriptor.Methods().ByName("PromoteDownstream")
	kargoServiceQueryFreightMethodDescriptor                  = kargoServiceServiceDescriptor.Methods().ByName("QueryFreight")
	kargoServiceUpdateFreightAliasMethodDescriptor            = kargoServiceServiceDescriptor.Methods().ByName("UpdateFreightAlias")
	kargoServiceReverifyMethodDescriptor                      = kargoServiceServiceDescriptor.Methods().ByName("Reverify")
	kargoServiceAbortVerificationMethodDescriptor             = kargoServiceServiceDescriptor.Methods().ByName("AbortVerification")
	kargoServiceListWarehousesMethodDescriptor                = kargoServiceServiceDescriptor.Methods().ByName("ListWarehouses")
	kargoServiceGetWarehouseMethodDescriptor                  = kargoServiceServiceDescriptor.Methods().ByName("GetWarehouse")
	kargoServiceWatchWarehousesMethodDescriptor               = kargoServiceServiceDescriptor.Methods().ByName("WatchWarehouses")
	kargoServiceDeleteWarehouseMethodDescriptor               = kargoServiceServiceDescriptor.Methods().ByName("DeleteWarehouse")
	kargoServiceRefreshWarehouseMethodDescriptor              = kargoServiceServiceDescriptor.Methods().ByName("RefreshWarehouse")
	kargoServiceCreateCredentialsMethodDescriptor             = kargoServiceServiceDescriptor.Methods().ByName("CreateCredentials")
	kargoServiceDeleteCredentialsMethodDescriptor             = kargoServiceServiceDescriptor.Methods().ByName("DeleteCredentials")
	kargoServiceGetCredentialsMethodDescriptor                = kargoServiceServiceDescriptor.Methods().ByName("GetCredentials")
	kargoServiceListCredentialsMethodDescriptor               = kargoServiceServiceDescriptor.Methods().ByName("ListCredentials")
	kargoServiceUpdateCredentialsMethodDescriptor             = kargoServiceServiceDescriptor.Methods().ByName("UpdateCredentials")
	kargoServiceListProjectSecretsMethodDescriptor            = kargoServiceServiceDescriptor.Methods().ByName("ListProjectSecrets")
	kargoServiceCreateProjectSecretMethodDescriptor           = kargoServiceServiceDescriptor.Methods().ByName("CreateProjectSecret")
	kargoServiceUpdateProjectSecretMethodDescriptor           = kargoServiceServiceDescriptor.Methods().ByName("UpdateProjectSecret")
	kargoServiceDeleteProjectSecretMethodDescriptor           = kargoServiceServiceDescriptor.Methods().ByName("DeleteProjectSecret")
	kargoServiceListConfigMapsMethodDescriptor                = kargoServiceServiceDescriptor.Methods().ByName("ListConfigMaps")
	kargoServiceGetConfigMapMethodDescriptor                  = kargoServiceServiceDescriptor.Methods().ByName("GetConfigMap")
	kargoServiceListAnalysisTemplatesMethodDescriptor         = kargoServiceServiceDescriptor.Methods().ByName("ListAnalysisTemplates")
	kargoServiceGetAnalysisTemplateMethodDescriptor           = kargoServiceServiceDescriptor.Methods().ByName("GetAnalysisTemplate")
	kargoServiceDeleteAnalysisTemplateMethodDescriptor        = kargoServiceServiceDescriptor.Methods().ByName("DeleteAnalysisTemplate")
	kargoServiceListClusterAnalysisTemplatesMethodDescriptor  = kargoServiceServiceDescriptor.Methods().ByName("ListClusterAnalysisTemplates")
	kargoServiceGetClusterAnalysisTemplateMethodDescriptor    = kargoServiceServiceDescriptor.Methods().ByName("GetClusterAnalysisTemplate")
	kargoServiceDeleteClusterAnalysisTemplateMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("DeleteClusterAnalysisTemplate")
	kargoServiceGetAnalysisRunMethodDescriptor                = kargoServiceServiceDescriptor.Methods().ByName("GetAnalysisRun")
	kargoServiceGetAnalysisRunLogsMethodDescriptor            = kargoServiceServiceDescriptor.Methods().ByName("GetAnalysisRunLogs")
	kargoServiceListProjectEventsMethodDescriptor             = kargoServiceServiceDescriptor.Methods().ByName("ListProjectEvents")
	kargoServiceListPromotionTasksMethodDescriptor            = kargoServiceServiceDescriptor.Methods().ByName("ListPromotionTasks")
	kargoServiceListClusterPromotionTasksMethodDescriptor     = kargoServiceServiceDescriptor.Methods().ByName("ListClusterPromotionTasks")
	kargoServiceGetPromotionTaskMethodDescriptor              = kargoServiceServiceDescriptor.Methods().ByName("GetPromotionTask")
	kargoServiceGetClusterPromotionTaskMethodDescriptor       = kargoServiceServiceDescriptor.Methods().ByName("GetClusterPromotionTask")
	kargoServiceCreateRoleMethodDescriptor                    = kargoServiceServiceDescriptor.Methods().ByName("CreateRole")
	kargoServiceDeleteRoleMethodDescriptor                    = kargoServiceServiceDescriptor.Methods().ByName("DeleteRole")
	kargoServiceGetRoleMethodDescriptor                       = kargoServiceServiceDescriptor.Methods().ByName("GetRole")
	kargoServiceGrantMethodDescriptor                         = kargoServiceServiceDescriptor.Methods().ByName("Grant")
	kargoServiceListRolesMethodDescriptor                     = kargoServiceServiceDescriptor.Methods().ByName("ListRoles")
	kargoServiceRevokeMethodDescriptor                        = kargoServiceServiceDescriptor.Methods().ByName("Revoke")
	kargoServiceUpdateRoleMethodDescriptor                    = kargoServiceServiceDescriptor.Methods().ByName("UpdateRole")
	kargoServiceListClusterSecretsMethodDescriptor            = kargoServiceServiceDescriptor.Methods().ByName("ListClusterSecrets")
	kargoServiceCreateClusterSecretMethodDescriptor           = kargoServiceServiceDescriptor.Methods().ByName("CreateClusterSecret")
	kargoServiceUpdateClusterSecretMethodDescriptor           = kargoServiceServiceDescriptor.Methods().ByName("UpdateClusterSecret")
	kargoServiceDeleteClusterSecretMethodDescriptor           = kargoServiceServiceDescriptor.Methods().ByName("DeleteClusterSecret")
)

// KargoServiceClient is a client for the akuity.io.kargo.service.v1alpha1.KargoService service.
type KargoServiceClient interface {
	// GetVersionInfo returns version information for the Kargo server.
	GetVersionInfo(context.Context, *connect.Request[v1alpha1.GetVersionInfoRequest]) (*connect.Response[v1alpha1.GetVersionInfoResponse], error)
	// GetConfig retrieves the server configuration including ArgoCD shard information.
	GetConfig(context.Context, *connect.Request[v1alpha1.GetConfigRequest]) (*connect.Response[v1alpha1.GetConfigResponse], error)
	// GetPublicConfig returns publicly accessible configuration including OIDC settings.
	GetPublicConfig(context.Context, *connect.Request[v1alpha1.GetPublicConfigRequest]) (*connect.Response[v1alpha1.GetPublicConfigResponse], error)
	// AdminLogin authenticates an admin user and returns an access token.
	AdminLogin(context.Context, *connect.Request[v1alpha1.AdminLoginRequest]) (*connect.Response[v1alpha1.AdminLoginResponse], error)
	// TODO(devholic): Add ApplyResource API
	// rpc ApplyResource(ApplyResourceRequest) returns (ApplyResourceRequest);
	// CreateResource creates new Kubernetes resources from provided manifests.
	CreateResource(context.Context, *connect.Request[v1alpha1.CreateResourceRequest]) (*connect.Response[v1alpha1.CreateResourceResponse], error)
	// CreateOrUpdateResource creates or updates Kubernetes resources based on provided manifests.
	CreateOrUpdateResource(context.Context, *connect.Request[v1alpha1.CreateOrUpdateResourceRequest]) (*connect.Response[v1alpha1.CreateOrUpdateResourceResponse], error)
	// UpdateResource updates existing Kubernetes resources with provided manifests.
	UpdateResource(context.Context, *connect.Request[v1alpha1.UpdateResourceRequest]) (*connect.Response[v1alpha1.UpdateResourceResponse], error)
	// DeleteResource deletes Kubernetes resources specified in the provided manifests.
	DeleteResource(context.Context, *connect.Request[v1alpha1.DeleteResourceRequest]) (*connect.Response[v1alpha1.DeleteResourceResponse], error)
	// ListStages retrieves all stages within a project.
	ListStages(context.Context, *connect.Request[v1alpha1.ListStagesRequest]) (*connect.Response[v1alpha1.ListStagesResponse], error)
	// ListImages returns available images and their usage across stages.
	ListImages(context.Context, *connect.Request[v1alpha1.ListImagesRequest]) (*connect.Response[v1alpha1.ListImagesResponse], error)
	// GetStage retrieves details of a specific stage.
	GetStage(context.Context, *connect.Request[v1alpha1.GetStageRequest]) (*connect.Response[v1alpha1.GetStageResponse], error)
	// WatchStages provides a streaming interface to monitor stage changes.
	WatchStages(context.Context, *connect.Request[v1alpha1.WatchStagesRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchStagesResponse], error)
	// DeleteStage removes a stage from the system.
	DeleteStage(context.Context, *connect.Request[v1alpha1.DeleteStageRequest]) (*connect.Response[v1alpha1.DeleteStageResponse], error)
	// RefreshStage triggers a refresh of stage status and health checks.
	RefreshStage(context.Context, *connect.Request[v1alpha1.RefreshStageRequest]) (*connect.Response[v1alpha1.RefreshStageResponse], error)
	// GetClusterConfig retrieves cluster-level configuration settings.
	GetClusterConfig(context.Context, *connect.Request[v1alpha1.GetClusterConfigRequest]) (*connect.Response[v1alpha1.GetClusterConfigResponse], error)
	// DeleteClusterConfig removes cluster-level configuration.
	DeleteClusterConfig(context.Context, *connect.Request[v1alpha1.DeleteClusterConfigRequest]) (*connect.Response[v1alpha1.DeleteClusterConfigResponse], error)
	// WatchClusterConfig provides streaming updates for cluster configuration changes.
	WatchClusterConfig(context.Context, *connect.Request[v1alpha1.WatchClusterConfigRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchClusterConfigResponse], error)
	// RefreshClusterConfig triggers a refresh of cluster configuration.
	RefreshClusterConfig(context.Context, *connect.Request[v1alpha1.RefreshClusterConfigRequest]) (*connect.Response[v1alpha1.RefreshClusterConfigResponse], error)
	// ListPromotions retrieves all promotions, optionally filtered by stage.
	ListPromotions(context.Context, *connect.Request[v1alpha1.ListPromotionsRequest]) (*connect.Response[v1alpha1.ListPromotionsResponse], error)
	// WatchPromotions provides streaming updates for promotion changes.
	WatchPromotions(context.Context, *connect.Request[v1alpha1.WatchPromotionsRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchPromotionsResponse], error)
	// GetPromotion retrieves details of a specific promotion.
	GetPromotion(context.Context, *connect.Request[v1alpha1.GetPromotionRequest]) (*connect.Response[v1alpha1.GetPromotionResponse], error)
	// WatchPromotion provides streaming updates for a specific promotion.
	WatchPromotion(context.Context, *connect.Request[v1alpha1.WatchPromotionRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchPromotionResponse], error)
	// AbortPromotion cancels a running promotion process.
	AbortPromotion(context.Context, *connect.Request[v1alpha1.AbortPromotionRequest]) (*connect.Response[v1alpha1.AbortPromotionResponse], error)
	// DeleteProject removes a project and all associated resources.
	DeleteProject(context.Context, *connect.Request[v1alpha1.DeleteProjectRequest]) (*connect.Response[v1alpha1.DeleteProjectResponse], error)
	// GetProject retrieves details of a specific project.
	GetProject(context.Context, *connect.Request[v1alpha1.GetProjectRequest]) (*connect.Response[v1alpha1.GetProjectResponse], error)
	// ListProjects retrieves all projects with optional filtering and pagination.
	ListProjects(context.Context, *connect.Request[v1alpha1.ListProjectsRequest]) (*connect.Response[v1alpha1.ListProjectsResponse], error)
	// GetProjectConfig retrieves project-level configuration settings.
	GetProjectConfig(context.Context, *connect.Request[v1alpha1.GetProjectConfigRequest]) (*connect.Response[v1alpha1.GetProjectConfigResponse], error)
	// DeleteProjectConfig removes project-level configuration.
	DeleteProjectConfig(context.Context, *connect.Request[v1alpha1.DeleteProjectConfigRequest]) (*connect.Response[v1alpha1.DeleteProjectConfigResponse], error)
	// WatchProjectConfig provides streaming updates for project configuration changes.
	WatchProjectConfig(context.Context, *connect.Request[v1alpha1.WatchProjectConfigRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchProjectConfigResponse], error)
	// RefreshProjectConfig triggers a refresh of project configuration.
	RefreshProjectConfig(context.Context, *connect.Request[v1alpha1.RefreshProjectConfigRequest]) (*connect.Response[v1alpha1.RefreshProjectConfigResponse], error)
	// ApproveFreight marks freight as approved for promotion to a specific stage.
	ApproveFreight(context.Context, *connect.Request[v1alpha1.ApproveFreightRequest]) (*connect.Response[v1alpha1.ApproveFreightResponse], error)
	// DeleteFreight removes freight from the system.
	DeleteFreight(context.Context, *connect.Request[v1alpha1.DeleteFreightRequest]) (*connect.Response[v1alpha1.DeleteFreightResponse], error)
	// GetFreight retrieves details of specific freight.
	GetFreight(context.Context, *connect.Request[v1alpha1.GetFreightRequest]) (*connect.Response[v1alpha1.GetFreightResponse], error)
	// WatchFreight provides streaming updates for freight changes.
	WatchFreight(context.Context, *connect.Request[v1alpha1.WatchFreightRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchFreightResponse], error)
	// PromoteToStage initiates a promotion of freight to a specific stage.
	PromoteToStage(context.Context, *connect.Request[v1alpha1.PromoteToStageRequest]) (*connect.Response[v1alpha1.PromoteToStageResponse], error)
	// PromoteDownstream automatically promotes freight to downstream stages.
	PromoteDownstream(context.Context, *connect.Request[v1alpha1.PromoteDownstreamRequest]) (*connect.Response[v1alpha1.PromoteDownstreamResponse], error)
	// QueryFreight searches for freight based on specified criteria.
	QueryFreight(context.Context, *connect.Request[v1alpha1.QueryFreightRequest]) (*connect.Response[v1alpha1.QueryFreightResponse], error)
	// UpdateFreightAlias changes the alias associated with specific freight.
	UpdateFreightAlias(context.Context, *connect.Request[v1alpha1.UpdateFreightAliasRequest]) (*connect.Response[v1alpha1.UpdateFreightAliasResponse], error)
	// Reverify triggers re-execution of verification processes for a stage.
	Reverify(context.Context, *connect.Request[v1alpha1.ReverifyRequest]) (*connect.Response[v1alpha1.ReverifyResponse], error)
	// AbortVerification cancels running verification processes for a stage.
	AbortVerification(context.Context, *connect.Request[v1alpha1.AbortVerificationRequest]) (*connect.Response[v1alpha1.AbortVerificationResponse], error)
	// ListWarehouses retrieves all warehouses within a project.
	ListWarehouses(context.Context, *connect.Request[v1alpha1.ListWarehousesRequest]) (*connect.Response[v1alpha1.ListWarehousesResponse], error)
	// GetWarehouse retrieves details of a specific warehouse.
	GetWarehouse(context.Context, *connect.Request[v1alpha1.GetWarehouseRequest]) (*connect.Response[v1alpha1.GetWarehouseResponse], error)
	// WatchWarehouses provides streaming updates for warehouse changes.
	WatchWarehouses(context.Context, *connect.Request[v1alpha1.WatchWarehousesRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchWarehousesResponse], error)
	// DeleteWarehouse removes a warehouse from the system.
	DeleteWarehouse(context.Context, *connect.Request[v1alpha1.DeleteWarehouseRequest]) (*connect.Response[v1alpha1.DeleteWarehouseResponse], error)
	// RefreshWarehouse triggers a refresh of warehouse status and freight discovery.
	RefreshWarehouse(context.Context, *connect.Request[v1alpha1.RefreshWarehouseRequest]) (*connect.Response[v1alpha1.RefreshWarehouseResponse], error)
	// CreateCredentials creates new credentials for accessing external resources.
	CreateCredentials(context.Context, *connect.Request[v1alpha1.CreateCredentialsRequest]) (*connect.Response[v1alpha1.CreateCredentialsResponse], error)
	// DeleteCredentials removes credentials from the system.
	DeleteCredentials(context.Context, *connect.Request[v1alpha1.DeleteCredentialsRequest]) (*connect.Response[v1alpha1.DeleteCredentialsResponse], error)
	// GetCredentials retrieves details of specific credentials.
	GetCredentials(context.Context, *connect.Request[v1alpha1.GetCredentialsRequest]) (*connect.Response[v1alpha1.GetCredentialsResponse], error)
	// ListCredentials retrieves all credentials within a project.
	ListCredentials(context.Context, *connect.Request[v1alpha1.ListCredentialsRequest]) (*connect.Response[v1alpha1.ListCredentialsResponse], error)
	// UpdateCredentials modifies existing credentials.
	UpdateCredentials(context.Context, *connect.Request[v1alpha1.UpdateCredentialsRequest]) (*connect.Response[v1alpha1.UpdateCredentialsResponse], error)
	// ListProjectSecrets retrieves all secrets within a project.
	ListProjectSecrets(context.Context, *connect.Request[v1alpha1.ListProjectSecretsRequest]) (*connect.Response[v1alpha1.ListProjectSecretsResponse], error)
	// CreateProjectSecret creates a new secret within a project.
	CreateProjectSecret(context.Context, *connect.Request[v1alpha1.CreateProjectSecretRequest]) (*connect.Response[v1alpha1.CreateProjectSecretResponse], error)
	// UpdateProjectSecret modifies an existing project secret.
	UpdateProjectSecret(context.Context, *connect.Request[v1alpha1.UpdateProjectSecretRequest]) (*connect.Response[v1alpha1.UpdateProjectSecretResponse], error)
	// DeleteProjectSecret removes a secret from a project.
	DeleteProjectSecret(context.Context, *connect.Request[v1alpha1.DeleteProjectSecretRequest]) (*connect.Response[v1alpha1.DeleteProjectSecretResponse], error)
	// ListConfigMaps retrieves all ConfigMaps within a project.
	ListConfigMaps(context.Context, *connect.Request[v1alpha1.ListConfigMapsRequest]) (*connect.Response[v1alpha1.ListConfigMapsResponse], error)
	// GetConfigMap retrieves details of a specific ConfigMap.
	GetConfigMap(context.Context, *connect.Request[v1alpha1.GetConfigMapRequest]) (*connect.Response[v1alpha1.GetConfigMapResponse], error)
	// ListAnalysisTemplates retrieves all AnalysisTemplates within a project.
	ListAnalysisTemplates(context.Context, *connect.Request[v1alpha1.ListAnalysisTemplatesRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplatesResponse], error)
	// GetAnalysisTemplate retrieves details of a specific AnalysisTemplate.
	GetAnalysisTemplate(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateResponse], error)
	// DeleteAnalysisTemplate removes an AnalysisTemplate from a project.
	DeleteAnalysisTemplate(context.Context, *connect.Request[v1alpha1.DeleteAnalysisTemplateRequest]) (*connect.Response[v1alpha1.DeleteAnalysisTemplateResponse], error)
	// ListClusterAnalysisTemplates retrieves all cluster-scoped AnalysisTemplates.
	ListClusterAnalysisTemplates(context.Context, *connect.Request[v1alpha1.ListClusterAnalysisTemplatesRequest]) (*connect.Response[v1alpha1.ListClusterAnalysisTemplatesResponse], error)
	// GetClusterAnalysisTemplate retrieves details of a specific cluster-scoped AnalysisTemplate.
	GetClusterAnalysisTemplate(context.Context, *connect.Request[v1alpha1.GetClusterAnalysisTemplateRequest]) (*connect.Response[v1alpha1.GetClusterAnalysisTemplateResponse], error)
	// DeleteClusterAnalysisTemplate removes a cluster-scoped AnalysisTemplate.
	DeleteClusterAnalysisTemplate(context.Context, *connect.Request[v1alpha1.DeleteClusterAnalysisTemplateRequest]) (*connect.Response[v1alpha1.DeleteClusterAnalysisTemplateResponse], error)
	// GetAnalysisRun retrieves details of a specific AnalysisRun.
	GetAnalysisRun(context.Context, *connect.Request[v1alpha1.GetAnalysisRunRequest]) (*connect.Response[v1alpha1.GetAnalysisRunResponse], error)
	// GetAnalysisRunLogs streams logs from an AnalysisRun.
	GetAnalysisRunLogs(context.Context, *connect.Request[v1alpha1.GetAnalysisRunLogsRequest]) (*connect.ServerStreamForClient[v1alpha1.GetAnalysisRunLogsResponse], error)
	// ListProjectEvents retrieves events associated with a project.
	ListProjectEvents(context.Context, *connect.Request[v1alpha1.ListProjectEventsRequest]) (*connect.Response[v1alpha1.ListProjectEventsResponse], error)
	// ListPromotionTasks retrieves all PromotionTasks within a project.
	ListPromotionTasks(context.Context, *connect.Request[v1alpha1.ListPromotionTasksRequest]) (*connect.Response[v1alpha1.ListPromotionTasksResponse], error)
	// ListClusterPromotionTasks retrieves all cluster-scoped PromotionTasks.
	ListClusterPromotionTasks(context.Context, *connect.Request[v1alpha1.ListClusterPromotionTasksRequest]) (*connect.Response[v1alpha1.ListClusterPromotionTasksResponse], error)
	// GetPromotionTask retrieves details of a specific PromotionTask.
	GetPromotionTask(context.Context, *connect.Request[v1alpha1.GetPromotionTaskRequest]) (*connect.Response[v1alpha1.GetPromotionTaskResponse], error)
	// GetClusterPromotionTask retrieves details of a specific cluster-scoped PromotionTask.
	GetClusterPromotionTask(context.Context, *connect.Request[v1alpha1.GetClusterPromotionTaskRequest]) (*connect.Response[v1alpha1.GetClusterPromotionTaskResponse], error)
	// CreateRole creates a new RBAC role within a project.
	CreateRole(context.Context, *connect.Request[v1alpha1.CreateRoleRequest]) (*connect.Response[v1alpha1.CreateRoleResponse], error)
	// DeleteRole removes an RBAC role from a project.
	DeleteRole(context.Context, *connect.Request[v1alpha1.DeleteRoleRequest]) (*connect.Response[v1alpha1.DeleteRoleResponse], error)
	// GetRole retrieves details of a specific RBAC role.
	GetRole(context.Context, *connect.Request[v1alpha1.GetRoleRequest]) (*connect.Response[v1alpha1.GetRoleResponse], error)
	// Grant assigns permissions or binds users/services to a role.
	Grant(context.Context, *connect.Request[v1alpha1.GrantRequest]) (*connect.Response[v1alpha1.GrantResponse], error)
	// ListRoles retrieves all RBAC roles within a project.
	ListRoles(context.Context, *connect.Request[v1alpha1.ListRolesRequest]) (*connect.Response[v1alpha1.ListRolesResponse], error)
	// Revoke removes permissions or unbinds users/services from a role.
	Revoke(context.Context, *connect.Request[v1alpha1.RevokeRequest]) (*connect.Response[v1alpha1.RevokeResponse], error)
	// UpdateRole modifies an existing RBAC role.
	UpdateRole(context.Context, *connect.Request[v1alpha1.UpdateRoleRequest]) (*connect.Response[v1alpha1.UpdateRoleResponse], error)
	// ListClusterSecrets retrieves all cluster-scoped secrets.
	ListClusterSecrets(context.Context, *connect.Request[v1alpha1.ListClusterSecretsRequest]) (*connect.Response[v1alpha1.ListClusterSecretsResponse], error)
	// CreateClusterSecret creates a new cluster-scoped secret.
	CreateClusterSecret(context.Context, *connect.Request[v1alpha1.CreateClusterSecretRequest]) (*connect.Response[v1alpha1.CreateClusterSecretResponse], error)
	// UpdateClusterSecret modifies an existing cluster-scoped secret.
	UpdateClusterSecret(context.Context, *connect.Request[v1alpha1.UpdateClusterSecretRequest]) (*connect.Response[v1alpha1.UpdateClusterSecretResponse], error)
	// DeleteClusterSecret removes a cluster-scoped secret.
	DeleteClusterSecret(context.Context, *connect.Request[v1alpha1.DeleteClusterSecretRequest]) (*connect.Response[v1alpha1.DeleteClusterSecretResponse], error)
}

// NewKargoServiceClient constructs a client for the akuity.io.kargo.service.v1alpha1.KargoService
// service. By default, it uses the Connect protocol with the binary Protobuf Codec, asks for
// gzipped responses, and sends uncompressed requests. To use the gRPC or gRPC-Web protocols, supply
// the connect.WithGRPC() or connect.WithGRPCWeb() options.
//
// The URL supplied here should be the base URL for the Connect or gRPC server (for example,
// http://api.acme.com or https://acme.com/grpc).
func NewKargoServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) KargoServiceClient {
	baseURL = strings.TrimRight(baseURL, "/")
	return &kargoServiceClient{
		getVersionInfo: connect.NewClient[v1alpha1.GetVersionInfoRequest, v1alpha1.GetVersionInfoResponse](
			httpClient,
			baseURL+KargoServiceGetVersionInfoProcedure,
			connect.WithSchema(kargoServiceGetVersionInfoMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getConfig: connect.NewClient[v1alpha1.GetConfigRequest, v1alpha1.GetConfigResponse](
			httpClient,
			baseURL+KargoServiceGetConfigProcedure,
			connect.WithSchema(kargoServiceGetConfigMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getPublicConfig: connect.NewClient[v1alpha1.GetPublicConfigRequest, v1alpha1.GetPublicConfigResponse](
			httpClient,
			baseURL+KargoServiceGetPublicConfigProcedure,
			connect.WithSchema(kargoServiceGetPublicConfigMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		adminLogin: connect.NewClient[v1alpha1.AdminLoginRequest, v1alpha1.AdminLoginResponse](
			httpClient,
			baseURL+KargoServiceAdminLoginProcedure,
			connect.WithSchema(kargoServiceAdminLoginMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		createResource: connect.NewClient[v1alpha1.CreateResourceRequest, v1alpha1.CreateResourceResponse](
			httpClient,
			baseURL+KargoServiceCreateResourceProcedure,
			connect.WithSchema(kargoServiceCreateResourceMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		createOrUpdateResource: connect.NewClient[v1alpha1.CreateOrUpdateResourceRequest, v1alpha1.CreateOrUpdateResourceResponse](
			httpClient,
			baseURL+KargoServiceCreateOrUpdateResourceProcedure,
			connect.WithSchema(kargoServiceCreateOrUpdateResourceMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		updateResource: connect.NewClient[v1alpha1.UpdateResourceRequest, v1alpha1.UpdateResourceResponse](
			httpClient,
			baseURL+KargoServiceUpdateResourceProcedure,
			connect.WithSchema(kargoServiceUpdateResourceMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		deleteResource: connect.NewClient[v1alpha1.DeleteResourceRequest, v1alpha1.DeleteResourceResponse](
			httpClient,
			baseURL+KargoServiceDeleteResourceProcedure,
			connect.WithSchema(kargoServiceDeleteResourceMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listStages: connect.NewClient[v1alpha1.ListStagesRequest, v1alpha1.ListStagesResponse](
			httpClient,
			baseURL+KargoServiceListStagesProcedure,
			connect.WithSchema(kargoServiceListStagesMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listImages: connect.NewClient[v1alpha1.ListImagesRequest, v1alpha1.ListImagesResponse](
			httpClient,
			baseURL+KargoServiceListImagesProcedure,
			connect.WithSchema(kargoServiceListImagesMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getStage: connect.NewClient[v1alpha1.GetStageRequest, v1alpha1.GetStageResponse](
			httpClient,
			baseURL+KargoServiceGetStageProcedure,
			connect.WithSchema(kargoServiceGetStageMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		watchStages: connect.NewClient[v1alpha1.WatchStagesRequest, v1alpha1.WatchStagesResponse](
			httpClient,
			baseURL+KargoServiceWatchStagesProcedure,
			connect.WithSchema(kargoServiceWatchStagesMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		deleteStage: connect.NewClient[v1alpha1.DeleteStageRequest, v1alpha1.DeleteStageResponse](
			httpClient,
			baseURL+KargoServiceDeleteStageProcedure,
			connect.WithSchema(kargoServiceDeleteStageMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		refreshStage: connect.NewClient[v1alpha1.RefreshStageRequest, v1alpha1.RefreshStageResponse](
			httpClient,
			baseURL+KargoServiceRefreshStageProcedure,
			connect.WithSchema(kargoServiceRefreshStageMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getClusterConfig: connect.NewClient[v1alpha1.GetClusterConfigRequest, v1alpha1.GetClusterConfigResponse](
			httpClient,
			baseURL+KargoServiceGetClusterConfigProcedure,
			connect.WithSchema(kargoServiceGetClusterConfigMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		deleteClusterConfig: connect.NewClient[v1alpha1.DeleteClusterConfigRequest, v1alpha1.DeleteClusterConfigResponse](
			httpClient,
			baseURL+KargoServiceDeleteClusterConfigProcedure,
			connect.WithSchema(kargoServiceDeleteClusterConfigMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		watchClusterConfig: connect.NewClient[v1alpha1.WatchClusterConfigRequest, v1alpha1.WatchClusterConfigResponse](
			httpClient,
			baseURL+KargoServiceWatchClusterConfigProcedure,
			connect.WithSchema(kargoServiceWatchClusterConfigMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		refreshClusterConfig: connect.NewClient[v1alpha1.RefreshClusterConfigRequest, v1alpha1.RefreshClusterConfigResponse](
			httpClient,
			baseURL+KargoServiceRefreshClusterConfigProcedure,
			connect.WithSchema(kargoServiceRefreshClusterConfigMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listPromotions: connect.NewClient[v1alpha1.ListPromotionsRequest, v1alpha1.ListPromotionsResponse](
			httpClient,
			baseURL+KargoServiceListPromotionsProcedure,
			connect.WithSchema(kargoServiceListPromotionsMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		watchPromotions: connect.NewClient[v1alpha1.WatchPromotionsRequest, v1alpha1.WatchPromotionsResponse](
			httpClient,
			baseURL+KargoServiceWatchPromotionsProcedure,
			connect.WithSchema(kargoServiceWatchPromotionsMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getPromotion: connect.NewClient[v1alpha1.GetPromotionRequest, v1alpha1.GetPromotionResponse](
			httpClient,
			baseURL+KargoServiceGetPromotionProcedure,
			connect.WithSchema(kargoServiceGetPromotionMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		watchPromotion: connect.NewClient[v1alpha1.WatchPromotionRequest, v1alpha1.WatchPromotionResponse](
			httpClient,
			baseURL+KargoServiceWatchPromotionProcedure,
			connect.WithSchema(kargoServiceWatchPromotionMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		abortPromotion: connect.NewClient[v1alpha1.AbortPromotionRequest, v1alpha1.AbortPromotionResponse](
			httpClient,
			baseURL+KargoServiceAbortPromotionProcedure,
			connect.WithSchema(kargoServiceAbortPromotionMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		deleteProject: connect.NewClient[v1alpha1.DeleteProjectRequest, v1alpha1.DeleteProjectResponse](
			httpClient,
			baseURL+KargoServiceDeleteProjectProcedure,
			connect.WithSchema(kargoServiceDeleteProjectMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getProject: connect.NewClient[v1alpha1.GetProjectRequest, v1alpha1.GetProjectResponse](
			httpClient,
			baseURL+KargoServiceGetProjectProcedure,
			connect.WithSchema(kargoServiceGetProjectMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listProjects: connect.NewClient[v1alpha1.ListProjectsRequest, v1alpha1.ListProjectsResponse](
			httpClient,
			baseURL+KargoServiceListProjectsProcedure,
			connect.WithSchema(kargoServiceListProjectsMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getProjectConfig: connect.NewClient[v1alpha1.GetProjectConfigRequest, v1alpha1.GetProjectConfigResponse](
			httpClient,
			baseURL+KargoServiceGetProjectConfigProcedure,
			connect.WithSchema(kargoServiceGetProjectConfigMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		deleteProjectConfig: connect.NewClient[v1alpha1.DeleteProjectConfigRequest, v1alpha1.DeleteProjectConfigResponse](
			httpClient,
			baseURL+KargoServiceDeleteProjectConfigProcedure,
			connect.WithSchema(kargoServiceDeleteProjectConfigMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		watchProjectConfig: connect.NewClient[v1alpha1.WatchProjectConfigRequest, v1alpha1.WatchProjectConfigResponse](
			httpClient,
			baseURL+KargoServiceWatchProjectConfigProcedure,
			connect.WithSchema(kargoServiceWatchProjectConfigMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		refreshProjectConfig: connect.NewClient[v1alpha1.RefreshProjectConfigRequest, v1alpha1.RefreshProjectConfigResponse](
			httpClient,
			baseURL+KargoServiceRefreshProjectConfigProcedure,
			connect.WithSchema(kargoServiceRefreshProjectConfigMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		approveFreight: connect.NewClient[v1alpha1.ApproveFreightRequest, v1alpha1.ApproveFreightResponse](
			httpClient,
			baseURL+KargoServiceApproveFreightProcedure,
			connect.WithSchema(kargoServiceApproveFreightMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		deleteFreight: connect.NewClient[v1alpha1.DeleteFreightRequest, v1alpha1.DeleteFreightResponse](
			httpClient,
			baseURL+KargoServiceDeleteFreightProcedure,
			connect.WithSchema(kargoServiceDeleteFreightMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getFreight: connect.NewClient[v1alpha1.GetFreightRequest, v1alpha1.GetFreightResponse](
			httpClient,
			baseURL+KargoServiceGetFreightProcedure,
			connect.WithSchema(kargoServiceGetFreightMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		watchFreight: connect.NewClient[v1alpha1.WatchFreightRequest, v1alpha1.WatchFreightResponse](
			httpClient,
			baseURL+KargoServiceWatchFreightProcedure,
			connect.WithSchema(kargoServiceWatchFreightMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		promoteToStage: connect.NewClient[v1alpha1.PromoteToStageRequest, v1alpha1.PromoteToStageResponse](
			httpClient,
			baseURL+KargoServicePromoteToStageProcedure,
			connect.WithSchema(kargoServicePromoteToStageMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		promoteDownstream: connect.NewClient[v1alpha1.PromoteDownstreamRequest, v1alpha1.PromoteDownstreamResponse](
			httpClient,
			baseURL+KargoServicePromoteDownstreamProcedure,
			connect.WithSchema(kargoServicePromoteDownstreamMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		queryFreight: connect.NewClient[v1alpha1.QueryFreightRequest, v1alpha1.QueryFreightResponse](
			httpClient,
			baseURL+KargoServiceQueryFreightProcedure,
			connect.WithSchema(kargoServiceQueryFreightMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		updateFreightAlias: connect.NewClient[v1alpha1.UpdateFreightAliasRequest, v1alpha1.UpdateFreightAliasResponse](
			httpClient,
			baseURL+KargoServiceUpdateFreightAliasProcedure,
			connect.WithSchema(kargoServiceUpdateFreightAliasMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		reverify: connect.NewClient[v1alpha1.ReverifyRequest, v1alpha1.ReverifyResponse](
			httpClient,
			baseURL+KargoServiceReverifyProcedure,
			connect.WithSchema(kargoServiceReverifyMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		abortVerification: connect.NewClient[v1alpha1.AbortVerificationRequest, v1alpha1.AbortVerificationResponse](
			httpClient,
			baseURL+KargoServiceAbortVerificationProcedure,
			connect.WithSchema(kargoServiceAbortVerificationMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listWarehouses: connect.NewClient[v1alpha1.ListWarehousesRequest, v1alpha1.ListWarehousesResponse](
			httpClient,
			baseURL+KargoServiceListWarehousesProcedure,
			connect.WithSchema(kargoServiceListWarehousesMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getWarehouse: connect.NewClient[v1alpha1.GetWarehouseRequest, v1alpha1.GetWarehouseResponse](
			httpClient,
			baseURL+KargoServiceGetWarehouseProcedure,
			connect.WithSchema(kargoServiceGetWarehouseMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		watchWarehouses: connect.NewClient[v1alpha1.WatchWarehousesRequest, v1alpha1.WatchWarehousesResponse](
			httpClient,
			baseURL+KargoServiceWatchWarehousesProcedure,
			connect.WithSchema(kargoServiceWatchWarehousesMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		deleteWarehouse: connect.NewClient[v1alpha1.DeleteWarehouseRequest, v1alpha1.DeleteWarehouseResponse](
			httpClient,
			baseURL+KargoServiceDeleteWarehouseProcedure,
			connect.WithSchema(kargoServiceDeleteWarehouseMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		refreshWarehouse: connect.NewClient[v1alpha1.RefreshWarehouseRequest, v1alpha1.RefreshWarehouseResponse](
			httpClient,
			baseURL+KargoServiceRefreshWarehouseProcedure,
			connect.WithSchema(kargoServiceRefreshWarehouseMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		createCredentials: connect.NewClient[v1alpha1.CreateCredentialsRequest, v1alpha1.CreateCredentialsResponse](
			httpClient,
			baseURL+KargoServiceCreateCredentialsProcedure,
			connect.WithSchema(kargoServiceCreateCredentialsMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		deleteCredentials: connect.NewClient[v1alpha1.DeleteCredentialsRequest, v1alpha1.DeleteCredentialsResponse](
			httpClient,
			baseURL+KargoServiceDeleteCredentialsProcedure,
			connect.WithSchema(kargoServiceDeleteCredentialsMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getCredentials: connect.NewClient[v1alpha1.GetCredentialsRequest, v1alpha1.GetCredentialsResponse](
			httpClient,
			baseURL+KargoServiceGetCredentialsProcedure,
			connect.WithSchema(kargoServiceGetCredentialsMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listCredentials: connect.NewClient[v1alpha1.ListCredentialsRequest, v1alpha1.ListCredentialsResponse](
			httpClient,
			baseURL+KargoServiceListCredentialsProcedure,
			connect.WithSchema(kargoServiceListCredentialsMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		updateCredentials: connect.NewClient[v1alpha1.UpdateCredentialsRequest, v1alpha1.UpdateCredentialsResponse](
			httpClient,
			baseURL+KargoServiceUpdateCredentialsProcedure,
			connect.WithSchema(kargoServiceUpdateCredentialsMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listProjectSecrets: connect.NewClient[v1alpha1.ListProjectSecretsRequest, v1alpha1.ListProjectSecretsResponse](
			httpClient,
			baseURL+KargoServiceListProjectSecretsProcedure,
			connect.WithSchema(kargoServiceListProjectSecretsMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		createProjectSecret: connect.NewClient[v1alpha1.CreateProjectSecretRequest, v1alpha1.CreateProjectSecretResponse](
			httpClient,
			baseURL+KargoServiceCreateProjectSecretProcedure,
			connect.WithSchema(kargoServiceCreateProjectSecretMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		updateProjectSecret: connect.NewClient[v1alpha1.UpdateProjectSecretRequest, v1alpha1.UpdateProjectSecretResponse](
			httpClient,
			baseURL+KargoServiceUpdateProjectSecretProcedure,
			connect.WithSchema(kargoServiceUpdateProjectSecretMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		deleteProjectSecret: connect.NewClient[v1alpha1.DeleteProjectSecretRequest, v1alpha1.DeleteProjectSecretResponse](
			httpClient,
			baseURL+KargoServiceDeleteProjectSecretProcedure,
			connect.WithSchema(kargoServiceDeleteProjectSecretMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listConfigMaps: connect.NewClient[v1alpha1.ListConfigMapsRequest, v1alpha1.ListConfigMapsResponse](
			httpClient,
			baseURL+KargoServiceListConfigMapsProcedure,
			connect.WithSchema(kargoServiceListConfigMapsMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getConfigMap: connect.NewClient[v1alpha1.GetConfigMapRequest, v1alpha1.GetConfigMapResponse](
			httpClient,
			baseURL+KargoServiceGetConfigMapProcedure,
			connect.WithSchema(kargoServiceGetConfigMapMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listAnalysisTemplates: connect.NewClient[v1alpha1.ListAnalysisTemplatesRequest, v1alpha1.ListAnalysisTemplatesResponse](
			httpClient,
			baseURL+KargoServiceListAnalysisTemplatesProcedure,
			connect.WithSchema(kargoServiceListAnalysisTemplatesMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getAnalysisTemplate: connect.NewClient[v1alpha1.GetAnalysisTemplateRequest, v1alpha1.GetAnalysisTemplateResponse](
			httpClient,
			baseURL+KargoServiceGetAnalysisTemplateProcedure,
			connect.WithSchema(kargoServiceGetAnalysisTemplateMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		deleteAnalysisTemplate: connect.NewClient[v1alpha1.DeleteAnalysisTemplateRequest, v1alpha1.DeleteAnalysisTemplateResponse](
			httpClient,
			baseURL+KargoServiceDeleteAnalysisTemplateProcedure,
			connect.WithSchema(kargoServiceDeleteAnalysisTemplateMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listClusterAnalysisTemplates: connect.NewClient[v1alpha1.ListClusterAnalysisTemplatesRequest, v1alpha1.ListClusterAnalysisTemplatesResponse](
			httpClient,
			baseURL+KargoServiceListClusterAnalysisTemplatesProcedure,
			connect.WithSchema(kargoServiceListClusterAnalysisTemplatesMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getClusterAnalysisTemplate: connect.NewClient[v1alpha1.GetClusterAnalysisTemplateRequest, v1alpha1.GetClusterAnalysisTemplateResponse](
			httpClient,
			baseURL+KargoServiceGetClusterAnalysisTemplateProcedure,
			connect.WithSchema(kargoServiceGetClusterAnalysisTemplateMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		deleteClusterAnalysisTemplate: connect.NewClient[v1alpha1.DeleteClusterAnalysisTemplateRequest, v1alpha1.DeleteClusterAnalysisTemplateResponse](
			httpClient,
			baseURL+KargoServiceDeleteClusterAnalysisTemplateProcedure,
			connect.WithSchema(kargoServiceDeleteClusterAnalysisTemplateMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getAnalysisRun: connect.NewClient[v1alpha1.GetAnalysisRunRequest, v1alpha1.GetAnalysisRunResponse](
			httpClient,
			baseURL+KargoServiceGetAnalysisRunProcedure,
			connect.WithSchema(kargoServiceGetAnalysisRunMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getAnalysisRunLogs: connect.NewClient[v1alpha1.GetAnalysisRunLogsRequest, v1alpha1.GetAnalysisRunLogsResponse](
			httpClient,
			baseURL+KargoServiceGetAnalysisRunLogsProcedure,
			connect.WithSchema(kargoServiceGetAnalysisRunLogsMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listProjectEvents: connect.NewClient[v1alpha1.ListProjectEventsRequest, v1alpha1.ListProjectEventsResponse](
			httpClient,
			baseURL+KargoServiceListProjectEventsProcedure,
			connect.WithSchema(kargoServiceListProjectEventsMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listPromotionTasks: connect.NewClient[v1alpha1.ListPromotionTasksRequest, v1alpha1.ListPromotionTasksResponse](
			httpClient,
			baseURL+KargoServiceListPromotionTasksProcedure,
			connect.WithSchema(kargoServiceListPromotionTasksMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listClusterPromotionTasks: connect.NewClient[v1alpha1.ListClusterPromotionTasksRequest, v1alpha1.ListClusterPromotionTasksResponse](
			httpClient,
			baseURL+KargoServiceListClusterPromotionTasksProcedure,
			connect.WithSchema(kargoServiceListClusterPromotionTasksMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getPromotionTask: connect.NewClient[v1alpha1.GetPromotionTaskRequest, v1alpha1.GetPromotionTaskResponse](
			httpClient,
			baseURL+KargoServiceGetPromotionTaskProcedure,
			connect.WithSchema(kargoServiceGetPromotionTaskMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getClusterPromotionTask: connect.NewClient[v1alpha1.GetClusterPromotionTaskRequest, v1alpha1.GetClusterPromotionTaskResponse](
			httpClient,
			baseURL+KargoServiceGetClusterPromotionTaskProcedure,
			connect.WithSchema(kargoServiceGetClusterPromotionTaskMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		createRole: connect.NewClient[v1alpha1.CreateRoleRequest, v1alpha1.CreateRoleResponse](
			httpClient,
			baseURL+KargoServiceCreateRoleProcedure,
			connect.WithSchema(kargoServiceCreateRoleMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		deleteRole: connect.NewClient[v1alpha1.DeleteRoleRequest, v1alpha1.DeleteRoleResponse](
			httpClient,
			baseURL+KargoServiceDeleteRoleProcedure,
			connect.WithSchema(kargoServiceDeleteRoleMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getRole: connect.NewClient[v1alpha1.GetRoleRequest, v1alpha1.GetRoleResponse](
			httpClient,
			baseURL+KargoServiceGetRoleProcedure,
			connect.WithSchema(kargoServiceGetRoleMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		grant: connect.NewClient[v1alpha1.GrantRequest, v1alpha1.GrantResponse](
			httpClient,
			baseURL+KargoServiceGrantProcedure,
			connect.WithSchema(kargoServiceGrantMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listRoles: connect.NewClient[v1alpha1.ListRolesRequest, v1alpha1.ListRolesResponse](
			httpClient,
			baseURL+KargoServiceListRolesProcedure,
			connect.WithSchema(kargoServiceListRolesMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		revoke: connect.NewClient[v1alpha1.RevokeRequest, v1alpha1.RevokeResponse](
			httpClient,
			baseURL+KargoServiceRevokeProcedure,
			connect.WithSchema(kargoServiceRevokeMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		updateRole: connect.NewClient[v1alpha1.UpdateRoleRequest, v1alpha1.UpdateRoleResponse](
			httpClient,
			baseURL+KargoServiceUpdateRoleProcedure,
			connect.WithSchema(kargoServiceUpdateRoleMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listClusterSecrets: connect.NewClient[v1alpha1.ListClusterSecretsRequest, v1alpha1.ListClusterSecretsResponse](
			httpClient,
			baseURL+KargoServiceListClusterSecretsProcedure,
			connect.WithSchema(kargoServiceListClusterSecretsMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		createClusterSecret: connect.NewClient[v1alpha1.CreateClusterSecretRequest, v1alpha1.CreateClusterSecretResponse](
			httpClient,
			baseURL+KargoServiceCreateClusterSecretProcedure,
			connect.WithSchema(kargoServiceCreateClusterSecretMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		updateClusterSecret: connect.NewClient[v1alpha1.UpdateClusterSecretRequest, v1alpha1.UpdateClusterSecretResponse](
			httpClient,
			baseURL+KargoServiceUpdateClusterSecretProcedure,
			connect.WithSchema(kargoServiceUpdateClusterSecretMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		deleteClusterSecret: connect.NewClient[v1alpha1.DeleteClusterSecretRequest, v1alpha1.DeleteClusterSecretResponse](
			httpClient,
			baseURL+KargoServiceDeleteClusterSecretProcedure,
			connect.WithSchema(kargoServiceDeleteClusterSecretMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
	}
}

// kargoServiceClient implements KargoServiceClient.
type kargoServiceClient struct {
	getVersionInfo                *connect.Client[v1alpha1.GetVersionInfoRequest, v1alpha1.GetVersionInfoResponse]
	getConfig                     *connect.Client[v1alpha1.GetConfigRequest, v1alpha1.GetConfigResponse]
	getPublicConfig               *connect.Client[v1alpha1.GetPublicConfigRequest, v1alpha1.GetPublicConfigResponse]
	adminLogin                    *connect.Client[v1alpha1.AdminLoginRequest, v1alpha1.AdminLoginResponse]
	createResource                *connect.Client[v1alpha1.CreateResourceRequest, v1alpha1.CreateResourceResponse]
	createOrUpdateResource        *connect.Client[v1alpha1.CreateOrUpdateResourceRequest, v1alpha1.CreateOrUpdateResourceResponse]
	updateResource                *connect.Client[v1alpha1.UpdateResourceRequest, v1alpha1.UpdateResourceResponse]
	deleteResource                *connect.Client[v1alpha1.DeleteResourceRequest, v1alpha1.DeleteResourceResponse]
	listStages                    *connect.Client[v1alpha1.ListStagesRequest, v1alpha1.ListStagesResponse]
	listImages                    *connect.Client[v1alpha1.ListImagesRequest, v1alpha1.ListImagesResponse]
	getStage                      *connect.Client[v1alpha1.GetStageRequest, v1alpha1.GetStageResponse]
	watchStages                   *connect.Client[v1alpha1.WatchStagesRequest, v1alpha1.WatchStagesResponse]
	deleteStage                   *connect.Client[v1alpha1.DeleteStageRequest, v1alpha1.DeleteStageResponse]
	refreshStage                  *connect.Client[v1alpha1.RefreshStageRequest, v1alpha1.RefreshStageResponse]
	getClusterConfig              *connect.Client[v1alpha1.GetClusterConfigRequest, v1alpha1.GetClusterConfigResponse]
	deleteClusterConfig           *connect.Client[v1alpha1.DeleteClusterConfigRequest, v1alpha1.DeleteClusterConfigResponse]
	watchClusterConfig            *connect.Client[v1alpha1.WatchClusterConfigRequest, v1alpha1.WatchClusterConfigResponse]
	refreshClusterConfig          *connect.Client[v1alpha1.RefreshClusterConfigRequest, v1alpha1.RefreshClusterConfigResponse]
	listPromotions                *connect.Client[v1alpha1.ListPromotionsRequest, v1alpha1.ListPromotionsResponse]
	watchPromotions               *connect.Client[v1alpha1.WatchPromotionsRequest, v1alpha1.WatchPromotionsResponse]
	getPromotion                  *connect.Client[v1alpha1.GetPromotionRequest, v1alpha1.GetPromotionResponse]
	watchPromotion                *connect.Client[v1alpha1.WatchPromotionRequest, v1alpha1.WatchPromotionResponse]
	abortPromotion                *connect.Client[v1alpha1.AbortPromotionRequest, v1alpha1.AbortPromotionResponse]
	deleteProject                 *connect.Client[v1alpha1.DeleteProjectRequest, v1alpha1.DeleteProjectResponse]
	getProject                    *connect.Client[v1alpha1.GetProjectRequest, v1alpha1.GetProjectResponse]
	listProjects                  *connect.Client[v1alpha1.ListProjectsRequest, v1alpha1.ListProjectsResponse]
	getProjectConfig              *connect.Client[v1alpha1.GetProjectConfigRequest, v1alpha1.GetProjectConfigResponse]
	deleteProjectConfig           *connect.Client[v1alpha1.DeleteProjectConfigRequest, v1alpha1.DeleteProjectConfigResponse]
	watchProjectConfig            *connect.Client[v1alpha1.WatchProjectConfigRequest, v1alpha1.WatchProjectConfigResponse]
	refreshProjectConfig          *connect.Client[v1alpha1.RefreshProjectConfigRequest, v1alpha1.RefreshProjectConfigResponse]
	approveFreight                *connect.Client[v1alpha1.ApproveFreightRequest, v1alpha1.ApproveFreightResponse]
	deleteFreight                 *connect.Client[v1alpha1.DeleteFreightRequest, v1alpha1.DeleteFreightResponse]
	getFreight                    *connect.Client[v1alpha1.GetFreightRequest, v1alpha1.GetFreightResponse]
	watchFreight                  *connect.Client[v1alpha1.WatchFreightRequest, v1alpha1.WatchFreightResponse]
	promoteToStage                *connect.Client[v1alpha1.PromoteToStageRequest, v1alpha1.PromoteToStageResponse]
	promoteDownstream             *connect.Client[v1alpha1.PromoteDownstreamRequest, v1alpha1.PromoteDownstreamResponse]
	queryFreight                  *connect.Client[v1alpha1.QueryFreightRequest, v1alpha1.QueryFreightResponse]
	updateFreightAlias            *connect.Client[v1alpha1.UpdateFreightAliasRequest, v1alpha1.UpdateFreightAliasResponse]
	reverify                      *connect.Client[v1alpha1.ReverifyRequest, v1alpha1.ReverifyResponse]
	abortVerification             *connect.Client[v1alpha1.AbortVerificationRequest, v1alpha1.AbortVerificationResponse]
	listWarehouses                *connect.Client[v1alpha1.ListWarehousesRequest, v1alpha1.ListWarehousesResponse]
	getWarehouse                  *connect.Client[v1alpha1.GetWarehouseRequest, v1alpha1.GetWarehouseResponse]
	watchWarehouses               *connect.Client[v1alpha1.WatchWarehousesRequest, v1alpha1.WatchWarehousesResponse]
	deleteWarehouse               *connect.Client[v1alpha1.DeleteWarehouseRequest, v1alpha1.DeleteWarehouseResponse]
	refreshWarehouse              *connect.Client[v1alpha1.RefreshWarehouseRequest, v1alpha1.RefreshWarehouseResponse]
	createCredentials             *connect.Client[v1alpha1.CreateCredentialsRequest, v1alpha1.CreateCredentialsResponse]
	deleteCredentials             *connect.Client[v1alpha1.DeleteCredentialsRequest, v1alpha1.DeleteCredentialsResponse]
	getCredentials                *connect.Client[v1alpha1.GetCredentialsRequest, v1alpha1.GetCredentialsResponse]
	listCredentials               *connect.Client[v1alpha1.ListCredentialsRequest, v1alpha1.ListCredentialsResponse]
	updateCredentials             *connect.Client[v1alpha1.UpdateCredentialsRequest, v1alpha1.UpdateCredentialsResponse]
	listProjectSecrets            *connect.Client[v1alpha1.ListProjectSecretsRequest, v1alpha1.ListProjectSecretsResponse]
	createProjectSecret           *connect.Client[v1alpha1.CreateProjectSecretRequest, v1alpha1.CreateProjectSecretResponse]
	updateProjectSecret           *connect.Client[v1alpha1.UpdateProjectSecretRequest, v1alpha1.UpdateProjectSecretResponse]
	deleteProjectSecret           *connect.Client[v1alpha1.DeleteProjectSecretRequest, v1alpha1.DeleteProjectSecretResponse]
	listConfigMaps                *connect.Client[v1alpha1.ListConfigMapsRequest, v1alpha1.ListConfigMapsResponse]
	getConfigMap                  *connect.Client[v1alpha1.GetConfigMapRequest, v1alpha1.GetConfigMapResponse]
	listAnalysisTemplates         *connect.Client[v1alpha1.ListAnalysisTemplatesRequest, v1alpha1.ListAnalysisTemplatesResponse]
	getAnalysisTemplate           *connect.Client[v1alpha1.GetAnalysisTemplateRequest, v1alpha1.GetAnalysisTemplateResponse]
	deleteAnalysisTemplate        *connect.Client[v1alpha1.DeleteAnalysisTemplateRequest, v1alpha1.DeleteAnalysisTemplateResponse]
	listClusterAnalysisTemplates  *connect.Client[v1alpha1.ListClusterAnalysisTemplatesRequest, v1alpha1.ListClusterAnalysisTemplatesResponse]
	getClusterAnalysisTemplate    *connect.Client[v1alpha1.GetClusterAnalysisTemplateRequest, v1alpha1.GetClusterAnalysisTemplateResponse]
	deleteClusterAnalysisTemplate *connect.Client[v1alpha1.DeleteClusterAnalysisTemplateRequest, v1alpha1.DeleteClusterAnalysisTemplateResponse]
	getAnalysisRun                *connect.Client[v1alpha1.GetAnalysisRunRequest, v1alpha1.GetAnalysisRunResponse]
	getAnalysisRunLogs            *connect.Client[v1alpha1.GetAnalysisRunLogsRequest, v1alpha1.GetAnalysisRunLogsResponse]
	listProjectEvents             *connect.Client[v1alpha1.ListProjectEventsRequest, v1alpha1.ListProjectEventsResponse]
	listPromotionTasks            *connect.Client[v1alpha1.ListPromotionTasksRequest, v1alpha1.ListPromotionTasksResponse]
	listClusterPromotionTasks     *connect.Client[v1alpha1.ListClusterPromotionTasksRequest, v1alpha1.ListClusterPromotionTasksResponse]
	getPromotionTask              *connect.Client[v1alpha1.GetPromotionTaskRequest, v1alpha1.GetPromotionTaskResponse]
	getClusterPromotionTask       *connect.Client[v1alpha1.GetClusterPromotionTaskRequest, v1alpha1.GetClusterPromotionTaskResponse]
	createRole                    *connect.Client[v1alpha1.CreateRoleRequest, v1alpha1.CreateRoleResponse]
	deleteRole                    *connect.Client[v1alpha1.DeleteRoleRequest, v1alpha1.DeleteRoleResponse]
	getRole                       *connect.Client[v1alpha1.GetRoleRequest, v1alpha1.GetRoleResponse]
	grant                         *connect.Client[v1alpha1.GrantRequest, v1alpha1.GrantResponse]
	listRoles                     *connect.Client[v1alpha1.ListRolesRequest, v1alpha1.ListRolesResponse]
	revoke                        *connect.Client[v1alpha1.RevokeRequest, v1alpha1.RevokeResponse]
	updateRole                    *connect.Client[v1alpha1.UpdateRoleRequest, v1alpha1.UpdateRoleResponse]
	listClusterSecrets            *connect.Client[v1alpha1.ListClusterSecretsRequest, v1alpha1.ListClusterSecretsResponse]
	createClusterSecret           *connect.Client[v1alpha1.CreateClusterSecretRequest, v1alpha1.CreateClusterSecretResponse]
	updateClusterSecret           *connect.Client[v1alpha1.UpdateClusterSecretRequest, v1alpha1.UpdateClusterSecretResponse]
	deleteClusterSecret           *connect.Client[v1alpha1.DeleteClusterSecretRequest, v1alpha1.DeleteClusterSecretResponse]
}

// GetVersionInfo calls akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo.
func (c *kargoServiceClient) GetVersionInfo(ctx context.Context, req *connect.Request[v1alpha1.GetVersionInfoRequest]) (*connect.Response[v1alpha1.GetVersionInfoResponse], error) {
	return c.getVersionInfo.CallUnary(ctx, req)
}

// GetConfig calls akuity.io.kargo.service.v1alpha1.KargoService.GetConfig.
func (c *kargoServiceClient) GetConfig(ctx context.Context, req *connect.Request[v1alpha1.GetConfigRequest]) (*connect.Response[v1alpha1.GetConfigResponse], error) {
	return c.getConfig.CallUnary(ctx, req)
}

// GetPublicConfig calls akuity.io.kargo.service.v1alpha1.KargoService.GetPublicConfig.
func (c *kargoServiceClient) GetPublicConfig(ctx context.Context, req *connect.Request[v1alpha1.GetPublicConfigRequest]) (*connect.Response[v1alpha1.GetPublicConfigResponse], error) {
	return c.getPublicConfig.CallUnary(ctx, req)
}

// AdminLogin calls akuity.io.kargo.service.v1alpha1.KargoService.AdminLogin.
func (c *kargoServiceClient) AdminLogin(ctx context.Context, req *connect.Request[v1alpha1.AdminLoginRequest]) (*connect.Response[v1alpha1.AdminLoginResponse], error) {
	return c.adminLogin.CallUnary(ctx, req)
}

// CreateResource calls akuity.io.kargo.service.v1alpha1.KargoService.CreateResource.
func (c *kargoServiceClient) CreateResource(ctx context.Context, req *connect.Request[v1alpha1.CreateResourceRequest]) (*connect.Response[v1alpha1.CreateResourceResponse], error) {
	return c.createResource.CallUnary(ctx, req)
}

// CreateOrUpdateResource calls
// akuity.io.kargo.service.v1alpha1.KargoService.CreateOrUpdateResource.
func (c *kargoServiceClient) CreateOrUpdateResource(ctx context.Context, req *connect.Request[v1alpha1.CreateOrUpdateResourceRequest]) (*connect.Response[v1alpha1.CreateOrUpdateResourceResponse], error) {
	return c.createOrUpdateResource.CallUnary(ctx, req)
}

// UpdateResource calls akuity.io.kargo.service.v1alpha1.KargoService.UpdateResource.
func (c *kargoServiceClient) UpdateResource(ctx context.Context, req *connect.Request[v1alpha1.UpdateResourceRequest]) (*connect.Response[v1alpha1.UpdateResourceResponse], error) {
	return c.updateResource.CallUnary(ctx, req)
}

// DeleteResource calls akuity.io.kargo.service.v1alpha1.KargoService.DeleteResource.
func (c *kargoServiceClient) DeleteResource(ctx context.Context, req *connect.Request[v1alpha1.DeleteResourceRequest]) (*connect.Response[v1alpha1.DeleteResourceResponse], error) {
	return c.deleteResource.CallUnary(ctx, req)
}

// ListStages calls akuity.io.kargo.service.v1alpha1.KargoService.ListStages.
func (c *kargoServiceClient) ListStages(ctx context.Context, req *connect.Request[v1alpha1.ListStagesRequest]) (*connect.Response[v1alpha1.ListStagesResponse], error) {
	return c.listStages.CallUnary(ctx, req)
}

// ListImages calls akuity.io.kargo.service.v1alpha1.KargoService.ListImages.
func (c *kargoServiceClient) ListImages(ctx context.Context, req *connect.Request[v1alpha1.ListImagesRequest]) (*connect.Response[v1alpha1.ListImagesResponse], error) {
	return c.listImages.CallUnary(ctx, req)
}

// GetStage calls akuity.io.kargo.service.v1alpha1.KargoService.GetStage.
func (c *kargoServiceClient) GetStage(ctx context.Context, req *connect.Request[v1alpha1.GetStageRequest]) (*connect.Response[v1alpha1.GetStageResponse], error) {
	return c.getStage.CallUnary(ctx, req)
}

// WatchStages calls akuity.io.kargo.service.v1alpha1.KargoService.WatchStages.
func (c *kargoServiceClient) WatchStages(ctx context.Context, req *connect.Request[v1alpha1.WatchStagesRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchStagesResponse], error) {
	return c.watchStages.CallServerStream(ctx, req)
}

// DeleteStage calls akuity.io.kargo.service.v1alpha1.KargoService.DeleteStage.
func (c *kargoServiceClient) DeleteStage(ctx context.Context, req *connect.Request[v1alpha1.DeleteStageRequest]) (*connect.Response[v1alpha1.DeleteStageResponse], error) {
	return c.deleteStage.CallUnary(ctx, req)
}

// RefreshStage calls akuity.io.kargo.service.v1alpha1.KargoService.RefreshStage.
func (c *kargoServiceClient) RefreshStage(ctx context.Context, req *connect.Request[v1alpha1.RefreshStageRequest]) (*connect.Response[v1alpha1.RefreshStageResponse], error) {
	return c.refreshStage.CallUnary(ctx, req)
}

// GetClusterConfig calls akuity.io.kargo.service.v1alpha1.KargoService.GetClusterConfig.
func (c *kargoServiceClient) GetClusterConfig(ctx context.Context, req *connect.Request[v1alpha1.GetClusterConfigRequest]) (*connect.Response[v1alpha1.GetClusterConfigResponse], error) {
	return c.getClusterConfig.CallUnary(ctx, req)
}

// DeleteClusterConfig calls akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterConfig.
func (c *kargoServiceClient) DeleteClusterConfig(ctx context.Context, req *connect.Request[v1alpha1.DeleteClusterConfigRequest]) (*connect.Response[v1alpha1.DeleteClusterConfigResponse], error) {
	return c.deleteClusterConfig.CallUnary(ctx, req)
}

// WatchClusterConfig calls akuity.io.kargo.service.v1alpha1.KargoService.WatchClusterConfig.
func (c *kargoServiceClient) WatchClusterConfig(ctx context.Context, req *connect.Request[v1alpha1.WatchClusterConfigRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchClusterConfigResponse], error) {
	return c.watchClusterConfig.CallServerStream(ctx, req)
}

// RefreshClusterConfig calls akuity.io.kargo.service.v1alpha1.KargoService.RefreshClusterConfig.
func (c *kargoServiceClient) RefreshClusterConfig(ctx context.Context, req *connect.Request[v1alpha1.RefreshClusterConfigRequest]) (*connect.Response[v1alpha1.RefreshClusterConfigResponse], error) {
	return c.refreshClusterConfig.CallUnary(ctx, req)
}

// ListPromotions calls akuity.io.kargo.service.v1alpha1.KargoService.ListPromotions.
func (c *kargoServiceClient) ListPromotions(ctx context.Context, req *connect.Request[v1alpha1.ListPromotionsRequest]) (*connect.Response[v1alpha1.ListPromotionsResponse], error) {
	return c.listPromotions.CallUnary(ctx, req)
}

// WatchPromotions calls akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotions.
func (c *kargoServiceClient) WatchPromotions(ctx context.Context, req *connect.Request[v1alpha1.WatchPromotionsRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchPromotionsResponse], error) {
	return c.watchPromotions.CallServerStream(ctx, req)
}

// GetPromotion calls akuity.io.kargo.service.v1alpha1.KargoService.GetPromotion.
func (c *kargoServiceClient) GetPromotion(ctx context.Context, req *connect.Request[v1alpha1.GetPromotionRequest]) (*connect.Response[v1alpha1.GetPromotionResponse], error) {
	return c.getPromotion.CallUnary(ctx, req)
}

// WatchPromotion calls akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotion.
func (c *kargoServiceClient) WatchPromotion(ctx context.Context, req *connect.Request[v1alpha1.WatchPromotionRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchPromotionResponse], error) {
	return c.watchPromotion.CallServerStream(ctx, req)
}

// AbortPromotion calls akuity.io.kargo.service.v1alpha1.KargoService.AbortPromotion.
func (c *kargoServiceClient) AbortPromotion(ctx context.Context, req *connect.Request[v1alpha1.AbortPromotionRequest]) (*connect.Response[v1alpha1.AbortPromotionResponse], error) {
	return c.abortPromotion.CallUnary(ctx, req)
}

// DeleteProject calls akuity.io.kargo.service.v1alpha1.KargoService.DeleteProject.
func (c *kargoServiceClient) DeleteProject(ctx context.Context, req *connect.Request[v1alpha1.DeleteProjectRequest]) (*connect.Response[v1alpha1.DeleteProjectResponse], error) {
	return c.deleteProject.CallUnary(ctx, req)
}

// GetProject calls akuity.io.kargo.service.v1alpha1.KargoService.GetProject.
func (c *kargoServiceClient) GetProject(ctx context.Context, req *connect.Request[v1alpha1.GetProjectRequest]) (*connect.Response[v1alpha1.GetProjectResponse], error) {
	return c.getProject.CallUnary(ctx, req)
}

// ListProjects calls akuity.io.kargo.service.v1alpha1.KargoService.ListProjects.
func (c *kargoServiceClient) ListProjects(ctx context.Context, req *connect.Request[v1alpha1.ListProjectsRequest]) (*connect.Response[v1alpha1.ListProjectsResponse], error) {
	return c.listProjects.CallUnary(ctx, req)
}

// GetProjectConfig calls akuity.io.kargo.service.v1alpha1.KargoService.GetProjectConfig.
func (c *kargoServiceClient) GetProjectConfig(ctx context.Context, req *connect.Request[v1alpha1.GetProjectConfigRequest]) (*connect.Response[v1alpha1.GetProjectConfigResponse], error) {
	return c.getProjectConfig.CallUnary(ctx, req)
}

// DeleteProjectConfig calls akuity.io.kargo.service.v1alpha1.KargoService.DeleteProjectConfig.
func (c *kargoServiceClient) DeleteProjectConfig(ctx context.Context, req *connect.Request[v1alpha1.DeleteProjectConfigRequest]) (*connect.Response[v1alpha1.DeleteProjectConfigResponse], error) {
	return c.deleteProjectConfig.CallUnary(ctx, req)
}

// WatchProjectConfig calls akuity.io.kargo.service.v1alpha1.KargoService.WatchProjectConfig.
func (c *kargoServiceClient) WatchProjectConfig(ctx context.Context, req *connect.Request[v1alpha1.WatchProjectConfigRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchProjectConfigResponse], error) {
	return c.watchProjectConfig.CallServerStream(ctx, req)
}

// RefreshProjectConfig calls akuity.io.kargo.service.v1alpha1.KargoService.RefreshProjectConfig.
func (c *kargoServiceClient) RefreshProjectConfig(ctx context.Context, req *connect.Request[v1alpha1.RefreshProjectConfigRequest]) (*connect.Response[v1alpha1.RefreshProjectConfigResponse], error) {
	return c.refreshProjectConfig.CallUnary(ctx, req)
}

// ApproveFreight calls akuity.io.kargo.service.v1alpha1.KargoService.ApproveFreight.
func (c *kargoServiceClient) ApproveFreight(ctx context.Context, req *connect.Request[v1alpha1.ApproveFreightRequest]) (*connect.Response[v1alpha1.ApproveFreightResponse], error) {
	return c.approveFreight.CallUnary(ctx, req)
}

// DeleteFreight calls akuity.io.kargo.service.v1alpha1.KargoService.DeleteFreight.
func (c *kargoServiceClient) DeleteFreight(ctx context.Context, req *connect.Request[v1alpha1.DeleteFreightRequest]) (*connect.Response[v1alpha1.DeleteFreightResponse], error) {
	return c.deleteFreight.CallUnary(ctx, req)
}

// GetFreight calls akuity.io.kargo.service.v1alpha1.KargoService.GetFreight.
func (c *kargoServiceClient) GetFreight(ctx context.Context, req *connect.Request[v1alpha1.GetFreightRequest]) (*connect.Response[v1alpha1.GetFreightResponse], error) {
	return c.getFreight.CallUnary(ctx, req)
}

// WatchFreight calls akuity.io.kargo.service.v1alpha1.KargoService.WatchFreight.
func (c *kargoServiceClient) WatchFreight(ctx context.Context, req *connect.Request[v1alpha1.WatchFreightRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchFreightResponse], error) {
	return c.watchFreight.CallServerStream(ctx, req)
}

// PromoteToStage calls akuity.io.kargo.service.v1alpha1.KargoService.PromoteToStage.
func (c *kargoServiceClient) PromoteToStage(ctx context.Context, req *connect.Request[v1alpha1.PromoteToStageRequest]) (*connect.Response[v1alpha1.PromoteToStageResponse], error) {
	return c.promoteToStage.CallUnary(ctx, req)
}

// PromoteDownstream calls akuity.io.kargo.service.v1alpha1.KargoService.PromoteDownstream.
func (c *kargoServiceClient) PromoteDownstream(ctx context.Context, req *connect.Request[v1alpha1.PromoteDownstreamRequest]) (*connect.Response[v1alpha1.PromoteDownstreamResponse], error) {
	return c.promoteDownstream.CallUnary(ctx, req)
}

// QueryFreight calls akuity.io.kargo.service.v1alpha1.KargoService.QueryFreight.
func (c *kargoServiceClient) QueryFreight(ctx context.Context, req *connect.Request[v1alpha1.QueryFreightRequest]) (*connect.Response[v1alpha1.QueryFreightResponse], error) {
	return c.queryFreight.CallUnary(ctx, req)
}

// UpdateFreightAlias calls akuity.io.kargo.service.v1alpha1.KargoService.UpdateFreightAlias.
func (c *kargoServiceClient) UpdateFreightAlias(ctx context.Context, req *connect.Request[v1alpha1.UpdateFreightAliasRequest]) (*connect.Response[v1alpha1.UpdateFreightAliasResponse], error) {
	return c.updateFreightAlias.CallUnary(ctx, req)
}

// Reverify calls akuity.io.kargo.service.v1alpha1.KargoService.Reverify.
func (c *kargoServiceClient) Reverify(ctx context.Context, req *connect.Request[v1alpha1.ReverifyRequest]) (*connect.Response[v1alpha1.ReverifyResponse], error) {
	return c.reverify.CallUnary(ctx, req)
}

// AbortVerification calls akuity.io.kargo.service.v1alpha1.KargoService.AbortVerification.
func (c *kargoServiceClient) AbortVerification(ctx context.Context, req *connect.Request[v1alpha1.AbortVerificationRequest]) (*connect.Response[v1alpha1.AbortVerificationResponse], error) {
	return c.abortVerification.CallUnary(ctx, req)
}

// ListWarehouses calls akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses.
func (c *kargoServiceClient) ListWarehouses(ctx context.Context, req *connect.Request[v1alpha1.ListWarehousesRequest]) (*connect.Response[v1alpha1.ListWarehousesResponse], error) {
	return c.listWarehouses.CallUnary(ctx, req)
}

// GetWarehouse calls akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse.
func (c *kargoServiceClient) GetWarehouse(ctx context.Context, req *connect.Request[v1alpha1.GetWarehouseRequest]) (*connect.Response[v1alpha1.GetWarehouseResponse], error) {
	return c.getWarehouse.CallUnary(ctx, req)
}

// WatchWarehouses calls akuity.io.kargo.service.v1alpha1.KargoService.WatchWarehouses.
func (c *kargoServiceClient) WatchWarehouses(ctx context.Context, req *connect.Request[v1alpha1.WatchWarehousesRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchWarehousesResponse], error) {
	return c.watchWarehouses.CallServerStream(ctx, req)
}

// DeleteWarehouse calls akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse.
func (c *kargoServiceClient) DeleteWarehouse(ctx context.Context, req *connect.Request[v1alpha1.DeleteWarehouseRequest]) (*connect.Response[v1alpha1.DeleteWarehouseResponse], error) {
	return c.deleteWarehouse.CallUnary(ctx, req)
}

// RefreshWarehouse calls akuity.io.kargo.service.v1alpha1.KargoService.RefreshWarehouse.
func (c *kargoServiceClient) RefreshWarehouse(ctx context.Context, req *connect.Request[v1alpha1.RefreshWarehouseRequest]) (*connect.Response[v1alpha1.RefreshWarehouseResponse], error) {
	return c.refreshWarehouse.CallUnary(ctx, req)
}

// CreateCredentials calls akuity.io.kargo.service.v1alpha1.KargoService.CreateCredentials.
func (c *kargoServiceClient) CreateCredentials(ctx context.Context, req *connect.Request[v1alpha1.CreateCredentialsRequest]) (*connect.Response[v1alpha1.CreateCredentialsResponse], error) {
	return c.createCredentials.CallUnary(ctx, req)
}

// DeleteCredentials calls akuity.io.kargo.service.v1alpha1.KargoService.DeleteCredentials.
func (c *kargoServiceClient) DeleteCredentials(ctx context.Context, req *connect.Request[v1alpha1.DeleteCredentialsRequest]) (*connect.Response[v1alpha1.DeleteCredentialsResponse], error) {
	return c.deleteCredentials.CallUnary(ctx, req)
}

// GetCredentials calls akuity.io.kargo.service.v1alpha1.KargoService.GetCredentials.
func (c *kargoServiceClient) GetCredentials(ctx context.Context, req *connect.Request[v1alpha1.GetCredentialsRequest]) (*connect.Response[v1alpha1.GetCredentialsResponse], error) {
	return c.getCredentials.CallUnary(ctx, req)
}

// ListCredentials calls akuity.io.kargo.service.v1alpha1.KargoService.ListCredentials.
func (c *kargoServiceClient) ListCredentials(ctx context.Context, req *connect.Request[v1alpha1.ListCredentialsRequest]) (*connect.Response[v1alpha1.ListCredentialsResponse], error) {
	return c.listCredentials.CallUnary(ctx, req)
}

// UpdateCredentials calls akuity.io.kargo.service.v1alpha1.KargoService.UpdateCredentials.
func (c *kargoServiceClient) UpdateCredentials(ctx context.Context, req *connect.Request[v1alpha1.UpdateCredentialsRequest]) (*connect.Response[v1alpha1.UpdateCredentialsResponse], error) {
	return c.updateCredentials.CallUnary(ctx, req)
}

// ListProjectSecrets calls akuity.io.kargo.service.v1alpha1.KargoService.ListProjectSecrets.
func (c *kargoServiceClient) ListProjectSecrets(ctx context.Context, req *connect.Request[v1alpha1.ListProjectSecretsRequest]) (*connect.Response[v1alpha1.ListProjectSecretsResponse], error) {
	return c.listProjectSecrets.CallUnary(ctx, req)
}

// CreateProjectSecret calls akuity.io.kargo.service.v1alpha1.KargoService.CreateProjectSecret.
func (c *kargoServiceClient) CreateProjectSecret(ctx context.Context, req *connect.Request[v1alpha1.CreateProjectSecretRequest]) (*connect.Response[v1alpha1.CreateProjectSecretResponse], error) {
	return c.createProjectSecret.CallUnary(ctx, req)
}

// UpdateProjectSecret calls akuity.io.kargo.service.v1alpha1.KargoService.UpdateProjectSecret.
func (c *kargoServiceClient) UpdateProjectSecret(ctx context.Context, req *connect.Request[v1alpha1.UpdateProjectSecretRequest]) (*connect.Response[v1alpha1.UpdateProjectSecretResponse], error) {
	return c.updateProjectSecret.CallUnary(ctx, req)
}

// DeleteProjectSecret calls akuity.io.kargo.service.v1alpha1.KargoService.DeleteProjectSecret.
func (c *kargoServiceClient) DeleteProjectSecret(ctx context.Context, req *connect.Request[v1alpha1.DeleteProjectSecretRequest]) (*connect.Response[v1alpha1.DeleteProjectSecretResponse], error) {
	return c.deleteProjectSecret.CallUnary(ctx, req)
}

// ListConfigMaps calls akuity.io.kargo.service.v1alpha1.KargoService.ListConfigMaps.
func (c *kargoServiceClient) ListConfigMaps(ctx context.Context, req *connect.Request[v1alpha1.ListConfigMapsRequest]) (*connect.Response[v1alpha1.ListConfigMapsResponse], error) {
	return c.listConfigMaps.CallUnary(ctx, req)
}

// GetConfigMap calls akuity.io.kargo.service.v1alpha1.KargoService.GetConfigMap.
func (c *kargoServiceClient) GetConfigMap(ctx context.Context, req *connect.Request[v1alpha1.GetConfigMapRequest]) (*connect.Response[v1alpha1.GetConfigMapResponse], error) {
	return c.getConfigMap.CallUnary(ctx, req)
}

// ListAnalysisTemplates calls akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplates.
func (c *kargoServiceClient) ListAnalysisTemplates(ctx context.Context, req *connect.Request[v1alpha1.ListAnalysisTemplatesRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplatesResponse], error) {
	return c.listAnalysisTemplates.CallUnary(ctx, req)
}

// GetAnalysisTemplate calls akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplate.
func (c *kargoServiceClient) GetAnalysisTemplate(ctx context.Context, req *connect.Request[v1alpha1.GetAnalysisTemplateRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateResponse], error) {
	return c.getAnalysisTemplate.CallUnary(ctx, req)
}

// DeleteAnalysisTemplate calls
// akuity.io.kargo.service.v1alpha1.KargoService.DeleteAnalysisTemplate.
func (c *kargoServiceClient) DeleteAnalysisTemplate(ctx context.Context, req *connect.Request[v1alpha1.DeleteAnalysisTemplateRequest]) (*connect.Response[v1alpha1.DeleteAnalysisTemplateResponse], error) {
	return c.deleteAnalysisTemplate.CallUnary(ctx, req)
}

// ListClusterAnalysisTemplates calls
// akuity.io.kargo.service.v1alpha1.KargoService.ListClusterAnalysisTemplates.
func (c *kargoServiceClient) ListClusterAnalysisTemplates(ctx context.Context, req *connect.Request[v1alpha1.ListClusterAnalysisTemplatesRequest]) (*connect.Response[v1alpha1.ListClusterAnalysisTemplatesResponse], error) {
	return c.listClusterAnalysisTemplates.CallUnary(ctx, req)
}

// GetClusterAnalysisTemplate calls
// akuity.io.kargo.service.v1alpha1.KargoService.GetClusterAnalysisTemplate.
func (c *kargoServiceClient) GetClusterAnalysisTemplate(ctx context.Context, req *connect.Request[v1alpha1.GetClusterAnalysisTemplateRequest]) (*connect.Response[v1alpha1.GetClusterAnalysisTemplateResponse], error) {
	return c.getClusterAnalysisTemplate.CallUnary(ctx, req)
}

// DeleteClusterAnalysisTemplate calls
// akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterAnalysisTemplate.
func (c *kargoServiceClient) DeleteClusterAnalysisTemplate(ctx context.Context, req *connect.Request[v1alpha1.DeleteClusterAnalysisTemplateRequest]) (*connect.Response[v1alpha1.DeleteClusterAnalysisTemplateResponse], error) {
	return c.deleteClusterAnalysisTemplate.CallUnary(ctx, req)
}

// GetAnalysisRun calls akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRun.
func (c *kargoServiceClient) GetAnalysisRun(ctx context.Context, req *connect.Request[v1alpha1.GetAnalysisRunRequest]) (*connect.Response[v1alpha1.GetAnalysisRunResponse], error) {
	return c.getAnalysisRun.CallUnary(ctx, req)
}

// GetAnalysisRunLogs calls akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRunLogs.
func (c *kargoServiceClient) GetAnalysisRunLogs(ctx context.Context, req *connect.Request[v1alpha1.GetAnalysisRunLogsRequest]) (*connect.ServerStreamForClient[v1alpha1.GetAnalysisRunLogsResponse], error) {
	return c.getAnalysisRunLogs.CallServerStream(ctx, req)
}

// ListProjectEvents calls akuity.io.kargo.service.v1alpha1.KargoService.ListProjectEvents.
func (c *kargoServiceClient) ListProjectEvents(ctx context.Context, req *connect.Request[v1alpha1.ListProjectEventsRequest]) (*connect.Response[v1alpha1.ListProjectEventsResponse], error) {
	return c.listProjectEvents.CallUnary(ctx, req)
}

// ListPromotionTasks calls akuity.io.kargo.service.v1alpha1.KargoService.ListPromotionTasks.
func (c *kargoServiceClient) ListPromotionTasks(ctx context.Context, req *connect.Request[v1alpha1.ListPromotionTasksRequest]) (*connect.Response[v1alpha1.ListPromotionTasksResponse], error) {
	return c.listPromotionTasks.CallUnary(ctx, req)
}

// ListClusterPromotionTasks calls
// akuity.io.kargo.service.v1alpha1.KargoService.ListClusterPromotionTasks.
func (c *kargoServiceClient) ListClusterPromotionTasks(ctx context.Context, req *connect.Request[v1alpha1.ListClusterPromotionTasksRequest]) (*connect.Response[v1alpha1.ListClusterPromotionTasksResponse], error) {
	return c.listClusterPromotionTasks.CallUnary(ctx, req)
}

// GetPromotionTask calls akuity.io.kargo.service.v1alpha1.KargoService.GetPromotionTask.
func (c *kargoServiceClient) GetPromotionTask(ctx context.Context, req *connect.Request[v1alpha1.GetPromotionTaskRequest]) (*connect.Response[v1alpha1.GetPromotionTaskResponse], error) {
	return c.getPromotionTask.CallUnary(ctx, req)
}

// GetClusterPromotionTask calls
// akuity.io.kargo.service.v1alpha1.KargoService.GetClusterPromotionTask.
func (c *kargoServiceClient) GetClusterPromotionTask(ctx context.Context, req *connect.Request[v1alpha1.GetClusterPromotionTaskRequest]) (*connect.Response[v1alpha1.GetClusterPromotionTaskResponse], error) {
	return c.getClusterPromotionTask.CallUnary(ctx, req)
}

// CreateRole calls akuity.io.kargo.service.v1alpha1.KargoService.CreateRole.
func (c *kargoServiceClient) CreateRole(ctx context.Context, req *connect.Request[v1alpha1.CreateRoleRequest]) (*connect.Response[v1alpha1.CreateRoleResponse], error) {
	return c.createRole.CallUnary(ctx, req)
}

// DeleteRole calls akuity.io.kargo.service.v1alpha1.KargoService.DeleteRole.
func (c *kargoServiceClient) DeleteRole(ctx context.Context, req *connect.Request[v1alpha1.DeleteRoleRequest]) (*connect.Response[v1alpha1.DeleteRoleResponse], error) {
	return c.deleteRole.CallUnary(ctx, req)
}

// GetRole calls akuity.io.kargo.service.v1alpha1.KargoService.GetRole.
func (c *kargoServiceClient) GetRole(ctx context.Context, req *connect.Request[v1alpha1.GetRoleRequest]) (*connect.Response[v1alpha1.GetRoleResponse], error) {
	return c.getRole.CallUnary(ctx, req)
}

// Grant calls akuity.io.kargo.service.v1alpha1.KargoService.Grant.
func (c *kargoServiceClient) Grant(ctx context.Context, req *connect.Request[v1alpha1.GrantRequest]) (*connect.Response[v1alpha1.GrantResponse], error) {
	return c.grant.CallUnary(ctx, req)
}

// ListRoles calls akuity.io.kargo.service.v1alpha1.KargoService.ListRoles.
func (c *kargoServiceClient) ListRoles(ctx context.Context, req *connect.Request[v1alpha1.ListRolesRequest]) (*connect.Response[v1alpha1.ListRolesResponse], error) {
	return c.listRoles.CallUnary(ctx, req)
}

// Revoke calls akuity.io.kargo.service.v1alpha1.KargoService.Revoke.
func (c *kargoServiceClient) Revoke(ctx context.Context, req *connect.Request[v1alpha1.RevokeRequest]) (*connect.Response[v1alpha1.RevokeResponse], error) {
	return c.revoke.CallUnary(ctx, req)
}

// UpdateRole calls akuity.io.kargo.service.v1alpha1.KargoService.UpdateRole.
func (c *kargoServiceClient) UpdateRole(ctx context.Context, req *connect.Request[v1alpha1.UpdateRoleRequest]) (*connect.Response[v1alpha1.UpdateRoleResponse], error) {
	return c.updateRole.CallUnary(ctx, req)
}

// ListClusterSecrets calls akuity.io.kargo.service.v1alpha1.KargoService.ListClusterSecrets.
func (c *kargoServiceClient) ListClusterSecrets(ctx context.Context, req *connect.Request[v1alpha1.ListClusterSecretsRequest]) (*connect.Response[v1alpha1.ListClusterSecretsResponse], error) {
	return c.listClusterSecrets.CallUnary(ctx, req)
}

// CreateClusterSecret calls akuity.io.kargo.service.v1alpha1.KargoService.CreateClusterSecret.
func (c *kargoServiceClient) CreateClusterSecret(ctx context.Context, req *connect.Request[v1alpha1.CreateClusterSecretRequest]) (*connect.Response[v1alpha1.CreateClusterSecretResponse], error) {
	return c.createClusterSecret.CallUnary(ctx, req)
}

// UpdateClusterSecret calls akuity.io.kargo.service.v1alpha1.KargoService.UpdateClusterSecret.
func (c *kargoServiceClient) UpdateClusterSecret(ctx context.Context, req *connect.Request[v1alpha1.UpdateClusterSecretRequest]) (*connect.Response[v1alpha1.UpdateClusterSecretResponse], error) {
	return c.updateClusterSecret.CallUnary(ctx, req)
}

// DeleteClusterSecret calls akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterSecret.
func (c *kargoServiceClient) DeleteClusterSecret(ctx context.Context, req *connect.Request[v1alpha1.DeleteClusterSecretRequest]) (*connect.Response[v1alpha1.DeleteClusterSecretResponse], error) {
	return c.deleteClusterSecret.CallUnary(ctx, req)
}

// KargoServiceHandler is an implementation of the akuity.io.kargo.service.v1alpha1.KargoService
// service.
type KargoServiceHandler interface {
	// GetVersionInfo returns version information for the Kargo server.
	GetVersionInfo(context.Context, *connect.Request[v1alpha1.GetVersionInfoRequest]) (*connect.Response[v1alpha1.GetVersionInfoResponse], error)
	// GetConfig retrieves the server configuration including ArgoCD shard information.
	GetConfig(context.Context, *connect.Request[v1alpha1.GetConfigRequest]) (*connect.Response[v1alpha1.GetConfigResponse], error)
	// GetPublicConfig returns publicly accessible configuration including OIDC settings.
	GetPublicConfig(context.Context, *connect.Request[v1alpha1.GetPublicConfigRequest]) (*connect.Response[v1alpha1.GetPublicConfigResponse], error)
	// AdminLogin authenticates an admin user and returns an access token.
	AdminLogin(context.Context, *connect.Request[v1alpha1.AdminLoginRequest]) (*connect.Response[v1alpha1.AdminLoginResponse], error)
	// TODO(devholic): Add ApplyResource API
	// rpc ApplyResource(ApplyResourceRequest) returns (ApplyResourceRequest);
	// CreateResource creates new Kubernetes resources from provided manifests.
	CreateResource(context.Context, *connect.Request[v1alpha1.CreateResourceRequest]) (*connect.Response[v1alpha1.CreateResourceResponse], error)
	// CreateOrUpdateResource creates or updates Kubernetes resources based on provided manifests.
	CreateOrUpdateResource(context.Context, *connect.Request[v1alpha1.CreateOrUpdateResourceRequest]) (*connect.Response[v1alpha1.CreateOrUpdateResourceResponse], error)
	// UpdateResource updates existing Kubernetes resources with provided manifests.
	UpdateResource(context.Context, *connect.Request[v1alpha1.UpdateResourceRequest]) (*connect.Response[v1alpha1.UpdateResourceResponse], error)
	// DeleteResource deletes Kubernetes resources specified in the provided manifests.
	DeleteResource(context.Context, *connect.Request[v1alpha1.DeleteResourceRequest]) (*connect.Response[v1alpha1.DeleteResourceResponse], error)
	// ListStages retrieves all stages within a project.
	ListStages(context.Context, *connect.Request[v1alpha1.ListStagesRequest]) (*connect.Response[v1alpha1.ListStagesResponse], error)
	// ListImages returns available images and their usage across stages.
	ListImages(context.Context, *connect.Request[v1alpha1.ListImagesRequest]) (*connect.Response[v1alpha1.ListImagesResponse], error)
	// GetStage retrieves details of a specific stage.
	GetStage(context.Context, *connect.Request[v1alpha1.GetStageRequest]) (*connect.Response[v1alpha1.GetStageResponse], error)
	// WatchStages provides a streaming interface to monitor stage changes.
	WatchStages(context.Context, *connect.Request[v1alpha1.WatchStagesRequest], *connect.ServerStream[v1alpha1.WatchStagesResponse]) error
	// DeleteStage removes a stage from the system.
	DeleteStage(context.Context, *connect.Request[v1alpha1.DeleteStageRequest]) (*connect.Response[v1alpha1.DeleteStageResponse], error)
	// RefreshStage triggers a refresh of stage status and health checks.
	RefreshStage(context.Context, *connect.Request[v1alpha1.RefreshStageRequest]) (*connect.Response[v1alpha1.RefreshStageResponse], error)
	// GetClusterConfig retrieves cluster-level configuration settings.
	GetClusterConfig(context.Context, *connect.Request[v1alpha1.GetClusterConfigRequest]) (*connect.Response[v1alpha1.GetClusterConfigResponse], error)
	// DeleteClusterConfig removes cluster-level configuration.
	DeleteClusterConfig(context.Context, *connect.Request[v1alpha1.DeleteClusterConfigRequest]) (*connect.Response[v1alpha1.DeleteClusterConfigResponse], error)
	// WatchClusterConfig provides streaming updates for cluster configuration changes.
	WatchClusterConfig(context.Context, *connect.Request[v1alpha1.WatchClusterConfigRequest], *connect.ServerStream[v1alpha1.WatchClusterConfigResponse]) error
	// RefreshClusterConfig triggers a refresh of cluster configuration.
	RefreshClusterConfig(context.Context, *connect.Request[v1alpha1.RefreshClusterConfigRequest]) (*connect.Response[v1alpha1.RefreshClusterConfigResponse], error)
	// ListPromotions retrieves all promotions, optionally filtered by stage.
	ListPromotions(context.Context, *connect.Request[v1alpha1.ListPromotionsRequest]) (*connect.Response[v1alpha1.ListPromotionsResponse], error)
	// WatchPromotions provides streaming updates for promotion changes.
	WatchPromotions(context.Context, *connect.Request[v1alpha1.WatchPromotionsRequest], *connect.ServerStream[v1alpha1.WatchPromotionsResponse]) error
	// GetPromotion retrieves details of a specific promotion.
	GetPromotion(context.Context, *connect.Request[v1alpha1.GetPromotionRequest]) (*connect.Response[v1alpha1.GetPromotionResponse], error)
	// WatchPromotion provides streaming updates for a specific promotion.
	WatchPromotion(context.Context, *connect.Request[v1alpha1.WatchPromotionRequest], *connect.ServerStream[v1alpha1.WatchPromotionResponse]) error
	// AbortPromotion cancels a running promotion process.
	AbortPromotion(context.Context, *connect.Request[v1alpha1.AbortPromotionRequest]) (*connect.Response[v1alpha1.AbortPromotionResponse], error)
	// DeleteProject removes a project and all associated resources.
	DeleteProject(context.Context, *connect.Request[v1alpha1.DeleteProjectRequest]) (*connect.Response[v1alpha1.DeleteProjectResponse], error)
	// GetProject retrieves details of a specific project.
	GetProject(context.Context, *connect.Request[v1alpha1.GetProjectRequest]) (*connect.Response[v1alpha1.GetProjectResponse], error)
	// ListProjects retrieves all projects with optional filtering and pagination.
	ListProjects(context.Context, *connect.Request[v1alpha1.ListProjectsRequest]) (*connect.Response[v1alpha1.ListProjectsResponse], error)
	// GetProjectConfig retrieves project-level configuration settings.
	GetProjectConfig(context.Context, *connect.Request[v1alpha1.GetProjectConfigRequest]) (*connect.Response[v1alpha1.GetProjectConfigResponse], error)
	// DeleteProjectConfig removes project-level configuration.
	DeleteProjectConfig(context.Context, *connect.Request[v1alpha1.DeleteProjectConfigRequest]) (*connect.Response[v1alpha1.DeleteProjectConfigResponse], error)
	// WatchProjectConfig provides streaming updates for project configuration changes.
	WatchProjectConfig(context.Context, *connect.Request[v1alpha1.WatchProjectConfigRequest], *connect.ServerStream[v1alpha1.WatchProjectConfigResponse]) error
	// RefreshProjectConfig triggers a refresh of project configuration.
	RefreshProjectConfig(context.Context, *connect.Request[v1alpha1.RefreshProjectConfigRequest]) (*connect.Response[v1alpha1.RefreshProjectConfigResponse], error)
	// ApproveFreight marks freight as approved for promotion to a specific stage.
	ApproveFreight(context.Context, *connect.Request[v1alpha1.ApproveFreightRequest]) (*connect.Response[v1alpha1.ApproveFreightResponse], error)
	// DeleteFreight removes freight from the system.
	DeleteFreight(context.Context, *connect.Request[v1alpha1.DeleteFreightRequest]) (*connect.Response[v1alpha1.DeleteFreightResponse], error)
	// GetFreight retrieves details of specific freight.
	GetFreight(context.Context, *connect.Request[v1alpha1.GetFreightRequest]) (*connect.Response[v1alpha1.GetFreightResponse], error)
	// WatchFreight provides streaming updates for freight changes.
	WatchFreight(context.Context, *connect.Request[v1alpha1.WatchFreightRequest], *connect.ServerStream[v1alpha1.WatchFreightResponse]) error
	// PromoteToStage initiates a promotion of freight to a specific stage.
	PromoteToStage(context.Context, *connect.Request[v1alpha1.PromoteToStageRequest]) (*connect.Response[v1alpha1.PromoteToStageResponse], error)
	// PromoteDownstream automatically promotes freight to downstream stages.
	PromoteDownstream(context.Context, *connect.Request[v1alpha1.PromoteDownstreamRequest]) (*connect.Response[v1alpha1.PromoteDownstreamResponse], error)
	// QueryFreight searches for freight based on specified criteria.
	QueryFreight(context.Context, *connect.Request[v1alpha1.QueryFreightRequest]) (*connect.Response[v1alpha1.QueryFreightResponse], error)
	// UpdateFreightAlias changes the alias associated with specific freight.
	UpdateFreightAlias(context.Context, *connect.Request[v1alpha1.UpdateFreightAliasRequest]) (*connect.Response[v1alpha1.UpdateFreightAliasResponse], error)
	// Reverify triggers re-execution of verification processes for a stage.
	Reverify(context.Context, *connect.Request[v1alpha1.ReverifyRequest]) (*connect.Response[v1alpha1.ReverifyResponse], error)
	// AbortVerification cancels running verification processes for a stage.
	AbortVerification(context.Context, *connect.Request[v1alpha1.AbortVerificationRequest]) (*connect.Response[v1alpha1.AbortVerificationResponse], error)
	// ListWarehouses retrieves all warehouses within a project.
	ListWarehouses(context.Context, *connect.Request[v1alpha1.ListWarehousesRequest]) (*connect.Response[v1alpha1.ListWarehousesResponse], error)
	// GetWarehouse retrieves details of a specific warehouse.
	GetWarehouse(context.Context, *connect.Request[v1alpha1.GetWarehouseRequest]) (*connect.Response[v1alpha1.GetWarehouseResponse], error)
	// WatchWarehouses provides streaming updates for warehouse changes.
	WatchWarehouses(context.Context, *connect.Request[v1alpha1.WatchWarehousesRequest], *connect.ServerStream[v1alpha1.WatchWarehousesResponse]) error
	// DeleteWarehouse removes a warehouse from the system.
	DeleteWarehouse(context.Context, *connect.Request[v1alpha1.DeleteWarehouseRequest]) (*connect.Response[v1alpha1.DeleteWarehouseResponse], error)
	// RefreshWarehouse triggers a refresh of warehouse status and freight discovery.
	RefreshWarehouse(context.Context, *connect.Request[v1alpha1.RefreshWarehouseRequest]) (*connect.Response[v1alpha1.RefreshWarehouseResponse], error)
	// CreateCredentials creates new credentials for accessing external resources.
	CreateCredentials(context.Context, *connect.Request[v1alpha1.CreateCredentialsRequest]) (*connect.Response[v1alpha1.CreateCredentialsResponse], error)
	// DeleteCredentials removes credentials from the system.
	DeleteCredentials(context.Context, *connect.Request[v1alpha1.DeleteCredentialsRequest]) (*connect.Response[v1alpha1.DeleteCredentialsResponse], error)
	// GetCredentials retrieves details of specific credentials.
	GetCredentials(context.Context, *connect.Request[v1alpha1.GetCredentialsRequest]) (*connect.Response[v1alpha1.GetCredentialsResponse], error)
	// ListCredentials retrieves all credentials within a project.
	ListCredentials(context.Context, *connect.Request[v1alpha1.ListCredentialsRequest]) (*connect.Response[v1alpha1.ListCredentialsResponse], error)
	// UpdateCredentials modifies existing credentials.
	UpdateCredentials(context.Context, *connect.Request[v1alpha1.UpdateCredentialsRequest]) (*connect.Response[v1alpha1.UpdateCredentialsResponse], error)
	// ListProjectSecrets retrieves all secrets within a project.
	ListProjectSecrets(context.Context, *connect.Request[v1alpha1.ListProjectSecretsRequest]) (*connect.Response[v1alpha1.ListProjectSecretsResponse], error)
	// CreateProjectSecret creates a new secret within a project.
	CreateProjectSecret(context.Context, *connect.Request[v1alpha1.CreateProjectSecretRequest]) (*connect.Response[v1alpha1.CreateProjectSecretResponse], error)
	// UpdateProjectSecret modifies an existing project secret.
	UpdateProjectSecret(context.Context, *connect.Request[v1alpha1.UpdateProjectSecretRequest]) (*connect.Response[v1alpha1.UpdateProjectSecretResponse], error)
	// DeleteProjectSecret removes a secret from a project.
	DeleteProjectSecret(context.Context, *connect.Request[v1alpha1.DeleteProjectSecretRequest]) (*connect.Response[v1alpha1.DeleteProjectSecretResponse], error)
	// ListConfigMaps retrieves all ConfigMaps within a project.
	ListConfigMaps(context.Context, *connect.Request[v1alpha1.ListConfigMapsRequest]) (*connect.Response[v1alpha1.ListConfigMapsResponse], error)
	// GetConfigMap retrieves details of a specific ConfigMap.
	GetConfigMap(context.Context, *connect.Request[v1alpha1.GetConfigMapRequest]) (*connect.Response[v1alpha1.GetConfigMapResponse], error)
	// ListAnalysisTemplates retrieves all AnalysisTemplates within a project.
	ListAnalysisTemplates(context.Context, *connect.Request[v1alpha1.ListAnalysisTemplatesRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplatesResponse], error)
	// GetAnalysisTemplate retrieves details of a specific AnalysisTemplate.
	GetAnalysisTemplate(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateResponse], error)
	// DeleteAnalysisTemplate removes an AnalysisTemplate from a project.
	DeleteAnalysisTemplate(context.Context, *connect.Request[v1alpha1.DeleteAnalysisTemplateRequest]) (*connect.Response[v1alpha1.DeleteAnalysisTemplateResponse], error)
	// ListClusterAnalysisTemplates retrieves all cluster-scoped AnalysisTemplates.
	ListClusterAnalysisTemplates(context.Context, *connect.Request[v1alpha1.ListClusterAnalysisTemplatesRequest]) (*connect.Response[v1alpha1.ListClusterAnalysisTemplatesResponse], error)
	// GetClusterAnalysisTemplate retrieves details of a specific cluster-scoped AnalysisTemplate.
	GetClusterAnalysisTemplate(context.Context, *connect.Request[v1alpha1.GetClusterAnalysisTemplateRequest]) (*connect.Response[v1alpha1.GetClusterAnalysisTemplateResponse], error)
	// DeleteClusterAnalysisTemplate removes a cluster-scoped AnalysisTemplate.
	DeleteClusterAnalysisTemplate(context.Context, *connect.Request[v1alpha1.DeleteClusterAnalysisTemplateRequest]) (*connect.Response[v1alpha1.DeleteClusterAnalysisTemplateResponse], error)
	// GetAnalysisRun retrieves details of a specific AnalysisRun.
	GetAnalysisRun(context.Context, *connect.Request[v1alpha1.GetAnalysisRunRequest]) (*connect.Response[v1alpha1.GetAnalysisRunResponse], error)
	// GetAnalysisRunLogs streams logs from an AnalysisRun.
	GetAnalysisRunLogs(context.Context, *connect.Request[v1alpha1.GetAnalysisRunLogsRequest], *connect.ServerStream[v1alpha1.GetAnalysisRunLogsResponse]) error
	// ListProjectEvents retrieves events associated with a project.
	ListProjectEvents(context.Context, *connect.Request[v1alpha1.ListProjectEventsRequest]) (*connect.Response[v1alpha1.ListProjectEventsResponse], error)
	// ListPromotionTasks retrieves all PromotionTasks within a project.
	ListPromotionTasks(context.Context, *connect.Request[v1alpha1.ListPromotionTasksRequest]) (*connect.Response[v1alpha1.ListPromotionTasksResponse], error)
	// ListClusterPromotionTasks retrieves all cluster-scoped PromotionTasks.
	ListClusterPromotionTasks(context.Context, *connect.Request[v1alpha1.ListClusterPromotionTasksRequest]) (*connect.Response[v1alpha1.ListClusterPromotionTasksResponse], error)
	// GetPromotionTask retrieves details of a specific PromotionTask.
	GetPromotionTask(context.Context, *connect.Request[v1alpha1.GetPromotionTaskRequest]) (*connect.Response[v1alpha1.GetPromotionTaskResponse], error)
	// GetClusterPromotionTask retrieves details of a specific cluster-scoped PromotionTask.
	GetClusterPromotionTask(context.Context, *connect.Request[v1alpha1.GetClusterPromotionTaskRequest]) (*connect.Response[v1alpha1.GetClusterPromotionTaskResponse], error)
	// CreateRole creates a new RBAC role within a project.
	CreateRole(context.Context, *connect.Request[v1alpha1.CreateRoleRequest]) (*connect.Response[v1alpha1.CreateRoleResponse], error)
	// DeleteRole removes an RBAC role from a project.
	DeleteRole(context.Context, *connect.Request[v1alpha1.DeleteRoleRequest]) (*connect.Response[v1alpha1.DeleteRoleResponse], error)
	// GetRole retrieves details of a specific RBAC role.
	GetRole(context.Context, *connect.Request[v1alpha1.GetRoleRequest]) (*connect.Response[v1alpha1.GetRoleResponse], error)
	// Grant assigns permissions or binds users/services to a role.
	Grant(context.Context, *connect.Request[v1alpha1.GrantRequest]) (*connect.Response[v1alpha1.GrantResponse], error)
	// ListRoles retrieves all RBAC roles within a project.
	ListRoles(context.Context, *connect.Request[v1alpha1.ListRolesRequest]) (*connect.Response[v1alpha1.ListRolesResponse], error)
	// Revoke removes permissions or unbinds users/services from a role.
	Revoke(context.Context, *connect.Request[v1alpha1.RevokeRequest]) (*connect.Response[v1alpha1.RevokeResponse], error)
	// UpdateRole modifies an existing RBAC role.
	UpdateRole(context.Context, *connect.Request[v1alpha1.UpdateRoleRequest]) (*connect.Response[v1alpha1.UpdateRoleResponse], error)
	// ListClusterSecrets retrieves all cluster-scoped secrets.
	ListClusterSecrets(context.Context, *connect.Request[v1alpha1.ListClusterSecretsRequest]) (*connect.Response[v1alpha1.ListClusterSecretsResponse], error)
	// CreateClusterSecret creates a new cluster-scoped secret.
	CreateClusterSecret(context.Context, *connect.Request[v1alpha1.CreateClusterSecretRequest]) (*connect.Response[v1alpha1.CreateClusterSecretResponse], error)
	// UpdateClusterSecret modifies an existing cluster-scoped secret.
	UpdateClusterSecret(context.Context, *connect.Request[v1alpha1.UpdateClusterSecretRequest]) (*connect.Response[v1alpha1.UpdateClusterSecretResponse], error)
	// DeleteClusterSecret removes a cluster-scoped secret.
	DeleteClusterSecret(context.Context, *connect.Request[v1alpha1.DeleteClusterSecretRequest]) (*connect.Response[v1alpha1.DeleteClusterSecretResponse], error)
}

// NewKargoServiceHandler builds an HTTP handler from the service implementation. It returns the
// path on which to mount the handler and the handler itself.
//
// By default, handlers support the Connect, gRPC, and gRPC-Web protocols with the binary Protobuf
// and JSON codecs. They also support gzip compression.
func NewKargoServiceHandler(svc KargoServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) {
	kargoServiceGetVersionInfoHandler := connect.NewUnaryHandler(
		KargoServiceGetVersionInfoProcedure,
		svc.GetVersionInfo,
		connect.WithSchema(kargoServiceGetVersionInfoMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetConfigHandler := connect.NewUnaryHandler(
		KargoServiceGetConfigProcedure,
		svc.GetConfig,
		connect.WithSchema(kargoServiceGetConfigMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetPublicConfigHandler := connect.NewUnaryHandler(
		KargoServiceGetPublicConfigProcedure,
		svc.GetPublicConfig,
		connect.WithSchema(kargoServiceGetPublicConfigMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceAdminLoginHandler := connect.NewUnaryHandler(
		KargoServiceAdminLoginProcedure,
		svc.AdminLogin,
		connect.WithSchema(kargoServiceAdminLoginMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceCreateResourceHandler := connect.NewUnaryHandler(
		KargoServiceCreateResourceProcedure,
		svc.CreateResource,
		connect.WithSchema(kargoServiceCreateResourceMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceCreateOrUpdateResourceHandler := connect.NewUnaryHandler(
		KargoServiceCreateOrUpdateResourceProcedure,
		svc.CreateOrUpdateResource,
		connect.WithSchema(kargoServiceCreateOrUpdateResourceMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceUpdateResourceHandler := connect.NewUnaryHandler(
		KargoServiceUpdateResourceProcedure,
		svc.UpdateResource,
		connect.WithSchema(kargoServiceUpdateResourceMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceDeleteResourceHandler := connect.NewUnaryHandler(
		KargoServiceDeleteResourceProcedure,
		svc.DeleteResource,
		connect.WithSchema(kargoServiceDeleteResourceMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListStagesHandler := connect.NewUnaryHandler(
		KargoServiceListStagesProcedure,
		svc.ListStages,
		connect.WithSchema(kargoServiceListStagesMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListImagesHandler := connect.NewUnaryHandler(
		KargoServiceListImagesProcedure,
		svc.ListImages,
		connect.WithSchema(kargoServiceListImagesMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetStageHandler := connect.NewUnaryHandler(
		KargoServiceGetStageProcedure,
		svc.GetStage,
		connect.WithSchema(kargoServiceGetStageMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceWatchStagesHandler := connect.NewServerStreamHandler(
		KargoServiceWatchStagesProcedure,
		svc.WatchStages,
		connect.WithSchema(kargoServiceWatchStagesMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceDeleteStageHandler := connect.NewUnaryHandler(
		KargoServiceDeleteStageProcedure,
		svc.DeleteStage,
		connect.WithSchema(kargoServiceDeleteStageMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceRefreshStageHandler := connect.NewUnaryHandler(
		KargoServiceRefreshStageProcedure,
		svc.RefreshStage,
		connect.WithSchema(kargoServiceRefreshStageMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetClusterConfigHandler := connect.NewUnaryHandler(
		KargoServiceGetClusterConfigProcedure,
		svc.GetClusterConfig,
		connect.WithSchema(kargoServiceGetClusterConfigMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceDeleteClusterConfigHandler := connect.NewUnaryHandler(
		KargoServiceDeleteClusterConfigProcedure,
		svc.DeleteClusterConfig,
		connect.WithSchema(kargoServiceDeleteClusterConfigMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceWatchClusterConfigHandler := connect.NewServerStreamHandler(
		KargoServiceWatchClusterConfigProcedure,
		svc.WatchClusterConfig,
		connect.WithSchema(kargoServiceWatchClusterConfigMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceRefreshClusterConfigHandler := connect.NewUnaryHandler(
		KargoServiceRefreshClusterConfigProcedure,
		svc.RefreshClusterConfig,
		connect.WithSchema(kargoServiceRefreshClusterConfigMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListPromotionsHandler := connect.NewUnaryHandler(
		KargoServiceListPromotionsProcedure,
		svc.ListPromotions,
		connect.WithSchema(kargoServiceListPromotionsMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceWatchPromotionsHandler := connect.NewServerStreamHandler(
		KargoServiceWatchPromotionsProcedure,
		svc.WatchPromotions,
		connect.WithSchema(kargoServiceWatchPromotionsMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetPromotionHandler := connect.NewUnaryHandler(
		KargoServiceGetPromotionProcedure,
		svc.GetPromotion,
		connect.WithSchema(kargoServiceGetPromotionMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceWatchPromotionHandler := connect.NewServerStreamHandler(
		KargoServiceWatchPromotionProcedure,
		svc.WatchPromotion,
		connect.WithSchema(kargoServiceWatchPromotionMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceAbortPromotionHandler := connect.NewUnaryHandler(
		KargoServiceAbortPromotionProcedure,
		svc.AbortPromotion,
		connect.WithSchema(kargoServiceAbortPromotionMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceDeleteProjectHandler := connect.NewUnaryHandler(
		KargoServiceDeleteProjectProcedure,
		svc.DeleteProject,
		connect.WithSchema(kargoServiceDeleteProjectMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetProjectHandler := connect.NewUnaryHandler(
		KargoServiceGetProjectProcedure,
		svc.GetProject,
		connect.WithSchema(kargoServiceGetProjectMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListProjectsHandler := connect.NewUnaryHandler(
		KargoServiceListProjectsProcedure,
		svc.ListProjects,
		connect.WithSchema(kargoServiceListProjectsMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetProjectConfigHandler := connect.NewUnaryHandler(
		KargoServiceGetProjectConfigProcedure,
		svc.GetProjectConfig,
		connect.WithSchema(kargoServiceGetProjectConfigMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceDeleteProjectConfigHandler := connect.NewUnaryHandler(
		KargoServiceDeleteProjectConfigProcedure,
		svc.DeleteProjectConfig,
		connect.WithSchema(kargoServiceDeleteProjectConfigMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceWatchProjectConfigHandler := connect.NewServerStreamHandler(
		KargoServiceWatchProjectConfigProcedure,
		svc.WatchProjectConfig,
		connect.WithSchema(kargoServiceWatchProjectConfigMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceRefreshProjectConfigHandler := connect.NewUnaryHandler(
		KargoServiceRefreshProjectConfigProcedure,
		svc.RefreshProjectConfig,
		connect.WithSchema(kargoServiceRefreshProjectConfigMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceApproveFreightHandler := connect.NewUnaryHandler(
		KargoServiceApproveFreightProcedure,
		svc.ApproveFreight,
		connect.WithSchema(kargoServiceApproveFreightMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceDeleteFreightHandler := connect.NewUnaryHandler(
		KargoServiceDeleteFreightProcedure,
		svc.DeleteFreight,
		connect.WithSchema(kargoServiceDeleteFreightMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetFreightHandler := connect.NewUnaryHandler(
		KargoServiceGetFreightProcedure,
		svc.GetFreight,
		connect.WithSchema(kargoServiceGetFreightMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceWatchFreightHandler := connect.NewServerStreamHandler(
		KargoServiceWatchFreightProcedure,
		svc.WatchFreight,
		connect.WithSchema(kargoServiceWatchFreightMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServicePromoteToStageHandler := connect.NewUnaryHandler(
		KargoServicePromoteToStageProcedure,
		svc.PromoteToStage,
		connect.WithSchema(kargoServicePromoteToStageMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServicePromoteDownstreamHandler := connect.NewUnaryHandler(
		KargoServicePromoteDownstreamProcedure,
		svc.PromoteDownstream,
		connect.WithSchema(kargoServicePromoteDownstreamMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceQueryFreightHandler := connect.NewUnaryHandler(
		KargoServiceQueryFreightProcedure,
		svc.QueryFreight,
		connect.WithSchema(kargoServiceQueryFreightMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceUpdateFreightAliasHandler := connect.NewUnaryHandler(
		KargoServiceUpdateFreightAliasProcedure,
		svc.UpdateFreightAlias,
		connect.WithSchema(kargoServiceUpdateFreightAliasMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceReverifyHandler := connect.NewUnaryHandler(
		KargoServiceReverifyProcedure,
		svc.Reverify,
		connect.WithSchema(kargoServiceReverifyMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceAbortVerificationHandler := connect.NewUnaryHandler(
		KargoServiceAbortVerificationProcedure,
		svc.AbortVerification,
		connect.WithSchema(kargoServiceAbortVerificationMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListWarehousesHandler := connect.NewUnaryHandler(
		KargoServiceListWarehousesProcedure,
		svc.ListWarehouses,
		connect.WithSchema(kargoServiceListWarehousesMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetWarehouseHandler := connect.NewUnaryHandler(
		KargoServiceGetWarehouseProcedure,
		svc.GetWarehouse,
		connect.WithSchema(kargoServiceGetWarehouseMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceWatchWarehousesHandler := connect.NewServerStreamHandler(
		KargoServiceWatchWarehousesProcedure,
		svc.WatchWarehouses,
		connect.WithSchema(kargoServiceWatchWarehousesMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceDeleteWarehouseHandler := connect.NewUnaryHandler(
		KargoServiceDeleteWarehouseProcedure,
		svc.DeleteWarehouse,
		connect.WithSchema(kargoServiceDeleteWarehouseMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceRefreshWarehouseHandler := connect.NewUnaryHandler(
		KargoServiceRefreshWarehouseProcedure,
		svc.RefreshWarehouse,
		connect.WithSchema(kargoServiceRefreshWarehouseMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceCreateCredentialsHandler := connect.NewUnaryHandler(
		KargoServiceCreateCredentialsProcedure,
		svc.CreateCredentials,
		connect.WithSchema(kargoServiceCreateCredentialsMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceDeleteCredentialsHandler := connect.NewUnaryHandler(
		KargoServiceDeleteCredentialsProcedure,
		svc.DeleteCredentials,
		connect.WithSchema(kargoServiceDeleteCredentialsMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetCredentialsHandler := connect.NewUnaryHandler(
		KargoServiceGetCredentialsProcedure,
		svc.GetCredentials,
		connect.WithSchema(kargoServiceGetCredentialsMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListCredentialsHandler := connect.NewUnaryHandler(
		KargoServiceListCredentialsProcedure,
		svc.ListCredentials,
		connect.WithSchema(kargoServiceListCredentialsMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceUpdateCredentialsHandler := connect.NewUnaryHandler(
		KargoServiceUpdateCredentialsProcedure,
		svc.UpdateCredentials,
		connect.WithSchema(kargoServiceUpdateCredentialsMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListProjectSecretsHandler := connect.NewUnaryHandler(
		KargoServiceListProjectSecretsProcedure,
		svc.ListProjectSecrets,
		connect.WithSchema(kargoServiceListProjectSecretsMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceCreateProjectSecretHandler := connect.NewUnaryHandler(
		KargoServiceCreateProjectSecretProcedure,
		svc.CreateProjectSecret,
		connect.WithSchema(kargoServiceCreateProjectSecretMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceUpdateProjectSecretHandler := connect.NewUnaryHandler(
		KargoServiceUpdateProjectSecretProcedure,
		svc.UpdateProjectSecret,
		connect.WithSchema(kargoServiceUpdateProjectSecretMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceDeleteProjectSecretHandler := connect.NewUnaryHandler(
		KargoServiceDeleteProjectSecretProcedure,
		svc.DeleteProjectSecret,
		connect.WithSchema(kargoServiceDeleteProjectSecretMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListConfigMapsHandler := connect.NewUnaryHandler(
		KargoServiceListConfigMapsProcedure,
		svc.ListConfigMaps,
		connect.WithSchema(kargoServiceListConfigMapsMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetConfigMapHandler := connect.NewUnaryHandler(
		KargoServiceGetConfigMapProcedure,
		svc.GetConfigMap,
		connect.WithSchema(kargoServiceGetConfigMapMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListAnalysisTemplatesHandler := connect.NewUnaryHandler(
		KargoServiceListAnalysisTemplatesProcedure,
		svc.ListAnalysisTemplates,
		connect.WithSchema(kargoServiceListAnalysisTemplatesMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetAnalysisTemplateHandler := connect.NewUnaryHandler(
		KargoServiceGetAnalysisTemplateProcedure,
		svc.GetAnalysisTemplate,
		connect.WithSchema(kargoServiceGetAnalysisTemplateMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceDeleteAnalysisTemplateHandler := connect.NewUnaryHandler(
		KargoServiceDeleteAnalysisTemplateProcedure,
		svc.DeleteAnalysisTemplate,
		connect.WithSchema(kargoServiceDeleteAnalysisTemplateMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListClusterAnalysisTemplatesHandler := connect.NewUnaryHandler(
		KargoServiceListClusterAnalysisTemplatesProcedure,
		svc.ListClusterAnalysisTemplates,
		connect.WithSchema(kargoServiceListClusterAnalysisTemplatesMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetClusterAnalysisTemplateHandler := connect.NewUnaryHandler(
		KargoServiceGetClusterAnalysisTemplateProcedure,
		svc.GetClusterAnalysisTemplate,
		connect.WithSchema(kargoServiceGetClusterAnalysisTemplateMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceDeleteClusterAnalysisTemplateHandler := connect.NewUnaryHandler(
		KargoServiceDeleteClusterAnalysisTemplateProcedure,
		svc.DeleteClusterAnalysisTemplate,
		connect.WithSchema(kargoServiceDeleteClusterAnalysisTemplateMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetAnalysisRunHandler := connect.NewUnaryHandler(
		KargoServiceGetAnalysisRunProcedure,
		svc.GetAnalysisRun,
		connect.WithSchema(kargoServiceGetAnalysisRunMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetAnalysisRunLogsHandler := connect.NewServerStreamHandler(
		KargoServiceGetAnalysisRunLogsProcedure,
		svc.GetAnalysisRunLogs,
		connect.WithSchema(kargoServiceGetAnalysisRunLogsMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListProjectEventsHandler := connect.NewUnaryHandler(
		KargoServiceListProjectEventsProcedure,
		svc.ListProjectEvents,
		connect.WithSchema(kargoServiceListProjectEventsMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListPromotionTasksHandler := connect.NewUnaryHandler(
		KargoServiceListPromotionTasksProcedure,
		svc.ListPromotionTasks,
		connect.WithSchema(kargoServiceListPromotionTasksMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListClusterPromotionTasksHandler := connect.NewUnaryHandler(
		KargoServiceListClusterPromotionTasksProcedure,
		svc.ListClusterPromotionTasks,
		connect.WithSchema(kargoServiceListClusterPromotionTasksMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetPromotionTaskHandler := connect.NewUnaryHandler(
		KargoServiceGetPromotionTaskProcedure,
		svc.GetPromotionTask,
		connect.WithSchema(kargoServiceGetPromotionTaskMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetClusterPromotionTaskHandler := connect.NewUnaryHandler(
		KargoServiceGetClusterPromotionTaskProcedure,
		svc.GetClusterPromotionTask,
		connect.WithSchema(kargoServiceGetClusterPromotionTaskMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceCreateRoleHandler := connect.NewUnaryHandler(
		KargoServiceCreateRoleProcedure,
		svc.CreateRole,
		connect.WithSchema(kargoServiceCreateRoleMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceDeleteRoleHandler := connect.NewUnaryHandler(
		KargoServiceDeleteRoleProcedure,
		svc.DeleteRole,
		connect.WithSchema(kargoServiceDeleteRoleMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetRoleHandler := connect.NewUnaryHandler(
		KargoServiceGetRoleProcedure,
		svc.GetRole,
		connect.WithSchema(kargoServiceGetRoleMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGrantHandler := connect.NewUnaryHandler(
		KargoServiceGrantProcedure,
		svc.Grant,
		connect.WithSchema(kargoServiceGrantMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListRolesHandler := connect.NewUnaryHandler(
		KargoServiceListRolesProcedure,
		svc.ListRoles,
		connect.WithSchema(kargoServiceListRolesMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceRevokeHandler := connect.NewUnaryHandler(
		KargoServiceRevokeProcedure,
		svc.Revoke,
		connect.WithSchema(kargoServiceRevokeMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceUpdateRoleHandler := connect.NewUnaryHandler(
		KargoServiceUpdateRoleProcedure,
		svc.UpdateRole,
		connect.WithSchema(kargoServiceUpdateRoleMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListClusterSecretsHandler := connect.NewUnaryHandler(
		KargoServiceListClusterSecretsProcedure,
		svc.ListClusterSecrets,
		connect.WithSchema(kargoServiceListClusterSecretsMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceCreateClusterSecretHandler := connect.NewUnaryHandler(
		KargoServiceCreateClusterSecretProcedure,
		svc.CreateClusterSecret,
		connect.WithSchema(kargoServiceCreateClusterSecretMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceUpdateClusterSecretHandler := connect.NewUnaryHandler(
		KargoServiceUpdateClusterSecretProcedure,
		svc.UpdateClusterSecret,
		connect.WithSchema(kargoServiceUpdateClusterSecretMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceDeleteClusterSecretHandler := connect.NewUnaryHandler(
		KargoServiceDeleteClusterSecretProcedure,
		svc.DeleteClusterSecret,
		connect.WithSchema(kargoServiceDeleteClusterSecretMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	return "/akuity.io.kargo.service.v1alpha1.KargoService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		switch r.URL.Path {
		case KargoServiceGetVersionInfoProcedure:
			kargoServiceGetVersionInfoHandler.ServeHTTP(w, r)
		case KargoServiceGetConfigProcedure:
			kargoServiceGetConfigHandler.ServeHTTP(w, r)
		case KargoServiceGetPublicConfigProcedure:
			kargoServiceGetPublicConfigHandler.ServeHTTP(w, r)
		case KargoServiceAdminLoginProcedure:
			kargoServiceAdminLoginHandler.ServeHTTP(w, r)
		case KargoServiceCreateResourceProcedure:
			kargoServiceCreateResourceHandler.ServeHTTP(w, r)
		case KargoServiceCreateOrUpdateResourceProcedure:
			kargoServiceCreateOrUpdateResourceHandler.ServeHTTP(w, r)
		case KargoServiceUpdateResourceProcedure:
			kargoServiceUpdateResourceHandler.ServeHTTP(w, r)
		case KargoServiceDeleteResourceProcedure:
			kargoServiceDeleteResourceHandler.ServeHTTP(w, r)
		case KargoServiceListStagesProcedure:
			kargoServiceListStagesHandler.ServeHTTP(w, r)
		case KargoServiceListImagesProcedure:
			kargoServiceListImagesHandler.ServeHTTP(w, r)
		case KargoServiceGetStageProcedure:
			kargoServiceGetStageHandler.ServeHTTP(w, r)
		case KargoServiceWatchStagesProcedure:
			kargoServiceWatchStagesHandler.ServeHTTP(w, r)
		case KargoServiceDeleteStageProcedure:
			kargoServiceDeleteStageHandler.ServeHTTP(w, r)
		case KargoServiceRefreshStageProcedure:
			kargoServiceRefreshStageHandler.ServeHTTP(w, r)
		case KargoServiceGetClusterConfigProcedure:
			kargoServiceGetClusterConfigHandler.ServeHTTP(w, r)
		case KargoServiceDeleteClusterConfigProcedure:
			kargoServiceDeleteClusterConfigHandler.ServeHTTP(w, r)
		case KargoServiceWatchClusterConfigProcedure:
			kargoServiceWatchClusterConfigHandler.ServeHTTP(w, r)
		case KargoServiceRefreshClusterConfigProcedure:
			kargoServiceRefreshClusterConfigHandler.ServeHTTP(w, r)
		case KargoServiceListPromotionsProcedure:
			kargoServiceListPromotionsHandler.ServeHTTP(w, r)
		case KargoServiceWatchPromotionsProcedure:
			kargoServiceWatchPromotionsHandler.ServeHTTP(w, r)
		case KargoServiceGetPromotionProcedure:
			kargoServiceGetPromotionHandler.ServeHTTP(w, r)
		case KargoServiceWatchPromotionProcedure:
			kargoServiceWatchPromotionHandler.ServeHTTP(w, r)
		case KargoServiceAbortPromotionProcedure:
			kargoServiceAbortPromotionHandler.ServeHTTP(w, r)
		case KargoServiceDeleteProjectProcedure:
			kargoServiceDeleteProjectHandler.ServeHTTP(w, r)
		case KargoServiceGetProjectProcedure:
			kargoServiceGetProjectHandler.ServeHTTP(w, r)
		case KargoServiceListProjectsProcedure:
			kargoServiceListProjectsHandler.ServeHTTP(w, r)
		case KargoServiceGetProjectConfigProcedure:
			kargoServiceGetProjectConfigHandler.ServeHTTP(w, r)
		case KargoServiceDeleteProjectConfigProcedure:
			kargoServiceDeleteProjectConfigHandler.ServeHTTP(w, r)
		case KargoServiceWatchProjectConfigProcedure:
			kargoServiceWatchProjectConfigHandler.ServeHTTP(w, r)
		case KargoServiceRefreshProjectConfigProcedure:
			kargoServiceRefreshProjectConfigHandler.ServeHTTP(w, r)
		case KargoServiceApproveFreightProcedure:
			kargoServiceApproveFreightHandler.ServeHTTP(w, r)
		case KargoServiceDeleteFreightProcedure:
			kargoServiceDeleteFreightHandler.ServeHTTP(w, r)
		case KargoServiceGetFreightProcedure:
			kargoServiceGetFreightHandler.ServeHTTP(w, r)
		case KargoServiceWatchFreightProcedure:
			kargoServiceWatchFreightHandler.ServeHTTP(w, r)
		case KargoServicePromoteToStageProcedure:
			kargoServicePromoteToStageHandler.ServeHTTP(w, r)
		case KargoServicePromoteDownstreamProcedure:
			kargoServicePromoteDownstreamHandler.ServeHTTP(w, r)
		case KargoServiceQueryFreightProcedure:
			kargoServiceQueryFreightHandler.ServeHTTP(w, r)
		case KargoServiceUpdateFreightAliasProcedure:
			kargoServiceUpdateFreightAliasHandler.ServeHTTP(w, r)
		case KargoServiceReverifyProcedure:
			kargoServiceReverifyHandler.ServeHTTP(w, r)
		case KargoServiceAbortVerificationProcedure:
			kargoServiceAbortVerificationHandler.ServeHTTP(w, r)
		case KargoServiceListWarehousesProcedure:
			kargoServiceListWarehousesHandler.ServeHTTP(w, r)
		case KargoServiceGetWarehouseProcedure:
			kargoServiceGetWarehouseHandler.ServeHTTP(w, r)
		case KargoServiceWatchWarehousesProcedure:
			kargoServiceWatchWarehousesHandler.ServeHTTP(w, r)
		case KargoServiceDeleteWarehouseProcedure:
			kargoServiceDeleteWarehouseHandler.ServeHTTP(w, r)
		case KargoServiceRefreshWarehouseProcedure:
			kargoServiceRefreshWarehouseHandler.ServeHTTP(w, r)
		case KargoServiceCreateCredentialsProcedure:
			kargoServiceCreateCredentialsHandler.ServeHTTP(w, r)
		case KargoServiceDeleteCredentialsProcedure:
			kargoServiceDeleteCredentialsHandler.ServeHTTP(w, r)
		case KargoServiceGetCredentialsProcedure:
			kargoServiceGetCredentialsHandler.ServeHTTP(w, r)
		case KargoServiceListCredentialsProcedure:
			kargoServiceListCredentialsHandler.ServeHTTP(w, r)
		case KargoServiceUpdateCredentialsProcedure:
			kargoServiceUpdateCredentialsHandler.ServeHTTP(w, r)
		case KargoServiceListProjectSecretsProcedure:
			kargoServiceListProjectSecretsHandler.ServeHTTP(w, r)
		case KargoServiceCreateProjectSecretProcedure:
			kargoServiceCreateProjectSecretHandler.ServeHTTP(w, r)
		case KargoServiceUpdateProjectSecretProcedure:
			kargoServiceUpdateProjectSecretHandler.ServeHTTP(w, r)
		case KargoServiceDeleteProjectSecretProcedure:
			kargoServiceDeleteProjectSecretHandler.ServeHTTP(w, r)
		case KargoServiceListConfigMapsProcedure:
			kargoServiceListConfigMapsHandler.ServeHTTP(w, r)
		case KargoServiceGetConfigMapProcedure:
			kargoServiceGetConfigMapHandler.ServeHTTP(w, r)
		case KargoServiceListAnalysisTemplatesProcedure:
			kargoServiceListAnalysisTemplatesHandler.ServeHTTP(w, r)
		case KargoServiceGetAnalysisTemplateProcedure:
			kargoServiceGetAnalysisTemplateHandler.ServeHTTP(w, r)
		case KargoServiceDeleteAnalysisTemplateProcedure:
			kargoServiceDeleteAnalysisTemplateHandler.ServeHTTP(w, r)
		case KargoServiceListClusterAnalysisTemplatesProcedure:
			kargoServiceListClusterAnalysisTemplatesHandler.ServeHTTP(w, r)
		case KargoServiceGetClusterAnalysisTemplateProcedure:
			kargoServiceGetClusterAnalysisTemplateHandler.ServeHTTP(w, r)
		case KargoServiceDeleteClusterAnalysisTemplateProcedure:
			kargoServiceDeleteClusterAnalysisTemplateHandler.ServeHTTP(w, r)
		case KargoServiceGetAnalysisRunProcedure:
			kargoServiceGetAnalysisRunHandler.ServeHTTP(w, r)
		case KargoServiceGetAnalysisRunLogsProcedure:
			kargoServiceGetAnalysisRunLogsHandler.ServeHTTP(w, r)
		case KargoServiceListProjectEventsProcedure:
			kargoServiceListProjectEventsHandler.ServeHTTP(w, r)
		case KargoServiceListPromotionTasksProcedure:
			kargoServiceListPromotionTasksHandler.ServeHTTP(w, r)
		case KargoServiceListClusterPromotionTasksProcedure:
			kargoServiceListClusterPromotionTasksHandler.ServeHTTP(w, r)
		case KargoServiceGetPromotionTaskProcedure:
			kargoServiceGetPromotionTaskHandler.ServeHTTP(w, r)
		case KargoServiceGetClusterPromotionTaskProcedure:
			kargoServiceGetClusterPromotionTaskHandler.ServeHTTP(w, r)
		case KargoServiceCreateRoleProcedure:
			kargoServiceCreateRoleHandler.ServeHTTP(w, r)
		case KargoServiceDeleteRoleProcedure:
			kargoServiceDeleteRoleHandler.ServeHTTP(w, r)
		case KargoServiceGetRoleProcedure:
			kargoServiceGetRoleHandler.ServeHTTP(w, r)
		case KargoServiceGrantProcedure:
			kargoServiceGrantHandler.ServeHTTP(w, r)
		case KargoServiceListRolesProcedure:
			kargoServiceListRolesHandler.ServeHTTP(w, r)
		case KargoServiceRevokeProcedure:
			kargoServiceRevokeHandler.ServeHTTP(w, r)
		case KargoServiceUpdateRoleProcedure:
			kargoServiceUpdateRoleHandler.ServeHTTP(w, r)
		case KargoServiceListClusterSecretsProcedure:
			kargoServiceListClusterSecretsHandler.ServeHTTP(w, r)
		case KargoServiceCreateClusterSecretProcedure:
			kargoServiceCreateClusterSecretHandler.ServeHTTP(w, r)
		case KargoServiceUpdateClusterSecretProcedure:
			kargoServiceUpdateClusterSecretHandler.ServeHTTP(w, r)
		case KargoServiceDeleteClusterSecretProcedure:
			kargoServiceDeleteClusterSecretHandler.ServeHTTP(w, r)
		default:
			http.NotFound(w, r)
		}
	})
}

// UnimplementedKargoServiceHandler returns CodeUnimplemented from all methods.
type UnimplementedKargoServiceHandler struct{}

func (UnimplementedKargoServiceHandler) GetVersionInfo(context.Context, *connect.Request[v1alpha1.GetVersionInfoRequest]) (*connect.Response[v1alpha1.GetVersionInfoResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetVersionInfo is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetConfig(context.Context, *connect.Request[v1alpha1.GetConfigRequest]) (*connect.Response[v1alpha1.GetConfigResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetConfig is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetPublicConfig(context.Context, *connect.Request[v1alpha1.GetPublicConfigRequest]) (*connect.Response[v1alpha1.GetPublicConfigResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetPublicConfig is not implemented"))
}

func (UnimplementedKargoServiceHandler) AdminLogin(context.Context, *connect.Request[v1alpha1.AdminLoginRequest]) (*connect.Response[v1alpha1.AdminLoginResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.AdminLogin is not implemented"))
}

func (UnimplementedKargoServiceHandler) CreateResource(context.Context, *connect.Request[v1alpha1.CreateResourceRequest]) (*connect.Response[v1alpha1.CreateResourceResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.CreateResource is not implemented"))
}

func (UnimplementedKargoServiceHandler) CreateOrUpdateResource(context.Context, *connect.Request[v1alpha1.CreateOrUpdateResourceRequest]) (*connect.Response[v1alpha1.CreateOrUpdateResourceResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.CreateOrUpdateResource is not implemented"))
}

func (UnimplementedKargoServiceHandler) UpdateResource(context.Context, *connect.Request[v1alpha1.UpdateResourceRequest]) (*connect.Response[v1alpha1.UpdateResourceResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.UpdateResource is not implemented"))
}

func (UnimplementedKargoServiceHandler) DeleteResource(context.Context, *connect.Request[v1alpha1.DeleteResourceRequest]) (*connect.Response[v1alpha1.DeleteResourceResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.DeleteResource is not implemented"))
}

func (UnimplementedKargoServiceHandler) ListStages(context.Context, *connect.Request[v1alpha1.ListStagesRequest]) (*connect.Response[v1alpha1.ListStagesResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListStages is not implemented"))
}

func (UnimplementedKargoServiceHandler) ListImages(context.Context, *connect.Request[v1alpha1.ListImagesRequest]) (*connect.Response[v1alpha1.ListImagesResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListImages is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetStage(context.Context, *connect.Request[v1alpha1.GetStageRequest]) (*connect.Response[v1alpha1.GetStageResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetStage is not implemented"))
}

func (UnimplementedKargoServiceHandler) WatchStages(context.Context, *connect.Request[v1alpha1.WatchStagesRequest], *connect.ServerStream[v1alpha1.WatchStagesResponse]) error {
	return connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.WatchStages is not implemented"))
}

func (UnimplementedKargoServiceHandler) DeleteStage(context.Context, *connect.Request[v1alpha1.DeleteStageRequest]) (*connect.Response[v1alpha1.DeleteStageResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.DeleteStage is not implemented"))
}

func (UnimplementedKargoServiceHandler) RefreshStage(context.Context, *connect.Request[v1alpha1.RefreshStageRequest]) (*connect.Response[v1alpha1.RefreshStageResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.RefreshStage is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetClusterConfig(context.Context, *connect.Request[v1alpha1.GetClusterConfigRequest]) (*connect.Response[v1alpha1.GetClusterConfigResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetClusterConfig is not implemented"))
}

func (UnimplementedKargoServiceHandler) DeleteClusterConfig(context.Context, *connect.Request[v1alpha1.DeleteClusterConfigRequest]) (*connect.Response[v1alpha1.DeleteClusterConfigResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterConfig is not implemented"))
}

func (UnimplementedKargoServiceHandler) WatchClusterConfig(context.Context, *connect.Request[v1alpha1.WatchClusterConfigRequest], *connect.ServerStream[v1alpha1.WatchClusterConfigResponse]) error {
	return connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.WatchClusterConfig is not implemented"))
}

func (UnimplementedKargoServiceHandler) RefreshClusterConfig(context.Context, *connect.Request[v1alpha1.RefreshClusterConfigRequest]) (*connect.Response[v1alpha1.RefreshClusterConfigResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.RefreshClusterConfig is not implemented"))
}

func (UnimplementedKargoServiceHandler) ListPromotions(context.Context, *connect.Request[v1alpha1.ListPromotionsRequest]) (*connect.Response[v1alpha1.ListPromotionsResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListPromotions is not implemented"))
}

func (UnimplementedKargoServiceHandler) WatchPromotions(context.Context, *connect.Request[v1alpha1.WatchPromotionsRequest], *connect.ServerStream[v1alpha1.WatchPromotionsResponse]) error {
	return connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotions is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetPromotion(context.Context, *connect.Request[v1alpha1.GetPromotionRequest]) (*connect.Response[v1alpha1.GetPromotionResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetPromotion is not implemented"))
}

func (UnimplementedKargoServiceHandler) WatchPromotion(context.Context, *connect.Request[v1alpha1.WatchPromotionRequest], *connect.ServerStream[v1alpha1.WatchPromotionResponse]) error {
	return connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.WatchPromotion is not implemented"))
}

func (UnimplementedKargoServiceHandler) AbortPromotion(context.Context, *connect.Request[v1alpha1.AbortPromotionRequest]) (*connect.Response[v1alpha1.AbortPromotionResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.AbortPromotion is not implemented"))
}

func (UnimplementedKargoServiceHandler) DeleteProject(context.Context, *connect.Request[v1alpha1.DeleteProjectRequest]) (*connect.Response[v1alpha1.DeleteProjectResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.DeleteProject is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetProject(context.Context, *connect.Request[v1alpha1.GetProjectRequest]) (*connect.Response[v1alpha1.GetProjectResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetProject is not implemented"))
}

func (UnimplementedKargoServiceHandler) ListProjects(context.Context, *connect.Request[v1alpha1.ListProjectsRequest]) (*connect.Response[v1alpha1.ListProjectsResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListProjects is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetProjectConfig(context.Context, *connect.Request[v1alpha1.GetProjectConfigRequest]) (*connect.Response[v1alpha1.GetProjectConfigResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetProjectConfig is not implemented"))
}

func (UnimplementedKargoServiceHandler) DeleteProjectConfig(context.Context, *connect.Request[v1alpha1.DeleteProjectConfigRequest]) (*connect.Response[v1alpha1.DeleteProjectConfigResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.DeleteProjectConfig is not implemented"))
}

func (UnimplementedKargoServiceHandler) WatchProjectConfig(context.Context, *connect.Request[v1alpha1.WatchProjectConfigRequest], *connect.ServerStream[v1alpha1.WatchProjectConfigResponse]) error {
	return connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.WatchProjectConfig is not implemented"))
}

func (UnimplementedKargoServiceHandler) RefreshProjectConfig(context.Context, *connect.Request[v1alpha1.RefreshProjectConfigRequest]) (*connect.Response[v1alpha1.RefreshProjectConfigResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.RefreshProjectConfig is not implemented"))
}

func (UnimplementedKargoServiceHandler) ApproveFreight(context.Context, *connect.Request[v1alpha1.ApproveFreightRequest]) (*connect.Response[v1alpha1.ApproveFreightResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ApproveFreight is not implemented"))
}

func (UnimplementedKargoServiceHandler) DeleteFreight(context.Context, *connect.Request[v1alpha1.DeleteFreightRequest]) (*connect.Response[v1alpha1.DeleteFreightResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.DeleteFreight is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetFreight(context.Context, *connect.Request[v1alpha1.GetFreightRequest]) (*connect.Response[v1alpha1.GetFreightResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetFreight is not implemented"))
}

func (UnimplementedKargoServiceHandler) WatchFreight(context.Context, *connect.Request[v1alpha1.WatchFreightRequest], *connect.ServerStream[v1alpha1.WatchFreightResponse]) error {
	return connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.WatchFreight is not implemented"))
}

func (UnimplementedKargoServiceHandler) PromoteToStage(context.Context, *connect.Request[v1alpha1.PromoteToStageRequest]) (*connect.Response[v1alpha1.PromoteToStageResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.PromoteToStage is not implemented"))
}

func (UnimplementedKargoServiceHandler) PromoteDownstream(context.Context, *connect.Request[v1alpha1.PromoteDownstreamRequest]) (*connect.Response[v1alpha1.PromoteDownstreamResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.PromoteDownstream is not implemented"))
}

func (UnimplementedKargoServiceHandler) QueryFreight(context.Context, *connect.Request[v1alpha1.QueryFreightRequest]) (*connect.Response[v1alpha1.QueryFreightResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.QueryFreight is not implemented"))
}

func (UnimplementedKargoServiceHandler) UpdateFreightAlias(context.Context, *connect.Request[v1alpha1.UpdateFreightAliasRequest]) (*connect.Response[v1alpha1.UpdateFreightAliasResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.UpdateFreightAlias is not implemented"))
}

func (UnimplementedKargoServiceHandler) Reverify(context.Context, *connect.Request[v1alpha1.ReverifyRequest]) (*connect.Response[v1alpha1.ReverifyResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.Reverify is not implemented"))
}

func (UnimplementedKargoServiceHandler) AbortVerification(context.Context, *connect.Request[v1alpha1.AbortVerificationRequest]) (*connect.Response[v1alpha1.AbortVerificationResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.AbortVerification is not implemented"))
}

func (UnimplementedKargoServiceHandler) ListWarehouses(context.Context, *connect.Request[v1alpha1.ListWarehousesRequest]) (*connect.Response[v1alpha1.ListWarehousesResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListWarehouses is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetWarehouse(context.Context, *connect.Request[v1alpha1.GetWarehouseRequest]) (*connect.Response[v1alpha1.GetWarehouseResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetWarehouse is not implemented"))
}

func (UnimplementedKargoServiceHandler) WatchWarehouses(context.Context, *connect.Request[v1alpha1.WatchWarehousesRequest], *connect.ServerStream[v1alpha1.WatchWarehousesResponse]) error {
	return connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.WatchWarehouses is not implemented"))
}

func (UnimplementedKargoServiceHandler) DeleteWarehouse(context.Context, *connect.Request[v1alpha1.DeleteWarehouseRequest]) (*connect.Response[v1alpha1.DeleteWarehouseResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.DeleteWarehouse is not implemented"))
}

func (UnimplementedKargoServiceHandler) RefreshWarehouse(context.Context, *connect.Request[v1alpha1.RefreshWarehouseRequest]) (*connect.Response[v1alpha1.RefreshWarehouseResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.RefreshWarehouse is not implemented"))
}

func (UnimplementedKargoServiceHandler) CreateCredentials(context.Context, *connect.Request[v1alpha1.CreateCredentialsRequest]) (*connect.Response[v1alpha1.CreateCredentialsResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.CreateCredentials is not implemented"))
}

func (UnimplementedKargoServiceHandler) DeleteCredentials(context.Context, *connect.Request[v1alpha1.DeleteCredentialsRequest]) (*connect.Response[v1alpha1.DeleteCredentialsResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.DeleteCredentials is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetCredentials(context.Context, *connect.Request[v1alpha1.GetCredentialsRequest]) (*connect.Response[v1alpha1.GetCredentialsResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetCredentials is not implemented"))
}

func (UnimplementedKargoServiceHandler) ListCredentials(context.Context, *connect.Request[v1alpha1.ListCredentialsRequest]) (*connect.Response[v1alpha1.ListCredentialsResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListCredentials is not implemented"))
}

func (UnimplementedKargoServiceHandler) UpdateCredentials(context.Context, *connect.Request[v1alpha1.UpdateCredentialsRequest]) (*connect.Response[v1alpha1.UpdateCredentialsResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.UpdateCredentials is not implemented"))
}

func (UnimplementedKargoServiceHandler) ListProjectSecrets(context.Context, *connect.Request[v1alpha1.ListProjectSecretsRequest]) (*connect.Response[v1alpha1.ListProjectSecretsResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListProjectSecrets is not implemented"))
}

func (UnimplementedKargoServiceHandler) CreateProjectSecret(context.Context, *connect.Request[v1alpha1.CreateProjectSecretRequest]) (*connect.Response[v1alpha1.CreateProjectSecretResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.CreateProjectSecret is not implemented"))
}

func (UnimplementedKargoServiceHandler) UpdateProjectSecret(context.Context, *connect.Request[v1alpha1.UpdateProjectSecretRequest]) (*connect.Response[v1alpha1.UpdateProjectSecretResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.UpdateProjectSecret is not implemented"))
}

func (UnimplementedKargoServiceHandler) DeleteProjectSecret(context.Context, *connect.Request[v1alpha1.DeleteProjectSecretRequest]) (*connect.Response[v1alpha1.DeleteProjectSecretResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.DeleteProjectSecret is not implemented"))
}

func (UnimplementedKargoServiceHandler) ListConfigMaps(context.Context, *connect.Request[v1alpha1.ListConfigMapsRequest]) (*connect.Response[v1alpha1.ListConfigMapsResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListConfigMaps is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetConfigMap(context.Context, *connect.Request[v1alpha1.GetConfigMapRequest]) (*connect.Response[v1alpha1.GetConfigMapResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetConfigMap is not implemented"))
}

func (UnimplementedKargoServiceHandler) ListAnalysisTemplates(context.Context, *connect.Request[v1alpha1.ListAnalysisTemplatesRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplatesResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplates is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetAnalysisTemplate(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplate is not implemented"))
}

func (UnimplementedKargoServiceHandler) DeleteAnalysisTemplate(context.Context, *connect.Request[v1alpha1.DeleteAnalysisTemplateRequest]) (*connect.Response[v1alpha1.DeleteAnalysisTemplateResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.DeleteAnalysisTemplate is not implemented"))
}

func (UnimplementedKargoServiceHandler) ListClusterAnalysisTemplates(context.Context, *connect.Request[v1alpha1.ListClusterAnalysisTemplatesRequest]) (*connect.Response[v1alpha1.ListClusterAnalysisTemplatesResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListClusterAnalysisTemplates is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetClusterAnalysisTemplate(context.Context, *connect.Request[v1alpha1.GetClusterAnalysisTemplateRequest]) (*connect.Response[v1alpha1.GetClusterAnalysisTemplateResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetClusterAnalysisTemplate is not implemented"))
}

func (UnimplementedKargoServiceHandler) DeleteClusterAnalysisTemplate(context.Context, *connect.Request[v1alpha1.DeleteClusterAnalysisTemplateRequest]) (*connect.Response[v1alpha1.DeleteClusterAnalysisTemplateResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterAnalysisTemplate is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetAnalysisRun(context.Context, *connect.Request[v1alpha1.GetAnalysisRunRequest]) (*connect.Response[v1alpha1.GetAnalysisRunResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRun is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetAnalysisRunLogs(context.Context, *connect.Request[v1alpha1.GetAnalysisRunLogsRequest], *connect.ServerStream[v1alpha1.GetAnalysisRunLogsResponse]) error {
	return connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisRunLogs is not implemented"))
}

func (UnimplementedKargoServiceHandler) ListProjectEvents(context.Context, *connect.Request[v1alpha1.ListProjectEventsRequest]) (*connect.Response[v1alpha1.ListProjectEventsResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListProjectEvents is not implemented"))
}

func (UnimplementedKargoServiceHandler) ListPromotionTasks(context.Context, *connect.Request[v1alpha1.ListPromotionTasksRequest]) (*connect.Response[v1alpha1.ListPromotionTasksResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListPromotionTasks is not implemented"))
}

func (UnimplementedKargoServiceHandler) ListClusterPromotionTasks(context.Context, *connect.Request[v1alpha1.ListClusterPromotionTasksRequest]) (*connect.Response[v1alpha1.ListClusterPromotionTasksResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListClusterPromotionTasks is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetPromotionTask(context.Context, *connect.Request[v1alpha1.GetPromotionTaskRequest]) (*connect.Response[v1alpha1.GetPromotionTaskResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetPromotionTask is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetClusterPromotionTask(context.Context, *connect.Request[v1alpha1.GetClusterPromotionTaskRequest]) (*connect.Response[v1alpha1.GetClusterPromotionTaskResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetClusterPromotionTask is not implemented"))
}

func (UnimplementedKargoServiceHandler) CreateRole(context.Context, *connect.Request[v1alpha1.CreateRoleRequest]) (*connect.Response[v1alpha1.CreateRoleResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.CreateRole is not implemented"))
}

func (UnimplementedKargoServiceHandler) DeleteRole(context.Context, *connect.Request[v1alpha1.DeleteRoleRequest]) (*connect.Response[v1alpha1.DeleteRoleResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.DeleteRole is not implemented"))
}

func (UnimplementedKargoServiceHandler) GetRole(context.Context, *connect.Request[v1alpha1.GetRoleRequest]) (*connect.Response[v1alpha1.GetRoleResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetRole is not implemented"))
}

func (UnimplementedKargoServiceHandler) Grant(context.Context, *connect.Request[v1alpha1.GrantRequest]) (*connect.Response[v1alpha1.GrantResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.Grant is not implemented"))
}

func (UnimplementedKargoServiceHandler) ListRoles(context.Context, *connect.Request[v1alpha1.ListRolesRequest]) (*connect.Response[v1alpha1.ListRolesResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListRoles is not implemented"))
}

func (UnimplementedKargoServiceHandler) Revoke(context.Context, *connect.Request[v1alpha1.RevokeRequest]) (*connect.Response[v1alpha1.RevokeResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.Revoke is not implemented"))
}

func (UnimplementedKargoServiceHandler) UpdateRole(context.Context, *connect.Request[v1alpha1.UpdateRoleRequest]) (*connect.Response[v1alpha1.UpdateRoleResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.UpdateRole is not implemented"))
}

func (UnimplementedKargoServiceHandler) ListClusterSecrets(context.Context, *connect.Request[v1alpha1.ListClusterSecretsRequest]) (*connect.Response[v1alpha1.ListClusterSecretsResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListClusterSecrets is not implemented"))
}

func (UnimplementedKargoServiceHandler) CreateClusterSecret(context.Context, *connect.Request[v1alpha1.CreateClusterSecretRequest]) (*connect.Response[v1alpha1.CreateClusterSecretResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.CreateClusterSecret is not implemented"))
}

func (UnimplementedKargoServiceHandler) UpdateClusterSecret(context.Context, *connect.Request[v1alpha1.UpdateClusterSecretRequest]) (*connect.Response[v1alpha1.UpdateClusterSecretResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.UpdateClusterSecret is not implemented"))
}

func (UnimplementedKargoServiceHandler) DeleteClusterSecret(context.Context, *connect.Request[v1alpha1.DeleteClusterSecretRequest]) (*connect.Response[v1alpha1.DeleteClusterSecretResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.DeleteClusterSecret is not implemented"))
}
