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

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

package a2apb

import (
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	emptypb "google.golang.org/protobuf/types/known/emptypb"
	structpb "google.golang.org/protobuf/types/known/structpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// The set of states a Task can be in.
type TaskState int32

const (
	TaskState_TASK_STATE_UNSPECIFIED TaskState = 0
	// Represents the status that acknowledges a task is created
	TaskState_TASK_STATE_SUBMITTED TaskState = 1
	// Represents the status that a task is actively being processed
	TaskState_TASK_STATE_WORKING TaskState = 2
	// Represents the status a task is finished. This is a terminal state
	TaskState_TASK_STATE_COMPLETED TaskState = 3
	// Represents the status a task is done but failed. This is a terminal state
	TaskState_TASK_STATE_FAILED TaskState = 4
	// Represents the status a task was cancelled before it finished.
	// This is a terminal state.
	TaskState_TASK_STATE_CANCELLED TaskState = 5
	// Represents the status that the task requires information to complete.
	// This is an interrupted state.
	TaskState_TASK_STATE_INPUT_REQUIRED TaskState = 6
	// Represents the status that the agent has decided to not perform the task.
	// This may be done during initial task creation or later once an agent
	// has determined it can't or won't proceed. This is a terminal state.
	TaskState_TASK_STATE_REJECTED TaskState = 7
	// Represents the state that some authentication is needed from the upstream
	// client. Authentication is expected to come out-of-band thus this is not
	// an interrupted or terminal state.
	TaskState_TASK_STATE_AUTH_REQUIRED TaskState = 8
)

// Enum value maps for TaskState.
var (
	TaskState_name = map[int32]string{
		0: "TASK_STATE_UNSPECIFIED",
		1: "TASK_STATE_SUBMITTED",
		2: "TASK_STATE_WORKING",
		3: "TASK_STATE_COMPLETED",
		4: "TASK_STATE_FAILED",
		5: "TASK_STATE_CANCELLED",
		6: "TASK_STATE_INPUT_REQUIRED",
		7: "TASK_STATE_REJECTED",
		8: "TASK_STATE_AUTH_REQUIRED",
	}
	TaskState_value = map[string]int32{
		"TASK_STATE_UNSPECIFIED":    0,
		"TASK_STATE_SUBMITTED":      1,
		"TASK_STATE_WORKING":        2,
		"TASK_STATE_COMPLETED":      3,
		"TASK_STATE_FAILED":         4,
		"TASK_STATE_CANCELLED":      5,
		"TASK_STATE_INPUT_REQUIRED": 6,
		"TASK_STATE_REJECTED":       7,
		"TASK_STATE_AUTH_REQUIRED":  8,
	}
)

func (x TaskState) Enum() *TaskState {
	p := new(TaskState)
	*p = x
	return p
}

func (x TaskState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (TaskState) Descriptor() protoreflect.EnumDescriptor {
	return file_a2a_proto_enumTypes[0].Descriptor()
}

func (TaskState) Type() protoreflect.EnumType {
	return &file_a2a_proto_enumTypes[0]
}

func (x TaskState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use TaskState.Descriptor instead.
func (TaskState) EnumDescriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{0}
}

type Role int32

const (
	Role_ROLE_UNSPECIFIED Role = 0
	// USER role refers to communication from the client to the server.
	Role_ROLE_USER Role = 1
	// AGENT role refers to communication from the server to the client.
	Role_ROLE_AGENT Role = 2
)

// Enum value maps for Role.
var (
	Role_name = map[int32]string{
		0: "ROLE_UNSPECIFIED",
		1: "ROLE_USER",
		2: "ROLE_AGENT",
	}
	Role_value = map[string]int32{
		"ROLE_UNSPECIFIED": 0,
		"ROLE_USER":        1,
		"ROLE_AGENT":       2,
	}
)

func (x Role) Enum() *Role {
	p := new(Role)
	*p = x
	return p
}

func (x Role) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Role) Descriptor() protoreflect.EnumDescriptor {
	return file_a2a_proto_enumTypes[1].Descriptor()
}

func (Role) Type() protoreflect.EnumType {
	return &file_a2a_proto_enumTypes[1]
}

func (x Role) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Role.Descriptor instead.
func (Role) EnumDescriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{1}
}

// Configuration of a send message request.
type SendMessageConfiguration struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The output modes that the agent is expected to respond with.
	AcceptedOutputModes []string `protobuf:"bytes,1,rep,name=accepted_output_modes,json=acceptedOutputModes,proto3" json:"accepted_output_modes,omitempty"`
	// A configuration of a webhook that can be used to receive updates
	PushNotification *PushNotificationConfig `protobuf:"bytes,2,opt,name=push_notification,json=pushNotification,proto3" json:"push_notification,omitempty"`
	// The maximum number of messages to include in the history. if 0, the
	// history will be unlimited.
	HistoryLength int32 `protobuf:"varint,3,opt,name=history_length,json=historyLength,proto3" json:"history_length,omitempty"`
	// If true, the message will be blocking until the task is completed. If
	// false, the message will be non-blocking and the task will be returned
	// immediately. It is the caller's responsibility to check for any task
	// updates.
	Blocking      bool `protobuf:"varint,4,opt,name=blocking,proto3" json:"blocking,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SendMessageConfiguration) Reset() {
	*x = SendMessageConfiguration{}
	mi := &file_a2a_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SendMessageConfiguration) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SendMessageConfiguration) ProtoMessage() {}

func (x *SendMessageConfiguration) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SendMessageConfiguration.ProtoReflect.Descriptor instead.
func (*SendMessageConfiguration) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{0}
}

func (x *SendMessageConfiguration) GetAcceptedOutputModes() []string {
	if x != nil {
		return x.AcceptedOutputModes
	}
	return nil
}

func (x *SendMessageConfiguration) GetPushNotification() *PushNotificationConfig {
	if x != nil {
		return x.PushNotification
	}
	return nil
}

func (x *SendMessageConfiguration) GetHistoryLength() int32 {
	if x != nil {
		return x.HistoryLength
	}
	return 0
}

func (x *SendMessageConfiguration) GetBlocking() bool {
	if x != nil {
		return x.Blocking
	}
	return false
}

// Task is the core unit of action for A2A. It has a current status
// and when results are created for the task they are stored in the
// artifact. If there are multiple turns for a task, these are stored in
// history.
type Task struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Unique identifier for a task, created by the A2A server.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Unique identifier for the contextual collection of interactions (tasks
	// and messages). Created by the A2A server.
	ContextId string `protobuf:"bytes,2,opt,name=context_id,json=contextId,proto3" json:"context_id,omitempty"`
	// The current status of a Task, including state and a message.
	Status *TaskStatus `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
	// A set of output artifacts for a Task.
	Artifacts []*Artifact `protobuf:"bytes,4,rep,name=artifacts,proto3" json:"artifacts,omitempty"`
	// protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
	// The history of interactions from a task.
	History []*Message `protobuf:"bytes,5,rep,name=history,proto3" json:"history,omitempty"`
	// protolint:enable REPEATED_FIELD_NAMES_PLURALIZED
	// A key/value object to store custom metadata about a task.
	Metadata      *structpb.Struct `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Task) Reset() {
	*x = Task{}
	mi := &file_a2a_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Task) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Task) ProtoMessage() {}

func (x *Task) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Task.ProtoReflect.Descriptor instead.
func (*Task) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{1}
}

func (x *Task) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *Task) GetContextId() string {
	if x != nil {
		return x.ContextId
	}
	return ""
}

func (x *Task) GetStatus() *TaskStatus {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *Task) GetArtifacts() []*Artifact {
	if x != nil {
		return x.Artifacts
	}
	return nil
}

func (x *Task) GetHistory() []*Message {
	if x != nil {
		return x.History
	}
	return nil
}

func (x *Task) GetMetadata() *structpb.Struct {
	if x != nil {
		return x.Metadata
	}
	return nil
}

// A container for the status of a task
type TaskStatus struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The current state of this task
	State TaskState `protobuf:"varint,1,opt,name=state,proto3,enum=a2a.v1.TaskState" json:"state,omitempty"`
	// A message associated with the status.
	Update *Message `protobuf:"bytes,2,opt,name=update,json=message,proto3" json:"update,omitempty"`
	// Timestamp when the status was recorded.
	// Example: "2023-10-27T10:00:00Z"
	Timestamp     *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TaskStatus) Reset() {
	*x = TaskStatus{}
	mi := &file_a2a_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TaskStatus) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TaskStatus) ProtoMessage() {}

func (x *TaskStatus) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TaskStatus.ProtoReflect.Descriptor instead.
func (*TaskStatus) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{2}
}

func (x *TaskStatus) GetState() TaskState {
	if x != nil {
		return x.State
	}
	return TaskState_TASK_STATE_UNSPECIFIED
}

func (x *TaskStatus) GetUpdate() *Message {
	if x != nil {
		return x.Update
	}
	return nil
}

func (x *TaskStatus) GetTimestamp() *timestamppb.Timestamp {
	if x != nil {
		return x.Timestamp
	}
	return nil
}

// Part represents a container for a section of communication content.
// Parts can be purely textual, some sort of file (image, video, etc) or
// a structured data blob (i.e. JSON).
type Part struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Part:
	//
	//	*Part_Text
	//	*Part_File
	//	*Part_Data
	Part          isPart_Part `protobuf_oneof:"part"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Part) Reset() {
	*x = Part{}
	mi := &file_a2a_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Part) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Part) ProtoMessage() {}

func (x *Part) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Part.ProtoReflect.Descriptor instead.
func (*Part) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{3}
}

func (x *Part) GetPart() isPart_Part {
	if x != nil {
		return x.Part
	}
	return nil
}

func (x *Part) GetText() string {
	if x != nil {
		if x, ok := x.Part.(*Part_Text); ok {
			return x.Text
		}
	}
	return ""
}

func (x *Part) GetFile() *FilePart {
	if x != nil {
		if x, ok := x.Part.(*Part_File); ok {
			return x.File
		}
	}
	return nil
}

func (x *Part) GetData() *DataPart {
	if x != nil {
		if x, ok := x.Part.(*Part_Data); ok {
			return x.Data
		}
	}
	return nil
}

type isPart_Part interface {
	isPart_Part()
}

type Part_Text struct {
	Text string `protobuf:"bytes,1,opt,name=text,proto3,oneof"`
}

type Part_File struct {
	File *FilePart `protobuf:"bytes,2,opt,name=file,proto3,oneof"`
}

type Part_Data struct {
	Data *DataPart `protobuf:"bytes,3,opt,name=data,proto3,oneof"`
}

func (*Part_Text) isPart_Part() {}

func (*Part_File) isPart_Part() {}

func (*Part_Data) isPart_Part() {}

// FilePart represents the different ways files can be provided. If files are
// small, directly feeding the bytes is supported via file_with_bytes. If the
// file is large, the agent should read the content as appropriate directly
// from the file_with_uri source.
type FilePart struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to File:
	//
	//	*FilePart_FileWithUri
	//	*FilePart_FileWithBytes
	File          isFilePart_File `protobuf_oneof:"file"`
	MimeType      string          `protobuf:"bytes,3,opt,name=mime_type,json=mimeType,proto3" json:"mime_type,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FilePart) Reset() {
	*x = FilePart{}
	mi := &file_a2a_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FilePart) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FilePart) ProtoMessage() {}

func (x *FilePart) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FilePart.ProtoReflect.Descriptor instead.
func (*FilePart) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{4}
}

func (x *FilePart) GetFile() isFilePart_File {
	if x != nil {
		return x.File
	}
	return nil
}

func (x *FilePart) GetFileWithUri() string {
	if x != nil {
		if x, ok := x.File.(*FilePart_FileWithUri); ok {
			return x.FileWithUri
		}
	}
	return ""
}

func (x *FilePart) GetFileWithBytes() []byte {
	if x != nil {
		if x, ok := x.File.(*FilePart_FileWithBytes); ok {
			return x.FileWithBytes
		}
	}
	return nil
}

func (x *FilePart) GetMimeType() string {
	if x != nil {
		return x.MimeType
	}
	return ""
}

type isFilePart_File interface {
	isFilePart_File()
}

type FilePart_FileWithUri struct {
	FileWithUri string `protobuf:"bytes,1,opt,name=file_with_uri,json=fileWithUri,proto3,oneof"`
}

type FilePart_FileWithBytes struct {
	FileWithBytes []byte `protobuf:"bytes,2,opt,name=file_with_bytes,json=fileWithBytes,proto3,oneof"`
}

func (*FilePart_FileWithUri) isFilePart_File() {}

func (*FilePart_FileWithBytes) isFilePart_File() {}

// DataPart represents a structured blob. This is most commonly a JSON payload.
type DataPart struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Data          *structpb.Struct       `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DataPart) Reset() {
	*x = DataPart{}
	mi := &file_a2a_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DataPart) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DataPart) ProtoMessage() {}

func (x *DataPart) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DataPart.ProtoReflect.Descriptor instead.
func (*DataPart) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{5}
}

func (x *DataPart) GetData() *structpb.Struct {
	if x != nil {
		return x.Data
	}
	return nil
}

