// ClientsService -- project-scoped public CRUD surface for managed
// API-key clients. Every request carries (customer_id, project_id) so
// the handler can filter by ownership; reads ignore rows belonging to
// other (customer, project) pairs and writes refuse to materialise rows
// with an unset project_id.
//
// Both customer_id and project_id are optional on the request body: when
// empty the handler substitutes the caller's session-default customer +
// project (today, the well-known "default"/"default" bootstrapped for
// every tenant). REST callers still receive them in the URL path; only
// direct connect-RPC + CLI callers benefit from the optionality.
//
// google.api.http annotations route Vanguard's REST surface under
// `/v1/customers/{customer_id}/projects/{project_id}/clients[/...]`.
// tars.cli.v1.command annotations surface the same RPCs as
// `ia clients ...` and `ia clients keys ...` subcommands.

// Code generated by protoc-gen-connect-go. DO NOT EDIT.
//
// Source: tars/clients/v1/clients.proto

package clientsv1connect

import (
	connect "connectrpc.com/connect"
	context "context"
	errors "errors"
	v1 "github.com/tetrateio/agentrouter-go/genapi/api/tars/clients/v1"
	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 (
	// ClientsServiceName is the fully-qualified name of the ClientsService service.
	ClientsServiceName = "tars.clients.v1.ClientsService"
)

// 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 (
	// ClientsServiceCreateClientWithKeyProcedure is the fully-qualified name of the ClientsService's
	// CreateClientWithKey RPC.
	ClientsServiceCreateClientWithKeyProcedure = "/tars.clients.v1.ClientsService/CreateClientWithKey"
	// ClientsServiceListClientsProcedure is the fully-qualified name of the ClientsService's
	// ListClients RPC.
	ClientsServiceListClientsProcedure = "/tars.clients.v1.ClientsService/ListClients"
	// ClientsServiceGetClientProcedure is the fully-qualified name of the ClientsService's GetClient
	// RPC.
	ClientsServiceGetClientProcedure = "/tars.clients.v1.ClientsService/GetClient"
	// ClientsServiceUpdateClientTitleProcedure is the fully-qualified name of the ClientsService's
	// UpdateClientTitle RPC.
	ClientsServiceUpdateClientTitleProcedure = "/tars.clients.v1.ClientsService/UpdateClientTitle"
	// ClientsServiceAddKeyToClientProcedure is the fully-qualified name of the ClientsService's
	// AddKeyToClient RPC.
	ClientsServiceAddKeyToClientProcedure = "/tars.clients.v1.ClientsService/AddKeyToClient"
	// ClientsServiceRotateKeyInClientProcedure is the fully-qualified name of the ClientsService's
	// RotateKeyInClient RPC.
	ClientsServiceRotateKeyInClientProcedure = "/tars.clients.v1.ClientsService/RotateKeyInClient"
	// ClientsServiceDisableKeyVersionInClientProcedure is the fully-qualified name of the
	// ClientsService's DisableKeyVersionInClient RPC.
	ClientsServiceDisableKeyVersionInClientProcedure = "/tars.clients.v1.ClientsService/DisableKeyVersionInClient"
	// ClientsServiceEnableKeyVersionInClientProcedure is the fully-qualified name of the
	// ClientsService's EnableKeyVersionInClient RPC.
	ClientsServiceEnableKeyVersionInClientProcedure = "/tars.clients.v1.ClientsService/EnableKeyVersionInClient"
	// ClientsServiceDestroyKeyVersionInClientProcedure is the fully-qualified name of the
	// ClientsService's DestroyKeyVersionInClient RPC.
	ClientsServiceDestroyKeyVersionInClientProcedure = "/tars.clients.v1.ClientsService/DestroyKeyVersionInClient"
	// ClientsServiceEmergencyRevokeKeyVersionProcedure is the fully-qualified name of the
	// ClientsService's EmergencyRevokeKeyVersion RPC.
	ClientsServiceEmergencyRevokeKeyVersionProcedure = "/tars.clients.v1.ClientsService/EmergencyRevokeKeyVersion"
)

