> ## Documentation Index
> Fetch the complete documentation index at: https://openrouter.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# ResponsesRequestToolUnion

## Supported Types

### ResponsesRequestToolFunction

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionFunction(components.ResponsesRequestToolFunction{/* values here */})
```

### PreviewWebSearchServerTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionWebSearchPreview(components.PreviewWebSearchServerTool{/* values here */})
```

### Preview20250311WebSearchServerTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionWebSearchPreview20250311(components.Preview20250311WebSearchServerTool{/* values here */})
```

### LegacyWebSearchServerTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionWebSearch(components.LegacyWebSearchServerTool{/* values here */})
```

### WebSearchServerTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionWebSearch20250826(components.WebSearchServerTool{/* values here */})
```

### FileSearchServerTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionFileSearch(components.FileSearchServerTool{/* values here */})
```

### ComputerUseServerTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionComputerUsePreview(components.ComputerUseServerTool{/* values here */})
```

### CodeInterpreterServerTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionCodeInterpreter(components.CodeInterpreterServerTool{/* values here */})
```

### McpServerTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionMcp(components.McpServerTool{/* values here */})
```

### ImageGenerationServerTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionImageGeneration(components.ImageGenerationServerTool{/* values here */})
```

### CodexLocalShellTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionLocalShell(components.CodexLocalShellTool{/* values here */})
```

### ShellServerTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionShell(components.ShellServerTool{/* values here */})
```

### ApplyPatchServerTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionApplyPatch(components.ApplyPatchServerTool{/* values here */})
```

### CustomTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionCustom(components.CustomTool{/* values here */})
```

### NamespaceTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionNamespace(components.NamespaceTool{/* values here */})
```

### AdvisorServerToolOpenRouter

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterAdvisor(components.AdvisorServerToolOpenRouter{/* values here */})
```

### SubagentServerToolOpenRouter

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterSubagent(components.SubagentServerToolOpenRouter{/* values here */})
```

### DatetimeServerTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterDatetime(components.DatetimeServerTool{/* values here */})
```

### FilesServerTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterFiles(components.FilesServerTool{/* values here */})
```

### FusionServerToolOpenRouter

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterFusion(components.FusionServerToolOpenRouter{/* values here */})
```

### ImageGenerationServerToolOpenRouter

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterImageGeneration(components.ImageGenerationServerToolOpenRouter{/* values here */})
```

### SearchModelsServerToolOpenRouter

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterExperimentalSearchModels(components.SearchModelsServerToolOpenRouter{/* values here */})
```

### WebFetchServerTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterWebFetch(components.WebFetchServerTool{/* values here */})
```

### WebSearchServerToolOpenRouter

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterWebSearch(components.WebSearchServerToolOpenRouter{/* values here */})
```

### ApplyPatchServerToolOpenRouter

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterApplyPatch(components.ApplyPatchServerToolOpenRouter{/* values here */})
```

### BashServerTool

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterBash(components.BashServerTool{/* values here */})
```

### ShellServerToolOpenRouter

```go theme={null}
responsesRequestToolUnion := components.CreateResponsesRequestToolUnionOpenrouterShell(components.ShellServerToolOpenRouter{/* values here */})
```

## Union Discrimination

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

```go theme={null}
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.ResponsesRequestToolUnionTypeNamespace:
		// responsesRequestToolUnion.NamespaceTool is populated
	case components.ResponsesRequestToolUnionTypeOpenrouterAdvisor:
		// responsesRequestToolUnion.AdvisorServerToolOpenRouter is populated
	case components.ResponsesRequestToolUnionTypeOpenrouterSubagent:
		// responsesRequestToolUnion.SubagentServerToolOpenRouter is populated
	case components.ResponsesRequestToolUnionTypeOpenrouterDatetime:
		// responsesRequestToolUnion.DatetimeServerTool is populated
	case components.ResponsesRequestToolUnionTypeOpenrouterFiles:
		// responsesRequestToolUnion.FilesServerTool is populated
	case components.ResponsesRequestToolUnionTypeOpenrouterFusion:
		// responsesRequestToolUnion.FusionServerToolOpenRouter is populated
	case components.ResponsesRequestToolUnionTypeOpenrouterImageGeneration:
		// responsesRequestToolUnion.ImageGenerationServerToolOpenRouter is populated
	case components.ResponsesRequestToolUnionTypeOpenrouterExperimentalSearchModels:
		// responsesRequestToolUnion.SearchModelsServerToolOpenRouter is populated
	case components.ResponsesRequestToolUnionTypeOpenrouterWebFetch:
		// responsesRequestToolUnion.WebFetchServerTool is populated
	case components.ResponsesRequestToolUnionTypeOpenrouterWebSearch:
		// responsesRequestToolUnion.WebSearchServerToolOpenRouter is populated
	case components.ResponsesRequestToolUnionTypeOpenrouterApplyPatch:
		// responsesRequestToolUnion.ApplyPatchServerToolOpenRouter is populated
	case components.ResponsesRequestToolUnionTypeOpenrouterBash:
		// responsesRequestToolUnion.BashServerTool is populated
	case components.ResponsesRequestToolUnionTypeOpenrouterShell:
		// responsesRequestToolUnion.ShellServerToolOpenRouter is populated
}
```
