// Older protoc compilers don't understand edition yet.

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

package a2apb

import (
	context "context"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
)

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

const (
	A2AService_SendMessage_FullMethodName                      = "/a2a.v1.A2AService/SendMessage"
	A2AService_SendStreamingMessage_FullMethodName             = "/a2a.v1.A2AService/SendStreamingMessage"
	A2AService_GetTask_FullMethodName                          = "/a2a.v1.A2AService/GetTask"
	A2AService_CancelTask_FullMethodName                       = "/a2a.v1.A2AService/CancelTask"
	A2AService_TaskSubscription_FullMethodName                 = "/a2a.v1.A2AService/TaskSubscription"
	A2AService_CreateTaskPushNotificationConfig_FullMethodName = "/a2a.v1.A2AService/CreateTaskPushNotificationConfig"
	A2AService_GetTaskPushNotificationConfig_FullMethodName    = "/a2a.v1.A2AService/GetTaskPushNotificationConfig"
	A2AService_ListTaskPushNotificationConfig_FullMethodName   = "/a2a.v1.A2AService/ListTaskPushNotificationConfig"
	A2AService_GetAgentCard_FullMethodName                     = "/a2a.v1.A2AService/GetAgentCard"
	A2AService_DeleteTaskPushNotificationConfig_FullMethodName = "/a2a.v1.A2AService/DeleteTaskPushNotificationConfig"
)

