// Code generated by protoc-gen-go-grpc. DO NOT EDIT.
// versions:
// - protoc-gen-go-grpc v1.6.1
// - protoc             (unknown)
// source: catalog/v1/consumer_views.proto

package catalogv1

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

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

const (
	ConsumerViewService_GetAppMetadataView_FullMethodName          = "/nexuscrm.catalog.v1.ConsumerViewService/GetAppMetadataView"
	ConsumerViewService_WatchAppMetadataView_FullMethodName        = "/nexuscrm.catalog.v1.ConsumerViewService/WatchAppMetadataView"
	ConsumerViewService_GetAppMetadataViewV2_FullMethodName        = "/nexuscrm.catalog.v1.ConsumerViewService/GetAppMetadataViewV2"
	ConsumerViewService_WatchAppMetadataViewV2_FullMethodName      = "/nexuscrm.catalog.v1.ConsumerViewService/WatchAppMetadataViewV2"
	ConsumerViewService_GetIntegrationBindingView_FullMethodName   = "/nexuscrm.catalog.v1.ConsumerViewService/GetIntegrationBindingView"
	ConsumerViewService_WatchIntegrationBindingView_FullMethodName = "/nexuscrm.catalog.v1.ConsumerViewService/WatchIntegrationBindingView"
)

// ConsumerViewServiceClient is the client API for ConsumerViewService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
//
// ConsumerViewService serves only caller-authorized immutable projections. It
// has no repository, latest, global, or unscoped method. All methods are
// hosted on the same phase-one private L0 endpoint as the Runtime services.
type ConsumerViewServiceClient interface {
	GetAppMetadataView(ctx context.Context, in *GetAppMetadataViewRequest, opts ...grpc.CallOption) (*GetAppMetadataViewResponse, error)
	WatchAppMetadataView(ctx context.Context, in *WatchAppMetadataViewRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[WatchAppMetadataViewResponse], error)
	GetAppMetadataViewV2(ctx context.Context, in *GetAppMetadataViewV2Request, opts ...grpc.CallOption) (*GetAppMetadataViewV2Response, error)
	WatchAppMetadataViewV2(ctx context.Context, in *WatchAppMetadataViewV2Request, opts ...grpc.CallOption) (grpc.ServerStreamingClient[WatchAppMetadataViewV2Response], error)
	GetIntegrationBindingView(ctx context.Context, in *GetIntegrationBindingViewRequest, opts ...grpc.CallOption) (*GetIntegrationBindingViewResponse, error)
	WatchIntegrationBindingView(ctx context.Context, in *WatchIntegrationBindingViewRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[WatchIntegrationBindingViewResponse], error)
}

type consumerViewServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewConsumerViewServiceClient(cc grpc.ClientConnInterface) ConsumerViewServiceClient {
	return &consumerViewServiceClient{cc}
}

