> ## 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.

# BaseInputsRoleUnion - Go SDK

> BaseInputsRoleUnion type definition

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

## Supported Types

### BaseInputsRoleUser

```go lines theme={null}
baseInputsRoleUnion := components.CreateBaseInputsRoleUnionBaseInputsRoleUser(components.BaseInputsRoleUser{/* values here */})
```

### BaseInputsRoleSystem

```go lines theme={null}
baseInputsRoleUnion := components.CreateBaseInputsRoleUnionBaseInputsRoleSystem(components.BaseInputsRoleSystem{/* values here */})
```

### BaseInputsRoleAssistant

```go lines theme={null}
baseInputsRoleUnion := components.CreateBaseInputsRoleUnionBaseInputsRoleAssistant(components.BaseInputsRoleAssistant{/* values here */})
```

### BaseInputsRoleDeveloper

```go lines theme={null}
baseInputsRoleUnion := components.CreateBaseInputsRoleUnionBaseInputsRoleDeveloper(components.BaseInputsRoleDeveloper{/* values here */})
```

## Union Discrimination

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

```go lines theme={null}
switch baseInputsRoleUnion.Type {
	case components.BaseInputsRoleUnionTypeBaseInputsRoleUser:
		// baseInputsRoleUnion.BaseInputsRoleUser is populated
	case components.BaseInputsRoleUnionTypeBaseInputsRoleSystem:
		// baseInputsRoleUnion.BaseInputsRoleSystem is populated
	case components.BaseInputsRoleUnionTypeBaseInputsRoleAssistant:
		// baseInputsRoleUnion.BaseInputsRoleAssistant is populated
	case components.BaseInputsRoleUnionTypeBaseInputsRoleDeveloper:
		// baseInputsRoleUnion.BaseInputsRoleDeveloper is populated
}
```
