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

# CapabilityDescriptor

A typed descriptor for one supported request parameter.

## Supported Types

### EnumCapability

```go theme={null}
capabilityDescriptor := components.CreateCapabilityDescriptorEnum(components.EnumCapability{/* values here */})
```

### RangeCapability

```go theme={null}
capabilityDescriptor := components.CreateCapabilityDescriptorRange(components.RangeCapability{/* values here */})
```

### BooleanCapability

```go theme={null}
capabilityDescriptor := components.CreateCapabilityDescriptorBoolean(components.BooleanCapability{/* values here */})
```

## Union Discrimination

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

```go theme={null}
switch capabilityDescriptor.Type {
	case components.CapabilityDescriptorTypeEnum:
		// capabilityDescriptor.EnumCapability is populated
	case components.CapabilityDescriptorTypeRange:
		// capabilityDescriptor.RangeCapability is populated
	case components.CapabilityDescriptorTypeBoolean:
		// capabilityDescriptor.BooleanCapability is populated
	default:
		// Unknown type - use capabilityDescriptor.GetUnknownRaw() for raw JSON
}
```