// ClientsServiceClient is a client for the tars.clients.v1.ClientsService service.
type ClientsServiceClient interface {
	// CreateClientWithKey creates a new client and a new API key attached
	// 1:1 (client_id == key_id at bootstrap).
	CreateClientWithKey(context.Context, *connect.Request[v1.CreateClientWithKeyRequest]) (*connect.Response[v1.CreateClientWithKeyResponse], error)
	// ListClients returns every client owned by the caller within the
	// given (customer_id, project_id) scope.
	ListClients(context.Context, *connect.Request[v1.ListClientsRequest]) (*connect.Response[v1.ListClientsResponse], error)
	// GetClient returns a single client by id within the scope.
	GetClient(context.Context, *connect.Request[v1.GetClientRequest]) (*connect.Response[v1.GetClientResponse], error)
	// UpdateClientTitle updates the editable client title.
	UpdateClientTitle(context.Context, *connect.Request[v1.UpdateClientTitleRequest]) (*connect.Response[v1.UpdateClientTitleResponse], error)
	// AddKeyToClient attaches an existing key to a client.
	AddKeyToClient(context.Context, *connect.Request[v1.AddKeyToClientRequest]) (*connect.Response[v1.AddKeyToClientResponse], error)
	// RotateKeyInClient creates a new key attached to client_id and may
	// schedule the prior key's disable/destroy lifecycle.
	RotateKeyInClient(context.Context, *connect.Request[v1.RotateKeyInClientRequest]) (*connect.Response[v1.RotateKeyInClientResponse], error)
	// DisableKeyVersionInClient disables a key version immediately (reversible).
	DisableKeyVersionInClient(context.Context, *connect.Request[v1.DisableKeyVersionInClientRequest]) (*connect.Response[v1.DisableKeyVersionInClientResponse], error)
	// EnableKeyVersionInClient re-enables a disabled key version.
	EnableKeyVersionInClient(context.Context, *connect.Request[v1.EnableKeyVersionInClientRequest]) (*connect.Response[v1.EnableKeyVersionInClientResponse], error)
	// DestroyKeyVersionInClient permanently destroys a key version.
	DestroyKeyVersionInClient(context.Context, *connect.Request[v1.DestroyKeyVersionInClientRequest]) (*connect.Response[v1.DestroyKeyVersionInClientResponse], error)
	// EmergencyRevokeKeyVersion disables a key immediately and optionally
	// creates a replacement.
	EmergencyRevokeKeyVersion(context.Context, *connect.Request[v1.EmergencyRevokeKeyVersionRequest]) (*connect.Response[v1.EmergencyRevokeKeyVersionResponse], error)
}

