> ## Documentation Index
> Fetch the complete documentation index at: https://openrouter-d02e98a0-mintlify-5b6e02fd.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenResponsesResultToolUnion - Go SDK

> OpenResponsesResultToolUnion type definition

<Warning>
  The Go SDK and docs are currently in beta.
  Report issues on [GitHub](https://github.com/OpenRouterTeam/go-sdk/issues).
</Warning>

## Supported Types

### OpenResponsesResultToolFunction

```go lines theme={null}
openResponsesResultToolUnion := components.CreateOpenResponsesResultToolUnionFunction(components.OpenResponsesResultToolFunction{/* values here */})
```

### PreviewWebSearchServerTool

```go lines theme={null}
openResponsesResultToolUnion := components.CreateOpenResponsesResultToolUnionWebSearchPreview(components.PreviewWebSearchServerTool{/* values here */})
```

### Preview20250311WebSearchServerTool

```go lines theme={null}
openResponsesResultToolUnion := components.CreateOpenResponsesResultToolUnionWebSearchPreview20250311(components.Preview20250311WebSearchServerTool{/* values here */})
```

### LegacyWebSearchServerTool

```go lines theme={null}
openResponsesResultToolUnion := components.CreateOpenResponsesResultToolUnionWebSearch(components.LegacyWebSearchServerTool{/* values here */})
```

### WebSearchServerTool

```go lines theme={null}
openResponsesResultToolUnion := components.CreateOpenResponsesResultToolUnionWebSearch20250826(components.WebSearchServerTool{/* values here */})
```

### FileSearchServerTool

```go lines theme={null}
openResponsesResultToolUnion := components.CreateOpenResponsesResultToolUnionFileSearch(components.FileSearchServerTool{/* values here */})
```

### ComputerUseServerTool

```go lines theme={null}
openResponsesResultToolUnion := components.CreateOpenResponsesResultToolUnionComputerUsePreview(components.ComputerUseServerTool{/* values here */})
```

### CodeInterpreterServerTool

```go lines theme={null}
openResponsesResultToolUnion := components.CreateOpenResponsesResultToolUnionCodeInterpreter(components.CodeInterpreterServerTool{/* values here */})
```

### McpServerTool

```go lines theme={null}
openResponsesResultToolUnion := components.CreateOpenResponsesResultToolUnionMcp(components.McpServerTool{/* values here */})
```

### ImageGenerationServerTool

```go lines theme={null}
openResponsesResultToolUnion := components.CreateOpenResponsesResultToolUnionImageGeneration(components.ImageGenerationServerTool{/* values here */})
```

### CodexLocalShellTool

```go lines theme={null}
openResponsesResultToolUnion := components.CreateOpenResponsesResultToolUnionLocalShell(components.CodexLocalShellTool{/* values here */})
```

### ShellServerTool

```go lines theme={null}
openResponsesResultToolUnion := components.CreateOpenResponsesResultToolUnionShell(components.ShellServerTool{/* values here */})
```

### ApplyPatchServerTool

```go lines theme={null}
openResponsesResultToolUnion := components.CreateOpenResponsesResultToolUnionApplyPatch(components.ApplyPatchServerTool{/* values here */})
```

### CustomTool

```go lines theme={null}
openResponsesResultToolUnion := components.CreateOpenResponsesResultToolUnionCustom(components.CustomTool{/* values here */})
```

## Union Discrimination

Use the `Type` field to determine which variant is active, then access the corresponding field:

```go expandable lines theme={null}
switch openResponsesResultToolUnion.Type {
	case components.OpenResponsesResultToolUnionTypeFunction:
		// openResponsesResultToolUnion.OpenResponsesResultToolFunction is populated
	case components.OpenResponsesResultToolUnionTypeWebSearchPreview:
		// openResponsesResultToolUnion.PreviewWebSearchServerTool is populated
	case components.OpenResponsesResultToolUnionTypeWebSearchPreview20250311:
		// openResponsesResultToolUnion.Preview20250311WebSearchServerTool is populated
	case components.OpenResponsesResultToolUnionTypeWebSearch:
		// openResponsesResultToolUnion.LegacyWebSearchServerTool is populated
	case components.OpenResponsesResultToolUnionTypeWebSearch20250826:
		// openResponsesResultToolUnion.WebSearchServerTool is populated
	case components.OpenResponsesResultToolUnionTypeFileSearch:
		// openResponsesResultToolUnion.FileSearchServerTool is populated
	case components.OpenResponsesResultToolUnionTypeComputerUsePreview:
		// openResponsesResultToolUnion.ComputerUseServerTool is populated
	case components.OpenResponsesResultToolUnionTypeCodeInterpreter:
		// openResponsesResultToolUnion.CodeInterpreterServerTool is populated
	case components.OpenResponsesResultToolUnionTypeMcp:
		// openResponsesResultToolUnion.McpServerTool is populated
	case components.OpenResponsesResultToolUnionTypeImageGeneration:
		// openResponsesResultToolUnion.ImageGenerationServerTool is populated
	case components.OpenResponsesResultToolUnionTypeLocalShell:
		// openResponsesResultToolUnion.CodexLocalShellTool is populated
	case components.OpenResponsesResultToolUnionTypeShell:
		// openResponsesResultToolUnion.ShellServerTool is populated
	case components.OpenResponsesResultToolUnionTypeApplyPatch:
		// openResponsesResultToolUnion.ApplyPatchServerTool is populated
	case components.OpenResponsesResultToolUnionTypeCustom:
		// openResponsesResultToolUnion.CustomTool is populated
	default:
		// Unknown type - use openResponsesResultToolUnion.GetUnknownRaw() for raw JSON
}
```