// Message is one unit of communication between client and server. It is
// associated with a context and optionally a task. Since the server is
// responsible for the context definition, it must always provide a context_id
// in its messages. The client can optionally provide the context_id if it
// knows the context to associate the message to. Similarly for task_id,
// except the server decides if a task is created and whether to include the
// task_id.
type Message struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The message id of the message. This is required and created by the
	// message creator.
	MessageId string `protobuf:"bytes,1,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
	// The context id of the message. This is optional and if set, the message
	// will be associated with the given context.
	ContextId string `protobuf:"bytes,2,opt,name=context_id,json=contextId,proto3" json:"context_id,omitempty"`
	// The task id of the message. This is optional and if set, the message
	// will be associated with the given task.
	TaskId string `protobuf:"bytes,3,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// A role for the message.
	Role Role `protobuf:"varint,4,opt,name=role,proto3,enum=a2a.v1.Role" json:"role,omitempty"`
	// protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
	// Content is the container of the message content.
	Content []*Part `protobuf:"bytes,5,rep,name=content,proto3" json:"content,omitempty"`
	// protolint:enable REPEATED_FIELD_NAMES_PLURALIZED
	// Any optional metadata to provide along with the message.
	Metadata *structpb.Struct `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// The URIs of extensions that are present or contributed to this Message.
	Extensions    []string `protobuf:"bytes,7,rep,name=extensions,proto3" json:"extensions,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Message) Reset() {
	*x = Message{}
	mi := &file_a2a_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Message) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Message) ProtoMessage() {}

func (x *Message) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Message.ProtoReflect.Descriptor instead.
func (*Message) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{6}
}

func (x *Message) GetMessageId() string {
	if x != nil {
		return x.MessageId
	}
	return ""
}

func (x *Message) GetContextId() string {
	if x != nil {
		return x.ContextId
	}
	return ""
}

func (x *Message) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

func (x *Message) GetRole() Role {
	if x != nil {
		return x.Role
	}
	return Role_ROLE_UNSPECIFIED
}

func (x *Message) GetContent() []*Part {
	if x != nil {
		return x.Content
	}
	return nil
}

func (x *Message) GetMetadata() *structpb.Struct {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *Message) GetExtensions() []string {
	if x != nil {
		return x.Extensions
	}
	return nil
}

// Artifacts are the container for task completed results. These are similar
// to Messages but are intended to be the product of a task, as opposed to
// point-to-point communication.
type Artifact struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Unique id for the artifact. It must be at least unique within a task.
	ArtifactId string `protobuf:"bytes,1,opt,name=artifact_id,json=artifactId,proto3" json:"artifact_id,omitempty"`
	// A human readable name for the artifact.
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// A human readable description of the artifact, optional.
	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
	// The content of the artifact.
	Parts []*Part `protobuf:"bytes,5,rep,name=parts,proto3" json:"parts,omitempty"`
	// Optional metadata included with the artifact.
	Metadata *structpb.Struct `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// The URIs of extensions that are present or contributed to this Artifact.
	Extensions    []string `protobuf:"bytes,7,rep,name=extensions,proto3" json:"extensions,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Artifact) Reset() {
	*x = Artifact{}
	mi := &file_a2a_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Artifact) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Artifact) ProtoMessage() {}

func (x *Artifact) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Artifact.ProtoReflect.Descriptor instead.
func (*Artifact) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{7}
}

func (x *Artifact) GetArtifactId() string {
	if x != nil {
		return x.ArtifactId
	}
	return ""
}

func (x *Artifact) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Artifact) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *Artifact) GetParts() []*Part {
	if x != nil {
		return x.Parts
	}
	return nil
}

func (x *Artifact) GetMetadata() *structpb.Struct {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *Artifact) GetExtensions() []string {
	if x != nil {
		return x.Extensions
	}
	return nil
}

// TaskStatusUpdateEvent is a delta even on a task indicating that a task
// has changed.
type TaskStatusUpdateEvent struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The id of the task that is changed
	TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// The id of the context that the task belongs to
	ContextId string `protobuf:"bytes,2,opt,name=context_id,json=contextId,proto3" json:"context_id,omitempty"`
	// The new status of the task.
	Status *TaskStatus `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
	// Whether this is the last status update expected for this task.
	Final bool `protobuf:"varint,4,opt,name=final,proto3" json:"final,omitempty"`
	// Optional metadata to associate with the task update.
	Metadata      *structpb.Struct `protobuf:"bytes,5,opt,name=metadata,proto3" json:"metadata,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TaskStatusUpdateEvent) Reset() {
	*x = TaskStatusUpdateEvent{}
	mi := &file_a2a_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TaskStatusUpdateEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TaskStatusUpdateEvent) ProtoMessage() {}

func (x *TaskStatusUpdateEvent) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TaskStatusUpdateEvent.ProtoReflect.Descriptor instead.
func (*TaskStatusUpdateEvent) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{8}
}

func (x *TaskStatusUpdateEvent) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

func (x *TaskStatusUpdateEvent) GetContextId() string {
	if x != nil {
		return x.ContextId
	}
	return ""
}

func (x *TaskStatusUpdateEvent) GetStatus() *TaskStatus {
	if x != nil {
		return x.Status
	}
	return nil
}

func (x *TaskStatusUpdateEvent) GetFinal() bool {
	if x != nil {
		return x.Final
	}
	return false
}

func (x *TaskStatusUpdateEvent) GetMetadata() *structpb.Struct {
	if x != nil {
		return x.Metadata
	}
	return nil
}

// TaskArtifactUpdateEvent represents a task delta where an artifact has
// been generated.
type TaskArtifactUpdateEvent struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The id of the task for this artifact
	TaskId string `protobuf:"bytes,1,opt,name=task_id,json=taskId,proto3" json:"task_id,omitempty"`
	// The id of the context that this task belongs too
	ContextId string `protobuf:"bytes,2,opt,name=context_id,json=contextId,proto3" json:"context_id,omitempty"`
	// The artifact itself
	Artifact *Artifact `protobuf:"bytes,3,opt,name=artifact,proto3" json:"artifact,omitempty"`
	// Whether this should be appended to a prior one produced
	Append bool `protobuf:"varint,4,opt,name=append,proto3" json:"append,omitempty"`
	// Whether this represents the last part of an artifact
	LastChunk bool `protobuf:"varint,5,opt,name=last_chunk,json=lastChunk,proto3" json:"last_chunk,omitempty"`
	// Optional metadata associated with the artifact update.
	Metadata      *structpb.Struct `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TaskArtifactUpdateEvent) Reset() {
	*x = TaskArtifactUpdateEvent{}
	mi := &file_a2a_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TaskArtifactUpdateEvent) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TaskArtifactUpdateEvent) ProtoMessage() {}

func (x *TaskArtifactUpdateEvent) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TaskArtifactUpdateEvent.ProtoReflect.Descriptor instead.
func (*TaskArtifactUpdateEvent) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{9}
}

func (x *TaskArtifactUpdateEvent) GetTaskId() string {
	if x != nil {
		return x.TaskId
	}
	return ""
}

func (x *TaskArtifactUpdateEvent) GetContextId() string {
	if x != nil {
		return x.ContextId
	}
	return ""
}

func (x *TaskArtifactUpdateEvent) GetArtifact() *Artifact {
	if x != nil {
		return x.Artifact
	}
	return nil
}

func (x *TaskArtifactUpdateEvent) GetAppend() bool {
	if x != nil {
		return x.Append
	}
	return false
}

func (x *TaskArtifactUpdateEvent) GetLastChunk() bool {
	if x != nil {
		return x.LastChunk
	}
	return false
}

func (x *TaskArtifactUpdateEvent) GetMetadata() *structpb.Struct {
	if x != nil {
		return x.Metadata
	}
	return nil
}

// Configuration for setting up push notifications for task updates.
type PushNotificationConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// A unique id for this push notification.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Url to send the notification too
	Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
	// Token unique for this task/session
	Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"`
	// Information about the authentication to sent with the notification
	Authentication *AuthenticationInfo `protobuf:"bytes,4,opt,name=authentication,proto3" json:"authentication,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *PushNotificationConfig) Reset() {
	*x = PushNotificationConfig{}
	mi := &file_a2a_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PushNotificationConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PushNotificationConfig) ProtoMessage() {}

func (x *PushNotificationConfig) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PushNotificationConfig.ProtoReflect.Descriptor instead.
func (*PushNotificationConfig) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{10}
}

func (x *PushNotificationConfig) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *PushNotificationConfig) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *PushNotificationConfig) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *PushNotificationConfig) GetAuthentication() *AuthenticationInfo {
	if x != nil {
		return x.Authentication
	}
	return nil
}

// Defines authentication details, used for push notifications.
type AuthenticationInfo struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Supported authentication schemes - e.g. Basic, Bearer, etc
	Schemes []string `protobuf:"bytes,1,rep,name=schemes,proto3" json:"schemes,omitempty"`
	// Optional credentials
	Credentials   string `protobuf:"bytes,2,opt,name=credentials,proto3" json:"credentials,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AuthenticationInfo) Reset() {
	*x = AuthenticationInfo{}
	mi := &file_a2a_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AuthenticationInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AuthenticationInfo) ProtoMessage() {}

func (x *AuthenticationInfo) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AuthenticationInfo.ProtoReflect.Descriptor instead.
func (*AuthenticationInfo) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{11}
}

func (x *AuthenticationInfo) GetSchemes() []string {
	if x != nil {
		return x.Schemes
	}
	return nil
}

func (x *AuthenticationInfo) GetCredentials() string {
	if x != nil {
		return x.Credentials
	}
	return ""
}

// Defines additional transport information for the agent.
type AgentInterface struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The url this interface is found at.
	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	// The transport supported this url. This is an open form string, to be
	// easily extended for many transport protocols. The core ones officially
	// supported are JSONRPC, GRPC and HTTP+JSON.
	Transport     string `protobuf:"bytes,2,opt,name=transport,proto3" json:"transport,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AgentInterface) Reset() {
	*x = AgentInterface{}
	mi := &file_a2a_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AgentInterface) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AgentInterface) ProtoMessage() {}

func (x *AgentInterface) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AgentInterface.ProtoReflect.Descriptor instead.
func (*AgentInterface) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{12}
}

func (x *AgentInterface) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *AgentInterface) GetTransport() string {
	if x != nil {
		return x.Transport
	}
	return ""
}

// AgentCard conveys key information:
// - Overall details (version, name, description, uses)
// - Skills; a set of actions/solutions the agent can perform
// - Default modalities/content types supported by the agent.
// - Authentication requirements
type AgentCard struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The version of the A2A protocol this agent supports.
	ProtocolVersion string `protobuf:"bytes,16,opt,name=protocol_version,json=protocolVersion,proto3" json:"protocol_version,omitempty"`
	// A human readable name for the agent.
	// Example: "Recipe Agent"
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// A description of the agent's domain of action/solution space.
	// Example: "Agent that helps users with recipes and cooking."
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// A URL to the address the agent is hosted at. This represents the
	// preferred endpoint as declared by the agent.
	Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"`
	// The transport of the preferred endpoint. If empty, defaults to JSONRPC.
	PreferredTransport string `protobuf:"bytes,14,opt,name=preferred_transport,json=preferredTransport,proto3" json:"preferred_transport,omitempty"`
	// Announcement of additional supported transports. Client can use any of
	// the supported transports.
	AdditionalInterfaces []*AgentInterface `protobuf:"bytes,15,rep,name=additional_interfaces,json=additionalInterfaces,proto3" json:"additional_interfaces,omitempty"`
	// The service provider of the agent.
	Provider *AgentProvider `protobuf:"bytes,4,opt,name=provider,proto3" json:"provider,omitempty"`
	// The version of the agent.
	// Example: "1.0.0"
	Version string `protobuf:"bytes,5,opt,name=version,proto3" json:"version,omitempty"`
	// A url to provide additional documentation about the agent.
	DocumentationUrl string `protobuf:"bytes,6,opt,name=documentation_url,json=documentationUrl,proto3" json:"documentation_url,omitempty"`
	// A2A Capability set supported by the agent.
	Capabilities *AgentCapabilities `protobuf:"bytes,7,opt,name=capabilities,proto3" json:"capabilities,omitempty"`
	// The security scheme details used for authenticating with this agent.
	SecuritySchemes map[string]*SecurityScheme `protobuf:"bytes,8,rep,name=security_schemes,json=securitySchemes,proto3" json:"security_schemes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
	// Security requirements for contacting the agent.
	Security []*Security `protobuf:"bytes,9,rep,name=security,proto3" json:"security,omitempty"`
	// protolint:enable REPEATED_FIELD_NAMES_PLURALIZED
	// The set of interaction modes that the agent supports across all skills.
	// This can be overridden per skill. Defined as mime types.
	DefaultInputModes []string `protobuf:"bytes,10,rep,name=default_input_modes,json=defaultInputModes,proto3" json:"default_input_modes,omitempty"`
	// The mime types supported as outputs from this agent.
	DefaultOutputModes []string `protobuf:"bytes,11,rep,name=default_output_modes,json=defaultOutputModes,proto3" json:"default_output_modes,omitempty"`
	// Skills represent a unit of ability an agent can perform. This may
	// somewhat abstract but represents a more focused set of actions that the
	// agent is highly likely to succeed at.
	Skills []*AgentSkill `protobuf:"bytes,12,rep,name=skills,proto3" json:"skills,omitempty"`
	// Whether the agent supports providing an extended agent card when
	// the user is authenticated, i.e. is the card from .well-known
	// different than the card from GetAgentCard.
	SupportsAuthenticatedExtendedCard bool `protobuf:"varint,13,opt,name=supports_authenticated_extended_card,json=supportsAuthenticatedExtendedCard,proto3" json:"supports_authenticated_extended_card,omitempty"`
	unknownFields                     protoimpl.UnknownFields
	sizeCache                         protoimpl.SizeCache
}

func (x *AgentCard) Reset() {
	*x = AgentCard{}
	mi := &file_a2a_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AgentCard) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AgentCard) ProtoMessage() {}

func (x *AgentCard) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AgentCard.ProtoReflect.Descriptor instead.
func (*AgentCard) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{13}
}

func (x *AgentCard) GetProtocolVersion() string {
	if x != nil {
		return x.ProtocolVersion
	}
	return ""
}

func (x *AgentCard) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *AgentCard) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *AgentCard) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *AgentCard) GetPreferredTransport() string {
	if x != nil {
		return x.PreferredTransport
	}
	return ""
}

func (x *AgentCard) GetAdditionalInterfaces() []*AgentInterface {
	if x != nil {
		return x.AdditionalInterfaces
	}
	return nil
}

func (x *AgentCard) GetProvider() *AgentProvider {
	if x != nil {
		return x.Provider
	}
	return nil
}

func (x *AgentCard) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

func (x *AgentCard) GetDocumentationUrl() string {
	if x != nil {
		return x.DocumentationUrl
	}
	return ""
}

func (x *AgentCard) GetCapabilities() *AgentCapabilities {
	if x != nil {
		return x.Capabilities
	}
	return nil
}

func (x *AgentCard) GetSecuritySchemes() map[string]*SecurityScheme {
	if x != nil {
		return x.SecuritySchemes
	}
	return nil
}

func (x *AgentCard) GetSecurity() []*Security {
	if x != nil {
		return x.Security
	}
	return nil
}

func (x *AgentCard) GetDefaultInputModes() []string {
	if x != nil {
		return x.DefaultInputModes
	}
	return nil
}

func (x *AgentCard) GetDefaultOutputModes() []string {
	if x != nil {
		return x.DefaultOutputModes
	}
	return nil
}

func (x *AgentCard) GetSkills() []*AgentSkill {
	if x != nil {
		return x.Skills
	}
	return nil
}

func (x *AgentCard) GetSupportsAuthenticatedExtendedCard() bool {
	if x != nil {
		return x.SupportsAuthenticatedExtendedCard
	}
	return false
}

// Represents information about the service provider of an agent.
type AgentProvider struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The providers reference url
	// Example: "https://ai.google.dev"
	Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"`
	// The providers organization name
	// Example: "Google"
	Organization  string `protobuf:"bytes,2,opt,name=organization,proto3" json:"organization,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AgentProvider) Reset() {
	*x = AgentProvider{}
	mi := &file_a2a_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AgentProvider) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AgentProvider) ProtoMessage() {}

func (x *AgentProvider) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AgentProvider.ProtoReflect.Descriptor instead.
func (*AgentProvider) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{14}
}

func (x *AgentProvider) GetUrl() string {
	if x != nil {
		return x.Url
	}
	return ""
}

func (x *AgentProvider) GetOrganization() string {
	if x != nil {
		return x.Organization
	}
	return ""
}

// Defines the A2A feature set supported by the agent
type AgentCapabilities struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// If the agent will support streaming responses
	Streaming bool `protobuf:"varint,1,opt,name=streaming,proto3" json:"streaming,omitempty"`
	// If the agent can send push notifications to the clients webhook
	PushNotifications bool `protobuf:"varint,2,opt,name=push_notifications,json=pushNotifications,proto3" json:"push_notifications,omitempty"`
	// Extensions supported by this agent.
	Extensions    []*AgentExtension `protobuf:"bytes,3,rep,name=extensions,proto3" json:"extensions,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AgentCapabilities) Reset() {
	*x = AgentCapabilities{}
	mi := &file_a2a_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AgentCapabilities) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AgentCapabilities) ProtoMessage() {}