func (c *consumerViewServiceClient) GetAppMetadataView(ctx context.Context, in *GetAppMetadataViewRequest, opts ...grpc.CallOption) (*GetAppMetadataViewResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetAppMetadataViewResponse)
	err := c.cc.Invoke(ctx, ConsumerViewService_GetAppMetadataView_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *consumerViewServiceClient) WatchAppMetadataView(ctx context.Context, in *WatchAppMetadataViewRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[WatchAppMetadataViewResponse], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &ConsumerViewService_ServiceDesc.Streams[0], ConsumerViewService_WatchAppMetadataView_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[WatchAppMetadataViewRequest, WatchAppMetadataViewResponse]{ClientStream: stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

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

func (c *consumerViewServiceClient) GetAppMetadataViewV2(ctx context.Context, in *GetAppMetadataViewV2Request, opts ...grpc.CallOption) (*GetAppMetadataViewV2Response, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetAppMetadataViewV2Response)
	err := c.cc.Invoke(ctx, ConsumerViewService_GetAppMetadataViewV2_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *consumerViewServiceClient) WatchAppMetadataViewV2(ctx context.Context, in *WatchAppMetadataViewV2Request, opts ...grpc.CallOption) (grpc.ServerStreamingClient[WatchAppMetadataViewV2Response], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &ConsumerViewService_ServiceDesc.Streams[1], ConsumerViewService_WatchAppMetadataViewV2_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[WatchAppMetadataViewV2Request, WatchAppMetadataViewV2Response]{ClientStream: stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

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

func (c *consumerViewServiceClient) GetIntegrationBindingView(ctx context.Context, in *GetIntegrationBindingViewRequest, opts ...grpc.CallOption) (*GetIntegrationBindingViewResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetIntegrationBindingViewResponse)
	err := c.cc.Invoke(ctx, ConsumerViewService_GetIntegrationBindingView_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *consumerViewServiceClient) WatchIntegrationBindingView(ctx context.Context, in *WatchIntegrationBindingViewRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[WatchIntegrationBindingViewResponse], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &ConsumerViewService_ServiceDesc.Streams[2], ConsumerViewService_WatchIntegrationBindingView_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[WatchIntegrationBindingViewRequest, WatchIntegrationBindingViewResponse]{ClientStream: stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

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

// ConsumerViewServiceServer is the server API for ConsumerViewService service.
// All implementations must embed UnimplementedConsumerViewServiceServer
// for forward compatibility.
//
// ConsumerViewService serves only caller-authorized immutable projections. It
// has no repository, latest, global, or unscoped method. All methods are
// hosted on the same phase-one private L0 endpoint as the Runtime services.
type ConsumerViewServiceServer interface {
	GetAppMetadataView(context.Context, *GetAppMetadataViewRequest) (*GetAppMetadataViewResponse, error)
	WatchAppMetadataView(*WatchAppMetadataViewRequest, grpc.ServerStreamingServer[WatchAppMetadataViewResponse]) error
	GetAppMetadataViewV2(context.Context, *GetAppMetadataViewV2Request) (*GetAppMetadataViewV2Response, error)
	WatchAppMetadataViewV2(*WatchAppMetadataViewV2Request, grpc.ServerStreamingServer[WatchAppMetadataViewV2Response]) error
	GetIntegrationBindingView(context.Context, *GetIntegrationBindingViewRequest) (*GetIntegrationBindingViewResponse, error)
	WatchIntegrationBindingView(*WatchIntegrationBindingViewRequest, grpc.ServerStreamingServer[WatchIntegrationBindingViewResponse]) error
	mustEmbedUnimplementedConsumerViewServiceServer()
}

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

func (UnimplementedConsumerViewServiceServer) GetAppMetadataView(context.Context, *GetAppMetadataViewRequest) (*GetAppMetadataViewResponse, error) {
	return nil, status.Error(codes.Unimplemented, "method GetAppMetadataView not implemented")
}
func (UnimplementedConsumerViewServiceServer) WatchAppMetadataView(*WatchAppMetadataViewRequest, grpc.ServerStreamingServer[WatchAppMetadataViewResponse]) error {
	return status.Error(codes.Unimplemented, "method WatchAppMetadataView not implemented")
}
func (UnimplementedConsumerViewServiceServer) GetAppMetadataViewV2(context.Context, *GetAppMetadataViewV2Request) (*GetAppMetadataViewV2Response, error) {
	return nil, status.Error(codes.Unimplemented, "method GetAppMetadataViewV2 not implemented")
}
func (UnimplementedConsumerViewServiceServer) WatchAppMetadataViewV2(*WatchAppMetadataViewV2Request, grpc.ServerStreamingServer[WatchAppMetadataViewV2Response]) error {
	return status.Error(codes.Unimplemented, "method WatchAppMetadataViewV2 not implemented")
}
func (UnimplementedConsumerViewServiceServer) GetIntegrationBindingView(context.Context, *GetIntegrationBindingViewRequest) (*GetIntegrationBindingViewResponse, error) {
	return nil, status.Error(codes.Unimplemented, "method GetIntegrationBindingView not implemented")
}
func (UnimplementedConsumerViewServiceServer) WatchIntegrationBindingView(*WatchIntegrationBindingViewRequest, grpc.ServerStreamingServer[WatchIntegrationBindingViewResponse]) error {
	return status.Error(codes.Unimplemented, "method WatchIntegrationBindingView not implemented")
}
func (UnimplementedConsumerViewServiceServer) mustEmbedUnimplementedConsumerViewServiceServer() {}
func (UnimplementedConsumerViewServiceServer) testEmbeddedByValue()                             {}

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

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

func _ConsumerViewService_GetAppMetadataView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetAppMetadataViewRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ConsumerViewServiceServer).GetAppMetadataView(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ConsumerViewService_GetAppMetadataView_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ConsumerViewServiceServer).GetAppMetadataView(ctx, req.(*GetAppMetadataViewRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ConsumerViewService_WatchAppMetadataView_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(WatchAppMetadataViewRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ConsumerViewServiceServer).WatchAppMetadataView(m, &grpc.GenericServerStream[WatchAppMetadataViewRequest, WatchAppMetadataViewResponse]{ServerStream: stream})
}

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

func _ConsumerViewService_GetAppMetadataViewV2_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetAppMetadataViewV2Request)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ConsumerViewServiceServer).GetAppMetadataViewV2(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ConsumerViewService_GetAppMetadataViewV2_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ConsumerViewServiceServer).GetAppMetadataViewV2(ctx, req.(*GetAppMetadataViewV2Request))
	}
	return interceptor(ctx, in, info, handler)
}

func _ConsumerViewService_WatchAppMetadataViewV2_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(WatchAppMetadataViewV2Request)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ConsumerViewServiceServer).WatchAppMetadataViewV2(m, &grpc.GenericServerStream[WatchAppMetadataViewV2Request, WatchAppMetadataViewV2Response]{ServerStream: stream})
}

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