// NewClientsServiceClient constructs a client for the tars.clients.v1.ClientsService 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 NewClientsServiceClient(httpClient connect.HTTPClient, baseURL string, opts ...connect.ClientOption) ClientsServiceClient {
	baseURL = strings.TrimRight(baseURL, "/")
	clientsServiceMethods := v1.File_tars_clients_v1_clients_proto.Services().ByName("ClientsService").Methods()
	return &clientsServiceClient{
		createClientWithKey: connect.NewClient[v1.CreateClientWithKeyRequest, v1.CreateClientWithKeyResponse](
			httpClient,
			baseURL+ClientsServiceCreateClientWithKeyProcedure,
			connect.WithSchema(clientsServiceMethods.ByName("CreateClientWithKey")),
			connect.WithClientOptions(opts...),
		),
		listClients: connect.NewClient[v1.ListClientsRequest, v1.ListClientsResponse](
			httpClient,
			baseURL+ClientsServiceListClientsProcedure,
			connect.WithSchema(clientsServiceMethods.ByName("ListClients")),
			connect.WithIdempotency(connect.IdempotencyNoSideEffects),
			connect.WithClientOptions(opts...),
		),
		getClient: connect.NewClient[v1.GetClientRequest, v1.GetClientResponse](
			httpClient,
			baseURL+ClientsServiceGetClientProcedure,
			connect.WithSchema(clientsServiceMethods.ByName("GetClient")),
			connect.WithIdempotency(connect.IdempotencyNoSideEffects),
			connect.WithClientOptions(opts...),
		),
		updateClientTitle: connect.NewClient[v1.UpdateClientTitleRequest, v1.UpdateClientTitleResponse](
			httpClient,
			baseURL+ClientsServiceUpdateClientTitleProcedure,
			connect.WithSchema(clientsServiceMethods.ByName("UpdateClientTitle")),
			connect.WithClientOptions(opts...),
		),
		addKeyToClient: connect.NewClient[v1.AddKeyToClientRequest, v1.AddKeyToClientResponse](
			httpClient,
			baseURL+ClientsServiceAddKeyToClientProcedure,
			connect.WithSchema(clientsServiceMethods.ByName("AddKeyToClient")),
			connect.WithClientOptions(opts...),
		),
		rotateKeyInClient: connect.NewClient[v1.RotateKeyInClientRequest, v1.RotateKeyInClientResponse](
			httpClient,
			baseURL+ClientsServiceRotateKeyInClientProcedure,
			connect.WithSchema(clientsServiceMethods.ByName("RotateKeyInClient")),
			connect.WithClientOptions(opts...),
		),
		disableKeyVersionInClient: connect.NewClient[v1.DisableKeyVersionInClientRequest, v1.DisableKeyVersionInClientResponse](
			httpClient,
			baseURL+ClientsServiceDisableKeyVersionInClientProcedure,
			connect.WithSchema(clientsServiceMethods.ByName("DisableKeyVersionInClient")),
			connect.WithClientOptions(opts...),
		),
		enableKeyVersionInClient: connect.NewClient[v1.EnableKeyVersionInClientRequest, v1.EnableKeyVersionInClientResponse](
			httpClient,
			baseURL+ClientsServiceEnableKeyVersionInClientProcedure,
			connect.WithSchema(clientsServiceMethods.ByName("EnableKeyVersionInClient")),
			connect.WithClientOptions(opts...),
		),
		destroyKeyVersionInClient: connect.NewClient[v1.DestroyKeyVersionInClientRequest, v1.DestroyKeyVersionInClientResponse](
			httpClient,
			baseURL+ClientsServiceDestroyKeyVersionInClientProcedure,
			connect.WithSchema(clientsServiceMethods.ByName("DestroyKeyVersionInClient")),
			connect.WithClientOptions(opts...),
		),
		emergencyRevokeKeyVersion: connect.NewClient[v1.EmergencyRevokeKeyVersionRequest, v1.EmergencyRevokeKeyVersionResponse](
			httpClient,
			baseURL+ClientsServiceEmergencyRevokeKeyVersionProcedure,
			connect.WithSchema(clientsServiceMethods.ByName("EmergencyRevokeKeyVersion")),
			connect.WithClientOptions(opts...),
		),
	}
}

// clientsServiceClient implements ClientsServiceClient.
type clientsServiceClient struct {
	createClientWithKey       *connect.Client[v1.CreateClientWithKeyRequest, v1.CreateClientWithKeyResponse]
	listClients               *connect.Client[v1.ListClientsRequest, v1.ListClientsResponse]
	getClient                 *connect.Client[v1.GetClientRequest, v1.GetClientResponse]
	updateClientTitle         *connect.Client[v1.UpdateClientTitleRequest, v1.UpdateClientTitleResponse]
	addKeyToClient            *connect.Client[v1.AddKeyToClientRequest, v1.AddKeyToClientResponse]
	rotateKeyInClient         *connect.Client[v1.RotateKeyInClientRequest, v1.RotateKeyInClientResponse]
	disableKeyVersionInClient *connect.Client[v1.DisableKeyVersionInClientRequest, v1.DisableKeyVersionInClientResponse]
	enableKeyVersionInClient  *connect.Client[v1.EnableKeyVersionInClientRequest, v1.EnableKeyVersionInClientResponse]
	destroyKeyVersionInClient *connect.Client[v1.DestroyKeyVersionInClientRequest, v1.DestroyKeyVersionInClientResponse]
	emergencyRevokeKeyVersion *connect.Client[v1.EmergencyRevokeKeyVersionRequest, v1.EmergencyRevokeKeyVersionResponse]
}

