Skip to main content
The Go SDK and docs are currently in beta. Report issues on GitHub.

Supported Types

InputText

inputMessageItemContentUnion := components.CreateInputMessageItemContentUnionInputText(components.InputText{/* values here */})

InputMessageItemContentInputImage

inputMessageItemContentUnion := components.CreateInputMessageItemContentUnionInputImage(components.InputMessageItemContentInputImage{/* values here */})

InputFile

inputMessageItemContentUnion := components.CreateInputMessageItemContentUnionInputFile(components.InputFile{/* values here */})

InputAudio

inputMessageItemContentUnion := components.CreateInputMessageItemContentUnionInputAudio(components.InputAudio{/* values here */})

InputVideo

inputMessageItemContentUnion := components.CreateInputMessageItemContentUnionInputVideo(components.InputVideo{/* values here */})

Union Discrimination

Use the Type field to determine which variant is active, then access the corresponding field:
switch inputMessageItemContentUnion.Type {
	case components.InputMessageItemContentUnionTypeInputText:
		// inputMessageItemContentUnion.InputText is populated
	case components.InputMessageItemContentUnionTypeInputImage:
		// inputMessageItemContentUnion.InputMessageItemContentInputImage is populated
	case components.InputMessageItemContentUnionTypeInputFile:
		// inputMessageItemContentUnion.InputFile is populated
	case components.InputMessageItemContentUnionTypeInputAudio:
		// inputMessageItemContentUnion.InputAudio is populated
	case components.InputMessageItemContentUnionTypeInputVideo:
		// inputMessageItemContentUnion.InputVideo is populated
}