> ## 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 } ```