Documentation
¶
Overview ¶
Package types provides primitives to interact with the openapi HTTP API.
Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.8.0 DO NOT EDIT.
Index ¶
- Constants
- func MarshalParts(parts []Part) ([]byte, error)
- func NewAgentEvent(eventType, eventID string, data map[string]any) cloudevents.Event
- func NewDeltaEvent(message *Message) cloudevents.Event
- func NewIterationCompletedEvent(iteration int, taskID string, finalMessage *Message) cloudevents.Event
- func NewMessageEvent(eventType, eventID string, message *Message) cloudevents.Event
- type APIKeySecurityScheme
- type AgentCapabilities
- type AgentCard
- type AgentCardSignature
- type AgentExtension
- type AgentInterface
- type AgentProvider
- type AgentSkill
- type Artifact
- type AuthenticationInfo
- type AuthorizationCodeOAuthFlow
- type CancelTaskRequest
- type ClientCredentialsOAuthFlow
- type DataPart
- type DeleteTaskPushNotificationConfigParams
- type DeleteTaskPushNotificationConfigRequest
- type FilePart
- type GetAuthenticatedExtendedCardParams
- type GetExtendedAgentCardRequest
- type GetTaskPushNotificationConfigParams
- type GetTaskPushNotificationConfigRequest
- type GetTaskRequest
- type HTTPAuthSecurityScheme
- type ImplicitOAuthFlow
- type JSONParseError
- type JSONRPCError
- type JSONRPCErrorResponse
- type JSONRPCMessage
- type JSONRPCRequest
- type JSONRPCResponse
- type JSONRPCSuccessResponse
- type ListTaskPushNotificationConfigParams
- type ListTaskPushNotificationConfigRequest
- type ListTaskPushNotificationConfigResponse
- type ListTasksRequest
- type ListTasksResponse
- type Message
- func NewAssistantMessage(messageID string, parts []Part) *Message
- func NewInputRequiredMessage(toolCallID, message string) *Message
- func NewStreamingStatusMessage(messageID, status string, metadata map[string]any) *Message
- func NewToolResultMessage(toolCallID string, toolName string, result any, hasError bool) *Message
- type MessageSendConfiguration
- type MessageSendParams
- type MutualTLSSecurityScheme
- type OAuth2SecurityScheme
- type OAuthFlows
- type OpenIDConnectSecurityScheme
- type Part
- func CreateDataPart(data map[string]any, metadata ...map[string]any) Part
- func CreateFilePart(name, mediaType string, fileWithBytes *string, fileWithURI *string, ...) Part
- func CreateTextPart(text string, metadata ...map[string]any) Part
- func NewDataPart(data map[string]any) Part
- func NewTextPart(text string) Part
- func NewToolCallPart(toolCallID, toolName string, arguments map[string]any) Part
- func UnmarshalPart(data []byte) (Part, error)
- func UnmarshalParts(data []byte) ([]Part, error)
- type PasswordOAuthFlow
- type PushNotificationConfig
- type Role
- type Security
- type SecurityScheme
- type SendMessageConfiguration
- type SendMessageRequest
- type SendMessageResponse
- type SetTaskPushNotificationConfigRequest
- type StreamResponse
- type StringList
- type Struct
- type SubscribeToTaskRequest
- type Task
- type TaskArtifactUpdateEvent
- type TaskIdParams
- type TaskList
- type TaskListParams
- type TaskPushNotificationConfig
- type TaskQueryParams
- type TaskResubscriptionParams
- type TaskState
- type TaskStatus
- type TaskStatusUpdateEvent
- type Timestamp
Constants ¶
const ( HealthStatusHealthy = "healthy" HealthStatusDegraded = "degraded" HealthStatusUnhealthy = "unhealthy" )
Health status constants
const ( EventDelta = "adk.agent.delta" EventIterationCompleted = "adk.agent.iteration.completed" EventToolStarted = "adk.agent.tool.started" EventToolCompleted = "adk.agent.tool.completed" EventToolFailed = "adk.agent.tool.failed" EventToolResult = "adk.agent.tool.result" EventInputRequired = "adk.agent.input.required" EventTaskInterrupted = "adk.agent.task.interrupted" EventTaskStatusChanged = "adk.agent.task.status.changed" EventStreamFailed = "adk.agent.stream.failed" )
CloudEvent type constants for agent streaming operations
const (
ToolInputRequired = "input_required"
)
Tool name constants
Variables ¶
This section is empty.
Functions ¶
func MarshalParts ¶ added in v0.14.0
MarshalParts is a utility function to marshal a slice of Parts
func NewAgentEvent ¶ added in v0.9.4
func NewAgentEvent(eventType, eventID string, data map[string]any) cloudevents.Event
NewAgentEvent creates a CloudEvent for agent lifecycle events
func NewDeltaEvent ¶ added in v0.9.4
func NewDeltaEvent(message *Message) cloudevents.Event
NewDeltaEvent creates a CloudEvent for streaming deltas, with the message in the data field
func NewIterationCompletedEvent ¶ added in v0.9.4
func NewIterationCompletedEvent(iteration int, taskID string, finalMessage *Message) cloudevents.Event
NewIterationCompletedEvent creates a CloudEvent for iteration completed with the final message
func NewMessageEvent ¶ added in v0.9.4
func NewMessageEvent(eventType, eventID string, message *Message) cloudevents.Event
NewMessageEvent creates a CloudEvent with a message payload and custom event type
Types ¶
type APIKeySecurityScheme ¶
type APIKeySecurityScheme struct {
// Description An optional description for the security scheme.
Description *string `json:"description,omitempty"`
// Location The location of the API key. Valid values are "query", "header", or "cookie".
Location string `json:"location"`
// Name The name of the header, query, or cookie parameter to be used.
Name string `json:"name"`
}
APIKeySecurityScheme Defines a security scheme using an API key.
type AgentCapabilities ¶
type AgentCapabilities struct {
// Extensions A list of protocol extensions supported by the agent.
Extensions []AgentExtension `json:"extensions,omitempty"`
// PushNotifications Indicates if the agent supports sending push notifications for asynchronous task updates.
PushNotifications *bool `json:"pushNotifications,omitempty"`
// StateTransitionHistory Indicates if the agent provides a history of state transitions for a task.
StateTransitionHistory *bool `json:"stateTransitionHistory,omitempty"`
// Streaming Indicates if the agent supports streaming responses.
Streaming *bool `json:"streaming,omitempty"`
}
AgentCapabilities Defines optional capabilities supported by an agent.
type AgentCard ¶
type AgentCard struct {
// AdditionalInterfaces DEPRECATED: Use 'supported_interfaces' instead.
AdditionalInterfaces []AgentInterface `json:"additionalInterfaces,omitempty"`
// Capabilities A2A Capability set supported by the agent.
Capabilities AgentCapabilities `json:"capabilities"`
// DefaultInputModes 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 media types.
DefaultInputModes []string `json:"defaultInputModes"`
// DefaultOutputModes The media types supported as outputs from this agent.
DefaultOutputModes []string `json:"defaultOutputModes"`
// Description A human-readable description of the agent, assisting users and other agents
// in understanding its purpose.
// Example: "Agent that helps users with recipes and cooking."
Description string `json:"description"`
// DocumentationURL A url to provide additional documentation about the agent.
DocumentationURL *string `json:"documentationUrl,omitempty"`
// IconURL An optional URL to an icon for the agent.
IconURL *string `json:"iconUrl,omitempty"`
// Name A human readable name for the agent.
// Example: "Recipe Agent"
Name string `json:"name"`
// PreferredTransport DEPRECATED: Use 'supported_interfaces' instead.
PreferredTransport *string `json:"preferredTransport,omitempty"`
// ProtocolVersion The version of the A2A protocol this agent supports.
// Default: "1.0"
ProtocolVersion string `json:"protocolVersion"`
// Provider The service provider of the agent.
Provider *AgentProvider `json:"provider,omitempty"`
// Security protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
// Security requirements for contacting the agent.
Security []Security `json:"security,omitempty"`
// SecuritySchemes The security scheme details used for authenticating with this agent.
SecuritySchemes map[string]SecurityScheme `json:"securitySchemes,omitempty"`
// Signatures JSON Web Signatures computed for this AgentCard.
Signatures []AgentCardSignature `json:"signatures,omitempty"`
// Skills Skills represent an ability of an agent. It is largely
// a descriptive concept but represents a more focused set of behaviors that the
// agent is likely to succeed at.
Skills []AgentSkill `json:"skills"`
// SupportedInterfaces Ordered list of supported interfaces. First entry is preferred.
SupportedInterfaces []AgentInterface `json:"supportedInterfaces,omitempty"`
// SupportsExtendedAgentCard Whether the agent supports providing an extended agent card when authenticated.
SupportsExtendedAgentCard *bool `json:"supportsExtendedAgentCard,omitempty"`
// URL DEPRECATED: Use 'supported_interfaces' instead.
URL *string `json:"url,omitempty"`
// Version The version of the agent.
// Example: "1.0.0"
Version string `json:"version"`
}
AgentCard AgentCard is a self-describing manifest for an agent. It provides essential
metadata including the agent's identity, capabilities, skills, supported communication methods, and security requirements. Next ID: 20
type AgentCardSignature ¶ added in v0.8.0
type AgentCardSignature struct {
// Header The unprotected JWS header values.
Header *Struct `json:"header,omitempty"`
// Protected The protected JWS header for the signature. This is always a
// base64url-encoded JSON object. Required.
Protected string `json:"protected"`
// Signature The computed signature, base64url-encoded. Required.
Signature string `json:"signature"`
}
AgentCardSignature AgentCardSignature represents a JWS signature of an AgentCard.
This follows the JSON format of an RFC 7515 JSON Web Signature (JWS).
type AgentExtension ¶
type AgentExtension struct {
// Description A human-readable description of how this agent uses the extension.
Description string `json:"description"`
// Params Optional, extension-specific configuration parameters.
Params *Struct `json:"params,omitempty"`
// Required If true, the client must understand and comply with the extension's requirements.
Required bool `json:"required"`
// URI The unique URI identifying the extension.
URI string `json:"uri"`
}
AgentExtension A declaration of a protocol extension supported by an Agent.
type AgentInterface ¶
type AgentInterface struct {
// ProtocolBinding The protocol binding supported at this URL. This is an open form string, to be
// easily extended for other protocol bindings. The core ones officially
// supported are `JSONRPC`, `GRPC` and `HTTP+JSON`.
ProtocolBinding string `json:"protocolBinding"`
// Tenant Tenant to be set in the request when calling the agent.
Tenant *string `json:"tenant,omitempty"`
// URL The URL where this interface is available. Must be a valid absolute HTTPS URL in production.
// Example: "https://api.example.com/a2a/v1", "https://grpc.example.com/a2a"
URL string `json:"url"`
}
AgentInterface Declares a combination of a target URL and a transport protocol for interacting with the agent.
This allows agents to expose the same functionality over multiple protocol binding mechanisms.
type AgentProvider ¶
type AgentProvider struct {
// Organization The name of the agent provider's organization.
// Example: "Google"
Organization string `json:"organization"`
// URL A URL for the agent provider's website or relevant documentation.
// Example: "https://ai.google.dev"
URL string `json:"url"`
}
AgentProvider Represents the service provider of an agent.
type AgentSkill ¶
type AgentSkill struct {
// Description A detailed description of the skill.
Description string `json:"description"`
// Examples Example prompts or scenarios that this skill can handle.
Examples []string `json:"examples,omitempty"`
// ID A unique identifier for the agent's skill.
ID string `json:"id"`
// InputModes The set of supported input media types for this skill, overriding the agent's defaults.
InputModes []string `json:"inputModes,omitempty"`
// Name A human-readable name for the skill.
Name string `json:"name"`
// OutputModes The set of supported output media types for this skill, overriding the agent's defaults.
OutputModes []string `json:"outputModes,omitempty"`
// Security protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
// Security schemes necessary for this skill.
Security []Security `json:"security,omitempty"`
// Tags A set of keywords describing the skill's capabilities.
Tags []string `json:"tags"`
}
AgentSkill Represents a distinct capability or function that an agent can perform.
type Artifact ¶
type Artifact struct {
// ArtifactID Unique identifier (e.g. UUID) for the artifact. It must be at least unique
// within a task.
ArtifactID string `json:"artifactId"`
// Description A human readable description of the artifact, optional.
Description *string `json:"description,omitempty"`
// Extensions The URIs of extensions that are present or contributed to this Artifact.
Extensions []string `json:"extensions,omitempty"`
// Metadata Optional metadata included with the artifact.
Metadata *Struct `json:"metadata,omitempty"`
// Name A human readable name for the artifact.
Name *string `json:"name,omitempty"`
// Parts The content of the artifact. Must contain at least one part.
Parts []Part `json:"parts"`
}
Artifact Artifacts represent task outputs.
type AuthenticationInfo ¶ added in v0.17.0
type AuthenticationInfo struct {
// Credentials Optional credentials
Credentials *string `json:"credentials,omitempty"`
// Schemes A list of supported authentication schemes (e.g., 'Basic', 'Bearer').
Schemes []string `json:"schemes"`
}
AuthenticationInfo Defines authentication details, used for push notifications.
type AuthorizationCodeOAuthFlow ¶
type AuthorizationCodeOAuthFlow struct {
// AuthorizationURL The authorization URL to be used for this flow.
AuthorizationURL string `json:"authorizationUrl"`
// RefreshURL The URL to be used for obtaining refresh tokens.
RefreshURL *string `json:"refreshUrl,omitempty"`
// Scopes The available scopes for the OAuth2 security scheme.
Scopes map[string]string `json:"scopes"`
// TokenURL The token URL to be used for this flow.
TokenURL string `json:"tokenUrl"`
}
AuthorizationCodeOAuthFlow Defines configuration details for the OAuth 2.0 Authorization Code flow.
type CancelTaskRequest ¶
type CancelTaskRequest struct {
// Name The resource name of the task to cancel.
// Format: tasks/{task_id}
Name string `json:"name"`
// Tenant Optional tenant, provided as a path parameter.
Tenant string `json:"tenant"`
}
CancelTaskRequest Represents a request for the `tasks/cancel` method.
type ClientCredentialsOAuthFlow ¶
type ClientCredentialsOAuthFlow struct {
// RefreshURL The URL to be used for obtaining refresh tokens.
RefreshURL *string `json:"refreshUrl,omitempty"`
// Scopes The available scopes for the OAuth2 security scheme.
Scopes map[string]string `json:"scopes"`
// TokenURL The token URL to be used for this flow.
TokenURL string `json:"tokenUrl"`
}
ClientCredentialsOAuthFlow Defines configuration details for the OAuth 2.0 Client Credentials flow.
type DataPart ¶
type DataPart struct {
// Data A JSON object containing arbitrary data.
Data Struct `json:"data"`
}
DataPart DataPart represents a structured blob.
type DeleteTaskPushNotificationConfigParams ¶
type DeleteTaskPushNotificationConfigParams = DeleteTaskPushNotificationConfigRequest
DeleteTaskPushNotificationConfigParams is an alias for DeleteTaskPushNotificationConfigRequest
type DeleteTaskPushNotificationConfigRequest ¶
type DeleteTaskPushNotificationConfigRequest struct {
// Name The resource name of the config to delete.
// Format: tasks/{task_id}/pushNotificationConfigs/{config_id}
Name string `json:"name"`
// Tenant Optional tenant, provided as a path parameter.
Tenant string `json:"tenant"`
}
DeleteTaskPushNotificationConfigRequest Represents a request for the `tasks/pushNotificationConfig/delete` method.
type FilePart ¶
type FilePart struct {
// FileWithBytes The base64-encoded content of the file.
FileWithBytes *string `json:"fileWithBytes,omitempty"`
// FileWithURI A URL pointing to the file's content.
FileWithURI *string `json:"fileWithUri,omitempty"`
// MediaType The media type of the file (e.g., "application/pdf").
MediaType string `json:"mediaType"`
// Name An optional name for the file (e.g., "document.pdf").
Name string `json:"name"`
}
FilePart 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 GetAuthenticatedExtendedCardParams ¶ added in v0.18.0
type GetAuthenticatedExtendedCardParams = GetExtendedAgentCardRequest
GetAuthenticatedExtendedCardParams is an alias for GetExtendedAgentCardRequest
type GetExtendedAgentCardRequest ¶ added in v0.17.0
type GetExtendedAgentCardRequest struct {
// Tenant Optional tenant, provided as a path parameter.
Tenant string `json:"tenant"`
}
GetExtendedAgentCardRequest defines model for GetExtendedAgentCardRequest.
type GetTaskPushNotificationConfigParams ¶
type GetTaskPushNotificationConfigParams = GetTaskPushNotificationConfigRequest
GetTaskPushNotificationConfigParams is an alias for GetTaskPushNotificationConfigRequest
type GetTaskPushNotificationConfigRequest ¶
type GetTaskPushNotificationConfigRequest struct {
// Name The resource name of the config to retrieve.
// Format: tasks/{task_id}/pushNotificationConfigs/{config_id}
Name string `json:"name"`
// Tenant Optional tenant, provided as a path parameter.
Tenant string `json:"tenant"`
}
GetTaskPushNotificationConfigRequest defines model for GetTaskPushNotificationConfigRequest.
type GetTaskRequest ¶
type GetTaskRequest struct {
// HistoryLength The maximum number of messages to include in the history.
HistoryLength *int `json:"historyLength,omitempty"`
// Name The resource name of the task.
// Format: tasks/{task_id}
Name string `json:"name"`
// Tenant Optional tenant, provided as a path parameter.
Tenant *string `json:"tenant,omitempty"`
}
GetTaskRequest Represents a request for the `tasks/get` method.
type HTTPAuthSecurityScheme ¶
type HTTPAuthSecurityScheme struct {
// BearerFormat A hint to the client to identify how the bearer token is formatted (e.g., "JWT").
// This is primarily for documentation purposes.
BearerFormat *string `json:"bearerFormat,omitempty"`
// Description An optional description for the security scheme.
Description *string `json:"description,omitempty"`
// Scheme The name of the HTTP Authentication scheme to be used in the Authorization header,
// as defined in RFC7235 (e.g., "Bearer").
// This value should be registered in the IANA Authentication Scheme registry.
Scheme string `json:"scheme"`
}
HTTPAuthSecurityScheme Defines a security scheme using HTTP authentication.
type ImplicitOAuthFlow ¶
type ImplicitOAuthFlow struct {
// AuthorizationURL The authorization URL to be used for this flow.
AuthorizationURL string `json:"authorizationUrl"`
// RefreshURL The URL to be used for obtaining refresh tokens.
RefreshURL *string `json:"refreshUrl,omitempty"`
// Scopes The available scopes for the OAuth2 security scheme.
Scopes map[string]string `json:"scopes"`
}
ImplicitOAuthFlow Defines configuration details for the OAuth 2.0 Implicit flow.
type JSONParseError ¶
type JSONParseError struct {
Code int `json:"code"`
Data *any `json:"data,omitempty"`
Message string `json:"message"`
}
An error indicating that the server received invalid JSON.
type JSONRPCError ¶
type JSONRPCError struct {
Code int `json:"code"`
Data *any `json:"data,omitempty"`
Message string `json:"message"`
}
Represents a JSON-RPC 2.0 Error object, included in an error response.
type JSONRPCErrorResponse ¶
type JSONRPCErrorResponse struct {
Error any `json:"error"`
ID any `json:"id"`
JSONRPC string `json:"jsonrpc"`
}
Represents a JSON-RPC 2.0 Error Response object.
type JSONRPCMessage ¶
Defines the base structure for any JSON-RPC 2.0 request, response, or notification.
type JSONRPCRequest ¶
type JSONRPCRequest struct {
ID *any `json:"id,omitempty"`
JSONRPC string `json:"jsonrpc"`
Method string `json:"method"`
Params map[string]any `json:"params,omitempty"`
}
Represents a JSON-RPC 2.0 Request object.
type JSONRPCResponse ¶
type JSONRPCResponse any
A discriminated union representing all possible JSON-RPC 2.0 responses for the A2A specification methods.
type JSONRPCSuccessResponse ¶
type JSONRPCSuccessResponse struct {
ID any `json:"id"`
JSONRPC string `json:"jsonrpc"`
Result any `json:"result"`
}
Represents a successful JSON-RPC 2.0 Response object.
type ListTaskPushNotificationConfigParams ¶
type ListTaskPushNotificationConfigParams = ListTaskPushNotificationConfigRequest
ListTaskPushNotificationConfigParams is an alias for ListTaskPushNotificationConfigRequest
type ListTaskPushNotificationConfigRequest ¶
type ListTaskPushNotificationConfigRequest struct {
// PageSize The maximum number of configurations to return.
PageSize int `json:"pageSize"`
// PageToken A page token received from a previous ListTaskPushNotificationConfigRequest call.
PageToken string `json:"pageToken"`
// Parent The parent task resource.
// Format: tasks/{task_id}
Parent string `json:"parent"`
// Tenant Optional tenant, provided as a path parameter.
Tenant string `json:"tenant"`
}
ListTaskPushNotificationConfigRequest defines model for ListTaskPushNotificationConfigRequest.
type ListTaskPushNotificationConfigResponse ¶
type ListTaskPushNotificationConfigResponse struct {
// Configs The list of push notification configurations.
Configs []TaskPushNotificationConfig `json:"configs,omitempty"`
// NextPageToken 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 `json:"nextPageToken"`
}
ListTaskPushNotificationConfigResponse Represents a successful response for the `tasks/pushNotificationConfig/list`
method.
type ListTasksRequest ¶
type ListTasksRequest struct {
// ContextID Filter tasks by context ID to get tasks from a specific conversation or session.
ContextID string `json:"contextId"`
// HistoryLength The maximum number of messages to include in each task's history.
HistoryLength *int `json:"historyLength,omitempty"`
// IncludeArtifacts Whether to include artifacts in the returned tasks.
// Defaults to false to reduce payload size.
IncludeArtifacts *bool `json:"includeArtifacts,omitempty"`
// LastUpdatedAfter Filter tasks updated after this timestamp (milliseconds since epoch).
// Only tasks with a last updated time greater than or equal to this value will be returned.
LastUpdatedAfter int `json:"lastUpdatedAfter"`
// PageSize Maximum number of tasks to return. Must be between 1 and 100.
// Defaults to 50 if not specified.
PageSize *int `json:"pageSize,omitempty"`
// PageToken Token for pagination. Use the next_page_token from a previous ListTasksResponse.
PageToken string `json:"pageToken"`
// Status Filter tasks by their current status state.
Status TaskState `json:"status"`
// Tenant Optional tenant, provided as a path parameter.
Tenant string `json:"tenant"`
}
ListTasksRequest Parameters for listing tasks with optional filtering criteria.
type ListTasksResponse ¶
type ListTasksResponse struct {
// NextPageToken Token for retrieving the next page. Empty string if no more results.
NextPageToken string `json:"nextPageToken"`
// PageSize The size of page requested.
PageSize int `json:"pageSize"`
// Tasks Array of tasks matching the specified criteria.
Tasks []Task `json:"tasks"`
// TotalSize Total number of tasks available (before pagination).
TotalSize int `json:"totalSize"`
}
ListTasksResponse Result object for tasks/list method containing an array of tasks and pagination information.
type Message ¶
type Message struct {
// ContextID The context id of the message. This is optional and if set, the message
// will be associated with the given context.
ContextID *string `json:"contextId,omitempty"`
// Extensions The URIs of extensions that are present or contributed to this Message.
Extensions []string `json:"extensions,omitempty"`
// MessageID The unique identifier (e.g. UUID) of the message. This is required and
// created by the message creator.
MessageID string `json:"messageId"`
// Metadata protolint:enable REPEATED_FIELD_NAMES_PLURALIZED
// Any optional metadata to provide along with the message.
Metadata *Struct `json:"metadata,omitempty"`
// Parts protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
// Parts is the container of the message content.
Parts []Part `json:"parts"`
// ReferenceTaskIds A list of task IDs that this message references for additional context.
ReferenceTaskIds []string `json:"referenceTaskIds,omitempty"`
// Role Identifies the sender of the message.
Role Role `json:"role"`
// TaskID The task id of the message. This is optional and if set, the message
// will be associated with the given task.
TaskID *string `json:"taskId,omitempty"`
}
Message 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.
func NewAssistantMessage ¶ added in v0.9.4
NewAssistantMessage creates a standardized assistant message
func NewInputRequiredMessage ¶ added in v0.9.4
NewInputRequiredMessage creates an input required message
func NewStreamingStatusMessage ¶ added in v0.9.4
NewStreamingStatusMessage creates a status message for streaming
func NewToolResultMessage ¶ added in v0.9.4
NewToolResultMessage creates a standardized tool result message
func (*Message) UnmarshalJSON ¶ added in v0.14.0
UnmarshalJSON custom unmarshaler for Message that properly handles typed Parts
type MessageSendConfiguration ¶
type MessageSendConfiguration struct {
AcceptedOutputModes []string `json:"acceptedOutputModes,omitempty"`
Blocking *bool `json:"blocking,omitempty"`
HistoryLength *int `json:"historyLength,omitempty"`
PushNotificationConfig *PushNotificationConfig `json:"pushNotificationConfig,omitempty"`
}
Defines configuration options for a `message/send` or `message/stream` request.
type MessageSendParams ¶
type MessageSendParams struct {
Configuration *MessageSendConfiguration `json:"configuration,omitempty"`
Message Message `json:"message"`
Metadata map[string]any `json:"metadata,omitempty"`
}
Defines the parameters for a request to send a message to an agent. This can be used to create a new task, continue an existing one, or restart a task.
type MutualTLSSecurityScheme ¶ added in v0.8.0
type MutualTLSSecurityScheme struct {
// Description An optional description for the security scheme.
Description string `json:"description"`
}
MutualTLSSecurityScheme Defines a security scheme using mTLS authentication.
type OAuth2SecurityScheme ¶
type OAuth2SecurityScheme struct {
// Description An optional description for the security scheme.
Description *string `json:"description,omitempty"`
// Flows An object containing configuration information for the supported OAuth 2.0 flows.
Flows OAuthFlows `json:"flows"`
// Oauth2MetadataURL URL to the oauth2 authorization server metadata
// RFC8414 (https://datatracker.ietf.org/doc/html/rfc8414). TLS is required.
Oauth2MetadataURL *string `json:"oauth2MetadataUrl,omitempty"`
}
OAuth2SecurityScheme Defines a security scheme using OAuth 2.0.
type OAuthFlows ¶
type OAuthFlows struct {
// AuthorizationCode Configuration for the OAuth Authorization Code flow.
AuthorizationCode *AuthorizationCodeOAuthFlow `json:"authorizationCode,omitempty"`
// ClientCredentials Configuration for the OAuth Client Credentials flow.
ClientCredentials *ClientCredentialsOAuthFlow `json:"clientCredentials,omitempty"`
// Implicit Configuration for the OAuth Implicit flow.
Implicit *ImplicitOAuthFlow `json:"implicit,omitempty"`
// Password Configuration for the OAuth Resource Owner Password flow.
Password *PasswordOAuthFlow `json:"password,omitempty"`
}
OAuthFlows Defines the configuration for the supported OAuth 2.0 flows.
type OpenIDConnectSecurityScheme ¶ added in v0.25.0
type OpenIDConnectSecurityScheme struct {
// Description An optional description for the security scheme.
Description *string `json:"description,omitempty"`
// OpenIDConnectURL The OpenID Connect Discovery URL for the OIDC provider's metadata.
// See: https://openid.net/specs/openid-connect-discovery-1_0.html
OpenIDConnectURL string `json:"openIdConnectUrl"`
}
OpenIDConnectSecurityScheme Defines a security scheme using OpenID Connect.
type Part ¶
type Part struct {
// Data The structured data content.
Data *DataPart `json:"data,omitempty"`
// File The file content, represented as either a URI or as base64-encoded bytes.
File *FilePart `json:"file,omitempty"`
// Metadata Optional metadata associated with this part.
Metadata *Struct `json:"metadata,omitempty"`
// Text The string content of the text part.
Text *string `json:"text,omitempty"`
}
Part 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).
func CreateDataPart ¶ added in v0.14.0
CreateDataPart creates a Part with data content
func CreateFilePart ¶ added in v0.14.0
func CreateFilePart(name, mediaType string, fileWithBytes *string, fileWithURI *string, metadata ...map[string]any) Part
CreateFilePart creates a Part with file content
func CreateTextPart ¶ added in v0.14.0
CreateTextPart creates a Part with text content
func NewDataPart ¶ added in v0.9.4
NewDataPart creates a generic data part for a message
func NewTextPart ¶ added in v0.9.4
NewTextPart creates a text part for a message
func NewToolCallPart ¶ added in v0.9.4
NewToolCallPart creates a tool call part for a message
func UnmarshalPart ¶ added in v0.14.0
UnmarshalPart unmarshals a single Part from JSON with proper type handling
func UnmarshalParts ¶ added in v0.14.0
UnmarshalParts is a utility function to unmarshal a slice of Parts with proper type handling
type PasswordOAuthFlow ¶
type PasswordOAuthFlow struct {
// RefreshURL The URL to be used for obtaining refresh tokens.
RefreshURL *string `json:"refreshUrl,omitempty"`
// Scopes The available scopes for the OAuth2 security scheme.
Scopes map[string]string `json:"scopes"`
// TokenURL The token URL to be used for this flow.
TokenURL string `json:"tokenUrl"`
}
PasswordOAuthFlow Defines configuration details for the OAuth 2.0 Resource Owner Password flow.
type PushNotificationConfig ¶
type PushNotificationConfig struct {
// Authentication Information about the authentication to sent with the notification
Authentication *AuthenticationInfo `json:"authentication,omitempty"`
// ID A unique identifier (e.g. UUID) for this push notification.
ID *string `json:"id,omitempty"`
// Token Token unique for this task/session
Token *string `json:"token,omitempty"`
// URL Url to send the notification too
URL string `json:"url"`
}
PushNotificationConfig Configuration for setting up push notifications for task updates.
type Role ¶ added in v0.17.0
type Role string
Role Identifies the sender of the message.
type Security ¶ added in v0.17.0
type Security struct {
Schemes map[string]StringList `json:"schemes,omitempty"`
}
Security defines model for Security.
type SecurityScheme ¶
type SecurityScheme struct {
// APIKeySecurityScheme API key-based authentication.
APIKeySecurityScheme *APIKeySecurityScheme `json:"apiKeySecurityScheme,omitempty"`
// HTTPAuthSecurityScheme HTTP authentication (Basic, Bearer, etc.).
HTTPAuthSecurityScheme *HTTPAuthSecurityScheme `json:"httpAuthSecurityScheme,omitempty"`
// MtlsSecurityScheme Mutual TLS authentication.
MtlsSecurityScheme *MutualTLSSecurityScheme `json:"mtlsSecurityScheme,omitempty"`
// Oauth2SecurityScheme OAuth 2.0 authentication.
Oauth2SecurityScheme *OAuth2SecurityScheme `json:"oauth2SecurityScheme,omitempty"`
// OpenIDConnectSecurityScheme OpenID Connect authentication.
OpenIDConnectSecurityScheme *OpenIDConnectSecurityScheme `json:"openIdConnectSecurityScheme,omitempty"`
}
SecurityScheme Defines a security scheme that can be used to secure an agent's endpoints.
This is a discriminated union type based on the OpenAPI 3.2 Security Scheme Object. See: https://spec.openapis.org/oas/v3.2.0.html#security-scheme-object
type SendMessageConfiguration ¶ added in v0.17.0
type SendMessageConfiguration struct {
// AcceptedOutputModes A list of media types the client is prepared to accept for response parts. Agents SHOULD use this to tailor their output.
AcceptedOutputModes []string `json:"acceptedOutputModes,omitempty"`
// Blocking If true, the operation waits until the task reaches a terminal state before returning. Default is false.
Blocking bool `json:"blocking"`
// HistoryLength The maximum number of messages to include in the history.
HistoryLength *int `json:"historyLength,omitempty"`
// PushNotificationConfig Configuration for the agent to send push notifications for task updates.
PushNotificationConfig *PushNotificationConfig `json:"pushNotificationConfig,omitempty"`
}
SendMessageConfiguration Configuration of a send message request.
type SendMessageRequest ¶
type SendMessageRequest struct {
// Configuration Configuration for the send request.
Configuration *SendMessageConfiguration `json:"configuration,omitempty"`
// Message The message to send to the agent.
Message *Message `json:"message,omitempty"`
// Metadata A flexible key-value map for passing additional context or parameters.
Metadata *Struct `json:"metadata,omitempty"`
// Tenant Optional tenant, provided as a path parameter.
Tenant string `json:"tenant"`
}
SendMessageRequest /////////// Request Messages ///////////
Represents a request for the `message/send` method.
type SendMessageResponse ¶
type SendMessageResponse struct {
// Message 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.
Message *Message `json:"message,omitempty"`
// Task 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.
Task *Task `json:"task,omitempty"`
}
SendMessageResponse ////// Response Messages ///////////
type SetTaskPushNotificationConfigRequest ¶
type SetTaskPushNotificationConfigRequest struct {
// Config The configuration to create.
Config TaskPushNotificationConfig `json:"config"`
// ConfigID The ID for the new config.
ConfigID string `json:"configId"`
// Parent The parent task resource for this config.
// Format: tasks/{task_id}
Parent string `json:"parent"`
// Tenant Optional tenant, provided as a path parameter.
Tenant *string `json:"tenant,omitempty"`
}
SetTaskPushNotificationConfigRequest Represents a request for the `tasks/pushNotificationConfig/set` method.
type StreamResponse ¶ added in v0.17.0
type StreamResponse struct {
// ArtifactUpdate An event indicating a task artifact update.
ArtifactUpdate *TaskArtifactUpdateEvent `json:"artifactUpdate,omitempty"`
// Message A Message object containing a message from the agent.
Message *Message `json:"message,omitempty"`
// StatusUpdate An event indicating a task status update.
StatusUpdate *TaskStatusUpdateEvent `json:"statusUpdate,omitempty"`
// Task A Task object containing the current state of the task.
Task *Task `json:"task,omitempty"`
}
StreamResponse A wrapper object used in streaming operations to encapsulate different types of response data.
type StringList ¶ added in v0.17.0
type StringList struct {
List []string `json:"list,omitempty"`
}
StringList protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
type SubscribeToTaskRequest ¶ added in v0.17.0
type SubscribeToTaskRequest struct {
// Name The resource name of the task to subscribe to.
// Format: tasks/{task_id}
Name string `json:"name"`
// Tenant Optional tenant, provided as a path parameter.
Tenant string `json:"tenant"`
}
SubscribeToTaskRequest defines model for SubscribeToTaskRequest.
type Task ¶
type Task struct {
// Artifacts A set of output artifacts for a Task.
Artifacts []Artifact `json:"artifacts,omitempty"`
// ContextID Unique identifier (e.g. UUID) for the contextual collection of interactions
// (tasks and messages). Created by the A2A server.
ContextID string `json:"contextId"`
// History protolint:disable REPEATED_FIELD_NAMES_PLURALIZED
// The history of interactions from a task.
History []Message `json:"history,omitempty"`
// ID Unique identifier (e.g. UUID) for the task, generated by the server for a
// new task.
ID string `json:"id"`
// Metadata protolint:enable REPEATED_FIELD_NAMES_PLURALIZED
// A key/value object to store custom metadata about a task.
Metadata *Struct `json:"metadata,omitempty"`
// Status The current status of a Task, including state and a message.
Status TaskStatus `json:"status"`
}
Task 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 TaskArtifactUpdateEvent ¶
type TaskArtifactUpdateEvent struct {
// Append If true, the content of this artifact should be appended to a previously
// sent artifact with the same ID.
Append *bool `json:"append,omitempty"`
// Artifact The artifact that was generated or updated.
Artifact Artifact `json:"artifact"`
// ContextID The id of the context that this task belongs to.
ContextID string `json:"contextId"`
// LastChunk If true, this is the final chunk of the artifact.
LastChunk *bool `json:"lastChunk,omitempty"`
// Metadata Optional metadata associated with the artifact update.
Metadata *Struct `json:"metadata,omitempty"`
// TaskID The id of the task for this artifact.
TaskID string `json:"taskId"`
}
TaskArtifactUpdateEvent TaskArtifactUpdateEvent represents a task delta where an artifact has
been generated.
type TaskIdParams ¶
type TaskIdParams struct {
ID string `json:"id"`
Metadata map[string]any `json:"metadata,omitempty"`
}
Parameters for task operations that require only a task ID.
type TaskList ¶
type TaskList = ListTasksResponse
TaskList represents a list of tasks with pagination info (alias for generated type)
type TaskListParams ¶
type TaskListParams struct {
ContextID *string `json:"contextId,omitempty"`
Limit int `json:"limit,omitempty"`
Metadata map[string]any `json:"metadata,omitempty"`
Offset int `json:"offset,omitempty"`
State *TaskState `json:"state,omitempty"`
}
Parameters for listing tasks with optional filtering and pagination.
type TaskPushNotificationConfig ¶
type TaskPushNotificationConfig struct {
// Name The resource name of the config.
// Format: tasks/{task_id}/pushNotificationConfigs/{config_id}
Name string `json:"name"`
// PushNotificationConfig The push notification configuration details.
PushNotificationConfig PushNotificationConfig `json:"pushNotificationConfig"`
}
TaskPushNotificationConfig A container associating a push notification configuration with a specific
task.
type TaskQueryParams ¶
type TaskQueryParams struct {
HistoryLength *int `json:"historyLength,omitempty"`
ID string `json:"id"`
Metadata map[string]any `json:"metadata,omitempty"`
}
Defines parameters for querying a task, with an option to limit history length.
type TaskResubscriptionParams ¶ added in v0.18.0
type TaskResubscriptionParams = SubscribeToTaskRequest
TaskResubscriptionParams is an alias for SubscribeToTaskRequest
type TaskState ¶
type TaskState string
TaskState Filter tasks by their current status state.
const ( TaskStateAuthRequired TaskState = "TASK_STATE_AUTH_REQUIRED" TaskStateCancelled TaskState = "TASK_STATE_CANCELLED" TaskStateCompleted TaskState = "TASK_STATE_COMPLETED" TaskStateFailed TaskState = "TASK_STATE_FAILED" TaskStateInputRequired TaskState = "TASK_STATE_INPUT_REQUIRED" TaskStateRejected TaskState = "TASK_STATE_REJECTED" TaskStateSubmitted TaskState = "TASK_STATE_SUBMITTED" TaskStateUnspecified TaskState = "TASK_STATE_UNSPECIFIED" TaskStateWorking TaskState = "TASK_STATE_WORKING" )
Defines values for TaskState.
type TaskStatus ¶
type TaskStatus struct {
// Message A message associated with the status.
Message *Message `json:"message,omitempty"`
// State Filter tasks by their current status state.
State TaskState `json:"state"`
// Timestamp ISO 8601 Timestamp when the status was recorded.
// Example: "2023-10-27T10:00:00Z"
Timestamp *Timestamp `json:"timestamp,omitempty"`
}
TaskStatus A container for the status of a task
type TaskStatusUpdateEvent ¶
type TaskStatusUpdateEvent struct {
// ContextID The id of the context that the task belongs to
ContextID string `json:"contextId"`
// Final If true, this is the final event in the stream for this interaction.
Final bool `json:"final"`
// Metadata Optional metadata to associate with the task update.
Metadata *Struct `json:"metadata,omitempty"`
// Status The new status of the task.
Status TaskStatus `json:"status"`
// TaskID The id of the task that is changed
TaskID string `json:"taskId"`
}
TaskStatusUpdateEvent An event sent by the agent to notify the client of a change in a task's
status.