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

# RequireApprovalUnion - Go SDK

> RequireApprovalUnion 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

### RequireApproval

```go lines theme={null}
requireApprovalUnion := components.CreateRequireApprovalUnionRequireApproval(components.RequireApproval{/* values here */})
```

### RequireApprovalAlways

```go lines theme={null}
requireApprovalUnion := components.CreateRequireApprovalUnionRequireApprovalAlways(components.RequireApprovalAlways{/* values here */})
```

### RequireApprovalNever

```go lines theme={null}
requireApprovalUnion := components.CreateRequireApprovalUnionRequireApprovalNever(components.RequireApprovalNever{/* values here */})
```

###

```go lines theme={null}
requireApprovalUnion := components.CreateRequireApprovalUnionAny(any{/* values here */})
```

## Union Discrimination

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

```go lines theme={null}
switch requireApprovalUnion.Type {
	case components.RequireApprovalUnionTypeRequireApproval:
		// requireApprovalUnion.RequireApproval is populated
	case components.RequireApprovalUnionTypeRequireApprovalAlways:
		// requireApprovalUnion.RequireApprovalAlways is populated
	case components.RequireApprovalUnionTypeRequireApprovalNever:
		// requireApprovalUnion.RequireApprovalNever is populated
	case components.RequireApprovalUnionTypeAny:
		// requireApprovalUnion.Any is populated
}
```