// CreateClientWithKey calls tars.clients.v1.ClientsService.CreateClientWithKey.
func (c *clientsServiceClient) CreateClientWithKey(ctx context.Context, req *connect.Request[v1.CreateClientWithKeyRequest]) (*connect.Response[v1.CreateClientWithKeyResponse], error) {
	return c.createClientWithKey.CallUnary(ctx, req)
}

// ListClients calls tars.clients.v1.ClientsService.ListClients.
func (c *clientsServiceClient) ListClients(ctx context.Context, req *connect.Request[v1.ListClientsRequest]) (*connect.Response[v1.ListClientsResponse], error) {
	return c.listClients.CallUnary(ctx, req)
}

// GetClient calls tars.clients.v1.ClientsService.GetClient.
func (c *clientsServiceClient) GetClient(ctx context.Context, req *connect.Request[v1.GetClientRequest]) (*connect.Response[v1.GetClientResponse], error) {
	return c.getClient.CallUnary(ctx, req)
}

// UpdateClientTitle calls tars.clients.v1.ClientsService.UpdateClientTitle.
func (c *clientsServiceClient) UpdateClientTitle(ctx context.Context, req *connect.Request[v1.UpdateClientTitleRequest]) (*connect.Response[v1.UpdateClientTitleResponse], error) {
	return c.updateClientTitle.CallUnary(ctx, req)
}

// AddKeyToClient calls tars.clients.v1.ClientsService.AddKeyToClient.
func (c *clientsServiceClient) AddKeyToClient(ctx context.Context, req *connect.Request[v1.AddKeyToClientRequest]) (*connect.Response[v1.AddKeyToClientResponse], error) {
	return c.addKeyToClient.CallUnary(ctx, req)
}

// RotateKeyInClient calls tars.clients.v1.ClientsService.RotateKeyInClient.
func (c *clientsServiceClient) RotateKeyInClient(ctx context.Context, req *connect.Request[v1.RotateKeyInClientRequest]) (*connect.Response[v1.RotateKeyInClientResponse], error) {
	return c.rotateKeyInClient.CallUnary(ctx, req)
}

// DisableKeyVersionInClient calls tars.clients.v1.ClientsService.DisableKeyVersionInClient.
func (c *clientsServiceClient) DisableKeyVersionInClient(ctx context.Context, req *connect.Request[v1.DisableKeyVersionInClientRequest]) (*connect.Response[v1.DisableKeyVersionInClientResponse], error) {
	return c.disableKeyVersionInClient.CallUnary(ctx, req)
}

// EnableKeyVersionInClient calls tars.clients.v1.ClientsService.EnableKeyVersionInClient.
func (c *clientsServiceClient) EnableKeyVersionInClient(ctx context.Context, req *connect.Request[v1.EnableKeyVersionInClientRequest]) (*connect.Response[v1.EnableKeyVersionInClientResponse], error) {
	return c.enableKeyVersionInClient.CallUnary(ctx, req)
}

// DestroyKeyVersionInClient calls tars.clients.v1.ClientsService.DestroyKeyVersionInClient.
func (c *clientsServiceClient) DestroyKeyVersionInClient(ctx context.Context, req *connect.Request[v1.DestroyKeyVersionInClientRequest]) (*connect.Response[v1.DestroyKeyVersionInClientResponse], error) {
	return c.destroyKeyVersionInClient.CallUnary(ctx, req)
}

