<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: 27.0.0 -",
    "macOS: 27.0.0 -",
    "tvOS: 27.0.0 -",
    "visionOS: 27.0.0 -",
    "watchOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Foundation",
  "identifier" : "/documentation/Foundation/ProgressManager/Property",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "Foundation"
    ],
    "preciseIdentifier" : "s:10Foundation15ProgressManagerC8PropertyP"
  },
  "title" : "ProgressManager.Property"
}
-->

# ProgressManager.Property

A type that conveys additional task-specific information on progress.

```
protocol Property : SendableMetatype
```

## Overview

The `Property` protocol defines custom properties that can be associated with progress tracking.
These properties allow you to store and aggregate additional information alongside the
standard progress metrics such as `totalCount` and `completedCount`.

## Topics

### Associated Types

[`associatedtype Summary : Equatable, Sendable`](/documentation/Foundation/ProgressManager/Property/Summary)

The type used for aggregated summaries of this property.

[`associatedtype Value : Equatable, Sendable`](/documentation/Foundation/ProgressManager/Property/Value)

The type used for individual values of this property.

### Type Properties

[`static var defaultSummary: Self.Summary`](/documentation/Foundation/ProgressManager/Property/defaultSummary)

The default summary value for this property type.

[`static var defaultValue: Self.Value`](/documentation/Foundation/ProgressManager/Property/defaultValue)

The default value to return when property is not set to a specific value.

[`static var key: String`](/documentation/Foundation/ProgressManager/Property/key)

A unique identifier for this property type.

### Type Methods

[`static func finalSummary(Self.Summary, Self.Summary) -> Self.Summary`](/documentation/Foundation/ProgressManager/Property/finalSummary(_:_:))

Determines how to handle summary data when a progress manager is deinitialized.

[`static func merge(Self.Summary, Self.Summary) -> Self.Summary`](/documentation/Foundation/ProgressManager/Property/merge(_:_:))

Merges two summary values into a single combined summary.

[`static func reduce(into: inout Self.Summary, value: Self.Value)`](/documentation/Foundation/ProgressManager/Property/reduce(into:value:))

Reduces a property value into an accumulating summary.

## Relationships

### Conforming Types

[`CompletedFileCount-swift.enum`](/documentation/Foundation/ProgressManager/Properties/CompletedFileCount-swift.enum)

[`TotalFileCount-swift.enum`](/documentation/Foundation/ProgressManager/Properties/TotalFileCount-swift.enum)

[`CompletedByteCount-swift.enum`](/documentation/Foundation/ProgressManager/Properties/CompletedByteCount-swift.enum)

[`Throughput-swift.enum`](/documentation/Foundation/ProgressManager/Properties/Throughput-swift.enum)

[`TotalByteCount-swift.enum`](/documentation/Foundation/ProgressManager/Properties/TotalByteCount-swift.enum)

[`EstimatedTimeRemaining-swift.enum`](/documentation/Foundation/ProgressManager/Properties/EstimatedTimeRemaining-swift.enum)

### Inherits From

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

---

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)