func (x *AgentCapabilities) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AgentCapabilities.ProtoReflect.Descriptor instead.
func (*AgentCapabilities) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{15}
}

func (x *AgentCapabilities) GetStreaming() bool {
	if x != nil {
		return x.Streaming
	}
	return false
}

func (x *AgentCapabilities) GetPushNotifications() bool {
	if x != nil {
		return x.PushNotifications
	}
	return false
}

func (x *AgentCapabilities) GetExtensions() []*AgentExtension {
	if x != nil {
		return x.Extensions
	}
	return nil
}

// A declaration of an extension supported by an Agent.
type AgentExtension struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The URI of the extension.
	// Example: "https://developers.google.com/identity/protocols/oauth2"
	Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"`
	// A description of how this agent uses this extension.
	// Example: "Google OAuth 2.0 authentication"
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// Whether the client must follow specific requirements of the extension.
	// Example: false
	Required bool `protobuf:"varint,3,opt,name=required,proto3" json:"required,omitempty"`
	// Optional configuration for the extension.
	Params        *structpb.Struct `protobuf:"bytes,4,opt,name=params,proto3" json:"params,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AgentExtension) Reset() {
	*x = AgentExtension{}
	mi := &file_a2a_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AgentExtension) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AgentExtension) ProtoMessage() {}

func (x *AgentExtension) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AgentExtension.ProtoReflect.Descriptor instead.
func (*AgentExtension) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{16}
}

func (x *AgentExtension) GetUri() string {
	if x != nil {
		return x.Uri
	}
	return ""
}

func (x *AgentExtension) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *AgentExtension) GetRequired() bool {
	if x != nil {
		return x.Required
	}
	return false
}

func (x *AgentExtension) GetParams() *structpb.Struct {
	if x != nil {
		return x.Params
	}
	return nil
}

// AgentSkill represents a unit of action/solution that the agent can perform.
// One can think of this as a type of highly reliable solution that an agent
// can be tasked to provide. Agents have the autonomy to choose how and when
// to use specific skills, but clients should have confidence that if the
// skill is defined that unit of action can be reliably performed.
type AgentSkill struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Unique id of the skill within this agent.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// A human readable name for the skill.
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// A human (or llm) readable description of the skill
	// details and behaviors.
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// A set of tags for the skill to enhance categorization/utilization.
	// Example: ["cooking", "customer support", "billing"]
	Tags []string `protobuf:"bytes,4,rep,name=tags,proto3" json:"tags,omitempty"`
	// A set of example queries that this skill is designed to address.
	// These examples should help the caller to understand how to craft requests
	// to the agent to achieve specific goals.
	// Example: ["I need a recipe for bread"]
	Examples []string `protobuf:"bytes,5,rep,name=examples,proto3" json:"examples,omitempty"`
	// Possible input modalities supported.
	InputModes []string `protobuf:"bytes,6,rep,name=input_modes,json=inputModes,proto3" json:"input_modes,omitempty"`
	// Possible output modalities produced
	OutputModes   []string `protobuf:"bytes,7,rep,name=output_modes,json=outputModes,proto3" json:"output_modes,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AgentSkill) Reset() {
	*x = AgentSkill{}
	mi := &file_a2a_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AgentSkill) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AgentSkill) ProtoMessage() {}

func (x *AgentSkill) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[17]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AgentSkill.ProtoReflect.Descriptor instead.
func (*AgentSkill) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{17}
}

func (x *AgentSkill) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *AgentSkill) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *AgentSkill) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *AgentSkill) GetTags() []string {
	if x != nil {
		return x.Tags
	}
	return nil
}

func (x *AgentSkill) GetExamples() []string {
	if x != nil {
		return x.Examples
	}
	return nil
}

func (x *AgentSkill) GetInputModes() []string {
	if x != nil {
		return x.InputModes
	}
	return nil
}

func (x *AgentSkill) GetOutputModes() []string {
	if x != nil {
		return x.OutputModes
	}
	return nil
}

type TaskPushNotificationConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// name=tasks/{id}/pushNotificationConfigs/{id}
	Name                   string                  `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	PushNotificationConfig *PushNotificationConfig `protobuf:"bytes,2,opt,name=push_notification_config,json=pushNotificationConfig,proto3" json:"push_notification_config,omitempty"`
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

func (x *TaskPushNotificationConfig) Reset() {
	*x = TaskPushNotificationConfig{}
	mi := &file_a2a_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TaskPushNotificationConfig) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TaskPushNotificationConfig) ProtoMessage() {}

func (x *TaskPushNotificationConfig) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[18]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TaskPushNotificationConfig.ProtoReflect.Descriptor instead.
func (*TaskPushNotificationConfig) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{18}
}

func (x *TaskPushNotificationConfig) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *TaskPushNotificationConfig) GetPushNotificationConfig() *PushNotificationConfig {
	if x != nil {
		return x.PushNotificationConfig
	}
	return nil
}

// protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
type StringList struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	List          []string               `protobuf:"bytes,1,rep,name=list,proto3" json:"list,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StringList) Reset() {
	*x = StringList{}
	mi := &file_a2a_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *StringList) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StringList) ProtoMessage() {}

func (x *StringList) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[19]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StringList.ProtoReflect.Descriptor instead.
func (*StringList) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{19}
}

func (x *StringList) GetList() []string {
	if x != nil {
		return x.List
	}
	return nil
}

type Security struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Schemes       map[string]*StringList `protobuf:"bytes,1,rep,name=schemes,proto3" json:"schemes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Security) Reset() {
	*x = Security{}
	mi := &file_a2a_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Security) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Security) ProtoMessage() {}

func (x *Security) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[20]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Security.ProtoReflect.Descriptor instead.
func (*Security) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{20}
}

func (x *Security) GetSchemes() map[string]*StringList {
	if x != nil {
		return x.Schemes
	}
	return nil
}

type SecurityScheme struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Scheme:
	//
	//	*SecurityScheme_ApiKeySecurityScheme
	//	*SecurityScheme_HttpAuthSecurityScheme
	//	*SecurityScheme_Oauth2SecurityScheme
	//	*SecurityScheme_OpenIdConnectSecurityScheme
	Scheme        isSecurityScheme_Scheme `protobuf_oneof:"scheme"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SecurityScheme) Reset() {
	*x = SecurityScheme{}
	mi := &file_a2a_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SecurityScheme) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SecurityScheme) ProtoMessage() {}

func (x *SecurityScheme) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[21]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SecurityScheme.ProtoReflect.Descriptor instead.
func (*SecurityScheme) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{21}
}

func (x *SecurityScheme) GetScheme() isSecurityScheme_Scheme {
	if x != nil {
		return x.Scheme
	}
	return nil
}

func (x *SecurityScheme) GetApiKeySecurityScheme() *APIKeySecurityScheme {
	if x != nil {
		if x, ok := x.Scheme.(*SecurityScheme_ApiKeySecurityScheme); ok {
			return x.ApiKeySecurityScheme
		}
	}
	return nil
}

func (x *SecurityScheme) GetHttpAuthSecurityScheme() *HTTPAuthSecurityScheme {
	if x != nil {
		if x, ok := x.Scheme.(*SecurityScheme_HttpAuthSecurityScheme); ok {
			return x.HttpAuthSecurityScheme
		}
	}
	return nil
}

func (x *SecurityScheme) GetOauth2SecurityScheme() *OAuth2SecurityScheme {
	if x != nil {
		if x, ok := x.Scheme.(*SecurityScheme_Oauth2SecurityScheme); ok {
			return x.Oauth2SecurityScheme
		}
	}
	return nil
}

func (x *SecurityScheme) GetOpenIdConnectSecurityScheme() *OpenIdConnectSecurityScheme {
	if x != nil {
		if x, ok := x.Scheme.(*SecurityScheme_OpenIdConnectSecurityScheme); ok {
			return x.OpenIdConnectSecurityScheme
		}
	}
	return nil
}

type isSecurityScheme_Scheme interface {
	isSecurityScheme_Scheme()
}

type SecurityScheme_ApiKeySecurityScheme struct {
	ApiKeySecurityScheme *APIKeySecurityScheme `protobuf:"bytes,1,opt,name=api_key_security_scheme,json=apiKeySecurityScheme,proto3,oneof"`
}

type SecurityScheme_HttpAuthSecurityScheme struct {
	HttpAuthSecurityScheme *HTTPAuthSecurityScheme `protobuf:"bytes,2,opt,name=http_auth_security_scheme,json=httpAuthSecurityScheme,proto3,oneof"`
}

type SecurityScheme_Oauth2SecurityScheme struct {
	Oauth2SecurityScheme *OAuth2SecurityScheme `protobuf:"bytes,3,opt,name=oauth2_security_scheme,json=oauth2SecurityScheme,proto3,oneof"`
}

type SecurityScheme_OpenIdConnectSecurityScheme struct {
	OpenIdConnectSecurityScheme *OpenIdConnectSecurityScheme `protobuf:"bytes,4,opt,name=open_id_connect_security_scheme,json=openIdConnectSecurityScheme,proto3,oneof"`
}

func (*SecurityScheme_ApiKeySecurityScheme) isSecurityScheme_Scheme() {}

func (*SecurityScheme_HttpAuthSecurityScheme) isSecurityScheme_Scheme() {}

func (*SecurityScheme_Oauth2SecurityScheme) isSecurityScheme_Scheme() {}

func (*SecurityScheme_OpenIdConnectSecurityScheme) isSecurityScheme_Scheme() {}

type APIKeySecurityScheme struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Description of this security scheme.
	Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
	// Location of the API key, valid values are "query", "header", or "cookie"
	Location string `protobuf:"bytes,2,opt,name=location,proto3" json:"location,omitempty"`
	// Name of the header, query or cookie parameter to be used.
	Name          string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *APIKeySecurityScheme) Reset() {
	*x = APIKeySecurityScheme{}
	mi := &file_a2a_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *APIKeySecurityScheme) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*APIKeySecurityScheme) ProtoMessage() {}

func (x *APIKeySecurityScheme) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[22]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use APIKeySecurityScheme.ProtoReflect.Descriptor instead.
func (*APIKeySecurityScheme) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{22}
}

func (x *APIKeySecurityScheme) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *APIKeySecurityScheme) GetLocation() string {
	if x != nil {
		return x.Location
	}
	return ""
}

