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

package svcv1alpha1connect

import (
	connect "connectrpc.com/connect"
	context "context"
	errors "errors"
	v1alpha1 "github.com/akuity/kargo/pkg/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"
	// 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"
	// 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"
	// 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"
	// 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"
	// KargoServiceGetAnalysisRunProcedure is the fully-qualified name of the KargoService's
	// GetAnalysisRun RPC.
	KargoServiceGetAnalysisRunProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetAnalysisRun"
	// KargoServiceListAnalysisTemplateConfigMapsProcedure is the fully-qualified name of the
	// KargoService's ListAnalysisTemplateConfigMaps RPC.
	KargoServiceListAnalysisTemplateConfigMapsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListAnalysisTemplateConfigMaps"
	// KargoServiceGetAnalysisTemplateConfigMapProcedure is the fully-qualified name of the
	// KargoService's GetAnalysisTemplateConfigMap RPC.
	KargoServiceGetAnalysisTemplateConfigMapProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetAnalysisTemplateConfigMap"
	// KargoServiceListAnalysisTemplateSecretsProcedure is the fully-qualified name of the
	// KargoService's ListAnalysisTemplateSecrets RPC.
	KargoServiceListAnalysisTemplateSecretsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListAnalysisTemplateSecrets"
	// KargoServiceGetAnalysisTemplateSecretProcedure is the fully-qualified name of the KargoService's
	// GetAnalysisTemplateSecret RPC.
	KargoServiceGetAnalysisTemplateSecretProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/GetAnalysisTemplateSecret"
	// KargoServiceListProjectEventsProcedure is the fully-qualified name of the KargoService's
	// ListProjectEvents RPC.
	KargoServiceListProjectEventsProcedure = "/akuity.io.kargo.service.v1alpha1.KargoService/ListProjectEvents"
	// 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"
)

// These variables are the protoreflect.Descriptor objects for the RPCs defined in this package.
var (
	kargoServiceServiceDescriptor                              = v1alpha1.File_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")
	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")
	kargoServiceApproveFreightMethodDescriptor                 = kargoServiceServiceDescriptor.Methods().ByName("ApproveFreight")
	kargoServiceDeleteFreightMethodDescriptor                  = kargoServiceServiceDescriptor.Methods().ByName("DeleteFreight")
	kargoServiceGetFreightMethodDescriptor                     = kargoServiceServiceDescriptor.Methods().ByName("GetFreight")
	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")
	kargoServiceListAnalysisTemplatesMethodDescriptor          = kargoServiceServiceDescriptor.Methods().ByName("ListAnalysisTemplates")
	kargoServiceGetAnalysisTemplateMethodDescriptor            = kargoServiceServiceDescriptor.Methods().ByName("GetAnalysisTemplate")
	kargoServiceDeleteAnalysisTemplateMethodDescriptor         = kargoServiceServiceDescriptor.Methods().ByName("DeleteAnalysisTemplate")
	kargoServiceGetAnalysisRunMethodDescriptor                 = kargoServiceServiceDescriptor.Methods().ByName("GetAnalysisRun")
	kargoServiceListAnalysisTemplateConfigMapsMethodDescriptor = kargoServiceServiceDescriptor.Methods().ByName("ListAnalysisTemplateConfigMaps")
	kargoServiceGetAnalysisTemplateConfigMapMethodDescriptor   = kargoServiceServiceDescriptor.Methods().ByName("GetAnalysisTemplateConfigMap")
	kargoServiceListAnalysisTemplateSecretsMethodDescriptor    = kargoServiceServiceDescriptor.Methods().ByName("ListAnalysisTemplateSecrets")
	kargoServiceGetAnalysisTemplateSecretMethodDescriptor      = kargoServiceServiceDescriptor.Methods().ByName("GetAnalysisTemplateSecret")
	kargoServiceListProjectEventsMethodDescriptor              = kargoServiceServiceDescriptor.Methods().ByName("ListProjectEvents")
	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")
)

