> ## 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. # ChatRequestPlugin ## Supported Types ### AutoBetaRouterPlugin ```go theme={null} chatRequestPlugin := components.CreateChatRequestPluginAutoBetaRouter(components.AutoBetaRouterPlugin{/* values here */}) ``` ### AutoRouterPlugin ```go theme={null} chatRequestPlugin := components.CreateChatRequestPluginAutoRouter(components.AutoRouterPlugin{/* values here */}) ``` ### ContextCompressionPlugin ```go theme={null} chatRequestPlugin := components.CreateChatRequestPluginContextCompression(components.ContextCompressionPlugin{/* values here */}) ``` ### FileParserPlugin ```go theme={null} chatRequestPlugin := components.CreateChatRequestPluginFileParser(components.FileParserPlugin{/* values here */}) ``` ### FusionPlugin ```go theme={null} chatRequestPlugin := components.CreateChatRequestPluginFusion(components.FusionPlugin{/* values here */}) ``` ### ModerationPlugin ```go theme={null} chatRequestPlugin := components.CreateChatRequestPluginModeration(components.ModerationPlugin{/* values here */}) ``` ### ParetoRouterPlugin ```go theme={null} chatRequestPlugin := components.CreateChatRequestPluginParetoRouter(components.ParetoRouterPlugin{/* values here */}) ``` ### ResponseHealingPlugin ```go theme={null} chatRequestPlugin := components.CreateChatRequestPluginResponseHealing(components.ResponseHealingPlugin{/* values here */}) ``` ### WebSearchPlugin ```go theme={null} chatRequestPlugin := components.CreateChatRequestPluginWeb(components.WebSearchPlugin{/* values here */}) ``` ### WebFetchPlugin ```go theme={null} chatRequestPlugin := components.CreateChatRequestPluginWebFetch(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 chatRequestPlugin.Type { case components.ChatRequestPluginTypeAutoBetaRouter: // chatRequestPlugin.AutoBetaRouterPlugin is populated case components.ChatRequestPluginTypeAutoRouter: // chatRequestPlugin.AutoRouterPlugin is populated case components.ChatRequestPluginTypeContextCompression: // chatRequestPlugin.ContextCompressionPlugin is populated case components.ChatRequestPluginTypeFileParser: // chatRequestPlugin.FileParserPlugin is populated case components.ChatRequestPluginTypeFusion: // chatRequestPlugin.FusionPlugin is populated case components.ChatRequestPluginTypeModeration: // chatRequestPlugin.ModerationPlugin is populated case components.ChatRequestPluginTypeParetoRouter: // chatRequestPlugin.ParetoRouterPlugin is populated case components.ChatRequestPluginTypeResponseHealing: // chatRequestPlugin.ResponseHealingPlugin is populated case components.ChatRequestPluginTypeWeb: // chatRequestPlugin.WebSearchPlugin is populated case components.ChatRequestPluginTypeWebFetch: // chatRequestPlugin.WebFetchPlugin is populated } ```