func (x *APIKeySecurityScheme) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type HTTPAuthSecurityScheme struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Description of this security scheme.
	Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
	// The name of the HTTP Authentication scheme to be used in the
	// Authorization header as defined in RFC7235. The values used SHOULD be
	// registered in the IANA Authentication Scheme registry.
	// The value is case-insensitive, as defined in RFC7235.
	Scheme string `protobuf:"bytes,2,opt,name=scheme,proto3" json:"scheme,omitempty"`
	// A hint to the client to identify how the bearer token is formatted.
	// Bearer tokens are usually generated by an authorization server, so
	// this information is primarily for documentation purposes.
	BearerFormat  string `protobuf:"bytes,3,opt,name=bearer_format,json=bearerFormat,proto3" json:"bearer_format,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HTTPAuthSecurityScheme) Reset() {
	*x = HTTPAuthSecurityScheme{}
	mi := &file_a2a_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *HTTPAuthSecurityScheme) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HTTPAuthSecurityScheme) ProtoMessage() {}

func (x *HTTPAuthSecurityScheme) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[23]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HTTPAuthSecurityScheme.ProtoReflect.Descriptor instead.
func (*HTTPAuthSecurityScheme) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{23}
}

func (x *HTTPAuthSecurityScheme) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *HTTPAuthSecurityScheme) GetScheme() string {
	if x != nil {
		return x.Scheme
	}
	return ""
}

func (x *HTTPAuthSecurityScheme) GetBearerFormat() string {
	if x != nil {
		return x.BearerFormat
	}
	return ""
}

type OAuth2SecurityScheme struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Description of this security scheme.
	Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
	// An object containing configuration information for the flow types supported
	Flows         *OAuthFlows `protobuf:"bytes,2,opt,name=flows,proto3" json:"flows,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OAuth2SecurityScheme) Reset() {
	*x = OAuth2SecurityScheme{}
	mi := &file_a2a_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OAuth2SecurityScheme) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OAuth2SecurityScheme) ProtoMessage() {}

func (x *OAuth2SecurityScheme) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[24]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OAuth2SecurityScheme.ProtoReflect.Descriptor instead.
func (*OAuth2SecurityScheme) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{24}
}

func (x *OAuth2SecurityScheme) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *OAuth2SecurityScheme) GetFlows() *OAuthFlows {
	if x != nil {
		return x.Flows
	}
	return nil
}

type OpenIdConnectSecurityScheme struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Description of this security scheme.
	Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
	// Well-known URL to discover the [[OpenID-Connect-Discovery]] provider
	// metadata.
	OpenIdConnectUrl string `protobuf:"bytes,2,opt,name=open_id_connect_url,json=openIdConnectUrl,proto3" json:"open_id_connect_url,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *OpenIdConnectSecurityScheme) Reset() {
	*x = OpenIdConnectSecurityScheme{}
	mi := &file_a2a_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OpenIdConnectSecurityScheme) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OpenIdConnectSecurityScheme) ProtoMessage() {}

func (x *OpenIdConnectSecurityScheme) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[25]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OpenIdConnectSecurityScheme.ProtoReflect.Descriptor instead.
func (*OpenIdConnectSecurityScheme) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{25}
}

func (x *OpenIdConnectSecurityScheme) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *OpenIdConnectSecurityScheme) GetOpenIdConnectUrl() string {
	if x != nil {
		return x.OpenIdConnectUrl
	}
	return ""
}

type OAuthFlows struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Flow:
	//
	//	*OAuthFlows_AuthorizationCode
	//	*OAuthFlows_ClientCredentials
	//	*OAuthFlows_Implicit
	//	*OAuthFlows_Password
	Flow          isOAuthFlows_Flow `protobuf_oneof:"flow"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OAuthFlows) Reset() {
	*x = OAuthFlows{}
	mi := &file_a2a_proto_msgTypes[26]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OAuthFlows) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OAuthFlows) ProtoMessage() {}

func (x *OAuthFlows) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[26]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OAuthFlows.ProtoReflect.Descriptor instead.
func (*OAuthFlows) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{26}
}

func (x *OAuthFlows) GetFlow() isOAuthFlows_Flow {
	if x != nil {
		return x.Flow
	}
	return nil
}

func (x *OAuthFlows) GetAuthorizationCode() *AuthorizationCodeOAuthFlow {
	if x != nil {
		if x, ok := x.Flow.(*OAuthFlows_AuthorizationCode); ok {
			return x.AuthorizationCode
		}
	}
	return nil
}

func (x *OAuthFlows) GetClientCredentials() *ClientCredentialsOAuthFlow {
	if x != nil {
		if x, ok := x.Flow.(*OAuthFlows_ClientCredentials); ok {
			return x.ClientCredentials
		}
	}
	return nil
}

func (x *OAuthFlows) GetImplicit() *ImplicitOAuthFlow {
	if x != nil {
		if x, ok := x.Flow.(*OAuthFlows_Implicit); ok {
			return x.Implicit
		}
	}
	return nil
}

func (x *OAuthFlows) GetPassword() *PasswordOAuthFlow {
	if x != nil {
		if x, ok := x.Flow.(*OAuthFlows_Password); ok {
			return x.Password
		}
	}
	return nil
}

type isOAuthFlows_Flow interface {
	isOAuthFlows_Flow()
}

type OAuthFlows_AuthorizationCode struct {
	AuthorizationCode *AuthorizationCodeOAuthFlow `protobuf:"bytes,1,opt,name=authorization_code,json=authorizationCode,proto3,oneof"`
}

type OAuthFlows_ClientCredentials struct {
	ClientCredentials *ClientCredentialsOAuthFlow `protobuf:"bytes,2,opt,name=client_credentials,json=clientCredentials,proto3,oneof"`
}

type OAuthFlows_Implicit struct {
	Implicit *ImplicitOAuthFlow `protobuf:"bytes,3,opt,name=implicit,proto3,oneof"`
}

type OAuthFlows_Password struct {
	Password *PasswordOAuthFlow `protobuf:"bytes,4,opt,name=password,proto3,oneof"`
}

func (*OAuthFlows_AuthorizationCode) isOAuthFlows_Flow() {}

func (*OAuthFlows_ClientCredentials) isOAuthFlows_Flow() {}

func (*OAuthFlows_Implicit) isOAuthFlows_Flow() {}

func (*OAuthFlows_Password) isOAuthFlows_Flow() {}

type AuthorizationCodeOAuthFlow struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The authorization URL to be used for this flow. This MUST be in the
	// form of a URL. The OAuth2 standard requires the use of TLS
	AuthorizationUrl string `protobuf:"bytes,1,opt,name=authorization_url,json=authorizationUrl,proto3" json:"authorization_url,omitempty"`
	// The token URL to be used for this flow. This MUST be in the form of a URL.
	// The OAuth2 standard requires the use of TLS.
	TokenUrl string `protobuf:"bytes,2,opt,name=token_url,json=tokenUrl,proto3" json:"token_url,omitempty"`
	// The URL to be used for obtaining refresh tokens. This MUST be in the
	// form of a URL. The OAuth2 standard requires the use of TLS.
	RefreshUrl string `protobuf:"bytes,3,opt,name=refresh_url,json=refreshUrl,proto3" json:"refresh_url,omitempty"`
	// The available scopes for the OAuth2 security scheme. A map between the
	// scope name and a short description for it. The map MAY be empty.
	Scopes        map[string]string `protobuf:"bytes,4,rep,name=scopes,proto3" json:"scopes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AuthorizationCodeOAuthFlow) Reset() {
	*x = AuthorizationCodeOAuthFlow{}
	mi := &file_a2a_proto_msgTypes[27]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AuthorizationCodeOAuthFlow) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AuthorizationCodeOAuthFlow) ProtoMessage() {}

func (x *AuthorizationCodeOAuthFlow) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[27]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AuthorizationCodeOAuthFlow.ProtoReflect.Descriptor instead.
func (*AuthorizationCodeOAuthFlow) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{27}
}

func (x *AuthorizationCodeOAuthFlow) GetAuthorizationUrl() string {
	if x != nil {
		return x.AuthorizationUrl
	}
	return ""
}

func (x *AuthorizationCodeOAuthFlow) GetTokenUrl() string {
	if x != nil {
		return x.TokenUrl
	}
	return ""
}

func (x *AuthorizationCodeOAuthFlow) GetRefreshUrl() string {
	if x != nil {
		return x.RefreshUrl
	}
	return ""
}

func (x *AuthorizationCodeOAuthFlow) GetScopes() map[string]string {
	if x != nil {
		return x.Scopes
	}
	return nil
}

type ClientCredentialsOAuthFlow struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The token URL to be used for this flow. This MUST be in the form of a URL.
	// The OAuth2 standard requires the use of TLS.
	TokenUrl string `protobuf:"bytes,1,opt,name=token_url,json=tokenUrl,proto3" json:"token_url,omitempty"`
	// The URL to be used for obtaining refresh tokens. This MUST be in the
	// form of a URL. The OAuth2 standard requires the use of TLS.
	RefreshUrl string `protobuf:"bytes,2,opt,name=refresh_url,json=refreshUrl,proto3" json:"refresh_url,omitempty"`
	// The available scopes for the OAuth2 security scheme. A map between the
	// scope name and a short description for it. The map MAY be empty.
	Scopes        map[string]string `protobuf:"bytes,3,rep,name=scopes,proto3" json:"scopes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ClientCredentialsOAuthFlow) Reset() {
	*x = ClientCredentialsOAuthFlow{}
	mi := &file_a2a_proto_msgTypes[28]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ClientCredentialsOAuthFlow) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ClientCredentialsOAuthFlow) ProtoMessage() {}

func (x *ClientCredentialsOAuthFlow) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[28]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ClientCredentialsOAuthFlow.ProtoReflect.Descriptor instead.
func (*ClientCredentialsOAuthFlow) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{28}
}

func (x *ClientCredentialsOAuthFlow) GetTokenUrl() string {
	if x != nil {
		return x.TokenUrl
	}
	return ""
}

func (x *ClientCredentialsOAuthFlow) GetRefreshUrl() string {
	if x != nil {
		return x.RefreshUrl
	}
	return ""
}

func (x *ClientCredentialsOAuthFlow) GetScopes() map[string]string {
	if x != nil {
		return x.Scopes
	}
	return nil
}

type ImplicitOAuthFlow struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The authorization URL to be used for this flow. This MUST be in the
	// form of a URL. The OAuth2 standard requires the use of TLS
	AuthorizationUrl string `protobuf:"bytes,1,opt,name=authorization_url,json=authorizationUrl,proto3" json:"authorization_url,omitempty"`
	// The URL to be used for obtaining refresh tokens. This MUST be in the
	// form of a URL. The OAuth2 standard requires the use of TLS.
	RefreshUrl string `protobuf:"bytes,2,opt,name=refresh_url,json=refreshUrl,proto3" json:"refresh_url,omitempty"`
	// The available scopes for the OAuth2 security scheme. A map between the
	// scope name and a short description for it. The map MAY be empty.
	Scopes        map[string]string `protobuf:"bytes,3,rep,name=scopes,proto3" json:"scopes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ImplicitOAuthFlow) Reset() {
	*x = ImplicitOAuthFlow{}
	mi := &file_a2a_proto_msgTypes[29]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ImplicitOAuthFlow) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ImplicitOAuthFlow) ProtoMessage() {}

func (x *ImplicitOAuthFlow) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[29]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ImplicitOAuthFlow.ProtoReflect.Descriptor instead.
func (*ImplicitOAuthFlow) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{29}
}

func (x *ImplicitOAuthFlow) GetAuthorizationUrl() string {
	if x != nil {
		return x.AuthorizationUrl
	}
	return ""
}

func (x *ImplicitOAuthFlow) GetRefreshUrl() string {
	if x != nil {
		return x.RefreshUrl
	}
	return ""
}

func (x *ImplicitOAuthFlow) GetScopes() map[string]string {
	if x != nil {
		return x.Scopes
	}
	return nil
}

type PasswordOAuthFlow struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The token URL to be used for this flow. This MUST be in the form of a URL.
	// The OAuth2 standard requires the use of TLS.
	TokenUrl string `protobuf:"bytes,1,opt,name=token_url,json=tokenUrl,proto3" json:"token_url,omitempty"`
	// The URL to be used for obtaining refresh tokens. This MUST be in the
	// form of a URL. The OAuth2 standard requires the use of TLS.
	RefreshUrl string `protobuf:"bytes,2,opt,name=refresh_url,json=refreshUrl,proto3" json:"refresh_url,omitempty"`
	// The available scopes for the OAuth2 security scheme. A map between the
	// scope name and a short description for it. The map MAY be empty.
	Scopes        map[string]string `protobuf:"bytes,3,rep,name=scopes,proto3" json:"scopes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PasswordOAuthFlow) Reset() {
	*x = PasswordOAuthFlow{}
	mi := &file_a2a_proto_msgTypes[30]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PasswordOAuthFlow) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PasswordOAuthFlow) ProtoMessage() {}

func (x *PasswordOAuthFlow) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[30]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PasswordOAuthFlow.ProtoReflect.Descriptor instead.
func (*PasswordOAuthFlow) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{30}
}

func (x *PasswordOAuthFlow) GetTokenUrl() string {
	if x != nil {
		return x.TokenUrl
	}
	return ""
}

func (x *PasswordOAuthFlow) GetRefreshUrl() string {
	if x != nil {
		return x.RefreshUrl
	}
	return ""
}

func (x *PasswordOAuthFlow) GetScopes() map[string]string {
	if x != nil {
		return x.Scopes
	}
	return nil
}