// KargoServiceClient is a client for the akuity.io.kargo.service.v1alpha1.KargoService service.
type KargoServiceClient interface {
	GetVersionInfo(context.Context, *connect.Request[v1alpha1.GetVersionInfoRequest]) (*connect.Response[v1alpha1.GetVersionInfoResponse], error)
	GetConfig(context.Context, *connect.Request[v1alpha1.GetConfigRequest]) (*connect.Response[v1alpha1.GetConfigResponse], error)
	GetPublicConfig(context.Context, *connect.Request[v1alpha1.GetPublicConfigRequest]) (*connect.Response[v1alpha1.GetPublicConfigResponse], error)
	AdminLogin(context.Context, *connect.Request[v1alpha1.AdminLoginRequest]) (*connect.Response[v1alpha1.AdminLoginResponse], error)
	// TODO(devholic): Add ApplyResource API
	// rpc ApplyResource(ApplyResourceRequest) returns (ApplyResourceRequest);
	CreateResource(context.Context, *connect.Request[v1alpha1.CreateResourceRequest]) (*connect.Response[v1alpha1.CreateResourceResponse], error)
	CreateOrUpdateResource(context.Context, *connect.Request[v1alpha1.CreateOrUpdateResourceRequest]) (*connect.Response[v1alpha1.CreateOrUpdateResourceResponse], error)
	UpdateResource(context.Context, *connect.Request[v1alpha1.UpdateResourceRequest]) (*connect.Response[v1alpha1.UpdateResourceResponse], error)
	DeleteResource(context.Context, *connect.Request[v1alpha1.DeleteResourceRequest]) (*connect.Response[v1alpha1.DeleteResourceResponse], error)
	ListStages(context.Context, *connect.Request[v1alpha1.ListStagesRequest]) (*connect.Response[v1alpha1.ListStagesResponse], error)
	ListImages(context.Context, *connect.Request[v1alpha1.ListImagesRequest]) (*connect.Response[v1alpha1.ListImagesResponse], error)
	GetStage(context.Context, *connect.Request[v1alpha1.GetStageRequest]) (*connect.Response[v1alpha1.GetStageResponse], error)
	WatchStages(context.Context, *connect.Request[v1alpha1.WatchStagesRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchStagesResponse], error)
	DeleteStage(context.Context, *connect.Request[v1alpha1.DeleteStageRequest]) (*connect.Response[v1alpha1.DeleteStageResponse], error)
	RefreshStage(context.Context, *connect.Request[v1alpha1.RefreshStageRequest]) (*connect.Response[v1alpha1.RefreshStageResponse], error)
	ListPromotions(context.Context, *connect.Request[v1alpha1.ListPromotionsRequest]) (*connect.Response[v1alpha1.ListPromotionsResponse], error)
	WatchPromotions(context.Context, *connect.Request[v1alpha1.WatchPromotionsRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchPromotionsResponse], error)
	GetPromotion(context.Context, *connect.Request[v1alpha1.GetPromotionRequest]) (*connect.Response[v1alpha1.GetPromotionResponse], error)
	WatchPromotion(context.Context, *connect.Request[v1alpha1.WatchPromotionRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchPromotionResponse], error)
	AbortPromotion(context.Context, *connect.Request[v1alpha1.AbortPromotionRequest]) (*connect.Response[v1alpha1.AbortPromotionResponse], error)
	DeleteProject(context.Context, *connect.Request[v1alpha1.DeleteProjectRequest]) (*connect.Response[v1alpha1.DeleteProjectResponse], error)
	GetProject(context.Context, *connect.Request[v1alpha1.GetProjectRequest]) (*connect.Response[v1alpha1.GetProjectResponse], error)
	ListProjects(context.Context, *connect.Request[v1alpha1.ListProjectsRequest]) (*connect.Response[v1alpha1.ListProjectsResponse], error)
	ApproveFreight(context.Context, *connect.Request[v1alpha1.ApproveFreightRequest]) (*connect.Response[v1alpha1.ApproveFreightResponse], error)
	DeleteFreight(context.Context, *connect.Request[v1alpha1.DeleteFreightRequest]) (*connect.Response[v1alpha1.DeleteFreightResponse], error)
	GetFreight(context.Context, *connect.Request[v1alpha1.GetFreightRequest]) (*connect.Response[v1alpha1.GetFreightResponse], error)
	PromoteToStage(context.Context, *connect.Request[v1alpha1.PromoteToStageRequest]) (*connect.Response[v1alpha1.PromoteToStageResponse], error)
	PromoteDownstream(context.Context, *connect.Request[v1alpha1.PromoteDownstreamRequest]) (*connect.Response[v1alpha1.PromoteDownstreamResponse], error)
	QueryFreight(context.Context, *connect.Request[v1alpha1.QueryFreightRequest]) (*connect.Response[v1alpha1.QueryFreightResponse], error)
	UpdateFreightAlias(context.Context, *connect.Request[v1alpha1.UpdateFreightAliasRequest]) (*connect.Response[v1alpha1.UpdateFreightAliasResponse], error)
	Reverify(context.Context, *connect.Request[v1alpha1.ReverifyRequest]) (*connect.Response[v1alpha1.ReverifyResponse], error)
	AbortVerification(context.Context, *connect.Request[v1alpha1.AbortVerificationRequest]) (*connect.Response[v1alpha1.AbortVerificationResponse], error)
	ListWarehouses(context.Context, *connect.Request[v1alpha1.ListWarehousesRequest]) (*connect.Response[v1alpha1.ListWarehousesResponse], error)
	GetWarehouse(context.Context, *connect.Request[v1alpha1.GetWarehouseRequest]) (*connect.Response[v1alpha1.GetWarehouseResponse], error)
	WatchWarehouses(context.Context, *connect.Request[v1alpha1.WatchWarehousesRequest]) (*connect.ServerStreamForClient[v1alpha1.WatchWarehousesResponse], error)
	DeleteWarehouse(context.Context, *connect.Request[v1alpha1.DeleteWarehouseRequest]) (*connect.Response[v1alpha1.DeleteWarehouseResponse], error)
	RefreshWarehouse(context.Context, *connect.Request[v1alpha1.RefreshWarehouseRequest]) (*connect.Response[v1alpha1.RefreshWarehouseResponse], error)
	CreateCredentials(context.Context, *connect.Request[v1alpha1.CreateCredentialsRequest]) (*connect.Response[v1alpha1.CreateCredentialsResponse], error)
	DeleteCredentials(context.Context, *connect.Request[v1alpha1.DeleteCredentialsRequest]) (*connect.Response[v1alpha1.DeleteCredentialsResponse], error)
	GetCredentials(context.Context, *connect.Request[v1alpha1.GetCredentialsRequest]) (*connect.Response[v1alpha1.GetCredentialsResponse], error)
	ListCredentials(context.Context, *connect.Request[v1alpha1.ListCredentialsRequest]) (*connect.Response[v1alpha1.ListCredentialsResponse], error)
	UpdateCredentials(context.Context, *connect.Request[v1alpha1.UpdateCredentialsRequest]) (*connect.Response[v1alpha1.UpdateCredentialsResponse], error)
	ListAnalysisTemplates(context.Context, *connect.Request[v1alpha1.ListAnalysisTemplatesRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplatesResponse], error)
	GetAnalysisTemplate(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateResponse], error)
	DeleteAnalysisTemplate(context.Context, *connect.Request[v1alpha1.DeleteAnalysisTemplateRequest]) (*connect.Response[v1alpha1.DeleteAnalysisTemplateResponse], error)
	GetAnalysisRun(context.Context, *connect.Request[v1alpha1.GetAnalysisRunRequest]) (*connect.Response[v1alpha1.GetAnalysisRunResponse], error)
	ListAnalysisTemplateConfigMaps(context.Context, *connect.Request[v1alpha1.ListAnalysisTemplateConfigMapsRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplateConfigMapsResponse], error)
	GetAnalysisTemplateConfigMap(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateConfigMapRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateConfigMapResponse], error)
	ListAnalysisTemplateSecrets(context.Context, *connect.Request[v1alpha1.ListAnalysisTemplateSecretsRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplateSecretsResponse], error)
	GetAnalysisTemplateSecret(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateSecretRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateSecretResponse], error)
	ListProjectEvents(context.Context, *connect.Request[v1alpha1.ListProjectEventsRequest]) (*connect.Response[v1alpha1.ListProjectEventsResponse], error)
	CreateRole(context.Context, *connect.Request[v1alpha1.CreateRoleRequest]) (*connect.Response[v1alpha1.CreateRoleResponse], error)
	DeleteRole(context.Context, *connect.Request[v1alpha1.DeleteRoleRequest]) (*connect.Response[v1alpha1.DeleteRoleResponse], error)
	GetRole(context.Context, *connect.Request[v1alpha1.GetRoleRequest]) (*connect.Response[v1alpha1.GetRoleResponse], error)
	Grant(context.Context, *connect.Request[v1alpha1.GrantRequest]) (*connect.Response[v1alpha1.GrantResponse], error)
	ListRoles(context.Context, *connect.Request[v1alpha1.ListRolesRequest]) (*connect.Response[v1alpha1.ListRolesResponse], error)
	Revoke(context.Context, *connect.Request[v1alpha1.RevokeRequest]) (*connect.Response[v1alpha1.RevokeResponse], error)
	UpdateRole(context.Context, *connect.Request[v1alpha1.UpdateRoleRequest]) (*connect.Response[v1alpha1.UpdateRoleResponse], 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...),
		),
		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...),
		),
		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...),
		),
		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...),
		),
		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...),
		),
		getAnalysisRun: connect.NewClient[v1alpha1.GetAnalysisRunRequest, v1alpha1.GetAnalysisRunResponse](
			httpClient,
			baseURL+KargoServiceGetAnalysisRunProcedure,
			connect.WithSchema(kargoServiceGetAnalysisRunMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listAnalysisTemplateConfigMaps: connect.NewClient[v1alpha1.ListAnalysisTemplateConfigMapsRequest, v1alpha1.ListAnalysisTemplateConfigMapsResponse](
			httpClient,
			baseURL+KargoServiceListAnalysisTemplateConfigMapsProcedure,
			connect.WithSchema(kargoServiceListAnalysisTemplateConfigMapsMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getAnalysisTemplateConfigMap: connect.NewClient[v1alpha1.GetAnalysisTemplateConfigMapRequest, v1alpha1.GetAnalysisTemplateConfigMapResponse](
			httpClient,
			baseURL+KargoServiceGetAnalysisTemplateConfigMapProcedure,
			connect.WithSchema(kargoServiceGetAnalysisTemplateConfigMapMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listAnalysisTemplateSecrets: connect.NewClient[v1alpha1.ListAnalysisTemplateSecretsRequest, v1alpha1.ListAnalysisTemplateSecretsResponse](
			httpClient,
			baseURL+KargoServiceListAnalysisTemplateSecretsProcedure,
			connect.WithSchema(kargoServiceListAnalysisTemplateSecretsMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		getAnalysisTemplateSecret: connect.NewClient[v1alpha1.GetAnalysisTemplateSecretRequest, v1alpha1.GetAnalysisTemplateSecretResponse](
			httpClient,
			baseURL+KargoServiceGetAnalysisTemplateSecretProcedure,
			connect.WithSchema(kargoServiceGetAnalysisTemplateSecretMethodDescriptor),
			connect.WithClientOptions(opts...),
		),
		listProjectEvents: connect.NewClient[v1alpha1.ListProjectEventsRequest, v1alpha1.ListProjectEventsResponse](
			httpClient,
			baseURL+KargoServiceListProjectEventsProcedure,
			connect.WithSchema(kargoServiceListProjectEventsMethodDescriptor),
			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...),
		),
	}
}

// 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]
	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]
	approveFreight                 *connect.Client[v1alpha1.ApproveFreightRequest, v1alpha1.ApproveFreightResponse]
	deleteFreight                  *connect.Client[v1alpha1.DeleteFreightRequest, v1alpha1.DeleteFreightResponse]
	getFreight                     *connect.Client[v1alpha1.GetFreightRequest, v1alpha1.GetFreightResponse]
	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]
	listAnalysisTemplates          *connect.Client[v1alpha1.ListAnalysisTemplatesRequest, v1alpha1.ListAnalysisTemplatesResponse]
	getAnalysisTemplate            *connect.Client[v1alpha1.GetAnalysisTemplateRequest, v1alpha1.GetAnalysisTemplateResponse]
	deleteAnalysisTemplate         *connect.Client[v1alpha1.DeleteAnalysisTemplateRequest, v1alpha1.DeleteAnalysisTemplateResponse]
	getAnalysisRun                 *connect.Client[v1alpha1.GetAnalysisRunRequest, v1alpha1.GetAnalysisRunResponse]
	listAnalysisTemplateConfigMaps *connect.Client[v1alpha1.ListAnalysisTemplateConfigMapsRequest, v1alpha1.ListAnalysisTemplateConfigMapsResponse]
	getAnalysisTemplateConfigMap   *connect.Client[v1alpha1.GetAnalysisTemplateConfigMapRequest, v1alpha1.GetAnalysisTemplateConfigMapResponse]
	listAnalysisTemplateSecrets    *connect.Client[v1alpha1.ListAnalysisTemplateSecretsRequest, v1alpha1.ListAnalysisTemplateSecretsResponse]
	getAnalysisTemplateSecret      *connect.Client[v1alpha1.GetAnalysisTemplateSecretRequest, v1alpha1.GetAnalysisTemplateSecretResponse]
	listProjectEvents              *connect.Client[v1alpha1.ListProjectEventsRequest, v1alpha1.ListProjectEventsResponse]
	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]
}

// 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)
}

