<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "macCatalyst: -",
    "macOS: -",
    "visionOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "DeviceDiscoveryExtension",
  "identifier" : "/documentation/DeviceDiscoveryExtension/DDDevice/Protocol-swift.enum",
  "metadataVersion" : "0.1.0",
  "role" : "Enumeration",
  "symbol" : {
    "kind" : "Enumeration",
    "modules" : [
      "DeviceDiscoveryExtension"
    ],
    "preciseIdentifier" : "c:@E@DDDeviceProtocol"
  },
  "title" : "DDDevice.Protocol"
}
-->

# DDDevice.Protocol

An identifier for the manner in which an app interacts with a device.

```
enum `Protocol`
```

## Overview

The device ([`DDDevice`](/documentation/DeviceDiscoveryExtension/DDDevice)) [`protocol`](/documentation/DeviceDiscoveryExtension/DDDevice/protocol-swift.property) property is of this type.

## Topics

### Indicating a device protocol

[`case dial`](/documentation/DeviceDiscoveryExtension/DDDevice/Protocol-swift.enum/dial)

A protocol for client devices that stream media to a TV or set-top box.

[`case invalid`](/documentation/DeviceDiscoveryExtension/DDDevice/Protocol-swift.enum/invalid)

A default value for a device protocol.

### Initializers

[`init?(rawValue: Int)`](/documentation/DeviceDiscoveryExtension/DDDevice/Protocol-swift.enum/init(rawValue:))

## Relationships

### Conforms To

[`BitwiseCopyable`](/documentation/Swift/BitwiseCopyable)

[`RawRepresentable`](/documentation/Swift/RawRepresentable)

[`Sendable`](/documentation/Swift/Sendable)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`Hashable`](/documentation/Swift/Hashable)

[`Equatable`](/documentation/Swift/Equatable)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)