// /////////// Request Messages ///////////
type SendMessageRequest struct {
	state         protoimpl.MessageState    `protogen:"open.v1"`
	Request       *Message                  `protobuf:"bytes,1,opt,name=request,proto3" json:"request,omitempty"`
	Configuration *SendMessageConfiguration `protobuf:"bytes,2,opt,name=configuration,proto3" json:"configuration,omitempty"`
	Metadata      *structpb.Struct          `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SendMessageRequest) Reset() {
	*x = SendMessageRequest{}
	mi := &file_a2a_proto_msgTypes[31]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SendMessageRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SendMessageRequest) ProtoMessage() {}

func (x *SendMessageRequest) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[31]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SendMessageRequest.ProtoReflect.Descriptor instead.
func (*SendMessageRequest) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{31}
}

func (x *SendMessageRequest) GetRequest() *Message {
	if x != nil {
		return x.Request
	}
	return nil
}

func (x *SendMessageRequest) GetConfiguration() *SendMessageConfiguration {
	if x != nil {
		return x.Configuration
	}
	return nil
}

func (x *SendMessageRequest) GetMetadata() *structpb.Struct {
	if x != nil {
		return x.Metadata
	}
	return nil
}

type GetTaskRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// name=tasks/{id}
	Name          string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	HistoryLength int32  `protobuf:"varint,2,opt,name=history_length,json=historyLength,proto3" json:"history_length,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetTaskRequest) Reset() {
	*x = GetTaskRequest{}
	mi := &file_a2a_proto_msgTypes[32]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetTaskRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetTaskRequest) ProtoMessage() {}

func (x *GetTaskRequest) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[32]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetTaskRequest.ProtoReflect.Descriptor instead.
func (*GetTaskRequest) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{32}
}

func (x *GetTaskRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *GetTaskRequest) GetHistoryLength() int32 {
	if x != nil {
		return x.HistoryLength
	}
	return 0
}

type CancelTaskRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// name=tasks/{id}
	Name          string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CancelTaskRequest) Reset() {
	*x = CancelTaskRequest{}
	mi := &file_a2a_proto_msgTypes[33]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CancelTaskRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CancelTaskRequest) ProtoMessage() {}

func (x *CancelTaskRequest) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[33]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CancelTaskRequest.ProtoReflect.Descriptor instead.
func (*CancelTaskRequest) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{33}
}

func (x *CancelTaskRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type GetTaskPushNotificationConfigRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// name=tasks/{id}/pushNotificationConfigs/{push_id}
	Name          string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetTaskPushNotificationConfigRequest) Reset() {
	*x = GetTaskPushNotificationConfigRequest{}
	mi := &file_a2a_proto_msgTypes[34]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetTaskPushNotificationConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetTaskPushNotificationConfigRequest) ProtoMessage() {}

func (x *GetTaskPushNotificationConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[34]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetTaskPushNotificationConfigRequest.ProtoReflect.Descriptor instead.
func (*GetTaskPushNotificationConfigRequest) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{34}
}

func (x *GetTaskPushNotificationConfigRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type DeleteTaskPushNotificationConfigRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// name=tasks/{id}/pushNotificationConfigs/{push_id}
	Name          string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteTaskPushNotificationConfigRequest) Reset() {
	*x = DeleteTaskPushNotificationConfigRequest{}
	mi := &file_a2a_proto_msgTypes[35]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteTaskPushNotificationConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteTaskPushNotificationConfigRequest) ProtoMessage() {}

func (x *DeleteTaskPushNotificationConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[35]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteTaskPushNotificationConfigRequest.ProtoReflect.Descriptor instead.
func (*DeleteTaskPushNotificationConfigRequest) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{35}
}

func (x *DeleteTaskPushNotificationConfigRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type CreateTaskPushNotificationConfigRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The task resource for this config.
	// Format: tasks/{id}
	Parent        string                      `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	ConfigId      string                      `protobuf:"bytes,2,opt,name=config_id,json=configId,proto3" json:"config_id,omitempty"`
	Config        *TaskPushNotificationConfig `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CreateTaskPushNotificationConfigRequest) Reset() {
	*x = CreateTaskPushNotificationConfigRequest{}
	mi := &file_a2a_proto_msgTypes[36]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CreateTaskPushNotificationConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateTaskPushNotificationConfigRequest) ProtoMessage() {}

func (x *CreateTaskPushNotificationConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[36]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateTaskPushNotificationConfigRequest.ProtoReflect.Descriptor instead.
func (*CreateTaskPushNotificationConfigRequest) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{36}
}

func (x *CreateTaskPushNotificationConfigRequest) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *CreateTaskPushNotificationConfigRequest) GetConfigId() string {
	if x != nil {
		return x.ConfigId
	}
	return ""
}

func (x *CreateTaskPushNotificationConfigRequest) GetConfig() *TaskPushNotificationConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

type TaskSubscriptionRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// name=tasks/{id}
	Name          string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TaskSubscriptionRequest) Reset() {
	*x = TaskSubscriptionRequest{}
	mi := &file_a2a_proto_msgTypes[37]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TaskSubscriptionRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TaskSubscriptionRequest) ProtoMessage() {}

func (x *TaskSubscriptionRequest) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[37]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TaskSubscriptionRequest.ProtoReflect.Descriptor instead.
func (*TaskSubscriptionRequest) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{37}
}

func (x *TaskSubscriptionRequest) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

type ListTaskPushNotificationConfigRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// parent=tasks/{id}
	Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
	// For AIP-158 these fields are present. Usually not used/needed.
	// The maximum number of configurations to return.
	// If unspecified, all configs will be returned.
	PageSize int32 `protobuf:"varint,2,opt,name=page_size,json=pageSize,proto3" json:"page_size,omitempty"`
	// A page token received from a previous
	// ListTaskPushNotificationConfigRequest call.
	// Provide this to retrieve the subsequent page.
	// When paginating, all other parameters provided to
	// `ListTaskPushNotificationConfigRequest` must match the call that provided
	// the page token.
	PageToken     string `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListTaskPushNotificationConfigRequest) Reset() {
	*x = ListTaskPushNotificationConfigRequest{}
	mi := &file_a2a_proto_msgTypes[38]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListTaskPushNotificationConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListTaskPushNotificationConfigRequest) ProtoMessage() {}

func (x *ListTaskPushNotificationConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[38]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListTaskPushNotificationConfigRequest.ProtoReflect.Descriptor instead.
func (*ListTaskPushNotificationConfigRequest) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{38}
}

func (x *ListTaskPushNotificationConfigRequest) GetParent() string {
	if x != nil {
		return x.Parent
	}
	return ""
}

func (x *ListTaskPushNotificationConfigRequest) GetPageSize() int32 {
	if x != nil {
		return x.PageSize
	}
	return 0
}

func (x *ListTaskPushNotificationConfigRequest) GetPageToken() string {
	if x != nil {
		return x.PageToken
	}
	return ""
}

type GetAgentCardRequest struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetAgentCardRequest) Reset() {
	*x = GetAgentCardRequest{}
	mi := &file_a2a_proto_msgTypes[39]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetAgentCardRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetAgentCardRequest) ProtoMessage() {}

func (x *GetAgentCardRequest) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[39]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetAgentCardRequest.ProtoReflect.Descriptor instead.
func (*GetAgentCardRequest) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{39}
}

// ////// Response Messages ///////////
type SendMessageResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Payload:
	//
	//	*SendMessageResponse_Task
	//	*SendMessageResponse_Msg
	Payload       isSendMessageResponse_Payload `protobuf_oneof:"payload"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SendMessageResponse) Reset() {
	*x = SendMessageResponse{}
	mi := &file_a2a_proto_msgTypes[40]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SendMessageResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SendMessageResponse) ProtoMessage() {}

func (x *SendMessageResponse) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[40]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SendMessageResponse.ProtoReflect.Descriptor instead.
func (*SendMessageResponse) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{40}
}

func (x *SendMessageResponse) GetPayload() isSendMessageResponse_Payload {
	if x != nil {
		return x.Payload
	}
	return nil
}

func (x *SendMessageResponse) GetTask() *Task {
	if x != nil {
		if x, ok := x.Payload.(*SendMessageResponse_Task); ok {
			return x.Task
		}
	}
	return nil
}

func (x *SendMessageResponse) GetMsg() *Message {
	if x != nil {
		if x, ok := x.Payload.(*SendMessageResponse_Msg); ok {
			return x.Msg
		}
	}
	return nil
}

type isSendMessageResponse_Payload interface {
	isSendMessageResponse_Payload()
}

type SendMessageResponse_Task struct {
	Task *Task `protobuf:"bytes,1,opt,name=task,proto3,oneof"`
}

type SendMessageResponse_Msg struct {
	Msg *Message `protobuf:"bytes,2,opt,name=msg,json=message,proto3,oneof"`
}

func (*SendMessageResponse_Task) isSendMessageResponse_Payload() {}

func (*SendMessageResponse_Msg) isSendMessageResponse_Payload() {}

// The stream response for a message. The stream should be one of the following
// sequences:
// If the response is a message, the stream should contain one, and only one,
// message and then close
// If the response is a task lifecycle, the first response should be a Task
// object followed by zero or more TaskStatusUpdateEvents and
// TaskArtifactUpdateEvents. The stream should complete when the Task
// if in an interrupted or terminal state. A stream that ends before these
// conditions are met are
type StreamResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Payload:
	//
	//	*StreamResponse_Task
	//	*StreamResponse_Msg
	//	*StreamResponse_StatusUpdate
	//	*StreamResponse_ArtifactUpdate
	Payload       isStreamResponse_Payload `protobuf_oneof:"payload"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StreamResponse) Reset() {
	*x = StreamResponse{}
	mi := &file_a2a_proto_msgTypes[41]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *StreamResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StreamResponse) ProtoMessage() {}

func (x *StreamResponse) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[41]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StreamResponse.ProtoReflect.Descriptor instead.
func (*StreamResponse) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{41}
}

func (x *StreamResponse) GetPayload() isStreamResponse_Payload {
	if x != nil {
		return x.Payload
	}
	return nil
}

func (x *StreamResponse) GetTask() *Task {
	if x != nil {
		if x, ok := x.Payload.(*StreamResponse_Task); ok {
			return x.Task
		}
	}
	return nil
}

func (x *StreamResponse) GetMsg() *Message {
	if x != nil {
		if x, ok := x.Payload.(*StreamResponse_Msg); ok {
			return x.Msg
		}
	}
	return nil
}

func (x *StreamResponse) GetStatusUpdate() *TaskStatusUpdateEvent {
	if x != nil {
		if x, ok := x.Payload.(*StreamResponse_StatusUpdate); ok {
			return x.StatusUpdate
		}
	}
	return nil
}

func (x *StreamResponse) GetArtifactUpdate() *TaskArtifactUpdateEvent {
	if x != nil {
		if x, ok := x.Payload.(*StreamResponse_ArtifactUpdate); ok {
			return x.ArtifactUpdate
		}
	}
	return nil
}

type isStreamResponse_Payload interface {
	isStreamResponse_Payload()
}

type StreamResponse_Task struct {
	Task *Task `protobuf:"bytes,1,opt,name=task,proto3,oneof"`
}

type StreamResponse_Msg struct {
	Msg *Message `protobuf:"bytes,2,opt,name=msg,json=message,proto3,oneof"`
}

type StreamResponse_StatusUpdate struct {
	StatusUpdate *TaskStatusUpdateEvent `protobuf:"bytes,3,opt,name=status_update,json=statusUpdate,proto3,oneof"`
}

type StreamResponse_ArtifactUpdate struct {
	ArtifactUpdate *TaskArtifactUpdateEvent `protobuf:"bytes,4,opt,name=artifact_update,json=artifactUpdate,proto3,oneof"`
}

func (*StreamResponse_Task) isStreamResponse_Payload() {}

func (*StreamResponse_Msg) isStreamResponse_Payload() {}

func (*StreamResponse_StatusUpdate) isStreamResponse_Payload() {}

func (*StreamResponse_ArtifactUpdate) isStreamResponse_Payload() {}

type ListTaskPushNotificationConfigResponse struct {
	state   protoimpl.MessageState        `protogen:"open.v1"`
	Configs []*TaskPushNotificationConfig `protobuf:"bytes,1,rep,name=configs,proto3" json:"configs,omitempty"`
	// A token, which can be sent as `page_token` to retrieve the next page.
	// If this field is omitted, there are no subsequent pages.
	NextPageToken string `protobuf:"bytes,2,opt,name=next_page_token,json=nextPageToken,proto3" json:"next_page_token,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListTaskPushNotificationConfigResponse) Reset() {
	*x = ListTaskPushNotificationConfigResponse{}
	mi := &file_a2a_proto_msgTypes[42]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListTaskPushNotificationConfigResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListTaskPushNotificationConfigResponse) ProtoMessage() {}

