github.com/anthropics/anthropic-sdk-go@v1.70.1/betasessionevent.go (about) 1 // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details. 2 3 package anthropic 4 5 import ( 6 "context" 7 "encoding/json" 8 "errors" 9 "fmt" 10 "net/http" 11 "net/url" 12 "slices" 13 "time" 14 15 "github.com/anthropics/anthropic-sdk-go/internal/apijson" 16 "github.com/anthropics/anthropic-sdk-go/internal/apiquery" 17 "github.com/anthropics/anthropic-sdk-go/internal/requestconfig" 18 "github.com/anthropics/anthropic-sdk-go/option" 19 "github.com/anthropics/anthropic-sdk-go/packages/pagination" 20 "github.com/anthropics/anthropic-sdk-go/packages/param" 21 "github.com/anthropics/anthropic-sdk-go/packages/respjson" 22 "github.com/anthropics/anthropic-sdk-go/packages/ssestream" 23 ) 24 25 // BetaSessionEventService contains methods and other services that help with 26 // interacting with the anthropic API. 27 // 28 // Note, unlike clients, this service does not read variables from the environment 29 // automatically. You should not instantiate this service directly, and instead use 30 // the [NewBetaSessionEventService] method instead. 31 type BetaSessionEventService struct { 32 Options []option.RequestOption 33 } 34 35 // NewBetaSessionEventService generates a new service that applies the given 36 // options to each request. These options are applied after the parent client's 37 // options (if there is one), and before any request-specific options. 38 func NewBetaSessionEventService(opts ...option.RequestOption) (r BetaSessionEventService) { 39 r = BetaSessionEventService{} 40 r.Options = opts 41 return 42 } 43 44 // List Events 45 func (r *BetaSessionEventService) List(ctx context.Context, sessionID string, params BetaSessionEventListParams, opts ...option.RequestOption) (res *pagination.PageCursor[BetaManagedAgentsSessionEventUnion], err error) { 46 var raw *http.Response 47 for _, v := range params.Betas { 48 opts = append(opts, option.WithHeaderAdd("anthropic-beta", fmt.Sprintf("%v", v))) 49 } 50 if !param.IsOmitted(params.WorkspaceID) { 51 opts = append(opts, option.WithHeader("anthropic-workspace-id", fmt.Sprintf("%v", params.WorkspaceID.Value))) 52 } 53 opts = slices.Concat(r.Options, opts) 54 opts = append([]option.RequestOption{option.WithHeader("anthropic-beta", "managed-agents-2026-04-01"), option.WithResponseInto(&raw)}, opts...) 55 if sessionID == "" { 56 err = errors.New("missing required session_id parameter") 57 return nil, err 58 } 59 path := fmt.Sprintf("v1/sessions/%s/events?beta=true", sessionID) 60 cfg, err := requestconfig.NewRequestConfig(ctx, http.MethodGet, path, params, &res, opts...) 61 if err != nil { 62 return nil, err 63 } 64 err = cfg.Execute() 65 if err != nil { 66 return nil, err 67 } 68 res.SetPageConfig(cfg, raw) 69 return res, nil 70 } 71 72 // List Events 73 func (r *BetaSessionEventService) ListAutoPaging(ctx context.Context, sessionID string, params BetaSessionEventListParams, opts ...option.RequestOption) *pagination.PageCursorAutoPager[BetaManagedAgentsSessionEventUnion] { 74 return pagination.NewPageCursorAutoPager(r.List(ctx, sessionID, params, opts...)) 75 } 76 77 // Send Events 78 func (r *BetaSessionEventService) Send(ctx context.Context, sessionID string, params BetaSessionEventSendParams, opts ...option.RequestOption) (res *BetaManagedAgentsSendSessionEvents, err error) { 79 for _, v := range params.Betas { 80 opts = append(opts, option.WithHeaderAdd("anthropic-beta", fmt.Sprintf("%v", v))) 81 } 82 if !param.IsOmitted(params.WorkspaceID) { 83 opts = append(opts, option.WithHeader("anthropic-workspace-id", fmt.Sprintf("%v", params.WorkspaceID.Value))) 84 } 85 opts = slices.Concat(r.Options, opts) 86 opts = append([]option.RequestOption{option.WithHeader("anthropic-beta", "managed-agents-2026-04-01")}, opts...) 87 if sessionID == "" { 88 err = errors.New("missing required session_id parameter") 89 return nil, err 90 } 91 path := fmt.Sprintf("v1/sessions/%s/events?beta=true", sessionID) 92 err = requestconfig.ExecuteNewRequest(ctx, http.MethodPost, path, params, &res, opts...) 93 return res, err 94 } 95 96 // Stream Events 97 func (r *BetaSessionEventService) StreamEvents(ctx context.Context, sessionID string, params BetaSessionEventStreamParams, opts ...option.RequestOption) (stream *ssestream.Stream[BetaManagedAgentsStreamSessionEventsUnion]) { 98 var ( 99 raw *http.Response 100 err error 101 ) 102 for _, v := range params.Betas { 103 opts = append(opts, option.WithHeaderAdd("anthropic-beta", fmt.Sprintf("%v", v))) 104 } 105 if !param.IsOmitted(params.WorkspaceID) { 106 opts = append(opts, option.WithHeader("anthropic-workspace-id", fmt.Sprintf("%v", params.WorkspaceID.Value))) 107 } 108 opts = slices.Concat(r.Options, opts) 109 opts = append([]option.RequestOption{option.WithHeader("anthropic-beta", "managed-agents-2026-04-01")}, opts...) 110 if sessionID == "" { 111 err = errors.New("missing required session_id parameter") 112 return ssestream.NewStream[BetaManagedAgentsStreamSessionEventsUnion](nil, err) 113 } 114 path := fmt.Sprintf("v1/sessions/%s/events/stream?beta=true", sessionID) 115 err = requestconfig.ExecuteNewRequest(ctx, http.MethodGet, path, params, &raw, opts...) 116 return ssestream.NewStream[BetaManagedAgentsStreamSessionEventsUnion](ssestream.NewDecoder(raw), err) 117 } 118 119 // Event emitted when the agent calls a custom tool. The session goes idle until 120 // the client sends a `user.custom_tool_result` event with the result. 121 type BetaManagedAgentsAgentCustomToolUseEvent struct { 122 // Unique identifier for this event. 123 ID string `json:"id" api:"required"` 124 // Input parameters for the tool call. 125 Input map[string]any `json:"input" api:"required"` 126 // Name of the custom tool being called. 127 Name string `json:"name" api:"required"` 128 // A timestamp in RFC 3339 format 129 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 130 // Any of "agent.custom_tool_use". 131 Type BetaManagedAgentsAgentCustomToolUseEventType `json:"type" api:"required"` 132 // When set, this event was cross-posted from a subagent's thread to surface its 133 // custom tool use on the primary thread's stream. Empty on the thread's own 134 // events. Echo this on a `user.custom_tool_result` event to route the result back. 135 SessionThreadID string `json:"session_thread_id" api:"nullable"` 136 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 137 JSON struct { 138 ID respjson.Field 139 Input respjson.Field 140 Name respjson.Field 141 ProcessedAt respjson.Field 142 Type respjson.Field 143 SessionThreadID respjson.Field 144 ExtraFields map[string]respjson.Field 145 raw string 146 } `json:"-"` 147 } 148 149 // Returns the unmodified JSON received from the API 150 func (r BetaManagedAgentsAgentCustomToolUseEvent) RawJSON() string { return r.JSON.raw } 151 func (r *BetaManagedAgentsAgentCustomToolUseEvent) UnmarshalJSON(data []byte) error { 152 return apijson.UnmarshalRoot(data, r) 153 } 154 155 type BetaManagedAgentsAgentCustomToolUseEventType string 156 157 const ( 158 BetaManagedAgentsAgentCustomToolUseEventTypeAgentCustomToolUse BetaManagedAgentsAgentCustomToolUseEventType = "agent.custom_tool_use" 159 ) 160 161 // Event representing the result of an MCP tool execution. 162 type BetaManagedAgentsAgentMCPToolResultEvent struct { 163 // Unique identifier for this event. 164 ID string `json:"id" api:"required"` 165 // The id of the `agent.mcp_tool_use` event this result corresponds to. 166 MCPToolUseID string `json:"mcp_tool_use_id" api:"required"` 167 // A timestamp in RFC 3339 format 168 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 169 // Any of "agent.mcp_tool_result". 170 Type BetaManagedAgentsAgentMCPToolResultEventType `json:"type" api:"required"` 171 // The result content returned by the tool. 172 Content []BetaManagedAgentsAgentMCPToolResultEventContentUnion `json:"content"` 173 // Whether the tool execution resulted in an error. 174 IsError bool `json:"is_error" api:"nullable"` 175 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 176 JSON struct { 177 ID respjson.Field 178 MCPToolUseID respjson.Field 179 ProcessedAt respjson.Field 180 Type respjson.Field 181 Content respjson.Field 182 IsError respjson.Field 183 ExtraFields map[string]respjson.Field 184 raw string 185 } `json:"-"` 186 } 187 188 // Returns the unmodified JSON received from the API 189 func (r BetaManagedAgentsAgentMCPToolResultEvent) RawJSON() string { return r.JSON.raw } 190 func (r *BetaManagedAgentsAgentMCPToolResultEvent) UnmarshalJSON(data []byte) error { 191 return apijson.UnmarshalRoot(data, r) 192 } 193 194 type BetaManagedAgentsAgentMCPToolResultEventType string 195 196 const ( 197 BetaManagedAgentsAgentMCPToolResultEventTypeAgentMCPToolResult BetaManagedAgentsAgentMCPToolResultEventType = "agent.mcp_tool_result" 198 ) 199 200 // BetaManagedAgentsAgentMCPToolResultEventContentUnion contains all possible 201 // properties and values from [BetaManagedAgentsTextBlock], 202 // [BetaManagedAgentsImageBlock], [BetaManagedAgentsDocumentBlock], 203 // [BetaManagedAgentsSearchResultBlock]. 204 // 205 // Use the [BetaManagedAgentsAgentMCPToolResultEventContentUnion.AsAny] method to 206 // switch on the variant. 207 // 208 // Use the methods beginning with 'As' to cast the union to one of its variants. 209 type BetaManagedAgentsAgentMCPToolResultEventContentUnion struct { 210 // This field is from variant [BetaManagedAgentsTextBlock]. 211 Text string `json:"text"` 212 // Any of "text", "image", "document", "search_result". 213 Type string `json:"type"` 214 // This field is a union of [BetaManagedAgentsImageBlockSourceUnion], 215 // [BetaManagedAgentsDocumentBlockSourceUnion], [string] 216 Source BetaManagedAgentsAgentMCPToolResultEventContentUnionSource `json:"source"` 217 // This field is from variant [BetaManagedAgentsDocumentBlock]. 218 Context string `json:"context"` 219 Title string `json:"title"` 220 // This field is from variant [BetaManagedAgentsSearchResultBlock]. 221 Citations BetaManagedAgentsSearchResultCitations `json:"citations"` 222 // This field is from variant [BetaManagedAgentsSearchResultBlock]. 223 Content []BetaManagedAgentsSearchResultContent `json:"content"` 224 JSON struct { 225 Text respjson.Field 226 Type respjson.Field 227 Source respjson.Field 228 Context respjson.Field 229 Title respjson.Field 230 Citations respjson.Field 231 Content respjson.Field 232 raw string 233 } `json:"-"` 234 } 235 236 // anyBetaManagedAgentsAgentMCPToolResultEventContent is implemented by each 237 // variant of [BetaManagedAgentsAgentMCPToolResultEventContentUnion] to add type 238 // safety for the return type of 239 // [BetaManagedAgentsAgentMCPToolResultEventContentUnion.AsAny] 240 type anyBetaManagedAgentsAgentMCPToolResultEventContent interface { 241 implBetaManagedAgentsAgentMCPToolResultEventContentUnion() 242 } 243 244 func (BetaManagedAgentsTextBlock) implBetaManagedAgentsAgentMCPToolResultEventContentUnion() {} 245 func (BetaManagedAgentsImageBlock) implBetaManagedAgentsAgentMCPToolResultEventContentUnion() {} 246 func (BetaManagedAgentsDocumentBlock) implBetaManagedAgentsAgentMCPToolResultEventContentUnion() {} 247 func (BetaManagedAgentsSearchResultBlock) implBetaManagedAgentsAgentMCPToolResultEventContentUnion() { 248 } 249 250 // Use the following switch statement to find the correct variant 251 // 252 // switch variant := BetaManagedAgentsAgentMCPToolResultEventContentUnion.AsAny().(type) { 253 // case anthropic.BetaManagedAgentsTextBlock: 254 // case anthropic.BetaManagedAgentsImageBlock: 255 // case anthropic.BetaManagedAgentsDocumentBlock: 256 // case anthropic.BetaManagedAgentsSearchResultBlock: 257 // default: 258 // fmt.Errorf("no variant present") 259 // } 260 func (u BetaManagedAgentsAgentMCPToolResultEventContentUnion) AsAny() anyBetaManagedAgentsAgentMCPToolResultEventContent { 261 switch u.Type { 262 case "text": 263 return u.AsText() 264 case "image": 265 return u.AsImage() 266 case "document": 267 return u.AsDocument() 268 case "search_result": 269 return u.AsSearchResult() 270 } 271 return nil 272 } 273 274 func (u BetaManagedAgentsAgentMCPToolResultEventContentUnion) AsText() (v BetaManagedAgentsTextBlock) { 275 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 276 return 277 } 278 279 func (u BetaManagedAgentsAgentMCPToolResultEventContentUnion) AsImage() (v BetaManagedAgentsImageBlock) { 280 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 281 return 282 } 283 284 func (u BetaManagedAgentsAgentMCPToolResultEventContentUnion) AsDocument() (v BetaManagedAgentsDocumentBlock) { 285 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 286 return 287 } 288 289 func (u BetaManagedAgentsAgentMCPToolResultEventContentUnion) AsSearchResult() (v BetaManagedAgentsSearchResultBlock) { 290 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 291 return 292 } 293 294 // Returns the unmodified JSON received from the API 295 func (u BetaManagedAgentsAgentMCPToolResultEventContentUnion) RawJSON() string { return u.JSON.raw } 296 297 func (r *BetaManagedAgentsAgentMCPToolResultEventContentUnion) UnmarshalJSON(data []byte) error { 298 return apijson.UnmarshalRoot(data, r) 299 } 300 301 // BetaManagedAgentsAgentMCPToolResultEventContentUnionSource is an implicit 302 // subunion of [BetaManagedAgentsAgentMCPToolResultEventContentUnion]. 303 // BetaManagedAgentsAgentMCPToolResultEventContentUnionSource provides convenient 304 // access to the sub-properties of the union. 305 // 306 // For type safety it is recommended to directly use a variant of the 307 // [BetaManagedAgentsAgentMCPToolResultEventContentUnion]. 308 // 309 // If the underlying value is not a json object, one of the following properties 310 // will be valid: OfString] 311 type BetaManagedAgentsAgentMCPToolResultEventContentUnionSource struct { 312 // This field will be present if the value is a [string] instead of an object. 313 OfString string `json:",inline"` 314 Data string `json:"data"` 315 MediaType string `json:"media_type"` 316 Type string `json:"type"` 317 URL string `json:"url"` 318 FileID string `json:"file_id"` 319 JSON struct { 320 OfString respjson.Field 321 Data respjson.Field 322 MediaType respjson.Field 323 Type respjson.Field 324 URL respjson.Field 325 FileID respjson.Field 326 raw string 327 } `json:"-"` 328 } 329 330 func (r *BetaManagedAgentsAgentMCPToolResultEventContentUnionSource) UnmarshalJSON(data []byte) error { 331 return apijson.UnmarshalRoot(data, r) 332 } 333 334 // Event emitted when the agent invokes a tool provided by an MCP server. 335 type BetaManagedAgentsAgentMCPToolUseEvent struct { 336 // Unique identifier for this event. 337 ID string `json:"id" api:"required"` 338 // Input parameters for the tool call. 339 Input map[string]any `json:"input" api:"required"` 340 // Name of the MCP server providing the tool. 341 MCPServerName string `json:"mcp_server_name" api:"required"` 342 // Name of the MCP tool being used. 343 Name string `json:"name" api:"required"` 344 // A timestamp in RFC 3339 format 345 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 346 // Any of "agent.mcp_tool_use". 347 Type BetaManagedAgentsAgentMCPToolUseEventType `json:"type" api:"required"` 348 // AgentEvaluatedPermission enum 349 // 350 // Any of "allow", "ask", "deny". 351 EvaluatedPermission BetaManagedAgentsAgentMCPToolUseEventEvaluatedPermission `json:"evaluated_permission"` 352 // When set, this event was cross-posted from a subagent's thread to surface its 353 // permission request on the primary thread's stream. Empty on the thread's own 354 // events. Echo this on a `user.tool_confirmation` event to route the approval 355 // back. 356 SessionThreadID string `json:"session_thread_id" api:"nullable"` 357 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 358 JSON struct { 359 ID respjson.Field 360 Input respjson.Field 361 MCPServerName respjson.Field 362 Name respjson.Field 363 ProcessedAt respjson.Field 364 Type respjson.Field 365 EvaluatedPermission respjson.Field 366 SessionThreadID respjson.Field 367 ExtraFields map[string]respjson.Field 368 raw string 369 } `json:"-"` 370 } 371 372 // Returns the unmodified JSON received from the API 373 func (r BetaManagedAgentsAgentMCPToolUseEvent) RawJSON() string { return r.JSON.raw } 374 func (r *BetaManagedAgentsAgentMCPToolUseEvent) UnmarshalJSON(data []byte) error { 375 return apijson.UnmarshalRoot(data, r) 376 } 377 378 type BetaManagedAgentsAgentMCPToolUseEventType string 379 380 const ( 381 BetaManagedAgentsAgentMCPToolUseEventTypeAgentMCPToolUse BetaManagedAgentsAgentMCPToolUseEventType = "agent.mcp_tool_use" 382 ) 383 384 // AgentEvaluatedPermission enum 385 type BetaManagedAgentsAgentMCPToolUseEventEvaluatedPermission string 386 387 const ( 388 BetaManagedAgentsAgentMCPToolUseEventEvaluatedPermissionAllow BetaManagedAgentsAgentMCPToolUseEventEvaluatedPermission = "allow" 389 BetaManagedAgentsAgentMCPToolUseEventEvaluatedPermissionAsk BetaManagedAgentsAgentMCPToolUseEventEvaluatedPermission = "ask" 390 BetaManagedAgentsAgentMCPToolUseEventEvaluatedPermissionDeny BetaManagedAgentsAgentMCPToolUseEventEvaluatedPermission = "deny" 391 ) 392 393 // An agent response event in the session conversation. 394 type BetaManagedAgentsAgentMessageEvent struct { 395 // Unique identifier for this event. 396 ID string `json:"id" api:"required"` 397 // Array of text blocks comprising the agent response. 398 Content []BetaManagedAgentsAgentMessageEventContentUnion `json:"content" api:"required"` 399 // A timestamp in RFC 3339 format 400 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 401 // Any of "agent.message". 402 Type BetaManagedAgentsAgentMessageEventType `json:"type" api:"required"` 403 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 404 JSON struct { 405 ID respjson.Field 406 Content respjson.Field 407 ProcessedAt respjson.Field 408 Type respjson.Field 409 ExtraFields map[string]respjson.Field 410 raw string 411 } `json:"-"` 412 } 413 414 // Returns the unmodified JSON received from the API 415 func (r BetaManagedAgentsAgentMessageEvent) RawJSON() string { return r.JSON.raw } 416 func (r *BetaManagedAgentsAgentMessageEvent) UnmarshalJSON(data []byte) error { 417 return apijson.UnmarshalRoot(data, r) 418 } 419 420 // BetaManagedAgentsAgentMessageEventContentUnion contains all possible properties 421 // and values from [BetaManagedAgentsTextBlock], [BetaManagedAgentsRedactedBlock]. 422 // 423 // Use the [BetaManagedAgentsAgentMessageEventContentUnion.AsAny] method to switch 424 // on the variant. 425 // 426 // Use the methods beginning with 'As' to cast the union to one of its variants. 427 type BetaManagedAgentsAgentMessageEventContentUnion struct { 428 // This field is from variant [BetaManagedAgentsTextBlock]. 429 Text string `json:"text"` 430 // Any of "text", "redacted". 431 Type string `json:"type"` 432 JSON struct { 433 Text respjson.Field 434 Type respjson.Field 435 raw string 436 } `json:"-"` 437 } 438 439 // anyBetaManagedAgentsAgentMessageEventContent is implemented by each variant of 440 // [BetaManagedAgentsAgentMessageEventContentUnion] to add type safety for the 441 // return type of [BetaManagedAgentsAgentMessageEventContentUnion.AsAny] 442 type anyBetaManagedAgentsAgentMessageEventContent interface { 443 implBetaManagedAgentsAgentMessageEventContentUnion() 444 } 445 446 func (BetaManagedAgentsTextBlock) implBetaManagedAgentsAgentMessageEventContentUnion() {} 447 func (BetaManagedAgentsRedactedBlock) implBetaManagedAgentsAgentMessageEventContentUnion() {} 448 449 // Use the following switch statement to find the correct variant 450 // 451 // switch variant := BetaManagedAgentsAgentMessageEventContentUnion.AsAny().(type) { 452 // case anthropic.BetaManagedAgentsTextBlock: 453 // case anthropic.BetaManagedAgentsRedactedBlock: 454 // default: 455 // fmt.Errorf("no variant present") 456 // } 457 func (u BetaManagedAgentsAgentMessageEventContentUnion) AsAny() anyBetaManagedAgentsAgentMessageEventContent { 458 switch u.Type { 459 case "text": 460 return u.AsText() 461 case "redacted": 462 return u.AsRedacted() 463 } 464 return nil 465 } 466 467 func (u BetaManagedAgentsAgentMessageEventContentUnion) AsText() (v BetaManagedAgentsTextBlock) { 468 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 469 return 470 } 471 472 func (u BetaManagedAgentsAgentMessageEventContentUnion) AsRedacted() (v BetaManagedAgentsRedactedBlock) { 473 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 474 return 475 } 476 477 // Returns the unmodified JSON received from the API 478 func (u BetaManagedAgentsAgentMessageEventContentUnion) RawJSON() string { return u.JSON.raw } 479 480 func (r *BetaManagedAgentsAgentMessageEventContentUnion) UnmarshalJSON(data []byte) error { 481 return apijson.UnmarshalRoot(data, r) 482 } 483 484 type BetaManagedAgentsAgentMessageEventType string 485 486 const ( 487 BetaManagedAgentsAgentMessageEventTypeAgentMessage BetaManagedAgentsAgentMessageEventType = "agent.message" 488 ) 489 490 // Indicates the agent is making forward progress via extended thinking. A progress 491 // signal, not a content carrier. 492 type BetaManagedAgentsAgentThinkingEvent struct { 493 // Unique identifier for this event. 494 ID string `json:"id" api:"required"` 495 // A timestamp in RFC 3339 format 496 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 497 // Any of "agent.thinking". 498 Type BetaManagedAgentsAgentThinkingEventType `json:"type" api:"required"` 499 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 500 JSON struct { 501 ID respjson.Field 502 ProcessedAt respjson.Field 503 Type respjson.Field 504 ExtraFields map[string]respjson.Field 505 raw string 506 } `json:"-"` 507 } 508 509 // Returns the unmodified JSON received from the API 510 func (r BetaManagedAgentsAgentThinkingEvent) RawJSON() string { return r.JSON.raw } 511 func (r *BetaManagedAgentsAgentThinkingEvent) UnmarshalJSON(data []byte) error { 512 return apijson.UnmarshalRoot(data, r) 513 } 514 515 type BetaManagedAgentsAgentThinkingEventType string 516 517 const ( 518 BetaManagedAgentsAgentThinkingEventTypeAgentThinking BetaManagedAgentsAgentThinkingEventType = "agent.thinking" 519 ) 520 521 // Indicates that context compaction (summarization) occurred during the session. 522 type BetaManagedAgentsAgentThreadContextCompactedEvent struct { 523 // Unique identifier for this event. 524 ID string `json:"id" api:"required"` 525 // A timestamp in RFC 3339 format 526 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 527 // Any of "agent.thread_context_compacted". 528 Type BetaManagedAgentsAgentThreadContextCompactedEventType `json:"type" api:"required"` 529 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 530 JSON struct { 531 ID respjson.Field 532 ProcessedAt respjson.Field 533 Type respjson.Field 534 ExtraFields map[string]respjson.Field 535 raw string 536 } `json:"-"` 537 } 538 539 // Returns the unmodified JSON received from the API 540 func (r BetaManagedAgentsAgentThreadContextCompactedEvent) RawJSON() string { return r.JSON.raw } 541 func (r *BetaManagedAgentsAgentThreadContextCompactedEvent) UnmarshalJSON(data []byte) error { 542 return apijson.UnmarshalRoot(data, r) 543 } 544 545 type BetaManagedAgentsAgentThreadContextCompactedEventType string 546 547 const ( 548 BetaManagedAgentsAgentThreadContextCompactedEventTypeAgentThreadContextCompacted BetaManagedAgentsAgentThreadContextCompactedEventType = "agent.thread_context_compacted" 549 ) 550 551 // Delivery event written to the target thread's input stream when an 552 // agent-to-agent message arrives. 553 type BetaManagedAgentsAgentThreadMessageReceivedEvent struct { 554 // Unique identifier for this event. 555 ID string `json:"id" api:"required"` 556 // Message content blocks. 557 Content []BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion `json:"content" api:"required"` 558 // Public `sthr_` ID of the thread that sent the message. 559 FromSessionThreadID string `json:"from_session_thread_id" api:"required"` 560 // A timestamp in RFC 3339 format 561 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 562 // Any of "agent.thread_message_received". 563 Type BetaManagedAgentsAgentThreadMessageReceivedEventType `json:"type" api:"required"` 564 // Name of the callable agent this message came from. Absent when received from the 565 // primary agent. 566 FromAgentName string `json:"from_agent_name" api:"nullable"` 567 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 568 JSON struct { 569 ID respjson.Field 570 Content respjson.Field 571 FromSessionThreadID respjson.Field 572 ProcessedAt respjson.Field 573 Type respjson.Field 574 FromAgentName respjson.Field 575 ExtraFields map[string]respjson.Field 576 raw string 577 } `json:"-"` 578 } 579 580 // Returns the unmodified JSON received from the API 581 func (r BetaManagedAgentsAgentThreadMessageReceivedEvent) RawJSON() string { return r.JSON.raw } 582 func (r *BetaManagedAgentsAgentThreadMessageReceivedEvent) UnmarshalJSON(data []byte) error { 583 return apijson.UnmarshalRoot(data, r) 584 } 585 586 // BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion contains all 587 // possible properties and values from [BetaManagedAgentsTextBlock], 588 // [BetaManagedAgentsImageBlock], [BetaManagedAgentsDocumentBlock], 589 // [BetaManagedAgentsRedactedBlock]. 590 // 591 // Use the [BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion.AsAny] 592 // method to switch on the variant. 593 // 594 // Use the methods beginning with 'As' to cast the union to one of its variants. 595 type BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion struct { 596 // This field is from variant [BetaManagedAgentsTextBlock]. 597 Text string `json:"text"` 598 // Any of "text", "image", "document", "redacted". 599 Type string `json:"type"` 600 // This field is a union of [BetaManagedAgentsImageBlockSourceUnion], 601 // [BetaManagedAgentsDocumentBlockSourceUnion] 602 Source BetaManagedAgentsAgentThreadMessageReceivedEventContentUnionSource `json:"source"` 603 // This field is from variant [BetaManagedAgentsDocumentBlock]. 604 Context string `json:"context"` 605 // This field is from variant [BetaManagedAgentsDocumentBlock]. 606 Title string `json:"title"` 607 JSON struct { 608 Text respjson.Field 609 Type respjson.Field 610 Source respjson.Field 611 Context respjson.Field 612 Title respjson.Field 613 raw string 614 } `json:"-"` 615 } 616 617 // anyBetaManagedAgentsAgentThreadMessageReceivedEventContent is implemented by 618 // each variant of [BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion] 619 // to add type safety for the return type of 620 // [BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion.AsAny] 621 type anyBetaManagedAgentsAgentThreadMessageReceivedEventContent interface { 622 implBetaManagedAgentsAgentThreadMessageReceivedEventContentUnion() 623 } 624 625 func (BetaManagedAgentsTextBlock) implBetaManagedAgentsAgentThreadMessageReceivedEventContentUnion() { 626 } 627 func (BetaManagedAgentsImageBlock) implBetaManagedAgentsAgentThreadMessageReceivedEventContentUnion() { 628 } 629 func (BetaManagedAgentsDocumentBlock) implBetaManagedAgentsAgentThreadMessageReceivedEventContentUnion() { 630 } 631 func (BetaManagedAgentsRedactedBlock) implBetaManagedAgentsAgentThreadMessageReceivedEventContentUnion() { 632 } 633 634 // Use the following switch statement to find the correct variant 635 // 636 // switch variant := BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion.AsAny().(type) { 637 // case anthropic.BetaManagedAgentsTextBlock: 638 // case anthropic.BetaManagedAgentsImageBlock: 639 // case anthropic.BetaManagedAgentsDocumentBlock: 640 // case anthropic.BetaManagedAgentsRedactedBlock: 641 // default: 642 // fmt.Errorf("no variant present") 643 // } 644 func (u BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion) AsAny() anyBetaManagedAgentsAgentThreadMessageReceivedEventContent { 645 switch u.Type { 646 case "text": 647 return u.AsText() 648 case "image": 649 return u.AsImage() 650 case "document": 651 return u.AsDocument() 652 case "redacted": 653 return u.AsRedacted() 654 } 655 return nil 656 } 657 658 func (u BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion) AsText() (v BetaManagedAgentsTextBlock) { 659 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 660 return 661 } 662 663 func (u BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion) AsImage() (v BetaManagedAgentsImageBlock) { 664 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 665 return 666 } 667 668 func (u BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion) AsDocument() (v BetaManagedAgentsDocumentBlock) { 669 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 670 return 671 } 672 673 func (u BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion) AsRedacted() (v BetaManagedAgentsRedactedBlock) { 674 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 675 return 676 } 677 678 // Returns the unmodified JSON received from the API 679 func (u BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion) RawJSON() string { 680 return u.JSON.raw 681 } 682 683 func (r *BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion) UnmarshalJSON(data []byte) error { 684 return apijson.UnmarshalRoot(data, r) 685 } 686 687 // BetaManagedAgentsAgentThreadMessageReceivedEventContentUnionSource is an 688 // implicit subunion of 689 // [BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion]. 690 // BetaManagedAgentsAgentThreadMessageReceivedEventContentUnionSource provides 691 // convenient access to the sub-properties of the union. 692 // 693 // For type safety it is recommended to directly use a variant of the 694 // [BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion]. 695 type BetaManagedAgentsAgentThreadMessageReceivedEventContentUnionSource struct { 696 Data string `json:"data"` 697 MediaType string `json:"media_type"` 698 Type string `json:"type"` 699 URL string `json:"url"` 700 FileID string `json:"file_id"` 701 JSON struct { 702 Data respjson.Field 703 MediaType respjson.Field 704 Type respjson.Field 705 URL respjson.Field 706 FileID respjson.Field 707 raw string 708 } `json:"-"` 709 } 710 711 func (r *BetaManagedAgentsAgentThreadMessageReceivedEventContentUnionSource) UnmarshalJSON(data []byte) error { 712 return apijson.UnmarshalRoot(data, r) 713 } 714 715 type BetaManagedAgentsAgentThreadMessageReceivedEventType string 716 717 const ( 718 BetaManagedAgentsAgentThreadMessageReceivedEventTypeAgentThreadMessageReceived BetaManagedAgentsAgentThreadMessageReceivedEventType = "agent.thread_message_received" 719 ) 720 721 // Observability event emitted to the sender's output stream when an agent-to-agent 722 // message is sent. 723 type BetaManagedAgentsAgentThreadMessageSentEvent struct { 724 // Unique identifier for this event. 725 ID string `json:"id" api:"required"` 726 // Message content blocks. 727 Content []BetaManagedAgentsAgentThreadMessageSentEventContentUnion `json:"content" api:"required"` 728 // A timestamp in RFC 3339 format 729 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 730 // Public `sthr_` ID of the thread the message was sent to. 731 ToSessionThreadID string `json:"to_session_thread_id" api:"required"` 732 // Any of "agent.thread_message_sent". 733 Type BetaManagedAgentsAgentThreadMessageSentEventType `json:"type" api:"required"` 734 // Name of the callable agent this message was sent to. Absent when sent to the 735 // primary agent. 736 ToAgentName string `json:"to_agent_name" api:"nullable"` 737 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 738 JSON struct { 739 ID respjson.Field 740 Content respjson.Field 741 ProcessedAt respjson.Field 742 ToSessionThreadID respjson.Field 743 Type respjson.Field 744 ToAgentName respjson.Field 745 ExtraFields map[string]respjson.Field 746 raw string 747 } `json:"-"` 748 } 749 750 // Returns the unmodified JSON received from the API 751 func (r BetaManagedAgentsAgentThreadMessageSentEvent) RawJSON() string { return r.JSON.raw } 752 func (r *BetaManagedAgentsAgentThreadMessageSentEvent) UnmarshalJSON(data []byte) error { 753 return apijson.UnmarshalRoot(data, r) 754 } 755 756 // BetaManagedAgentsAgentThreadMessageSentEventContentUnion contains all possible 757 // properties and values from [BetaManagedAgentsTextBlock], 758 // [BetaManagedAgentsImageBlock], [BetaManagedAgentsDocumentBlock], 759 // [BetaManagedAgentsRedactedBlock]. 760 // 761 // Use the [BetaManagedAgentsAgentThreadMessageSentEventContentUnion.AsAny] method 762 // to switch on the variant. 763 // 764 // Use the methods beginning with 'As' to cast the union to one of its variants. 765 type BetaManagedAgentsAgentThreadMessageSentEventContentUnion struct { 766 // This field is from variant [BetaManagedAgentsTextBlock]. 767 Text string `json:"text"` 768 // Any of "text", "image", "document", "redacted". 769 Type string `json:"type"` 770 // This field is a union of [BetaManagedAgentsImageBlockSourceUnion], 771 // [BetaManagedAgentsDocumentBlockSourceUnion] 772 Source BetaManagedAgentsAgentThreadMessageSentEventContentUnionSource `json:"source"` 773 // This field is from variant [BetaManagedAgentsDocumentBlock]. 774 Context string `json:"context"` 775 // This field is from variant [BetaManagedAgentsDocumentBlock]. 776 Title string `json:"title"` 777 JSON struct { 778 Text respjson.Field 779 Type respjson.Field 780 Source respjson.Field 781 Context respjson.Field 782 Title respjson.Field 783 raw string 784 } `json:"-"` 785 } 786 787 // anyBetaManagedAgentsAgentThreadMessageSentEventContent is implemented by each 788 // variant of [BetaManagedAgentsAgentThreadMessageSentEventContentUnion] to add 789 // type safety for the return type of 790 // [BetaManagedAgentsAgentThreadMessageSentEventContentUnion.AsAny] 791 type anyBetaManagedAgentsAgentThreadMessageSentEventContent interface { 792 implBetaManagedAgentsAgentThreadMessageSentEventContentUnion() 793 } 794 795 func (BetaManagedAgentsTextBlock) implBetaManagedAgentsAgentThreadMessageSentEventContentUnion() {} 796 func (BetaManagedAgentsImageBlock) implBetaManagedAgentsAgentThreadMessageSentEventContentUnion() {} 797 func (BetaManagedAgentsDocumentBlock) implBetaManagedAgentsAgentThreadMessageSentEventContentUnion() { 798 } 799 func (BetaManagedAgentsRedactedBlock) implBetaManagedAgentsAgentThreadMessageSentEventContentUnion() { 800 } 801 802 // Use the following switch statement to find the correct variant 803 // 804 // switch variant := BetaManagedAgentsAgentThreadMessageSentEventContentUnion.AsAny().(type) { 805 // case anthropic.BetaManagedAgentsTextBlock: 806 // case anthropic.BetaManagedAgentsImageBlock: 807 // case anthropic.BetaManagedAgentsDocumentBlock: 808 // case anthropic.BetaManagedAgentsRedactedBlock: 809 // default: 810 // fmt.Errorf("no variant present") 811 // } 812 func (u BetaManagedAgentsAgentThreadMessageSentEventContentUnion) AsAny() anyBetaManagedAgentsAgentThreadMessageSentEventContent { 813 switch u.Type { 814 case "text": 815 return u.AsText() 816 case "image": 817 return u.AsImage() 818 case "document": 819 return u.AsDocument() 820 case "redacted": 821 return u.AsRedacted() 822 } 823 return nil 824 } 825 826 func (u BetaManagedAgentsAgentThreadMessageSentEventContentUnion) AsText() (v BetaManagedAgentsTextBlock) { 827 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 828 return 829 } 830 831 func (u BetaManagedAgentsAgentThreadMessageSentEventContentUnion) AsImage() (v BetaManagedAgentsImageBlock) { 832 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 833 return 834 } 835 836 func (u BetaManagedAgentsAgentThreadMessageSentEventContentUnion) AsDocument() (v BetaManagedAgentsDocumentBlock) { 837 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 838 return 839 } 840 841 func (u BetaManagedAgentsAgentThreadMessageSentEventContentUnion) AsRedacted() (v BetaManagedAgentsRedactedBlock) { 842 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 843 return 844 } 845 846 // Returns the unmodified JSON received from the API 847 func (u BetaManagedAgentsAgentThreadMessageSentEventContentUnion) RawJSON() string { return u.JSON.raw } 848 849 func (r *BetaManagedAgentsAgentThreadMessageSentEventContentUnion) UnmarshalJSON(data []byte) error { 850 return apijson.UnmarshalRoot(data, r) 851 } 852 853 // BetaManagedAgentsAgentThreadMessageSentEventContentUnionSource is an implicit 854 // subunion of [BetaManagedAgentsAgentThreadMessageSentEventContentUnion]. 855 // BetaManagedAgentsAgentThreadMessageSentEventContentUnionSource provides 856 // convenient access to the sub-properties of the union. 857 // 858 // For type safety it is recommended to directly use a variant of the 859 // [BetaManagedAgentsAgentThreadMessageSentEventContentUnion]. 860 type BetaManagedAgentsAgentThreadMessageSentEventContentUnionSource struct { 861 Data string `json:"data"` 862 MediaType string `json:"media_type"` 863 Type string `json:"type"` 864 URL string `json:"url"` 865 FileID string `json:"file_id"` 866 JSON struct { 867 Data respjson.Field 868 MediaType respjson.Field 869 Type respjson.Field 870 URL respjson.Field 871 FileID respjson.Field 872 raw string 873 } `json:"-"` 874 } 875 876 func (r *BetaManagedAgentsAgentThreadMessageSentEventContentUnionSource) UnmarshalJSON(data []byte) error { 877 return apijson.UnmarshalRoot(data, r) 878 } 879 880 type BetaManagedAgentsAgentThreadMessageSentEventType string 881 882 const ( 883 BetaManagedAgentsAgentThreadMessageSentEventTypeAgentThreadMessageSent BetaManagedAgentsAgentThreadMessageSentEventType = "agent.thread_message_sent" 884 ) 885 886 // Event representing the result of an agent tool execution. 887 type BetaManagedAgentsAgentToolResultEvent struct { 888 // Unique identifier for this event. 889 ID string `json:"id" api:"required"` 890 // A timestamp in RFC 3339 format 891 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 892 // The id of the `agent.tool_use` event this result corresponds to. 893 ToolUseID string `json:"tool_use_id" api:"required"` 894 // Any of "agent.tool_result". 895 Type BetaManagedAgentsAgentToolResultEventType `json:"type" api:"required"` 896 // The result content returned by the tool. 897 Content []BetaManagedAgentsAgentToolResultEventContentUnion `json:"content"` 898 // Whether the tool execution resulted in an error. 899 IsError bool `json:"is_error" api:"nullable"` 900 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 901 JSON struct { 902 ID respjson.Field 903 ProcessedAt respjson.Field 904 ToolUseID respjson.Field 905 Type respjson.Field 906 Content respjson.Field 907 IsError respjson.Field 908 ExtraFields map[string]respjson.Field 909 raw string 910 } `json:"-"` 911 } 912 913 // Returns the unmodified JSON received from the API 914 func (r BetaManagedAgentsAgentToolResultEvent) RawJSON() string { return r.JSON.raw } 915 func (r *BetaManagedAgentsAgentToolResultEvent) UnmarshalJSON(data []byte) error { 916 return apijson.UnmarshalRoot(data, r) 917 } 918 919 type BetaManagedAgentsAgentToolResultEventType string 920 921 const ( 922 BetaManagedAgentsAgentToolResultEventTypeAgentToolResult BetaManagedAgentsAgentToolResultEventType = "agent.tool_result" 923 ) 924 925 // BetaManagedAgentsAgentToolResultEventContentUnion contains all possible 926 // properties and values from [BetaManagedAgentsTextBlock], 927 // [BetaManagedAgentsImageBlock], [BetaManagedAgentsDocumentBlock], 928 // [BetaManagedAgentsSearchResultBlock]. 929 // 930 // Use the [BetaManagedAgentsAgentToolResultEventContentUnion.AsAny] method to 931 // switch on the variant. 932 // 933 // Use the methods beginning with 'As' to cast the union to one of its variants. 934 type BetaManagedAgentsAgentToolResultEventContentUnion struct { 935 // This field is from variant [BetaManagedAgentsTextBlock]. 936 Text string `json:"text"` 937 // Any of "text", "image", "document", "search_result". 938 Type string `json:"type"` 939 // This field is a union of [BetaManagedAgentsImageBlockSourceUnion], 940 // [BetaManagedAgentsDocumentBlockSourceUnion], [string] 941 Source BetaManagedAgentsAgentToolResultEventContentUnionSource `json:"source"` 942 // This field is from variant [BetaManagedAgentsDocumentBlock]. 943 Context string `json:"context"` 944 Title string `json:"title"` 945 // This field is from variant [BetaManagedAgentsSearchResultBlock]. 946 Citations BetaManagedAgentsSearchResultCitations `json:"citations"` 947 // This field is from variant [BetaManagedAgentsSearchResultBlock]. 948 Content []BetaManagedAgentsSearchResultContent `json:"content"` 949 JSON struct { 950 Text respjson.Field 951 Type respjson.Field 952 Source respjson.Field 953 Context respjson.Field 954 Title respjson.Field 955 Citations respjson.Field 956 Content respjson.Field 957 raw string 958 } `json:"-"` 959 } 960 961 // anyBetaManagedAgentsAgentToolResultEventContent is implemented by each variant 962 // of [BetaManagedAgentsAgentToolResultEventContentUnion] to add type safety for 963 // the return type of [BetaManagedAgentsAgentToolResultEventContentUnion.AsAny] 964 type anyBetaManagedAgentsAgentToolResultEventContent interface { 965 implBetaManagedAgentsAgentToolResultEventContentUnion() 966 } 967 968 func (BetaManagedAgentsTextBlock) implBetaManagedAgentsAgentToolResultEventContentUnion() {} 969 func (BetaManagedAgentsImageBlock) implBetaManagedAgentsAgentToolResultEventContentUnion() {} 970 func (BetaManagedAgentsDocumentBlock) implBetaManagedAgentsAgentToolResultEventContentUnion() {} 971 func (BetaManagedAgentsSearchResultBlock) implBetaManagedAgentsAgentToolResultEventContentUnion() {} 972 973 // Use the following switch statement to find the correct variant 974 // 975 // switch variant := BetaManagedAgentsAgentToolResultEventContentUnion.AsAny().(type) { 976 // case anthropic.BetaManagedAgentsTextBlock: 977 // case anthropic.BetaManagedAgentsImageBlock: 978 // case anthropic.BetaManagedAgentsDocumentBlock: 979 // case anthropic.BetaManagedAgentsSearchResultBlock: 980 // default: 981 // fmt.Errorf("no variant present") 982 // } 983 func (u BetaManagedAgentsAgentToolResultEventContentUnion) AsAny() anyBetaManagedAgentsAgentToolResultEventContent { 984 switch u.Type { 985 case "text": 986 return u.AsText() 987 case "image": 988 return u.AsImage() 989 case "document": 990 return u.AsDocument() 991 case "search_result": 992 return u.AsSearchResult() 993 } 994 return nil 995 } 996 997 func (u BetaManagedAgentsAgentToolResultEventContentUnion) AsText() (v BetaManagedAgentsTextBlock) { 998 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 999 return 1000 } 1001 1002 func (u BetaManagedAgentsAgentToolResultEventContentUnion) AsImage() (v BetaManagedAgentsImageBlock) { 1003 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 1004 return 1005 } 1006 1007 func (u BetaManagedAgentsAgentToolResultEventContentUnion) AsDocument() (v BetaManagedAgentsDocumentBlock) { 1008 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 1009 return 1010 } 1011 1012 func (u BetaManagedAgentsAgentToolResultEventContentUnion) AsSearchResult() (v BetaManagedAgentsSearchResultBlock) { 1013 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 1014 return 1015 } 1016 1017 // Returns the unmodified JSON received from the API 1018 func (u BetaManagedAgentsAgentToolResultEventContentUnion) RawJSON() string { return u.JSON.raw } 1019 1020 func (r *BetaManagedAgentsAgentToolResultEventContentUnion) UnmarshalJSON(data []byte) error { 1021 return apijson.UnmarshalRoot(data, r) 1022 } 1023 1024 // BetaManagedAgentsAgentToolResultEventContentUnionSource is an implicit subunion 1025 // of [BetaManagedAgentsAgentToolResultEventContentUnion]. 1026 // BetaManagedAgentsAgentToolResultEventContentUnionSource provides convenient 1027 // access to the sub-properties of the union. 1028 // 1029 // For type safety it is recommended to directly use a variant of the 1030 // [BetaManagedAgentsAgentToolResultEventContentUnion]. 1031 // 1032 // If the underlying value is not a json object, one of the following properties 1033 // will be valid: OfString] 1034 type BetaManagedAgentsAgentToolResultEventContentUnionSource struct { 1035 // This field will be present if the value is a [string] instead of an object. 1036 OfString string `json:",inline"` 1037 Data string `json:"data"` 1038 MediaType string `json:"media_type"` 1039 Type string `json:"type"` 1040 URL string `json:"url"` 1041 FileID string `json:"file_id"` 1042 JSON struct { 1043 OfString respjson.Field 1044 Data respjson.Field 1045 MediaType respjson.Field 1046 Type respjson.Field 1047 URL respjson.Field 1048 FileID respjson.Field 1049 raw string 1050 } `json:"-"` 1051 } 1052 1053 func (r *BetaManagedAgentsAgentToolResultEventContentUnionSource) UnmarshalJSON(data []byte) error { 1054 return apijson.UnmarshalRoot(data, r) 1055 } 1056 1057 // Event emitted when the agent invokes a built-in agent tool. 1058 type BetaManagedAgentsAgentToolUseEvent struct { 1059 // Unique identifier for this event. 1060 ID string `json:"id" api:"required"` 1061 // Input parameters for the tool call. 1062 Input map[string]any `json:"input" api:"required"` 1063 // Name of the agent tool being used. 1064 Name string `json:"name" api:"required"` 1065 // A timestamp in RFC 3339 format 1066 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 1067 // Any of "agent.tool_use". 1068 Type BetaManagedAgentsAgentToolUseEventType `json:"type" api:"required"` 1069 // AgentEvaluatedPermission enum 1070 // 1071 // Any of "allow", "ask", "deny". 1072 EvaluatedPermission BetaManagedAgentsAgentToolUseEventEvaluatedPermission `json:"evaluated_permission"` 1073 // When set, this event was cross-posted from a subagent's thread to surface its 1074 // permission request on the primary thread's stream. Empty on the thread's own 1075 // events. Echo this on a `user.tool_confirmation` event to route the approval 1076 // back. 1077 SessionThreadID string `json:"session_thread_id" api:"nullable"` 1078 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 1079 JSON struct { 1080 ID respjson.Field 1081 Input respjson.Field 1082 Name respjson.Field 1083 ProcessedAt respjson.Field 1084 Type respjson.Field 1085 EvaluatedPermission respjson.Field 1086 SessionThreadID respjson.Field 1087 ExtraFields map[string]respjson.Field 1088 raw string 1089 } `json:"-"` 1090 } 1091 1092 // Returns the unmodified JSON received from the API 1093 func (r BetaManagedAgentsAgentToolUseEvent) RawJSON() string { return r.JSON.raw } 1094 func (r *BetaManagedAgentsAgentToolUseEvent) UnmarshalJSON(data []byte) error { 1095 return apijson.UnmarshalRoot(data, r) 1096 } 1097 1098 type BetaManagedAgentsAgentToolUseEventType string 1099 1100 const ( 1101 BetaManagedAgentsAgentToolUseEventTypeAgentToolUse BetaManagedAgentsAgentToolUseEventType = "agent.tool_use" 1102 ) 1103 1104 // AgentEvaluatedPermission enum 1105 type BetaManagedAgentsAgentToolUseEventEvaluatedPermission string 1106 1107 const ( 1108 BetaManagedAgentsAgentToolUseEventEvaluatedPermissionAllow BetaManagedAgentsAgentToolUseEventEvaluatedPermission = "allow" 1109 BetaManagedAgentsAgentToolUseEventEvaluatedPermissionAsk BetaManagedAgentsAgentToolUseEventEvaluatedPermission = "ask" 1110 BetaManagedAgentsAgentToolUseEventEvaluatedPermissionDeny BetaManagedAgentsAgentToolUseEventEvaluatedPermission = "deny" 1111 ) 1112 1113 // Base64-encoded document data. 1114 type BetaManagedAgentsBase64DocumentSource struct { 1115 // Base64-encoded document data. 1116 Data string `json:"data" api:"required"` 1117 // MIME type of the document (e.g., "application/pdf"). 1118 MediaType string `json:"media_type" api:"required"` 1119 // Any of "base64". 1120 Type BetaManagedAgentsBase64DocumentSourceType `json:"type" api:"required"` 1121 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 1122 JSON struct { 1123 Data respjson.Field 1124 MediaType respjson.Field 1125 Type respjson.Field 1126 ExtraFields map[string]respjson.Field 1127 raw string 1128 } `json:"-"` 1129 } 1130 1131 // Returns the unmodified JSON received from the API 1132 func (r BetaManagedAgentsBase64DocumentSource) RawJSON() string { return r.JSON.raw } 1133 func (r *BetaManagedAgentsBase64DocumentSource) UnmarshalJSON(data []byte) error { 1134 return apijson.UnmarshalRoot(data, r) 1135 } 1136 1137 // ToParam converts this BetaManagedAgentsBase64DocumentSource to a 1138 // BetaManagedAgentsBase64DocumentSourceParam. 1139 // 1140 // Warning: the fields of the param type will not be present. ToParam should only 1141 // be used at the last possible moment before sending a request. Test for this with 1142 // BetaManagedAgentsBase64DocumentSourceParam.Overrides() 1143 func (r BetaManagedAgentsBase64DocumentSource) ToParam() BetaManagedAgentsBase64DocumentSourceParam { 1144 return param.Override[BetaManagedAgentsBase64DocumentSourceParam](json.RawMessage(r.RawJSON())) 1145 } 1146 1147 type BetaManagedAgentsBase64DocumentSourceType string 1148 1149 const ( 1150 BetaManagedAgentsBase64DocumentSourceTypeBase64 BetaManagedAgentsBase64DocumentSourceType = "base64" 1151 ) 1152 1153 // Base64-encoded document data. 1154 // 1155 // The properties Data, MediaType, Type are required. 1156 type BetaManagedAgentsBase64DocumentSourceParam struct { 1157 // Base64-encoded document data. 1158 Data string `json:"data" api:"required"` 1159 // MIME type of the document (e.g., "application/pdf"). 1160 MediaType string `json:"media_type" api:"required"` 1161 // Any of "base64". 1162 Type BetaManagedAgentsBase64DocumentSourceType `json:"type,omitzero" api:"required"` 1163 paramObj 1164 } 1165 1166 func (r BetaManagedAgentsBase64DocumentSourceParam) MarshalJSON() (data []byte, err error) { 1167 type shadow BetaManagedAgentsBase64DocumentSourceParam 1168 return param.MarshalObject(r, (*shadow)(&r)) 1169 } 1170 func (r *BetaManagedAgentsBase64DocumentSourceParam) UnmarshalJSON(data []byte) error { 1171 return apijson.UnmarshalRoot(data, r) 1172 } 1173 1174 // Base64-encoded image data. 1175 type BetaManagedAgentsBase64ImageSource struct { 1176 // Base64-encoded image data. 1177 Data string `json:"data" api:"required"` 1178 // MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", 1179 // "image/webp"). 1180 MediaType string `json:"media_type" api:"required"` 1181 // Any of "base64". 1182 Type BetaManagedAgentsBase64ImageSourceType `json:"type" api:"required"` 1183 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 1184 JSON struct { 1185 Data respjson.Field 1186 MediaType respjson.Field 1187 Type respjson.Field 1188 ExtraFields map[string]respjson.Field 1189 raw string 1190 } `json:"-"` 1191 } 1192 1193 // Returns the unmodified JSON received from the API 1194 func (r BetaManagedAgentsBase64ImageSource) RawJSON() string { return r.JSON.raw } 1195 func (r *BetaManagedAgentsBase64ImageSource) UnmarshalJSON(data []byte) error { 1196 return apijson.UnmarshalRoot(data, r) 1197 } 1198 1199 // ToParam converts this BetaManagedAgentsBase64ImageSource to a 1200 // BetaManagedAgentsBase64ImageSourceParam. 1201 // 1202 // Warning: the fields of the param type will not be present. ToParam should only 1203 // be used at the last possible moment before sending a request. Test for this with 1204 // BetaManagedAgentsBase64ImageSourceParam.Overrides() 1205 func (r BetaManagedAgentsBase64ImageSource) ToParam() BetaManagedAgentsBase64ImageSourceParam { 1206 return param.Override[BetaManagedAgentsBase64ImageSourceParam](json.RawMessage(r.RawJSON())) 1207 } 1208 1209 type BetaManagedAgentsBase64ImageSourceType string 1210 1211 const ( 1212 BetaManagedAgentsBase64ImageSourceTypeBase64 BetaManagedAgentsBase64ImageSourceType = "base64" 1213 ) 1214 1215 // Base64-encoded image data. 1216 // 1217 // The properties Data, MediaType, Type are required. 1218 type BetaManagedAgentsBase64ImageSourceParam struct { 1219 // Base64-encoded image data. 1220 Data string `json:"data" api:"required"` 1221 // MIME type of the image (e.g., "image/png", "image/jpeg", "image/gif", 1222 // "image/webp"). 1223 MediaType string `json:"media_type" api:"required"` 1224 // Any of "base64". 1225 Type BetaManagedAgentsBase64ImageSourceType `json:"type,omitzero" api:"required"` 1226 paramObj 1227 } 1228 1229 func (r BetaManagedAgentsBase64ImageSourceParam) MarshalJSON() (data []byte, err error) { 1230 type shadow BetaManagedAgentsBase64ImageSourceParam 1231 return param.MarshalObject(r, (*shadow)(&r)) 1232 } 1233 func (r *BetaManagedAgentsBase64ImageSourceParam) UnmarshalJSON(data []byte) error { 1234 return apijson.UnmarshalRoot(data, r) 1235 } 1236 1237 // The caller's organization or workspace cannot make model requests — out of 1238 // credits or spend limit reached. Retrying with the same credentials will not 1239 // succeed; the caller must resolve the billing state. 1240 type BetaManagedAgentsBillingError struct { 1241 // Human-readable error description. 1242 Message string `json:"message" api:"required"` 1243 // What the client should do next in response to this error. 1244 RetryStatus BetaManagedAgentsBillingErrorRetryStatusUnion `json:"retry_status" api:"required"` 1245 // Any of "billing_error". 1246 Type BetaManagedAgentsBillingErrorType `json:"type" api:"required"` 1247 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 1248 JSON struct { 1249 Message respjson.Field 1250 RetryStatus respjson.Field 1251 Type respjson.Field 1252 ExtraFields map[string]respjson.Field 1253 raw string 1254 } `json:"-"` 1255 } 1256 1257 // Returns the unmodified JSON received from the API 1258 func (r BetaManagedAgentsBillingError) RawJSON() string { return r.JSON.raw } 1259 func (r *BetaManagedAgentsBillingError) UnmarshalJSON(data []byte) error { 1260 return apijson.UnmarshalRoot(data, r) 1261 } 1262 1263 // BetaManagedAgentsBillingErrorRetryStatusUnion contains all possible properties 1264 // and values from [BetaManagedAgentsRetryStatusRetrying], 1265 // [BetaManagedAgentsRetryStatusExhausted], [BetaManagedAgentsRetryStatusTerminal]. 1266 // 1267 // Use the [BetaManagedAgentsBillingErrorRetryStatusUnion.AsAny] method to switch 1268 // on the variant. 1269 // 1270 // Use the methods beginning with 'As' to cast the union to one of its variants. 1271 type BetaManagedAgentsBillingErrorRetryStatusUnion struct { 1272 // Any of "retrying", "exhausted", "terminal". 1273 Type string `json:"type"` 1274 JSON struct { 1275 Type respjson.Field 1276 raw string 1277 } `json:"-"` 1278 } 1279 1280 // anyBetaManagedAgentsBillingErrorRetryStatus is implemented by each variant of 1281 // [BetaManagedAgentsBillingErrorRetryStatusUnion] to add type safety for the 1282 // return type of [BetaManagedAgentsBillingErrorRetryStatusUnion.AsAny] 1283 type anyBetaManagedAgentsBillingErrorRetryStatus interface { 1284 implBetaManagedAgentsBillingErrorRetryStatusUnion() 1285 } 1286 1287 func (BetaManagedAgentsRetryStatusRetrying) implBetaManagedAgentsBillingErrorRetryStatusUnion() {} 1288 func (BetaManagedAgentsRetryStatusExhausted) implBetaManagedAgentsBillingErrorRetryStatusUnion() {} 1289 func (BetaManagedAgentsRetryStatusTerminal) implBetaManagedAgentsBillingErrorRetryStatusUnion() {} 1290 1291 // Use the following switch statement to find the correct variant 1292 // 1293 // switch variant := BetaManagedAgentsBillingErrorRetryStatusUnion.AsAny().(type) { 1294 // case anthropic.BetaManagedAgentsRetryStatusRetrying: 1295 // case anthropic.BetaManagedAgentsRetryStatusExhausted: 1296 // case anthropic.BetaManagedAgentsRetryStatusTerminal: 1297 // default: 1298 // fmt.Errorf("no variant present") 1299 // } 1300 func (u BetaManagedAgentsBillingErrorRetryStatusUnion) AsAny() anyBetaManagedAgentsBillingErrorRetryStatus { 1301 switch u.Type { 1302 case "retrying": 1303 return u.AsRetrying() 1304 case "exhausted": 1305 return u.AsExhausted() 1306 case "terminal": 1307 return u.AsTerminal() 1308 } 1309 return nil 1310 } 1311 1312 func (u BetaManagedAgentsBillingErrorRetryStatusUnion) AsRetrying() (v BetaManagedAgentsRetryStatusRetrying) { 1313 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 1314 return 1315 } 1316 1317 func (u BetaManagedAgentsBillingErrorRetryStatusUnion) AsExhausted() (v BetaManagedAgentsRetryStatusExhausted) { 1318 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 1319 return 1320 } 1321 1322 func (u BetaManagedAgentsBillingErrorRetryStatusUnion) AsTerminal() (v BetaManagedAgentsRetryStatusTerminal) { 1323 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 1324 return 1325 } 1326 1327 // Returns the unmodified JSON received from the API 1328 func (u BetaManagedAgentsBillingErrorRetryStatusUnion) RawJSON() string { return u.JSON.raw } 1329 1330 func (r *BetaManagedAgentsBillingErrorRetryStatusUnion) UnmarshalJSON(data []byte) error { 1331 return apijson.UnmarshalRoot(data, r) 1332 } 1333 1334 type BetaManagedAgentsBillingErrorType string 1335 1336 const ( 1337 BetaManagedAgentsBillingErrorTypeBillingError BetaManagedAgentsBillingErrorType = "billing_error" 1338 ) 1339 1340 // An `environment_variable` credential's `auth.networking.allowed_hosts` includes 1341 // a host the environment's network policy does not permit. 1342 type BetaManagedAgentsCredentialHostUnreachableError struct { 1343 // ID of the affected credential. 1344 CredentialID string `json:"credential_id" api:"required"` 1345 // Human-readable error description. 1346 Message string `json:"message" api:"required"` 1347 // What the client should do next in response to this error. 1348 RetryStatus BetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion `json:"retry_status" api:"required"` 1349 // Any of "credential_host_unreachable_error". 1350 Type BetaManagedAgentsCredentialHostUnreachableErrorType `json:"type" api:"required"` 1351 // ID of the vault containing the affected credential. 1352 VaultID string `json:"vault_id" api:"required"` 1353 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 1354 JSON struct { 1355 CredentialID respjson.Field 1356 Message respjson.Field 1357 RetryStatus respjson.Field 1358 Type respjson.Field 1359 VaultID respjson.Field 1360 ExtraFields map[string]respjson.Field 1361 raw string 1362 } `json:"-"` 1363 } 1364 1365 // Returns the unmodified JSON received from the API 1366 func (r BetaManagedAgentsCredentialHostUnreachableError) RawJSON() string { return r.JSON.raw } 1367 func (r *BetaManagedAgentsCredentialHostUnreachableError) UnmarshalJSON(data []byte) error { 1368 return apijson.UnmarshalRoot(data, r) 1369 } 1370 1371 // BetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion contains all 1372 // possible properties and values from [BetaManagedAgentsRetryStatusRetrying], 1373 // [BetaManagedAgentsRetryStatusExhausted], [BetaManagedAgentsRetryStatusTerminal]. 1374 // 1375 // Use the [BetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion.AsAny] 1376 // method to switch on the variant. 1377 // 1378 // Use the methods beginning with 'As' to cast the union to one of its variants. 1379 type BetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion struct { 1380 // Any of "retrying", "exhausted", "terminal". 1381 Type string `json:"type"` 1382 JSON struct { 1383 Type respjson.Field 1384 raw string 1385 } `json:"-"` 1386 } 1387 1388 // anyBetaManagedAgentsCredentialHostUnreachableErrorRetryStatus is implemented by 1389 // each variant of 1390 // [BetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion] to add type 1391 // safety for the return type of 1392 // [BetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion.AsAny] 1393 type anyBetaManagedAgentsCredentialHostUnreachableErrorRetryStatus interface { 1394 implBetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion() 1395 } 1396 1397 func (BetaManagedAgentsRetryStatusRetrying) implBetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion() { 1398 } 1399 func (BetaManagedAgentsRetryStatusExhausted) implBetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion() { 1400 } 1401 func (BetaManagedAgentsRetryStatusTerminal) implBetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion() { 1402 } 1403 1404 // Use the following switch statement to find the correct variant 1405 // 1406 // switch variant := BetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion.AsAny().(type) { 1407 // case anthropic.BetaManagedAgentsRetryStatusRetrying: 1408 // case anthropic.BetaManagedAgentsRetryStatusExhausted: 1409 // case anthropic.BetaManagedAgentsRetryStatusTerminal: 1410 // default: 1411 // fmt.Errorf("no variant present") 1412 // } 1413 func (u BetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion) AsAny() anyBetaManagedAgentsCredentialHostUnreachableErrorRetryStatus { 1414 switch u.Type { 1415 case "retrying": 1416 return u.AsRetrying() 1417 case "exhausted": 1418 return u.AsExhausted() 1419 case "terminal": 1420 return u.AsTerminal() 1421 } 1422 return nil 1423 } 1424 1425 func (u BetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion) AsRetrying() (v BetaManagedAgentsRetryStatusRetrying) { 1426 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 1427 return 1428 } 1429 1430 func (u BetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion) AsExhausted() (v BetaManagedAgentsRetryStatusExhausted) { 1431 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 1432 return 1433 } 1434 1435 func (u BetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion) AsTerminal() (v BetaManagedAgentsRetryStatusTerminal) { 1436 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 1437 return 1438 } 1439 1440 // Returns the unmodified JSON received from the API 1441 func (u BetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion) RawJSON() string { 1442 return u.JSON.raw 1443 } 1444 1445 func (r *BetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion) UnmarshalJSON(data []byte) error { 1446 return apijson.UnmarshalRoot(data, r) 1447 } 1448 1449 type BetaManagedAgentsCredentialHostUnreachableErrorType string 1450 1451 const ( 1452 BetaManagedAgentsCredentialHostUnreachableErrorTypeCredentialHostUnreachableError BetaManagedAgentsCredentialHostUnreachableErrorType = "credential_host_unreachable_error" 1453 ) 1454 1455 // Document content, either specified directly as base64 data, as text, or as a 1456 // reference via a URL. 1457 type BetaManagedAgentsDocumentBlock struct { 1458 // Union type for document source variants. 1459 Source BetaManagedAgentsDocumentBlockSourceUnion `json:"source" api:"required"` 1460 // Any of "document". 1461 Type BetaManagedAgentsDocumentBlockType `json:"type" api:"required"` 1462 // Additional context about the document for the model. 1463 Context string `json:"context" api:"nullable"` 1464 // The title of the document. 1465 Title string `json:"title" api:"nullable"` 1466 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 1467 JSON struct { 1468 Source respjson.Field 1469 Type respjson.Field 1470 Context respjson.Field 1471 Title respjson.Field 1472 ExtraFields map[string]respjson.Field 1473 raw string 1474 } `json:"-"` 1475 } 1476 1477 // Returns the unmodified JSON received from the API 1478 func (r BetaManagedAgentsDocumentBlock) RawJSON() string { return r.JSON.raw } 1479 func (r *BetaManagedAgentsDocumentBlock) UnmarshalJSON(data []byte) error { 1480 return apijson.UnmarshalRoot(data, r) 1481 } 1482 1483 // ToParam converts this BetaManagedAgentsDocumentBlock to a 1484 // BetaManagedAgentsDocumentBlockParam. 1485 // 1486 // Warning: the fields of the param type will not be present. ToParam should only 1487 // be used at the last possible moment before sending a request. Test for this with 1488 // BetaManagedAgentsDocumentBlockParam.Overrides() 1489 func (r BetaManagedAgentsDocumentBlock) ToParam() BetaManagedAgentsDocumentBlockParam { 1490 return param.Override[BetaManagedAgentsDocumentBlockParam](json.RawMessage(r.RawJSON())) 1491 } 1492 1493 // BetaManagedAgentsDocumentBlockSourceUnion contains all possible properties and 1494 // values from [BetaManagedAgentsBase64DocumentSource], 1495 // [BetaManagedAgentsPlainTextDocumentSource], 1496 // [BetaManagedAgentsURLDocumentSource], [BetaManagedAgentsFileDocumentSource]. 1497 // 1498 // Use the [BetaManagedAgentsDocumentBlockSourceUnion.AsAny] method to switch on 1499 // the variant. 1500 // 1501 // Use the methods beginning with 'As' to cast the union to one of its variants. 1502 type BetaManagedAgentsDocumentBlockSourceUnion struct { 1503 Data string `json:"data"` 1504 MediaType string `json:"media_type"` 1505 // Any of "base64", "text", "url", "file". 1506 Type string `json:"type"` 1507 // This field is from variant [BetaManagedAgentsURLDocumentSource]. 1508 URL string `json:"url"` 1509 // This field is from variant [BetaManagedAgentsFileDocumentSource]. 1510 FileID string `json:"file_id"` 1511 JSON struct { 1512 Data respjson.Field 1513 MediaType respjson.Field 1514 Type respjson.Field 1515 URL respjson.Field 1516 FileID respjson.Field 1517 raw string 1518 } `json:"-"` 1519 } 1520 1521 // anyBetaManagedAgentsDocumentBlockSource is implemented by each variant of 1522 // [BetaManagedAgentsDocumentBlockSourceUnion] to add type safety for the return 1523 // type of [BetaManagedAgentsDocumentBlockSourceUnion.AsAny] 1524 type anyBetaManagedAgentsDocumentBlockSource interface { 1525 implBetaManagedAgentsDocumentBlockSourceUnion() 1526 } 1527 1528 func (BetaManagedAgentsBase64DocumentSource) implBetaManagedAgentsDocumentBlockSourceUnion() {} 1529 func (BetaManagedAgentsPlainTextDocumentSource) implBetaManagedAgentsDocumentBlockSourceUnion() {} 1530 func (BetaManagedAgentsURLDocumentSource) implBetaManagedAgentsDocumentBlockSourceUnion() {} 1531 func (BetaManagedAgentsFileDocumentSource) implBetaManagedAgentsDocumentBlockSourceUnion() {} 1532 1533 // Use the following switch statement to find the correct variant 1534 // 1535 // switch variant := BetaManagedAgentsDocumentBlockSourceUnion.AsAny().(type) { 1536 // case anthropic.BetaManagedAgentsBase64DocumentSource: 1537 // case anthropic.BetaManagedAgentsPlainTextDocumentSource: 1538 // case anthropic.BetaManagedAgentsURLDocumentSource: 1539 // case anthropic.BetaManagedAgentsFileDocumentSource: 1540 // default: 1541 // fmt.Errorf("no variant present") 1542 // } 1543 func (u BetaManagedAgentsDocumentBlockSourceUnion) AsAny() anyBetaManagedAgentsDocumentBlockSource { 1544 switch u.Type { 1545 case "base64": 1546 return u.AsBase64() 1547 case "text": 1548 return u.AsText() 1549 case "url": 1550 return u.AsURL() 1551 case "file": 1552 return u.AsFile() 1553 } 1554 return nil 1555 } 1556 1557 func (u BetaManagedAgentsDocumentBlockSourceUnion) AsBase64() (v BetaManagedAgentsBase64DocumentSource) { 1558 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 1559 return 1560 } 1561 1562 func (u BetaManagedAgentsDocumentBlockSourceUnion) AsText() (v BetaManagedAgentsPlainTextDocumentSource) { 1563 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 1564 return 1565 } 1566 1567 func (u BetaManagedAgentsDocumentBlockSourceUnion) AsURL() (v BetaManagedAgentsURLDocumentSource) { 1568 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 1569 return 1570 } 1571 1572 func (u BetaManagedAgentsDocumentBlockSourceUnion) AsFile() (v BetaManagedAgentsFileDocumentSource) { 1573 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 1574 return 1575 } 1576 1577 // Returns the unmodified JSON received from the API 1578 func (u BetaManagedAgentsDocumentBlockSourceUnion) RawJSON() string { return u.JSON.raw } 1579 1580 func (r *BetaManagedAgentsDocumentBlockSourceUnion) UnmarshalJSON(data []byte) error { 1581 return apijson.UnmarshalRoot(data, r) 1582 } 1583 1584 type BetaManagedAgentsDocumentBlockType string 1585 1586 const ( 1587 BetaManagedAgentsDocumentBlockTypeDocument BetaManagedAgentsDocumentBlockType = "document" 1588 ) 1589 1590 // Document content, either specified directly as base64 data, as text, or as a 1591 // reference via a URL. 1592 // 1593 // The properties Source, Type are required. 1594 type BetaManagedAgentsDocumentBlockParam struct { 1595 // Union type for document source variants. 1596 Source BetaManagedAgentsDocumentBlockSourceUnionParam `json:"source,omitzero" api:"required"` 1597 // Any of "document". 1598 Type BetaManagedAgentsDocumentBlockType `json:"type,omitzero" api:"required"` 1599 // Additional context about the document for the model. 1600 Context param.Opt[string] `json:"context,omitzero"` 1601 // The title of the document. 1602 Title param.Opt[string] `json:"title,omitzero"` 1603 paramObj 1604 } 1605 1606 func (r BetaManagedAgentsDocumentBlockParam) MarshalJSON() (data []byte, err error) { 1607 type shadow BetaManagedAgentsDocumentBlockParam 1608 return param.MarshalObject(r, (*shadow)(&r)) 1609 } 1610 func (r *BetaManagedAgentsDocumentBlockParam) UnmarshalJSON(data []byte) error { 1611 return apijson.UnmarshalRoot(data, r) 1612 } 1613 1614 // Only one field can be non-zero. 1615 // 1616 // Use [param.IsOmitted] to confirm if a field is set. 1617 type BetaManagedAgentsDocumentBlockSourceUnionParam struct { 1618 OfBase64 *BetaManagedAgentsBase64DocumentSourceParam `json:",omitzero,inline"` 1619 OfText *BetaManagedAgentsPlainTextDocumentSourceParam `json:",omitzero,inline"` 1620 OfURL *BetaManagedAgentsURLDocumentSourceParam `json:",omitzero,inline"` 1621 OfFile *BetaManagedAgentsFileDocumentSourceParam `json:",omitzero,inline"` 1622 paramUnion 1623 } 1624 1625 func (u BetaManagedAgentsDocumentBlockSourceUnionParam) MarshalJSON() ([]byte, error) { 1626 return param.MarshalUnion(u, u.OfBase64, u.OfText, u.OfURL, u.OfFile) 1627 } 1628 func (u *BetaManagedAgentsDocumentBlockSourceUnionParam) UnmarshalJSON(data []byte) error { 1629 return apijson.UnmarshalRoot(data, u) 1630 } 1631 1632 func (u *BetaManagedAgentsDocumentBlockSourceUnionParam) asAny() any { 1633 if !param.IsOmitted(u.OfBase64) { 1634 return u.OfBase64 1635 } else if !param.IsOmitted(u.OfText) { 1636 return u.OfText 1637 } else if !param.IsOmitted(u.OfURL) { 1638 return u.OfURL 1639 } else if !param.IsOmitted(u.OfFile) { 1640 return u.OfFile 1641 } 1642 return nil 1643 } 1644 1645 // Returns a pointer to the underlying variant's property, if present. 1646 func (u BetaManagedAgentsDocumentBlockSourceUnionParam) GetURL() *string { 1647 if vt := u.OfURL; vt != nil { 1648 return &vt.URL 1649 } 1650 return nil 1651 } 1652 1653 // Returns a pointer to the underlying variant's property, if present. 1654 func (u BetaManagedAgentsDocumentBlockSourceUnionParam) GetFileID() *string { 1655 if vt := u.OfFile; vt != nil { 1656 return &vt.FileID 1657 } 1658 return nil 1659 } 1660 1661 // Returns a pointer to the underlying variant's property, if present. 1662 func (u BetaManagedAgentsDocumentBlockSourceUnionParam) GetData() *string { 1663 if vt := u.OfBase64; vt != nil { 1664 return (*string)(&vt.Data) 1665 } else if vt := u.OfText; vt != nil { 1666 return (*string)(&vt.Data) 1667 } 1668 return nil 1669 } 1670 1671 // Returns a pointer to the underlying variant's property, if present. 1672 func (u BetaManagedAgentsDocumentBlockSourceUnionParam) GetMediaType() *string { 1673 if vt := u.OfBase64; vt != nil { 1674 return (*string)(&vt.MediaType) 1675 } else if vt := u.OfText; vt != nil { 1676 return (*string)(&vt.MediaType) 1677 } 1678 return nil 1679 } 1680 1681 // Returns a pointer to the underlying variant's property, if present. 1682 func (u BetaManagedAgentsDocumentBlockSourceUnionParam) GetType() *string { 1683 if vt := u.OfBase64; vt != nil { 1684 return (*string)(&vt.Type) 1685 } else if vt := u.OfText; vt != nil { 1686 return (*string)(&vt.Type) 1687 } else if vt := u.OfURL; vt != nil { 1688 return (*string)(&vt.Type) 1689 } else if vt := u.OfFile; vt != nil { 1690 return (*string)(&vt.Type) 1691 } 1692 return nil 1693 } 1694 1695 func init() { 1696 apijson.RegisterUnion[BetaManagedAgentsDocumentBlockSourceUnionParam]( 1697 "type", 1698 apijson.Discriminator[BetaManagedAgentsBase64DocumentSourceParam]("base64"), 1699 apijson.Discriminator[BetaManagedAgentsPlainTextDocumentSourceParam]("text"), 1700 apijson.Discriminator[BetaManagedAgentsURLDocumentSourceParam]("url"), 1701 apijson.Discriminator[BetaManagedAgentsFileDocumentSourceParam]("file"), 1702 ) 1703 } 1704 1705 func BetaManagedAgentsEventParamsOfUserMessage(content []BetaManagedAgentsUserMessageEventParamsContentUnion) BetaManagedAgentsEventParamsUnion { 1706 var userMessage BetaManagedAgentsUserMessageEventParams 1707 userMessage.Content = content 1708 return BetaManagedAgentsEventParamsUnion{OfUserMessage: &userMessage} 1709 } 1710 1711 func BetaManagedAgentsEventParamsOfUserInterrupt(type_ BetaManagedAgentsUserInterruptEventParamsType) BetaManagedAgentsEventParamsUnion { 1712 var userInterrupt BetaManagedAgentsUserInterruptEventParams 1713 userInterrupt.Type = type_ 1714 return BetaManagedAgentsEventParamsUnion{OfUserInterrupt: &userInterrupt} 1715 } 1716 1717 func BetaManagedAgentsEventParamsOfUserToolConfirmation(result BetaManagedAgentsUserToolConfirmationEventParamsResult, toolUseID string, type_ BetaManagedAgentsUserToolConfirmationEventParamsType) BetaManagedAgentsEventParamsUnion { 1718 var userToolConfirmation BetaManagedAgentsUserToolConfirmationEventParams 1719 userToolConfirmation.Result = result 1720 userToolConfirmation.ToolUseID = toolUseID 1721 userToolConfirmation.Type = type_ 1722 return BetaManagedAgentsEventParamsUnion{OfUserToolConfirmation: &userToolConfirmation} 1723 } 1724 1725 func BetaManagedAgentsEventParamsOfUserCustomToolResult(customToolUseID string) BetaManagedAgentsEventParamsUnion { 1726 var userCustomToolResult BetaManagedAgentsUserCustomToolResultEventParams 1727 userCustomToolResult.CustomToolUseID = customToolUseID 1728 return BetaManagedAgentsEventParamsUnion{OfUserCustomToolResult: &userCustomToolResult} 1729 } 1730 1731 func BetaManagedAgentsEventParamsOfUserDefineOutcome[ 1732 T BetaManagedAgentsFileRubricParams | BetaManagedAgentsTextRubricParams, 1733 ](description string, rubric T, type_ BetaManagedAgentsUserDefineOutcomeEventParamsType) BetaManagedAgentsEventParamsUnion { 1734 var userDefineOutcome BetaManagedAgentsUserDefineOutcomeEventParams 1735 userDefineOutcome.Description = description 1736 switch v := any(rubric).(type) { 1737 case BetaManagedAgentsFileRubricParams: 1738 userDefineOutcome.Rubric.OfFile = &v 1739 case BetaManagedAgentsTextRubricParams: 1740 userDefineOutcome.Rubric.OfText = &v 1741 } 1742 userDefineOutcome.Type = type_ 1743 return BetaManagedAgentsEventParamsUnion{OfUserDefineOutcome: &userDefineOutcome} 1744 } 1745 1746 func BetaManagedAgentsEventParamsOfUserToolResult(toolUseID string) BetaManagedAgentsEventParamsUnion { 1747 var userToolResult BetaManagedAgentsUserToolResultEventParams 1748 userToolResult.ToolUseID = toolUseID 1749 return BetaManagedAgentsEventParamsUnion{OfUserToolResult: &userToolResult} 1750 } 1751 1752 func BetaManagedAgentsEventParamsOfSystemMessage(content []BetaManagedAgentsSystemContentBlockParam) BetaManagedAgentsEventParamsUnion { 1753 var systemMessage BetaManagedAgentsSystemMessageEventParams 1754 systemMessage.Content = content 1755 return BetaManagedAgentsEventParamsUnion{OfSystemMessage: &systemMessage} 1756 } 1757 1758 // Only one field can be non-zero. 1759 // 1760 // Use [param.IsOmitted] to confirm if a field is set. 1761 type BetaManagedAgentsEventParamsUnion struct { 1762 OfUserMessage *BetaManagedAgentsUserMessageEventParams `json:",omitzero,inline"` 1763 OfUserInterrupt *BetaManagedAgentsUserInterruptEventParams `json:",omitzero,inline"` 1764 OfUserToolConfirmation *BetaManagedAgentsUserToolConfirmationEventParams `json:",omitzero,inline"` 1765 OfUserCustomToolResult *BetaManagedAgentsUserCustomToolResultEventParams `json:",omitzero,inline"` 1766 OfUserDefineOutcome *BetaManagedAgentsUserDefineOutcomeEventParams `json:",omitzero,inline"` 1767 OfUserToolResult *BetaManagedAgentsUserToolResultEventParams `json:",omitzero,inline"` 1768 OfSystemMessage *BetaManagedAgentsSystemMessageEventParams `json:",omitzero,inline"` 1769 paramUnion 1770 } 1771 1772 func (u BetaManagedAgentsEventParamsUnion) MarshalJSON() ([]byte, error) { 1773 return param.MarshalUnion(u, u.OfUserMessage, 1774 u.OfUserInterrupt, 1775 u.OfUserToolConfirmation, 1776 u.OfUserCustomToolResult, 1777 u.OfUserDefineOutcome, 1778 u.OfUserToolResult, 1779 u.OfSystemMessage) 1780 } 1781 func (u *BetaManagedAgentsEventParamsUnion) UnmarshalJSON(data []byte) error { 1782 return apijson.UnmarshalRoot(data, u) 1783 } 1784 1785 func (u *BetaManagedAgentsEventParamsUnion) asAny() any { 1786 if !param.IsOmitted(u.OfUserMessage) { 1787 return u.OfUserMessage 1788 } else if !param.IsOmitted(u.OfUserInterrupt) { 1789 return u.OfUserInterrupt 1790 } else if !param.IsOmitted(u.OfUserToolConfirmation) { 1791 return u.OfUserToolConfirmation 1792 } else if !param.IsOmitted(u.OfUserCustomToolResult) { 1793 return u.OfUserCustomToolResult 1794 } else if !param.IsOmitted(u.OfUserDefineOutcome) { 1795 return u.OfUserDefineOutcome 1796 } else if !param.IsOmitted(u.OfUserToolResult) { 1797 return u.OfUserToolResult 1798 } else if !param.IsOmitted(u.OfSystemMessage) { 1799 return u.OfSystemMessage 1800 } 1801 return nil 1802 } 1803 1804 // Returns a pointer to the underlying variant's property, if present. 1805 func (u BetaManagedAgentsEventParamsUnion) GetSessionThreadID() *string { 1806 if vt := u.OfUserInterrupt; vt != nil && vt.SessionThreadID.Valid() { 1807 return &vt.SessionThreadID.Value 1808 } 1809 return nil 1810 } 1811 1812 // Returns a pointer to the underlying variant's property, if present. 1813 func (u BetaManagedAgentsEventParamsUnion) GetResult() *string { 1814 if vt := u.OfUserToolConfirmation; vt != nil { 1815 return (*string)(&vt.Result) 1816 } 1817 return nil 1818 } 1819 1820 // Returns a pointer to the underlying variant's property, if present. 1821 func (u BetaManagedAgentsEventParamsUnion) GetDenyMessage() *string { 1822 if vt := u.OfUserToolConfirmation; vt != nil && vt.DenyMessage.Valid() { 1823 return &vt.DenyMessage.Value 1824 } 1825 return nil 1826 } 1827 1828 // Returns a pointer to the underlying variant's property, if present. 1829 func (u BetaManagedAgentsEventParamsUnion) GetCustomToolUseID() *string { 1830 if vt := u.OfUserCustomToolResult; vt != nil { 1831 return &vt.CustomToolUseID 1832 } 1833 return nil 1834 } 1835 1836 // Returns a pointer to the underlying variant's property, if present. 1837 func (u BetaManagedAgentsEventParamsUnion) GetDescription() *string { 1838 if vt := u.OfUserDefineOutcome; vt != nil { 1839 return &vt.Description 1840 } 1841 return nil 1842 } 1843 1844 // Returns a pointer to the underlying variant's property, if present. 1845 func (u BetaManagedAgentsEventParamsUnion) GetRubric() *BetaManagedAgentsUserDefineOutcomeEventParamsRubricUnion { 1846 if vt := u.OfUserDefineOutcome; vt != nil { 1847 return &vt.Rubric 1848 } 1849 return nil 1850 } 1851 1852 // Returns a pointer to the underlying variant's property, if present. 1853 func (u BetaManagedAgentsEventParamsUnion) GetMaxIterations() *int64 { 1854 if vt := u.OfUserDefineOutcome; vt != nil && vt.MaxIterations.Valid() { 1855 return &vt.MaxIterations.Value 1856 } 1857 return nil 1858 } 1859 1860 // Returns a pointer to the underlying variant's property, if present. 1861 func (u BetaManagedAgentsEventParamsUnion) GetType() *string { 1862 if vt := u.OfUserMessage; vt != nil { 1863 return (*string)(&vt.Type) 1864 } else if vt := u.OfUserInterrupt; vt != nil { 1865 return (*string)(&vt.Type) 1866 } else if vt := u.OfUserToolConfirmation; vt != nil { 1867 return (*string)(&vt.Type) 1868 } else if vt := u.OfUserCustomToolResult; vt != nil { 1869 return (*string)(&vt.Type) 1870 } else if vt := u.OfUserDefineOutcome; vt != nil { 1871 return (*string)(&vt.Type) 1872 } else if vt := u.OfUserToolResult; vt != nil { 1873 return (*string)(&vt.Type) 1874 } else if vt := u.OfSystemMessage; vt != nil { 1875 return (*string)(&vt.Type) 1876 } 1877 return nil 1878 } 1879 1880 // Returns a pointer to the underlying variant's property, if present. 1881 func (u BetaManagedAgentsEventParamsUnion) GetToolUseID() *string { 1882 if vt := u.OfUserToolConfirmation; vt != nil { 1883 return (*string)(&vt.ToolUseID) 1884 } else if vt := u.OfUserToolResult; vt != nil { 1885 return (*string)(&vt.ToolUseID) 1886 } 1887 return nil 1888 } 1889 1890 // Returns a pointer to the underlying variant's property, if present. 1891 func (u BetaManagedAgentsEventParamsUnion) GetIsError() *bool { 1892 if vt := u.OfUserCustomToolResult; vt != nil && vt.IsError.Valid() { 1893 return &vt.IsError.Value 1894 } else if vt := u.OfUserToolResult; vt != nil && vt.IsError.Valid() { 1895 return &vt.IsError.Value 1896 } 1897 return nil 1898 } 1899 1900 // Returns a subunion which exports methods to access subproperties 1901 // 1902 // Or use AsAny() to get the underlying value 1903 func (u BetaManagedAgentsEventParamsUnion) GetContent() (res betaManagedAgentsEventParamsUnionContent) { 1904 if vt := u.OfUserMessage; vt != nil { 1905 res.any = &vt.Content 1906 } else if vt := u.OfUserCustomToolResult; vt != nil { 1907 res.any = &vt.Content 1908 } else if vt := u.OfUserToolResult; vt != nil { 1909 res.any = &vt.Content 1910 } else if vt := u.OfSystemMessage; vt != nil { 1911 res.any = &vt.Content 1912 } 1913 return 1914 } 1915 1916 // Can have the runtime types 1917 // [_[]BetaManagedAgentsUserMessageEventParamsContentUnion], 1918 // [_[]BetaManagedAgentsUserCustomToolResultEventParamsContentUnion], 1919 // [_[]BetaManagedAgentsUserToolResultEventParamsContentUnion], 1920 // [_[]BetaManagedAgentsSystemContentBlockParam] 1921 type betaManagedAgentsEventParamsUnionContent struct{ any } 1922 1923 // Use the following switch statement to get the type of the union: 1924 // 1925 // switch u.AsAny().(type) { 1926 // case *[]anthropic.BetaManagedAgentsUserMessageEventParamsContentUnion: 1927 // case *[]anthropic.BetaManagedAgentsUserCustomToolResultEventParamsContentUnion: 1928 // case *[]anthropic.BetaManagedAgentsUserToolResultEventParamsContentUnion: 1929 // case *[]anthropic.BetaManagedAgentsSystemContentBlockParam: 1930 // default: 1931 // fmt.Errorf("not present") 1932 // } 1933 func (u betaManagedAgentsEventParamsUnionContent) AsAny() any { return u.any } 1934 1935 func init() { 1936 apijson.RegisterUnion[BetaManagedAgentsEventParamsUnion]( 1937 "type", 1938 apijson.Discriminator[BetaManagedAgentsUserMessageEventParams]("user.message"), 1939 apijson.Discriminator[BetaManagedAgentsUserInterruptEventParams]("user.interrupt"), 1940 apijson.Discriminator[BetaManagedAgentsUserToolConfirmationEventParams]("user.tool_confirmation"), 1941 apijson.Discriminator[BetaManagedAgentsUserCustomToolResultEventParams]("user.custom_tool_result"), 1942 apijson.Discriminator[BetaManagedAgentsUserDefineOutcomeEventParams]("user.define_outcome"), 1943 apijson.Discriminator[BetaManagedAgentsUserToolResultEventParams]("user.tool_result"), 1944 apijson.Discriminator[BetaManagedAgentsSystemMessageEventParams]("system.message"), 1945 ) 1946 } 1947 1948 // Document referenced by file ID. 1949 type BetaManagedAgentsFileDocumentSource struct { 1950 // ID of a previously uploaded file. 1951 FileID string `json:"file_id" api:"required"` 1952 // Any of "file". 1953 Type BetaManagedAgentsFileDocumentSourceType `json:"type" api:"required"` 1954 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 1955 JSON struct { 1956 FileID respjson.Field 1957 Type respjson.Field 1958 ExtraFields map[string]respjson.Field 1959 raw string 1960 } `json:"-"` 1961 } 1962 1963 // Returns the unmodified JSON received from the API 1964 func (r BetaManagedAgentsFileDocumentSource) RawJSON() string { return r.JSON.raw } 1965 func (r *BetaManagedAgentsFileDocumentSource) UnmarshalJSON(data []byte) error { 1966 return apijson.UnmarshalRoot(data, r) 1967 } 1968 1969 // ToParam converts this BetaManagedAgentsFileDocumentSource to a 1970 // BetaManagedAgentsFileDocumentSourceParam. 1971 // 1972 // Warning: the fields of the param type will not be present. ToParam should only 1973 // be used at the last possible moment before sending a request. Test for this with 1974 // BetaManagedAgentsFileDocumentSourceParam.Overrides() 1975 func (r BetaManagedAgentsFileDocumentSource) ToParam() BetaManagedAgentsFileDocumentSourceParam { 1976 return param.Override[BetaManagedAgentsFileDocumentSourceParam](json.RawMessage(r.RawJSON())) 1977 } 1978 1979 type BetaManagedAgentsFileDocumentSourceType string 1980 1981 const ( 1982 BetaManagedAgentsFileDocumentSourceTypeFile BetaManagedAgentsFileDocumentSourceType = "file" 1983 ) 1984 1985 // Document referenced by file ID. 1986 // 1987 // The properties FileID, Type are required. 1988 type BetaManagedAgentsFileDocumentSourceParam struct { 1989 // ID of a previously uploaded file. 1990 FileID string `json:"file_id" api:"required"` 1991 // Any of "file". 1992 Type BetaManagedAgentsFileDocumentSourceType `json:"type,omitzero" api:"required"` 1993 paramObj 1994 } 1995 1996 func (r BetaManagedAgentsFileDocumentSourceParam) MarshalJSON() (data []byte, err error) { 1997 type shadow BetaManagedAgentsFileDocumentSourceParam 1998 return param.MarshalObject(r, (*shadow)(&r)) 1999 } 2000 func (r *BetaManagedAgentsFileDocumentSourceParam) UnmarshalJSON(data []byte) error { 2001 return apijson.UnmarshalRoot(data, r) 2002 } 2003 2004 // Image referenced by file ID. 2005 type BetaManagedAgentsFileImageSource struct { 2006 // ID of a previously uploaded file. 2007 FileID string `json:"file_id" api:"required"` 2008 // Any of "file". 2009 Type BetaManagedAgentsFileImageSourceType `json:"type" api:"required"` 2010 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 2011 JSON struct { 2012 FileID respjson.Field 2013 Type respjson.Field 2014 ExtraFields map[string]respjson.Field 2015 raw string 2016 } `json:"-"` 2017 } 2018 2019 // Returns the unmodified JSON received from the API 2020 func (r BetaManagedAgentsFileImageSource) RawJSON() string { return r.JSON.raw } 2021 func (r *BetaManagedAgentsFileImageSource) UnmarshalJSON(data []byte) error { 2022 return apijson.UnmarshalRoot(data, r) 2023 } 2024 2025 // ToParam converts this BetaManagedAgentsFileImageSource to a 2026 // BetaManagedAgentsFileImageSourceParam. 2027 // 2028 // Warning: the fields of the param type will not be present. ToParam should only 2029 // be used at the last possible moment before sending a request. Test for this with 2030 // BetaManagedAgentsFileImageSourceParam.Overrides() 2031 func (r BetaManagedAgentsFileImageSource) ToParam() BetaManagedAgentsFileImageSourceParam { 2032 return param.Override[BetaManagedAgentsFileImageSourceParam](json.RawMessage(r.RawJSON())) 2033 } 2034 2035 type BetaManagedAgentsFileImageSourceType string 2036 2037 const ( 2038 BetaManagedAgentsFileImageSourceTypeFile BetaManagedAgentsFileImageSourceType = "file" 2039 ) 2040 2041 // Image referenced by file ID. 2042 // 2043 // The properties FileID, Type are required. 2044 type BetaManagedAgentsFileImageSourceParam struct { 2045 // ID of a previously uploaded file. 2046 FileID string `json:"file_id" api:"required"` 2047 // Any of "file". 2048 Type BetaManagedAgentsFileImageSourceType `json:"type,omitzero" api:"required"` 2049 paramObj 2050 } 2051 2052 func (r BetaManagedAgentsFileImageSourceParam) MarshalJSON() (data []byte, err error) { 2053 type shadow BetaManagedAgentsFileImageSourceParam 2054 return param.MarshalObject(r, (*shadow)(&r)) 2055 } 2056 func (r *BetaManagedAgentsFileImageSourceParam) UnmarshalJSON(data []byte) error { 2057 return apijson.UnmarshalRoot(data, r) 2058 } 2059 2060 // Rubric referenced by a file uploaded via the Files API. 2061 type BetaManagedAgentsFileRubric struct { 2062 // ID of the rubric file. 2063 FileID string `json:"file_id" api:"required"` 2064 // Any of "file". 2065 Type BetaManagedAgentsFileRubricType `json:"type" api:"required"` 2066 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 2067 JSON struct { 2068 FileID respjson.Field 2069 Type respjson.Field 2070 ExtraFields map[string]respjson.Field 2071 raw string 2072 } `json:"-"` 2073 } 2074 2075 // Returns the unmodified JSON received from the API 2076 func (r BetaManagedAgentsFileRubric) RawJSON() string { return r.JSON.raw } 2077 func (r *BetaManagedAgentsFileRubric) UnmarshalJSON(data []byte) error { 2078 return apijson.UnmarshalRoot(data, r) 2079 } 2080 2081 type BetaManagedAgentsFileRubricType string 2082 2083 const ( 2084 BetaManagedAgentsFileRubricTypeFile BetaManagedAgentsFileRubricType = "file" 2085 ) 2086 2087 // Rubric referenced by a file uploaded via the Files API. 2088 // 2089 // The properties FileID, Type are required. 2090 type BetaManagedAgentsFileRubricParams struct { 2091 // ID of the rubric file. 2092 FileID string `json:"file_id" api:"required"` 2093 // Any of "file". 2094 Type BetaManagedAgentsFileRubricParamsType `json:"type,omitzero" api:"required"` 2095 paramObj 2096 } 2097 2098 func (r BetaManagedAgentsFileRubricParams) MarshalJSON() (data []byte, err error) { 2099 type shadow BetaManagedAgentsFileRubricParams 2100 return param.MarshalObject(r, (*shadow)(&r)) 2101 } 2102 func (r *BetaManagedAgentsFileRubricParams) UnmarshalJSON(data []byte) error { 2103 return apijson.UnmarshalRoot(data, r) 2104 } 2105 2106 type BetaManagedAgentsFileRubricParamsType string 2107 2108 const ( 2109 BetaManagedAgentsFileRubricParamsTypeFile BetaManagedAgentsFileRubricParamsType = "file" 2110 ) 2111 2112 // Image content specified directly as base64 data or as a reference via a URL. 2113 type BetaManagedAgentsImageBlock struct { 2114 // Union type for image source variants. 2115 Source BetaManagedAgentsImageBlockSourceUnion `json:"source" api:"required"` 2116 // Any of "image". 2117 Type BetaManagedAgentsImageBlockType `json:"type" api:"required"` 2118 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 2119 JSON struct { 2120 Source respjson.Field 2121 Type respjson.Field 2122 ExtraFields map[string]respjson.Field 2123 raw string 2124 } `json:"-"` 2125 } 2126 2127 // Returns the unmodified JSON received from the API 2128 func (r BetaManagedAgentsImageBlock) RawJSON() string { return r.JSON.raw } 2129 func (r *BetaManagedAgentsImageBlock) UnmarshalJSON(data []byte) error { 2130 return apijson.UnmarshalRoot(data, r) 2131 } 2132 2133 // ToParam converts this BetaManagedAgentsImageBlock to a 2134 // BetaManagedAgentsImageBlockParam. 2135 // 2136 // Warning: the fields of the param type will not be present. ToParam should only 2137 // be used at the last possible moment before sending a request. Test for this with 2138 // BetaManagedAgentsImageBlockParam.Overrides() 2139 func (r BetaManagedAgentsImageBlock) ToParam() BetaManagedAgentsImageBlockParam { 2140 return param.Override[BetaManagedAgentsImageBlockParam](json.RawMessage(r.RawJSON())) 2141 } 2142 2143 // BetaManagedAgentsImageBlockSourceUnion contains all possible properties and 2144 // values from [BetaManagedAgentsBase64ImageSource], 2145 // [BetaManagedAgentsURLImageSource], [BetaManagedAgentsFileImageSource]. 2146 // 2147 // Use the [BetaManagedAgentsImageBlockSourceUnion.AsAny] method to switch on the 2148 // variant. 2149 // 2150 // Use the methods beginning with 'As' to cast the union to one of its variants. 2151 type BetaManagedAgentsImageBlockSourceUnion struct { 2152 // This field is from variant [BetaManagedAgentsBase64ImageSource]. 2153 Data string `json:"data"` 2154 // This field is from variant [BetaManagedAgentsBase64ImageSource]. 2155 MediaType string `json:"media_type"` 2156 // Any of "base64", "url", "file". 2157 Type string `json:"type"` 2158 // This field is from variant [BetaManagedAgentsURLImageSource]. 2159 URL string `json:"url"` 2160 // This field is from variant [BetaManagedAgentsFileImageSource]. 2161 FileID string `json:"file_id"` 2162 JSON struct { 2163 Data respjson.Field 2164 MediaType respjson.Field 2165 Type respjson.Field 2166 URL respjson.Field 2167 FileID respjson.Field 2168 raw string 2169 } `json:"-"` 2170 } 2171 2172 // anyBetaManagedAgentsImageBlockSource is implemented by each variant of 2173 // [BetaManagedAgentsImageBlockSourceUnion] to add type safety for the return type 2174 // of [BetaManagedAgentsImageBlockSourceUnion.AsAny] 2175 type anyBetaManagedAgentsImageBlockSource interface { 2176 implBetaManagedAgentsImageBlockSourceUnion() 2177 } 2178 2179 func (BetaManagedAgentsBase64ImageSource) implBetaManagedAgentsImageBlockSourceUnion() {} 2180 func (BetaManagedAgentsURLImageSource) implBetaManagedAgentsImageBlockSourceUnion() {} 2181 func (BetaManagedAgentsFileImageSource) implBetaManagedAgentsImageBlockSourceUnion() {} 2182 2183 // Use the following switch statement to find the correct variant 2184 // 2185 // switch variant := BetaManagedAgentsImageBlockSourceUnion.AsAny().(type) { 2186 // case anthropic.BetaManagedAgentsBase64ImageSource: 2187 // case anthropic.BetaManagedAgentsURLImageSource: 2188 // case anthropic.BetaManagedAgentsFileImageSource: 2189 // default: 2190 // fmt.Errorf("no variant present") 2191 // } 2192 func (u BetaManagedAgentsImageBlockSourceUnion) AsAny() anyBetaManagedAgentsImageBlockSource { 2193 switch u.Type { 2194 case "base64": 2195 return u.AsBase64() 2196 case "url": 2197 return u.AsURL() 2198 case "file": 2199 return u.AsFile() 2200 } 2201 return nil 2202 } 2203 2204 func (u BetaManagedAgentsImageBlockSourceUnion) AsBase64() (v BetaManagedAgentsBase64ImageSource) { 2205 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2206 return 2207 } 2208 2209 func (u BetaManagedAgentsImageBlockSourceUnion) AsURL() (v BetaManagedAgentsURLImageSource) { 2210 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2211 return 2212 } 2213 2214 func (u BetaManagedAgentsImageBlockSourceUnion) AsFile() (v BetaManagedAgentsFileImageSource) { 2215 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2216 return 2217 } 2218 2219 // Returns the unmodified JSON received from the API 2220 func (u BetaManagedAgentsImageBlockSourceUnion) RawJSON() string { return u.JSON.raw } 2221 2222 func (r *BetaManagedAgentsImageBlockSourceUnion) UnmarshalJSON(data []byte) error { 2223 return apijson.UnmarshalRoot(data, r) 2224 } 2225 2226 type BetaManagedAgentsImageBlockType string 2227 2228 const ( 2229 BetaManagedAgentsImageBlockTypeImage BetaManagedAgentsImageBlockType = "image" 2230 ) 2231 2232 // Image content specified directly as base64 data or as a reference via a URL. 2233 // 2234 // The properties Source, Type are required. 2235 type BetaManagedAgentsImageBlockParam struct { 2236 // Union type for image source variants. 2237 Source BetaManagedAgentsImageBlockSourceUnionParam `json:"source,omitzero" api:"required"` 2238 // Any of "image". 2239 Type BetaManagedAgentsImageBlockType `json:"type,omitzero" api:"required"` 2240 paramObj 2241 } 2242 2243 func (r BetaManagedAgentsImageBlockParam) MarshalJSON() (data []byte, err error) { 2244 type shadow BetaManagedAgentsImageBlockParam 2245 return param.MarshalObject(r, (*shadow)(&r)) 2246 } 2247 func (r *BetaManagedAgentsImageBlockParam) UnmarshalJSON(data []byte) error { 2248 return apijson.UnmarshalRoot(data, r) 2249 } 2250 2251 // Only one field can be non-zero. 2252 // 2253 // Use [param.IsOmitted] to confirm if a field is set. 2254 type BetaManagedAgentsImageBlockSourceUnionParam struct { 2255 OfBase64 *BetaManagedAgentsBase64ImageSourceParam `json:",omitzero,inline"` 2256 OfURL *BetaManagedAgentsURLImageSourceParam `json:",omitzero,inline"` 2257 OfFile *BetaManagedAgentsFileImageSourceParam `json:",omitzero,inline"` 2258 paramUnion 2259 } 2260 2261 func (u BetaManagedAgentsImageBlockSourceUnionParam) MarshalJSON() ([]byte, error) { 2262 return param.MarshalUnion(u, u.OfBase64, u.OfURL, u.OfFile) 2263 } 2264 func (u *BetaManagedAgentsImageBlockSourceUnionParam) UnmarshalJSON(data []byte) error { 2265 return apijson.UnmarshalRoot(data, u) 2266 } 2267 2268 func (u *BetaManagedAgentsImageBlockSourceUnionParam) asAny() any { 2269 if !param.IsOmitted(u.OfBase64) { 2270 return u.OfBase64 2271 } else if !param.IsOmitted(u.OfURL) { 2272 return u.OfURL 2273 } else if !param.IsOmitted(u.OfFile) { 2274 return u.OfFile 2275 } 2276 return nil 2277 } 2278 2279 // Returns a pointer to the underlying variant's property, if present. 2280 func (u BetaManagedAgentsImageBlockSourceUnionParam) GetData() *string { 2281 if vt := u.OfBase64; vt != nil { 2282 return &vt.Data 2283 } 2284 return nil 2285 } 2286 2287 // Returns a pointer to the underlying variant's property, if present. 2288 func (u BetaManagedAgentsImageBlockSourceUnionParam) GetMediaType() *string { 2289 if vt := u.OfBase64; vt != nil { 2290 return &vt.MediaType 2291 } 2292 return nil 2293 } 2294 2295 // Returns a pointer to the underlying variant's property, if present. 2296 func (u BetaManagedAgentsImageBlockSourceUnionParam) GetURL() *string { 2297 if vt := u.OfURL; vt != nil { 2298 return &vt.URL 2299 } 2300 return nil 2301 } 2302 2303 // Returns a pointer to the underlying variant's property, if present. 2304 func (u BetaManagedAgentsImageBlockSourceUnionParam) GetFileID() *string { 2305 if vt := u.OfFile; vt != nil { 2306 return &vt.FileID 2307 } 2308 return nil 2309 } 2310 2311 // Returns a pointer to the underlying variant's property, if present. 2312 func (u BetaManagedAgentsImageBlockSourceUnionParam) GetType() *string { 2313 if vt := u.OfBase64; vt != nil { 2314 return (*string)(&vt.Type) 2315 } else if vt := u.OfURL; vt != nil { 2316 return (*string)(&vt.Type) 2317 } else if vt := u.OfFile; vt != nil { 2318 return (*string)(&vt.Type) 2319 } 2320 return nil 2321 } 2322 2323 func init() { 2324 apijson.RegisterUnion[BetaManagedAgentsImageBlockSourceUnionParam]( 2325 "type", 2326 apijson.Discriminator[BetaManagedAgentsBase64ImageSourceParam]("base64"), 2327 apijson.Discriminator[BetaManagedAgentsURLImageSourceParam]("url"), 2328 apijson.Discriminator[BetaManagedAgentsFileImageSourceParam]("file"), 2329 ) 2330 } 2331 2332 // Authentication to an MCP server failed. 2333 type BetaManagedAgentsMCPAuthenticationFailedError struct { 2334 // Name of the MCP server that failed authentication. 2335 MCPServerName string `json:"mcp_server_name" api:"required"` 2336 // Human-readable error description. 2337 Message string `json:"message" api:"required"` 2338 // What the client should do next in response to this error. 2339 RetryStatus BetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion `json:"retry_status" api:"required"` 2340 // Any of "mcp_authentication_failed_error". 2341 Type BetaManagedAgentsMCPAuthenticationFailedErrorType `json:"type" api:"required"` 2342 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 2343 JSON struct { 2344 MCPServerName respjson.Field 2345 Message respjson.Field 2346 RetryStatus respjson.Field 2347 Type respjson.Field 2348 ExtraFields map[string]respjson.Field 2349 raw string 2350 } `json:"-"` 2351 } 2352 2353 // Returns the unmodified JSON received from the API 2354 func (r BetaManagedAgentsMCPAuthenticationFailedError) RawJSON() string { return r.JSON.raw } 2355 func (r *BetaManagedAgentsMCPAuthenticationFailedError) UnmarshalJSON(data []byte) error { 2356 return apijson.UnmarshalRoot(data, r) 2357 } 2358 2359 // BetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion contains all 2360 // possible properties and values from [BetaManagedAgentsRetryStatusRetrying], 2361 // [BetaManagedAgentsRetryStatusExhausted], [BetaManagedAgentsRetryStatusTerminal]. 2362 // 2363 // Use the [BetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion.AsAny] 2364 // method to switch on the variant. 2365 // 2366 // Use the methods beginning with 'As' to cast the union to one of its variants. 2367 type BetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion struct { 2368 // Any of "retrying", "exhausted", "terminal". 2369 Type string `json:"type"` 2370 JSON struct { 2371 Type respjson.Field 2372 raw string 2373 } `json:"-"` 2374 } 2375 2376 // anyBetaManagedAgentsMCPAuthenticationFailedErrorRetryStatus is implemented by 2377 // each variant of [BetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion] 2378 // to add type safety for the return type of 2379 // [BetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion.AsAny] 2380 type anyBetaManagedAgentsMCPAuthenticationFailedErrorRetryStatus interface { 2381 implBetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion() 2382 } 2383 2384 func (BetaManagedAgentsRetryStatusRetrying) implBetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion() { 2385 } 2386 func (BetaManagedAgentsRetryStatusExhausted) implBetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion() { 2387 } 2388 func (BetaManagedAgentsRetryStatusTerminal) implBetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion() { 2389 } 2390 2391 // Use the following switch statement to find the correct variant 2392 // 2393 // switch variant := BetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion.AsAny().(type) { 2394 // case anthropic.BetaManagedAgentsRetryStatusRetrying: 2395 // case anthropic.BetaManagedAgentsRetryStatusExhausted: 2396 // case anthropic.BetaManagedAgentsRetryStatusTerminal: 2397 // default: 2398 // fmt.Errorf("no variant present") 2399 // } 2400 func (u BetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion) AsAny() anyBetaManagedAgentsMCPAuthenticationFailedErrorRetryStatus { 2401 switch u.Type { 2402 case "retrying": 2403 return u.AsRetrying() 2404 case "exhausted": 2405 return u.AsExhausted() 2406 case "terminal": 2407 return u.AsTerminal() 2408 } 2409 return nil 2410 } 2411 2412 func (u BetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion) AsRetrying() (v BetaManagedAgentsRetryStatusRetrying) { 2413 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2414 return 2415 } 2416 2417 func (u BetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion) AsExhausted() (v BetaManagedAgentsRetryStatusExhausted) { 2418 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2419 return 2420 } 2421 2422 func (u BetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion) AsTerminal() (v BetaManagedAgentsRetryStatusTerminal) { 2423 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2424 return 2425 } 2426 2427 // Returns the unmodified JSON received from the API 2428 func (u BetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion) RawJSON() string { 2429 return u.JSON.raw 2430 } 2431 2432 func (r *BetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion) UnmarshalJSON(data []byte) error { 2433 return apijson.UnmarshalRoot(data, r) 2434 } 2435 2436 type BetaManagedAgentsMCPAuthenticationFailedErrorType string 2437 2438 const ( 2439 BetaManagedAgentsMCPAuthenticationFailedErrorTypeMCPAuthenticationFailedError BetaManagedAgentsMCPAuthenticationFailedErrorType = "mcp_authentication_failed_error" 2440 ) 2441 2442 // Failed to connect to an MCP server. 2443 type BetaManagedAgentsMCPConnectionFailedError struct { 2444 // Name of the MCP server that failed to connect. 2445 MCPServerName string `json:"mcp_server_name" api:"required"` 2446 // Human-readable error description. 2447 Message string `json:"message" api:"required"` 2448 // What the client should do next in response to this error. 2449 RetryStatus BetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion `json:"retry_status" api:"required"` 2450 // Any of "mcp_connection_failed_error". 2451 Type BetaManagedAgentsMCPConnectionFailedErrorType `json:"type" api:"required"` 2452 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 2453 JSON struct { 2454 MCPServerName respjson.Field 2455 Message respjson.Field 2456 RetryStatus respjson.Field 2457 Type respjson.Field 2458 ExtraFields map[string]respjson.Field 2459 raw string 2460 } `json:"-"` 2461 } 2462 2463 // Returns the unmodified JSON received from the API 2464 func (r BetaManagedAgentsMCPConnectionFailedError) RawJSON() string { return r.JSON.raw } 2465 func (r *BetaManagedAgentsMCPConnectionFailedError) UnmarshalJSON(data []byte) error { 2466 return apijson.UnmarshalRoot(data, r) 2467 } 2468 2469 // BetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion contains all possible 2470 // properties and values from [BetaManagedAgentsRetryStatusRetrying], 2471 // [BetaManagedAgentsRetryStatusExhausted], [BetaManagedAgentsRetryStatusTerminal]. 2472 // 2473 // Use the [BetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion.AsAny] method 2474 // to switch on the variant. 2475 // 2476 // Use the methods beginning with 'As' to cast the union to one of its variants. 2477 type BetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion struct { 2478 // Any of "retrying", "exhausted", "terminal". 2479 Type string `json:"type"` 2480 JSON struct { 2481 Type respjson.Field 2482 raw string 2483 } `json:"-"` 2484 } 2485 2486 // anyBetaManagedAgentsMCPConnectionFailedErrorRetryStatus is implemented by each 2487 // variant of [BetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion] to add 2488 // type safety for the return type of 2489 // [BetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion.AsAny] 2490 type anyBetaManagedAgentsMCPConnectionFailedErrorRetryStatus interface { 2491 implBetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion() 2492 } 2493 2494 func (BetaManagedAgentsRetryStatusRetrying) implBetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion() { 2495 } 2496 func (BetaManagedAgentsRetryStatusExhausted) implBetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion() { 2497 } 2498 func (BetaManagedAgentsRetryStatusTerminal) implBetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion() { 2499 } 2500 2501 // Use the following switch statement to find the correct variant 2502 // 2503 // switch variant := BetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion.AsAny().(type) { 2504 // case anthropic.BetaManagedAgentsRetryStatusRetrying: 2505 // case anthropic.BetaManagedAgentsRetryStatusExhausted: 2506 // case anthropic.BetaManagedAgentsRetryStatusTerminal: 2507 // default: 2508 // fmt.Errorf("no variant present") 2509 // } 2510 func (u BetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion) AsAny() anyBetaManagedAgentsMCPConnectionFailedErrorRetryStatus { 2511 switch u.Type { 2512 case "retrying": 2513 return u.AsRetrying() 2514 case "exhausted": 2515 return u.AsExhausted() 2516 case "terminal": 2517 return u.AsTerminal() 2518 } 2519 return nil 2520 } 2521 2522 func (u BetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion) AsRetrying() (v BetaManagedAgentsRetryStatusRetrying) { 2523 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2524 return 2525 } 2526 2527 func (u BetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion) AsExhausted() (v BetaManagedAgentsRetryStatusExhausted) { 2528 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2529 return 2530 } 2531 2532 func (u BetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion) AsTerminal() (v BetaManagedAgentsRetryStatusTerminal) { 2533 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2534 return 2535 } 2536 2537 // Returns the unmodified JSON received from the API 2538 func (u BetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion) RawJSON() string { 2539 return u.JSON.raw 2540 } 2541 2542 func (r *BetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion) UnmarshalJSON(data []byte) error { 2543 return apijson.UnmarshalRoot(data, r) 2544 } 2545 2546 type BetaManagedAgentsMCPConnectionFailedErrorType string 2547 2548 const ( 2549 BetaManagedAgentsMCPConnectionFailedErrorTypeMCPConnectionFailedError BetaManagedAgentsMCPConnectionFailedErrorType = "mcp_connection_failed_error" 2550 ) 2551 2552 // The model is currently overloaded. Emitted after automatic retries are 2553 // exhausted. 2554 type BetaManagedAgentsModelOverloadedError struct { 2555 // Human-readable error description. 2556 Message string `json:"message" api:"required"` 2557 // What the client should do next in response to this error. 2558 RetryStatus BetaManagedAgentsModelOverloadedErrorRetryStatusUnion `json:"retry_status" api:"required"` 2559 // Any of "model_overloaded_error". 2560 Type BetaManagedAgentsModelOverloadedErrorType `json:"type" api:"required"` 2561 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 2562 JSON struct { 2563 Message respjson.Field 2564 RetryStatus respjson.Field 2565 Type respjson.Field 2566 ExtraFields map[string]respjson.Field 2567 raw string 2568 } `json:"-"` 2569 } 2570 2571 // Returns the unmodified JSON received from the API 2572 func (r BetaManagedAgentsModelOverloadedError) RawJSON() string { return r.JSON.raw } 2573 func (r *BetaManagedAgentsModelOverloadedError) UnmarshalJSON(data []byte) error { 2574 return apijson.UnmarshalRoot(data, r) 2575 } 2576 2577 // BetaManagedAgentsModelOverloadedErrorRetryStatusUnion contains all possible 2578 // properties and values from [BetaManagedAgentsRetryStatusRetrying], 2579 // [BetaManagedAgentsRetryStatusExhausted], [BetaManagedAgentsRetryStatusTerminal]. 2580 // 2581 // Use the [BetaManagedAgentsModelOverloadedErrorRetryStatusUnion.AsAny] method to 2582 // switch on the variant. 2583 // 2584 // Use the methods beginning with 'As' to cast the union to one of its variants. 2585 type BetaManagedAgentsModelOverloadedErrorRetryStatusUnion struct { 2586 // Any of "retrying", "exhausted", "terminal". 2587 Type string `json:"type"` 2588 JSON struct { 2589 Type respjson.Field 2590 raw string 2591 } `json:"-"` 2592 } 2593 2594 // anyBetaManagedAgentsModelOverloadedErrorRetryStatus is implemented by each 2595 // variant of [BetaManagedAgentsModelOverloadedErrorRetryStatusUnion] to add type 2596 // safety for the return type of 2597 // [BetaManagedAgentsModelOverloadedErrorRetryStatusUnion.AsAny] 2598 type anyBetaManagedAgentsModelOverloadedErrorRetryStatus interface { 2599 implBetaManagedAgentsModelOverloadedErrorRetryStatusUnion() 2600 } 2601 2602 func (BetaManagedAgentsRetryStatusRetrying) implBetaManagedAgentsModelOverloadedErrorRetryStatusUnion() { 2603 } 2604 func (BetaManagedAgentsRetryStatusExhausted) implBetaManagedAgentsModelOverloadedErrorRetryStatusUnion() { 2605 } 2606 func (BetaManagedAgentsRetryStatusTerminal) implBetaManagedAgentsModelOverloadedErrorRetryStatusUnion() { 2607 } 2608 2609 // Use the following switch statement to find the correct variant 2610 // 2611 // switch variant := BetaManagedAgentsModelOverloadedErrorRetryStatusUnion.AsAny().(type) { 2612 // case anthropic.BetaManagedAgentsRetryStatusRetrying: 2613 // case anthropic.BetaManagedAgentsRetryStatusExhausted: 2614 // case anthropic.BetaManagedAgentsRetryStatusTerminal: 2615 // default: 2616 // fmt.Errorf("no variant present") 2617 // } 2618 func (u BetaManagedAgentsModelOverloadedErrorRetryStatusUnion) AsAny() anyBetaManagedAgentsModelOverloadedErrorRetryStatus { 2619 switch u.Type { 2620 case "retrying": 2621 return u.AsRetrying() 2622 case "exhausted": 2623 return u.AsExhausted() 2624 case "terminal": 2625 return u.AsTerminal() 2626 } 2627 return nil 2628 } 2629 2630 func (u BetaManagedAgentsModelOverloadedErrorRetryStatusUnion) AsRetrying() (v BetaManagedAgentsRetryStatusRetrying) { 2631 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2632 return 2633 } 2634 2635 func (u BetaManagedAgentsModelOverloadedErrorRetryStatusUnion) AsExhausted() (v BetaManagedAgentsRetryStatusExhausted) { 2636 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2637 return 2638 } 2639 2640 func (u BetaManagedAgentsModelOverloadedErrorRetryStatusUnion) AsTerminal() (v BetaManagedAgentsRetryStatusTerminal) { 2641 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2642 return 2643 } 2644 2645 // Returns the unmodified JSON received from the API 2646 func (u BetaManagedAgentsModelOverloadedErrorRetryStatusUnion) RawJSON() string { return u.JSON.raw } 2647 2648 func (r *BetaManagedAgentsModelOverloadedErrorRetryStatusUnion) UnmarshalJSON(data []byte) error { 2649 return apijson.UnmarshalRoot(data, r) 2650 } 2651 2652 type BetaManagedAgentsModelOverloadedErrorType string 2653 2654 const ( 2655 BetaManagedAgentsModelOverloadedErrorTypeModelOverloadedError BetaManagedAgentsModelOverloadedErrorType = "model_overloaded_error" 2656 ) 2657 2658 // The model request was rate-limited. 2659 type BetaManagedAgentsModelRateLimitedError struct { 2660 // Human-readable error description. 2661 Message string `json:"message" api:"required"` 2662 // What the client should do next in response to this error. 2663 RetryStatus BetaManagedAgentsModelRateLimitedErrorRetryStatusUnion `json:"retry_status" api:"required"` 2664 // Any of "model_rate_limited_error". 2665 Type BetaManagedAgentsModelRateLimitedErrorType `json:"type" api:"required"` 2666 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 2667 JSON struct { 2668 Message respjson.Field 2669 RetryStatus respjson.Field 2670 Type respjson.Field 2671 ExtraFields map[string]respjson.Field 2672 raw string 2673 } `json:"-"` 2674 } 2675 2676 // Returns the unmodified JSON received from the API 2677 func (r BetaManagedAgentsModelRateLimitedError) RawJSON() string { return r.JSON.raw } 2678 func (r *BetaManagedAgentsModelRateLimitedError) UnmarshalJSON(data []byte) error { 2679 return apijson.UnmarshalRoot(data, r) 2680 } 2681 2682 // BetaManagedAgentsModelRateLimitedErrorRetryStatusUnion contains all possible 2683 // properties and values from [BetaManagedAgentsRetryStatusRetrying], 2684 // [BetaManagedAgentsRetryStatusExhausted], [BetaManagedAgentsRetryStatusTerminal]. 2685 // 2686 // Use the [BetaManagedAgentsModelRateLimitedErrorRetryStatusUnion.AsAny] method to 2687 // switch on the variant. 2688 // 2689 // Use the methods beginning with 'As' to cast the union to one of its variants. 2690 type BetaManagedAgentsModelRateLimitedErrorRetryStatusUnion struct { 2691 // Any of "retrying", "exhausted", "terminal". 2692 Type string `json:"type"` 2693 JSON struct { 2694 Type respjson.Field 2695 raw string 2696 } `json:"-"` 2697 } 2698 2699 // anyBetaManagedAgentsModelRateLimitedErrorRetryStatus is implemented by each 2700 // variant of [BetaManagedAgentsModelRateLimitedErrorRetryStatusUnion] to add type 2701 // safety for the return type of 2702 // [BetaManagedAgentsModelRateLimitedErrorRetryStatusUnion.AsAny] 2703 type anyBetaManagedAgentsModelRateLimitedErrorRetryStatus interface { 2704 implBetaManagedAgentsModelRateLimitedErrorRetryStatusUnion() 2705 } 2706 2707 func (BetaManagedAgentsRetryStatusRetrying) implBetaManagedAgentsModelRateLimitedErrorRetryStatusUnion() { 2708 } 2709 func (BetaManagedAgentsRetryStatusExhausted) implBetaManagedAgentsModelRateLimitedErrorRetryStatusUnion() { 2710 } 2711 func (BetaManagedAgentsRetryStatusTerminal) implBetaManagedAgentsModelRateLimitedErrorRetryStatusUnion() { 2712 } 2713 2714 // Use the following switch statement to find the correct variant 2715 // 2716 // switch variant := BetaManagedAgentsModelRateLimitedErrorRetryStatusUnion.AsAny().(type) { 2717 // case anthropic.BetaManagedAgentsRetryStatusRetrying: 2718 // case anthropic.BetaManagedAgentsRetryStatusExhausted: 2719 // case anthropic.BetaManagedAgentsRetryStatusTerminal: 2720 // default: 2721 // fmt.Errorf("no variant present") 2722 // } 2723 func (u BetaManagedAgentsModelRateLimitedErrorRetryStatusUnion) AsAny() anyBetaManagedAgentsModelRateLimitedErrorRetryStatus { 2724 switch u.Type { 2725 case "retrying": 2726 return u.AsRetrying() 2727 case "exhausted": 2728 return u.AsExhausted() 2729 case "terminal": 2730 return u.AsTerminal() 2731 } 2732 return nil 2733 } 2734 2735 func (u BetaManagedAgentsModelRateLimitedErrorRetryStatusUnion) AsRetrying() (v BetaManagedAgentsRetryStatusRetrying) { 2736 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2737 return 2738 } 2739 2740 func (u BetaManagedAgentsModelRateLimitedErrorRetryStatusUnion) AsExhausted() (v BetaManagedAgentsRetryStatusExhausted) { 2741 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2742 return 2743 } 2744 2745 func (u BetaManagedAgentsModelRateLimitedErrorRetryStatusUnion) AsTerminal() (v BetaManagedAgentsRetryStatusTerminal) { 2746 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2747 return 2748 } 2749 2750 // Returns the unmodified JSON received from the API 2751 func (u BetaManagedAgentsModelRateLimitedErrorRetryStatusUnion) RawJSON() string { return u.JSON.raw } 2752 2753 func (r *BetaManagedAgentsModelRateLimitedErrorRetryStatusUnion) UnmarshalJSON(data []byte) error { 2754 return apijson.UnmarshalRoot(data, r) 2755 } 2756 2757 type BetaManagedAgentsModelRateLimitedErrorType string 2758 2759 const ( 2760 BetaManagedAgentsModelRateLimitedErrorTypeModelRateLimitedError BetaManagedAgentsModelRateLimitedErrorType = "model_rate_limited_error" 2761 ) 2762 2763 // A model request failed for a reason other than overload or rate-limiting. 2764 type BetaManagedAgentsModelRequestFailedError struct { 2765 // Human-readable error description. 2766 Message string `json:"message" api:"required"` 2767 // What the client should do next in response to this error. 2768 RetryStatus BetaManagedAgentsModelRequestFailedErrorRetryStatusUnion `json:"retry_status" api:"required"` 2769 // Any of "model_request_failed_error". 2770 Type BetaManagedAgentsModelRequestFailedErrorType `json:"type" api:"required"` 2771 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 2772 JSON struct { 2773 Message respjson.Field 2774 RetryStatus respjson.Field 2775 Type respjson.Field 2776 ExtraFields map[string]respjson.Field 2777 raw string 2778 } `json:"-"` 2779 } 2780 2781 // Returns the unmodified JSON received from the API 2782 func (r BetaManagedAgentsModelRequestFailedError) RawJSON() string { return r.JSON.raw } 2783 func (r *BetaManagedAgentsModelRequestFailedError) UnmarshalJSON(data []byte) error { 2784 return apijson.UnmarshalRoot(data, r) 2785 } 2786 2787 // BetaManagedAgentsModelRequestFailedErrorRetryStatusUnion contains all possible 2788 // properties and values from [BetaManagedAgentsRetryStatusRetrying], 2789 // [BetaManagedAgentsRetryStatusExhausted], [BetaManagedAgentsRetryStatusTerminal]. 2790 // 2791 // Use the [BetaManagedAgentsModelRequestFailedErrorRetryStatusUnion.AsAny] method 2792 // to switch on the variant. 2793 // 2794 // Use the methods beginning with 'As' to cast the union to one of its variants. 2795 type BetaManagedAgentsModelRequestFailedErrorRetryStatusUnion struct { 2796 // Any of "retrying", "exhausted", "terminal". 2797 Type string `json:"type"` 2798 JSON struct { 2799 Type respjson.Field 2800 raw string 2801 } `json:"-"` 2802 } 2803 2804 // anyBetaManagedAgentsModelRequestFailedErrorRetryStatus is implemented by each 2805 // variant of [BetaManagedAgentsModelRequestFailedErrorRetryStatusUnion] to add 2806 // type safety for the return type of 2807 // [BetaManagedAgentsModelRequestFailedErrorRetryStatusUnion.AsAny] 2808 type anyBetaManagedAgentsModelRequestFailedErrorRetryStatus interface { 2809 implBetaManagedAgentsModelRequestFailedErrorRetryStatusUnion() 2810 } 2811 2812 func (BetaManagedAgentsRetryStatusRetrying) implBetaManagedAgentsModelRequestFailedErrorRetryStatusUnion() { 2813 } 2814 func (BetaManagedAgentsRetryStatusExhausted) implBetaManagedAgentsModelRequestFailedErrorRetryStatusUnion() { 2815 } 2816 func (BetaManagedAgentsRetryStatusTerminal) implBetaManagedAgentsModelRequestFailedErrorRetryStatusUnion() { 2817 } 2818 2819 // Use the following switch statement to find the correct variant 2820 // 2821 // switch variant := BetaManagedAgentsModelRequestFailedErrorRetryStatusUnion.AsAny().(type) { 2822 // case anthropic.BetaManagedAgentsRetryStatusRetrying: 2823 // case anthropic.BetaManagedAgentsRetryStatusExhausted: 2824 // case anthropic.BetaManagedAgentsRetryStatusTerminal: 2825 // default: 2826 // fmt.Errorf("no variant present") 2827 // } 2828 func (u BetaManagedAgentsModelRequestFailedErrorRetryStatusUnion) AsAny() anyBetaManagedAgentsModelRequestFailedErrorRetryStatus { 2829 switch u.Type { 2830 case "retrying": 2831 return u.AsRetrying() 2832 case "exhausted": 2833 return u.AsExhausted() 2834 case "terminal": 2835 return u.AsTerminal() 2836 } 2837 return nil 2838 } 2839 2840 func (u BetaManagedAgentsModelRequestFailedErrorRetryStatusUnion) AsRetrying() (v BetaManagedAgentsRetryStatusRetrying) { 2841 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2842 return 2843 } 2844 2845 func (u BetaManagedAgentsModelRequestFailedErrorRetryStatusUnion) AsExhausted() (v BetaManagedAgentsRetryStatusExhausted) { 2846 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2847 return 2848 } 2849 2850 func (u BetaManagedAgentsModelRequestFailedErrorRetryStatusUnion) AsTerminal() (v BetaManagedAgentsRetryStatusTerminal) { 2851 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 2852 return 2853 } 2854 2855 // Returns the unmodified JSON received from the API 2856 func (u BetaManagedAgentsModelRequestFailedErrorRetryStatusUnion) RawJSON() string { return u.JSON.raw } 2857 2858 func (r *BetaManagedAgentsModelRequestFailedErrorRetryStatusUnion) UnmarshalJSON(data []byte) error { 2859 return apijson.UnmarshalRoot(data, r) 2860 } 2861 2862 type BetaManagedAgentsModelRequestFailedErrorType string 2863 2864 const ( 2865 BetaManagedAgentsModelRequestFailedErrorTypeModelRequestFailedError BetaManagedAgentsModelRequestFailedErrorType = "model_request_failed_error" 2866 ) 2867 2868 // Plain text document content. 2869 type BetaManagedAgentsPlainTextDocumentSource struct { 2870 // The plain text content. 2871 Data string `json:"data" api:"required"` 2872 // MIME type of the text content. Must be "text/plain". 2873 // 2874 // Any of "text/plain". 2875 MediaType BetaManagedAgentsPlainTextDocumentSourceMediaType `json:"media_type" api:"required"` 2876 // Any of "text". 2877 Type BetaManagedAgentsPlainTextDocumentSourceType `json:"type" api:"required"` 2878 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 2879 JSON struct { 2880 Data respjson.Field 2881 MediaType respjson.Field 2882 Type respjson.Field 2883 ExtraFields map[string]respjson.Field 2884 raw string 2885 } `json:"-"` 2886 } 2887 2888 // Returns the unmodified JSON received from the API 2889 func (r BetaManagedAgentsPlainTextDocumentSource) RawJSON() string { return r.JSON.raw } 2890 func (r *BetaManagedAgentsPlainTextDocumentSource) UnmarshalJSON(data []byte) error { 2891 return apijson.UnmarshalRoot(data, r) 2892 } 2893 2894 // ToParam converts this BetaManagedAgentsPlainTextDocumentSource to a 2895 // BetaManagedAgentsPlainTextDocumentSourceParam. 2896 // 2897 // Warning: the fields of the param type will not be present. ToParam should only 2898 // be used at the last possible moment before sending a request. Test for this with 2899 // BetaManagedAgentsPlainTextDocumentSourceParam.Overrides() 2900 func (r BetaManagedAgentsPlainTextDocumentSource) ToParam() BetaManagedAgentsPlainTextDocumentSourceParam { 2901 return param.Override[BetaManagedAgentsPlainTextDocumentSourceParam](json.RawMessage(r.RawJSON())) 2902 } 2903 2904 // MIME type of the text content. Must be "text/plain". 2905 type BetaManagedAgentsPlainTextDocumentSourceMediaType string 2906 2907 const ( 2908 BetaManagedAgentsPlainTextDocumentSourceMediaTypeTextPlain BetaManagedAgentsPlainTextDocumentSourceMediaType = "text/plain" 2909 ) 2910 2911 type BetaManagedAgentsPlainTextDocumentSourceType string 2912 2913 const ( 2914 BetaManagedAgentsPlainTextDocumentSourceTypeText BetaManagedAgentsPlainTextDocumentSourceType = "text" 2915 ) 2916 2917 // Plain text document content. 2918 // 2919 // The properties Data, MediaType, Type are required. 2920 type BetaManagedAgentsPlainTextDocumentSourceParam struct { 2921 // The plain text content. 2922 Data string `json:"data" api:"required"` 2923 // MIME type of the text content. Must be "text/plain". 2924 // 2925 // Any of "text/plain". 2926 MediaType BetaManagedAgentsPlainTextDocumentSourceMediaType `json:"media_type,omitzero" api:"required"` 2927 // Any of "text". 2928 Type BetaManagedAgentsPlainTextDocumentSourceType `json:"type,omitzero" api:"required"` 2929 paramObj 2930 } 2931 2932 func (r BetaManagedAgentsPlainTextDocumentSourceParam) MarshalJSON() (data []byte, err error) { 2933 type shadow BetaManagedAgentsPlainTextDocumentSourceParam 2934 return param.MarshalObject(r, (*shadow)(&r)) 2935 } 2936 func (r *BetaManagedAgentsPlainTextDocumentSourceParam) UnmarshalJSON(data []byte) error { 2937 return apijson.UnmarshalRoot(data, r) 2938 } 2939 2940 // Placeholder for content withheld by Anthropic model policy. 2941 type BetaManagedAgentsRedactedBlock struct { 2942 // Any of "redacted". 2943 Type BetaManagedAgentsRedactedBlockType `json:"type" api:"required"` 2944 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 2945 JSON struct { 2946 Type respjson.Field 2947 ExtraFields map[string]respjson.Field 2948 raw string 2949 } `json:"-"` 2950 } 2951 2952 // Returns the unmodified JSON received from the API 2953 func (r BetaManagedAgentsRedactedBlock) RawJSON() string { return r.JSON.raw } 2954 func (r *BetaManagedAgentsRedactedBlock) UnmarshalJSON(data []byte) error { 2955 return apijson.UnmarshalRoot(data, r) 2956 } 2957 2958 // ToParam converts this BetaManagedAgentsRedactedBlock to a 2959 // BetaManagedAgentsRedactedBlockParam. 2960 // 2961 // Warning: the fields of the param type will not be present. ToParam should only 2962 // be used at the last possible moment before sending a request. Test for this with 2963 // BetaManagedAgentsRedactedBlockParam.Overrides() 2964 func (r BetaManagedAgentsRedactedBlock) ToParam() BetaManagedAgentsRedactedBlockParam { 2965 return param.Override[BetaManagedAgentsRedactedBlockParam](json.RawMessage(r.RawJSON())) 2966 } 2967 2968 type BetaManagedAgentsRedactedBlockType string 2969 2970 const ( 2971 BetaManagedAgentsRedactedBlockTypeRedacted BetaManagedAgentsRedactedBlockType = "redacted" 2972 ) 2973 2974 // Placeholder for content withheld by Anthropic model policy. 2975 // 2976 // The property Type is required. 2977 type BetaManagedAgentsRedactedBlockParam struct { 2978 // Any of "redacted". 2979 Type BetaManagedAgentsRedactedBlockType `json:"type,omitzero" api:"required"` 2980 paramObj 2981 } 2982 2983 func (r BetaManagedAgentsRedactedBlockParam) MarshalJSON() (data []byte, err error) { 2984 type shadow BetaManagedAgentsRedactedBlockParam 2985 return param.MarshalObject(r, (*shadow)(&r)) 2986 } 2987 func (r *BetaManagedAgentsRedactedBlockParam) UnmarshalJSON(data []byte) error { 2988 return apijson.UnmarshalRoot(data, r) 2989 } 2990 2991 // This turn is dead; queued inputs are flushed and the session returns to idle. 2992 // Client may send a new prompt. 2993 type BetaManagedAgentsRetryStatusExhausted struct { 2994 // Any of "exhausted". 2995 Type BetaManagedAgentsRetryStatusExhaustedType `json:"type" api:"required"` 2996 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 2997 JSON struct { 2998 Type respjson.Field 2999 ExtraFields map[string]respjson.Field 3000 raw string 3001 } `json:"-"` 3002 } 3003 3004 // Returns the unmodified JSON received from the API 3005 func (r BetaManagedAgentsRetryStatusExhausted) RawJSON() string { return r.JSON.raw } 3006 func (r *BetaManagedAgentsRetryStatusExhausted) UnmarshalJSON(data []byte) error { 3007 return apijson.UnmarshalRoot(data, r) 3008 } 3009 3010 type BetaManagedAgentsRetryStatusExhaustedType string 3011 3012 const ( 3013 BetaManagedAgentsRetryStatusExhaustedTypeExhausted BetaManagedAgentsRetryStatusExhaustedType = "exhausted" 3014 ) 3015 3016 // The server is retrying automatically. Client should wait; the same error type 3017 // may fire again as retrying, then once as exhausted when the retry budget runs 3018 // out. 3019 type BetaManagedAgentsRetryStatusRetrying struct { 3020 // Any of "retrying". 3021 Type BetaManagedAgentsRetryStatusRetryingType `json:"type" api:"required"` 3022 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 3023 JSON struct { 3024 Type respjson.Field 3025 ExtraFields map[string]respjson.Field 3026 raw string 3027 } `json:"-"` 3028 } 3029 3030 // Returns the unmodified JSON received from the API 3031 func (r BetaManagedAgentsRetryStatusRetrying) RawJSON() string { return r.JSON.raw } 3032 func (r *BetaManagedAgentsRetryStatusRetrying) UnmarshalJSON(data []byte) error { 3033 return apijson.UnmarshalRoot(data, r) 3034 } 3035 3036 type BetaManagedAgentsRetryStatusRetryingType string 3037 3038 const ( 3039 BetaManagedAgentsRetryStatusRetryingTypeRetrying BetaManagedAgentsRetryStatusRetryingType = "retrying" 3040 ) 3041 3042 // The session encountered a terminal error and will transition to `terminated` 3043 // state. 3044 type BetaManagedAgentsRetryStatusTerminal struct { 3045 // Any of "terminal". 3046 Type BetaManagedAgentsRetryStatusTerminalType `json:"type" api:"required"` 3047 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 3048 JSON struct { 3049 Type respjson.Field 3050 ExtraFields map[string]respjson.Field 3051 raw string 3052 } `json:"-"` 3053 } 3054 3055 // Returns the unmodified JSON received from the API 3056 func (r BetaManagedAgentsRetryStatusTerminal) RawJSON() string { return r.JSON.raw } 3057 func (r *BetaManagedAgentsRetryStatusTerminal) UnmarshalJSON(data []byte) error { 3058 return apijson.UnmarshalRoot(data, r) 3059 } 3060 3061 type BetaManagedAgentsRetryStatusTerminalType string 3062 3063 const ( 3064 BetaManagedAgentsRetryStatusTerminalTypeTerminal BetaManagedAgentsRetryStatusTerminalType = "terminal" 3065 ) 3066 3067 // A block containing a web search result. 3068 type BetaManagedAgentsSearchResultBlock struct { 3069 // Citation settings for a search result. 3070 Citations BetaManagedAgentsSearchResultCitations `json:"citations" api:"required"` 3071 // Array of text content blocks from the search result. 3072 Content []BetaManagedAgentsSearchResultContent `json:"content" api:"required"` 3073 // The URL source of the search result. 3074 Source string `json:"source" api:"required"` 3075 // The title of the search result. 3076 Title string `json:"title" api:"required"` 3077 // Any of "search_result". 3078 Type BetaManagedAgentsSearchResultBlockType `json:"type" api:"required"` 3079 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 3080 JSON struct { 3081 Citations respjson.Field 3082 Content respjson.Field 3083 Source respjson.Field 3084 Title respjson.Field 3085 Type respjson.Field 3086 ExtraFields map[string]respjson.Field 3087 raw string 3088 } `json:"-"` 3089 } 3090 3091 // Returns the unmodified JSON received from the API 3092 func (r BetaManagedAgentsSearchResultBlock) RawJSON() string { return r.JSON.raw } 3093 func (r *BetaManagedAgentsSearchResultBlock) UnmarshalJSON(data []byte) error { 3094 return apijson.UnmarshalRoot(data, r) 3095 } 3096 3097 // ToParam converts this BetaManagedAgentsSearchResultBlock to a 3098 // BetaManagedAgentsSearchResultBlockParam. 3099 // 3100 // Warning: the fields of the param type will not be present. ToParam should only 3101 // be used at the last possible moment before sending a request. Test for this with 3102 // BetaManagedAgentsSearchResultBlockParam.Overrides() 3103 func (r BetaManagedAgentsSearchResultBlock) ToParam() BetaManagedAgentsSearchResultBlockParam { 3104 return param.Override[BetaManagedAgentsSearchResultBlockParam](json.RawMessage(r.RawJSON())) 3105 } 3106 3107 type BetaManagedAgentsSearchResultBlockType string 3108 3109 const ( 3110 BetaManagedAgentsSearchResultBlockTypeSearchResult BetaManagedAgentsSearchResultBlockType = "search_result" 3111 ) 3112 3113 // A block containing a web search result. 3114 // 3115 // The properties Citations, Content, Source, Title, Type are required. 3116 type BetaManagedAgentsSearchResultBlockParam struct { 3117 // Citation settings for a search result. 3118 Citations BetaManagedAgentsSearchResultCitationsParam `json:"citations,omitzero" api:"required"` 3119 // Array of text content blocks from the search result. 3120 Content []BetaManagedAgentsSearchResultContentParam `json:"content,omitzero" api:"required"` 3121 // The URL source of the search result. 3122 Source string `json:"source" api:"required"` 3123 // The title of the search result. 3124 Title string `json:"title" api:"required"` 3125 // Any of "search_result". 3126 Type BetaManagedAgentsSearchResultBlockType `json:"type,omitzero" api:"required"` 3127 paramObj 3128 } 3129 3130 func (r BetaManagedAgentsSearchResultBlockParam) MarshalJSON() (data []byte, err error) { 3131 type shadow BetaManagedAgentsSearchResultBlockParam 3132 return param.MarshalObject(r, (*shadow)(&r)) 3133 } 3134 func (r *BetaManagedAgentsSearchResultBlockParam) UnmarshalJSON(data []byte) error { 3135 return apijson.UnmarshalRoot(data, r) 3136 } 3137 3138 // Citation settings for a search result. 3139 type BetaManagedAgentsSearchResultCitations struct { 3140 // Whether citations are enabled for this search result. 3141 Enabled bool `json:"enabled" api:"required"` 3142 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 3143 JSON struct { 3144 Enabled respjson.Field 3145 ExtraFields map[string]respjson.Field 3146 raw string 3147 } `json:"-"` 3148 } 3149 3150 // Returns the unmodified JSON received from the API 3151 func (r BetaManagedAgentsSearchResultCitations) RawJSON() string { return r.JSON.raw } 3152 func (r *BetaManagedAgentsSearchResultCitations) UnmarshalJSON(data []byte) error { 3153 return apijson.UnmarshalRoot(data, r) 3154 } 3155 3156 // ToParam converts this BetaManagedAgentsSearchResultCitations to a 3157 // BetaManagedAgentsSearchResultCitationsParam. 3158 // 3159 // Warning: the fields of the param type will not be present. ToParam should only 3160 // be used at the last possible moment before sending a request. Test for this with 3161 // BetaManagedAgentsSearchResultCitationsParam.Overrides() 3162 func (r BetaManagedAgentsSearchResultCitations) ToParam() BetaManagedAgentsSearchResultCitationsParam { 3163 return param.Override[BetaManagedAgentsSearchResultCitationsParam](json.RawMessage(r.RawJSON())) 3164 } 3165 3166 // Citation settings for a search result. 3167 // 3168 // The property Enabled is required. 3169 type BetaManagedAgentsSearchResultCitationsParam struct { 3170 // Whether citations are enabled for this search result. 3171 Enabled bool `json:"enabled" api:"required"` 3172 paramObj 3173 } 3174 3175 func (r BetaManagedAgentsSearchResultCitationsParam) MarshalJSON() (data []byte, err error) { 3176 type shadow BetaManagedAgentsSearchResultCitationsParam 3177 return param.MarshalObject(r, (*shadow)(&r)) 3178 } 3179 func (r *BetaManagedAgentsSearchResultCitationsParam) UnmarshalJSON(data []byte) error { 3180 return apijson.UnmarshalRoot(data, r) 3181 } 3182 3183 // Text content within a search result. 3184 type BetaManagedAgentsSearchResultContent struct { 3185 // The text content. 3186 Text string `json:"text" api:"required"` 3187 // Any of "text". 3188 Type BetaManagedAgentsSearchResultContentType `json:"type" api:"required"` 3189 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 3190 JSON struct { 3191 Text respjson.Field 3192 Type respjson.Field 3193 ExtraFields map[string]respjson.Field 3194 raw string 3195 } `json:"-"` 3196 } 3197 3198 // Returns the unmodified JSON received from the API 3199 func (r BetaManagedAgentsSearchResultContent) RawJSON() string { return r.JSON.raw } 3200 func (r *BetaManagedAgentsSearchResultContent) UnmarshalJSON(data []byte) error { 3201 return apijson.UnmarshalRoot(data, r) 3202 } 3203 3204 // ToParam converts this BetaManagedAgentsSearchResultContent to a 3205 // BetaManagedAgentsSearchResultContentParam. 3206 // 3207 // Warning: the fields of the param type will not be present. ToParam should only 3208 // be used at the last possible moment before sending a request. Test for this with 3209 // BetaManagedAgentsSearchResultContentParam.Overrides() 3210 func (r BetaManagedAgentsSearchResultContent) ToParam() BetaManagedAgentsSearchResultContentParam { 3211 return param.Override[BetaManagedAgentsSearchResultContentParam](json.RawMessage(r.RawJSON())) 3212 } 3213 3214 type BetaManagedAgentsSearchResultContentType string 3215 3216 const ( 3217 BetaManagedAgentsSearchResultContentTypeText BetaManagedAgentsSearchResultContentType = "text" 3218 ) 3219 3220 // Text content within a search result. 3221 // 3222 // The properties Text, Type are required. 3223 type BetaManagedAgentsSearchResultContentParam struct { 3224 // The text content. 3225 Text string `json:"text" api:"required"` 3226 // Any of "text". 3227 Type BetaManagedAgentsSearchResultContentType `json:"type,omitzero" api:"required"` 3228 paramObj 3229 } 3230 3231 func (r BetaManagedAgentsSearchResultContentParam) MarshalJSON() (data []byte, err error) { 3232 type shadow BetaManagedAgentsSearchResultContentParam 3233 return param.MarshalObject(r, (*shadow)(&r)) 3234 } 3235 func (r *BetaManagedAgentsSearchResultContentParam) UnmarshalJSON(data []byte) error { 3236 return apijson.UnmarshalRoot(data, r) 3237 } 3238 3239 // Events that were successfully sent to the session. 3240 type BetaManagedAgentsSendSessionEvents struct { 3241 // Sent events 3242 Data []BetaManagedAgentsSendSessionEventsDataUnion `json:"data"` 3243 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 3244 JSON struct { 3245 Data respjson.Field 3246 ExtraFields map[string]respjson.Field 3247 raw string 3248 } `json:"-"` 3249 } 3250 3251 // Returns the unmodified JSON received from the API 3252 func (r BetaManagedAgentsSendSessionEvents) RawJSON() string { return r.JSON.raw } 3253 func (r *BetaManagedAgentsSendSessionEvents) UnmarshalJSON(data []byte) error { 3254 return apijson.UnmarshalRoot(data, r) 3255 } 3256 3257 // BetaManagedAgentsSendSessionEventsDataUnion contains all possible properties and 3258 // values from [BetaManagedAgentsUserMessageEvent], 3259 // [BetaManagedAgentsUserInterruptEvent], 3260 // [BetaManagedAgentsUserToolConfirmationEvent], 3261 // [BetaManagedAgentsUserCustomToolResultEvent], 3262 // [BetaManagedAgentsUserDefineOutcomeEvent], 3263 // [BetaManagedAgentsUserToolResultEvent], [BetaManagedAgentsSystemMessageEvent]. 3264 // 3265 // Use the [BetaManagedAgentsSendSessionEventsDataUnion.AsAny] method to switch on 3266 // the variant. 3267 // 3268 // Use the methods beginning with 'As' to cast the union to one of its variants. 3269 type BetaManagedAgentsSendSessionEventsDataUnion struct { 3270 ID string `json:"id"` 3271 // This field is a union of [[]BetaManagedAgentsUserMessageEventContentUnion], 3272 // [[]BetaManagedAgentsUserCustomToolResultEventContentUnion], 3273 // [[]BetaManagedAgentsUserToolResultEventContentUnion], 3274 // [[]BetaManagedAgentsSystemContentBlock] 3275 Content BetaManagedAgentsSendSessionEventsDataUnionContent `json:"content"` 3276 // Any of "user.message", "user.interrupt", "user.tool_confirmation", 3277 // "user.custom_tool_result", "user.define_outcome", "user.tool_result", 3278 // "system.message". 3279 Type string `json:"type"` 3280 ProcessedAt time.Time `json:"processed_at"` 3281 SessionThreadID string `json:"session_thread_id"` 3282 // This field is from variant [BetaManagedAgentsUserToolConfirmationEvent]. 3283 Result BetaManagedAgentsUserToolConfirmationEventResult `json:"result"` 3284 ToolUseID string `json:"tool_use_id"` 3285 // This field is from variant [BetaManagedAgentsUserToolConfirmationEvent]. 3286 DenyMessage string `json:"deny_message"` 3287 // This field is from variant [BetaManagedAgentsUserCustomToolResultEvent]. 3288 CustomToolUseID string `json:"custom_tool_use_id"` 3289 IsError bool `json:"is_error"` 3290 // This field is from variant [BetaManagedAgentsUserDefineOutcomeEvent]. 3291 Description string `json:"description"` 3292 // This field is from variant [BetaManagedAgentsUserDefineOutcomeEvent]. 3293 MaxIterations int64 `json:"max_iterations"` 3294 // This field is from variant [BetaManagedAgentsUserDefineOutcomeEvent]. 3295 OutcomeID string `json:"outcome_id"` 3296 // This field is from variant [BetaManagedAgentsUserDefineOutcomeEvent]. 3297 Rubric BetaManagedAgentsUserDefineOutcomeEventRubricUnion `json:"rubric"` 3298 JSON struct { 3299 ID respjson.Field 3300 Content respjson.Field 3301 Type respjson.Field 3302 ProcessedAt respjson.Field 3303 SessionThreadID respjson.Field 3304 Result respjson.Field 3305 ToolUseID respjson.Field 3306 DenyMessage respjson.Field 3307 CustomToolUseID respjson.Field 3308 IsError respjson.Field 3309 Description respjson.Field 3310 MaxIterations respjson.Field 3311 OutcomeID respjson.Field 3312 Rubric respjson.Field 3313 raw string 3314 } `json:"-"` 3315 } 3316 3317 // anyBetaManagedAgentsSendSessionEventsData is implemented by each variant of 3318 // [BetaManagedAgentsSendSessionEventsDataUnion] to add type safety for the return 3319 // type of [BetaManagedAgentsSendSessionEventsDataUnion.AsAny] 3320 type anyBetaManagedAgentsSendSessionEventsData interface { 3321 implBetaManagedAgentsSendSessionEventsDataUnion() 3322 } 3323 3324 func (BetaManagedAgentsUserMessageEvent) implBetaManagedAgentsSendSessionEventsDataUnion() {} 3325 func (BetaManagedAgentsUserInterruptEvent) implBetaManagedAgentsSendSessionEventsDataUnion() {} 3326 func (BetaManagedAgentsUserToolConfirmationEvent) implBetaManagedAgentsSendSessionEventsDataUnion() {} 3327 func (BetaManagedAgentsUserCustomToolResultEvent) implBetaManagedAgentsSendSessionEventsDataUnion() {} 3328 func (BetaManagedAgentsUserDefineOutcomeEvent) implBetaManagedAgentsSendSessionEventsDataUnion() {} 3329 func (BetaManagedAgentsUserToolResultEvent) implBetaManagedAgentsSendSessionEventsDataUnion() {} 3330 func (BetaManagedAgentsSystemMessageEvent) implBetaManagedAgentsSendSessionEventsDataUnion() {} 3331 3332 // Use the following switch statement to find the correct variant 3333 // 3334 // switch variant := BetaManagedAgentsSendSessionEventsDataUnion.AsAny().(type) { 3335 // case anthropic.BetaManagedAgentsUserMessageEvent: 3336 // case anthropic.BetaManagedAgentsUserInterruptEvent: 3337 // case anthropic.BetaManagedAgentsUserToolConfirmationEvent: 3338 // case anthropic.BetaManagedAgentsUserCustomToolResultEvent: 3339 // case anthropic.BetaManagedAgentsUserDefineOutcomeEvent: 3340 // case anthropic.BetaManagedAgentsUserToolResultEvent: 3341 // case anthropic.BetaManagedAgentsSystemMessageEvent: 3342 // default: 3343 // fmt.Errorf("no variant present") 3344 // } 3345 func (u BetaManagedAgentsSendSessionEventsDataUnion) AsAny() anyBetaManagedAgentsSendSessionEventsData { 3346 switch u.Type { 3347 case "user.message": 3348 return u.AsUserMessage() 3349 case "user.interrupt": 3350 return u.AsUserInterrupt() 3351 case "user.tool_confirmation": 3352 return u.AsUserToolConfirmation() 3353 case "user.custom_tool_result": 3354 return u.AsUserCustomToolResult() 3355 case "user.define_outcome": 3356 return u.AsUserDefineOutcome() 3357 case "user.tool_result": 3358 return u.AsUserToolResult() 3359 case "system.message": 3360 return u.AsSystemMessage() 3361 } 3362 return nil 3363 } 3364 3365 func (u BetaManagedAgentsSendSessionEventsDataUnion) AsUserMessage() (v BetaManagedAgentsUserMessageEvent) { 3366 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 3367 return 3368 } 3369 3370 func (u BetaManagedAgentsSendSessionEventsDataUnion) AsUserInterrupt() (v BetaManagedAgentsUserInterruptEvent) { 3371 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 3372 return 3373 } 3374 3375 func (u BetaManagedAgentsSendSessionEventsDataUnion) AsUserToolConfirmation() (v BetaManagedAgentsUserToolConfirmationEvent) { 3376 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 3377 return 3378 } 3379 3380 func (u BetaManagedAgentsSendSessionEventsDataUnion) AsUserCustomToolResult() (v BetaManagedAgentsUserCustomToolResultEvent) { 3381 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 3382 return 3383 } 3384 3385 func (u BetaManagedAgentsSendSessionEventsDataUnion) AsUserDefineOutcome() (v BetaManagedAgentsUserDefineOutcomeEvent) { 3386 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 3387 return 3388 } 3389 3390 func (u BetaManagedAgentsSendSessionEventsDataUnion) AsUserToolResult() (v BetaManagedAgentsUserToolResultEvent) { 3391 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 3392 return 3393 } 3394 3395 func (u BetaManagedAgentsSendSessionEventsDataUnion) AsSystemMessage() (v BetaManagedAgentsSystemMessageEvent) { 3396 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 3397 return 3398 } 3399 3400 // Returns the unmodified JSON received from the API 3401 func (u BetaManagedAgentsSendSessionEventsDataUnion) RawJSON() string { return u.JSON.raw } 3402 3403 func (r *BetaManagedAgentsSendSessionEventsDataUnion) UnmarshalJSON(data []byte) error { 3404 return apijson.UnmarshalRoot(data, r) 3405 } 3406 3407 // BetaManagedAgentsSendSessionEventsDataUnionContent is an implicit subunion of 3408 // [BetaManagedAgentsSendSessionEventsDataUnion]. 3409 // BetaManagedAgentsSendSessionEventsDataUnionContent provides convenient access to 3410 // the sub-properties of the union. 3411 // 3412 // For type safety it is recommended to directly use a variant of the 3413 // [BetaManagedAgentsSendSessionEventsDataUnion]. 3414 // 3415 // If the underlying value is not a json object, one of the following properties 3416 // will be valid: OfBetaManagedAgentsUserMessageEventContentArray 3417 // OfBetaManagedAgentsUserCustomToolResultEventContentArray 3418 // OfBetaManagedAgentsUserToolResultEventContentArray 3419 // OfBetaManagedAgentsSystemContentBlockArray] 3420 type BetaManagedAgentsSendSessionEventsDataUnionContent struct { 3421 // This field will be present if the value is a 3422 // [[]BetaManagedAgentsUserMessageEventContentUnion] instead of an object. 3423 OfBetaManagedAgentsUserMessageEventContentArray []BetaManagedAgentsUserMessageEventContentUnion `json:",inline"` 3424 // This field will be present if the value is a 3425 // [[]BetaManagedAgentsUserCustomToolResultEventContentUnion] instead of an object. 3426 OfBetaManagedAgentsUserCustomToolResultEventContentArray []BetaManagedAgentsUserCustomToolResultEventContentUnion `json:",inline"` 3427 // This field will be present if the value is a 3428 // [[]BetaManagedAgentsUserToolResultEventContentUnion] instead of an object. 3429 OfBetaManagedAgentsUserToolResultEventContentArray []BetaManagedAgentsUserToolResultEventContentUnion `json:",inline"` 3430 // This field will be present if the value is a 3431 // [[]BetaManagedAgentsSystemContentBlock] instead of an object. 3432 OfBetaManagedAgentsSystemContentBlockArray []BetaManagedAgentsSystemContentBlock `json:",inline"` 3433 JSON struct { 3434 OfBetaManagedAgentsUserMessageEventContentArray respjson.Field 3435 OfBetaManagedAgentsUserCustomToolResultEventContentArray respjson.Field 3436 OfBetaManagedAgentsUserToolResultEventContentArray respjson.Field 3437 OfBetaManagedAgentsSystemContentBlockArray respjson.Field 3438 raw string 3439 } `json:"-"` 3440 } 3441 3442 func (r *BetaManagedAgentsSendSessionEventsDataUnionContent) UnmarshalJSON(data []byte) error { 3443 return apijson.UnmarshalRoot(data, r) 3444 } 3445 3446 // The agent stopped because the session's tracked list cost reached its budget, or 3447 // because its usage includes a model with no list price (which the budget cannot 3448 // measure). Raise the budget to continue — or, if raising is rejected because a 3449 // model has no list price, remove the budget. 3450 type BetaManagedAgentsSessionBudgetReached struct { 3451 // Any of "budget_reached". 3452 Type BetaManagedAgentsSessionBudgetReachedType `json:"type" api:"required"` 3453 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 3454 JSON struct { 3455 Type respjson.Field 3456 ExtraFields map[string]respjson.Field 3457 raw string 3458 } `json:"-"` 3459 } 3460 3461 // Returns the unmodified JSON received from the API 3462 func (r BetaManagedAgentsSessionBudgetReached) RawJSON() string { return r.JSON.raw } 3463 func (r *BetaManagedAgentsSessionBudgetReached) UnmarshalJSON(data []byte) error { 3464 return apijson.UnmarshalRoot(data, r) 3465 } 3466 3467 type BetaManagedAgentsSessionBudgetReachedType string 3468 3469 const ( 3470 BetaManagedAgentsSessionBudgetReachedTypeBudgetReached BetaManagedAgentsSessionBudgetReachedType = "budget_reached" 3471 ) 3472 3473 // Emitted when a session has been deleted. Terminates any active event stream — no 3474 // further events will be emitted for this session. 3475 type BetaManagedAgentsSessionDeletedEvent struct { 3476 // Unique identifier for this event. 3477 ID string `json:"id" api:"required"` 3478 // A timestamp in RFC 3339 format 3479 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 3480 // Any of "session.deleted". 3481 Type BetaManagedAgentsSessionDeletedEventType `json:"type" api:"required"` 3482 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 3483 JSON struct { 3484 ID respjson.Field 3485 ProcessedAt respjson.Field 3486 Type respjson.Field 3487 ExtraFields map[string]respjson.Field 3488 raw string 3489 } `json:"-"` 3490 } 3491 3492 // Returns the unmodified JSON received from the API 3493 func (r BetaManagedAgentsSessionDeletedEvent) RawJSON() string { return r.JSON.raw } 3494 func (r *BetaManagedAgentsSessionDeletedEvent) UnmarshalJSON(data []byte) error { 3495 return apijson.UnmarshalRoot(data, r) 3496 } 3497 3498 type BetaManagedAgentsSessionDeletedEventType string 3499 3500 const ( 3501 BetaManagedAgentsSessionDeletedEventTypeSessionDeleted BetaManagedAgentsSessionDeletedEventType = "session.deleted" 3502 ) 3503 3504 // The agent completed its turn naturally and is ready for the next user message. 3505 type BetaManagedAgentsSessionEndTurn struct { 3506 // Any of "end_turn". 3507 Type BetaManagedAgentsSessionEndTurnType `json:"type" api:"required"` 3508 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 3509 JSON struct { 3510 Type respjson.Field 3511 ExtraFields map[string]respjson.Field 3512 raw string 3513 } `json:"-"` 3514 } 3515 3516 // Returns the unmodified JSON received from the API 3517 func (r BetaManagedAgentsSessionEndTurn) RawJSON() string { return r.JSON.raw } 3518 func (r *BetaManagedAgentsSessionEndTurn) UnmarshalJSON(data []byte) error { 3519 return apijson.UnmarshalRoot(data, r) 3520 } 3521 3522 type BetaManagedAgentsSessionEndTurnType string 3523 3524 const ( 3525 BetaManagedAgentsSessionEndTurnTypeEndTurn BetaManagedAgentsSessionEndTurnType = "end_turn" 3526 ) 3527 3528 // An error event indicating a problem occurred during session execution. 3529 type BetaManagedAgentsSessionErrorEvent struct { 3530 // Unique identifier for this event. 3531 ID string `json:"id" api:"required"` 3532 // An unknown or unexpected error occurred during session execution. A fallback 3533 // variant; clients that don't recognize a new error code can match on 3534 // `retry_status` and `message` alone. 3535 Error BetaManagedAgentsSessionErrorEventErrorUnion `json:"error" api:"required"` 3536 // A timestamp in RFC 3339 format 3537 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 3538 // Any of "session.error". 3539 Type BetaManagedAgentsSessionErrorEventType `json:"type" api:"required"` 3540 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 3541 JSON struct { 3542 ID respjson.Field 3543 Error respjson.Field 3544 ProcessedAt respjson.Field 3545 Type respjson.Field 3546 ExtraFields map[string]respjson.Field 3547 raw string 3548 } `json:"-"` 3549 } 3550 3551 // Returns the unmodified JSON received from the API 3552 func (r BetaManagedAgentsSessionErrorEvent) RawJSON() string { return r.JSON.raw } 3553 func (r *BetaManagedAgentsSessionErrorEvent) UnmarshalJSON(data []byte) error { 3554 return apijson.UnmarshalRoot(data, r) 3555 } 3556 3557 // BetaManagedAgentsSessionErrorEventErrorUnion contains all possible properties 3558 // and values from [BetaManagedAgentsUnknownError], 3559 // [BetaManagedAgentsModelOverloadedError], 3560 // [BetaManagedAgentsModelRateLimitedError], 3561 // [BetaManagedAgentsModelRequestFailedError], 3562 // [BetaManagedAgentsMCPConnectionFailedError], 3563 // [BetaManagedAgentsMCPAuthenticationFailedError], 3564 // [BetaManagedAgentsBillingError], 3565 // [BetaManagedAgentsCredentialHostUnreachableError]. 3566 // 3567 // Use the [BetaManagedAgentsSessionErrorEventErrorUnion.AsAny] method to switch on 3568 // the variant. 3569 // 3570 // Use the methods beginning with 'As' to cast the union to one of its variants. 3571 type BetaManagedAgentsSessionErrorEventErrorUnion struct { 3572 Message string `json:"message"` 3573 // This field is a union of [BetaManagedAgentsUnknownErrorRetryStatusUnion], 3574 // [BetaManagedAgentsModelOverloadedErrorRetryStatusUnion], 3575 // [BetaManagedAgentsModelRateLimitedErrorRetryStatusUnion], 3576 // [BetaManagedAgentsModelRequestFailedErrorRetryStatusUnion], 3577 // [BetaManagedAgentsMCPConnectionFailedErrorRetryStatusUnion], 3578 // [BetaManagedAgentsMCPAuthenticationFailedErrorRetryStatusUnion], 3579 // [BetaManagedAgentsBillingErrorRetryStatusUnion], 3580 // [BetaManagedAgentsCredentialHostUnreachableErrorRetryStatusUnion] 3581 RetryStatus BetaManagedAgentsSessionErrorEventErrorUnionRetryStatus `json:"retry_status"` 3582 // Any of "unknown_error", "model_overloaded_error", "model_rate_limited_error", 3583 // "model_request_failed_error", "mcp_connection_failed_error", 3584 // "mcp_authentication_failed_error", "billing_error", 3585 // "credential_host_unreachable_error". 3586 Type string `json:"type"` 3587 MCPServerName string `json:"mcp_server_name"` 3588 // This field is from variant [BetaManagedAgentsCredentialHostUnreachableError]. 3589 CredentialID string `json:"credential_id"` 3590 // This field is from variant [BetaManagedAgentsCredentialHostUnreachableError]. 3591 VaultID string `json:"vault_id"` 3592 JSON struct { 3593 Message respjson.Field 3594 RetryStatus respjson.Field 3595 Type respjson.Field 3596 MCPServerName respjson.Field 3597 CredentialID respjson.Field 3598 VaultID respjson.Field 3599 raw string 3600 } `json:"-"` 3601 } 3602 3603 // anyBetaManagedAgentsSessionErrorEventError is implemented by each variant of 3604 // [BetaManagedAgentsSessionErrorEventErrorUnion] to add type safety for the return 3605 // type of [BetaManagedAgentsSessionErrorEventErrorUnion.AsAny] 3606 type anyBetaManagedAgentsSessionErrorEventError interface { 3607 implBetaManagedAgentsSessionErrorEventErrorUnion() 3608 } 3609 3610 func (BetaManagedAgentsUnknownError) implBetaManagedAgentsSessionErrorEventErrorUnion() {} 3611 func (BetaManagedAgentsModelOverloadedError) implBetaManagedAgentsSessionErrorEventErrorUnion() {} 3612 func (BetaManagedAgentsModelRateLimitedError) implBetaManagedAgentsSessionErrorEventErrorUnion() {} 3613 func (BetaManagedAgentsModelRequestFailedError) implBetaManagedAgentsSessionErrorEventErrorUnion() {} 3614 func (BetaManagedAgentsMCPConnectionFailedError) implBetaManagedAgentsSessionErrorEventErrorUnion() {} 3615 func (BetaManagedAgentsMCPAuthenticationFailedError) implBetaManagedAgentsSessionErrorEventErrorUnion() { 3616 } 3617 func (BetaManagedAgentsBillingError) implBetaManagedAgentsSessionErrorEventErrorUnion() {} 3618 func (BetaManagedAgentsCredentialHostUnreachableError) implBetaManagedAgentsSessionErrorEventErrorUnion() { 3619 } 3620 3621 // Use the following switch statement to find the correct variant 3622 // 3623 // switch variant := BetaManagedAgentsSessionErrorEventErrorUnion.AsAny().(type) { 3624 // case anthropic.BetaManagedAgentsUnknownError: 3625 // case anthropic.BetaManagedAgentsModelOverloadedError: 3626 // case anthropic.BetaManagedAgentsModelRateLimitedError: 3627 // case anthropic.BetaManagedAgentsModelRequestFailedError: 3628 // case anthropic.BetaManagedAgentsMCPConnectionFailedError: 3629 // case anthropic.BetaManagedAgentsMCPAuthenticationFailedError: 3630 // case anthropic.BetaManagedAgentsBillingError: 3631 // case anthropic.BetaManagedAgentsCredentialHostUnreachableError: 3632 // default: 3633 // fmt.Errorf("no variant present") 3634 // } 3635 func (u BetaManagedAgentsSessionErrorEventErrorUnion) AsAny() anyBetaManagedAgentsSessionErrorEventError { 3636 switch u.Type { 3637 case "unknown_error": 3638 return u.AsUnknownError() 3639 case "model_overloaded_error": 3640 return u.AsModelOverloadedError() 3641 case "model_rate_limited_error": 3642 return u.AsModelRateLimitedError() 3643 case "model_request_failed_error": 3644 return u.AsModelRequestFailedError() 3645 case "mcp_connection_failed_error": 3646 return u.AsMCPConnectionFailedError() 3647 case "mcp_authentication_failed_error": 3648 return u.AsMCPAuthenticationFailedError() 3649 case "billing_error": 3650 return u.AsBillingError() 3651 case "credential_host_unreachable_error": 3652 return u.AsCredentialHostUnreachableError() 3653 } 3654 return nil 3655 } 3656 3657 func (u BetaManagedAgentsSessionErrorEventErrorUnion) AsUnknownError() (v BetaManagedAgentsUnknownError) { 3658 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 3659 return 3660 } 3661 3662 func (u BetaManagedAgentsSessionErrorEventErrorUnion) AsModelOverloadedError() (v BetaManagedAgentsModelOverloadedError) { 3663 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 3664 return 3665 } 3666 3667 func (u BetaManagedAgentsSessionErrorEventErrorUnion) AsModelRateLimitedError() (v BetaManagedAgentsModelRateLimitedError) { 3668 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 3669 return 3670 } 3671 3672 func (u BetaManagedAgentsSessionErrorEventErrorUnion) AsModelRequestFailedError() (v BetaManagedAgentsModelRequestFailedError) { 3673 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 3674 return 3675 } 3676 3677 func (u BetaManagedAgentsSessionErrorEventErrorUnion) AsMCPConnectionFailedError() (v BetaManagedAgentsMCPConnectionFailedError) { 3678 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 3679 return 3680 } 3681 3682 func (u BetaManagedAgentsSessionErrorEventErrorUnion) AsMCPAuthenticationFailedError() (v BetaManagedAgentsMCPAuthenticationFailedError) { 3683 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 3684 return 3685 } 3686 3687 func (u BetaManagedAgentsSessionErrorEventErrorUnion) AsBillingError() (v BetaManagedAgentsBillingError) { 3688 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 3689 return 3690 } 3691 3692 func (u BetaManagedAgentsSessionErrorEventErrorUnion) AsCredentialHostUnreachableError() (v BetaManagedAgentsCredentialHostUnreachableError) { 3693 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 3694 return 3695 } 3696 3697 // Returns the unmodified JSON received from the API 3698 func (u BetaManagedAgentsSessionErrorEventErrorUnion) RawJSON() string { return u.JSON.raw } 3699 3700 func (r *BetaManagedAgentsSessionErrorEventErrorUnion) UnmarshalJSON(data []byte) error { 3701 return apijson.UnmarshalRoot(data, r) 3702 } 3703 3704 // BetaManagedAgentsSessionErrorEventErrorUnionRetryStatus is an implicit subunion 3705 // of [BetaManagedAgentsSessionErrorEventErrorUnion]. 3706 // BetaManagedAgentsSessionErrorEventErrorUnionRetryStatus provides convenient 3707 // access to the sub-properties of the union. 3708 // 3709 // For type safety it is recommended to directly use a variant of the 3710 // [BetaManagedAgentsSessionErrorEventErrorUnion]. 3711 type BetaManagedAgentsSessionErrorEventErrorUnionRetryStatus struct { 3712 Type string `json:"type"` 3713 JSON struct { 3714 Type respjson.Field 3715 raw string 3716 } `json:"-"` 3717 } 3718 3719 func (r *BetaManagedAgentsSessionErrorEventErrorUnionRetryStatus) UnmarshalJSON(data []byte) error { 3720 return apijson.UnmarshalRoot(data, r) 3721 } 3722 3723 type BetaManagedAgentsSessionErrorEventType string 3724 3725 const ( 3726 BetaManagedAgentsSessionErrorEventTypeSessionError BetaManagedAgentsSessionErrorEventType = "session.error" 3727 ) 3728 3729 // BetaManagedAgentsSessionEventUnion contains all possible properties and values 3730 // from [BetaManagedAgentsUserMessageEvent], [BetaManagedAgentsUserInterruptEvent], 3731 // [BetaManagedAgentsUserToolConfirmationEvent], 3732 // [BetaManagedAgentsUserCustomToolResultEvent], 3733 // [BetaManagedAgentsAgentCustomToolUseEvent], 3734 // [BetaManagedAgentsAgentMessageEvent], [BetaManagedAgentsAgentThinkingEvent], 3735 // [BetaManagedAgentsAgentMCPToolUseEvent], 3736 // [BetaManagedAgentsAgentMCPToolResultEvent], 3737 // [BetaManagedAgentsAgentToolUseEvent], [BetaManagedAgentsAgentToolResultEvent], 3738 // [BetaManagedAgentsAgentThreadMessageReceivedEvent], 3739 // [BetaManagedAgentsAgentThreadMessageSentEvent], 3740 // [BetaManagedAgentsAgentThreadContextCompactedEvent], 3741 // [BetaManagedAgentsSessionErrorEvent], 3742 // [BetaManagedAgentsSessionStatusRescheduledEvent], 3743 // [BetaManagedAgentsSessionStatusRunningEvent], 3744 // [BetaManagedAgentsSessionStatusIdleEvent], 3745 // [BetaManagedAgentsSessionStatusTerminatedEvent], 3746 // [BetaManagedAgentsSessionThreadCreatedEvent], 3747 // [BetaManagedAgentsSpanOutcomeEvaluationStartEvent], 3748 // [BetaManagedAgentsSpanOutcomeEvaluationEndEvent], 3749 // [BetaManagedAgentsSpanModelRequestStartEvent], 3750 // [BetaManagedAgentsSpanModelRequestEndEvent], 3751 // [BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent], 3752 // [BetaManagedAgentsUserDefineOutcomeEvent], 3753 // [BetaManagedAgentsSessionDeletedEvent], 3754 // [BetaManagedAgentsSessionThreadStatusRunningEvent], 3755 // [BetaManagedAgentsSessionThreadStatusIdleEvent], 3756 // [BetaManagedAgentsSessionThreadStatusTerminatedEvent], 3757 // [BetaManagedAgentsUserToolResultEvent], 3758 // [BetaManagedAgentsSessionThreadStatusRescheduledEvent], 3759 // [BetaManagedAgentsSessionUpdatedEvent], [BetaManagedAgentsSystemMessageEvent], 3760 // [BetaManagedAgentsSessionUsageEvent]. 3761 // 3762 // Use the [BetaManagedAgentsSessionEventUnion.AsAny] method to switch on the 3763 // variant. 3764 // 3765 // Use the methods beginning with 'As' to cast the union to one of its variants. 3766 type BetaManagedAgentsSessionEventUnion struct { 3767 ID string `json:"id"` 3768 // This field is a union of [[]BetaManagedAgentsUserMessageEventContentUnion], 3769 // [[]BetaManagedAgentsUserCustomToolResultEventContentUnion], 3770 // [[]BetaManagedAgentsAgentMessageEventContentUnion], 3771 // [[]BetaManagedAgentsAgentMCPToolResultEventContentUnion], 3772 // [[]BetaManagedAgentsAgentToolResultEventContentUnion], 3773 // [[]BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion], 3774 // [[]BetaManagedAgentsAgentThreadMessageSentEventContentUnion], 3775 // [[]BetaManagedAgentsUserToolResultEventContentUnion], 3776 // [[]BetaManagedAgentsSystemContentBlock] 3777 Content BetaManagedAgentsSessionEventUnionContent `json:"content"` 3778 // Any of "user.message", "user.interrupt", "user.tool_confirmation", 3779 // "user.custom_tool_result", "agent.custom_tool_use", "agent.message", 3780 // "agent.thinking", "agent.mcp_tool_use", "agent.mcp_tool_result", 3781 // "agent.tool_use", "agent.tool_result", "agent.thread_message_received", 3782 // "agent.thread_message_sent", "agent.thread_context_compacted", "session.error", 3783 // "session.status_rescheduled", "session.status_running", "session.status_idle", 3784 // "session.status_terminated", "session.thread_created", 3785 // "span.outcome_evaluation_start", "span.outcome_evaluation_end", 3786 // "span.model_request_start", "span.model_request_end", 3787 // "span.outcome_evaluation_ongoing", "user.define_outcome", "session.deleted", 3788 // "session.thread_status_running", "session.thread_status_idle", 3789 // "session.thread_status_terminated", "user.tool_result", 3790 // "session.thread_status_rescheduled", "session.updated", "system.message", 3791 // "session.usage". 3792 Type string `json:"type"` 3793 ProcessedAt time.Time `json:"processed_at"` 3794 SessionThreadID string `json:"session_thread_id"` 3795 Result string `json:"result"` 3796 ToolUseID string `json:"tool_use_id"` 3797 // This field is from variant [BetaManagedAgentsUserToolConfirmationEvent]. 3798 DenyMessage string `json:"deny_message"` 3799 // This field is from variant [BetaManagedAgentsUserCustomToolResultEvent]. 3800 CustomToolUseID string `json:"custom_tool_use_id"` 3801 IsError bool `json:"is_error"` 3802 Input any `json:"input"` 3803 Name string `json:"name"` 3804 // This field is from variant [BetaManagedAgentsAgentMCPToolUseEvent]. 3805 MCPServerName string `json:"mcp_server_name"` 3806 EvaluatedPermission string `json:"evaluated_permission"` 3807 // This field is from variant [BetaManagedAgentsAgentMCPToolResultEvent]. 3808 MCPToolUseID string `json:"mcp_tool_use_id"` 3809 // This field is from variant [BetaManagedAgentsAgentThreadMessageReceivedEvent]. 3810 FromSessionThreadID string `json:"from_session_thread_id"` 3811 // This field is from variant [BetaManagedAgentsAgentThreadMessageReceivedEvent]. 3812 FromAgentName string `json:"from_agent_name"` 3813 // This field is from variant [BetaManagedAgentsAgentThreadMessageSentEvent]. 3814 ToSessionThreadID string `json:"to_session_thread_id"` 3815 // This field is from variant [BetaManagedAgentsAgentThreadMessageSentEvent]. 3816 ToAgentName string `json:"to_agent_name"` 3817 // This field is from variant [BetaManagedAgentsSessionErrorEvent]. 3818 Error BetaManagedAgentsSessionErrorEventErrorUnion `json:"error"` 3819 // This field is a union of 3820 // [BetaManagedAgentsSessionStatusIdleEventStopReasonUnion], 3821 // [BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion] 3822 StopReason BetaManagedAgentsSessionEventUnionStopReason `json:"stop_reason"` 3823 AgentName string `json:"agent_name"` 3824 Iteration int64 `json:"iteration"` 3825 OutcomeID string `json:"outcome_id"` 3826 // This field is from variant [BetaManagedAgentsSpanOutcomeEvaluationEndEvent]. 3827 Explanation string `json:"explanation"` 3828 // This field is from variant [BetaManagedAgentsSpanOutcomeEvaluationEndEvent]. 3829 OutcomeEvaluationStartID string `json:"outcome_evaluation_start_id"` 3830 // This field is a union of [BetaManagedAgentsSpanModelUsage], 3831 // [BetaManagedAgentsSessionUsageSnapshot] 3832 Usage BetaManagedAgentsSessionEventUnionUsage `json:"usage"` 3833 // This field is from variant [BetaManagedAgentsSpanModelRequestEndEvent]. 3834 ModelRequestStartID string `json:"model_request_start_id"` 3835 // This field is from variant [BetaManagedAgentsSpanModelRequestEndEvent]. 3836 ModelUsage BetaManagedAgentsSpanModelUsage `json:"model_usage"` 3837 // This field is from variant [BetaManagedAgentsUserDefineOutcomeEvent]. 3838 Description string `json:"description"` 3839 // This field is from variant [BetaManagedAgentsUserDefineOutcomeEvent]. 3840 MaxIterations int64 `json:"max_iterations"` 3841 // This field is from variant [BetaManagedAgentsUserDefineOutcomeEvent]. 3842 Rubric BetaManagedAgentsUserDefineOutcomeEventRubricUnion `json:"rubric"` 3843 // This field is from variant [BetaManagedAgentsSessionUpdatedEvent]. 3844 Agent BetaManagedAgentsSessionAgent `json:"agent"` 3845 // This field is from variant [BetaManagedAgentsSessionUpdatedEvent]. 3846 Budget BetaManagedAgentsBudgetLimit `json:"budget"` 3847 // This field is from variant [BetaManagedAgentsSessionUpdatedEvent]. 3848 Metadata map[string]string `json:"metadata"` 3849 // This field is from variant [BetaManagedAgentsSessionUpdatedEvent]. 3850 Title string `json:"title"` 3851 JSON struct { 3852 ID respjson.Field 3853 Content respjson.Field 3854 Type respjson.Field 3855 ProcessedAt respjson.Field 3856 SessionThreadID respjson.Field 3857 Result respjson.Field 3858 ToolUseID respjson.Field 3859 DenyMessage respjson.Field 3860 CustomToolUseID respjson.Field 3861 IsError respjson.Field 3862 Input respjson.Field 3863 Name respjson.Field 3864 MCPServerName respjson.Field 3865 EvaluatedPermission respjson.Field 3866 MCPToolUseID respjson.Field 3867 FromSessionThreadID respjson.Field 3868 FromAgentName respjson.Field 3869 ToSessionThreadID respjson.Field 3870 ToAgentName respjson.Field 3871 Error respjson.Field 3872 StopReason respjson.Field 3873 AgentName respjson.Field 3874 Iteration respjson.Field 3875 OutcomeID respjson.Field 3876 Explanation respjson.Field 3877 OutcomeEvaluationStartID respjson.Field 3878 Usage respjson.Field 3879 ModelRequestStartID respjson.Field 3880 ModelUsage respjson.Field 3881 Description respjson.Field 3882 MaxIterations respjson.Field 3883 Rubric respjson.Field 3884 Agent respjson.Field 3885 Budget respjson.Field 3886 Metadata respjson.Field 3887 Title respjson.Field 3888 raw string 3889 } `json:"-"` 3890 } 3891 3892 // anyBetaManagedAgentsSessionEvent is implemented by each variant of 3893 // [BetaManagedAgentsSessionEventUnion] to add type safety for the return type of 3894 // [BetaManagedAgentsSessionEventUnion.AsAny] 3895 type anyBetaManagedAgentsSessionEvent interface { 3896 implBetaManagedAgentsSessionEventUnion() 3897 } 3898 3899 func (BetaManagedAgentsUserMessageEvent) implBetaManagedAgentsSessionEventUnion() {} 3900 func (BetaManagedAgentsUserInterruptEvent) implBetaManagedAgentsSessionEventUnion() {} 3901 func (BetaManagedAgentsUserToolConfirmationEvent) implBetaManagedAgentsSessionEventUnion() {} 3902 func (BetaManagedAgentsUserCustomToolResultEvent) implBetaManagedAgentsSessionEventUnion() {} 3903 func (BetaManagedAgentsAgentCustomToolUseEvent) implBetaManagedAgentsSessionEventUnion() {} 3904 func (BetaManagedAgentsAgentMessageEvent) implBetaManagedAgentsSessionEventUnion() {} 3905 func (BetaManagedAgentsAgentThinkingEvent) implBetaManagedAgentsSessionEventUnion() {} 3906 func (BetaManagedAgentsAgentMCPToolUseEvent) implBetaManagedAgentsSessionEventUnion() {} 3907 func (BetaManagedAgentsAgentMCPToolResultEvent) implBetaManagedAgentsSessionEventUnion() {} 3908 func (BetaManagedAgentsAgentToolUseEvent) implBetaManagedAgentsSessionEventUnion() {} 3909 func (BetaManagedAgentsAgentToolResultEvent) implBetaManagedAgentsSessionEventUnion() {} 3910 func (BetaManagedAgentsAgentThreadMessageReceivedEvent) implBetaManagedAgentsSessionEventUnion() {} 3911 func (BetaManagedAgentsAgentThreadMessageSentEvent) implBetaManagedAgentsSessionEventUnion() {} 3912 func (BetaManagedAgentsAgentThreadContextCompactedEvent) implBetaManagedAgentsSessionEventUnion() {} 3913 func (BetaManagedAgentsSessionErrorEvent) implBetaManagedAgentsSessionEventUnion() {} 3914 func (BetaManagedAgentsSessionStatusRescheduledEvent) implBetaManagedAgentsSessionEventUnion() {} 3915 func (BetaManagedAgentsSessionStatusRunningEvent) implBetaManagedAgentsSessionEventUnion() {} 3916 func (BetaManagedAgentsSessionStatusIdleEvent) implBetaManagedAgentsSessionEventUnion() {} 3917 func (BetaManagedAgentsSessionStatusTerminatedEvent) implBetaManagedAgentsSessionEventUnion() {} 3918 func (BetaManagedAgentsSessionThreadCreatedEvent) implBetaManagedAgentsSessionEventUnion() {} 3919 func (BetaManagedAgentsSpanOutcomeEvaluationStartEvent) implBetaManagedAgentsSessionEventUnion() {} 3920 func (BetaManagedAgentsSpanOutcomeEvaluationEndEvent) implBetaManagedAgentsSessionEventUnion() {} 3921 func (BetaManagedAgentsSpanModelRequestStartEvent) implBetaManagedAgentsSessionEventUnion() {} 3922 func (BetaManagedAgentsSpanModelRequestEndEvent) implBetaManagedAgentsSessionEventUnion() {} 3923 func (BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent) implBetaManagedAgentsSessionEventUnion() {} 3924 func (BetaManagedAgentsUserDefineOutcomeEvent) implBetaManagedAgentsSessionEventUnion() {} 3925 func (BetaManagedAgentsSessionDeletedEvent) implBetaManagedAgentsSessionEventUnion() {} 3926 func (BetaManagedAgentsSessionThreadStatusRunningEvent) implBetaManagedAgentsSessionEventUnion() {} 3927 func (BetaManagedAgentsSessionThreadStatusIdleEvent) implBetaManagedAgentsSessionEventUnion() {} 3928 func (BetaManagedAgentsSessionThreadStatusTerminatedEvent) implBetaManagedAgentsSessionEventUnion() {} 3929 func (BetaManagedAgentsUserToolResultEvent) implBetaManagedAgentsSessionEventUnion() {} 3930 func (BetaManagedAgentsSessionThreadStatusRescheduledEvent) implBetaManagedAgentsSessionEventUnion() { 3931 } 3932 func (BetaManagedAgentsSessionUpdatedEvent) implBetaManagedAgentsSessionEventUnion() {} 3933 func (BetaManagedAgentsSystemMessageEvent) implBetaManagedAgentsSessionEventUnion() {} 3934 func (BetaManagedAgentsSessionUsageEvent) implBetaManagedAgentsSessionEventUnion() {} 3935 3936 // Use the following switch statement to find the correct variant 3937 // 3938 // switch variant := BetaManagedAgentsSessionEventUnion.AsAny().(type) { 3939 // case anthropic.BetaManagedAgentsUserMessageEvent: 3940 // case anthropic.BetaManagedAgentsUserInterruptEvent: 3941 // case anthropic.BetaManagedAgentsUserToolConfirmationEvent: 3942 // case anthropic.BetaManagedAgentsUserCustomToolResultEvent: 3943 // case anthropic.BetaManagedAgentsAgentCustomToolUseEvent: 3944 // case anthropic.BetaManagedAgentsAgentMessageEvent: 3945 // case anthropic.BetaManagedAgentsAgentThinkingEvent: 3946 // case anthropic.BetaManagedAgentsAgentMCPToolUseEvent: 3947 // case anthropic.BetaManagedAgentsAgentMCPToolResultEvent: 3948 // case anthropic.BetaManagedAgentsAgentToolUseEvent: 3949 // case anthropic.BetaManagedAgentsAgentToolResultEvent: 3950 // case anthropic.BetaManagedAgentsAgentThreadMessageReceivedEvent: 3951 // case anthropic.BetaManagedAgentsAgentThreadMessageSentEvent: 3952 // case anthropic.BetaManagedAgentsAgentThreadContextCompactedEvent: 3953 // case anthropic.BetaManagedAgentsSessionErrorEvent: 3954 // case anthropic.BetaManagedAgentsSessionStatusRescheduledEvent: 3955 // case anthropic.BetaManagedAgentsSessionStatusRunningEvent: 3956 // case anthropic.BetaManagedAgentsSessionStatusIdleEvent: 3957 // case anthropic.BetaManagedAgentsSessionStatusTerminatedEvent: 3958 // case anthropic.BetaManagedAgentsSessionThreadCreatedEvent: 3959 // case anthropic.BetaManagedAgentsSpanOutcomeEvaluationStartEvent: 3960 // case anthropic.BetaManagedAgentsSpanOutcomeEvaluationEndEvent: 3961 // case anthropic.BetaManagedAgentsSpanModelRequestStartEvent: 3962 // case anthropic.BetaManagedAgentsSpanModelRequestEndEvent: 3963 // case anthropic.BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent: 3964 // case anthropic.BetaManagedAgentsUserDefineOutcomeEvent: 3965 // case anthropic.BetaManagedAgentsSessionDeletedEvent: 3966 // case anthropic.BetaManagedAgentsSessionThreadStatusRunningEvent: 3967 // case anthropic.BetaManagedAgentsSessionThreadStatusIdleEvent: 3968 // case anthropic.BetaManagedAgentsSessionThreadStatusTerminatedEvent: 3969 // case anthropic.BetaManagedAgentsUserToolResultEvent: 3970 // case anthropic.BetaManagedAgentsSessionThreadStatusRescheduledEvent: 3971 // case anthropic.BetaManagedAgentsSessionUpdatedEvent: 3972 // case anthropic.BetaManagedAgentsSystemMessageEvent: 3973 // case anthropic.BetaManagedAgentsSessionUsageEvent: 3974 // default: 3975 // fmt.Errorf("no variant present") 3976 // } 3977 func (u BetaManagedAgentsSessionEventUnion) AsAny() anyBetaManagedAgentsSessionEvent { 3978 switch u.Type { 3979 case "user.message": 3980 return u.AsUserMessage() 3981 case "user.interrupt": 3982 return u.AsUserInterrupt() 3983 case "user.tool_confirmation": 3984 return u.AsUserToolConfirmation() 3985 case "user.custom_tool_result": 3986 return u.AsUserCustomToolResult() 3987 case "agent.custom_tool_use": 3988 return u.AsAgentCustomToolUse() 3989 case "agent.message": 3990 return u.AsAgentMessage() 3991 case "agent.thinking": 3992 return u.AsAgentThinking() 3993 case "agent.mcp_tool_use": 3994 return u.AsAgentMCPToolUse() 3995 case "agent.mcp_tool_result": 3996 return u.AsAgentMCPToolResult() 3997 case "agent.tool_use": 3998 return u.AsAgentToolUse() 3999 case "agent.tool_result": 4000 return u.AsAgentToolResult() 4001 case "agent.thread_message_received": 4002 return u.AsAgentThreadMessageReceived() 4003 case "agent.thread_message_sent": 4004 return u.AsAgentThreadMessageSent() 4005 case "agent.thread_context_compacted": 4006 return u.AsAgentThreadContextCompacted() 4007 case "session.error": 4008 return u.AsSessionError() 4009 case "session.status_rescheduled": 4010 return u.AsSessionStatusRescheduled() 4011 case "session.status_running": 4012 return u.AsSessionStatusRunning() 4013 case "session.status_idle": 4014 return u.AsSessionStatusIdle() 4015 case "session.status_terminated": 4016 return u.AsSessionStatusTerminated() 4017 case "session.thread_created": 4018 return u.AsSessionThreadCreated() 4019 case "span.outcome_evaluation_start": 4020 return u.AsSpanOutcomeEvaluationStart() 4021 case "span.outcome_evaluation_end": 4022 return u.AsSpanOutcomeEvaluationEnd() 4023 case "span.model_request_start": 4024 return u.AsSpanModelRequestStart() 4025 case "span.model_request_end": 4026 return u.AsSpanModelRequestEnd() 4027 case "span.outcome_evaluation_ongoing": 4028 return u.AsSpanOutcomeEvaluationOngoing() 4029 case "user.define_outcome": 4030 return u.AsUserDefineOutcome() 4031 case "session.deleted": 4032 return u.AsSessionDeleted() 4033 case "session.thread_status_running": 4034 return u.AsSessionThreadStatusRunning() 4035 case "session.thread_status_idle": 4036 return u.AsSessionThreadStatusIdle() 4037 case "session.thread_status_terminated": 4038 return u.AsSessionThreadStatusTerminated() 4039 case "user.tool_result": 4040 return u.AsUserToolResult() 4041 case "session.thread_status_rescheduled": 4042 return u.AsSessionThreadStatusRescheduled() 4043 case "session.updated": 4044 return u.AsSessionUpdated() 4045 case "system.message": 4046 return u.AsSystemMessage() 4047 case "session.usage": 4048 return u.AsSessionUsage() 4049 } 4050 return nil 4051 } 4052 4053 func (u BetaManagedAgentsSessionEventUnion) AsUserMessage() (v BetaManagedAgentsUserMessageEvent) { 4054 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4055 return 4056 } 4057 4058 func (u BetaManagedAgentsSessionEventUnion) AsUserInterrupt() (v BetaManagedAgentsUserInterruptEvent) { 4059 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4060 return 4061 } 4062 4063 func (u BetaManagedAgentsSessionEventUnion) AsUserToolConfirmation() (v BetaManagedAgentsUserToolConfirmationEvent) { 4064 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4065 return 4066 } 4067 4068 func (u BetaManagedAgentsSessionEventUnion) AsUserCustomToolResult() (v BetaManagedAgentsUserCustomToolResultEvent) { 4069 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4070 return 4071 } 4072 4073 func (u BetaManagedAgentsSessionEventUnion) AsAgentCustomToolUse() (v BetaManagedAgentsAgentCustomToolUseEvent) { 4074 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4075 return 4076 } 4077 4078 func (u BetaManagedAgentsSessionEventUnion) AsAgentMessage() (v BetaManagedAgentsAgentMessageEvent) { 4079 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4080 return 4081 } 4082 4083 func (u BetaManagedAgentsSessionEventUnion) AsAgentThinking() (v BetaManagedAgentsAgentThinkingEvent) { 4084 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4085 return 4086 } 4087 4088 func (u BetaManagedAgentsSessionEventUnion) AsAgentMCPToolUse() (v BetaManagedAgentsAgentMCPToolUseEvent) { 4089 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4090 return 4091 } 4092 4093 func (u BetaManagedAgentsSessionEventUnion) AsAgentMCPToolResult() (v BetaManagedAgentsAgentMCPToolResultEvent) { 4094 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4095 return 4096 } 4097 4098 func (u BetaManagedAgentsSessionEventUnion) AsAgentToolUse() (v BetaManagedAgentsAgentToolUseEvent) { 4099 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4100 return 4101 } 4102 4103 func (u BetaManagedAgentsSessionEventUnion) AsAgentToolResult() (v BetaManagedAgentsAgentToolResultEvent) { 4104 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4105 return 4106 } 4107 4108 func (u BetaManagedAgentsSessionEventUnion) AsAgentThreadMessageReceived() (v BetaManagedAgentsAgentThreadMessageReceivedEvent) { 4109 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4110 return 4111 } 4112 4113 func (u BetaManagedAgentsSessionEventUnion) AsAgentThreadMessageSent() (v BetaManagedAgentsAgentThreadMessageSentEvent) { 4114 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4115 return 4116 } 4117 4118 func (u BetaManagedAgentsSessionEventUnion) AsAgentThreadContextCompacted() (v BetaManagedAgentsAgentThreadContextCompactedEvent) { 4119 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4120 return 4121 } 4122 4123 func (u BetaManagedAgentsSessionEventUnion) AsSessionError() (v BetaManagedAgentsSessionErrorEvent) { 4124 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4125 return 4126 } 4127 4128 func (u BetaManagedAgentsSessionEventUnion) AsSessionStatusRescheduled() (v BetaManagedAgentsSessionStatusRescheduledEvent) { 4129 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4130 return 4131 } 4132 4133 func (u BetaManagedAgentsSessionEventUnion) AsSessionStatusRunning() (v BetaManagedAgentsSessionStatusRunningEvent) { 4134 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4135 return 4136 } 4137 4138 func (u BetaManagedAgentsSessionEventUnion) AsSessionStatusIdle() (v BetaManagedAgentsSessionStatusIdleEvent) { 4139 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4140 return 4141 } 4142 4143 func (u BetaManagedAgentsSessionEventUnion) AsSessionStatusTerminated() (v BetaManagedAgentsSessionStatusTerminatedEvent) { 4144 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4145 return 4146 } 4147 4148 func (u BetaManagedAgentsSessionEventUnion) AsSessionThreadCreated() (v BetaManagedAgentsSessionThreadCreatedEvent) { 4149 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4150 return 4151 } 4152 4153 func (u BetaManagedAgentsSessionEventUnion) AsSpanOutcomeEvaluationStart() (v BetaManagedAgentsSpanOutcomeEvaluationStartEvent) { 4154 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4155 return 4156 } 4157 4158 func (u BetaManagedAgentsSessionEventUnion) AsSpanOutcomeEvaluationEnd() (v BetaManagedAgentsSpanOutcomeEvaluationEndEvent) { 4159 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4160 return 4161 } 4162 4163 func (u BetaManagedAgentsSessionEventUnion) AsSpanModelRequestStart() (v BetaManagedAgentsSpanModelRequestStartEvent) { 4164 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4165 return 4166 } 4167 4168 func (u BetaManagedAgentsSessionEventUnion) AsSpanModelRequestEnd() (v BetaManagedAgentsSpanModelRequestEndEvent) { 4169 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4170 return 4171 } 4172 4173 func (u BetaManagedAgentsSessionEventUnion) AsSpanOutcomeEvaluationOngoing() (v BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent) { 4174 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4175 return 4176 } 4177 4178 func (u BetaManagedAgentsSessionEventUnion) AsUserDefineOutcome() (v BetaManagedAgentsUserDefineOutcomeEvent) { 4179 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4180 return 4181 } 4182 4183 func (u BetaManagedAgentsSessionEventUnion) AsSessionDeleted() (v BetaManagedAgentsSessionDeletedEvent) { 4184 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4185 return 4186 } 4187 4188 func (u BetaManagedAgentsSessionEventUnion) AsSessionThreadStatusRunning() (v BetaManagedAgentsSessionThreadStatusRunningEvent) { 4189 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4190 return 4191 } 4192 4193 func (u BetaManagedAgentsSessionEventUnion) AsSessionThreadStatusIdle() (v BetaManagedAgentsSessionThreadStatusIdleEvent) { 4194 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4195 return 4196 } 4197 4198 func (u BetaManagedAgentsSessionEventUnion) AsSessionThreadStatusTerminated() (v BetaManagedAgentsSessionThreadStatusTerminatedEvent) { 4199 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4200 return 4201 } 4202 4203 func (u BetaManagedAgentsSessionEventUnion) AsUserToolResult() (v BetaManagedAgentsUserToolResultEvent) { 4204 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4205 return 4206 } 4207 4208 func (u BetaManagedAgentsSessionEventUnion) AsSessionThreadStatusRescheduled() (v BetaManagedAgentsSessionThreadStatusRescheduledEvent) { 4209 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4210 return 4211 } 4212 4213 func (u BetaManagedAgentsSessionEventUnion) AsSessionUpdated() (v BetaManagedAgentsSessionUpdatedEvent) { 4214 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4215 return 4216 } 4217 4218 func (u BetaManagedAgentsSessionEventUnion) AsSystemMessage() (v BetaManagedAgentsSystemMessageEvent) { 4219 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4220 return 4221 } 4222 4223 func (u BetaManagedAgentsSessionEventUnion) AsSessionUsage() (v BetaManagedAgentsSessionUsageEvent) { 4224 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4225 return 4226 } 4227 4228 // Returns the unmodified JSON received from the API 4229 func (u BetaManagedAgentsSessionEventUnion) RawJSON() string { return u.JSON.raw } 4230 4231 func (r *BetaManagedAgentsSessionEventUnion) UnmarshalJSON(data []byte) error { 4232 return apijson.UnmarshalRoot(data, r) 4233 } 4234 4235 // BetaManagedAgentsSessionEventUnionContent is an implicit subunion of 4236 // [BetaManagedAgentsSessionEventUnion]. BetaManagedAgentsSessionEventUnionContent 4237 // provides convenient access to the sub-properties of the union. 4238 // 4239 // For type safety it is recommended to directly use a variant of the 4240 // [BetaManagedAgentsSessionEventUnion]. 4241 // 4242 // If the underlying value is not a json object, one of the following properties 4243 // will be valid: OfBetaManagedAgentsUserMessageEventContentArray 4244 // OfBetaManagedAgentsUserCustomToolResultEventContentArray 4245 // OfBetaManagedAgentsAgentMessageEventContentArray 4246 // OfBetaManagedAgentsAgentMCPToolResultEventContentArray 4247 // OfBetaManagedAgentsAgentToolResultEventContentArray 4248 // OfBetaManagedAgentsAgentThreadMessageReceivedEventContentArray 4249 // OfBetaManagedAgentsAgentThreadMessageSentEventContentArray 4250 // OfBetaManagedAgentsUserToolResultEventContentArray 4251 // OfBetaManagedAgentsSystemContentBlockArray] 4252 type BetaManagedAgentsSessionEventUnionContent struct { 4253 // This field will be present if the value is a 4254 // [[]BetaManagedAgentsUserMessageEventContentUnion] instead of an object. 4255 OfBetaManagedAgentsUserMessageEventContentArray []BetaManagedAgentsUserMessageEventContentUnion `json:",inline"` 4256 // This field will be present if the value is a 4257 // [[]BetaManagedAgentsUserCustomToolResultEventContentUnion] instead of an object. 4258 OfBetaManagedAgentsUserCustomToolResultEventContentArray []BetaManagedAgentsUserCustomToolResultEventContentUnion `json:",inline"` 4259 // This field will be present if the value is a 4260 // [[]BetaManagedAgentsAgentMessageEventContentUnion] instead of an object. 4261 OfBetaManagedAgentsAgentMessageEventContentArray []BetaManagedAgentsAgentMessageEventContentUnion `json:",inline"` 4262 // This field will be present if the value is a 4263 // [[]BetaManagedAgentsAgentMCPToolResultEventContentUnion] instead of an object. 4264 OfBetaManagedAgentsAgentMCPToolResultEventContentArray []BetaManagedAgentsAgentMCPToolResultEventContentUnion `json:",inline"` 4265 // This field will be present if the value is a 4266 // [[]BetaManagedAgentsAgentToolResultEventContentUnion] instead of an object. 4267 OfBetaManagedAgentsAgentToolResultEventContentArray []BetaManagedAgentsAgentToolResultEventContentUnion `json:",inline"` 4268 // This field will be present if the value is a 4269 // [[]BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion] instead of an 4270 // object. 4271 OfBetaManagedAgentsAgentThreadMessageReceivedEventContentArray []BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion `json:",inline"` 4272 // This field will be present if the value is a 4273 // [[]BetaManagedAgentsAgentThreadMessageSentEventContentUnion] instead of an 4274 // object. 4275 OfBetaManagedAgentsAgentThreadMessageSentEventContentArray []BetaManagedAgentsAgentThreadMessageSentEventContentUnion `json:",inline"` 4276 // This field will be present if the value is a 4277 // [[]BetaManagedAgentsUserToolResultEventContentUnion] instead of an object. 4278 OfBetaManagedAgentsUserToolResultEventContentArray []BetaManagedAgentsUserToolResultEventContentUnion `json:",inline"` 4279 // This field will be present if the value is a 4280 // [[]BetaManagedAgentsSystemContentBlock] instead of an object. 4281 OfBetaManagedAgentsSystemContentBlockArray []BetaManagedAgentsSystemContentBlock `json:",inline"` 4282 JSON struct { 4283 OfBetaManagedAgentsUserMessageEventContentArray respjson.Field 4284 OfBetaManagedAgentsUserCustomToolResultEventContentArray respjson.Field 4285 OfBetaManagedAgentsAgentMessageEventContentArray respjson.Field 4286 OfBetaManagedAgentsAgentMCPToolResultEventContentArray respjson.Field 4287 OfBetaManagedAgentsAgentToolResultEventContentArray respjson.Field 4288 OfBetaManagedAgentsAgentThreadMessageReceivedEventContentArray respjson.Field 4289 OfBetaManagedAgentsAgentThreadMessageSentEventContentArray respjson.Field 4290 OfBetaManagedAgentsUserToolResultEventContentArray respjson.Field 4291 OfBetaManagedAgentsSystemContentBlockArray respjson.Field 4292 raw string 4293 } `json:"-"` 4294 } 4295 4296 func (r *BetaManagedAgentsSessionEventUnionContent) UnmarshalJSON(data []byte) error { 4297 return apijson.UnmarshalRoot(data, r) 4298 } 4299 4300 // BetaManagedAgentsSessionEventUnionStopReason is an implicit subunion of 4301 // [BetaManagedAgentsSessionEventUnion]. 4302 // BetaManagedAgentsSessionEventUnionStopReason provides convenient access to the 4303 // sub-properties of the union. 4304 // 4305 // For type safety it is recommended to directly use a variant of the 4306 // [BetaManagedAgentsSessionEventUnion]. 4307 type BetaManagedAgentsSessionEventUnionStopReason struct { 4308 Type string `json:"type"` 4309 // This field is from variant 4310 // [BetaManagedAgentsSessionStatusIdleEventStopReasonUnion], 4311 // [BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion]. 4312 EventIDs []string `json:"event_ids"` 4313 JSON struct { 4314 Type respjson.Field 4315 EventIDs respjson.Field 4316 raw string 4317 } `json:"-"` 4318 } 4319 4320 func (r *BetaManagedAgentsSessionEventUnionStopReason) UnmarshalJSON(data []byte) error { 4321 return apijson.UnmarshalRoot(data, r) 4322 } 4323 4324 // BetaManagedAgentsSessionEventUnionUsage is an implicit subunion of 4325 // [BetaManagedAgentsSessionEventUnion]. BetaManagedAgentsSessionEventUnionUsage 4326 // provides convenient access to the sub-properties of the union. 4327 // 4328 // For type safety it is recommended to directly use a variant of the 4329 // [BetaManagedAgentsSessionEventUnion]. 4330 type BetaManagedAgentsSessionEventUnionUsage struct { 4331 // This field is from variant [BetaManagedAgentsSpanModelUsage]. 4332 CacheCreationInputTokens int64 `json:"cache_creation_input_tokens"` 4333 CacheReadInputTokens int64 `json:"cache_read_input_tokens"` 4334 InputTokens int64 `json:"input_tokens"` 4335 OutputTokens int64 `json:"output_tokens"` 4336 // This field is from variant [BetaManagedAgentsSpanModelUsage]. 4337 Speed BetaManagedAgentsSpanModelUsageSpeed `json:"speed"` 4338 // This field is from variant [BetaManagedAgentsSessionUsageSnapshot]. 4339 ActiveSeconds float64 `json:"active_seconds"` 4340 // This field is from variant [BetaManagedAgentsSessionUsageSnapshot]. 4341 CacheCreation BetaManagedAgentsCacheCreationUsage `json:"cache_creation"` 4342 // This field is from variant [BetaManagedAgentsSessionUsageSnapshot]. 4343 ListCost BetaMonetaryAmount `json:"list_cost"` 4344 // This field is from variant [BetaManagedAgentsSessionUsageSnapshot]. 4345 ServerToolUse BetaManagedAgentsServerToolUsage `json:"server_tool_use"` 4346 JSON struct { 4347 CacheCreationInputTokens respjson.Field 4348 CacheReadInputTokens respjson.Field 4349 InputTokens respjson.Field 4350 OutputTokens respjson.Field 4351 Speed respjson.Field 4352 ActiveSeconds respjson.Field 4353 CacheCreation respjson.Field 4354 ListCost respjson.Field 4355 ServerToolUse respjson.Field 4356 raw string 4357 } `json:"-"` 4358 } 4359 4360 func (r *BetaManagedAgentsSessionEventUnionUsage) UnmarshalJSON(data []byte) error { 4361 return apijson.UnmarshalRoot(data, r) 4362 } 4363 4364 // The agent is idle waiting on one or more blocking user-input events (tool 4365 // confirmation, custom tool result, etc.). Resolving all of them transitions the 4366 // session back to running. 4367 type BetaManagedAgentsSessionRequiresAction struct { 4368 // The ids of events the agent is blocked on. Resolving fewer than all re-emits 4369 // `session.status_idle` with the remainder. 4370 EventIDs []string `json:"event_ids" api:"required"` 4371 // Any of "requires_action". 4372 Type BetaManagedAgentsSessionRequiresActionType `json:"type" api:"required"` 4373 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 4374 JSON struct { 4375 EventIDs respjson.Field 4376 Type respjson.Field 4377 ExtraFields map[string]respjson.Field 4378 raw string 4379 } `json:"-"` 4380 } 4381 4382 // Returns the unmodified JSON received from the API 4383 func (r BetaManagedAgentsSessionRequiresAction) RawJSON() string { return r.JSON.raw } 4384 func (r *BetaManagedAgentsSessionRequiresAction) UnmarshalJSON(data []byte) error { 4385 return apijson.UnmarshalRoot(data, r) 4386 } 4387 4388 type BetaManagedAgentsSessionRequiresActionType string 4389 4390 const ( 4391 BetaManagedAgentsSessionRequiresActionTypeRequiresAction BetaManagedAgentsSessionRequiresActionType = "requires_action" 4392 ) 4393 4394 // The turn ended because repeated errors exhausted the retry budget or an error 4395 // escalated to `retry_status: 'exhausted'`. 4396 type BetaManagedAgentsSessionRetriesExhausted struct { 4397 // Any of "retries_exhausted". 4398 Type BetaManagedAgentsSessionRetriesExhaustedType `json:"type" api:"required"` 4399 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 4400 JSON struct { 4401 Type respjson.Field 4402 ExtraFields map[string]respjson.Field 4403 raw string 4404 } `json:"-"` 4405 } 4406 4407 // Returns the unmodified JSON received from the API 4408 func (r BetaManagedAgentsSessionRetriesExhausted) RawJSON() string { return r.JSON.raw } 4409 func (r *BetaManagedAgentsSessionRetriesExhausted) UnmarshalJSON(data []byte) error { 4410 return apijson.UnmarshalRoot(data, r) 4411 } 4412 4413 type BetaManagedAgentsSessionRetriesExhaustedType string 4414 4415 const ( 4416 BetaManagedAgentsSessionRetriesExhaustedTypeRetriesExhausted BetaManagedAgentsSessionRetriesExhaustedType = "retries_exhausted" 4417 ) 4418 4419 // Indicates the agent has paused and is awaiting user input. 4420 type BetaManagedAgentsSessionStatusIdleEvent struct { 4421 // Unique identifier for this event. 4422 ID string `json:"id" api:"required"` 4423 // A timestamp in RFC 3339 format 4424 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 4425 // The agent completed its turn naturally and is ready for the next user message. 4426 StopReason BetaManagedAgentsSessionStatusIdleEventStopReasonUnion `json:"stop_reason" api:"required"` 4427 // Any of "session.status_idle". 4428 Type BetaManagedAgentsSessionStatusIdleEventType `json:"type" api:"required"` 4429 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 4430 JSON struct { 4431 ID respjson.Field 4432 ProcessedAt respjson.Field 4433 StopReason respjson.Field 4434 Type respjson.Field 4435 ExtraFields map[string]respjson.Field 4436 raw string 4437 } `json:"-"` 4438 } 4439 4440 // Returns the unmodified JSON received from the API 4441 func (r BetaManagedAgentsSessionStatusIdleEvent) RawJSON() string { return r.JSON.raw } 4442 func (r *BetaManagedAgentsSessionStatusIdleEvent) UnmarshalJSON(data []byte) error { 4443 return apijson.UnmarshalRoot(data, r) 4444 } 4445 4446 // BetaManagedAgentsSessionStatusIdleEventStopReasonUnion contains all possible 4447 // properties and values from [BetaManagedAgentsSessionEndTurn], 4448 // [BetaManagedAgentsSessionRequiresAction], 4449 // [BetaManagedAgentsSessionRetriesExhausted], 4450 // [BetaManagedAgentsSessionBudgetReached]. 4451 // 4452 // Use the [BetaManagedAgentsSessionStatusIdleEventStopReasonUnion.AsAny] method to 4453 // switch on the variant. 4454 // 4455 // Use the methods beginning with 'As' to cast the union to one of its variants. 4456 type BetaManagedAgentsSessionStatusIdleEventStopReasonUnion struct { 4457 // Any of "end_turn", "requires_action", "retries_exhausted", "budget_reached". 4458 Type string `json:"type"` 4459 // This field is from variant [BetaManagedAgentsSessionRequiresAction]. 4460 EventIDs []string `json:"event_ids"` 4461 JSON struct { 4462 Type respjson.Field 4463 EventIDs respjson.Field 4464 raw string 4465 } `json:"-"` 4466 } 4467 4468 // anyBetaManagedAgentsSessionStatusIdleEventStopReason is implemented by each 4469 // variant of [BetaManagedAgentsSessionStatusIdleEventStopReasonUnion] to add type 4470 // safety for the return type of 4471 // [BetaManagedAgentsSessionStatusIdleEventStopReasonUnion.AsAny] 4472 type anyBetaManagedAgentsSessionStatusIdleEventStopReason interface { 4473 implBetaManagedAgentsSessionStatusIdleEventStopReasonUnion() 4474 } 4475 4476 func (BetaManagedAgentsSessionEndTurn) implBetaManagedAgentsSessionStatusIdleEventStopReasonUnion() {} 4477 func (BetaManagedAgentsSessionRequiresAction) implBetaManagedAgentsSessionStatusIdleEventStopReasonUnion() { 4478 } 4479 func (BetaManagedAgentsSessionRetriesExhausted) implBetaManagedAgentsSessionStatusIdleEventStopReasonUnion() { 4480 } 4481 func (BetaManagedAgentsSessionBudgetReached) implBetaManagedAgentsSessionStatusIdleEventStopReasonUnion() { 4482 } 4483 4484 // Use the following switch statement to find the correct variant 4485 // 4486 // switch variant := BetaManagedAgentsSessionStatusIdleEventStopReasonUnion.AsAny().(type) { 4487 // case anthropic.BetaManagedAgentsSessionEndTurn: 4488 // case anthropic.BetaManagedAgentsSessionRequiresAction: 4489 // case anthropic.BetaManagedAgentsSessionRetriesExhausted: 4490 // case anthropic.BetaManagedAgentsSessionBudgetReached: 4491 // default: 4492 // fmt.Errorf("no variant present") 4493 // } 4494 func (u BetaManagedAgentsSessionStatusIdleEventStopReasonUnion) AsAny() anyBetaManagedAgentsSessionStatusIdleEventStopReason { 4495 switch u.Type { 4496 case "end_turn": 4497 return u.AsEndTurn() 4498 case "requires_action": 4499 return u.AsRequiresAction() 4500 case "retries_exhausted": 4501 return u.AsRetriesExhausted() 4502 case "budget_reached": 4503 return u.AsBudgetReached() 4504 } 4505 return nil 4506 } 4507 4508 func (u BetaManagedAgentsSessionStatusIdleEventStopReasonUnion) AsEndTurn() (v BetaManagedAgentsSessionEndTurn) { 4509 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4510 return 4511 } 4512 4513 func (u BetaManagedAgentsSessionStatusIdleEventStopReasonUnion) AsRequiresAction() (v BetaManagedAgentsSessionRequiresAction) { 4514 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4515 return 4516 } 4517 4518 func (u BetaManagedAgentsSessionStatusIdleEventStopReasonUnion) AsRetriesExhausted() (v BetaManagedAgentsSessionRetriesExhausted) { 4519 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4520 return 4521 } 4522 4523 func (u BetaManagedAgentsSessionStatusIdleEventStopReasonUnion) AsBudgetReached() (v BetaManagedAgentsSessionBudgetReached) { 4524 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4525 return 4526 } 4527 4528 // Returns the unmodified JSON received from the API 4529 func (u BetaManagedAgentsSessionStatusIdleEventStopReasonUnion) RawJSON() string { return u.JSON.raw } 4530 4531 func (r *BetaManagedAgentsSessionStatusIdleEventStopReasonUnion) UnmarshalJSON(data []byte) error { 4532 return apijson.UnmarshalRoot(data, r) 4533 } 4534 4535 type BetaManagedAgentsSessionStatusIdleEventType string 4536 4537 const ( 4538 BetaManagedAgentsSessionStatusIdleEventTypeSessionStatusIdle BetaManagedAgentsSessionStatusIdleEventType = "session.status_idle" 4539 ) 4540 4541 // Indicates the session is recovering from an error state and is rescheduled for 4542 // execution. 4543 type BetaManagedAgentsSessionStatusRescheduledEvent struct { 4544 // Unique identifier for this event. 4545 ID string `json:"id" api:"required"` 4546 // A timestamp in RFC 3339 format 4547 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 4548 // Any of "session.status_rescheduled". 4549 Type BetaManagedAgentsSessionStatusRescheduledEventType `json:"type" api:"required"` 4550 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 4551 JSON struct { 4552 ID respjson.Field 4553 ProcessedAt respjson.Field 4554 Type respjson.Field 4555 ExtraFields map[string]respjson.Field 4556 raw string 4557 } `json:"-"` 4558 } 4559 4560 // Returns the unmodified JSON received from the API 4561 func (r BetaManagedAgentsSessionStatusRescheduledEvent) RawJSON() string { return r.JSON.raw } 4562 func (r *BetaManagedAgentsSessionStatusRescheduledEvent) UnmarshalJSON(data []byte) error { 4563 return apijson.UnmarshalRoot(data, r) 4564 } 4565 4566 type BetaManagedAgentsSessionStatusRescheduledEventType string 4567 4568 const ( 4569 BetaManagedAgentsSessionStatusRescheduledEventTypeSessionStatusRescheduled BetaManagedAgentsSessionStatusRescheduledEventType = "session.status_rescheduled" 4570 ) 4571 4572 // Indicates the session is actively running and the agent is working. 4573 type BetaManagedAgentsSessionStatusRunningEvent struct { 4574 // Unique identifier for this event. 4575 ID string `json:"id" api:"required"` 4576 // A timestamp in RFC 3339 format 4577 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 4578 // Any of "session.status_running". 4579 Type BetaManagedAgentsSessionStatusRunningEventType `json:"type" api:"required"` 4580 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 4581 JSON struct { 4582 ID respjson.Field 4583 ProcessedAt respjson.Field 4584 Type respjson.Field 4585 ExtraFields map[string]respjson.Field 4586 raw string 4587 } `json:"-"` 4588 } 4589 4590 // Returns the unmodified JSON received from the API 4591 func (r BetaManagedAgentsSessionStatusRunningEvent) RawJSON() string { return r.JSON.raw } 4592 func (r *BetaManagedAgentsSessionStatusRunningEvent) UnmarshalJSON(data []byte) error { 4593 return apijson.UnmarshalRoot(data, r) 4594 } 4595 4596 type BetaManagedAgentsSessionStatusRunningEventType string 4597 4598 const ( 4599 BetaManagedAgentsSessionStatusRunningEventTypeSessionStatusRunning BetaManagedAgentsSessionStatusRunningEventType = "session.status_running" 4600 ) 4601 4602 // Indicates the session has terminated, either due to an error or completion. 4603 type BetaManagedAgentsSessionStatusTerminatedEvent struct { 4604 // Unique identifier for this event. 4605 ID string `json:"id" api:"required"` 4606 // A timestamp in RFC 3339 format 4607 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 4608 // Any of "session.status_terminated". 4609 Type BetaManagedAgentsSessionStatusTerminatedEventType `json:"type" api:"required"` 4610 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 4611 JSON struct { 4612 ID respjson.Field 4613 ProcessedAt respjson.Field 4614 Type respjson.Field 4615 ExtraFields map[string]respjson.Field 4616 raw string 4617 } `json:"-"` 4618 } 4619 4620 // Returns the unmodified JSON received from the API 4621 func (r BetaManagedAgentsSessionStatusTerminatedEvent) RawJSON() string { return r.JSON.raw } 4622 func (r *BetaManagedAgentsSessionStatusTerminatedEvent) UnmarshalJSON(data []byte) error { 4623 return apijson.UnmarshalRoot(data, r) 4624 } 4625 4626 type BetaManagedAgentsSessionStatusTerminatedEventType string 4627 4628 const ( 4629 BetaManagedAgentsSessionStatusTerminatedEventTypeSessionStatusTerminated BetaManagedAgentsSessionStatusTerminatedEventType = "session.status_terminated" 4630 ) 4631 4632 // Emitted when a subagent is spawned as a new thread. Written to the parent 4633 // thread's output stream so clients observing the session see child creation. 4634 type BetaManagedAgentsSessionThreadCreatedEvent struct { 4635 // Unique identifier for this event. 4636 ID string `json:"id" api:"required"` 4637 // Name of the callable agent the thread runs. 4638 AgentName string `json:"agent_name" api:"required"` 4639 // A timestamp in RFC 3339 format 4640 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 4641 // Public `sthr_` ID of the newly created thread. 4642 SessionThreadID string `json:"session_thread_id" api:"required"` 4643 // Any of "session.thread_created". 4644 Type BetaManagedAgentsSessionThreadCreatedEventType `json:"type" api:"required"` 4645 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 4646 JSON struct { 4647 ID respjson.Field 4648 AgentName respjson.Field 4649 ProcessedAt respjson.Field 4650 SessionThreadID respjson.Field 4651 Type respjson.Field 4652 ExtraFields map[string]respjson.Field 4653 raw string 4654 } `json:"-"` 4655 } 4656 4657 // Returns the unmodified JSON received from the API 4658 func (r BetaManagedAgentsSessionThreadCreatedEvent) RawJSON() string { return r.JSON.raw } 4659 func (r *BetaManagedAgentsSessionThreadCreatedEvent) UnmarshalJSON(data []byte) error { 4660 return apijson.UnmarshalRoot(data, r) 4661 } 4662 4663 type BetaManagedAgentsSessionThreadCreatedEventType string 4664 4665 const ( 4666 BetaManagedAgentsSessionThreadCreatedEventTypeSessionThreadCreated BetaManagedAgentsSessionThreadCreatedEventType = "session.thread_created" 4667 ) 4668 4669 // A session thread has yielded and is awaiting input. Emitted on the thread's own 4670 // stream and cross-posted to the primary stream for child threads. 4671 type BetaManagedAgentsSessionThreadStatusIdleEvent struct { 4672 // Unique identifier for this event. 4673 ID string `json:"id" api:"required"` 4674 // Name of the agent the thread runs. 4675 AgentName string `json:"agent_name" api:"required"` 4676 // A timestamp in RFC 3339 format 4677 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 4678 // Public sthr\_ ID of the thread that went idle. 4679 SessionThreadID string `json:"session_thread_id" api:"required"` 4680 // The agent completed its turn naturally and is ready for the next user message. 4681 StopReason BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion `json:"stop_reason" api:"required"` 4682 // Any of "session.thread_status_idle". 4683 Type BetaManagedAgentsSessionThreadStatusIdleEventType `json:"type" api:"required"` 4684 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 4685 JSON struct { 4686 ID respjson.Field 4687 AgentName respjson.Field 4688 ProcessedAt respjson.Field 4689 SessionThreadID respjson.Field 4690 StopReason respjson.Field 4691 Type respjson.Field 4692 ExtraFields map[string]respjson.Field 4693 raw string 4694 } `json:"-"` 4695 } 4696 4697 // Returns the unmodified JSON received from the API 4698 func (r BetaManagedAgentsSessionThreadStatusIdleEvent) RawJSON() string { return r.JSON.raw } 4699 func (r *BetaManagedAgentsSessionThreadStatusIdleEvent) UnmarshalJSON(data []byte) error { 4700 return apijson.UnmarshalRoot(data, r) 4701 } 4702 4703 // BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion contains all 4704 // possible properties and values from [BetaManagedAgentsSessionEndTurn], 4705 // [BetaManagedAgentsSessionRequiresAction], 4706 // [BetaManagedAgentsSessionRetriesExhausted], 4707 // [BetaManagedAgentsSessionBudgetReached]. 4708 // 4709 // Use the [BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion.AsAny] 4710 // method to switch on the variant. 4711 // 4712 // Use the methods beginning with 'As' to cast the union to one of its variants. 4713 type BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion struct { 4714 // Any of "end_turn", "requires_action", "retries_exhausted", "budget_reached". 4715 Type string `json:"type"` 4716 // This field is from variant [BetaManagedAgentsSessionRequiresAction]. 4717 EventIDs []string `json:"event_ids"` 4718 JSON struct { 4719 Type respjson.Field 4720 EventIDs respjson.Field 4721 raw string 4722 } `json:"-"` 4723 } 4724 4725 // anyBetaManagedAgentsSessionThreadStatusIdleEventStopReason is implemented by 4726 // each variant of [BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion] 4727 // to add type safety for the return type of 4728 // [BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion.AsAny] 4729 type anyBetaManagedAgentsSessionThreadStatusIdleEventStopReason interface { 4730 implBetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion() 4731 } 4732 4733 func (BetaManagedAgentsSessionEndTurn) implBetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion() { 4734 } 4735 func (BetaManagedAgentsSessionRequiresAction) implBetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion() { 4736 } 4737 func (BetaManagedAgentsSessionRetriesExhausted) implBetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion() { 4738 } 4739 func (BetaManagedAgentsSessionBudgetReached) implBetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion() { 4740 } 4741 4742 // Use the following switch statement to find the correct variant 4743 // 4744 // switch variant := BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion.AsAny().(type) { 4745 // case anthropic.BetaManagedAgentsSessionEndTurn: 4746 // case anthropic.BetaManagedAgentsSessionRequiresAction: 4747 // case anthropic.BetaManagedAgentsSessionRetriesExhausted: 4748 // case anthropic.BetaManagedAgentsSessionBudgetReached: 4749 // default: 4750 // fmt.Errorf("no variant present") 4751 // } 4752 func (u BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion) AsAny() anyBetaManagedAgentsSessionThreadStatusIdleEventStopReason { 4753 switch u.Type { 4754 case "end_turn": 4755 return u.AsEndTurn() 4756 case "requires_action": 4757 return u.AsRequiresAction() 4758 case "retries_exhausted": 4759 return u.AsRetriesExhausted() 4760 case "budget_reached": 4761 return u.AsBudgetReached() 4762 } 4763 return nil 4764 } 4765 4766 func (u BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion) AsEndTurn() (v BetaManagedAgentsSessionEndTurn) { 4767 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4768 return 4769 } 4770 4771 func (u BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion) AsRequiresAction() (v BetaManagedAgentsSessionRequiresAction) { 4772 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4773 return 4774 } 4775 4776 func (u BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion) AsRetriesExhausted() (v BetaManagedAgentsSessionRetriesExhausted) { 4777 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4778 return 4779 } 4780 4781 func (u BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion) AsBudgetReached() (v BetaManagedAgentsSessionBudgetReached) { 4782 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 4783 return 4784 } 4785 4786 // Returns the unmodified JSON received from the API 4787 func (u BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion) RawJSON() string { 4788 return u.JSON.raw 4789 } 4790 4791 func (r *BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion) UnmarshalJSON(data []byte) error { 4792 return apijson.UnmarshalRoot(data, r) 4793 } 4794 4795 type BetaManagedAgentsSessionThreadStatusIdleEventType string 4796 4797 const ( 4798 BetaManagedAgentsSessionThreadStatusIdleEventTypeSessionThreadStatusIdle BetaManagedAgentsSessionThreadStatusIdleEventType = "session.thread_status_idle" 4799 ) 4800 4801 // A session thread hit a transient error and is retrying automatically. Emitted on 4802 // the thread's own stream and cross-posted to the primary stream for child 4803 // threads. 4804 type BetaManagedAgentsSessionThreadStatusRescheduledEvent struct { 4805 // Unique identifier for this event. 4806 ID string `json:"id" api:"required"` 4807 // Name of the agent the thread runs. 4808 AgentName string `json:"agent_name" api:"required"` 4809 // A timestamp in RFC 3339 format 4810 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 4811 // Public sthr\_ ID of the thread that is retrying. 4812 SessionThreadID string `json:"session_thread_id" api:"required"` 4813 // Any of "session.thread_status_rescheduled". 4814 Type BetaManagedAgentsSessionThreadStatusRescheduledEventType `json:"type" api:"required"` 4815 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 4816 JSON struct { 4817 ID respjson.Field 4818 AgentName respjson.Field 4819 ProcessedAt respjson.Field 4820 SessionThreadID respjson.Field 4821 Type respjson.Field 4822 ExtraFields map[string]respjson.Field 4823 raw string 4824 } `json:"-"` 4825 } 4826 4827 // Returns the unmodified JSON received from the API 4828 func (r BetaManagedAgentsSessionThreadStatusRescheduledEvent) RawJSON() string { return r.JSON.raw } 4829 func (r *BetaManagedAgentsSessionThreadStatusRescheduledEvent) UnmarshalJSON(data []byte) error { 4830 return apijson.UnmarshalRoot(data, r) 4831 } 4832 4833 type BetaManagedAgentsSessionThreadStatusRescheduledEventType string 4834 4835 const ( 4836 BetaManagedAgentsSessionThreadStatusRescheduledEventTypeSessionThreadStatusRescheduled BetaManagedAgentsSessionThreadStatusRescheduledEventType = "session.thread_status_rescheduled" 4837 ) 4838 4839 // A session thread has begun executing. Emitted on the thread's own stream and 4840 // cross-posted to the primary stream for child threads. 4841 type BetaManagedAgentsSessionThreadStatusRunningEvent struct { 4842 // Unique identifier for this event. 4843 ID string `json:"id" api:"required"` 4844 // Name of the agent the thread runs. 4845 AgentName string `json:"agent_name" api:"required"` 4846 // A timestamp in RFC 3339 format 4847 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 4848 // Public sthr\_ ID of the thread that started running. 4849 SessionThreadID string `json:"session_thread_id" api:"required"` 4850 // Any of "session.thread_status_running". 4851 Type BetaManagedAgentsSessionThreadStatusRunningEventType `json:"type" api:"required"` 4852 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 4853 JSON struct { 4854 ID respjson.Field 4855 AgentName respjson.Field 4856 ProcessedAt respjson.Field 4857 SessionThreadID respjson.Field 4858 Type respjson.Field 4859 ExtraFields map[string]respjson.Field 4860 raw string 4861 } `json:"-"` 4862 } 4863 4864 // Returns the unmodified JSON received from the API 4865 func (r BetaManagedAgentsSessionThreadStatusRunningEvent) RawJSON() string { return r.JSON.raw } 4866 func (r *BetaManagedAgentsSessionThreadStatusRunningEvent) UnmarshalJSON(data []byte) error { 4867 return apijson.UnmarshalRoot(data, r) 4868 } 4869 4870 type BetaManagedAgentsSessionThreadStatusRunningEventType string 4871 4872 const ( 4873 BetaManagedAgentsSessionThreadStatusRunningEventTypeSessionThreadStatusRunning BetaManagedAgentsSessionThreadStatusRunningEventType = "session.thread_status_running" 4874 ) 4875 4876 // A session thread has terminated and will accept no further input. Emitted on the 4877 // thread's own stream and cross-posted to the primary stream for child threads. 4878 type BetaManagedAgentsSessionThreadStatusTerminatedEvent struct { 4879 // Unique identifier for this event. 4880 ID string `json:"id" api:"required"` 4881 // Name of the agent the thread runs. 4882 AgentName string `json:"agent_name" api:"required"` 4883 // A timestamp in RFC 3339 format 4884 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 4885 // Public sthr\_ ID of the thread that terminated. 4886 SessionThreadID string `json:"session_thread_id" api:"required"` 4887 // Any of "session.thread_status_terminated". 4888 Type BetaManagedAgentsSessionThreadStatusTerminatedEventType `json:"type" api:"required"` 4889 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 4890 JSON struct { 4891 ID respjson.Field 4892 AgentName respjson.Field 4893 ProcessedAt respjson.Field 4894 SessionThreadID respjson.Field 4895 Type respjson.Field 4896 ExtraFields map[string]respjson.Field 4897 raw string 4898 } `json:"-"` 4899 } 4900 4901 // Returns the unmodified JSON received from the API 4902 func (r BetaManagedAgentsSessionThreadStatusTerminatedEvent) RawJSON() string { return r.JSON.raw } 4903 func (r *BetaManagedAgentsSessionThreadStatusTerminatedEvent) UnmarshalJSON(data []byte) error { 4904 return apijson.UnmarshalRoot(data, r) 4905 } 4906 4907 type BetaManagedAgentsSessionThreadStatusTerminatedEventType string 4908 4909 const ( 4910 BetaManagedAgentsSessionThreadStatusTerminatedEventTypeSessionThreadStatusTerminated BetaManagedAgentsSessionThreadStatusTerminatedEventType = "session.thread_status_terminated" 4911 ) 4912 4913 // Point-in-time snapshot of a session's cumulative usage. 4914 type BetaManagedAgentsSessionUsageSnapshot struct { 4915 // Cumulative time in seconds during which the session had at least one thread in 4916 // running status. Overlapping activity from concurrent threads is counted once. 4917 // This is the duration the session's runtime cost is priced on. 4918 ActiveSeconds float64 `json:"active_seconds"` 4919 // Prompt-cache creation token usage broken down by cache lifetime. 4920 CacheCreation BetaManagedAgentsCacheCreationUsage `json:"cache_creation"` 4921 // Total tokens read from prompt cache. 4922 CacheReadInputTokens int64 `json:"cache_read_input_tokens"` 4923 // Total input tokens consumed across all turns. 4924 InputTokens int64 `json:"input_tokens"` 4925 // A monetary amount in a specific currency. 4926 ListCost BetaMonetaryAmount `json:"list_cost"` 4927 // Total output tokens generated across all turns. 4928 OutputTokens int64 `json:"output_tokens"` 4929 // Cumulative count of server-executed tool invocations, broken down by tool. 4930 ServerToolUse BetaManagedAgentsServerToolUsage `json:"server_tool_use"` 4931 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 4932 JSON struct { 4933 ActiveSeconds respjson.Field 4934 CacheCreation respjson.Field 4935 CacheReadInputTokens respjson.Field 4936 InputTokens respjson.Field 4937 ListCost respjson.Field 4938 OutputTokens respjson.Field 4939 ServerToolUse respjson.Field 4940 ExtraFields map[string]respjson.Field 4941 raw string 4942 } `json:"-"` 4943 } 4944 4945 // Returns the unmodified JSON received from the API 4946 func (r BetaManagedAgentsSessionUsageSnapshot) RawJSON() string { return r.JSON.raw } 4947 func (r *BetaManagedAgentsSessionUsageSnapshot) UnmarshalJSON(data []byte) error { 4948 return apijson.UnmarshalRoot(data, r) 4949 } 4950 4951 // Emitted when a model request completes. 4952 type BetaManagedAgentsSpanModelRequestEndEvent struct { 4953 // Unique identifier for this event. 4954 ID string `json:"id" api:"required"` 4955 // Whether the model request resulted in an error. 4956 IsError bool `json:"is_error" api:"required"` 4957 // The id of the corresponding `span.model_request_start` event. 4958 ModelRequestStartID string `json:"model_request_start_id" api:"required"` 4959 // Token usage for a single model request. 4960 ModelUsage BetaManagedAgentsSpanModelUsage `json:"model_usage" api:"required"` 4961 // A timestamp in RFC 3339 format 4962 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 4963 // Any of "span.model_request_end". 4964 Type BetaManagedAgentsSpanModelRequestEndEventType `json:"type" api:"required"` 4965 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 4966 JSON struct { 4967 ID respjson.Field 4968 IsError respjson.Field 4969 ModelRequestStartID respjson.Field 4970 ModelUsage respjson.Field 4971 ProcessedAt respjson.Field 4972 Type respjson.Field 4973 ExtraFields map[string]respjson.Field 4974 raw string 4975 } `json:"-"` 4976 } 4977 4978 // Returns the unmodified JSON received from the API 4979 func (r BetaManagedAgentsSpanModelRequestEndEvent) RawJSON() string { return r.JSON.raw } 4980 func (r *BetaManagedAgentsSpanModelRequestEndEvent) UnmarshalJSON(data []byte) error { 4981 return apijson.UnmarshalRoot(data, r) 4982 } 4983 4984 type BetaManagedAgentsSpanModelRequestEndEventType string 4985 4986 const ( 4987 BetaManagedAgentsSpanModelRequestEndEventTypeSpanModelRequestEnd BetaManagedAgentsSpanModelRequestEndEventType = "span.model_request_end" 4988 ) 4989 4990 // Emitted when a model request is initiated by the agent. 4991 type BetaManagedAgentsSpanModelRequestStartEvent struct { 4992 // Unique identifier for this event. 4993 ID string `json:"id" api:"required"` 4994 // A timestamp in RFC 3339 format 4995 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 4996 // Any of "span.model_request_start". 4997 Type BetaManagedAgentsSpanModelRequestStartEventType `json:"type" api:"required"` 4998 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 4999 JSON struct { 5000 ID respjson.Field 5001 ProcessedAt respjson.Field 5002 Type respjson.Field 5003 ExtraFields map[string]respjson.Field 5004 raw string 5005 } `json:"-"` 5006 } 5007 5008 // Returns the unmodified JSON received from the API 5009 func (r BetaManagedAgentsSpanModelRequestStartEvent) RawJSON() string { return r.JSON.raw } 5010 func (r *BetaManagedAgentsSpanModelRequestStartEvent) UnmarshalJSON(data []byte) error { 5011 return apijson.UnmarshalRoot(data, r) 5012 } 5013 5014 type BetaManagedAgentsSpanModelRequestStartEventType string 5015 5016 const ( 5017 BetaManagedAgentsSpanModelRequestStartEventTypeSpanModelRequestStart BetaManagedAgentsSpanModelRequestStartEventType = "span.model_request_start" 5018 ) 5019 5020 // Token usage for a single model request. 5021 type BetaManagedAgentsSpanModelUsage struct { 5022 // Tokens used to create prompt cache in this request. 5023 CacheCreationInputTokens int64 `json:"cache_creation_input_tokens" api:"required"` 5024 // Tokens read from prompt cache in this request. 5025 CacheReadInputTokens int64 `json:"cache_read_input_tokens" api:"required"` 5026 // Input tokens consumed by this request. 5027 InputTokens int64 `json:"input_tokens" api:"required"` 5028 // Output tokens generated by this request. 5029 OutputTokens int64 `json:"output_tokens" api:"required"` 5030 // Inference speed mode. `fast` provides significantly faster output token 5031 // generation at premium pricing. Not all models support `fast`; invalid 5032 // combinations are rejected at create time. 5033 // 5034 // Any of "standard", "fast". 5035 Speed BetaManagedAgentsSpanModelUsageSpeed `json:"speed" api:"nullable"` 5036 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 5037 JSON struct { 5038 CacheCreationInputTokens respjson.Field 5039 CacheReadInputTokens respjson.Field 5040 InputTokens respjson.Field 5041 OutputTokens respjson.Field 5042 Speed respjson.Field 5043 ExtraFields map[string]respjson.Field 5044 raw string 5045 } `json:"-"` 5046 } 5047 5048 // Returns the unmodified JSON received from the API 5049 func (r BetaManagedAgentsSpanModelUsage) RawJSON() string { return r.JSON.raw } 5050 func (r *BetaManagedAgentsSpanModelUsage) UnmarshalJSON(data []byte) error { 5051 return apijson.UnmarshalRoot(data, r) 5052 } 5053 5054 // Inference speed mode. `fast` provides significantly faster output token 5055 // generation at premium pricing. Not all models support `fast`; invalid 5056 // combinations are rejected at create time. 5057 type BetaManagedAgentsSpanModelUsageSpeed string 5058 5059 const ( 5060 BetaManagedAgentsSpanModelUsageSpeedStandard BetaManagedAgentsSpanModelUsageSpeed = "standard" 5061 BetaManagedAgentsSpanModelUsageSpeedFast BetaManagedAgentsSpanModelUsageSpeed = "fast" 5062 ) 5063 5064 // Emitted when an outcome evaluation cycle completes. Carries the verdict and 5065 // aggregate token usage. A verdict of `needs_revision` means another evaluation 5066 // cycle follows; `satisfied`, `max_iterations_reached`, `failed`, or `interrupted` 5067 // are terminal — no further evaluation cycles follow. 5068 type BetaManagedAgentsSpanOutcomeEvaluationEndEvent struct { 5069 // Unique identifier for this event. 5070 ID string `json:"id" api:"required"` 5071 // Human-readable explanation of the verdict. For `needs_revision`, describes which 5072 // criteria failed and why. 5073 Explanation string `json:"explanation" api:"required"` 5074 // 0-indexed revision cycle, matching the corresponding 5075 // `span.outcome_evaluation_start`. 5076 Iteration int64 `json:"iteration" api:"required"` 5077 // The id of the corresponding `span.outcome_evaluation_start` event. 5078 OutcomeEvaluationStartID string `json:"outcome_evaluation_start_id" api:"required"` 5079 // The `outc_` ID of the outcome being evaluated. 5080 OutcomeID string `json:"outcome_id" api:"required"` 5081 // A timestamp in RFC 3339 format 5082 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 5083 // Evaluation verdict. 'satisfied': criteria met, session goes idle. 5084 // 'needs_revision': criteria not met, another revision cycle follows. 5085 // 'max_iterations_reached': evaluation budget exhausted with criteria still unmet 5086 // — one final acknowledgment turn follows before the session goes idle, but no 5087 // further evaluation runs. 'failed': grader determined the rubric does not apply 5088 // to the deliverables. 'interrupted': user sent an interrupt while evaluation was 5089 // in progress. 5090 Result string `json:"result" api:"required"` 5091 // Any of "span.outcome_evaluation_end". 5092 Type BetaManagedAgentsSpanOutcomeEvaluationEndEventType `json:"type" api:"required"` 5093 // Token usage for a single model request. 5094 Usage BetaManagedAgentsSpanModelUsage `json:"usage" api:"required"` 5095 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 5096 JSON struct { 5097 ID respjson.Field 5098 Explanation respjson.Field 5099 Iteration respjson.Field 5100 OutcomeEvaluationStartID respjson.Field 5101 OutcomeID respjson.Field 5102 ProcessedAt respjson.Field 5103 Result respjson.Field 5104 Type respjson.Field 5105 Usage respjson.Field 5106 ExtraFields map[string]respjson.Field 5107 raw string 5108 } `json:"-"` 5109 } 5110 5111 // Returns the unmodified JSON received from the API 5112 func (r BetaManagedAgentsSpanOutcomeEvaluationEndEvent) RawJSON() string { return r.JSON.raw } 5113 func (r *BetaManagedAgentsSpanOutcomeEvaluationEndEvent) UnmarshalJSON(data []byte) error { 5114 return apijson.UnmarshalRoot(data, r) 5115 } 5116 5117 type BetaManagedAgentsSpanOutcomeEvaluationEndEventType string 5118 5119 const ( 5120 BetaManagedAgentsSpanOutcomeEvaluationEndEventTypeSpanOutcomeEvaluationEnd BetaManagedAgentsSpanOutcomeEvaluationEndEventType = "span.outcome_evaluation_end" 5121 ) 5122 5123 // Periodic heartbeat emitted while an outcome evaluation cycle is in progress. 5124 // Distinguishes 'evaluation is actively running' from 'evaluation is stuck' 5125 // between the corresponding `span.outcome_evaluation_start` and 5126 // `span.outcome_evaluation_end` events. 5127 type BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent struct { 5128 // Unique identifier for this event. 5129 ID string `json:"id" api:"required"` 5130 // 0-indexed revision cycle, matching the corresponding 5131 // `span.outcome_evaluation_start`. 5132 Iteration int64 `json:"iteration" api:"required"` 5133 // The `outc_` ID of the outcome being evaluated. 5134 OutcomeID string `json:"outcome_id" api:"required"` 5135 // A timestamp in RFC 3339 format 5136 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 5137 // Any of "span.outcome_evaluation_ongoing". 5138 Type BetaManagedAgentsSpanOutcomeEvaluationOngoingEventType `json:"type" api:"required"` 5139 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 5140 JSON struct { 5141 ID respjson.Field 5142 Iteration respjson.Field 5143 OutcomeID respjson.Field 5144 ProcessedAt respjson.Field 5145 Type respjson.Field 5146 ExtraFields map[string]respjson.Field 5147 raw string 5148 } `json:"-"` 5149 } 5150 5151 // Returns the unmodified JSON received from the API 5152 func (r BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent) RawJSON() string { return r.JSON.raw } 5153 func (r *BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent) UnmarshalJSON(data []byte) error { 5154 return apijson.UnmarshalRoot(data, r) 5155 } 5156 5157 type BetaManagedAgentsSpanOutcomeEvaluationOngoingEventType string 5158 5159 const ( 5160 BetaManagedAgentsSpanOutcomeEvaluationOngoingEventTypeSpanOutcomeEvaluationOngoing BetaManagedAgentsSpanOutcomeEvaluationOngoingEventType = "span.outcome_evaluation_ongoing" 5161 ) 5162 5163 // Emitted when an outcome evaluation cycle begins. 5164 type BetaManagedAgentsSpanOutcomeEvaluationStartEvent struct { 5165 // Unique identifier for this event. 5166 ID string `json:"id" api:"required"` 5167 // 0-indexed revision cycle. 0 is the first evaluation; 1 is the re-evaluation 5168 // after the first revision; etc. 5169 Iteration int64 `json:"iteration" api:"required"` 5170 // The `outc_` ID of the outcome being evaluated. 5171 OutcomeID string `json:"outcome_id" api:"required"` 5172 // A timestamp in RFC 3339 format 5173 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 5174 // Any of "span.outcome_evaluation_start". 5175 Type BetaManagedAgentsSpanOutcomeEvaluationStartEventType `json:"type" api:"required"` 5176 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 5177 JSON struct { 5178 ID respjson.Field 5179 Iteration respjson.Field 5180 OutcomeID respjson.Field 5181 ProcessedAt respjson.Field 5182 Type respjson.Field 5183 ExtraFields map[string]respjson.Field 5184 raw string 5185 } `json:"-"` 5186 } 5187 5188 // Returns the unmodified JSON received from the API 5189 func (r BetaManagedAgentsSpanOutcomeEvaluationStartEvent) RawJSON() string { return r.JSON.raw } 5190 func (r *BetaManagedAgentsSpanOutcomeEvaluationStartEvent) UnmarshalJSON(data []byte) error { 5191 return apijson.UnmarshalRoot(data, r) 5192 } 5193 5194 type BetaManagedAgentsSpanOutcomeEvaluationStartEventType string 5195 5196 const ( 5197 BetaManagedAgentsSpanOutcomeEvaluationStartEventTypeSpanOutcomeEvaluationStart BetaManagedAgentsSpanOutcomeEvaluationStartEventType = "span.outcome_evaluation_start" 5198 ) 5199 5200 // BetaManagedAgentsStreamSessionEventsUnion contains all possible properties and 5201 // values from [BetaManagedAgentsUserMessageEvent], 5202 // [BetaManagedAgentsUserInterruptEvent], 5203 // [BetaManagedAgentsUserToolConfirmationEvent], 5204 // [BetaManagedAgentsUserCustomToolResultEvent], 5205 // [BetaManagedAgentsAgentCustomToolUseEvent], 5206 // [BetaManagedAgentsAgentMessageEvent], [BetaManagedAgentsAgentThinkingEvent], 5207 // [BetaManagedAgentsAgentMCPToolUseEvent], 5208 // [BetaManagedAgentsAgentMCPToolResultEvent], 5209 // [BetaManagedAgentsAgentToolUseEvent], [BetaManagedAgentsAgentToolResultEvent], 5210 // [BetaManagedAgentsAgentThreadMessageReceivedEvent], 5211 // [BetaManagedAgentsAgentThreadMessageSentEvent], 5212 // [BetaManagedAgentsAgentThreadContextCompactedEvent], 5213 // [BetaManagedAgentsSessionErrorEvent], 5214 // [BetaManagedAgentsSessionStatusRescheduledEvent], 5215 // [BetaManagedAgentsSessionStatusRunningEvent], 5216 // [BetaManagedAgentsSessionStatusIdleEvent], 5217 // [BetaManagedAgentsSessionStatusTerminatedEvent], 5218 // [BetaManagedAgentsSessionThreadCreatedEvent], 5219 // [BetaManagedAgentsSpanOutcomeEvaluationStartEvent], 5220 // [BetaManagedAgentsSpanOutcomeEvaluationEndEvent], 5221 // [BetaManagedAgentsSpanModelRequestStartEvent], 5222 // [BetaManagedAgentsSpanModelRequestEndEvent], 5223 // [BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent], 5224 // [BetaManagedAgentsUserDefineOutcomeEvent], 5225 // [BetaManagedAgentsSessionDeletedEvent], 5226 // [BetaManagedAgentsSessionThreadStatusRunningEvent], 5227 // [BetaManagedAgentsSessionThreadStatusIdleEvent], 5228 // [BetaManagedAgentsSessionThreadStatusTerminatedEvent], 5229 // [BetaManagedAgentsUserToolResultEvent], 5230 // [BetaManagedAgentsSessionThreadStatusRescheduledEvent], 5231 // [BetaManagedAgentsSessionUpdatedEvent], [BetaManagedAgentsStartEvent], 5232 // [BetaManagedAgentsDeltaEvent], [BetaManagedAgentsSystemMessageEvent], 5233 // [BetaManagedAgentsSessionUsageEvent]. 5234 // 5235 // Use the [BetaManagedAgentsStreamSessionEventsUnion.AsAny] method to switch on 5236 // the variant. 5237 // 5238 // Use the methods beginning with 'As' to cast the union to one of its variants. 5239 type BetaManagedAgentsStreamSessionEventsUnion struct { 5240 ID string `json:"id"` 5241 // This field is a union of [[]BetaManagedAgentsUserMessageEventContentUnion], 5242 // [[]BetaManagedAgentsUserCustomToolResultEventContentUnion], 5243 // [[]BetaManagedAgentsAgentMessageEventContentUnion], 5244 // [[]BetaManagedAgentsAgentMCPToolResultEventContentUnion], 5245 // [[]BetaManagedAgentsAgentToolResultEventContentUnion], 5246 // [[]BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion], 5247 // [[]BetaManagedAgentsAgentThreadMessageSentEventContentUnion], 5248 // [[]BetaManagedAgentsUserToolResultEventContentUnion], 5249 // [[]BetaManagedAgentsSystemContentBlock] 5250 Content BetaManagedAgentsStreamSessionEventsUnionContent `json:"content"` 5251 // Any of "user.message", "user.interrupt", "user.tool_confirmation", 5252 // "user.custom_tool_result", "agent.custom_tool_use", "agent.message", 5253 // "agent.thinking", "agent.mcp_tool_use", "agent.mcp_tool_result", 5254 // "agent.tool_use", "agent.tool_result", "agent.thread_message_received", 5255 // "agent.thread_message_sent", "agent.thread_context_compacted", "session.error", 5256 // "session.status_rescheduled", "session.status_running", "session.status_idle", 5257 // "session.status_terminated", "session.thread_created", 5258 // "span.outcome_evaluation_start", "span.outcome_evaluation_end", 5259 // "span.model_request_start", "span.model_request_end", 5260 // "span.outcome_evaluation_ongoing", "user.define_outcome", "session.deleted", 5261 // "session.thread_status_running", "session.thread_status_idle", 5262 // "session.thread_status_terminated", "user.tool_result", 5263 // "session.thread_status_rescheduled", "session.updated", "event_start", 5264 // "event_delta", "system.message", "session.usage". 5265 Type string `json:"type"` 5266 ProcessedAt time.Time `json:"processed_at"` 5267 SessionThreadID string `json:"session_thread_id"` 5268 Result string `json:"result"` 5269 ToolUseID string `json:"tool_use_id"` 5270 // This field is from variant [BetaManagedAgentsUserToolConfirmationEvent]. 5271 DenyMessage string `json:"deny_message"` 5272 // This field is from variant [BetaManagedAgentsUserCustomToolResultEvent]. 5273 CustomToolUseID string `json:"custom_tool_use_id"` 5274 IsError bool `json:"is_error"` 5275 Input any `json:"input"` 5276 Name string `json:"name"` 5277 // This field is from variant [BetaManagedAgentsAgentMCPToolUseEvent]. 5278 MCPServerName string `json:"mcp_server_name"` 5279 EvaluatedPermission string `json:"evaluated_permission"` 5280 // This field is from variant [BetaManagedAgentsAgentMCPToolResultEvent]. 5281 MCPToolUseID string `json:"mcp_tool_use_id"` 5282 // This field is from variant [BetaManagedAgentsAgentThreadMessageReceivedEvent]. 5283 FromSessionThreadID string `json:"from_session_thread_id"` 5284 // This field is from variant [BetaManagedAgentsAgentThreadMessageReceivedEvent]. 5285 FromAgentName string `json:"from_agent_name"` 5286 // This field is from variant [BetaManagedAgentsAgentThreadMessageSentEvent]. 5287 ToSessionThreadID string `json:"to_session_thread_id"` 5288 // This field is from variant [BetaManagedAgentsAgentThreadMessageSentEvent]. 5289 ToAgentName string `json:"to_agent_name"` 5290 // This field is from variant [BetaManagedAgentsSessionErrorEvent]. 5291 Error BetaManagedAgentsSessionErrorEventErrorUnion `json:"error"` 5292 // This field is a union of 5293 // [BetaManagedAgentsSessionStatusIdleEventStopReasonUnion], 5294 // [BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion] 5295 StopReason BetaManagedAgentsStreamSessionEventsUnionStopReason `json:"stop_reason"` 5296 AgentName string `json:"agent_name"` 5297 Iteration int64 `json:"iteration"` 5298 OutcomeID string `json:"outcome_id"` 5299 // This field is from variant [BetaManagedAgentsSpanOutcomeEvaluationEndEvent]. 5300 Explanation string `json:"explanation"` 5301 // This field is from variant [BetaManagedAgentsSpanOutcomeEvaluationEndEvent]. 5302 OutcomeEvaluationStartID string `json:"outcome_evaluation_start_id"` 5303 // This field is a union of [BetaManagedAgentsSpanModelUsage], 5304 // [BetaManagedAgentsSessionUsageSnapshot] 5305 Usage BetaManagedAgentsStreamSessionEventsUnionUsage `json:"usage"` 5306 // This field is from variant [BetaManagedAgentsSpanModelRequestEndEvent]. 5307 ModelRequestStartID string `json:"model_request_start_id"` 5308 // This field is from variant [BetaManagedAgentsSpanModelRequestEndEvent]. 5309 ModelUsage BetaManagedAgentsSpanModelUsage `json:"model_usage"` 5310 // This field is from variant [BetaManagedAgentsUserDefineOutcomeEvent]. 5311 Description string `json:"description"` 5312 // This field is from variant [BetaManagedAgentsUserDefineOutcomeEvent]. 5313 MaxIterations int64 `json:"max_iterations"` 5314 // This field is from variant [BetaManagedAgentsUserDefineOutcomeEvent]. 5315 Rubric BetaManagedAgentsUserDefineOutcomeEventRubricUnion `json:"rubric"` 5316 // This field is from variant [BetaManagedAgentsSessionUpdatedEvent]. 5317 Agent BetaManagedAgentsSessionAgent `json:"agent"` 5318 // This field is from variant [BetaManagedAgentsSessionUpdatedEvent]. 5319 Budget BetaManagedAgentsBudgetLimit `json:"budget"` 5320 // This field is from variant [BetaManagedAgentsSessionUpdatedEvent]. 5321 Metadata map[string]string `json:"metadata"` 5322 // This field is from variant [BetaManagedAgentsSessionUpdatedEvent]. 5323 Title string `json:"title"` 5324 // This field is from variant [BetaManagedAgentsStartEvent]. 5325 Event BetaManagedAgentsStartEventPreviewUnion `json:"event"` 5326 // This field is from variant [BetaManagedAgentsDeltaEvent]. 5327 Delta BetaManagedAgentsDeltaContent `json:"delta"` 5328 // This field is from variant [BetaManagedAgentsDeltaEvent]. 5329 EventID string `json:"event_id"` 5330 JSON struct { 5331 ID respjson.Field 5332 Content respjson.Field 5333 Type respjson.Field 5334 ProcessedAt respjson.Field 5335 SessionThreadID respjson.Field 5336 Result respjson.Field 5337 ToolUseID respjson.Field 5338 DenyMessage respjson.Field 5339 CustomToolUseID respjson.Field 5340 IsError respjson.Field 5341 Input respjson.Field 5342 Name respjson.Field 5343 MCPServerName respjson.Field 5344 EvaluatedPermission respjson.Field 5345 MCPToolUseID respjson.Field 5346 FromSessionThreadID respjson.Field 5347 FromAgentName respjson.Field 5348 ToSessionThreadID respjson.Field 5349 ToAgentName respjson.Field 5350 Error respjson.Field 5351 StopReason respjson.Field 5352 AgentName respjson.Field 5353 Iteration respjson.Field 5354 OutcomeID respjson.Field 5355 Explanation respjson.Field 5356 OutcomeEvaluationStartID respjson.Field 5357 Usage respjson.Field 5358 ModelRequestStartID respjson.Field 5359 ModelUsage respjson.Field 5360 Description respjson.Field 5361 MaxIterations respjson.Field 5362 Rubric respjson.Field 5363 Agent respjson.Field 5364 Budget respjson.Field 5365 Metadata respjson.Field 5366 Title respjson.Field 5367 Event respjson.Field 5368 Delta respjson.Field 5369 EventID respjson.Field 5370 raw string 5371 } `json:"-"` 5372 } 5373 5374 // anyBetaManagedAgentsStreamSessionEvents is implemented by each variant of 5375 // [BetaManagedAgentsStreamSessionEventsUnion] to add type safety for the return 5376 // type of [BetaManagedAgentsStreamSessionEventsUnion.AsAny] 5377 type anyBetaManagedAgentsStreamSessionEvents interface { 5378 implBetaManagedAgentsStreamSessionEventsUnion() 5379 } 5380 5381 func (BetaManagedAgentsUserMessageEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5382 func (BetaManagedAgentsUserInterruptEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5383 func (BetaManagedAgentsUserToolConfirmationEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5384 func (BetaManagedAgentsUserCustomToolResultEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5385 func (BetaManagedAgentsAgentCustomToolUseEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5386 func (BetaManagedAgentsAgentMessageEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5387 func (BetaManagedAgentsAgentThinkingEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5388 func (BetaManagedAgentsAgentMCPToolUseEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5389 func (BetaManagedAgentsAgentMCPToolResultEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5390 func (BetaManagedAgentsAgentToolUseEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5391 func (BetaManagedAgentsAgentToolResultEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5392 func (BetaManagedAgentsAgentThreadMessageReceivedEvent) implBetaManagedAgentsStreamSessionEventsUnion() { 5393 } 5394 func (BetaManagedAgentsAgentThreadMessageSentEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5395 func (BetaManagedAgentsAgentThreadContextCompactedEvent) implBetaManagedAgentsStreamSessionEventsUnion() { 5396 } 5397 func (BetaManagedAgentsSessionErrorEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5398 func (BetaManagedAgentsSessionStatusRescheduledEvent) implBetaManagedAgentsStreamSessionEventsUnion() { 5399 } 5400 func (BetaManagedAgentsSessionStatusRunningEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5401 func (BetaManagedAgentsSessionStatusIdleEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5402 func (BetaManagedAgentsSessionStatusTerminatedEvent) implBetaManagedAgentsStreamSessionEventsUnion() { 5403 } 5404 func (BetaManagedAgentsSessionThreadCreatedEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5405 func (BetaManagedAgentsSpanOutcomeEvaluationStartEvent) implBetaManagedAgentsStreamSessionEventsUnion() { 5406 } 5407 func (BetaManagedAgentsSpanOutcomeEvaluationEndEvent) implBetaManagedAgentsStreamSessionEventsUnion() { 5408 } 5409 func (BetaManagedAgentsSpanModelRequestStartEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5410 func (BetaManagedAgentsSpanModelRequestEndEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5411 func (BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent) implBetaManagedAgentsStreamSessionEventsUnion() { 5412 } 5413 func (BetaManagedAgentsUserDefineOutcomeEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5414 func (BetaManagedAgentsSessionDeletedEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5415 func (BetaManagedAgentsSessionThreadStatusRunningEvent) implBetaManagedAgentsStreamSessionEventsUnion() { 5416 } 5417 func (BetaManagedAgentsSessionThreadStatusIdleEvent) implBetaManagedAgentsStreamSessionEventsUnion() { 5418 } 5419 func (BetaManagedAgentsSessionThreadStatusTerminatedEvent) implBetaManagedAgentsStreamSessionEventsUnion() { 5420 } 5421 func (BetaManagedAgentsUserToolResultEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5422 func (BetaManagedAgentsSessionThreadStatusRescheduledEvent) implBetaManagedAgentsStreamSessionEventsUnion() { 5423 } 5424 func (BetaManagedAgentsSessionUpdatedEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5425 func (BetaManagedAgentsStartEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5426 func (BetaManagedAgentsDeltaEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5427 func (BetaManagedAgentsSystemMessageEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5428 func (BetaManagedAgentsSessionUsageEvent) implBetaManagedAgentsStreamSessionEventsUnion() {} 5429 5430 // Use the following switch statement to find the correct variant 5431 // 5432 // switch variant := BetaManagedAgentsStreamSessionEventsUnion.AsAny().(type) { 5433 // case anthropic.BetaManagedAgentsUserMessageEvent: 5434 // case anthropic.BetaManagedAgentsUserInterruptEvent: 5435 // case anthropic.BetaManagedAgentsUserToolConfirmationEvent: 5436 // case anthropic.BetaManagedAgentsUserCustomToolResultEvent: 5437 // case anthropic.BetaManagedAgentsAgentCustomToolUseEvent: 5438 // case anthropic.BetaManagedAgentsAgentMessageEvent: 5439 // case anthropic.BetaManagedAgentsAgentThinkingEvent: 5440 // case anthropic.BetaManagedAgentsAgentMCPToolUseEvent: 5441 // case anthropic.BetaManagedAgentsAgentMCPToolResultEvent: 5442 // case anthropic.BetaManagedAgentsAgentToolUseEvent: 5443 // case anthropic.BetaManagedAgentsAgentToolResultEvent: 5444 // case anthropic.BetaManagedAgentsAgentThreadMessageReceivedEvent: 5445 // case anthropic.BetaManagedAgentsAgentThreadMessageSentEvent: 5446 // case anthropic.BetaManagedAgentsAgentThreadContextCompactedEvent: 5447 // case anthropic.BetaManagedAgentsSessionErrorEvent: 5448 // case anthropic.BetaManagedAgentsSessionStatusRescheduledEvent: 5449 // case anthropic.BetaManagedAgentsSessionStatusRunningEvent: 5450 // case anthropic.BetaManagedAgentsSessionStatusIdleEvent: 5451 // case anthropic.BetaManagedAgentsSessionStatusTerminatedEvent: 5452 // case anthropic.BetaManagedAgentsSessionThreadCreatedEvent: 5453 // case anthropic.BetaManagedAgentsSpanOutcomeEvaluationStartEvent: 5454 // case anthropic.BetaManagedAgentsSpanOutcomeEvaluationEndEvent: 5455 // case anthropic.BetaManagedAgentsSpanModelRequestStartEvent: 5456 // case anthropic.BetaManagedAgentsSpanModelRequestEndEvent: 5457 // case anthropic.BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent: 5458 // case anthropic.BetaManagedAgentsUserDefineOutcomeEvent: 5459 // case anthropic.BetaManagedAgentsSessionDeletedEvent: 5460 // case anthropic.BetaManagedAgentsSessionThreadStatusRunningEvent: 5461 // case anthropic.BetaManagedAgentsSessionThreadStatusIdleEvent: 5462 // case anthropic.BetaManagedAgentsSessionThreadStatusTerminatedEvent: 5463 // case anthropic.BetaManagedAgentsUserToolResultEvent: 5464 // case anthropic.BetaManagedAgentsSessionThreadStatusRescheduledEvent: 5465 // case anthropic.BetaManagedAgentsSessionUpdatedEvent: 5466 // case anthropic.BetaManagedAgentsStartEvent: 5467 // case anthropic.BetaManagedAgentsDeltaEvent: 5468 // case anthropic.BetaManagedAgentsSystemMessageEvent: 5469 // case anthropic.BetaManagedAgentsSessionUsageEvent: 5470 // default: 5471 // fmt.Errorf("no variant present") 5472 // } 5473 func (u BetaManagedAgentsStreamSessionEventsUnion) AsAny() anyBetaManagedAgentsStreamSessionEvents { 5474 switch u.Type { 5475 case "user.message": 5476 return u.AsUserMessage() 5477 case "user.interrupt": 5478 return u.AsUserInterrupt() 5479 case "user.tool_confirmation": 5480 return u.AsUserToolConfirmation() 5481 case "user.custom_tool_result": 5482 return u.AsUserCustomToolResult() 5483 case "agent.custom_tool_use": 5484 return u.AsAgentCustomToolUse() 5485 case "agent.message": 5486 return u.AsAgentMessage() 5487 case "agent.thinking": 5488 return u.AsAgentThinking() 5489 case "agent.mcp_tool_use": 5490 return u.AsAgentMCPToolUse() 5491 case "agent.mcp_tool_result": 5492 return u.AsAgentMCPToolResult() 5493 case "agent.tool_use": 5494 return u.AsAgentToolUse() 5495 case "agent.tool_result": 5496 return u.AsAgentToolResult() 5497 case "agent.thread_message_received": 5498 return u.AsAgentThreadMessageReceived() 5499 case "agent.thread_message_sent": 5500 return u.AsAgentThreadMessageSent() 5501 case "agent.thread_context_compacted": 5502 return u.AsAgentThreadContextCompacted() 5503 case "session.error": 5504 return u.AsSessionError() 5505 case "session.status_rescheduled": 5506 return u.AsSessionStatusRescheduled() 5507 case "session.status_running": 5508 return u.AsSessionStatusRunning() 5509 case "session.status_idle": 5510 return u.AsSessionStatusIdle() 5511 case "session.status_terminated": 5512 return u.AsSessionStatusTerminated() 5513 case "session.thread_created": 5514 return u.AsSessionThreadCreated() 5515 case "span.outcome_evaluation_start": 5516 return u.AsSpanOutcomeEvaluationStart() 5517 case "span.outcome_evaluation_end": 5518 return u.AsSpanOutcomeEvaluationEnd() 5519 case "span.model_request_start": 5520 return u.AsSpanModelRequestStart() 5521 case "span.model_request_end": 5522 return u.AsSpanModelRequestEnd() 5523 case "span.outcome_evaluation_ongoing": 5524 return u.AsSpanOutcomeEvaluationOngoing() 5525 case "user.define_outcome": 5526 return u.AsUserDefineOutcome() 5527 case "session.deleted": 5528 return u.AsSessionDeleted() 5529 case "session.thread_status_running": 5530 return u.AsSessionThreadStatusRunning() 5531 case "session.thread_status_idle": 5532 return u.AsSessionThreadStatusIdle() 5533 case "session.thread_status_terminated": 5534 return u.AsSessionThreadStatusTerminated() 5535 case "user.tool_result": 5536 return u.AsUserToolResult() 5537 case "session.thread_status_rescheduled": 5538 return u.AsSessionThreadStatusRescheduled() 5539 case "session.updated": 5540 return u.AsSessionUpdated() 5541 case "event_start": 5542 return u.AsEventStart() 5543 case "event_delta": 5544 return u.AsEventDelta() 5545 case "system.message": 5546 return u.AsSystemMessage() 5547 case "session.usage": 5548 return u.AsSessionUsage() 5549 } 5550 return nil 5551 } 5552 5553 func (u BetaManagedAgentsStreamSessionEventsUnion) AsUserMessage() (v BetaManagedAgentsUserMessageEvent) { 5554 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5555 return 5556 } 5557 5558 func (u BetaManagedAgentsStreamSessionEventsUnion) AsUserInterrupt() (v BetaManagedAgentsUserInterruptEvent) { 5559 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5560 return 5561 } 5562 5563 func (u BetaManagedAgentsStreamSessionEventsUnion) AsUserToolConfirmation() (v BetaManagedAgentsUserToolConfirmationEvent) { 5564 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5565 return 5566 } 5567 5568 func (u BetaManagedAgentsStreamSessionEventsUnion) AsUserCustomToolResult() (v BetaManagedAgentsUserCustomToolResultEvent) { 5569 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5570 return 5571 } 5572 5573 func (u BetaManagedAgentsStreamSessionEventsUnion) AsAgentCustomToolUse() (v BetaManagedAgentsAgentCustomToolUseEvent) { 5574 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5575 return 5576 } 5577 5578 func (u BetaManagedAgentsStreamSessionEventsUnion) AsAgentMessage() (v BetaManagedAgentsAgentMessageEvent) { 5579 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5580 return 5581 } 5582 5583 func (u BetaManagedAgentsStreamSessionEventsUnion) AsAgentThinking() (v BetaManagedAgentsAgentThinkingEvent) { 5584 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5585 return 5586 } 5587 5588 func (u BetaManagedAgentsStreamSessionEventsUnion) AsAgentMCPToolUse() (v BetaManagedAgentsAgentMCPToolUseEvent) { 5589 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5590 return 5591 } 5592 5593 func (u BetaManagedAgentsStreamSessionEventsUnion) AsAgentMCPToolResult() (v BetaManagedAgentsAgentMCPToolResultEvent) { 5594 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5595 return 5596 } 5597 5598 func (u BetaManagedAgentsStreamSessionEventsUnion) AsAgentToolUse() (v BetaManagedAgentsAgentToolUseEvent) { 5599 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5600 return 5601 } 5602 5603 func (u BetaManagedAgentsStreamSessionEventsUnion) AsAgentToolResult() (v BetaManagedAgentsAgentToolResultEvent) { 5604 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5605 return 5606 } 5607 5608 func (u BetaManagedAgentsStreamSessionEventsUnion) AsAgentThreadMessageReceived() (v BetaManagedAgentsAgentThreadMessageReceivedEvent) { 5609 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5610 return 5611 } 5612 5613 func (u BetaManagedAgentsStreamSessionEventsUnion) AsAgentThreadMessageSent() (v BetaManagedAgentsAgentThreadMessageSentEvent) { 5614 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5615 return 5616 } 5617 5618 func (u BetaManagedAgentsStreamSessionEventsUnion) AsAgentThreadContextCompacted() (v BetaManagedAgentsAgentThreadContextCompactedEvent) { 5619 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5620 return 5621 } 5622 5623 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSessionError() (v BetaManagedAgentsSessionErrorEvent) { 5624 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5625 return 5626 } 5627 5628 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSessionStatusRescheduled() (v BetaManagedAgentsSessionStatusRescheduledEvent) { 5629 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5630 return 5631 } 5632 5633 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSessionStatusRunning() (v BetaManagedAgentsSessionStatusRunningEvent) { 5634 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5635 return 5636 } 5637 5638 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSessionStatusIdle() (v BetaManagedAgentsSessionStatusIdleEvent) { 5639 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5640 return 5641 } 5642 5643 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSessionStatusTerminated() (v BetaManagedAgentsSessionStatusTerminatedEvent) { 5644 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5645 return 5646 } 5647 5648 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSessionThreadCreated() (v BetaManagedAgentsSessionThreadCreatedEvent) { 5649 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5650 return 5651 } 5652 5653 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSpanOutcomeEvaluationStart() (v BetaManagedAgentsSpanOutcomeEvaluationStartEvent) { 5654 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5655 return 5656 } 5657 5658 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSpanOutcomeEvaluationEnd() (v BetaManagedAgentsSpanOutcomeEvaluationEndEvent) { 5659 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5660 return 5661 } 5662 5663 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSpanModelRequestStart() (v BetaManagedAgentsSpanModelRequestStartEvent) { 5664 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5665 return 5666 } 5667 5668 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSpanModelRequestEnd() (v BetaManagedAgentsSpanModelRequestEndEvent) { 5669 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5670 return 5671 } 5672 5673 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSpanOutcomeEvaluationOngoing() (v BetaManagedAgentsSpanOutcomeEvaluationOngoingEvent) { 5674 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5675 return 5676 } 5677 5678 func (u BetaManagedAgentsStreamSessionEventsUnion) AsUserDefineOutcome() (v BetaManagedAgentsUserDefineOutcomeEvent) { 5679 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5680 return 5681 } 5682 5683 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSessionDeleted() (v BetaManagedAgentsSessionDeletedEvent) { 5684 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5685 return 5686 } 5687 5688 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSessionThreadStatusRunning() (v BetaManagedAgentsSessionThreadStatusRunningEvent) { 5689 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5690 return 5691 } 5692 5693 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSessionThreadStatusIdle() (v BetaManagedAgentsSessionThreadStatusIdleEvent) { 5694 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5695 return 5696 } 5697 5698 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSessionThreadStatusTerminated() (v BetaManagedAgentsSessionThreadStatusTerminatedEvent) { 5699 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5700 return 5701 } 5702 5703 func (u BetaManagedAgentsStreamSessionEventsUnion) AsUserToolResult() (v BetaManagedAgentsUserToolResultEvent) { 5704 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5705 return 5706 } 5707 5708 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSessionThreadStatusRescheduled() (v BetaManagedAgentsSessionThreadStatusRescheduledEvent) { 5709 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5710 return 5711 } 5712 5713 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSessionUpdated() (v BetaManagedAgentsSessionUpdatedEvent) { 5714 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5715 return 5716 } 5717 5718 func (u BetaManagedAgentsStreamSessionEventsUnion) AsEventStart() (v BetaManagedAgentsStartEvent) { 5719 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5720 return 5721 } 5722 5723 func (u BetaManagedAgentsStreamSessionEventsUnion) AsEventDelta() (v BetaManagedAgentsDeltaEvent) { 5724 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5725 return 5726 } 5727 5728 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSystemMessage() (v BetaManagedAgentsSystemMessageEvent) { 5729 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5730 return 5731 } 5732 5733 func (u BetaManagedAgentsStreamSessionEventsUnion) AsSessionUsage() (v BetaManagedAgentsSessionUsageEvent) { 5734 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 5735 return 5736 } 5737 5738 // Returns the unmodified JSON received from the API 5739 func (u BetaManagedAgentsStreamSessionEventsUnion) RawJSON() string { return u.JSON.raw } 5740 5741 func (r *BetaManagedAgentsStreamSessionEventsUnion) UnmarshalJSON(data []byte) error { 5742 return apijson.UnmarshalRoot(data, r) 5743 } 5744 5745 // BetaManagedAgentsStreamSessionEventsUnionContent is an implicit subunion of 5746 // [BetaManagedAgentsStreamSessionEventsUnion]. 5747 // BetaManagedAgentsStreamSessionEventsUnionContent provides convenient access to 5748 // the sub-properties of the union. 5749 // 5750 // For type safety it is recommended to directly use a variant of the 5751 // [BetaManagedAgentsStreamSessionEventsUnion]. 5752 // 5753 // If the underlying value is not a json object, one of the following properties 5754 // will be valid: OfBetaManagedAgentsUserMessageEventContentArray 5755 // OfBetaManagedAgentsUserCustomToolResultEventContentArray 5756 // OfBetaManagedAgentsAgentMessageEventContentArray 5757 // OfBetaManagedAgentsAgentMCPToolResultEventContentArray 5758 // OfBetaManagedAgentsAgentToolResultEventContentArray 5759 // OfBetaManagedAgentsAgentThreadMessageReceivedEventContentArray 5760 // OfBetaManagedAgentsAgentThreadMessageSentEventContentArray 5761 // OfBetaManagedAgentsUserToolResultEventContentArray 5762 // OfBetaManagedAgentsSystemContentBlockArray] 5763 type BetaManagedAgentsStreamSessionEventsUnionContent struct { 5764 // This field will be present if the value is a 5765 // [[]BetaManagedAgentsUserMessageEventContentUnion] instead of an object. 5766 OfBetaManagedAgentsUserMessageEventContentArray []BetaManagedAgentsUserMessageEventContentUnion `json:",inline"` 5767 // This field will be present if the value is a 5768 // [[]BetaManagedAgentsUserCustomToolResultEventContentUnion] instead of an object. 5769 OfBetaManagedAgentsUserCustomToolResultEventContentArray []BetaManagedAgentsUserCustomToolResultEventContentUnion `json:",inline"` 5770 // This field will be present if the value is a 5771 // [[]BetaManagedAgentsAgentMessageEventContentUnion] instead of an object. 5772 OfBetaManagedAgentsAgentMessageEventContentArray []BetaManagedAgentsAgentMessageEventContentUnion `json:",inline"` 5773 // This field will be present if the value is a 5774 // [[]BetaManagedAgentsAgentMCPToolResultEventContentUnion] instead of an object. 5775 OfBetaManagedAgentsAgentMCPToolResultEventContentArray []BetaManagedAgentsAgentMCPToolResultEventContentUnion `json:",inline"` 5776 // This field will be present if the value is a 5777 // [[]BetaManagedAgentsAgentToolResultEventContentUnion] instead of an object. 5778 OfBetaManagedAgentsAgentToolResultEventContentArray []BetaManagedAgentsAgentToolResultEventContentUnion `json:",inline"` 5779 // This field will be present if the value is a 5780 // [[]BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion] instead of an 5781 // object. 5782 OfBetaManagedAgentsAgentThreadMessageReceivedEventContentArray []BetaManagedAgentsAgentThreadMessageReceivedEventContentUnion `json:",inline"` 5783 // This field will be present if the value is a 5784 // [[]BetaManagedAgentsAgentThreadMessageSentEventContentUnion] instead of an 5785 // object. 5786 OfBetaManagedAgentsAgentThreadMessageSentEventContentArray []BetaManagedAgentsAgentThreadMessageSentEventContentUnion `json:",inline"` 5787 // This field will be present if the value is a 5788 // [[]BetaManagedAgentsUserToolResultEventContentUnion] instead of an object. 5789 OfBetaManagedAgentsUserToolResultEventContentArray []BetaManagedAgentsUserToolResultEventContentUnion `json:",inline"` 5790 // This field will be present if the value is a 5791 // [[]BetaManagedAgentsSystemContentBlock] instead of an object. 5792 OfBetaManagedAgentsSystemContentBlockArray []BetaManagedAgentsSystemContentBlock `json:",inline"` 5793 JSON struct { 5794 OfBetaManagedAgentsUserMessageEventContentArray respjson.Field 5795 OfBetaManagedAgentsUserCustomToolResultEventContentArray respjson.Field 5796 OfBetaManagedAgentsAgentMessageEventContentArray respjson.Field 5797 OfBetaManagedAgentsAgentMCPToolResultEventContentArray respjson.Field 5798 OfBetaManagedAgentsAgentToolResultEventContentArray respjson.Field 5799 OfBetaManagedAgentsAgentThreadMessageReceivedEventContentArray respjson.Field 5800 OfBetaManagedAgentsAgentThreadMessageSentEventContentArray respjson.Field 5801 OfBetaManagedAgentsUserToolResultEventContentArray respjson.Field 5802 OfBetaManagedAgentsSystemContentBlockArray respjson.Field 5803 raw string 5804 } `json:"-"` 5805 } 5806 5807 func (r *BetaManagedAgentsStreamSessionEventsUnionContent) UnmarshalJSON(data []byte) error { 5808 return apijson.UnmarshalRoot(data, r) 5809 } 5810 5811 // BetaManagedAgentsStreamSessionEventsUnionStopReason is an implicit subunion of 5812 // [BetaManagedAgentsStreamSessionEventsUnion]. 5813 // BetaManagedAgentsStreamSessionEventsUnionStopReason provides convenient access 5814 // to the sub-properties of the union. 5815 // 5816 // For type safety it is recommended to directly use a variant of the 5817 // [BetaManagedAgentsStreamSessionEventsUnion]. 5818 type BetaManagedAgentsStreamSessionEventsUnionStopReason struct { 5819 Type string `json:"type"` 5820 // This field is from variant 5821 // [BetaManagedAgentsSessionStatusIdleEventStopReasonUnion], 5822 // [BetaManagedAgentsSessionThreadStatusIdleEventStopReasonUnion]. 5823 EventIDs []string `json:"event_ids"` 5824 JSON struct { 5825 Type respjson.Field 5826 EventIDs respjson.Field 5827 raw string 5828 } `json:"-"` 5829 } 5830 5831 func (r *BetaManagedAgentsStreamSessionEventsUnionStopReason) UnmarshalJSON(data []byte) error { 5832 return apijson.UnmarshalRoot(data, r) 5833 } 5834 5835 // BetaManagedAgentsStreamSessionEventsUnionUsage is an implicit subunion of 5836 // [BetaManagedAgentsStreamSessionEventsUnion]. 5837 // BetaManagedAgentsStreamSessionEventsUnionUsage provides convenient access to the 5838 // sub-properties of the union. 5839 // 5840 // For type safety it is recommended to directly use a variant of the 5841 // [BetaManagedAgentsStreamSessionEventsUnion]. 5842 type BetaManagedAgentsStreamSessionEventsUnionUsage struct { 5843 // This field is from variant [BetaManagedAgentsSpanModelUsage]. 5844 CacheCreationInputTokens int64 `json:"cache_creation_input_tokens"` 5845 CacheReadInputTokens int64 `json:"cache_read_input_tokens"` 5846 InputTokens int64 `json:"input_tokens"` 5847 OutputTokens int64 `json:"output_tokens"` 5848 // This field is from variant [BetaManagedAgentsSpanModelUsage]. 5849 Speed BetaManagedAgentsSpanModelUsageSpeed `json:"speed"` 5850 // This field is from variant [BetaManagedAgentsSessionUsageSnapshot]. 5851 ActiveSeconds float64 `json:"active_seconds"` 5852 // This field is from variant [BetaManagedAgentsSessionUsageSnapshot]. 5853 CacheCreation BetaManagedAgentsCacheCreationUsage `json:"cache_creation"` 5854 // This field is from variant [BetaManagedAgentsSessionUsageSnapshot]. 5855 ListCost BetaMonetaryAmount `json:"list_cost"` 5856 // This field is from variant [BetaManagedAgentsSessionUsageSnapshot]. 5857 ServerToolUse BetaManagedAgentsServerToolUsage `json:"server_tool_use"` 5858 JSON struct { 5859 CacheCreationInputTokens respjson.Field 5860 CacheReadInputTokens respjson.Field 5861 InputTokens respjson.Field 5862 OutputTokens respjson.Field 5863 Speed respjson.Field 5864 ActiveSeconds respjson.Field 5865 CacheCreation respjson.Field 5866 ListCost respjson.Field 5867 ServerToolUse respjson.Field 5868 raw string 5869 } `json:"-"` 5870 } 5871 5872 func (r *BetaManagedAgentsStreamSessionEventsUnionUsage) UnmarshalJSON(data []byte) error { 5873 return apijson.UnmarshalRoot(data, r) 5874 } 5875 5876 // Privileged context for the accompanying turn and all subsequent turns, appended 5877 // to the session's system context as a `role: "system"` turn rather than replacing 5878 // the top-level system prompt. At most one per request: it must be the final event 5879 // and immediately follow the `user.message`, `user.tool_result`, or 5880 // `user.custom_tool_result` it accompanies. Only supported on models that accept 5881 // mid-conversation system messages. 5882 // 5883 // The properties Content, Type are required. 5884 type BetaManagedAgentsSystemMessageEventParams struct { 5885 // System content blocks to append. Text-only. 5886 Content []BetaManagedAgentsSystemContentBlockParam `json:"content,omitzero" api:"required"` 5887 // Any of "system.message". 5888 Type BetaManagedAgentsSystemMessageEventParamsType `json:"type,omitzero" api:"required"` 5889 paramObj 5890 } 5891 5892 func (r BetaManagedAgentsSystemMessageEventParams) MarshalJSON() (data []byte, err error) { 5893 type shadow BetaManagedAgentsSystemMessageEventParams 5894 return param.MarshalObject(r, (*shadow)(&r)) 5895 } 5896 func (r *BetaManagedAgentsSystemMessageEventParams) UnmarshalJSON(data []byte) error { 5897 return apijson.UnmarshalRoot(data, r) 5898 } 5899 5900 type BetaManagedAgentsSystemMessageEventParamsType string 5901 5902 const ( 5903 BetaManagedAgentsSystemMessageEventParamsTypeSystemMessage BetaManagedAgentsSystemMessageEventParamsType = "system.message" 5904 ) 5905 5906 // Regular text content. 5907 type BetaManagedAgentsTextBlock struct { 5908 // The text content. 5909 Text string `json:"text" api:"required"` 5910 // Any of "text". 5911 Type BetaManagedAgentsTextBlockType `json:"type" api:"required"` 5912 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 5913 JSON struct { 5914 Text respjson.Field 5915 Type respjson.Field 5916 ExtraFields map[string]respjson.Field 5917 raw string 5918 } `json:"-"` 5919 } 5920 5921 // Returns the unmodified JSON received from the API 5922 func (r BetaManagedAgentsTextBlock) RawJSON() string { return r.JSON.raw } 5923 func (r *BetaManagedAgentsTextBlock) UnmarshalJSON(data []byte) error { 5924 return apijson.UnmarshalRoot(data, r) 5925 } 5926 5927 // ToParam converts this BetaManagedAgentsTextBlock to a 5928 // BetaManagedAgentsTextBlockParam. 5929 // 5930 // Warning: the fields of the param type will not be present. ToParam should only 5931 // be used at the last possible moment before sending a request. Test for this with 5932 // BetaManagedAgentsTextBlockParam.Overrides() 5933 func (r BetaManagedAgentsTextBlock) ToParam() BetaManagedAgentsTextBlockParam { 5934 return param.Override[BetaManagedAgentsTextBlockParam](json.RawMessage(r.RawJSON())) 5935 } 5936 5937 type BetaManagedAgentsTextBlockType string 5938 5939 const ( 5940 BetaManagedAgentsTextBlockTypeText BetaManagedAgentsTextBlockType = "text" 5941 ) 5942 5943 // Regular text content. 5944 // 5945 // The properties Text, Type are required. 5946 type BetaManagedAgentsTextBlockParam struct { 5947 // The text content. 5948 Text string `json:"text" api:"required"` 5949 // Any of "text". 5950 Type BetaManagedAgentsTextBlockType `json:"type,omitzero" api:"required"` 5951 paramObj 5952 } 5953 5954 func (r BetaManagedAgentsTextBlockParam) MarshalJSON() (data []byte, err error) { 5955 type shadow BetaManagedAgentsTextBlockParam 5956 return param.MarshalObject(r, (*shadow)(&r)) 5957 } 5958 func (r *BetaManagedAgentsTextBlockParam) UnmarshalJSON(data []byte) error { 5959 return apijson.UnmarshalRoot(data, r) 5960 } 5961 5962 // Rubric content provided inline as text. 5963 type BetaManagedAgentsTextRubric struct { 5964 // Rubric content. Plain text or markdown — the grader treats it as freeform text. 5965 Content string `json:"content" api:"required"` 5966 // Any of "text". 5967 Type BetaManagedAgentsTextRubricType `json:"type" api:"required"` 5968 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 5969 JSON struct { 5970 Content respjson.Field 5971 Type respjson.Field 5972 ExtraFields map[string]respjson.Field 5973 raw string 5974 } `json:"-"` 5975 } 5976 5977 // Returns the unmodified JSON received from the API 5978 func (r BetaManagedAgentsTextRubric) RawJSON() string { return r.JSON.raw } 5979 func (r *BetaManagedAgentsTextRubric) UnmarshalJSON(data []byte) error { 5980 return apijson.UnmarshalRoot(data, r) 5981 } 5982 5983 type BetaManagedAgentsTextRubricType string 5984 5985 const ( 5986 BetaManagedAgentsTextRubricTypeText BetaManagedAgentsTextRubricType = "text" 5987 ) 5988 5989 // Rubric content provided inline as text. 5990 // 5991 // The properties Content, Type are required. 5992 type BetaManagedAgentsTextRubricParams struct { 5993 // Rubric content. Plain text or markdown — the grader treats it as freeform text. 5994 // Maximum 262144 characters. 5995 Content string `json:"content" api:"required"` 5996 // Any of "text". 5997 Type BetaManagedAgentsTextRubricParamsType `json:"type,omitzero" api:"required"` 5998 paramObj 5999 } 6000 6001 func (r BetaManagedAgentsTextRubricParams) MarshalJSON() (data []byte, err error) { 6002 type shadow BetaManagedAgentsTextRubricParams 6003 return param.MarshalObject(r, (*shadow)(&r)) 6004 } 6005 func (r *BetaManagedAgentsTextRubricParams) UnmarshalJSON(data []byte) error { 6006 return apijson.UnmarshalRoot(data, r) 6007 } 6008 6009 type BetaManagedAgentsTextRubricParamsType string 6010 6011 const ( 6012 BetaManagedAgentsTextRubricParamsTypeText BetaManagedAgentsTextRubricParamsType = "text" 6013 ) 6014 6015 // An unknown or unexpected error occurred during session execution. A fallback 6016 // variant; clients that don't recognize a new error code can match on 6017 // `retry_status` and `message` alone. 6018 type BetaManagedAgentsUnknownError struct { 6019 // Human-readable error description. 6020 Message string `json:"message" api:"required"` 6021 // What the client should do next in response to this error. 6022 RetryStatus BetaManagedAgentsUnknownErrorRetryStatusUnion `json:"retry_status" api:"required"` 6023 // Any of "unknown_error". 6024 Type BetaManagedAgentsUnknownErrorType `json:"type" api:"required"` 6025 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 6026 JSON struct { 6027 Message respjson.Field 6028 RetryStatus respjson.Field 6029 Type respjson.Field 6030 ExtraFields map[string]respjson.Field 6031 raw string 6032 } `json:"-"` 6033 } 6034 6035 // Returns the unmodified JSON received from the API 6036 func (r BetaManagedAgentsUnknownError) RawJSON() string { return r.JSON.raw } 6037 func (r *BetaManagedAgentsUnknownError) UnmarshalJSON(data []byte) error { 6038 return apijson.UnmarshalRoot(data, r) 6039 } 6040 6041 // BetaManagedAgentsUnknownErrorRetryStatusUnion contains all possible properties 6042 // and values from [BetaManagedAgentsRetryStatusRetrying], 6043 // [BetaManagedAgentsRetryStatusExhausted], [BetaManagedAgentsRetryStatusTerminal]. 6044 // 6045 // Use the [BetaManagedAgentsUnknownErrorRetryStatusUnion.AsAny] method to switch 6046 // on the variant. 6047 // 6048 // Use the methods beginning with 'As' to cast the union to one of its variants. 6049 type BetaManagedAgentsUnknownErrorRetryStatusUnion struct { 6050 // Any of "retrying", "exhausted", "terminal". 6051 Type string `json:"type"` 6052 JSON struct { 6053 Type respjson.Field 6054 raw string 6055 } `json:"-"` 6056 } 6057 6058 // anyBetaManagedAgentsUnknownErrorRetryStatus is implemented by each variant of 6059 // [BetaManagedAgentsUnknownErrorRetryStatusUnion] to add type safety for the 6060 // return type of [BetaManagedAgentsUnknownErrorRetryStatusUnion.AsAny] 6061 type anyBetaManagedAgentsUnknownErrorRetryStatus interface { 6062 implBetaManagedAgentsUnknownErrorRetryStatusUnion() 6063 } 6064 6065 func (BetaManagedAgentsRetryStatusRetrying) implBetaManagedAgentsUnknownErrorRetryStatusUnion() {} 6066 func (BetaManagedAgentsRetryStatusExhausted) implBetaManagedAgentsUnknownErrorRetryStatusUnion() {} 6067 func (BetaManagedAgentsRetryStatusTerminal) implBetaManagedAgentsUnknownErrorRetryStatusUnion() {} 6068 6069 // Use the following switch statement to find the correct variant 6070 // 6071 // switch variant := BetaManagedAgentsUnknownErrorRetryStatusUnion.AsAny().(type) { 6072 // case anthropic.BetaManagedAgentsRetryStatusRetrying: 6073 // case anthropic.BetaManagedAgentsRetryStatusExhausted: 6074 // case anthropic.BetaManagedAgentsRetryStatusTerminal: 6075 // default: 6076 // fmt.Errorf("no variant present") 6077 // } 6078 func (u BetaManagedAgentsUnknownErrorRetryStatusUnion) AsAny() anyBetaManagedAgentsUnknownErrorRetryStatus { 6079 switch u.Type { 6080 case "retrying": 6081 return u.AsRetrying() 6082 case "exhausted": 6083 return u.AsExhausted() 6084 case "terminal": 6085 return u.AsTerminal() 6086 } 6087 return nil 6088 } 6089 6090 func (u BetaManagedAgentsUnknownErrorRetryStatusUnion) AsRetrying() (v BetaManagedAgentsRetryStatusRetrying) { 6091 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 6092 return 6093 } 6094 6095 func (u BetaManagedAgentsUnknownErrorRetryStatusUnion) AsExhausted() (v BetaManagedAgentsRetryStatusExhausted) { 6096 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 6097 return 6098 } 6099 6100 func (u BetaManagedAgentsUnknownErrorRetryStatusUnion) AsTerminal() (v BetaManagedAgentsRetryStatusTerminal) { 6101 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 6102 return 6103 } 6104 6105 // Returns the unmodified JSON received from the API 6106 func (u BetaManagedAgentsUnknownErrorRetryStatusUnion) RawJSON() string { return u.JSON.raw } 6107 6108 func (r *BetaManagedAgentsUnknownErrorRetryStatusUnion) UnmarshalJSON(data []byte) error { 6109 return apijson.UnmarshalRoot(data, r) 6110 } 6111 6112 type BetaManagedAgentsUnknownErrorType string 6113 6114 const ( 6115 BetaManagedAgentsUnknownErrorTypeUnknownError BetaManagedAgentsUnknownErrorType = "unknown_error" 6116 ) 6117 6118 // Document referenced by URL. 6119 type BetaManagedAgentsURLDocumentSource struct { 6120 // Any of "url". 6121 Type BetaManagedAgentsURLDocumentSourceType `json:"type" api:"required"` 6122 // URL of the document to fetch. 6123 URL string `json:"url" api:"required"` 6124 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 6125 JSON struct { 6126 Type respjson.Field 6127 URL respjson.Field 6128 ExtraFields map[string]respjson.Field 6129 raw string 6130 } `json:"-"` 6131 } 6132 6133 // Returns the unmodified JSON received from the API 6134 func (r BetaManagedAgentsURLDocumentSource) RawJSON() string { return r.JSON.raw } 6135 func (r *BetaManagedAgentsURLDocumentSource) UnmarshalJSON(data []byte) error { 6136 return apijson.UnmarshalRoot(data, r) 6137 } 6138 6139 // ToParam converts this BetaManagedAgentsURLDocumentSource to a 6140 // BetaManagedAgentsURLDocumentSourceParam. 6141 // 6142 // Warning: the fields of the param type will not be present. ToParam should only 6143 // be used at the last possible moment before sending a request. Test for this with 6144 // BetaManagedAgentsURLDocumentSourceParam.Overrides() 6145 func (r BetaManagedAgentsURLDocumentSource) ToParam() BetaManagedAgentsURLDocumentSourceParam { 6146 return param.Override[BetaManagedAgentsURLDocumentSourceParam](json.RawMessage(r.RawJSON())) 6147 } 6148 6149 type BetaManagedAgentsURLDocumentSourceType string 6150 6151 const ( 6152 BetaManagedAgentsURLDocumentSourceTypeURL BetaManagedAgentsURLDocumentSourceType = "url" 6153 ) 6154 6155 // Document referenced by URL. 6156 // 6157 // The properties Type, URL are required. 6158 type BetaManagedAgentsURLDocumentSourceParam struct { 6159 // Any of "url". 6160 Type BetaManagedAgentsURLDocumentSourceType `json:"type,omitzero" api:"required"` 6161 // URL of the document to fetch. 6162 URL string `json:"url" api:"required"` 6163 paramObj 6164 } 6165 6166 func (r BetaManagedAgentsURLDocumentSourceParam) MarshalJSON() (data []byte, err error) { 6167 type shadow BetaManagedAgentsURLDocumentSourceParam 6168 return param.MarshalObject(r, (*shadow)(&r)) 6169 } 6170 func (r *BetaManagedAgentsURLDocumentSourceParam) UnmarshalJSON(data []byte) error { 6171 return apijson.UnmarshalRoot(data, r) 6172 } 6173 6174 // Image referenced by URL. 6175 type BetaManagedAgentsURLImageSource struct { 6176 // Any of "url". 6177 Type BetaManagedAgentsURLImageSourceType `json:"type" api:"required"` 6178 // URL of the image to fetch. 6179 URL string `json:"url" api:"required"` 6180 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 6181 JSON struct { 6182 Type respjson.Field 6183 URL respjson.Field 6184 ExtraFields map[string]respjson.Field 6185 raw string 6186 } `json:"-"` 6187 } 6188 6189 // Returns the unmodified JSON received from the API 6190 func (r BetaManagedAgentsURLImageSource) RawJSON() string { return r.JSON.raw } 6191 func (r *BetaManagedAgentsURLImageSource) UnmarshalJSON(data []byte) error { 6192 return apijson.UnmarshalRoot(data, r) 6193 } 6194 6195 // ToParam converts this BetaManagedAgentsURLImageSource to a 6196 // BetaManagedAgentsURLImageSourceParam. 6197 // 6198 // Warning: the fields of the param type will not be present. ToParam should only 6199 // be used at the last possible moment before sending a request. Test for this with 6200 // BetaManagedAgentsURLImageSourceParam.Overrides() 6201 func (r BetaManagedAgentsURLImageSource) ToParam() BetaManagedAgentsURLImageSourceParam { 6202 return param.Override[BetaManagedAgentsURLImageSourceParam](json.RawMessage(r.RawJSON())) 6203 } 6204 6205 type BetaManagedAgentsURLImageSourceType string 6206 6207 const ( 6208 BetaManagedAgentsURLImageSourceTypeURL BetaManagedAgentsURLImageSourceType = "url" 6209 ) 6210 6211 // Image referenced by URL. 6212 // 6213 // The properties Type, URL are required. 6214 type BetaManagedAgentsURLImageSourceParam struct { 6215 // Any of "url". 6216 Type BetaManagedAgentsURLImageSourceType `json:"type,omitzero" api:"required"` 6217 // URL of the image to fetch. 6218 URL string `json:"url" api:"required"` 6219 paramObj 6220 } 6221 6222 func (r BetaManagedAgentsURLImageSourceParam) MarshalJSON() (data []byte, err error) { 6223 type shadow BetaManagedAgentsURLImageSourceParam 6224 return param.MarshalObject(r, (*shadow)(&r)) 6225 } 6226 func (r *BetaManagedAgentsURLImageSourceParam) UnmarshalJSON(data []byte) error { 6227 return apijson.UnmarshalRoot(data, r) 6228 } 6229 6230 // Event sent by the client providing the result of a custom tool execution. 6231 type BetaManagedAgentsUserCustomToolResultEvent struct { 6232 // Unique identifier for this event. 6233 ID string `json:"id" api:"required"` 6234 // The id of the `agent.custom_tool_use` event this result corresponds to, which 6235 // can be found in the last `session.status_idle` 6236 // [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list#beta_managed_agents_session_requires_action.event_ids) 6237 // `stop_reason.event_ids` field. 6238 CustomToolUseID string `json:"custom_tool_use_id" api:"required"` 6239 // Any of "user.custom_tool_result". 6240 Type BetaManagedAgentsUserCustomToolResultEventType `json:"type" api:"required"` 6241 // The result content returned by the tool. 6242 Content []BetaManagedAgentsUserCustomToolResultEventContentUnion `json:"content"` 6243 // Whether the tool execution resulted in an error. 6244 IsError bool `json:"is_error" api:"nullable"` 6245 // A timestamp in RFC 3339 format 6246 ProcessedAt time.Time `json:"processed_at" api:"nullable" format:"date-time"` 6247 // Routes this result to a subagent thread. Copy from the `agent.custom_tool_use` 6248 // event's `session_thread_id`. 6249 SessionThreadID string `json:"session_thread_id" api:"nullable"` 6250 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 6251 JSON struct { 6252 ID respjson.Field 6253 CustomToolUseID respjson.Field 6254 Type respjson.Field 6255 Content respjson.Field 6256 IsError respjson.Field 6257 ProcessedAt respjson.Field 6258 SessionThreadID respjson.Field 6259 ExtraFields map[string]respjson.Field 6260 raw string 6261 } `json:"-"` 6262 } 6263 6264 // Returns the unmodified JSON received from the API 6265 func (r BetaManagedAgentsUserCustomToolResultEvent) RawJSON() string { return r.JSON.raw } 6266 func (r *BetaManagedAgentsUserCustomToolResultEvent) UnmarshalJSON(data []byte) error { 6267 return apijson.UnmarshalRoot(data, r) 6268 } 6269 6270 type BetaManagedAgentsUserCustomToolResultEventType string 6271 6272 const ( 6273 BetaManagedAgentsUserCustomToolResultEventTypeUserCustomToolResult BetaManagedAgentsUserCustomToolResultEventType = "user.custom_tool_result" 6274 ) 6275 6276 // BetaManagedAgentsUserCustomToolResultEventContentUnion contains all possible 6277 // properties and values from [BetaManagedAgentsTextBlock], 6278 // [BetaManagedAgentsImageBlock], [BetaManagedAgentsDocumentBlock], 6279 // [BetaManagedAgentsSearchResultBlock]. 6280 // 6281 // Use the [BetaManagedAgentsUserCustomToolResultEventContentUnion.AsAny] method to 6282 // switch on the variant. 6283 // 6284 // Use the methods beginning with 'As' to cast the union to one of its variants. 6285 type BetaManagedAgentsUserCustomToolResultEventContentUnion struct { 6286 // This field is from variant [BetaManagedAgentsTextBlock]. 6287 Text string `json:"text"` 6288 // Any of "text", "image", "document", "search_result". 6289 Type string `json:"type"` 6290 // This field is a union of [BetaManagedAgentsImageBlockSourceUnion], 6291 // [BetaManagedAgentsDocumentBlockSourceUnion], [string] 6292 Source BetaManagedAgentsUserCustomToolResultEventContentUnionSource `json:"source"` 6293 // This field is from variant [BetaManagedAgentsDocumentBlock]. 6294 Context string `json:"context"` 6295 Title string `json:"title"` 6296 // This field is from variant [BetaManagedAgentsSearchResultBlock]. 6297 Citations BetaManagedAgentsSearchResultCitations `json:"citations"` 6298 // This field is from variant [BetaManagedAgentsSearchResultBlock]. 6299 Content []BetaManagedAgentsSearchResultContent `json:"content"` 6300 JSON struct { 6301 Text respjson.Field 6302 Type respjson.Field 6303 Source respjson.Field 6304 Context respjson.Field 6305 Title respjson.Field 6306 Citations respjson.Field 6307 Content respjson.Field 6308 raw string 6309 } `json:"-"` 6310 } 6311 6312 // anyBetaManagedAgentsUserCustomToolResultEventContent is implemented by each 6313 // variant of [BetaManagedAgentsUserCustomToolResultEventContentUnion] to add type 6314 // safety for the return type of 6315 // [BetaManagedAgentsUserCustomToolResultEventContentUnion.AsAny] 6316 type anyBetaManagedAgentsUserCustomToolResultEventContent interface { 6317 implBetaManagedAgentsUserCustomToolResultEventContentUnion() 6318 } 6319 6320 func (BetaManagedAgentsTextBlock) implBetaManagedAgentsUserCustomToolResultEventContentUnion() {} 6321 func (BetaManagedAgentsImageBlock) implBetaManagedAgentsUserCustomToolResultEventContentUnion() {} 6322 func (BetaManagedAgentsDocumentBlock) implBetaManagedAgentsUserCustomToolResultEventContentUnion() {} 6323 func (BetaManagedAgentsSearchResultBlock) implBetaManagedAgentsUserCustomToolResultEventContentUnion() { 6324 } 6325 6326 // Use the following switch statement to find the correct variant 6327 // 6328 // switch variant := BetaManagedAgentsUserCustomToolResultEventContentUnion.AsAny().(type) { 6329 // case anthropic.BetaManagedAgentsTextBlock: 6330 // case anthropic.BetaManagedAgentsImageBlock: 6331 // case anthropic.BetaManagedAgentsDocumentBlock: 6332 // case anthropic.BetaManagedAgentsSearchResultBlock: 6333 // default: 6334 // fmt.Errorf("no variant present") 6335 // } 6336 func (u BetaManagedAgentsUserCustomToolResultEventContentUnion) AsAny() anyBetaManagedAgentsUserCustomToolResultEventContent { 6337 switch u.Type { 6338 case "text": 6339 return u.AsText() 6340 case "image": 6341 return u.AsImage() 6342 case "document": 6343 return u.AsDocument() 6344 case "search_result": 6345 return u.AsSearchResult() 6346 } 6347 return nil 6348 } 6349 6350 func (u BetaManagedAgentsUserCustomToolResultEventContentUnion) AsText() (v BetaManagedAgentsTextBlock) { 6351 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 6352 return 6353 } 6354 6355 func (u BetaManagedAgentsUserCustomToolResultEventContentUnion) AsImage() (v BetaManagedAgentsImageBlock) { 6356 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 6357 return 6358 } 6359 6360 func (u BetaManagedAgentsUserCustomToolResultEventContentUnion) AsDocument() (v BetaManagedAgentsDocumentBlock) { 6361 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 6362 return 6363 } 6364 6365 func (u BetaManagedAgentsUserCustomToolResultEventContentUnion) AsSearchResult() (v BetaManagedAgentsSearchResultBlock) { 6366 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 6367 return 6368 } 6369 6370 // Returns the unmodified JSON received from the API 6371 func (u BetaManagedAgentsUserCustomToolResultEventContentUnion) RawJSON() string { return u.JSON.raw } 6372 6373 func (r *BetaManagedAgentsUserCustomToolResultEventContentUnion) UnmarshalJSON(data []byte) error { 6374 return apijson.UnmarshalRoot(data, r) 6375 } 6376 6377 // BetaManagedAgentsUserCustomToolResultEventContentUnionSource is an implicit 6378 // subunion of [BetaManagedAgentsUserCustomToolResultEventContentUnion]. 6379 // BetaManagedAgentsUserCustomToolResultEventContentUnionSource provides convenient 6380 // access to the sub-properties of the union. 6381 // 6382 // For type safety it is recommended to directly use a variant of the 6383 // [BetaManagedAgentsUserCustomToolResultEventContentUnion]. 6384 // 6385 // If the underlying value is not a json object, one of the following properties 6386 // will be valid: OfString] 6387 type BetaManagedAgentsUserCustomToolResultEventContentUnionSource struct { 6388 // This field will be present if the value is a [string] instead of an object. 6389 OfString string `json:",inline"` 6390 Data string `json:"data"` 6391 MediaType string `json:"media_type"` 6392 Type string `json:"type"` 6393 URL string `json:"url"` 6394 FileID string `json:"file_id"` 6395 JSON struct { 6396 OfString respjson.Field 6397 Data respjson.Field 6398 MediaType respjson.Field 6399 Type respjson.Field 6400 URL respjson.Field 6401 FileID respjson.Field 6402 raw string 6403 } `json:"-"` 6404 } 6405 6406 func (r *BetaManagedAgentsUserCustomToolResultEventContentUnionSource) UnmarshalJSON(data []byte) error { 6407 return apijson.UnmarshalRoot(data, r) 6408 } 6409 6410 // Parameters for providing the result of a custom tool execution. 6411 // 6412 // The properties CustomToolUseID, Type are required. 6413 type BetaManagedAgentsUserCustomToolResultEventParams struct { 6414 // The id of the `agent.custom_tool_use` event this result corresponds to, which 6415 // can be found in the last `session.status_idle` 6416 // [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list#beta_managed_agents_session_requires_action.event_ids) 6417 // `stop_reason.event_ids` field. 6418 CustomToolUseID string `json:"custom_tool_use_id" api:"required"` 6419 // Any of "user.custom_tool_result". 6420 Type BetaManagedAgentsUserCustomToolResultEventParamsType `json:"type,omitzero" api:"required"` 6421 // Whether the tool execution resulted in an error. 6422 IsError param.Opt[bool] `json:"is_error,omitzero"` 6423 // The result content returned by the tool. 6424 Content []BetaManagedAgentsUserCustomToolResultEventParamsContentUnion `json:"content,omitzero"` 6425 paramObj 6426 } 6427 6428 func (r BetaManagedAgentsUserCustomToolResultEventParams) MarshalJSON() (data []byte, err error) { 6429 type shadow BetaManagedAgentsUserCustomToolResultEventParams 6430 return param.MarshalObject(r, (*shadow)(&r)) 6431 } 6432 func (r *BetaManagedAgentsUserCustomToolResultEventParams) UnmarshalJSON(data []byte) error { 6433 return apijson.UnmarshalRoot(data, r) 6434 } 6435 6436 type BetaManagedAgentsUserCustomToolResultEventParamsType string 6437 6438 const ( 6439 BetaManagedAgentsUserCustomToolResultEventParamsTypeUserCustomToolResult BetaManagedAgentsUserCustomToolResultEventParamsType = "user.custom_tool_result" 6440 ) 6441 6442 // Only one field can be non-zero. 6443 // 6444 // Use [param.IsOmitted] to confirm if a field is set. 6445 type BetaManagedAgentsUserCustomToolResultEventParamsContentUnion struct { 6446 OfText *BetaManagedAgentsTextBlockParam `json:",omitzero,inline"` 6447 OfImage *BetaManagedAgentsImageBlockParam `json:",omitzero,inline"` 6448 OfDocument *BetaManagedAgentsDocumentBlockParam `json:",omitzero,inline"` 6449 OfSearchResult *BetaManagedAgentsSearchResultBlockParam `json:",omitzero,inline"` 6450 paramUnion 6451 } 6452 6453 func (u BetaManagedAgentsUserCustomToolResultEventParamsContentUnion) MarshalJSON() ([]byte, error) { 6454 return param.MarshalUnion(u, u.OfText, u.OfImage, u.OfDocument, u.OfSearchResult) 6455 } 6456 func (u *BetaManagedAgentsUserCustomToolResultEventParamsContentUnion) UnmarshalJSON(data []byte) error { 6457 return apijson.UnmarshalRoot(data, u) 6458 } 6459 6460 func (u *BetaManagedAgentsUserCustomToolResultEventParamsContentUnion) asAny() any { 6461 if !param.IsOmitted(u.OfText) { 6462 return u.OfText 6463 } else if !param.IsOmitted(u.OfImage) { 6464 return u.OfImage 6465 } else if !param.IsOmitted(u.OfDocument) { 6466 return u.OfDocument 6467 } else if !param.IsOmitted(u.OfSearchResult) { 6468 return u.OfSearchResult 6469 } 6470 return nil 6471 } 6472 6473 // Returns a pointer to the underlying variant's property, if present. 6474 func (u BetaManagedAgentsUserCustomToolResultEventParamsContentUnion) GetText() *string { 6475 if vt := u.OfText; vt != nil { 6476 return &vt.Text 6477 } 6478 return nil 6479 } 6480 6481 // Returns a pointer to the underlying variant's property, if present. 6482 func (u BetaManagedAgentsUserCustomToolResultEventParamsContentUnion) GetContext() *string { 6483 if vt := u.OfDocument; vt != nil && vt.Context.Valid() { 6484 return &vt.Context.Value 6485 } 6486 return nil 6487 } 6488 6489 // Returns a pointer to the underlying variant's property, if present. 6490 func (u BetaManagedAgentsUserCustomToolResultEventParamsContentUnion) GetCitations() *BetaManagedAgentsSearchResultCitationsParam { 6491 if vt := u.OfSearchResult; vt != nil { 6492 return &vt.Citations 6493 } 6494 return nil 6495 } 6496 6497 // Returns a pointer to the underlying variant's property, if present. 6498 func (u BetaManagedAgentsUserCustomToolResultEventParamsContentUnion) GetContent() []BetaManagedAgentsSearchResultContentParam { 6499 if vt := u.OfSearchResult; vt != nil { 6500 return vt.Content 6501 } 6502 return nil 6503 } 6504 6505 // Returns a pointer to the underlying variant's property, if present. 6506 func (u BetaManagedAgentsUserCustomToolResultEventParamsContentUnion) GetType() *string { 6507 if vt := u.OfText; vt != nil { 6508 return (*string)(&vt.Type) 6509 } else if vt := u.OfImage; vt != nil { 6510 return (*string)(&vt.Type) 6511 } else if vt := u.OfDocument; vt != nil { 6512 return (*string)(&vt.Type) 6513 } else if vt := u.OfSearchResult; vt != nil { 6514 return (*string)(&vt.Type) 6515 } 6516 return nil 6517 } 6518 6519 // Returns a pointer to the underlying variant's property, if present. 6520 func (u BetaManagedAgentsUserCustomToolResultEventParamsContentUnion) GetTitle() *string { 6521 if vt := u.OfDocument; vt != nil && vt.Title.Valid() { 6522 return &vt.Title.Value 6523 } else if vt := u.OfSearchResult; vt != nil { 6524 return (*string)(&vt.Title) 6525 } 6526 return nil 6527 } 6528 6529 // Returns a subunion which exports methods to access subproperties 6530 // 6531 // Or use AsAny() to get the underlying value 6532 func (u BetaManagedAgentsUserCustomToolResultEventParamsContentUnion) GetSource() (res betaManagedAgentsUserCustomToolResultEventParamsContentUnionSource) { 6533 if vt := u.OfImage; vt != nil { 6534 res.any = vt.Source.asAny() 6535 } else if vt := u.OfDocument; vt != nil { 6536 res.any = vt.Source.asAny() 6537 } else if vt := u.OfSearchResult; vt != nil { 6538 res.any = &vt.Source 6539 } 6540 return 6541 } 6542 6543 // Can have the runtime types [*BetaManagedAgentsBase64ImageSourceParam], 6544 // [*BetaManagedAgentsURLImageSourceParam], 6545 // [*BetaManagedAgentsFileImageSourceParam], 6546 // [*BetaManagedAgentsBase64DocumentSourceParam], 6547 // [*BetaManagedAgentsPlainTextDocumentSourceParam], 6548 // [*BetaManagedAgentsURLDocumentSourceParam], 6549 // [*BetaManagedAgentsFileDocumentSourceParam], [*string] 6550 type betaManagedAgentsUserCustomToolResultEventParamsContentUnionSource struct{ any } 6551 6552 // Use the following switch statement to get the type of the union: 6553 // 6554 // switch u.AsAny().(type) { 6555 // case *anthropic.BetaManagedAgentsBase64ImageSourceParam: 6556 // case *anthropic.BetaManagedAgentsURLImageSourceParam: 6557 // case *anthropic.BetaManagedAgentsFileImageSourceParam: 6558 // case *anthropic.BetaManagedAgentsBase64DocumentSourceParam: 6559 // case *anthropic.BetaManagedAgentsPlainTextDocumentSourceParam: 6560 // case *anthropic.BetaManagedAgentsURLDocumentSourceParam: 6561 // case *anthropic.BetaManagedAgentsFileDocumentSourceParam: 6562 // case *string: 6563 // default: 6564 // fmt.Errorf("not present") 6565 // } 6566 func (u betaManagedAgentsUserCustomToolResultEventParamsContentUnionSource) AsAny() any { return u.any } 6567 6568 // Returns a pointer to the underlying variant's property, if present. 6569 func (u betaManagedAgentsUserCustomToolResultEventParamsContentUnionSource) GetData() *string { 6570 switch vt := u.any.(type) { 6571 case *BetaManagedAgentsImageBlockSourceUnionParam: 6572 return vt.GetData() 6573 case *BetaManagedAgentsDocumentBlockSourceUnionParam: 6574 return vt.GetData() 6575 } 6576 return nil 6577 } 6578 6579 // Returns a pointer to the underlying variant's property, if present. 6580 func (u betaManagedAgentsUserCustomToolResultEventParamsContentUnionSource) GetMediaType() *string { 6581 switch vt := u.any.(type) { 6582 case *BetaManagedAgentsImageBlockSourceUnionParam: 6583 return vt.GetMediaType() 6584 case *BetaManagedAgentsDocumentBlockSourceUnionParam: 6585 return vt.GetMediaType() 6586 } 6587 return nil 6588 } 6589 6590 // Returns a pointer to the underlying variant's property, if present. 6591 func (u betaManagedAgentsUserCustomToolResultEventParamsContentUnionSource) GetType() *string { 6592 switch vt := u.any.(type) { 6593 case *BetaManagedAgentsImageBlockSourceUnionParam: 6594 return vt.GetType() 6595 case *BetaManagedAgentsDocumentBlockSourceUnionParam: 6596 return vt.GetType() 6597 } 6598 return nil 6599 } 6600 6601 // Returns a pointer to the underlying variant's property, if present. 6602 func (u betaManagedAgentsUserCustomToolResultEventParamsContentUnionSource) GetURL() *string { 6603 switch vt := u.any.(type) { 6604 case *BetaManagedAgentsImageBlockSourceUnionParam: 6605 return vt.GetURL() 6606 case *BetaManagedAgentsDocumentBlockSourceUnionParam: 6607 return vt.GetURL() 6608 } 6609 return nil 6610 } 6611 6612 // Returns a pointer to the underlying variant's property, if present. 6613 func (u betaManagedAgentsUserCustomToolResultEventParamsContentUnionSource) GetFileID() *string { 6614 switch vt := u.any.(type) { 6615 case *BetaManagedAgentsImageBlockSourceUnionParam: 6616 return vt.GetFileID() 6617 case *BetaManagedAgentsDocumentBlockSourceUnionParam: 6618 return vt.GetFileID() 6619 } 6620 return nil 6621 } 6622 6623 func init() { 6624 apijson.RegisterUnion[BetaManagedAgentsUserCustomToolResultEventParamsContentUnion]( 6625 "type", 6626 apijson.Discriminator[BetaManagedAgentsTextBlockParam]("text"), 6627 apijson.Discriminator[BetaManagedAgentsImageBlockParam]("image"), 6628 apijson.Discriminator[BetaManagedAgentsDocumentBlockParam]("document"), 6629 apijson.Discriminator[BetaManagedAgentsSearchResultBlockParam]("search_result"), 6630 ) 6631 } 6632 6633 // Echo of a `user.define_outcome` input event. Carries the server-generated 6634 // `outcome_id` that subsequent `span.outcome_evaluation_*` events reference. 6635 type BetaManagedAgentsUserDefineOutcomeEvent struct { 6636 // Unique identifier for this event. 6637 ID string `json:"id" api:"required"` 6638 // What the agent should produce. Copied from the input event. 6639 Description string `json:"description" api:"required"` 6640 // Evaluate-then-revise cycles before giving up. Default 3, max 20. 6641 MaxIterations int64 `json:"max_iterations" api:"required"` 6642 // Server-generated `outc_` ID for this outcome. Referenced by 6643 // `span.outcome_evaluation_*` events and the session's `outcome_evaluations` list. 6644 OutcomeID string `json:"outcome_id" api:"required"` 6645 // A timestamp in RFC 3339 format 6646 ProcessedAt time.Time `json:"processed_at" api:"required" format:"date-time"` 6647 // Rubric for grading the quality of an outcome. 6648 Rubric BetaManagedAgentsUserDefineOutcomeEventRubricUnion `json:"rubric" api:"required"` 6649 // Any of "user.define_outcome". 6650 Type BetaManagedAgentsUserDefineOutcomeEventType `json:"type" api:"required"` 6651 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 6652 JSON struct { 6653 ID respjson.Field 6654 Description respjson.Field 6655 MaxIterations respjson.Field 6656 OutcomeID respjson.Field 6657 ProcessedAt respjson.Field 6658 Rubric respjson.Field 6659 Type respjson.Field 6660 ExtraFields map[string]respjson.Field 6661 raw string 6662 } `json:"-"` 6663 } 6664 6665 // Returns the unmodified JSON received from the API 6666 func (r BetaManagedAgentsUserDefineOutcomeEvent) RawJSON() string { return r.JSON.raw } 6667 func (r *BetaManagedAgentsUserDefineOutcomeEvent) UnmarshalJSON(data []byte) error { 6668 return apijson.UnmarshalRoot(data, r) 6669 } 6670 6671 // BetaManagedAgentsUserDefineOutcomeEventRubricUnion contains all possible 6672 // properties and values from [BetaManagedAgentsFileRubric], 6673 // [BetaManagedAgentsTextRubric]. 6674 // 6675 // Use the [BetaManagedAgentsUserDefineOutcomeEventRubricUnion.AsAny] method to 6676 // switch on the variant. 6677 // 6678 // Use the methods beginning with 'As' to cast the union to one of its variants. 6679 type BetaManagedAgentsUserDefineOutcomeEventRubricUnion struct { 6680 // This field is from variant [BetaManagedAgentsFileRubric]. 6681 FileID string `json:"file_id"` 6682 // Any of "file", "text". 6683 Type string `json:"type"` 6684 // This field is from variant [BetaManagedAgentsTextRubric]. 6685 Content string `json:"content"` 6686 JSON struct { 6687 FileID respjson.Field 6688 Type respjson.Field 6689 Content respjson.Field 6690 raw string 6691 } `json:"-"` 6692 } 6693 6694 // anyBetaManagedAgentsUserDefineOutcomeEventRubric is implemented by each variant 6695 // of [BetaManagedAgentsUserDefineOutcomeEventRubricUnion] to add type safety for 6696 // the return type of [BetaManagedAgentsUserDefineOutcomeEventRubricUnion.AsAny] 6697 type anyBetaManagedAgentsUserDefineOutcomeEventRubric interface { 6698 implBetaManagedAgentsUserDefineOutcomeEventRubricUnion() 6699 } 6700 6701 func (BetaManagedAgentsFileRubric) implBetaManagedAgentsUserDefineOutcomeEventRubricUnion() {} 6702 func (BetaManagedAgentsTextRubric) implBetaManagedAgentsUserDefineOutcomeEventRubricUnion() {} 6703 6704 // Use the following switch statement to find the correct variant 6705 // 6706 // switch variant := BetaManagedAgentsUserDefineOutcomeEventRubricUnion.AsAny().(type) { 6707 // case anthropic.BetaManagedAgentsFileRubric: 6708 // case anthropic.BetaManagedAgentsTextRubric: 6709 // default: 6710 // fmt.Errorf("no variant present") 6711 // } 6712 func (u BetaManagedAgentsUserDefineOutcomeEventRubricUnion) AsAny() anyBetaManagedAgentsUserDefineOutcomeEventRubric { 6713 switch u.Type { 6714 case "file": 6715 return u.AsFile() 6716 case "text": 6717 return u.AsText() 6718 } 6719 return nil 6720 } 6721 6722 func (u BetaManagedAgentsUserDefineOutcomeEventRubricUnion) AsFile() (v BetaManagedAgentsFileRubric) { 6723 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 6724 return 6725 } 6726 6727 func (u BetaManagedAgentsUserDefineOutcomeEventRubricUnion) AsText() (v BetaManagedAgentsTextRubric) { 6728 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 6729 return 6730 } 6731 6732 // Returns the unmodified JSON received from the API 6733 func (u BetaManagedAgentsUserDefineOutcomeEventRubricUnion) RawJSON() string { return u.JSON.raw } 6734 6735 func (r *BetaManagedAgentsUserDefineOutcomeEventRubricUnion) UnmarshalJSON(data []byte) error { 6736 return apijson.UnmarshalRoot(data, r) 6737 } 6738 6739 type BetaManagedAgentsUserDefineOutcomeEventType string 6740 6741 const ( 6742 BetaManagedAgentsUserDefineOutcomeEventTypeUserDefineOutcome BetaManagedAgentsUserDefineOutcomeEventType = "user.define_outcome" 6743 ) 6744 6745 // Parameters for defining an outcome the agent should work toward. The agent 6746 // begins work on receipt. 6747 // 6748 // The properties Description, Rubric, Type are required. 6749 type BetaManagedAgentsUserDefineOutcomeEventParams struct { 6750 // What the agent should produce. This is the task specification. 6751 Description string `json:"description" api:"required"` 6752 // Rubric for grading the quality of an outcome. 6753 Rubric BetaManagedAgentsUserDefineOutcomeEventParamsRubricUnion `json:"rubric,omitzero" api:"required"` 6754 // Any of "user.define_outcome". 6755 Type BetaManagedAgentsUserDefineOutcomeEventParamsType `json:"type,omitzero" api:"required"` 6756 // Eval→revision cycles before giving up. Default 3, max 20. 6757 MaxIterations param.Opt[int64] `json:"max_iterations,omitzero"` 6758 paramObj 6759 } 6760 6761 func (r BetaManagedAgentsUserDefineOutcomeEventParams) MarshalJSON() (data []byte, err error) { 6762 type shadow BetaManagedAgentsUserDefineOutcomeEventParams 6763 return param.MarshalObject(r, (*shadow)(&r)) 6764 } 6765 func (r *BetaManagedAgentsUserDefineOutcomeEventParams) UnmarshalJSON(data []byte) error { 6766 return apijson.UnmarshalRoot(data, r) 6767 } 6768 6769 // Only one field can be non-zero. 6770 // 6771 // Use [param.IsOmitted] to confirm if a field is set. 6772 type BetaManagedAgentsUserDefineOutcomeEventParamsRubricUnion struct { 6773 OfFile *BetaManagedAgentsFileRubricParams `json:",omitzero,inline"` 6774 OfText *BetaManagedAgentsTextRubricParams `json:",omitzero,inline"` 6775 paramUnion 6776 } 6777 6778 func (u BetaManagedAgentsUserDefineOutcomeEventParamsRubricUnion) MarshalJSON() ([]byte, error) { 6779 return param.MarshalUnion(u, u.OfFile, u.OfText) 6780 } 6781 func (u *BetaManagedAgentsUserDefineOutcomeEventParamsRubricUnion) UnmarshalJSON(data []byte) error { 6782 return apijson.UnmarshalRoot(data, u) 6783 } 6784 6785 func (u *BetaManagedAgentsUserDefineOutcomeEventParamsRubricUnion) asAny() any { 6786 if !param.IsOmitted(u.OfFile) { 6787 return u.OfFile 6788 } else if !param.IsOmitted(u.OfText) { 6789 return u.OfText 6790 } 6791 return nil 6792 } 6793 6794 // Returns a pointer to the underlying variant's property, if present. 6795 func (u BetaManagedAgentsUserDefineOutcomeEventParamsRubricUnion) GetFileID() *string { 6796 if vt := u.OfFile; vt != nil { 6797 return &vt.FileID 6798 } 6799 return nil 6800 } 6801 6802 // Returns a pointer to the underlying variant's property, if present. 6803 func (u BetaManagedAgentsUserDefineOutcomeEventParamsRubricUnion) GetContent() *string { 6804 if vt := u.OfText; vt != nil { 6805 return &vt.Content 6806 } 6807 return nil 6808 } 6809 6810 // Returns a pointer to the underlying variant's property, if present. 6811 func (u BetaManagedAgentsUserDefineOutcomeEventParamsRubricUnion) GetType() *string { 6812 if vt := u.OfFile; vt != nil { 6813 return (*string)(&vt.Type) 6814 } else if vt := u.OfText; vt != nil { 6815 return (*string)(&vt.Type) 6816 } 6817 return nil 6818 } 6819 6820 func init() { 6821 apijson.RegisterUnion[BetaManagedAgentsUserDefineOutcomeEventParamsRubricUnion]( 6822 "type", 6823 apijson.Discriminator[BetaManagedAgentsFileRubricParams]("file"), 6824 apijson.Discriminator[BetaManagedAgentsTextRubricParams]("text"), 6825 ) 6826 } 6827 6828 type BetaManagedAgentsUserDefineOutcomeEventParamsType string 6829 6830 const ( 6831 BetaManagedAgentsUserDefineOutcomeEventParamsTypeUserDefineOutcome BetaManagedAgentsUserDefineOutcomeEventParamsType = "user.define_outcome" 6832 ) 6833 6834 // An interrupt event that pauses agent execution and returns control to the user. 6835 type BetaManagedAgentsUserInterruptEvent struct { 6836 // Unique identifier for this event. 6837 ID string `json:"id" api:"required"` 6838 // Any of "user.interrupt". 6839 Type BetaManagedAgentsUserInterruptEventType `json:"type" api:"required"` 6840 // A timestamp in RFC 3339 format 6841 ProcessedAt time.Time `json:"processed_at" api:"nullable" format:"date-time"` 6842 // If absent, interrupts every non-archived thread in a multiagent session (or the 6843 // primary alone in a single-agent session). If present, interrupts only the named 6844 // thread. 6845 SessionThreadID string `json:"session_thread_id" api:"nullable"` 6846 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 6847 JSON struct { 6848 ID respjson.Field 6849 Type respjson.Field 6850 ProcessedAt respjson.Field 6851 SessionThreadID respjson.Field 6852 ExtraFields map[string]respjson.Field 6853 raw string 6854 } `json:"-"` 6855 } 6856 6857 // Returns the unmodified JSON received from the API 6858 func (r BetaManagedAgentsUserInterruptEvent) RawJSON() string { return r.JSON.raw } 6859 func (r *BetaManagedAgentsUserInterruptEvent) UnmarshalJSON(data []byte) error { 6860 return apijson.UnmarshalRoot(data, r) 6861 } 6862 6863 type BetaManagedAgentsUserInterruptEventType string 6864 6865 const ( 6866 BetaManagedAgentsUserInterruptEventTypeUserInterrupt BetaManagedAgentsUserInterruptEventType = "user.interrupt" 6867 ) 6868 6869 // Parameters for sending an interrupt to pause the agent. 6870 // 6871 // The property Type is required. 6872 type BetaManagedAgentsUserInterruptEventParams struct { 6873 // Any of "user.interrupt". 6874 Type BetaManagedAgentsUserInterruptEventParamsType `json:"type,omitzero" api:"required"` 6875 // If absent, interrupts every non-archived thread in a multiagent session (or the 6876 // primary alone in a single-agent session). If present, interrupts only the named 6877 // thread. 6878 SessionThreadID param.Opt[string] `json:"session_thread_id,omitzero"` 6879 paramObj 6880 } 6881 6882 func (r BetaManagedAgentsUserInterruptEventParams) MarshalJSON() (data []byte, err error) { 6883 type shadow BetaManagedAgentsUserInterruptEventParams 6884 return param.MarshalObject(r, (*shadow)(&r)) 6885 } 6886 func (r *BetaManagedAgentsUserInterruptEventParams) UnmarshalJSON(data []byte) error { 6887 return apijson.UnmarshalRoot(data, r) 6888 } 6889 6890 type BetaManagedAgentsUserInterruptEventParamsType string 6891 6892 const ( 6893 BetaManagedAgentsUserInterruptEventParamsTypeUserInterrupt BetaManagedAgentsUserInterruptEventParamsType = "user.interrupt" 6894 ) 6895 6896 // A user message event in the session conversation. 6897 type BetaManagedAgentsUserMessageEvent struct { 6898 // Unique identifier for this event. 6899 ID string `json:"id" api:"required"` 6900 // Array of content blocks comprising the user message. 6901 Content []BetaManagedAgentsUserMessageEventContentUnion `json:"content" api:"required"` 6902 // Any of "user.message". 6903 Type BetaManagedAgentsUserMessageEventType `json:"type" api:"required"` 6904 // A timestamp in RFC 3339 format 6905 ProcessedAt time.Time `json:"processed_at" api:"nullable" format:"date-time"` 6906 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 6907 JSON struct { 6908 ID respjson.Field 6909 Content respjson.Field 6910 Type respjson.Field 6911 ProcessedAt respjson.Field 6912 ExtraFields map[string]respjson.Field 6913 raw string 6914 } `json:"-"` 6915 } 6916 6917 // Returns the unmodified JSON received from the API 6918 func (r BetaManagedAgentsUserMessageEvent) RawJSON() string { return r.JSON.raw } 6919 func (r *BetaManagedAgentsUserMessageEvent) UnmarshalJSON(data []byte) error { 6920 return apijson.UnmarshalRoot(data, r) 6921 } 6922 6923 // BetaManagedAgentsUserMessageEventContentUnion contains all possible properties 6924 // and values from [BetaManagedAgentsTextBlock], [BetaManagedAgentsImageBlock], 6925 // [BetaManagedAgentsDocumentBlock], [BetaManagedAgentsRedactedBlock]. 6926 // 6927 // Use the [BetaManagedAgentsUserMessageEventContentUnion.AsAny] method to switch 6928 // on the variant. 6929 // 6930 // Use the methods beginning with 'As' to cast the union to one of its variants. 6931 type BetaManagedAgentsUserMessageEventContentUnion struct { 6932 // This field is from variant [BetaManagedAgentsTextBlock]. 6933 Text string `json:"text"` 6934 // Any of "text", "image", "document", "redacted". 6935 Type string `json:"type"` 6936 // This field is a union of [BetaManagedAgentsImageBlockSourceUnion], 6937 // [BetaManagedAgentsDocumentBlockSourceUnion] 6938 Source BetaManagedAgentsUserMessageEventContentUnionSource `json:"source"` 6939 // This field is from variant [BetaManagedAgentsDocumentBlock]. 6940 Context string `json:"context"` 6941 // This field is from variant [BetaManagedAgentsDocumentBlock]. 6942 Title string `json:"title"` 6943 JSON struct { 6944 Text respjson.Field 6945 Type respjson.Field 6946 Source respjson.Field 6947 Context respjson.Field 6948 Title respjson.Field 6949 raw string 6950 } `json:"-"` 6951 } 6952 6953 // anyBetaManagedAgentsUserMessageEventContent is implemented by each variant of 6954 // [BetaManagedAgentsUserMessageEventContentUnion] to add type safety for the 6955 // return type of [BetaManagedAgentsUserMessageEventContentUnion.AsAny] 6956 type anyBetaManagedAgentsUserMessageEventContent interface { 6957 implBetaManagedAgentsUserMessageEventContentUnion() 6958 } 6959 6960 func (BetaManagedAgentsTextBlock) implBetaManagedAgentsUserMessageEventContentUnion() {} 6961 func (BetaManagedAgentsImageBlock) implBetaManagedAgentsUserMessageEventContentUnion() {} 6962 func (BetaManagedAgentsDocumentBlock) implBetaManagedAgentsUserMessageEventContentUnion() {} 6963 func (BetaManagedAgentsRedactedBlock) implBetaManagedAgentsUserMessageEventContentUnion() {} 6964 6965 // Use the following switch statement to find the correct variant 6966 // 6967 // switch variant := BetaManagedAgentsUserMessageEventContentUnion.AsAny().(type) { 6968 // case anthropic.BetaManagedAgentsTextBlock: 6969 // case anthropic.BetaManagedAgentsImageBlock: 6970 // case anthropic.BetaManagedAgentsDocumentBlock: 6971 // case anthropic.BetaManagedAgentsRedactedBlock: 6972 // default: 6973 // fmt.Errorf("no variant present") 6974 // } 6975 func (u BetaManagedAgentsUserMessageEventContentUnion) AsAny() anyBetaManagedAgentsUserMessageEventContent { 6976 switch u.Type { 6977 case "text": 6978 return u.AsText() 6979 case "image": 6980 return u.AsImage() 6981 case "document": 6982 return u.AsDocument() 6983 case "redacted": 6984 return u.AsRedacted() 6985 } 6986 return nil 6987 } 6988 6989 func (u BetaManagedAgentsUserMessageEventContentUnion) AsText() (v BetaManagedAgentsTextBlock) { 6990 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 6991 return 6992 } 6993 6994 func (u BetaManagedAgentsUserMessageEventContentUnion) AsImage() (v BetaManagedAgentsImageBlock) { 6995 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 6996 return 6997 } 6998 6999 func (u BetaManagedAgentsUserMessageEventContentUnion) AsDocument() (v BetaManagedAgentsDocumentBlock) { 7000 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 7001 return 7002 } 7003 7004 func (u BetaManagedAgentsUserMessageEventContentUnion) AsRedacted() (v BetaManagedAgentsRedactedBlock) { 7005 apijson.UnmarshalRoot(json.RawMessage(u.JSON.raw), &v) 7006 return 7007 } 7008 7009 // Returns the unmodified JSON received from the API 7010 func (u BetaManagedAgentsUserMessageEventContentUnion) RawJSON() string { return u.JSON.raw } 7011 7012 func (r *BetaManagedAgentsUserMessageEventContentUnion) UnmarshalJSON(data []byte) error { 7013 return apijson.UnmarshalRoot(data, r) 7014 } 7015 7016 // BetaManagedAgentsUserMessageEventContentUnionSource is an implicit subunion of 7017 // [BetaManagedAgentsUserMessageEventContentUnion]. 7018 // BetaManagedAgentsUserMessageEventContentUnionSource provides convenient access 7019 // to the sub-properties of the union. 7020 // 7021 // For type safety it is recommended to directly use a variant of the 7022 // [BetaManagedAgentsUserMessageEventContentUnion]. 7023 type BetaManagedAgentsUserMessageEventContentUnionSource struct { 7024 Data string `json:"data"` 7025 MediaType string `json:"media_type"` 7026 Type string `json:"type"` 7027 URL string `json:"url"` 7028 FileID string `json:"file_id"` 7029 JSON struct { 7030 Data respjson.Field 7031 MediaType respjson.Field 7032 Type respjson.Field 7033 URL respjson.Field 7034 FileID respjson.Field 7035 raw string 7036 } `json:"-"` 7037 } 7038 7039 func (r *BetaManagedAgentsUserMessageEventContentUnionSource) UnmarshalJSON(data []byte) error { 7040 return apijson.UnmarshalRoot(data, r) 7041 } 7042 7043 type BetaManagedAgentsUserMessageEventType string 7044 7045 const ( 7046 BetaManagedAgentsUserMessageEventTypeUserMessage BetaManagedAgentsUserMessageEventType = "user.message" 7047 ) 7048 7049 // Parameters for sending a user message to the session. 7050 // 7051 // The properties Content, Type are required. 7052 type BetaManagedAgentsUserMessageEventParams struct { 7053 // Array of content blocks for the user message. 7054 Content []BetaManagedAgentsUserMessageEventParamsContentUnion `json:"content,omitzero" api:"required"` 7055 // Any of "user.message". 7056 Type BetaManagedAgentsUserMessageEventParamsType `json:"type,omitzero" api:"required"` 7057 paramObj 7058 } 7059 7060 func (r BetaManagedAgentsUserMessageEventParams) MarshalJSON() (data []byte, err error) { 7061 type shadow BetaManagedAgentsUserMessageEventParams 7062 return param.MarshalObject(r, (*shadow)(&r)) 7063 } 7064 func (r *BetaManagedAgentsUserMessageEventParams) UnmarshalJSON(data []byte) error { 7065 return apijson.UnmarshalRoot(data, r) 7066 } 7067 7068 // Only one field can be non-zero. 7069 // 7070 // Use [param.IsOmitted] to confirm if a field is set. 7071 type BetaManagedAgentsUserMessageEventParamsContentUnion struct { 7072 OfText *BetaManagedAgentsTextBlockParam `json:",omitzero,inline"` 7073 OfImage *BetaManagedAgentsImageBlockParam `json:",omitzero,inline"` 7074 OfDocument *BetaManagedAgentsDocumentBlockParam `json:",omitzero,inline"` 7075 OfRedacted *BetaManagedAgentsRedactedBlockParam `json:",omitzero,inline"` 7076 paramUnion 7077 } 7078 7079 func (u BetaManagedAgentsUserMessageEventParamsContentUnion) MarshalJSON() ([]byte, error) { 7080 return param.MarshalUnion(u, u.OfText, u.OfImage, u.OfDocument, u.OfRedacted) 7081 } 7082 func (u *BetaManagedAgentsUserMessageEventParamsContentUnion) UnmarshalJSON(data []byte) error { 7083 return apijson.UnmarshalRoot(data, u) 7084 } 7085 7086 func (u *BetaManagedAgentsUserMessageEventParamsContentUnion) asAny() any { 7087 if !param.IsOmitted(u.OfText) { 7088 return u.OfText 7089 } else if !param.IsOmitted(u.OfImage) { 7090 return u.OfImage 7091 } else if !param.IsOmitted(u.OfDocument) { 7092 return u.OfDocument 7093 } else if !param.IsOmitted(u.OfRedacted) { 7094 return u.OfRedacted 7095 } 7096 return nil 7097 } 7098 7099 // Returns a pointer to the underlying variant's property, if present. 7100 func (u BetaManagedAgentsUserMessageEventParamsContentUnion) GetText() *string { 7101 if vt := u.OfText; vt != nil { 7102 return &vt.Text 7103 } 7104 return nil 7105 } 7106 7107 // Returns a pointer to the underlying variant's property, if present. 7108 func (u BetaManagedAgentsUserMessageEventParamsContentUnion) GetContext() *string { 7109 if vt := u.OfDocument; vt != nil && vt.Context.Valid() { 7110 return &vt.Context.Value 7111 } 7112 return nil 7113 } 7114 7115 // Returns a pointer to the underlying variant's property, if present. 7116 func (u BetaManagedAgentsUserMessageEventParamsContentUnion) GetTitle() *string { 7117 if vt := u.OfDocument; vt != nil && vt.Title.Valid() { 7118 return &vt.Title.Value 7119 } 7120 return nil 7121 } 7122 7123 // Returns a pointer to the underlying variant's property, if present. 7124 func (u BetaManagedAgentsUserMessageEventParamsContentUnion) GetType() *string { 7125 if vt := u.OfText; vt != nil { 7126 return (*string)(&vt.Type) 7127 } else if vt := u.OfImage; vt != nil { 7128 return (*string)(&vt.Type) 7129 } else if vt := u.OfDocument; vt != nil { 7130 return (*string)(&vt.Type) 7131 } else if vt := u.OfRedacted; vt != nil { 7132 return (*string)(&vt.Type) 7133 } 7134 return nil 7135 } 7136 7137 // Returns a subunion which exports methods to access subproperties 7138 // 7139 // Or use AsAny() to get the underlying value 7140 func (u BetaManagedAgentsUserMessageEventParamsContentUnion) GetSource() (res betaManagedAgentsUserMessageEventParamsContentUnionSource) { 7141 if vt := u.OfImage; vt != nil { 7142 res.any = vt.Source.asAny() 7143 } else if vt := u.OfDocument; vt != nil { 7144 res.any = vt.Source.asAny() 7145 } 7146 return 7147 } 7148 7149 // Can have the runtime types [*BetaManagedAgentsBase64ImageSourceParam], 7150 // [*BetaManagedAgentsURLImageSourceParam], 7151 // [*BetaManagedAgentsFileImageSourceParam], 7152 // [*BetaManagedAgentsBase64DocumentSourceParam], 7153 // [*BetaManagedAgentsPlainTextDocumentSourceParam], 7154 // [*BetaManagedAgentsURLDocumentSourceParam], 7155 // [*BetaManagedAgentsFileDocumentSourceParam] 7156 type betaManagedAgentsUserMessageEventParamsContentUnionSource struct{ any } 7157 7158 // Use the following switch statement to get the type of the union: 7159 // 7160 // switch u.AsAny().(type) { 7161 // case *anthropic.BetaManagedAgentsBase64ImageSourceParam: 7162 // case *anthropic.BetaManagedAgentsURLImageSourceParam: 7163 // case *anthropic.BetaManagedAgentsFileImageSourceParam: 7164 // case *anthropic.BetaManagedAgentsBase64DocumentSourceParam: 7165 // case *anthropic.BetaManagedAgentsPlainTextDocumentSourceParam: 7166 // case *anthropic.BetaManagedAgentsURLDocumentSourceParam: 7167 // case *anthropic.BetaManagedAgentsFileDocumentSourceParam: 7168 // default: 7169 // fmt.Errorf("not present") 7170 // } 7171 func (u betaManagedAgentsUserMessageEventParamsContentUnionSource) AsAny() any { return u.any } 7172 7173 // Returns a pointer to the underlying variant's property, if present. 7174 func (u betaManagedAgentsUserMessageEventParamsContentUnionSource) GetData() *string { 7175 switch vt := u.any.(type) { 7176 case *BetaManagedAgentsImageBlockSourceUnionParam: 7177 return vt.GetData() 7178 case *BetaManagedAgentsDocumentBlockSourceUnionParam: 7179 return vt.GetData() 7180 } 7181 return nil 7182 } 7183 7184 // Returns a pointer to the underlying variant's property, if present. 7185 func (u betaManagedAgentsUserMessageEventParamsContentUnionSource) GetMediaType() *string { 7186 switch vt := u.any.(type) { 7187 case *BetaManagedAgentsImageBlockSourceUnionParam: 7188 return vt.GetMediaType() 7189 case *BetaManagedAgentsDocumentBlockSourceUnionParam: 7190 return vt.GetMediaType() 7191 } 7192 return nil 7193 } 7194 7195 // Returns a pointer to the underlying variant's property, if present. 7196 func (u betaManagedAgentsUserMessageEventParamsContentUnionSource) GetType() *string { 7197 switch vt := u.any.(type) { 7198 case *BetaManagedAgentsImageBlockSourceUnionParam: 7199 return vt.GetType() 7200 case *BetaManagedAgentsDocumentBlockSourceUnionParam: 7201 return vt.GetType() 7202 } 7203 return nil 7204 } 7205 7206 // Returns a pointer to the underlying variant's property, if present. 7207 func (u betaManagedAgentsUserMessageEventParamsContentUnionSource) GetURL() *string { 7208 switch vt := u.any.(type) { 7209 case *BetaManagedAgentsImageBlockSourceUnionParam: 7210 return vt.GetURL() 7211 case *BetaManagedAgentsDocumentBlockSourceUnionParam: 7212 return vt.GetURL() 7213 } 7214 return nil 7215 } 7216 7217 // Returns a pointer to the underlying variant's property, if present. 7218 func (u betaManagedAgentsUserMessageEventParamsContentUnionSource) GetFileID() *string { 7219 switch vt := u.any.(type) { 7220 case *BetaManagedAgentsImageBlockSourceUnionParam: 7221 return vt.GetFileID() 7222 case *BetaManagedAgentsDocumentBlockSourceUnionParam: 7223 return vt.GetFileID() 7224 } 7225 return nil 7226 } 7227 7228 func init() { 7229 apijson.RegisterUnion[BetaManagedAgentsUserMessageEventParamsContentUnion]( 7230 "type", 7231 apijson.Discriminator[BetaManagedAgentsTextBlockParam]("text"), 7232 apijson.Discriminator[BetaManagedAgentsImageBlockParam]("image"), 7233 apijson.Discriminator[BetaManagedAgentsDocumentBlockParam]("document"), 7234 apijson.Discriminator[BetaManagedAgentsRedactedBlockParam]("redacted"), 7235 ) 7236 } 7237 7238 type BetaManagedAgentsUserMessageEventParamsType string 7239 7240 const ( 7241 BetaManagedAgentsUserMessageEventParamsTypeUserMessage BetaManagedAgentsUserMessageEventParamsType = "user.message" 7242 ) 7243 7244 // A tool confirmation event that approves or denies a pending tool execution. 7245 type BetaManagedAgentsUserToolConfirmationEvent struct { 7246 // Unique identifier for this event. 7247 ID string `json:"id" api:"required"` 7248 // UserToolConfirmationResult enum 7249 // 7250 // Any of "allow", "deny". 7251 Result BetaManagedAgentsUserToolConfirmationEventResult `json:"result" api:"required"` 7252 // The id of the `agent.tool_use` or `agent.mcp_tool_use` event this result 7253 // corresponds to, which can be found in the last `session.status_idle` 7254 // [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list#beta_managed_agents_session_requires_action.event_ids) 7255 // `stop_reason.event_ids` field. 7256 ToolUseID string `json:"tool_use_id" api:"required"` 7257 // Any of "user.tool_confirmation". 7258 Type BetaManagedAgentsUserToolConfirmationEventType `json:"type" api:"required"` 7259 // Optional message providing context for a 'deny' decision. Only allowed when 7260 // result is 'deny'. 7261 DenyMessage string `json:"deny_message" api:"nullable"` 7262 // A timestamp in RFC 3339 format 7263 ProcessedAt time.Time `json:"processed_at" api:"nullable" format:"date-time"` 7264 // When set, the confirmation routes to this subagent's thread rather than the 7265 // primary. Echo this from the `session_thread_id` on the `agent.tool_use` or 7266 // `agent.mcp_tool_use` event that prompted the approval. 7267 SessionThreadID string `json:"session_thread_id" api:"nullable"` 7268 // JSON contains metadata for fields, check presence with [respjson.Field.Valid]. 7269 JSON struct { 7270 ID respjson.Field 7271 Result respjson.Field 7272 ToolUseID respjson.Field 7273 Type respjson.Field 7274 DenyMessage respjson.Field 7275 ProcessedAt respjson.Field 7276 SessionThreadID respjson.Field 7277 ExtraFields map[string]respjson.Field 7278 raw string 7279 } `json:"-"` 7280 } 7281 7282 // Returns the unmodified JSON received from the API 7283 func (r BetaManagedAgentsUserToolConfirmationEvent) RawJSON() string { return r.JSON.raw } 7284 func (r *BetaManagedAgentsUserToolConfirmationEvent) UnmarshalJSON(data []byte) error { 7285 return apijson.UnmarshalRoot(data, r) 7286 } 7287 7288 // UserToolConfirmationResult enum 7289 type BetaManagedAgentsUserToolConfirmationEventResult string 7290 7291 const ( 7292 BetaManagedAgentsUserToolConfirmationEventResultAllow BetaManagedAgentsUserToolConfirmationEventResult = "allow" 7293 BetaManagedAgentsUserToolConfirmationEventResultDeny BetaManagedAgentsUserToolConfirmationEventResult = "deny" 7294 ) 7295 7296 type BetaManagedAgentsUserToolConfirmationEventType string 7297 7298 const ( 7299 BetaManagedAgentsUserToolConfirmationEventTypeUserToolConfirmation BetaManagedAgentsUserToolConfirmationEventType = "user.tool_confirmation" 7300 ) 7301 7302 // Parameters for confirming or denying a tool execution request. 7303 // 7304 // The properties Result, ToolUseID, Type are required. 7305 type BetaManagedAgentsUserToolConfirmationEventParams struct { 7306 // UserToolConfirmationResult enum 7307 // 7308 // Any of "allow", "deny". 7309 Result BetaManagedAgentsUserToolConfirmationEventParamsResult `json:"result,omitzero" api:"required"` 7310 // The id of the `agent.tool_use` or `agent.mcp_tool_use` event this result 7311 // corresponds to, which can be found in the last `session.status_idle` 7312 // [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list#beta_managed_agents_session_requires_action.event_ids) 7313 // `stop_reason.event_ids` field. 7314 ToolUseID string `json:"tool_use_id" api:"required"` 7315 // Any of "user.tool_confirmation". 7316 Type BetaManagedAgentsUserToolConfirmationEventParamsType `json:"type,omitzero" api:"required"` 7317 // Optional message providing context for a 'deny' decision. Only allowed when 7318 // result is 'deny'. 7319 DenyMessage param.Opt[string] `json:"deny_message,omitzero"` 7320 paramObj 7321 } 7322 7323 func (r BetaManagedAgentsUserToolConfirmationEventParams) MarshalJSON() (data []byte, err error) { 7324 type shadow BetaManagedAgentsUserToolConfirmationEventParams 7325 return param.MarshalObject(r, (*shadow)(&r)) 7326 } 7327 func (r *BetaManagedAgentsUserToolConfirmationEventParams) UnmarshalJSON(data []byte) error { 7328 return apijson.UnmarshalRoot(data, r) 7329 } 7330 7331 // UserToolConfirmationResult enum 7332 type BetaManagedAgentsUserToolConfirmationEventParamsResult string 7333 7334 const ( 7335 BetaManagedAgentsUserToolConfirmationEventParamsResultAllow BetaManagedAgentsUserToolConfirmationEventParamsResult = "allow" 7336 BetaManagedAgentsUserToolConfirmationEventParamsResultDeny BetaManagedAgentsUserToolConfirmationEventParamsResult = "deny" 7337 ) 7338 7339 type BetaManagedAgentsUserToolConfirmationEventParamsType string 7340 7341 const ( 7342 BetaManagedAgentsUserToolConfirmationEventParamsTypeUserToolConfirmation BetaManagedAgentsUserToolConfirmationEventParamsType = "user.tool_confirmation" 7343 ) 7344 7345 // Parameters for providing the result of an agent-toolset tool execution. Only 7346 // valid on `self_hosted` environments, where sandbox-routed tools are executed by 7347 // the client rather than the server. 7348 // 7349 // The properties ToolUseID, Type are required. 7350 type BetaManagedAgentsUserToolResultEventParams struct { 7351 // The id of the `agent.tool_use` event this result corresponds to, which can be 7352 // found in the last `session.status_idle` 7353 // [event's](https://platform.claude.com/docs/en/api/beta/sessions/events/list#beta_managed_agents_session_requires_action.event_ids) 7354 // `stop_reason.event_ids` field. 7355 ToolUseID string `json:"tool_use_id" api:"required"` 7356 // Any of "user.tool_result". 7357 Type BetaManagedAgentsUserToolResultEventParamsType `json:"type,omitzero" api:"required"` 7358 // Whether the tool execution resulted in an error. 7359 IsError param.Opt[bool] `json:"is_error,omitzero"` 7360 // The result content returned by the tool. 7361 Content []BetaManagedAgentsUserToolResultEventParamsContentUnion `json:"content,omitzero"` 7362 paramObj 7363 } 7364 7365 func (r BetaManagedAgentsUserToolResultEventParams) MarshalJSON() (data []byte, err error) { 7366 type shadow BetaManagedAgentsUserToolResultEventParams 7367 return param.MarshalObject(r, (*shadow)(&r)) 7368 } 7369 func (r *BetaManagedAgentsUserToolResultEventParams) UnmarshalJSON(data []byte) error { 7370 return apijson.UnmarshalRoot(data, r) 7371 } 7372 7373 type BetaManagedAgentsUserToolResultEventParamsType string 7374 7375 const ( 7376 BetaManagedAgentsUserToolResultEventParamsTypeUserToolResult BetaManagedAgentsUserToolResultEventParamsType = "user.tool_result" 7377 ) 7378 7379 // Only one field can be non-zero. 7380 // 7381 // Use [param.IsOmitted] to confirm if a field is set. 7382 type BetaManagedAgentsUserToolResultEventParamsContentUnion struct { 7383 OfText *BetaManagedAgentsTextBlockParam `json:",omitzero,inline"` 7384 OfImage *BetaManagedAgentsImageBlockParam `json:",omitzero,inline"` 7385 OfDocument *BetaManagedAgentsDocumentBlockParam `json:",omitzero,inline"` 7386 OfSearchResult *BetaManagedAgentsSearchResultBlockParam `json:",omitzero,inline"` 7387 paramUnion 7388 } 7389 7390 func (u BetaManagedAgentsUserToolResultEventParamsContentUnion) MarshalJSON() ([]byte, error) { 7391 return param.MarshalUnion(u, u.OfText, u.OfImage, u.OfDocument, u.OfSearchResult) 7392 } 7393 func (u *BetaManagedAgentsUserToolResultEventParamsContentUnion) UnmarshalJSON(data []byte) error { 7394 return apijson.UnmarshalRoot(data, u) 7395 } 7396 7397 func (u *BetaManagedAgentsUserToolResultEventParamsContentUnion) asAny() any { 7398 if !param.IsOmitted(u.OfText) { 7399 return u.OfText 7400 } else if !param.IsOmitted(u.OfImage) { 7401 return u.OfImage 7402 } else if !param.IsOmitted(u.OfDocument) { 7403 return u.OfDocument 7404 } else if !param.IsOmitted(u.OfSearchResult) { 7405 return u.OfSearchResult 7406 } 7407 return nil 7408 } 7409 7410 // Returns a pointer to the underlying variant's property, if present. 7411 func (u BetaManagedAgentsUserToolResultEventParamsContentUnion) GetText() *string { 7412 if vt := u.OfText; vt != nil { 7413 return &vt.Text 7414 } 7415 return nil 7416 } 7417 7418 // Returns a pointer to the underlying variant's property, if present. 7419 func (u BetaManagedAgentsUserToolResultEventParamsContentUnion) GetContext() *string { 7420 if vt := u.OfDocument; vt != nil && vt.Context.Valid() { 7421 return &vt.Context.Value 7422 } 7423 return nil 7424 } 7425 7426 // Returns a pointer to the underlying variant's property, if present. 7427 func (u BetaManagedAgentsUserToolResultEventParamsContentUnion) GetCitations() *BetaManagedAgentsSearchResultCitationsParam { 7428 if vt := u.OfSearchResult; vt != nil { 7429 return &vt.Citations 7430 } 7431 return nil 7432 } 7433 7434 // Returns a pointer to the underlying variant's property, if present. 7435 func (u BetaManagedAgentsUserToolResultEventParamsContentUnion) GetContent() []BetaManagedAgentsSearchResultContentParam { 7436 if vt := u.OfSearchResult; vt != nil { 7437 return vt.Content 7438 } 7439 return nil 7440 } 7441 7442 // Returns a pointer to the underlying variant's property, if present. 7443 func (u BetaManagedAgentsUserToolResultEventParamsContentUnion) GetType() *string { 7444 if vt := u.OfText; vt != nil { 7445 return (*string)(&vt.Type) 7446 } else if vt := u.OfImage; vt != nil { 7447 return (*string)(&vt.Type) 7448 } else if vt := u.OfDocument; vt != nil { 7449 return (*string)(&vt.Type) 7450 } else if vt := u.OfSearchResult; vt != nil { 7451 return (*string)(&vt.Type) 7452 } 7453 return nil 7454 } 7455 7456 // Returns a pointer to the underlying variant's property, if present. 7457 func (u BetaManagedAgentsUserToolResultEventParamsContentUnion) GetTitle() *string { 7458 if vt := u.OfDocument; vt != nil && vt.Title.Valid() { 7459 return &vt.Title.Value 7460 } else if vt := u.OfSearchResult; vt != nil { 7461 return (*string)(&vt.Title) 7462 } 7463 return nil 7464 } 7465 7466 // Returns a subunion which exports methods to access subproperties 7467 // 7468 // Or use AsAny() to get the underlying value 7469 func (u BetaManagedAgentsUserToolResultEventParamsContentUnion) GetSource() (res betaManagedAgentsUserToolResultEventParamsContentUnionSource) { 7470 if vt := u.OfImage; vt != nil { 7471 res.any = vt.Source.asAny() 7472 } else if vt := u.OfDocument; vt != nil { 7473 res.any = vt.Source.asAny() 7474 } else if vt := u.OfSearchResult; vt != nil { 7475 res.any = &vt.Source 7476 } 7477 return 7478 } 7479 7480 // Can have the runtime types [*BetaManagedAgentsBase64ImageSourceParam], 7481 // [*BetaManagedAgentsURLImageSourceParam], 7482 // [*BetaManagedAgentsFileImageSourceParam], 7483 // [*BetaManagedAgentsBase64DocumentSourceParam], 7484 // [*BetaManagedAgentsPlainTextDocumentSourceParam], 7485 // [*BetaManagedAgentsURLDocumentSourceParam], 7486 // [*BetaManagedAgentsFileDocumentSourceParam], [*string] 7487 type betaManagedAgentsUserToolResultEventParamsContentUnionSource struct{ any } 7488 7489 // Use the following switch statement to get the type of the union: 7490 // 7491 // switch u.AsAny().(type) { 7492 // case *anthropic.BetaManagedAgentsBase64ImageSourceParam: 7493 // case *anthropic.BetaManagedAgentsURLImageSourceParam: 7494 // case *anthropic.BetaManagedAgentsFileImageSourceParam: 7495 // case *anthropic.BetaManagedAgentsBase64DocumentSourceParam: 7496 // case *anthropic.BetaManagedAgentsPlainTextDocumentSourceParam: 7497 // case *anthropic.BetaManagedAgentsURLDocumentSourceParam: 7498 // case *anthropic.BetaManagedAgentsFileDocumentSourceParam: 7499 // case *string: 7500 // default: 7501 // fmt.Errorf("not present") 7502 // } 7503 func (u betaManagedAgentsUserToolResultEventParamsContentUnionSource) AsAny() any { return u.any } 7504 7505 // Returns a pointer to the underlying variant's property, if present. 7506 func (u betaManagedAgentsUserToolResultEventParamsContentUnionSource) GetData() *string { 7507 switch vt := u.any.(type) { 7508 case *BetaManagedAgentsImageBlockSourceUnionParam: 7509 return vt.GetData() 7510 case *BetaManagedAgentsDocumentBlockSourceUnionParam: 7511 return vt.GetData() 7512 } 7513 return nil 7514 } 7515 7516 // Returns a pointer to the underlying variant's property, if present. 7517 func (u betaManagedAgentsUserToolResultEventParamsContentUnionSource) GetMediaType() *string { 7518 switch vt := u.any.(type) { 7519 case *BetaManagedAgentsImageBlockSourceUnionParam: 7520 return vt.GetMediaType() 7521 case *BetaManagedAgentsDocumentBlockSourceUnionParam: 7522 return vt.GetMediaType() 7523 } 7524 return nil 7525 } 7526 7527 // Returns a pointer to the underlying variant's property, if present. 7528 func (u betaManagedAgentsUserToolResultEventParamsContentUnionSource) GetType() *string { 7529 switch vt := u.any.(type) { 7530 case *BetaManagedAgentsImageBlockSourceUnionParam: 7531 return vt.GetType() 7532 case *BetaManagedAgentsDocumentBlockSourceUnionParam: 7533 return vt.GetType() 7534 } 7535 return nil 7536 } 7537 7538 // Returns a pointer to the underlying variant's property, if present. 7539 func (u betaManagedAgentsUserToolResultEventParamsContentUnionSource) GetURL() *string { 7540 switch vt := u.any.(type) { 7541 case *BetaManagedAgentsImageBlockSourceUnionParam: 7542 return vt.GetURL() 7543 case *BetaManagedAgentsDocumentBlockSourceUnionParam: 7544 return vt.GetURL() 7545 } 7546 return nil 7547 } 7548 7549 // Returns a pointer to the underlying variant's property, if present. 7550 func (u betaManagedAgentsUserToolResultEventParamsContentUnionSource) GetFileID() *string { 7551 switch vt := u.any.(type) { 7552 case *BetaManagedAgentsImageBlockSourceUnionParam: 7553 return vt.GetFileID() 7554 case *BetaManagedAgentsDocumentBlockSourceUnionParam: 7555 return vt.GetFileID() 7556 } 7557 return nil 7558 } 7559 7560 func init() { 7561 apijson.RegisterUnion[BetaManagedAgentsUserToolResultEventParamsContentUnion]( 7562 "type", 7563 apijson.Discriminator[BetaManagedAgentsTextBlockParam]("text"), 7564 apijson.Discriminator[BetaManagedAgentsImageBlockParam]("image"), 7565 apijson.Discriminator[BetaManagedAgentsDocumentBlockParam]("document"), 7566 apijson.Discriminator[BetaManagedAgentsSearchResultBlockParam]("search_result"), 7567 ) 7568 } 7569 7570 type BetaSessionEventListParams struct { 7571 // Return events created after this time (exclusive). Compared against the event's 7572 // `processed_at` value. 7573 CreatedAtGt param.Opt[time.Time] `query:"created_at[gt],omitzero" format:"date-time" json:"-"` 7574 // Return events created at or after this time (inclusive). Compared against the 7575 // event's `processed_at` value. 7576 CreatedAtGte param.Opt[time.Time] `query:"created_at[gte],omitzero" format:"date-time" json:"-"` 7577 // Return events created before this time (exclusive). Compared against the event's 7578 // `processed_at` value. 7579 CreatedAtLt param.Opt[time.Time] `query:"created_at[lt],omitzero" format:"date-time" json:"-"` 7580 // Return events created at or before this time (inclusive). Compared against the 7581 // event's `processed_at` value. 7582 CreatedAtLte param.Opt[time.Time] `query:"created_at[lte],omitzero" format:"date-time" json:"-"` 7583 // Query parameter for limit 7584 Limit param.Opt[int64] `query:"limit,omitzero" json:"-"` 7585 // Opaque pagination cursor from a previous response's `next_page`. 7586 Page param.Opt[string] `query:"page,omitzero" json:"-"` 7587 WorkspaceID param.Opt[string] `header:"anthropic-workspace-id,omitzero" json:"-"` 7588 // Sort direction for results, ordered by the event's `processed_at`. Defaults to 7589 // `asc` (chronological). 7590 // 7591 // Any of "asc", "desc". 7592 Order BetaSessionEventListParamsOrder `query:"order,omitzero" json:"-"` 7593 // Filter by event type. Values match the `type` field on returned events (for 7594 // example, `user.message` or `agent.tool_use`). Omit to return all event types. 7595 Types []string `query:"types,omitzero" json:"-"` 7596 // Optional header to specify the beta version(s) you want to use. 7597 Betas []AnthropicBeta `header:"anthropic-beta,omitzero" json:"-"` 7598 paramObj 7599 } 7600 7601 // URLQuery serializes [BetaSessionEventListParams]'s query parameters as 7602 // `url.Values`. 7603 func (r BetaSessionEventListParams) URLQuery() (v url.Values, err error) { 7604 return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ 7605 ArrayFormat: apiquery.ArrayQueryFormatBrackets, 7606 NestedFormat: apiquery.NestedQueryFormatBrackets, 7607 }) 7608 } 7609 7610 // Sort direction for results, ordered by the event's `processed_at`. Defaults to 7611 // `asc` (chronological). 7612 type BetaSessionEventListParamsOrder string 7613 7614 const ( 7615 BetaSessionEventListParamsOrderAsc BetaSessionEventListParamsOrder = "asc" 7616 BetaSessionEventListParamsOrderDesc BetaSessionEventListParamsOrder = "desc" 7617 ) 7618 7619 type BetaSessionEventSendParams struct { 7620 // Events to send to the `session`. 7621 Events []BetaManagedAgentsEventParamsUnion `json:"events,omitzero" api:"required"` 7622 WorkspaceID param.Opt[string] `header:"anthropic-workspace-id,omitzero" json:"-"` 7623 // Optional header to specify the beta version(s) you want to use. 7624 Betas []AnthropicBeta `header:"anthropic-beta,omitzero" json:"-"` 7625 paramObj 7626 } 7627 7628 func (r BetaSessionEventSendParams) MarshalJSON() (data []byte, err error) { 7629 type shadow BetaSessionEventSendParams 7630 return param.MarshalObject(r, (*shadow)(&r)) 7631 } 7632 func (r *BetaSessionEventSendParams) UnmarshalJSON(data []byte) error { 7633 return apijson.UnmarshalRoot(data, r) 7634 } 7635 7636 type BetaSessionEventStreamParams struct { 7637 WorkspaceID param.Opt[string] `header:"anthropic-workspace-id,omitzero" json:"-"` 7638 // When set, this connection also receives streaming deltas (`event_start`, 7639 // `event_delta`) while an event is being produced, before the event itself 7640 // arrives. Deltas are best-effort; when the final event is produced it carries the 7641 // complete content. A model request that ends early (an error or interrupt) 7642 // produces no final event — its terminal `span.model_request_end` closes the 7643 // preview. Accepts one or more event types to preview and may be repeated: 7644 // `agent.message` streams `content_delta` fragments; `agent.thinking` is 7645 // start-only — a signal that the agent has begun extended thinking, concluded by 7646 // the `agent.thinking` event itself. Only previews of the requested event types 7647 // are sent. 7648 EventDeltas []BetaManagedAgentsDeltaType `query:"event_deltas,omitzero" json:"-"` 7649 // Optional header to specify the beta version(s) you want to use. 7650 Betas []AnthropicBeta `header:"anthropic-beta,omitzero" json:"-"` 7651 paramObj 7652 } 7653 7654 // URLQuery serializes [BetaSessionEventStreamParams]'s query parameters as 7655 // `url.Values`. 7656 func (r BetaSessionEventStreamParams) URLQuery() (v url.Values, err error) { 7657 return apiquery.MarshalWithSettings(r, apiquery.QuerySettings{ 7658 ArrayFormat: apiquery.ArrayQueryFormatBrackets, 7659 NestedFormat: apiquery.NestedQueryFormatBrackets, 7660 }) 7661 }