// EmergencyRevokeKeyVersion calls tars.clients.v1.ClientsService.EmergencyRevokeKeyVersion.
func (c *clientsServiceClient) EmergencyRevokeKeyVersion(ctx context.Context, req *connect.Request[v1.EmergencyRevokeKeyVersionRequest]) (*connect.Response[v1.EmergencyRevokeKeyVersionResponse], error) {
	return c.emergencyRevokeKeyVersion.CallUnary(ctx, req)
}

// ClientsServiceHandler is an implementation of the tars.clients.v1.ClientsService service.
type ClientsServiceHandler interface {
	// CreateClientWithKey creates a new client and a new API key attached
	// 1:1 (client_id == key_id at bootstrap).
	CreateClientWithKey(context.Context, *connect.Request[v1.CreateClientWithKeyRequest]) (*connect.Response[v1.CreateClientWithKeyResponse], error)
	// ListClients returns every client owned by the caller within the
	// given (customer_id, project_id) scope.
	ListClients(context.Context, *connect.Request[v1.ListClientsRequest]) (*connect.Response[v1.ListClientsResponse], error)
	// GetClient returns a single client by id within the scope.
	GetClient(context.Context, *connect.Request[v1.GetClientRequest]) (*connect.Response[v1.GetClientResponse], error)
	// UpdateClientTitle updates the editable client title.
	UpdateClientTitle(context.Context, *connect.Request[v1.UpdateClientTitleRequest]) (*connect.Response[v1.UpdateClientTitleResponse], error)
	// AddKeyToClient attaches an existing key to a client.
	AddKeyToClient(context.Context, *connect.Request[v1.AddKeyToClientRequest]) (*connect.Response[v1.AddKeyToClientResponse], error)
	// RotateKeyInClient creates a new key attached to client_id and may
	// schedule the prior key's disable/destroy lifecycle.
	RotateKeyInClient(context.Context, *connect.Request[v1.RotateKeyInClientRequest]) (*connect.Response[v1.RotateKeyInClientResponse], error)
	// DisableKeyVersionInClient disables a key version immediately (reversible).
	DisableKeyVersionInClient(context.Context, *connect.Request[v1.DisableKeyVersionInClientRequest]) (*connect.Response[v1.DisableKeyVersionInClientResponse], error)
	// EnableKeyVersionInClient re-enables a disabled key version.
	EnableKeyVersionInClient(context.Context, *connect.Request[v1.EnableKeyVersionInClientRequest]) (*connect.Response[v1.EnableKeyVersionInClientResponse], error)
	// DestroyKeyVersionInClient permanently destroys a key version.
	DestroyKeyVersionInClient(context.Context, *connect.Request[v1.DestroyKeyVersionInClientRequest]) (*connect.Response[v1.DestroyKeyVersionInClientResponse], error)
	// EmergencyRevokeKeyVersion disables a key immediately and optionally
	// creates a replacement.
	EmergencyRevokeKeyVersion(context.Context, *connect.Request[v1.EmergencyRevokeKeyVersionRequest]) (*connect.Response[v1.EmergencyRevokeKeyVersionResponse], error)
}