func (x *ListTaskPushNotificationConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_a2a_proto_msgTypes[42]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListTaskPushNotificationConfigResponse.ProtoReflect.Descriptor instead.
func (*ListTaskPushNotificationConfigResponse) Descriptor() ([]byte, []int) {
	return file_a2a_proto_rawDescGZIP(), []int{42}
}

func (x *ListTaskPushNotificationConfigResponse) GetConfigs() []*TaskPushNotificationConfig {
	if x != nil {
		return x.Configs
	}
	return nil
}

func (x *ListTaskPushNotificationConfigResponse) GetNextPageToken() string {
	if x != nil {
		return x.NextPageToken
	}
	return ""
}

var File_a2a_proto protoreflect.FileDescriptor

const file_a2a_proto_rawDesc = "" +
	"\n" +
	"\ta2a.proto\x12\x06a2a.v1\x1a\x1cgoogle/api/annotations.proto\x1a\x17google/api/client.proto\x1a\x1fgoogle/api/field_behavior.proto\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xde\x01\n" +
	"\x18SendMessageConfiguration\x122\n" +
	"\x15accepted_output_modes\x18\x01 \x03(\tR\x13acceptedOutputModes\x12K\n" +
	"\x11push_notification\x18\x02 \x01(\v2\x1e.a2a.v1.PushNotificationConfigR\x10pushNotification\x12%\n" +
	"\x0ehistory_length\x18\x03 \x01(\x05R\rhistoryLength\x12\x1a\n" +
	"\bblocking\x18\x04 \x01(\bR\bblocking\"\xf1\x01\n" +
	"\x04Task\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x1d\n" +
	"\n" +
	"context_id\x18\x02 \x01(\tR\tcontextId\x12*\n" +
	"\x06status\x18\x03 \x01(\v2\x12.a2a.v1.TaskStatusR\x06status\x12.\n" +
	"\tartifacts\x18\x04 \x03(\v2\x10.a2a.v1.ArtifactR\tartifacts\x12)\n" +
	"\ahistory\x18\x05 \x03(\v2\x0f.a2a.v1.MessageR\ahistory\x123\n" +
	"\bmetadata\x18\x06 \x01(\v2\x17.google.protobuf.StructR\bmetadata\"\x99\x01\n" +
	"\n" +
	"TaskStatus\x12'\n" +
	"\x05state\x18\x01 \x01(\x0e2\x11.a2a.v1.TaskStateR\x05state\x12(\n" +
	"\x06update\x18\x02 \x01(\v2\x0f.a2a.v1.MessageR\amessage\x128\n" +
	"\ttimestamp\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\ttimestamp\"t\n" +
	"\x04Part\x12\x14\n" +
	"\x04text\x18\x01 \x01(\tH\x00R\x04text\x12&\n" +
	"\x04file\x18\x02 \x01(\v2\x10.a2a.v1.FilePartH\x00R\x04file\x12&\n" +
	"\x04data\x18\x03 \x01(\v2\x10.a2a.v1.DataPartH\x00R\x04dataB\x06\n" +
	"\x04part\"\x7f\n" +
	"\bFilePart\x12$\n" +
	"\rfile_with_uri\x18\x01 \x01(\tH\x00R\vfileWithUri\x12(\n" +
	"\x0ffile_with_bytes\x18\x02 \x01(\fH\x00R\rfileWithBytes\x12\x1b\n" +
	"\tmime_type\x18\x03 \x01(\tR\bmimeTypeB\x06\n" +
	"\x04file\"7\n" +
	"\bDataPart\x12+\n" +
	"\x04data\x18\x01 \x01(\v2\x17.google.protobuf.StructR\x04data\"\xff\x01\n" +
	"\aMessage\x12\x1d\n" +
	"\n" +
	"message_id\x18\x01 \x01(\tR\tmessageId\x12\x1d\n" +
	"\n" +
	"context_id\x18\x02 \x01(\tR\tcontextId\x12\x17\n" +
	"\atask_id\x18\x03 \x01(\tR\x06taskId\x12 \n" +
	"\x04role\x18\x04 \x01(\x0e2\f.a2a.v1.RoleR\x04role\x12&\n" +
	"\acontent\x18\x05 \x03(\v2\f.a2a.v1.PartR\acontent\x123\n" +
	"\bmetadata\x18\x06 \x01(\v2\x17.google.protobuf.StructR\bmetadata\x12\x1e\n" +
	"\n" +
	"extensions\x18\a \x03(\tR\n" +
	"extensions\"\xda\x01\n" +
	"\bArtifact\x12\x1f\n" +
	"\vartifact_id\x18\x01 \x01(\tR\n" +
	"artifactId\x12\x12\n" +
	"\x04name\x18\x03 \x01(\tR\x04name\x12 \n" +
	"\vdescription\x18\x04 \x01(\tR\vdescription\x12\"\n" +
	"\x05parts\x18\x05 \x03(\v2\f.a2a.v1.PartR\x05parts\x123\n" +
	"\bmetadata\x18\x06 \x01(\v2\x17.google.protobuf.StructR\bmetadata\x12\x1e\n" +
	"\n" +
	"extensions\x18\a \x03(\tR\n" +
	"extensions\"\xc6\x01\n" +
	"\x15TaskStatusUpdateEvent\x12\x17\n" +
	"\atask_id\x18\x01 \x01(\tR\x06taskId\x12\x1d\n" +
	"\n" +
	"context_id\x18\x02 \x01(\tR\tcontextId\x12*\n" +
	"\x06status\x18\x03 \x01(\v2\x12.a2a.v1.TaskStatusR\x06status\x12\x14\n" +
	"\x05final\x18\x04 \x01(\bR\x05final\x123\n" +
	"\bmetadata\x18\x05 \x01(\v2\x17.google.protobuf.StructR\bmetadata\"\xeb\x01\n" +
	"\x17TaskArtifactUpdateEvent\x12\x17\n" +
	"\atask_id\x18\x01 \x01(\tR\x06taskId\x12\x1d\n" +
	"\n" +
	"context_id\x18\x02 \x01(\tR\tcontextId\x12,\n" +
	"\bartifact\x18\x03 \x01(\v2\x10.a2a.v1.ArtifactR\bartifact\x12\x16\n" +
	"\x06append\x18\x04 \x01(\bR\x06append\x12\x1d\n" +
	"\n" +
	"last_chunk\x18\x05 \x01(\bR\tlastChunk\x123\n" +
	"\bmetadata\x18\x06 \x01(\v2\x17.google.protobuf.StructR\bmetadata\"\x94\x01\n" +
	"\x16PushNotificationConfig\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x10\n" +
	"\x03url\x18\x02 \x01(\tR\x03url\x12\x14\n" +
	"\x05token\x18\x03 \x01(\tR\x05token\x12B\n" +
	"\x0eauthentication\x18\x04 \x01(\v2\x1a.a2a.v1.AuthenticationInfoR\x0eauthentication\"P\n" +
	"\x12AuthenticationInfo\x12\x18\n" +
	"\aschemes\x18\x01 \x03(\tR\aschemes\x12 \n" +
	"\vcredentials\x18\x02 \x01(\tR\vcredentials\"@\n" +
	"\x0eAgentInterface\x12\x10\n" +
	"\x03url\x18\x01 \x01(\tR\x03url\x12\x1c\n" +
	"\ttransport\x18\x02 \x01(\tR\ttransport\"\xf1\x06\n" +
	"\tAgentCard\x12)\n" +
	"\x10protocol_version\x18\x10 \x01(\tR\x0fprotocolVersion\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12 \n" +
	"\vdescription\x18\x02 \x01(\tR\vdescription\x12\x10\n" +
	"\x03url\x18\x03 \x01(\tR\x03url\x12/\n" +
	"\x13preferred_transport\x18\x0e \x01(\tR\x12preferredTransport\x12K\n" +
	"\x15additional_interfaces\x18\x0f \x03(\v2\x16.a2a.v1.AgentInterfaceR\x14additionalInterfaces\x121\n" +
	"\bprovider\x18\x04 \x01(\v2\x15.a2a.v1.AgentProviderR\bprovider\x12\x18\n" +
	"\aversion\x18\x05 \x01(\tR\aversion\x12+\n" +
	"\x11documentation_url\x18\x06 \x01(\tR\x10documentationUrl\x12=\n" +
	"\fcapabilities\x18\a \x01(\v2\x19.a2a.v1.AgentCapabilitiesR\fcapabilities\x12Q\n" +
	"\x10security_schemes\x18\b \x03(\v2&.a2a.v1.AgentCard.SecuritySchemesEntryR\x0fsecuritySchemes\x12,\n" +
	"\bsecurity\x18\t \x03(\v2\x10.a2a.v1.SecurityR\bsecurity\x12.\n" +
	"\x13default_input_modes\x18\n" +
	" \x03(\tR\x11defaultInputModes\x120\n" +
	"\x14default_output_modes\x18\v \x03(\tR\x12defaultOutputModes\x12*\n" +
	"\x06skills\x18\f \x03(\v2\x12.a2a.v1.AgentSkillR\x06skills\x12O\n" +
	"$supports_authenticated_extended_card\x18\r \x01(\bR!supportsAuthenticatedExtendedCard\x1aZ\n" +
	"\x14SecuritySchemesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12,\n" +
	"\x05value\x18\x02 \x01(\v2\x16.a2a.v1.SecuritySchemeR\x05value:\x028\x01\"E\n" +
	"\rAgentProvider\x12\x10\n" +
	"\x03url\x18\x01 \x01(\tR\x03url\x12\"\n" +
	"\forganization\x18\x02 \x01(\tR\forganization\"\x98\x01\n" +
	"\x11AgentCapabilities\x12\x1c\n" +
	"\tstreaming\x18\x01 \x01(\bR\tstreaming\x12-\n" +
	"\x12push_notifications\x18\x02 \x01(\bR\x11pushNotifications\x126\n" +
	"\n" +
	"extensions\x18\x03 \x03(\v2\x16.a2a.v1.AgentExtensionR\n" +
	"extensions\"\x91\x01\n" +
	"\x0eAgentExtension\x12\x10\n" +
	"\x03uri\x18\x01 \x01(\tR\x03uri\x12 \n" +
	"\vdescription\x18\x02 \x01(\tR\vdescription\x12\x1a\n" +
	"\brequired\x18\x03 \x01(\bR\brequired\x12/\n" +
	"\x06params\x18\x04 \x01(\v2\x17.google.protobuf.StructR\x06params\"\xc6\x01\n" +
	"\n" +
	"AgentSkill\x12\x0e\n" +
	"\x02id\x18\x01 \x01(\tR\x02id\x12\x12\n" +
	"\x04name\x18\x02 \x01(\tR\x04name\x12 \n" +
	"\vdescription\x18\x03 \x01(\tR\vdescription\x12\x12\n" +
	"\x04tags\x18\x04 \x03(\tR\x04tags\x12\x1a\n" +
	"\bexamples\x18\x05 \x03(\tR\bexamples\x12\x1f\n" +
	"\vinput_modes\x18\x06 \x03(\tR\n" +
	"inputModes\x12!\n" +
	"\foutput_modes\x18\a \x03(\tR\voutputModes\"\x8a\x01\n" +
	"\x1aTaskPushNotificationConfig\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12X\n" +
	"\x18push_notification_config\x18\x02 \x01(\v2\x1e.a2a.v1.PushNotificationConfigR\x16pushNotificationConfig\" \n" +
	"\n" +
	"StringList\x12\x12\n" +
	"\x04list\x18\x01 \x03(\tR\x04list\"\x93\x01\n" +
	"\bSecurity\x127\n" +
	"\aschemes\x18\x01 \x03(\v2\x1d.a2a.v1.Security.SchemesEntryR\aschemes\x1aN\n" +
	"\fSchemesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12(\n" +
	"\x05value\x18\x02 \x01(\v2\x12.a2a.v1.StringListR\x05value:\x028\x01\"\x91\x03\n" +
	"\x0eSecurityScheme\x12U\n" +
	"\x17api_key_security_scheme\x18\x01 \x01(\v2\x1c.a2a.v1.APIKeySecuritySchemeH\x00R\x14apiKeySecurityScheme\x12[\n" +
	"\x19http_auth_security_scheme\x18\x02 \x01(\v2\x1e.a2a.v1.HTTPAuthSecuritySchemeH\x00R\x16httpAuthSecurityScheme\x12T\n" +
	"\x16oauth2_security_scheme\x18\x03 \x01(\v2\x1c.a2a.v1.OAuth2SecuritySchemeH\x00R\x14oauth2SecurityScheme\x12k\n" +
	"\x1fopen_id_connect_security_scheme\x18\x04 \x01(\v2#.a2a.v1.OpenIdConnectSecuritySchemeH\x00R\x1bopenIdConnectSecuritySchemeB\b\n" +
	"\x06scheme\"h\n" +
	"\x14APIKeySecurityScheme\x12 \n" +
	"\vdescription\x18\x01 \x01(\tR\vdescription\x12\x1a\n" +
	"\blocation\x18\x02 \x01(\tR\blocation\x12\x12\n" +
	"\x04name\x18\x03 \x01(\tR\x04name\"w\n" +
	"\x16HTTPAuthSecurityScheme\x12 \n" +
	"\vdescription\x18\x01 \x01(\tR\vdescription\x12\x16\n" +
	"\x06scheme\x18\x02 \x01(\tR\x06scheme\x12#\n" +
	"\rbearer_format\x18\x03 \x01(\tR\fbearerFormat\"b\n" +
	"\x14OAuth2SecurityScheme\x12 \n" +
	"\vdescription\x18\x01 \x01(\tR\vdescription\x12(\n" +
	"\x05flows\x18\x02 \x01(\v2\x12.a2a.v1.OAuthFlowsR\x05flows\"n\n" +
	"\x1bOpenIdConnectSecurityScheme\x12 \n" +
	"\vdescription\x18\x01 \x01(\tR\vdescription\x12-\n" +
	"\x13open_id_connect_url\x18\x02 \x01(\tR\x10openIdConnectUrl\"\xb0\x02\n" +
	"\n" +
	"OAuthFlows\x12S\n" +
	"\x12authorization_code\x18\x01 \x01(\v2\".a2a.v1.AuthorizationCodeOAuthFlowH\x00R\x11authorizationCode\x12S\n" +
	"\x12client_credentials\x18\x02 \x01(\v2\".a2a.v1.ClientCredentialsOAuthFlowH\x00R\x11clientCredentials\x127\n" +
	"\bimplicit\x18\x03 \x01(\v2\x19.a2a.v1.ImplicitOAuthFlowH\x00R\bimplicit\x127\n" +
	"\bpassword\x18\x04 \x01(\v2\x19.a2a.v1.PasswordOAuthFlowH\x00R\bpasswordB\x06\n" +
	"\x04flow\"\x8a\x02\n" +
	"\x1aAuthorizationCodeOAuthFlow\x12+\n" +
	"\x11authorization_url\x18\x01 \x01(\tR\x10authorizationUrl\x12\x1b\n" +
	"\ttoken_url\x18\x02 \x01(\tR\btokenUrl\x12\x1f\n" +
	"\vrefresh_url\x18\x03 \x01(\tR\n" +
	"refreshUrl\x12F\n" +
	"\x06scopes\x18\x04 \x03(\v2..a2a.v1.AuthorizationCodeOAuthFlow.ScopesEntryR\x06scopes\x1a9\n" +
	"\vScopesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xdd\x01\n" +
	"\x1aClientCredentialsOAuthFlow\x12\x1b\n" +
	"\ttoken_url\x18\x01 \x01(\tR\btokenUrl\x12\x1f\n" +
	"\vrefresh_url\x18\x02 \x01(\tR\n" +
	"refreshUrl\x12F\n" +
	"\x06scopes\x18\x03 \x03(\v2..a2a.v1.ClientCredentialsOAuthFlow.ScopesEntryR\x06scopes\x1a9\n" +
	"\vScopesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xdb\x01\n" +
	"\x11ImplicitOAuthFlow\x12+\n" +
	"\x11authorization_url\x18\x01 \x01(\tR\x10authorizationUrl\x12\x1f\n" +
	"\vrefresh_url\x18\x02 \x01(\tR\n" +
	"refreshUrl\x12=\n" +
	"\x06scopes\x18\x03 \x03(\v2%.a2a.v1.ImplicitOAuthFlow.ScopesEntryR\x06scopes\x1a9\n" +
	"\vScopesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xcb\x01\n" +
	"\x11PasswordOAuthFlow\x12\x1b\n" +
	"\ttoken_url\x18\x01 \x01(\tR\btokenUrl\x12\x1f\n" +
	"\vrefresh_url\x18\x02 \x01(\tR\n" +
	"refreshUrl\x12=\n" +
	"\x06scopes\x18\x03 \x03(\v2%.a2a.v1.PasswordOAuthFlow.ScopesEntryR\x06scopes\x1a9\n" +
	"\vScopesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xc1\x01\n" +
	"\x12SendMessageRequest\x12.\n" +
	"\arequest\x18\x01 \x01(\v2\x0f.a2a.v1.MessageB\x03\xe0A\x02R\arequest\x12F\n" +
	"\rconfiguration\x18\x02 \x01(\v2 .a2a.v1.SendMessageConfigurationR\rconfiguration\x123\n" +
	"\bmetadata\x18\x03 \x01(\v2\x17.google.protobuf.StructR\bmetadata\"P\n" +
	"\x0eGetTaskRequest\x12\x17\n" +
	"\x04name\x18\x01 \x01(\tB\x03\xe0A\x02R\x04name\x12%\n" +
	"\x0ehistory_length\x18\x02 \x01(\x05R\rhistoryLength\"'\n" +
	"\x11CancelTaskRequest\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\":\n" +
	"$GetTaskPushNotificationConfigRequest\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\"=\n" +
	"'DeleteTaskPushNotificationConfigRequest\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\"\xa9\x01\n" +
	"'CreateTaskPushNotificationConfigRequest\x12\x1b\n" +
	"\x06parent\x18\x01 \x01(\tB\x03\xe0A\x02R\x06parent\x12 \n" +
	"\tconfig_id\x18\x02 \x01(\tB\x03\xe0A\x02R\bconfigId\x12?\n" +
	"\x06config\x18\x03 \x01(\v2\".a2a.v1.TaskPushNotificationConfigB\x03\xe0A\x02R\x06config\"-\n" +
	"\x17TaskSubscriptionRequest\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\"{\n" +
	"%ListTaskPushNotificationConfigRequest\x12\x16\n" +
	"\x06parent\x18\x01 \x01(\tR\x06parent\x12\x1b\n" +
	"\tpage_size\x18\x02 \x01(\x05R\bpageSize\x12\x1d\n" +
	"\n" +
	"page_token\x18\x03 \x01(\tR\tpageToken\"\x15\n" +
	"\x13GetAgentCardRequest\"m\n" +
	"\x13SendMessageResponse\x12\"\n" +
	"\x04task\x18\x01 \x01(\v2\f.a2a.v1.TaskH\x00R\x04task\x12'\n" +
	"\x03msg\x18\x02 \x01(\v2\x0f.a2a.v1.MessageH\x00R\amessageB\t\n" +
	"\apayload\"\xfa\x01\n" +
	"\x0eStreamResponse\x12\"\n" +
	"\x04task\x18\x01 \x01(\v2\f.a2a.v1.TaskH\x00R\x04task\x12'\n" +
	"\x03msg\x18\x02 \x01(\v2\x0f.a2a.v1.MessageH\x00R\amessage\x12D\n" +
	"\rstatus_update\x18\x03 \x01(\v2\x1d.a2a.v1.TaskStatusUpdateEventH\x00R\fstatusUpdate\x12J\n" +
	"\x0fartifact_update\x18\x04 \x01(\v2\x1f.a2a.v1.TaskArtifactUpdateEventH\x00R\x0eartifactUpdateB\t\n" +
	"\apayload\"\x8e\x01\n" +
	"&ListTaskPushNotificationConfigResponse\x12<\n" +
	"\aconfigs\x18\x01 \x03(\v2\".a2a.v1.TaskPushNotificationConfigR\aconfigs\x12&\n" +
	"\x0fnext_page_token\x18\x02 \x01(\tR\rnextPageToken*\xfa\x01\n" +
	"\tTaskState\x12\x1a\n" +
	"\x16TASK_STATE_UNSPECIFIED\x10\x00\x12\x18\n" +
	"\x14TASK_STATE_SUBMITTED\x10\x01\x12\x16\n" +
	"\x12TASK_STATE_WORKING\x10\x02\x12\x18\n" +
	"\x14TASK_STATE_COMPLETED\x10\x03\x12\x15\n" +
	"\x11TASK_STATE_FAILED\x10\x04\x12\x18\n" +
	"\x14TASK_STATE_CANCELLED\x10\x05\x12\x1d\n" +
	"\x19TASK_STATE_INPUT_REQUIRED\x10\x06\x12\x17\n" +
	"\x13TASK_STATE_REJECTED\x10\a\x12\x1c\n" +
	"\x18TASK_STATE_AUTH_REQUIRED\x10\b*;\n" +
	"\x04Role\x12\x14\n" +
	"\x10ROLE_UNSPECIFIED\x10\x00\x12\r\n" +
	"\tROLE_USER\x10\x01\x12\x0e\n" +
	"\n" +
	"ROLE_AGENT\x10\x022\xba\n" +
	"\n" +
	"\n" +
	"A2AService\x12c\n" +
	"\vSendMessage\x12\x1a.a2a.v1.SendMessageRequest\x1a\x1b.a2a.v1.SendMessageResponse\"\x1b\x82\xd3\xe4\x93\x02\x15:\x01*\"\x10/v1/message:send\x12k\n" +
	"\x14SendStreamingMessage\x12\x1a.a2a.v1.SendMessageRequest\x1a\x16.a2a.v1.StreamResponse\"\x1d\x82\xd3\xe4\x93\x02\x17:\x01*\"\x12/v1/message:stream0\x01\x12R\n" +
	"\aGetTask\x12\x16.a2a.v1.GetTaskRequest\x1a\f.a2a.v1.Task\"!\xdaA\x04name\x82\xd3\xe4\x93\x02\x14\x12\x12/v1/{name=tasks/*}\x12[\n" +
	"\n" +
	"CancelTask\x12\x19.a2a.v1.CancelTaskRequest\x1a\f.a2a.v1.Task\"$\x82\xd3\xe4\x93\x02\x1e:\x01*\"\x19/v1/{name=tasks/*}:cancel\x12s\n" +
	"\x10TaskSubscription\x12\x1f.a2a.v1.TaskSubscriptionRequest\x1a\x16.a2a.v1.StreamResponse\"$\x82\xd3\xe4\x93\x02\x1e\x12\x1c/v1/{name=tasks/*}:subscribe0\x01\x12\xc4\x01\n" +
	" CreateTaskPushNotificationConfig\x12/.a2a.v1.CreateTaskPushNotificationConfigRequest\x1a\".a2a.v1.TaskPushNotificationConfig\"K\xdaA\rparent,config\x82\xd3\xe4\x93\x025:\x06config\"+/v1/{parent=task/*/pushNotificationConfigs}\x12\xae\x01\n" +
	"\x1dGetTaskPushNotificationConfig\x12,.a2a.v1.GetTaskPushNotificationConfigRequest\x1a\".a2a.v1.TaskPushNotificationConfig\";\xdaA\x04name\x82\xd3\xe4\x93\x02.\x12,/v1/{name=tasks/*/pushNotificationConfigs/*}\x12\xbe\x01\n" +
	"\x1eListTaskPushNotificationConfig\x12-.a2a.v1.ListTaskPushNotificationConfigRequest\x1a..a2a.v1.ListTaskPushNotificationConfigResponse\"=\xdaA\x06parent\x82\xd3\xe4\x93\x02.\x12,/v1/{parent=tasks/*}/pushNotificationConfigs\x12P\n" +
	"\fGetAgentCard\x12\x1b.a2a.v1.GetAgentCardRequest\x1a\x11.a2a.v1.AgentCard\"\x10\x82\xd3\xe4\x93\x02\n" +
	"\x12\b/v1/card\x12\xa8\x01\n" +
	" DeleteTaskPushNotificationConfig\x12/.a2a.v1.DeleteTaskPushNotificationConfigRequest\x1a\x16.google.protobuf.Empty\";\xdaA\x04name\x82\xd3\xe4\x93\x02.*,/v1/{name=tasks/*/pushNotificationConfigs/*}Bs\n" +
	"\n" +
	"com.a2a.v1B\bA2aProtoP\x01Z\"github.com/a2aproject/a2a-go/a2apb\xa2\x02\x03AXX\xaa\x02\x06A2a.V1\xca\x02\x06A2a\\V1\xe2\x02\x12A2a\\V1\\GPBMetadata\xea\x02\aA2a::V1b\x06proto3"

var (
	file_a2a_proto_rawDescOnce sync.Once
	file_a2a_proto_rawDescData []byte
)

func file_a2a_proto_rawDescGZIP() []byte {
	file_a2a_proto_rawDescOnce.Do(func() {
		file_a2a_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_a2a_proto_rawDesc), len(file_a2a_proto_rawDesc)))
	})
	return file_a2a_proto_rawDescData
}