// A2AServiceClient is the client API for A2AService 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.
//
// A2AService defines the gRPC version of the A2A protocol. This has a slightly
// different shape than the JSONRPC version to better conform to AIP-127,
// where appropriate. The nouns are AgentCard, Message, Task and
// TaskPushNotificationConfig.
//   - Messages are not a standard resource so there is no get/delete/update/list
//     interface, only a send and stream custom methods.
//   - Tasks have a get interface and custom cancel and subscribe methods.
//   - TaskPushNotificationConfig are a resource whose parent is a task.
//     They have get, list and create methods.
//   - AgentCard is a static resource with only a get method.
//
// fields are not present as they don't comply with AIP rules, and the
// optional history_length on the get task method is not present as it also
// violates AIP-127 and AIP-131.
type A2AServiceClient interface {
	// Send a message to the agent. This is a blocking call that will return the
	// task once it is completed, or a LRO if requested.
	SendMessage(ctx context.Context, in *SendMessageRequest, opts ...grpc.CallOption) (*SendMessageResponse, error)
	// SendStreamingMessage is a streaming call that will return a stream of
	// task update events until the Task is in an interrupted or terminal state.
	SendStreamingMessage(ctx context.Context, in *SendMessageRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[StreamResponse], error)
	// Get the current state of a task from the agent.
	GetTask(ctx context.Context, in *GetTaskRequest, opts ...grpc.CallOption) (*Task, error)
	// Cancel a task from the agent. If supported one should expect no
	// more task updates for the task.
	CancelTask(ctx context.Context, in *CancelTaskRequest, opts ...grpc.CallOption) (*Task, error)
	// TaskSubscription is a streaming call that will return a stream of task
	// update events. This attaches the stream to an existing in process task.
	// If the task is complete the stream will return the completed task (like
	// GetTask) and close the stream.
	TaskSubscription(ctx context.Context, in *TaskSubscriptionRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[StreamResponse], error)
	// Set a push notification config for a task.
	CreateTaskPushNotificationConfig(ctx context.Context, in *CreateTaskPushNotificationConfigRequest, opts ...grpc.CallOption) (*TaskPushNotificationConfig, error)
	// Get a push notification config for a task.
	GetTaskPushNotificationConfig(ctx context.Context, in *GetTaskPushNotificationConfigRequest, opts ...grpc.CallOption) (*TaskPushNotificationConfig, error)
	// Get a list of push notifications configured for a task.
	ListTaskPushNotificationConfig(ctx context.Context, in *ListTaskPushNotificationConfigRequest, opts ...grpc.CallOption) (*ListTaskPushNotificationConfigResponse, error)
	// GetAgentCard returns the agent card for the agent.
	GetAgentCard(ctx context.Context, in *GetAgentCardRequest, opts ...grpc.CallOption) (*AgentCard, error)
	// Delete a push notification config for a task.
	DeleteTaskPushNotificationConfig(ctx context.Context, in *DeleteTaskPushNotificationConfigRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
}

type a2AServiceClient struct {
	cc grpc.ClientConnInterface
}

func NewA2AServiceClient(cc grpc.ClientConnInterface) A2AServiceClient {
	return &a2AServiceClient{cc}
}

func (c *a2AServiceClient) SendMessage(ctx context.Context, in *SendMessageRequest, opts ...grpc.CallOption) (*SendMessageResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(SendMessageResponse)
	err := c.cc.Invoke(ctx, A2AService_SendMessage_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *a2AServiceClient) SendStreamingMessage(ctx context.Context, in *SendMessageRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[StreamResponse], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &A2AService_ServiceDesc.Streams[0], A2AService_SendStreamingMessage_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[SendMessageRequest, StreamResponse]{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 A2AService_SendStreamingMessageClient = grpc.ServerStreamingClient[StreamResponse]

func (c *a2AServiceClient) GetTask(ctx context.Context, in *GetTaskRequest, opts ...grpc.CallOption) (*Task, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Task)
	err := c.cc.Invoke(ctx, A2AService_GetTask_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *a2AServiceClient) CancelTask(ctx context.Context, in *CancelTaskRequest, opts ...grpc.CallOption) (*Task, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(Task)
	err := c.cc.Invoke(ctx, A2AService_CancelTask_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *a2AServiceClient) TaskSubscription(ctx context.Context, in *TaskSubscriptionRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[StreamResponse], error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	stream, err := c.cc.NewStream(ctx, &A2AService_ServiceDesc.Streams[1], A2AService_TaskSubscription_FullMethodName, cOpts...)
	if err != nil {
		return nil, err
	}
	x := &grpc.GenericClientStream[TaskSubscriptionRequest, StreamResponse]{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 A2AService_TaskSubscriptionClient = grpc.ServerStreamingClient[StreamResponse]

func (c *a2AServiceClient) CreateTaskPushNotificationConfig(ctx context.Context, in *CreateTaskPushNotificationConfigRequest, opts ...grpc.CallOption) (*TaskPushNotificationConfig, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(TaskPushNotificationConfig)
	err := c.cc.Invoke(ctx, A2AService_CreateTaskPushNotificationConfig_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *a2AServiceClient) GetTaskPushNotificationConfig(ctx context.Context, in *GetTaskPushNotificationConfigRequest, opts ...grpc.CallOption) (*TaskPushNotificationConfig, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(TaskPushNotificationConfig)
	err := c.cc.Invoke(ctx, A2AService_GetTaskPushNotificationConfig_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *a2AServiceClient) ListTaskPushNotificationConfig(ctx context.Context, in *ListTaskPushNotificationConfigRequest, opts ...grpc.CallOption) (*ListTaskPushNotificationConfigResponse, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(ListTaskPushNotificationConfigResponse)
	err := c.cc.Invoke(ctx, A2AService_ListTaskPushNotificationConfig_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *a2AServiceClient) GetAgentCard(ctx context.Context, in *GetAgentCardRequest, opts ...grpc.CallOption) (*AgentCard, error) {
	cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...)
	out := new(AgentCard)
	err := c.cc.Invoke(ctx, A2AService_GetAgentCard_FullMethodName, in, out, cOpts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

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

// A2AServiceServer is the server API for A2AService service.
// All implementations must embed UnimplementedA2AServiceServer
// for forward compatibility.
//
// A2AService defines the gRPC version of the A2A protocol. This has a slightly
// different shape than the JSONRPC version to better conform to AIP-127,
// where appropriate. The nouns are AgentCard, Message, Task and
// TaskPushNotificationConfig.
//   - Messages are not a standard resource so there is no get/delete/update/list
//     interface, only a send and stream custom methods.
//   - Tasks have a get interface and custom cancel and subscribe methods.
//   - TaskPushNotificationConfig are a resource whose parent is a task.
//     They have get, list and create methods.
//   - AgentCard is a static resource with only a get method.
//
// fields are not present as they don't comply with AIP rules, and the
// optional history_length on the get task method is not present as it also
// violates AIP-127 and AIP-131.
type A2AServiceServer interface {
	// Send a message to the agent. This is a blocking call that will return the
	// task once it is completed, or a LRO if requested.
	SendMessage(context.Context, *SendMessageRequest) (*SendMessageResponse, error)
	// SendStreamingMessage is a streaming call that will return a stream of
	// task update events until the Task is in an interrupted or terminal state.
	SendStreamingMessage(*SendMessageRequest, grpc.ServerStreamingServer[StreamResponse]) error
	// Get the current state of a task from the agent.
	GetTask(context.Context, *GetTaskRequest) (*Task, error)
	// Cancel a task from the agent. If supported one should expect no
	// more task updates for the task.
	CancelTask(context.Context, *CancelTaskRequest) (*Task, error)
	// TaskSubscription is a streaming call that will return a stream of task
	// update events. This attaches the stream to an existing in process task.
	// If the task is complete the stream will return the completed task (like
	// GetTask) and close the stream.
	TaskSubscription(*TaskSubscriptionRequest, grpc.ServerStreamingServer[StreamResponse]) error
	// Set a push notification config for a task.
	CreateTaskPushNotificationConfig(context.Context, *CreateTaskPushNotificationConfigRequest) (*TaskPushNotificationConfig, error)
	// Get a push notification config for a task.
	GetTaskPushNotificationConfig(context.Context, *GetTaskPushNotificationConfigRequest) (*TaskPushNotificationConfig, error)
	// Get a list of push notifications configured for a task.
	ListTaskPushNotificationConfig(context.Context, *ListTaskPushNotificationConfigRequest) (*ListTaskPushNotificationConfigResponse, error)
	// GetAgentCard returns the agent card for the agent.
	GetAgentCard(context.Context, *GetAgentCardRequest) (*AgentCard, error)
	// Delete a push notification config for a task.
	DeleteTaskPushNotificationConfig(context.Context, *DeleteTaskPushNotificationConfigRequest) (*emptypb.Empty, error)
	mustEmbedUnimplementedA2AServiceServer()
}

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

func (UnimplementedA2AServiceServer) SendMessage(context.Context, *SendMessageRequest) (*SendMessageResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method SendMessage not implemented")
}
func (UnimplementedA2AServiceServer) SendStreamingMessage(*SendMessageRequest, grpc.ServerStreamingServer[StreamResponse]) error {
	return status.Errorf(codes.Unimplemented, "method SendStreamingMessage not implemented")
}
func (UnimplementedA2AServiceServer) GetTask(context.Context, *GetTaskRequest) (*Task, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetTask not implemented")
}
func (UnimplementedA2AServiceServer) CancelTask(context.Context, *CancelTaskRequest) (*Task, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CancelTask not implemented")
}
func (UnimplementedA2AServiceServer) TaskSubscription(*TaskSubscriptionRequest, grpc.ServerStreamingServer[StreamResponse]) error {
	return status.Errorf(codes.Unimplemented, "method TaskSubscription not implemented")
}
func (UnimplementedA2AServiceServer) CreateTaskPushNotificationConfig(context.Context, *CreateTaskPushNotificationConfigRequest) (*TaskPushNotificationConfig, error) {
	return nil, status.Errorf(codes.Unimplemented, "method CreateTaskPushNotificationConfig not implemented")
}
func (UnimplementedA2AServiceServer) GetTaskPushNotificationConfig(context.Context, *GetTaskPushNotificationConfigRequest) (*TaskPushNotificationConfig, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetTaskPushNotificationConfig not implemented")
}
func (UnimplementedA2AServiceServer) ListTaskPushNotificationConfig(context.Context, *ListTaskPushNotificationConfigRequest) (*ListTaskPushNotificationConfigResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method ListTaskPushNotificationConfig not implemented")
}
func (UnimplementedA2AServiceServer) GetAgentCard(context.Context, *GetAgentCardRequest) (*AgentCard, error) {
	return nil, status.Errorf(codes.Unimplemented, "method GetAgentCard not implemented")
}
func (UnimplementedA2AServiceServer) DeleteTaskPushNotificationConfig(context.Context, *DeleteTaskPushNotificationConfigRequest) (*emptypb.Empty, error) {
	return nil, status.Errorf(codes.Unimplemented, "method DeleteTaskPushNotificationConfig not implemented")
}
func (UnimplementedA2AServiceServer) mustEmbedUnimplementedA2AServiceServer() {}
func (UnimplementedA2AServiceServer) testEmbeddedByValue()                    {}

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

func RegisterA2AServiceServer(s grpc.ServiceRegistrar, srv A2AServiceServer) {
	// If the following call pancis, it indicates UnimplementedA2AServiceServer 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(&A2AService_ServiceDesc, srv)
}

func _A2AService_SendMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SendMessageRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(A2AServiceServer).SendMessage(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: A2AService_SendMessage_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(A2AServiceServer).SendMessage(ctx, req.(*SendMessageRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _A2AService_SendStreamingMessage_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(SendMessageRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(A2AServiceServer).SendStreamingMessage(m, &grpc.GenericServerStream[SendMessageRequest, StreamResponse]{ServerStream: stream})
}

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

func _A2AService_GetTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetTaskRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(A2AServiceServer).GetTask(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: A2AService_GetTask_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(A2AServiceServer).GetTask(ctx, req.(*GetTaskRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _A2AService_CancelTask_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CancelTaskRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(A2AServiceServer).CancelTask(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: A2AService_CancelTask_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(A2AServiceServer).CancelTask(ctx, req.(*CancelTaskRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _A2AService_TaskSubscription_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(TaskSubscriptionRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(A2AServiceServer).TaskSubscription(m, &grpc.GenericServerStream[TaskSubscriptionRequest, StreamResponse]{ServerStream: stream})
}

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

func _A2AService_CreateTaskPushNotificationConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(CreateTaskPushNotificationConfigRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(A2AServiceServer).CreateTaskPushNotificationConfig(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: A2AService_CreateTaskPushNotificationConfig_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(A2AServiceServer).CreateTaskPushNotificationConfig(ctx, req.(*CreateTaskPushNotificationConfigRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _A2AService_GetTaskPushNotificationConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetTaskPushNotificationConfigRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(A2AServiceServer).GetTaskPushNotificationConfig(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: A2AService_GetTaskPushNotificationConfig_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(A2AServiceServer).GetTaskPushNotificationConfig(ctx, req.(*GetTaskPushNotificationConfigRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _A2AService_ListTaskPushNotificationConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListTaskPushNotificationConfigRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(A2AServiceServer).ListTaskPushNotificationConfig(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: A2AService_ListTaskPushNotificationConfig_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(A2AServiceServer).ListTaskPushNotificationConfig(ctx, req.(*ListTaskPushNotificationConfigRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _A2AService_GetAgentCard_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetAgentCardRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(A2AServiceServer).GetAgentCard(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: A2AService_GetAgentCard_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(A2AServiceServer).GetAgentCard(ctx, req.(*GetAgentCardRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _A2AService_DeleteTaskPushNotificationConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(DeleteTaskPushNotificationConfigRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(A2AServiceServer).DeleteTaskPushNotificationConfig(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: A2AService_DeleteTaskPushNotificationConfig_FullMethodName,
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(A2AServiceServer).DeleteTaskPushNotificationConfig(ctx, req.(*DeleteTaskPushNotificationConfigRequest))
	}
	return interceptor(ctx, in, info, handler)
}

// A2AService_ServiceDesc is the grpc.ServiceDesc for A2AService service.
// It's only intended for direct use with grpc.RegisterService,
// and not to be introspected or modified (even as a copy)
var A2AService_ServiceDesc = grpc.ServiceDesc{
	ServiceName: "a2a.v1.A2AService",
	HandlerType: (*A2AServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "SendMessage",
			Handler:    _A2AService_SendMessage_Handler,
		},
		{
			MethodName: "GetTask",
			Handler:    _A2AService_GetTask_Handler,
		},
		{
			MethodName: "CancelTask",
			Handler:    _A2AService_CancelTask_Handler,
		},
		{
			MethodName: "CreateTaskPushNotificationConfig",
			Handler:    _A2AService_CreateTaskPushNotificationConfig_Handler,
		},
		{
			MethodName: "GetTaskPushNotificationConfig",
			Handler:    _A2AService_GetTaskPushNotificationConfig_Handler,
		},
		{
			MethodName: "ListTaskPushNotificationConfig",
			Handler:    _A2AService_ListTaskPushNotificationConfig_Handler,
		},
		{
			MethodName: "GetAgentCard",
			Handler:    _A2AService_GetAgentCard_Handler,
		},
		{
			MethodName: "DeleteTaskPushNotificationConfig",
			Handler:    _A2AService_DeleteTaskPushNotificationConfig_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "SendStreamingMessage",
			Handler:       _A2AService_SendStreamingMessage_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "TaskSubscription",
			Handler:       _A2AService_TaskSubscription_Handler,
			ServerStreams: true,
		},
	},
	Metadata: "a2a.proto",
}
