---
title: AppUnionValue
framework: appintents
role: symbol
role_heading: Protocol
path: appintents/appunionvalue
---

# AppUnionValue

A protocol that provides nominal type identity and metadata for union values.

## Declaration

```swift
protocol AppUnionValue : TypeDisplayRepresentable
```

## Overview

Overview Union values conforming to this protocol can be used as Shortcuts parameters with rich metadata support, enabling appropriate picker UI and parameter summaries. The @UnionValue macro automatically generates conformance to this protocol. You can provide custom metadata by implementing the protocol requirements in an extension. Example: @UnionValue enum Reaction {     case tapback(Tapback)     case text(String) }

extension Reaction {     static var typeDisplayRepresentation: TypeDisplayRepresentation {         "Reaction"     }

static let caseDisplayRepresentations: [Cases: DisplayRepresentation] = [         .tapback: "Tapback",         .text: "Text Reaction"     ] }

## Topics

### Associated Types

- [Cases](appintents/appunionvalue/cases.md)

### Type Properties

- [caseDisplayRepresentations](appintents/appunionvalue/casedisplayrepresentations.md)

## Relationships

### Inherits From

- [TypeDisplayRepresentable](appintents/typedisplayrepresentable.md)

## See Also

### App entity types

- [AppEntity](appintents/appentity.md)
- [FileEntity](appintents/fileentity.md)
- [IndexedEntity](appintents/indexedentity.md)
- [SyncableEntity](appintents/syncableentity.md)
- [TransientAppEntity](appintents/transientappentity.md)
- [UniqueAppEntity](appintents/uniqueappentity.md)
- [OwnershipProvidingEntity](appintents/ownershipprovidingentity.md)
- [UnionValue()](appintents/unionvalue().md)
- [AppUnionValueCasesProviding](appintents/appunionvaluecasesproviding.md)