// NewClientsServiceHandler 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 NewClientsServiceHandler(svc ClientsServiceHandler, opts ...connect.HandlerOption) (string, http.Handler) {
	clientsServiceMethods := v1.File_tars_clients_v1_clients_proto.Services().ByName("ClientsService").Methods()
	clientsServiceCreateClientWithKeyHandler := connect.NewUnaryHandler(
		ClientsServiceCreateClientWithKeyProcedure,
		svc.CreateClientWithKey,
		connect.WithSchema(clientsServiceMethods.ByName("CreateClientWithKey")),
		connect.WithHandlerOptions(opts...),
	)
	clientsServiceListClientsHandler := connect.NewUnaryHandler(
		ClientsServiceListClientsProcedure,
		svc.ListClients,
		connect.WithSchema(clientsServiceMethods.ByName("ListClients")),
		connect.WithIdempotency(connect.IdempotencyNoSideEffects),
		connect.WithHandlerOptions(opts...),
	)
	clientsServiceGetClientHandler := connect.NewUnaryHandler(
		ClientsServiceGetClientProcedure,
		svc.GetClient,
		connect.WithSchema(clientsServiceMethods.ByName("GetClient")),
		connect.WithIdempotency(connect.IdempotencyNoSideEffects),
		connect.WithHandlerOptions(opts...),
	)
	clientsServiceUpdateClientTitleHandler := connect.NewUnaryHandler(
		ClientsServiceUpdateClientTitleProcedure,
		svc.UpdateClientTitle,
		connect.WithSchema(clientsServiceMethods.ByName("UpdateClientTitle")),
		connect.WithHandlerOptions(opts...),
	)
	clientsServiceAddKeyToClientHandler := connect.NewUnaryHandler(
		ClientsServiceAddKeyToClientProcedure,
		svc.AddKeyToClient,
		connect.WithSchema(clientsServiceMethods.ByName("AddKeyToClient")),
		connect.WithHandlerOptions(opts...),
	)
	clientsServiceRotateKeyInClientHandler := connect.NewUnaryHandler(
		ClientsServiceRotateKeyInClientProcedure,
		svc.RotateKeyInClient,
		connect.WithSchema(clientsServiceMethods.ByName("RotateKeyInClient")),
		connect.WithHandlerOptions(opts...),
	)
	clientsServiceDisableKeyVersionInClientHandler := connect.NewUnaryHandler(
		ClientsServiceDisableKeyVersionInClientProcedure,
		svc.DisableKeyVersionInClient,
		connect.WithSchema(clientsServiceMethods.ByName("DisableKeyVersionInClient")),
		connect.WithHandlerOptions(opts...),
	)
	clientsServiceEnableKeyVersionInClientHandler := connect.NewUnaryHandler(
		ClientsServiceEnableKeyVersionInClientProcedure,
		svc.EnableKeyVersionInClient,
		connect.WithSchema(clientsServiceMethods.ByName("EnableKeyVersionInClient")),
		connect.WithHandlerOptions(opts...),
	)
	clientsServiceDestroyKeyVersionInClientHandler := connect.NewUnaryHandler(
		ClientsServiceDestroyKeyVersionInClientProcedure,
		svc.DestroyKeyVersionInClient,
		connect.WithSchema(clientsServiceMethods.ByName("DestroyKeyVersionInClient")),
		connect.WithHandlerOptions(opts...),
	)
	clientsServiceEmergencyRevokeKeyVersionHandler := connect.NewUnaryHandler(
		ClientsServiceEmergencyRevokeKeyVersionProcedure,
		svc.EmergencyRevokeKeyVersion,
		connect.WithSchema(clientsServiceMethods.ByName("EmergencyRevokeKeyVersion")),
		connect.WithHandlerOptions(opts...),
	)
	return "/tars.clients.v1.ClientsService/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		switch r.URL.Path {
		case ClientsServiceCreateClientWithKeyProcedure:
			clientsServiceCreateClientWithKeyHandler.ServeHTTP(w, r)
		case ClientsServiceListClientsProcedure:
			clientsServiceListClientsHandler.ServeHTTP(w, r)
		case ClientsServiceGetClientProcedure:
			clientsServiceGetClientHandler.ServeHTTP(w, r)
		case ClientsServiceUpdateClientTitleProcedure:
			clientsServiceUpdateClientTitleHandler.ServeHTTP(w, r)
		case ClientsServiceAddKeyToClientProcedure:
			clientsServiceAddKeyToClientHandler.ServeHTTP(w, r)
		case ClientsServiceRotateKeyInClientProcedure:
			clientsServiceRotateKeyInClientHandler.ServeHTTP(w, r)
		case ClientsServiceDisableKeyVersionInClientProcedure:
			clientsServiceDisableKeyVersionInClientHandler.ServeHTTP(w, r)
		case ClientsServiceEnableKeyVersionInClientProcedure:
			clientsServiceEnableKeyVersionInClientHandler.ServeHTTP(w, r)
		case ClientsServiceDestroyKeyVersionInClientProcedure:
			clientsServiceDestroyKeyVersionInClientHandler.ServeHTTP(w, r)
		case ClientsServiceEmergencyRevokeKeyVersionProcedure:
			clientsServiceEmergencyRevokeKeyVersionHandler.ServeHTTP(w, r)
		default:
			http.NotFound(w, r)
		}
	})
}

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

