> ## 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. # InputUnion Text, token, or multimodal input(s) to embed ## Supported Types ### ```go theme={null} inputUnion := operations.CreateInputUnionStr(string{/* values here */}) ``` ### ```go theme={null} inputUnion := operations.CreateInputUnionArrayOfStr([]string{/* values here */}) ``` ### ```go theme={null} inputUnion := operations.CreateInputUnionArrayOfNumber([]float64{/* values here */}) ``` ### ```go theme={null} inputUnion := operations.CreateInputUnionArrayOfArrayOfNumber([][]float64{/* values here */}) ``` ### ```go theme={null} inputUnion := operations.CreateInputUnionArrayOfInput([]operations.Input{/* values here */}) ``` ## Union Discrimination Use the `Type` field to determine which variant is active, then access the corresponding field: ```go theme={null} switch inputUnion.Type { case operations.InputUnionTypeStr: // inputUnion.Str is populated case operations.InputUnionTypeArrayOfStr: // inputUnion.ArrayOfStr is populated case operations.InputUnionTypeArrayOfNumber: // inputUnion.ArrayOfNumber is populated case operations.InputUnionTypeArrayOfArrayOfNumber: // inputUnion.ArrayOfArrayOfNumber is populated case operations.InputUnionTypeArrayOfInput: // inputUnion.ArrayOfInput is populated } ```