> ## 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. # OpenAIResponsesToolChoiceUnion ## Supported Types ### OpenAIResponsesToolChoiceAuto ```go theme={null} openAIResponsesToolChoiceUnion := components.CreateOpenAIResponsesToolChoiceUnionOpenAIResponsesToolChoiceAuto(components.OpenAIResponsesToolChoiceAuto{/* values here */}) ``` ### OpenAIResponsesToolChoiceNone ```go theme={null} openAIResponsesToolChoiceUnion := components.CreateOpenAIResponsesToolChoiceUnionOpenAIResponsesToolChoiceNone(components.OpenAIResponsesToolChoiceNone{/* values here */}) ``` ### OpenAIResponsesToolChoiceRequired ```go theme={null} openAIResponsesToolChoiceUnion := components.CreateOpenAIResponsesToolChoiceUnionOpenAIResponsesToolChoiceRequired(components.OpenAIResponsesToolChoiceRequired{/* values here */}) ``` ### OpenAIResponsesToolChoiceFunction ```go theme={null} openAIResponsesToolChoiceUnion := components.CreateOpenAIResponsesToolChoiceUnionOpenAIResponsesToolChoiceFunction(components.OpenAIResponsesToolChoiceFunction{/* values here */}) ``` ### OpenAIResponsesToolChoice ```go theme={null} openAIResponsesToolChoiceUnion := components.CreateOpenAIResponsesToolChoiceUnionOpenAIResponsesToolChoice(components.OpenAIResponsesToolChoice{/* values here */}) ``` ### ToolChoiceAllowed ```go theme={null} openAIResponsesToolChoiceUnion := components.CreateOpenAIResponsesToolChoiceUnionToolChoiceAllowed(components.ToolChoiceAllowed{/* values here */}) ``` ### OpenAIResponsesToolChoiceApplyPatch ```go theme={null} openAIResponsesToolChoiceUnion := components.CreateOpenAIResponsesToolChoiceUnionOpenAIResponsesToolChoiceApplyPatch(components.OpenAIResponsesToolChoiceApplyPatch{/* values here */}) ``` ### OpenAIResponsesToolChoiceShell ```go theme={null} openAIResponsesToolChoiceUnion := components.CreateOpenAIResponsesToolChoiceUnionOpenAIResponsesToolChoiceShell(components.OpenAIResponsesToolChoiceShell{/* values here */}) ``` ## Union Discrimination Use the `Type` field to determine which variant is active, then access the corresponding field: ```go theme={null} switch openAIResponsesToolChoiceUnion.Type { case components.OpenAIResponsesToolChoiceUnionTypeOpenAIResponsesToolChoiceAuto: // openAIResponsesToolChoiceUnion.OpenAIResponsesToolChoiceAuto is populated case components.OpenAIResponsesToolChoiceUnionTypeOpenAIResponsesToolChoiceNone: // openAIResponsesToolChoiceUnion.OpenAIResponsesToolChoiceNone is populated case components.OpenAIResponsesToolChoiceUnionTypeOpenAIResponsesToolChoiceRequired: // openAIResponsesToolChoiceUnion.OpenAIResponsesToolChoiceRequired is populated case components.OpenAIResponsesToolChoiceUnionTypeOpenAIResponsesToolChoiceFunction: // openAIResponsesToolChoiceUnion.OpenAIResponsesToolChoiceFunction is populated case components.OpenAIResponsesToolChoiceUnionTypeOpenAIResponsesToolChoice: // openAIResponsesToolChoiceUnion.OpenAIResponsesToolChoice is populated case components.OpenAIResponsesToolChoiceUnionTypeToolChoiceAllowed: // openAIResponsesToolChoiceUnion.ToolChoiceAllowed is populated case components.OpenAIResponsesToolChoiceUnionTypeOpenAIResponsesToolChoiceApplyPatch: // openAIResponsesToolChoiceUnion.OpenAIResponsesToolChoiceApplyPatch is populated case components.OpenAIResponsesToolChoiceUnionTypeOpenAIResponsesToolChoiceShell: // openAIResponsesToolChoiceUnion.OpenAIResponsesToolChoiceShell is populated } ```