var file_a2a_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_a2a_proto_msgTypes = make([]protoimpl.MessageInfo, 49)
var file_a2a_proto_goTypes = []any{
	(TaskState)(0),                                  // 0: a2a.v1.TaskState
	(Role)(0),                                       // 1: a2a.v1.Role
	(*SendMessageConfiguration)(nil),                // 2: a2a.v1.SendMessageConfiguration
	(*Task)(nil),                                    // 3: a2a.v1.Task
	(*TaskStatus)(nil),                              // 4: a2a.v1.TaskStatus
	(*Part)(nil),                                    // 5: a2a.v1.Part
	(*FilePart)(nil),                                // 6: a2a.v1.FilePart
	(*DataPart)(nil),                                // 7: a2a.v1.DataPart
	(*Message)(nil),                                 // 8: a2a.v1.Message
	(*Artifact)(nil),                                // 9: a2a.v1.Artifact
	(*TaskStatusUpdateEvent)(nil),                   // 10: a2a.v1.TaskStatusUpdateEvent
	(*TaskArtifactUpdateEvent)(nil),                 // 11: a2a.v1.TaskArtifactUpdateEvent
	(*PushNotificationConfig)(nil),                  // 12: a2a.v1.PushNotificationConfig
	(*AuthenticationInfo)(nil),                      // 13: a2a.v1.AuthenticationInfo
	(*AgentInterface)(nil),                          // 14: a2a.v1.AgentInterface
	(*AgentCard)(nil),                               // 15: a2a.v1.AgentCard
	(*AgentProvider)(nil),                           // 16: a2a.v1.AgentProvider
	(*AgentCapabilities)(nil),                       // 17: a2a.v1.AgentCapabilities
	(*AgentExtension)(nil),                          // 18: a2a.v1.AgentExtension
	(*AgentSkill)(nil),                              // 19: a2a.v1.AgentSkill
	(*TaskPushNotificationConfig)(nil),              // 20: a2a.v1.TaskPushNotificationConfig
	(*StringList)(nil),                              // 21: a2a.v1.StringList
	(*Security)(nil),                                // 22: a2a.v1.Security
	(*SecurityScheme)(nil),                          // 23: a2a.v1.SecurityScheme
	(*APIKeySecurityScheme)(nil),                    // 24: a2a.v1.APIKeySecurityScheme
	(*HTTPAuthSecurityScheme)(nil),                  // 25: a2a.v1.HTTPAuthSecurityScheme
	(*OAuth2SecurityScheme)(nil),                    // 26: a2a.v1.OAuth2SecurityScheme
	(*OpenIdConnectSecurityScheme)(nil),             // 27: a2a.v1.OpenIdConnectSecurityScheme
	(*OAuthFlows)(nil),                              // 28: a2a.v1.OAuthFlows
	(*AuthorizationCodeOAuthFlow)(nil),              // 29: a2a.v1.AuthorizationCodeOAuthFlow
	(*ClientCredentialsOAuthFlow)(nil),              // 30: a2a.v1.ClientCredentialsOAuthFlow
	(*ImplicitOAuthFlow)(nil),                       // 31: a2a.v1.ImplicitOAuthFlow
	(*PasswordOAuthFlow)(nil),                       // 32: a2a.v1.PasswordOAuthFlow
	(*SendMessageRequest)(nil),                      // 33: a2a.v1.SendMessageRequest
	(*GetTaskRequest)(nil),                          // 34: a2a.v1.GetTaskRequest
	(*CancelTaskRequest)(nil),                       // 35: a2a.v1.CancelTaskRequest
	(*GetTaskPushNotificationConfigRequest)(nil),    // 36: a2a.v1.GetTaskPushNotificationConfigRequest
	(*DeleteTaskPushNotificationConfigRequest)(nil), // 37: a2a.v1.DeleteTaskPushNotificationConfigRequest
	(*CreateTaskPushNotificationConfigRequest)(nil), // 38: a2a.v1.CreateTaskPushNotificationConfigRequest
	(*TaskSubscriptionRequest)(nil),                 // 39: a2a.v1.TaskSubscriptionRequest
	(*ListTaskPushNotificationConfigRequest)(nil),   // 40: a2a.v1.ListTaskPushNotificationConfigRequest
	(*GetAgentCardRequest)(nil),                     // 41: a2a.v1.GetAgentCardRequest
	(*SendMessageResponse)(nil),                     // 42: a2a.v1.SendMessageResponse
	(*StreamResponse)(nil),                          // 43: a2a.v1.StreamResponse
	(*ListTaskPushNotificationConfigResponse)(nil),  // 44: a2a.v1.ListTaskPushNotificationConfigResponse
	nil,                           // 45: a2a.v1.AgentCard.SecuritySchemesEntry
	nil,                           // 46: a2a.v1.Security.SchemesEntry
	nil,                           // 47: a2a.v1.AuthorizationCodeOAuthFlow.ScopesEntry
	nil,                           // 48: a2a.v1.ClientCredentialsOAuthFlow.ScopesEntry
	nil,                           // 49: a2a.v1.ImplicitOAuthFlow.ScopesEntry
	nil,                           // 50: a2a.v1.PasswordOAuthFlow.ScopesEntry
	(*structpb.Struct)(nil),       // 51: google.protobuf.Struct
	(*timestamppb.Timestamp)(nil), // 52: google.protobuf.Timestamp
	(*emptypb.Empty)(nil),         // 53: google.protobuf.Empty
}
var file_a2a_proto_depIdxs = []int32{
	12, // 0: a2a.v1.SendMessageConfiguration.push_notification:type_name -> a2a.v1.PushNotificationConfig
	4,  // 1: a2a.v1.Task.status:type_name -> a2a.v1.TaskStatus
	9,  // 2: a2a.v1.Task.artifacts:type_name -> a2a.v1.Artifact
	8,  // 3: a2a.v1.Task.history:type_name -> a2a.v1.Message
	51, // 4: a2a.v1.Task.metadata:type_name -> google.protobuf.Struct
	0,  // 5: a2a.v1.TaskStatus.state:type_name -> a2a.v1.TaskState
	8,  // 6: a2a.v1.TaskStatus.update:type_name -> a2a.v1.Message
	52, // 7: a2a.v1.TaskStatus.timestamp:type_name -> google.protobuf.Timestamp
	6,  // 8: a2a.v1.Part.file:type_name -> a2a.v1.FilePart
	7,  // 9: a2a.v1.Part.data:type_name -> a2a.v1.DataPart
	51, // 10: a2a.v1.DataPart.data:type_name -> google.protobuf.Struct
	1,  // 11: a2a.v1.Message.role:type_name -> a2a.v1.Role
	5,  // 12: a2a.v1.Message.content:type_name -> a2a.v1.Part
	51, // 13: a2a.v1.Message.metadata:type_name -> google.protobuf.Struct
	5,  // 14: a2a.v1.Artifact.parts:type_name -> a2a.v1.Part
	51, // 15: a2a.v1.Artifact.metadata:type_name -> google.protobuf.Struct
	4,  // 16: a2a.v1.TaskStatusUpdateEvent.status:type_name -> a2a.v1.TaskStatus
	51, // 17: a2a.v1.TaskStatusUpdateEvent.metadata:type_name -> google.protobuf.Struct
	9,  // 18: a2a.v1.TaskArtifactUpdateEvent.artifact:type_name -> a2a.v1.Artifact
	51, // 19: a2a.v1.TaskArtifactUpdateEvent.metadata:type_name -> google.protobuf.Struct
	13, // 20: a2a.v1.PushNotificationConfig.authentication:type_name -> a2a.v1.AuthenticationInfo
	14, // 21: a2a.v1.AgentCard.additional_interfaces:type_name -> a2a.v1.AgentInterface
	16, // 22: a2a.v1.AgentCard.provider:type_name -> a2a.v1.AgentProvider
	17, // 23: a2a.v1.AgentCard.capabilities:type_name -> a2a.v1.AgentCapabilities
	45, // 24: a2a.v1.AgentCard.security_schemes:type_name -> a2a.v1.AgentCard.SecuritySchemesEntry
	22, // 25: a2a.v1.AgentCard.security:type_name -> a2a.v1.Security
	19, // 26: a2a.v1.AgentCard.skills:type_name -> a2a.v1.AgentSkill
	18, // 27: a2a.v1.AgentCapabilities.extensions:type_name -> a2a.v1.AgentExtension
	51, // 28: a2a.v1.AgentExtension.params:type_name -> google.protobuf.Struct
	12, // 29: a2a.v1.TaskPushNotificationConfig.push_notification_config:type_name -> a2a.v1.PushNotificationConfig
	46, // 30: a2a.v1.Security.schemes:type_name -> a2a.v1.Security.SchemesEntry
	24, // 31: a2a.v1.SecurityScheme.api_key_security_scheme:type_name -> a2a.v1.APIKeySecurityScheme
	25, // 32: a2a.v1.SecurityScheme.http_auth_security_scheme:type_name -> a2a.v1.HTTPAuthSecurityScheme
	26, // 33: a2a.v1.SecurityScheme.oauth2_security_scheme:type_name -> a2a.v1.OAuth2SecurityScheme
	27, // 34: a2a.v1.SecurityScheme.open_id_connect_security_scheme:type_name -> a2a.v1.OpenIdConnectSecurityScheme
	28, // 35: a2a.v1.OAuth2SecurityScheme.flows:type_name -> a2a.v1.OAuthFlows
	29, // 36: a2a.v1.OAuthFlows.authorization_code:type_name -> a2a.v1.AuthorizationCodeOAuthFlow
	30, // 37: a2a.v1.OAuthFlows.client_credentials:type_name -> a2a.v1.ClientCredentialsOAuthFlow
	31, // 38: a2a.v1.OAuthFlows.implicit:type_name -> a2a.v1.ImplicitOAuthFlow
	32, // 39: a2a.v1.OAuthFlows.password:type_name -> a2a.v1.PasswordOAuthFlow
	47, // 40: a2a.v1.AuthorizationCodeOAuthFlow.scopes:type_name -> a2a.v1.AuthorizationCodeOAuthFlow.ScopesEntry
	48, // 41: a2a.v1.ClientCredentialsOAuthFlow.scopes:type_name -> a2a.v1.ClientCredentialsOAuthFlow.ScopesEntry
	49, // 42: a2a.v1.ImplicitOAuthFlow.scopes:type_name -> a2a.v1.ImplicitOAuthFlow.ScopesEntry
	50, // 43: a2a.v1.PasswordOAuthFlow.scopes:type_name -> a2a.v1.PasswordOAuthFlow.ScopesEntry
	8,  // 44: a2a.v1.SendMessageRequest.request:type_name -> a2a.v1.Message
	2,  // 45: a2a.v1.SendMessageRequest.configuration:type_name -> a2a.v1.SendMessageConfiguration
	51, // 46: a2a.v1.SendMessageRequest.metadata:type_name -> google.protobuf.Struct
	20, // 47: a2a.v1.CreateTaskPushNotificationConfigRequest.config:type_name -> a2a.v1.TaskPushNotificationConfig
	3,  // 48: a2a.v1.SendMessageResponse.task:type_name -> a2a.v1.Task
	8,  // 49: a2a.v1.SendMessageResponse.msg:type_name -> a2a.v1.Message
	3,  // 50: a2a.v1.StreamResponse.task:type_name -> a2a.v1.Task
	8,  // 51: a2a.v1.StreamResponse.msg:type_name -> a2a.v1.Message
	10, // 52: a2a.v1.StreamResponse.status_update:type_name -> a2a.v1.TaskStatusUpdateEvent
	11, // 53: a2a.v1.StreamResponse.artifact_update:type_name -> a2a.v1.TaskArtifactUpdateEvent
	20, // 54: a2a.v1.ListTaskPushNotificationConfigResponse.configs:type_name -> a2a.v1.TaskPushNotificationConfig
	23, // 55: a2a.v1.AgentCard.SecuritySchemesEntry.value:type_name -> a2a.v1.SecurityScheme
	21, // 56: a2a.v1.Security.SchemesEntry.value:type_name -> a2a.v1.StringList
	33, // 57: a2a.v1.A2AService.SendMessage:input_type -> a2a.v1.SendMessageRequest
	33, // 58: a2a.v1.A2AService.SendStreamingMessage:input_type -> a2a.v1.SendMessageRequest
	34, // 59: a2a.v1.A2AService.GetTask:input_type -> a2a.v1.GetTaskRequest
	35, // 60: a2a.v1.A2AService.CancelTask:input_type -> a2a.v1.CancelTaskRequest
	39, // 61: a2a.v1.A2AService.TaskSubscription:input_type -> a2a.v1.TaskSubscriptionRequest
	38, // 62: a2a.v1.A2AService.CreateTaskPushNotificationConfig:input_type -> a2a.v1.CreateTaskPushNotificationConfigRequest
	36, // 63: a2a.v1.A2AService.GetTaskPushNotificationConfig:input_type -> a2a.v1.GetTaskPushNotificationConfigRequest
	40, // 64: a2a.v1.A2AService.ListTaskPushNotificationConfig:input_type -> a2a.v1.ListTaskPushNotificationConfigRequest
	41, // 65: a2a.v1.A2AService.GetAgentCard:input_type -> a2a.v1.GetAgentCardRequest
	37, // 66: a2a.v1.A2AService.DeleteTaskPushNotificationConfig:input_type -> a2a.v1.DeleteTaskPushNotificationConfigRequest
	42, // 67: a2a.v1.A2AService.SendMessage:output_type -> a2a.v1.SendMessageResponse
	43, // 68: a2a.v1.A2AService.SendStreamingMessage:output_type -> a2a.v1.StreamResponse
	3,  // 69: a2a.v1.A2AService.GetTask:output_type -> a2a.v1.Task
	3,  // 70: a2a.v1.A2AService.CancelTask:output_type -> a2a.v1.Task
	43, // 71: a2a.v1.A2AService.TaskSubscription:output_type -> a2a.v1.StreamResponse
	20, // 72: a2a.v1.A2AService.CreateTaskPushNotificationConfig:output_type -> a2a.v1.TaskPushNotificationConfig
	20, // 73: a2a.v1.A2AService.GetTaskPushNotificationConfig:output_type -> a2a.v1.TaskPushNotificationConfig
	44, // 74: a2a.v1.A2AService.ListTaskPushNotificationConfig:output_type -> a2a.v1.ListTaskPushNotificationConfigResponse
	15, // 75: a2a.v1.A2AService.GetAgentCard:output_type -> a2a.v1.AgentCard
	53, // 76: a2a.v1.A2AService.DeleteTaskPushNotificationConfig:output_type -> google.protobuf.Empty
	67, // [67:77] is the sub-list for method output_type
	57, // [57:67] is the sub-list for method input_type
	57, // [57:57] is the sub-list for extension type_name
	57, // [57:57] is the sub-list for extension extendee
	0,  // [0:57] is the sub-list for field type_name
}