// 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)
}

// 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)
}

// 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)
}

// 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)
}

// 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)
}

// ListAnalysisTemplateConfigMaps calls
// akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplateConfigMaps.
func (c *kargoServiceClient) ListAnalysisTemplateConfigMaps(ctx context.Context, req *connect.Request[v1alpha1.ListAnalysisTemplateConfigMapsRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplateConfigMapsResponse], error) {
	return c.listAnalysisTemplateConfigMaps.CallUnary(ctx, req)
}

// GetAnalysisTemplateConfigMap calls
// akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplateConfigMap.
func (c *kargoServiceClient) GetAnalysisTemplateConfigMap(ctx context.Context, req *connect.Request[v1alpha1.GetAnalysisTemplateConfigMapRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateConfigMapResponse], error) {
	return c.getAnalysisTemplateConfigMap.CallUnary(ctx, req)
}

// ListAnalysisTemplateSecrets calls
// akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplateSecrets.
func (c *kargoServiceClient) ListAnalysisTemplateSecrets(ctx context.Context, req *connect.Request[v1alpha1.ListAnalysisTemplateSecretsRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplateSecretsResponse], error) {
	return c.listAnalysisTemplateSecrets.CallUnary(ctx, req)
}

// GetAnalysisTemplateSecret calls
// akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplateSecret.
func (c *kargoServiceClient) GetAnalysisTemplateSecret(ctx context.Context, req *connect.Request[v1alpha1.GetAnalysisTemplateSecretRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateSecretResponse], error) {
	return c.getAnalysisTemplateSecret.CallUnary(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)
}

