> ## Documentation Index
> Fetch the complete documentation index at: https://openrouter-d02e98a0-mintlify-7021d5f4.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# ChatContentItems - Go SDK

> ChatContentItems type definition

<Warning>
  The Go SDK and docs are currently in beta.
  Report issues on [GitHub](https://github.com/OpenRouterTeam/go-sdk/issues).
</Warning>

Content part for chat completion messages

## Supported Types

### ChatContentFile

```go lines theme={null}
chatContentItems := components.CreateChatContentItemsFile(components.ChatContentFile{/* values here */})
```

### ChatContentImage

```go lines theme={null}
chatContentItems := components.CreateChatContentItemsImageURL(components.ChatContentImage{/* values here */})
```

### ChatContentAudio

```go lines theme={null}
chatContentItems := components.CreateChatContentItemsInputAudio(components.ChatContentAudio{/* values here */})
```

### LegacyChatContentVideo

```go lines theme={null}
chatContentItems := components.CreateChatContentItemsInputVideo(components.LegacyChatContentVideo{/* values here */})
```

### ChatContentText

```go lines theme={null}
chatContentItems := components.CreateChatContentItemsText(components.ChatContentText{/* values here */})
```

### ChatContentVideo

```go lines theme={null}
chatContentItems := components.CreateChatContentItemsVideoURL(components.ChatContentVideo{/* values here */})
```

## Union Discrimination

Use the `Type` field to determine which variant is active, then access the corresponding field:

```go lines theme={null}
switch chatContentItems.Type {
	case components.ChatContentItemsTypeFile:
		// chatContentItems.ChatContentFile is populated
	case components.ChatContentItemsTypeImageURL:
		// chatContentItems.ChatContentImage is populated
	case components.ChatContentItemsTypeInputAudio:
		// chatContentItems.ChatContentAudio is populated
	case components.ChatContentItemsTypeInputVideo:
		// chatContentItems.LegacyChatContentVideo is populated
	case components.ChatContentItemsTypeText:
		// chatContentItems.ChatContentText is populated
	case components.ChatContentItemsTypeVideoURL:
		// chatContentItems.ChatContentVideo is populated
	default:
		// Unknown type - use chatContentItems.GetUnknownRaw() for raw JSON
}
```