func init() { file_a2a_proto_init() }
func file_a2a_proto_init() {
	if File_a2a_proto != nil {
		return
	}
	file_a2a_proto_msgTypes[3].OneofWrappers = []any{
		(*Part_Text)(nil),
		(*Part_File)(nil),
		(*Part_Data)(nil),
	}
	file_a2a_proto_msgTypes[4].OneofWrappers = []any{
		(*FilePart_FileWithUri)(nil),
		(*FilePart_FileWithBytes)(nil),
	}
	file_a2a_proto_msgTypes[21].OneofWrappers = []any{
		(*SecurityScheme_ApiKeySecurityScheme)(nil),
		(*SecurityScheme_HttpAuthSecurityScheme)(nil),
		(*SecurityScheme_Oauth2SecurityScheme)(nil),
		(*SecurityScheme_OpenIdConnectSecurityScheme)(nil),
	}
	file_a2a_proto_msgTypes[26].OneofWrappers = []any{
		(*OAuthFlows_AuthorizationCode)(nil),
		(*OAuthFlows_ClientCredentials)(nil),
		(*OAuthFlows_Implicit)(nil),
		(*OAuthFlows_Password)(nil),
	}
	file_a2a_proto_msgTypes[40].OneofWrappers = []any{
		(*SendMessageResponse_Task)(nil),
		(*SendMessageResponse_Msg)(nil),
	}
	file_a2a_proto_msgTypes[41].OneofWrappers = []any{
		(*StreamResponse_Task)(nil),
		(*StreamResponse_Msg)(nil),
		(*StreamResponse_StatusUpdate)(nil),
		(*StreamResponse_ArtifactUpdate)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_a2a_proto_rawDesc), len(file_a2a_proto_rawDesc)),
			NumEnums:      2,
			NumMessages:   49,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_a2a_proto_goTypes,
		DependencyIndexes: file_a2a_proto_depIdxs,
		EnumInfos:         file_a2a_proto_enumTypes,
		MessageInfos:      file_a2a_proto_msgTypes,
	}.Build()
	File_a2a_proto = out.File
	file_a2a_proto_goTypes = nil
	file_a2a_proto_depIdxs = nil
}
