---
title: CMWaterSubmersionManager
framework: coremotion
role: symbol
role_heading: Class
path: coremotion/cmwatersubmersionmanager
---

# CMWaterSubmersionManager

An object for managing the collection of pressure and temperature data during submersion.

## Declaration

```swift
class CMWaterSubmersionManager
```

## Mentioned in

Accessing submersion data

## Overview

Overview Use this class to receive live depth, water pressure, and water temperature data on Apple Watch Ultra. Start by assigning a usage description using the NSMotionUsageDescription key in your app target’s information property list. You also need to include an entitlement to access the live submersion data. To access data for dives with a maximum depth of 6 m, add the Shallow Depth and Pressure capability to your app. For more information, see Adding capabilities to your app. To enable a maximum depth of 40 m, you must apply for the full Submerged Depth and Pressure entitlement. For more information, see Express interest in the Submerged Depth and Pressure API. note: As the wearer approaches the maximum depth, the system sends a measurement with an CMWaterSubmersionMeasurement.DepthState.approachingMaxDepth submersion state. When they pass the maximum depth, it sends a CMWaterSubmersionMeasurement.DepthState.pastMaxDepth state, and if they continue to descent past the maximum depth, it sends a CMWaterSubmersionMeasurement.DepthState.sensorDepthError state. Next, check whether submersion data is available. guard CMWaterSubmersionManager.waterSubmersionAvailable else {     return false } If the waterSubmersionAvailable property is true, instantiate a CMWaterSubmersionManager object and assign a delegate. // Instantiate the submersion manager. submersionManager = CMWaterSubmersionManager()

// Assign the submersion manager delegate. submersionManager.delegate = self Your delegate then begins receiving updates from the system. For more information, see Accessing submersion data.

## Topics

### Setting the delegate

- [delegate](coremotion/cmwatersubmersionmanager/delegate.md)

### Checking availability and authorization

- [waterSubmersionAvailable](coremotion/cmwatersubmersionmanager/watersubmersionavailable.md)
- [authorizationStatus](coremotion/cmwatersubmersionmanager/authorizationstatus.md)

### Accessing the maximum depth

- [maximumDepth](coremotion/cmwatersubmersionmanager/maximumdepth.md)

## Relationships

### Inherits From

- [NSObject](objectivec/nsobject-swift.class.md)

### Conforms To

- [CVarArg](swift/cvararg.md)
- [CustomDebugStringConvertible](swift/customdebugstringconvertible.md)
- [CustomStringConvertible](swift/customstringconvertible.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)
- [NSObjectProtocol](objectivec/nsobjectprotocol.md)

## See Also

### Water submersion

- [Accessing submersion data](coremotion/accessing-submersion-data.md)
- [CMWaterSubmersionManagerDelegate](coremotion/cmwatersubmersionmanagerdelegate.md)
- [CMWaterSubmersionEvent](coremotion/cmwatersubmersionevent.md)
- [CMWaterSubmersionMeasurement](coremotion/cmwatersubmersionmeasurement.md)
- [CMWaterTemperature](coremotion/cmwatertemperature.md)
