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

Supported Types

InputMessageItemRoleUser

inputMessageItemRoleUnion := components.CreateInputMessageItemRoleUnionInputMessageItemRoleUser(components.InputMessageItemRoleUser{/* values here */})

InputMessageItemRoleSystem

inputMessageItemRoleUnion := components.CreateInputMessageItemRoleUnionInputMessageItemRoleSystem(components.InputMessageItemRoleSystem{/* values here */})

InputMessageItemRoleDeveloper

inputMessageItemRoleUnion := components.CreateInputMessageItemRoleUnionInputMessageItemRoleDeveloper(components.InputMessageItemRoleDeveloper{/* values here */})

Union Discrimination

Use the Type field to determine which variant is active, then access the corresponding field:
switch inputMessageItemRoleUnion.Type {
	case components.InputMessageItemRoleUnionTypeInputMessageItemRoleUser:
		// inputMessageItemRoleUnion.InputMessageItemRoleUser is populated
	case components.InputMessageItemRoleUnionTypeInputMessageItemRoleSystem:
		// inputMessageItemRoleUnion.InputMessageItemRoleSystem is populated
	case components.InputMessageItemRoleUnionTypeInputMessageItemRoleDeveloper:
		// inputMessageItemRoleUnion.InputMessageItemRoleDeveloper is populated
}