> ## 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.

# MessagesRequestPlugin

## Supported Types

### AutoBetaRouterPlugin

```go theme={null}
messagesRequestPlugin := components.CreateMessagesRequestPluginAutoBetaRouter(components.AutoBetaRouterPlugin{/* values here */})
```

### AutoRouterPlugin

```go theme={null}
messagesRequestPlugin := components.CreateMessagesRequestPluginAutoRouter(components.AutoRouterPlugin{/* values here */})
```

### ContextCompressionPlugin

```go theme={null}
messagesRequestPlugin := components.CreateMessagesRequestPluginContextCompression(components.ContextCompressionPlugin{/* values here */})
```

### FileParserPlugin

```go theme={null}
messagesRequestPlugin := components.CreateMessagesRequestPluginFileParser(components.FileParserPlugin{/* values here */})
```

### FusionPlugin

```go theme={null}
messagesRequestPlugin := components.CreateMessagesRequestPluginFusion(components.FusionPlugin{/* values here */})
```

### ModerationPlugin

```go theme={null}
messagesRequestPlugin := components.CreateMessagesRequestPluginModeration(components.ModerationPlugin{/* values here */})
```

### ParetoRouterPlugin

```go theme={null}
messagesRequestPlugin := components.CreateMessagesRequestPluginParetoRouter(components.ParetoRouterPlugin{/* values here */})
```

### ResponseHealingPlugin

```go theme={null}
messagesRequestPlugin := components.CreateMessagesRequestPluginResponseHealing(components.ResponseHealingPlugin{/* values here */})
```

### WebSearchPlugin

```go theme={null}
messagesRequestPlugin := components.CreateMessagesRequestPluginWeb(components.WebSearchPlugin{/* values here */})
```

### WebFetchPlugin

```go theme={null}
messagesRequestPlugin := components.CreateMessagesRequestPluginWebFetch(components.WebFetchPlugin{/* values here */})
```

## Union Discrimination

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

```go theme={null}
switch messagesRequestPlugin.Type {
	case components.MessagesRequestPluginTypeAutoBetaRouter:
		// messagesRequestPlugin.AutoBetaRouterPlugin is populated
	case components.MessagesRequestPluginTypeAutoRouter:
		// messagesRequestPlugin.AutoRouterPlugin is populated
	case components.MessagesRequestPluginTypeContextCompression:
		// messagesRequestPlugin.ContextCompressionPlugin is populated
	case components.MessagesRequestPluginTypeFileParser:
		// messagesRequestPlugin.FileParserPlugin is populated
	case components.MessagesRequestPluginTypeFusion:
		// messagesRequestPlugin.FusionPlugin is populated
	case components.MessagesRequestPluginTypeModeration:
		// messagesRequestPlugin.ModerationPlugin is populated
	case components.MessagesRequestPluginTypeParetoRouter:
		// messagesRequestPlugin.ParetoRouterPlugin is populated
	case components.MessagesRequestPluginTypeResponseHealing:
		// messagesRequestPlugin.ResponseHealingPlugin is populated
	case components.MessagesRequestPluginTypeWeb:
		// messagesRequestPlugin.WebSearchPlugin is populated
	case components.MessagesRequestPluginTypeWebFetch:
		// messagesRequestPlugin.WebFetchPlugin is populated
}
```