func (UnimplementedClientsServiceHandler) CreateClientWithKey(context.Context, *connect.Request[v1.CreateClientWithKeyRequest]) (*connect.Response[v1.CreateClientWithKeyResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("tars.clients.v1.ClientsService.CreateClientWithKey is not implemented"))
}

func (UnimplementedClientsServiceHandler) ListClients(context.Context, *connect.Request[v1.ListClientsRequest]) (*connect.Response[v1.ListClientsResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("tars.clients.v1.ClientsService.ListClients is not implemented"))
}

func (UnimplementedClientsServiceHandler) GetClient(context.Context, *connect.Request[v1.GetClientRequest]) (*connect.Response[v1.GetClientResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("tars.clients.v1.ClientsService.GetClient is not implemented"))
}

func (UnimplementedClientsServiceHandler) UpdateClientTitle(context.Context, *connect.Request[v1.UpdateClientTitleRequest]) (*connect.Response[v1.UpdateClientTitleResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("tars.clients.v1.ClientsService.UpdateClientTitle is not implemented"))
}

func (UnimplementedClientsServiceHandler) AddKeyToClient(context.Context, *connect.Request[v1.AddKeyToClientRequest]) (*connect.Response[v1.AddKeyToClientResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("tars.clients.v1.ClientsService.AddKeyToClient is not implemented"))
}

func (UnimplementedClientsServiceHandler) RotateKeyInClient(context.Context, *connect.Request[v1.RotateKeyInClientRequest]) (*connect.Response[v1.RotateKeyInClientResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("tars.clients.v1.ClientsService.RotateKeyInClient is not implemented"))
}

func (UnimplementedClientsServiceHandler) DisableKeyVersionInClient(context.Context, *connect.Request[v1.DisableKeyVersionInClientRequest]) (*connect.Response[v1.DisableKeyVersionInClientResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("tars.clients.v1.ClientsService.DisableKeyVersionInClient is not implemented"))
}

func (UnimplementedClientsServiceHandler) EnableKeyVersionInClient(context.Context, *connect.Request[v1.EnableKeyVersionInClientRequest]) (*connect.Response[v1.EnableKeyVersionInClientResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("tars.clients.v1.ClientsService.EnableKeyVersionInClient is not implemented"))
}

func (UnimplementedClientsServiceHandler) DestroyKeyVersionInClient(context.Context, *connect.Request[v1.DestroyKeyVersionInClientRequest]) (*connect.Response[v1.DestroyKeyVersionInClientResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("tars.clients.v1.ClientsService.DestroyKeyVersionInClient is not implemented"))
}

func (UnimplementedClientsServiceHandler) EmergencyRevokeKeyVersion(context.Context, *connect.Request[v1.EmergencyRevokeKeyVersionRequest]) (*connect.Response[v1.EmergencyRevokeKeyVersionResponse], error) {
	return nil, connect.NewError(connect.CodeUnimplemented, errors.New("tars.clients.v1.ClientsService.EmergencyRevokeKeyVersion is not implemented"))
}