func _ConsumerViewService_GetIntegrationBindingView_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetIntegrationBindingViewRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(ConsumerViewServiceServer).GetIntegrationBindingView(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: ConsumerViewService_GetIntegrationBindingView_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(ConsumerViewServiceServer).GetIntegrationBindingView(ctx, req.(*GetIntegrationBindingViewRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _ConsumerViewService_WatchIntegrationBindingView_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(WatchIntegrationBindingViewRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(ConsumerViewServiceServer).WatchIntegrationBindingView(m, &grpc.GenericServerStream[WatchIntegrationBindingViewRequest, WatchIntegrationBindingViewResponse]{ServerStream: stream})
}

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

// ConsumerViewService_ServiceDesc is the grpc.ServiceDesc for ConsumerViewService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var ConsumerViewService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "nexuscrm.catalog.v1.ConsumerViewService",
	HandlerType: (*ConsumerViewServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetAppMetadataView",
			Handler:    _ConsumerViewService_GetAppMetadataView_Handler,
		},
		{
			MethodName: "GetAppMetadataViewV2",
			Handler:    _ConsumerViewService_GetAppMetadataViewV2_Handler,
		},
		{
			MethodName: "GetIntegrationBindingView",
			Handler:    _ConsumerViewService_GetIntegrationBindingView_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "WatchAppMetadataView",
			Handler:       _ConsumerViewService_WatchAppMetadataView_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "WatchAppMetadataViewV2",
			Handler:       _ConsumerViewService_WatchAppMetadataViewV2_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "WatchIntegrationBindingView",
			Handler:       _ConsumerViewService_WatchIntegrationBindingView_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "catalog/v1/consumer_views.proto",
}

const (
	AppMetadataViewV3Service_GetAppMetadataViewV3_FullMethodName   = "/nexuscrm.catalog.v1.AppMetadataViewV3Service/GetAppMetadataViewV3"
	AppMetadataViewV3Service_WatchAppMetadataViewV3_FullMethodName = "/nexuscrm.catalog.v1.AppMetadataViewV3Service/WatchAppMetadataViewV3"
)

// AppMetadataViewV3ServiceClient is the client API for AppMetadataViewV3Service service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
//
// AppMetadataViewV3Service carries the separately versioned V3 capability
// without changing the published ConsumerViewService Go client interface. It
// is registered on the same private L0 endpoint; this is not another serving
// process, network hop, or Catalog authority.
type AppMetadataViewV3ServiceClient interface {
	GetAppMetadataViewV3(ctx context.Context, in *GetAppMetadataViewV3Request, opts ...grpc.CallOption) (*GetAppMetadataViewV3Response, error)
	WatchAppMetadataViewV3(ctx context.Context, in *WatchAppMetadataViewV3Request, opts ...grpc.CallOption) (grpc.ServerStreamingClient[WatchAppMetadataViewV3Response], error)
}

type appMetadataViewV3ServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewAppMetadataViewV3ServiceClient(cc grpc.ClientConnInterface) AppMetadataViewV3ServiceClient {
	return &appMetadataViewV3ServiceClient{cc}
}

func (c *appMetadataViewV3ServiceClient) GetAppMetadataViewV3(ctx context.Context, in *GetAppMetadataViewV3Request, opts ...grpc.CallOption) (*GetAppMetadataViewV3Response, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(GetAppMetadataViewV3Response)
	err := c.cc.Invoke(ctx, AppMetadataViewV3Service_GetAppMetadataViewV3_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *appMetadataViewV3ServiceClient) WatchAppMetadataViewV3(ctx context.Context, in *WatchAppMetadataViewV3Request, opts ...grpc.CallOption) (grpc.ServerStreamingClient[WatchAppMetadataViewV3Response], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &AppMetadataViewV3Service_ServiceDesc.Streams[0], AppMetadataViewV3Service_WatchAppMetadataViewV3_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[WatchAppMetadataViewV3Request, WatchAppMetadataViewV3Response]{ClientStream: stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

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

// AppMetadataViewV3ServiceServer is the server API for AppMetadataViewV3Service service.
// All implementations must embed UnimplementedAppMetadataViewV3ServiceServer
// for forward compatibility.
//
// AppMetadataViewV3Service carries the separately versioned V3 capability
// without changing the published ConsumerViewService Go client interface. It
// is registered on the same private L0 endpoint; this is not another serving
// process, network hop, or Catalog authority.
type AppMetadataViewV3ServiceServer interface {
	GetAppMetadataViewV3(context.Context, *GetAppMetadataViewV3Request) (*GetAppMetadataViewV3Response, error)
	WatchAppMetadataViewV3(*WatchAppMetadataViewV3Request, grpc.ServerStreamingServer[WatchAppMetadataViewV3Response]) error
	mustEmbedUnimplementedAppMetadataViewV3ServiceServer()
}

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

func (UnimplementedAppMetadataViewV3ServiceServer) GetAppMetadataViewV3(context.Context, *GetAppMetadataViewV3Request) (*GetAppMetadataViewV3Response, error) {
	return nil, status.Error(codes.Unimplemented, "method GetAppMetadataViewV3 not implemented")
}
func (UnimplementedAppMetadataViewV3ServiceServer) WatchAppMetadataViewV3(*WatchAppMetadataViewV3Request, grpc.ServerStreamingServer[WatchAppMetadataViewV3Response]) error {
	return status.Error(codes.Unimplemented, "method WatchAppMetadataViewV3 not implemented")
}
func (UnimplementedAppMetadataViewV3ServiceServer) mustEmbedUnimplementedAppMetadataViewV3ServiceServer() {
}
func (UnimplementedAppMetadataViewV3ServiceServer) testEmbeddedByValue() {}

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

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

func _AppMetadataViewV3Service_GetAppMetadataViewV3_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetAppMetadataViewV3Request)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(AppMetadataViewV3ServiceServer).GetAppMetadataViewV3(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: AppMetadataViewV3Service_GetAppMetadataViewV3_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(AppMetadataViewV3ServiceServer).GetAppMetadataViewV3(ctx, req.(*GetAppMetadataViewV3Request))
	}
	return interceptor(ctx, in, info, handler)
}

func _AppMetadataViewV3Service_WatchAppMetadataViewV3_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(WatchAppMetadataViewV3Request)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(AppMetadataViewV3ServiceServer).WatchAppMetadataViewV3(m, &grpc.GenericServerStream[WatchAppMetadataViewV3Request, WatchAppMetadataViewV3Response]{ServerStream: stream})
}

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

// AppMetadataViewV3Service_ServiceDesc is the grpc.ServiceDesc for AppMetadataViewV3Service service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var AppMetadataViewV3Service_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "nexuscrm.catalog.v1.AppMetadataViewV3Service",
	HandlerType: (*AppMetadataViewV3ServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "GetAppMetadataViewV3",
			Handler:    _AppMetadataViewV3Service_GetAppMetadataViewV3_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "WatchAppMetadataViewV3",
			Handler:       _AppMetadataViewV3Service_WatchAppMetadataViewV3_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "catalog/v1/consumer_views.proto",
}