// 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)
}

// KargoServiceHandler is an implementation of the akuity.io.kargo.service.v1alpha1.KargoService
// service.
type KargoServiceHandler interface {
	GetVersionInfo(context.Context, *connect.Request[v1alpha1.GetVersionInfoRequest]) (*connect.Response[v1alpha1.GetVersionInfoResponse], error)
	GetConfig(context.Context, *connect.Request[v1alpha1.GetConfigRequest]) (*connect.Response[v1alpha1.GetConfigResponse], error)
	GetPublicConfig(context.Context, *connect.Request[v1alpha1.GetPublicConfigRequest]) (*connect.Response[v1alpha1.GetPublicConfigResponse], error)
	AdminLogin(context.Context, *connect.Request[v1alpha1.AdminLoginRequest]) (*connect.Response[v1alpha1.AdminLoginResponse], error)
	// TODO(devholic): Add ApplyResource API
	// rpc ApplyResource(ApplyResourceRequest) returns (ApplyResourceRequest);
	CreateResource(context.Context, *connect.Request[v1alpha1.CreateResourceRequest]) (*connect.Response[v1alpha1.CreateResourceResponse], error)
	CreateOrUpdateResource(context.Context, *connect.Request[v1alpha1.CreateOrUpdateResourceRequest]) (*connect.Response[v1alpha1.CreateOrUpdateResourceResponse], error)
	UpdateResource(context.Context, *connect.Request[v1alpha1.UpdateResourceRequest]) (*connect.Response[v1alpha1.UpdateResourceResponse], error)
	DeleteResource(context.Context, *connect.Request[v1alpha1.DeleteResourceRequest]) (*connect.Response[v1alpha1.DeleteResourceResponse], error)
	ListStages(context.Context, *connect.Request[v1alpha1.ListStagesRequest]) (*connect.Response[v1alpha1.ListStagesResponse], error)
	ListImages(context.Context, *connect.Request[v1alpha1.ListImagesRequest]) (*connect.Response[v1alpha1.ListImagesResponse], error)
	GetStage(context.Context, *connect.Request[v1alpha1.GetStageRequest]) (*connect.Response[v1alpha1.GetStageResponse], error)
	WatchStages(context.Context, *connect.Request[v1alpha1.WatchStagesRequest], *connect.ServerStream[v1alpha1.WatchStagesResponse]) error
	DeleteStage(context.Context, *connect.Request[v1alpha1.DeleteStageRequest]) (*connect.Response[v1alpha1.DeleteStageResponse], error)
	RefreshStage(context.Context, *connect.Request[v1alpha1.RefreshStageRequest]) (*connect.Response[v1alpha1.RefreshStageResponse], error)
	ListPromotions(context.Context, *connect.Request[v1alpha1.ListPromotionsRequest]) (*connect.Response[v1alpha1.ListPromotionsResponse], error)
	WatchPromotions(context.Context, *connect.Request[v1alpha1.WatchPromotionsRequest], *connect.ServerStream[v1alpha1.WatchPromotionsResponse]) error
	GetPromotion(context.Context, *connect.Request[v1alpha1.GetPromotionRequest]) (*connect.Response[v1alpha1.GetPromotionResponse], error)
	WatchPromotion(context.Context, *connect.Request[v1alpha1.WatchPromotionRequest], *connect.ServerStream[v1alpha1.WatchPromotionResponse]) error
	AbortPromotion(context.Context, *connect.Request[v1alpha1.AbortPromotionRequest]) (*connect.Response[v1alpha1.AbortPromotionResponse], error)
	DeleteProject(context.Context, *connect.Request[v1alpha1.DeleteProjectRequest]) (*connect.Response[v1alpha1.DeleteProjectResponse], error)
	GetProject(context.Context, *connect.Request[v1alpha1.GetProjectRequest]) (*connect.Response[v1alpha1.GetProjectResponse], error)
	ListProjects(context.Context, *connect.Request[v1alpha1.ListProjectsRequest]) (*connect.Response[v1alpha1.ListProjectsResponse], error)
	ApproveFreight(context.Context, *connect.Request[v1alpha1.ApproveFreightRequest]) (*connect.Response[v1alpha1.ApproveFreightResponse], error)
	DeleteFreight(context.Context, *connect.Request[v1alpha1.DeleteFreightRequest]) (*connect.Response[v1alpha1.DeleteFreightResponse], error)
	GetFreight(context.Context, *connect.Request[v1alpha1.GetFreightRequest]) (*connect.Response[v1alpha1.GetFreightResponse], error)
	PromoteToStage(context.Context, *connect.Request[v1alpha1.PromoteToStageRequest]) (*connect.Response[v1alpha1.PromoteToStageResponse], error)
	PromoteDownstream(context.Context, *connect.Request[v1alpha1.PromoteDownstreamRequest]) (*connect.Response[v1alpha1.PromoteDownstreamResponse], error)
	QueryFreight(context.Context, *connect.Request[v1alpha1.QueryFreightRequest]) (*connect.Response[v1alpha1.QueryFreightResponse], error)
	UpdateFreightAlias(context.Context, *connect.Request[v1alpha1.UpdateFreightAliasRequest]) (*connect.Response[v1alpha1.UpdateFreightAliasResponse], error)
	Reverify(context.Context, *connect.Request[v1alpha1.ReverifyRequest]) (*connect.Response[v1alpha1.ReverifyResponse], error)
	AbortVerification(context.Context, *connect.Request[v1alpha1.AbortVerificationRequest]) (*connect.Response[v1alpha1.AbortVerificationResponse], error)
	ListWarehouses(context.Context, *connect.Request[v1alpha1.ListWarehousesRequest]) (*connect.Response[v1alpha1.ListWarehousesResponse], error)
	GetWarehouse(context.Context, *connect.Request[v1alpha1.GetWarehouseRequest]) (*connect.Response[v1alpha1.GetWarehouseResponse], error)
	WatchWarehouses(context.Context, *connect.Request[v1alpha1.WatchWarehousesRequest], *connect.ServerStream[v1alpha1.WatchWarehousesResponse]) error
	DeleteWarehouse(context.Context, *connect.Request[v1alpha1.DeleteWarehouseRequest]) (*connect.Response[v1alpha1.DeleteWarehouseResponse], error)
	RefreshWarehouse(context.Context, *connect.Request[v1alpha1.RefreshWarehouseRequest]) (*connect.Response[v1alpha1.RefreshWarehouseResponse], error)
	CreateCredentials(context.Context, *connect.Request[v1alpha1.CreateCredentialsRequest]) (*connect.Response[v1alpha1.CreateCredentialsResponse], error)
	DeleteCredentials(context.Context, *connect.Request[v1alpha1.DeleteCredentialsRequest]) (*connect.Response[v1alpha1.DeleteCredentialsResponse], error)
	GetCredentials(context.Context, *connect.Request[v1alpha1.GetCredentialsRequest]) (*connect.Response[v1alpha1.GetCredentialsResponse], error)
	ListCredentials(context.Context, *connect.Request[v1alpha1.ListCredentialsRequest]) (*connect.Response[v1alpha1.ListCredentialsResponse], error)
	UpdateCredentials(context.Context, *connect.Request[v1alpha1.UpdateCredentialsRequest]) (*connect.Response[v1alpha1.UpdateCredentialsResponse], error)
	ListAnalysisTemplates(context.Context, *connect.Request[v1alpha1.ListAnalysisTemplatesRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplatesResponse], error)
	GetAnalysisTemplate(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateResponse], error)
	DeleteAnalysisTemplate(context.Context, *connect.Request[v1alpha1.DeleteAnalysisTemplateRequest]) (*connect.Response[v1alpha1.DeleteAnalysisTemplateResponse], error)
	GetAnalysisRun(context.Context, *connect.Request[v1alpha1.GetAnalysisRunRequest]) (*connect.Response[v1alpha1.GetAnalysisRunResponse], error)
	ListAnalysisTemplateConfigMaps(context.Context, *connect.Request[v1alpha1.ListAnalysisTemplateConfigMapsRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplateConfigMapsResponse], error)
	GetAnalysisTemplateConfigMap(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateConfigMapRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateConfigMapResponse], error)
	ListAnalysisTemplateSecrets(context.Context, *connect.Request[v1alpha1.ListAnalysisTemplateSecretsRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplateSecretsResponse], error)
	GetAnalysisTemplateSecret(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateSecretRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateSecretResponse], error)
	ListProjectEvents(context.Context, *connect.Request[v1alpha1.ListProjectEventsRequest]) (*connect.Response[v1alpha1.ListProjectEventsResponse], error)
	CreateRole(context.Context, *connect.Request[v1alpha1.CreateRoleRequest]) (*connect.Response[v1alpha1.CreateRoleResponse], error)
	DeleteRole(context.Context, *connect.Request[v1alpha1.DeleteRoleRequest]) (*connect.Response[v1alpha1.DeleteRoleResponse], error)
	GetRole(context.Context, *connect.Request[v1alpha1.GetRoleRequest]) (*connect.Response[v1alpha1.GetRoleResponse], error)
	Grant(context.Context, *connect.Request[v1alpha1.GrantRequest]) (*connect.Response[v1alpha1.GrantResponse], error)
	ListRoles(context.Context, *connect.Request[v1alpha1.ListRolesRequest]) (*connect.Response[v1alpha1.ListRolesResponse], error)
	Revoke(context.Context, *connect.Request[v1alpha1.RevokeRequest]) (*connect.Response[v1alpha1.RevokeResponse], error)
	UpdateRole(context.Context, *connect.Request[v1alpha1.UpdateRoleRequest]) (*connect.Response[v1alpha1.UpdateRoleResponse], 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...),
	)
	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...),
	)
	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...),
	)
	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...),
	)
	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...),
	)
	kargoServiceGetAnalysisRunHandler := connect.NewUnaryHandler(
		KargoServiceGetAnalysisRunProcedure,
		svc.GetAnalysisRun,
		connect.WithSchema(kargoServiceGetAnalysisRunMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListAnalysisTemplateConfigMapsHandler := connect.NewUnaryHandler(
		KargoServiceListAnalysisTemplateConfigMapsProcedure,
		svc.ListAnalysisTemplateConfigMaps,
		connect.WithSchema(kargoServiceListAnalysisTemplateConfigMapsMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetAnalysisTemplateConfigMapHandler := connect.NewUnaryHandler(
		KargoServiceGetAnalysisTemplateConfigMapProcedure,
		svc.GetAnalysisTemplateConfigMap,
		connect.WithSchema(kargoServiceGetAnalysisTemplateConfigMapMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListAnalysisTemplateSecretsHandler := connect.NewUnaryHandler(
		KargoServiceListAnalysisTemplateSecretsProcedure,
		svc.ListAnalysisTemplateSecrets,
		connect.WithSchema(kargoServiceListAnalysisTemplateSecretsMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceGetAnalysisTemplateSecretHandler := connect.NewUnaryHandler(
		KargoServiceGetAnalysisTemplateSecretProcedure,
		svc.GetAnalysisTemplateSecret,
		connect.WithSchema(kargoServiceGetAnalysisTemplateSecretMethodDescriptor),
		connect.WithHandlerOptions(opts...),
	)
	kargoServiceListProjectEventsHandler := connect.NewUnaryHandler(
		KargoServiceListProjectEventsProcedure,
		svc.ListProjectEvents,
		connect.WithSchema(kargoServiceListProjectEventsMethodDescriptor),
		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...),
	)
	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 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 KargoServiceApproveFreightProcedure:
			kargoServiceApproveFreightHandler.ServeHTTP(w, r)
		case KargoServiceDeleteFreightProcedure:
			kargoServiceDeleteFreightHandler.ServeHTTP(w, r)
		case KargoServiceGetFreightProcedure:
			kargoServiceGetFreightHandler.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 KargoServiceListAnalysisTemplatesProcedure:
			kargoServiceListAnalysisTemplatesHandler.ServeHTTP(w, r)
		case KargoServiceGetAnalysisTemplateProcedure:
			kargoServiceGetAnalysisTemplateHandler.ServeHTTP(w, r)
		case KargoServiceDeleteAnalysisTemplateProcedure:
			kargoServiceDeleteAnalysisTemplateHandler.ServeHTTP(w, r)
		case KargoServiceGetAnalysisRunProcedure:
			kargoServiceGetAnalysisRunHandler.ServeHTTP(w, r)
		case KargoServiceListAnalysisTemplateConfigMapsProcedure:
			kargoServiceListAnalysisTemplateConfigMapsHandler.ServeHTTP(w, r)
		case KargoServiceGetAnalysisTemplateConfigMapProcedure:
			kargoServiceGetAnalysisTemplateConfigMapHandler.ServeHTTP(w, r)
		case KargoServiceListAnalysisTemplateSecretsProcedure:
			kargoServiceListAnalysisTemplateSecretsHandler.ServeHTTP(w, r)
		case KargoServiceGetAnalysisTemplateSecretProcedure:
			kargoServiceGetAnalysisTemplateSecretHandler.ServeHTTP(w, r)
		case KargoServiceListProjectEventsProcedure:
			kargoServiceListProjectEventsHandler.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)
		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) 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) 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) 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) 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) 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) ListAnalysisTemplateConfigMaps(context.Context, *connect.Request[v1alpha1.ListAnalysisTemplateConfigMapsRequest]) (*connect.Response[v1alpha1.ListAnalysisTemplateConfigMapsResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.ListAnalysisTemplateConfigMaps is not implemented"))
}

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

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

func (UnimplementedKargoServiceHandler) GetAnalysisTemplateSecret(context.Context, *connect.Request[v1alpha1.GetAnalysisTemplateSecretRequest]) (*connect.Response[v1alpha1.GetAnalysisTemplateSecretResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("akuity.io.kargo.service.v1alpha1.KargoService.GetAnalysisTemplateSecret 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) 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"))
}
