Supported Types
ToolCustom
messagesRequestToolUnion := components.CreateMessagesRequestToolUnionToolCustom(components.ToolCustom{/* values here */})
ToolBash20250124
messagesRequestToolUnion := components.CreateMessagesRequestToolUnionToolBash20250124(components.ToolBash20250124{/* values here */})
ToolTextEditor20250124
messagesRequestToolUnion := components.CreateMessagesRequestToolUnionToolTextEditor20250124(components.ToolTextEditor20250124{/* values here */})
ToolWebSearch20250305
messagesRequestToolUnion := components.CreateMessagesRequestToolUnionToolWebSearch20250305(components.ToolWebSearch20250305{/* values here */})
ToolWebSearch20260209
messagesRequestToolUnion := components.CreateMessagesRequestToolUnionToolWebSearch20260209(components.ToolWebSearch20260209{/* values here */})
ToolAdvisor20260301
messagesRequestToolUnion := components.CreateMessagesRequestToolUnionToolAdvisor20260301(components.ToolAdvisor20260301{/* values here */})
BashServerTool
messagesRequestToolUnion := components.CreateMessagesRequestToolUnionBashServerTool(components.BashServerTool{/* values here */})
DatetimeServerTool
messagesRequestToolUnion := components.CreateMessagesRequestToolUnionDatetimeServerTool(components.DatetimeServerTool{/* values here */})
ImageGenerationServerToolOpenRouter
messagesRequestToolUnion := components.CreateMessagesRequestToolUnionImageGenerationServerToolOpenRouter(components.ImageGenerationServerToolOpenRouter{/* values here */})
MessagesSearchModelsServerTool
messagesRequestToolUnion := components.CreateMessagesRequestToolUnionMessagesSearchModelsServerTool(components.MessagesSearchModelsServerTool{/* values here */})
WebFetchServerTool
messagesRequestToolUnion := components.CreateMessagesRequestToolUnionWebFetchServerTool(components.WebFetchServerTool{/* values here */})
OpenRouterWebSearchServerTool
messagesRequestToolUnion := components.CreateMessagesRequestToolUnionOpenRouterWebSearchServerTool(components.OpenRouterWebSearchServerTool{/* values here */})
MessagesRequestTool
messagesRequestToolUnion := components.CreateMessagesRequestToolUnionMessagesRequestTool(components.MessagesRequestTool{/* values here */})
AnthropicToolSearchToolBm25
messagesRequestToolUnion := components.CreateMessagesRequestToolUnionAnthropicToolSearchToolBm25(components.AnthropicToolSearchToolBm25{/* values here */})
AnthropicToolSearchToolRegex
messagesRequestToolUnion := components.CreateMessagesRequestToolUnionAnthropicToolSearchToolRegex(components.AnthropicToolSearchToolRegex{/* values here */})
Union Discrimination
Use theType field to determine which variant is active, then access the corresponding field:
switch messagesRequestToolUnion.Type {
case components.MessagesRequestToolUnionTypeToolCustom:
// messagesRequestToolUnion.ToolCustom is populated
case components.MessagesRequestToolUnionTypeToolBash20250124:
// messagesRequestToolUnion.ToolBash20250124 is populated
case components.MessagesRequestToolUnionTypeToolTextEditor20250124:
// messagesRequestToolUnion.ToolTextEditor20250124 is populated
case components.MessagesRequestToolUnionTypeToolWebSearch20250305:
// messagesRequestToolUnion.ToolWebSearch20250305 is populated
case components.MessagesRequestToolUnionTypeToolWebSearch20260209:
// messagesRequestToolUnion.ToolWebSearch20260209 is populated
case components.MessagesRequestToolUnionTypeToolAdvisor20260301:
// messagesRequestToolUnion.ToolAdvisor20260301 is populated
case components.MessagesRequestToolUnionTypeBashServerTool:
// messagesRequestToolUnion.BashServerTool is populated
case components.MessagesRequestToolUnionTypeDatetimeServerTool:
// messagesRequestToolUnion.DatetimeServerTool is populated
case components.MessagesRequestToolUnionTypeImageGenerationServerToolOpenRouter:
// messagesRequestToolUnion.ImageGenerationServerToolOpenRouter is populated
case components.MessagesRequestToolUnionTypeMessagesSearchModelsServerTool:
// messagesRequestToolUnion.MessagesSearchModelsServerTool is populated
case components.MessagesRequestToolUnionTypeWebFetchServerTool:
// messagesRequestToolUnion.WebFetchServerTool is populated
case components.MessagesRequestToolUnionTypeOpenRouterWebSearchServerTool:
// messagesRequestToolUnion.OpenRouterWebSearchServerTool is populated
case components.MessagesRequestToolUnionTypeMessagesRequestTool:
// messagesRequestToolUnion.MessagesRequestTool is populated
case components.MessagesRequestToolUnionTypeAnthropicToolSearchToolBm25:
// messagesRequestToolUnion.AnthropicToolSearchToolBm25 is populated
case components.MessagesRequestToolUnionTypeAnthropicToolSearchToolRegex:
// messagesRequestToolUnion.AnthropicToolSearchToolRegex is populated
}