The Go SDK and docs are currently in beta.
Report issues on GitHub.
Supported Types
ResponsesRequestToolFunction
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionFunction(components.ResponsesRequestToolFunction{/* values here */})
PreviewWebSearchServerTool
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionWebSearchPreview(components.PreviewWebSearchServerTool{/* values here */})
Preview20250311WebSearchServerTool
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionWebSearchPreview20250311(components.Preview20250311WebSearchServerTool{/* values here */})
LegacyWebSearchServerTool
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionWebSearch(components.LegacyWebSearchServerTool{/* values here */})
WebSearchServerTool
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionWebSearch20250826(components.WebSearchServerTool{/* values here */})
FileSearchServerTool
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionFileSearch(components.FileSearchServerTool{/* values here */})
ComputerUseServerTool
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionComputerUsePreview(components.ComputerUseServerTool{/* values here */})
CodeInterpreterServerTool
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionCodeInterpreter(components.CodeInterpreterServerTool{/* values here */})
McpServerTool
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionMcp(components.McpServerTool{/* values here */})
ImageGenerationServerTool
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionImageGeneration(components.ImageGenerationServerTool{/* values here */})
CodexLocalShellTool
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionLocalShell(components.CodexLocalShellTool{/* values here */})
ShellServerTool
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionShell(components.ShellServerTool{/* values here */})
ApplyPatchServerTool
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionApplyPatch(components.ApplyPatchServerTool{/* values here */})
CustomTool
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionCustom(components.CustomTool{/* values here */})
DatetimeServerTool
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterDatetime(components.DatetimeServerTool{/* values here */})
FusionServerToolOpenRouter
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterFusion(components.FusionServerToolOpenRouter{/* values here */})
ImageGenerationServerToolOpenRouter
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterImageGeneration(components.ImageGenerationServerToolOpenRouter{/* values here */})
ChatSearchModelsServerTool
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterExperimentalSearchModels(components.ChatSearchModelsServerTool{/* values here */})
WebFetchServerTool
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterWebFetch(components.WebFetchServerTool{/* values here */})
WebSearchServerToolOpenRouter
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterWebSearch(components.WebSearchServerToolOpenRouter{/* values here */})
ApplyPatchServerToolOpenRouter
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterApplyPatch(components.ApplyPatchServerToolOpenRouter{/* values here */})
Union Discrimination
Use theType field to determine which variant is active, then access the corresponding field:
switch responsesRequestToolUnion.Type {
case components.ResponsesRequestToolUnionTypeFunction:
// responsesRequestToolUnion.ResponsesRequestToolFunction is populated
case components.ResponsesRequestToolUnionTypeWebSearchPreview:
// responsesRequestToolUnion.PreviewWebSearchServerTool is populated
case components.ResponsesRequestToolUnionTypeWebSearchPreview20250311:
// responsesRequestToolUnion.Preview20250311WebSearchServerTool is populated
case components.ResponsesRequestToolUnionTypeWebSearch:
// responsesRequestToolUnion.LegacyWebSearchServerTool is populated
case components.ResponsesRequestToolUnionTypeWebSearch20250826:
// responsesRequestToolUnion.WebSearchServerTool is populated
case components.ResponsesRequestToolUnionTypeFileSearch:
// responsesRequestToolUnion.FileSearchServerTool is populated
case components.ResponsesRequestToolUnionTypeComputerUsePreview:
// responsesRequestToolUnion.ComputerUseServerTool is populated
case components.ResponsesRequestToolUnionTypeCodeInterpreter:
// responsesRequestToolUnion.CodeInterpreterServerTool is populated
case components.ResponsesRequestToolUnionTypeMcp:
// responsesRequestToolUnion.McpServerTool is populated
case components.ResponsesRequestToolUnionTypeImageGeneration:
// responsesRequestToolUnion.ImageGenerationServerTool is populated
case components.ResponsesRequestToolUnionTypeLocalShell:
// responsesRequestToolUnion.CodexLocalShellTool is populated
case components.ResponsesRequestToolUnionTypeShell:
// responsesRequestToolUnion.ShellServerTool is populated
case components.ResponsesRequestToolUnionTypeApplyPatch:
// responsesRequestToolUnion.ApplyPatchServerTool is populated
case components.ResponsesRequestToolUnionTypeCustom:
// responsesRequestToolUnion.CustomTool is populated
case components.ResponsesRequestToolUnionTypeOpenrouterDatetime:
// responsesRequestToolUnion.DatetimeServerTool is populated
case components.ResponsesRequestToolUnionTypeOpenrouterFusion:
// responsesRequestToolUnion.FusionServerToolOpenRouter is populated
case components.ResponsesRequestToolUnionTypeOpenrouterImageGeneration:
// responsesRequestToolUnion.ImageGenerationServerToolOpenRouter is populated
case components.ResponsesRequestToolUnionTypeOpenrouterExperimentalSearchModels:
// responsesRequestToolUnion.ChatSearchModelsServerTool is populated
case components.ResponsesRequestToolUnionTypeOpenrouterWebFetch:
// responsesRequestToolUnion.WebFetchServerTool is populated
case components.ResponsesRequestToolUnionTypeOpenrouterWebSearch:
// responsesRequestToolUnion.WebSearchServerToolOpenRouter is populated
case components.ResponsesRequestToolUnionTypeOpenrouterApplyPatch:
// responsesRequestToolUnion.ApplyPatchServerToolOpenRouter is populated
}