Behavior reference
- Last UpdatedApr 14, 2026
- 2 minute read
|
Behavior |
Detail |
|---|---|
|
Supported aggregations |
Count, Min, Max, Average, Sum. |
|
Property types supported |
Integer, Long, Float, Double, TimeSpan (scalars), and their array equivalents (Integers, Longs, Floats, Doubles, TimeSpans). |
|
DateTime is NOT summarizable |
DateTime is order-comparable (it can be used for Min/Max in range queries), but it is excluded from the summarizable set. A property with a DateTime value returns SummaryError with UnableToSummarizeNonNumericProperty. |
|
Other unsupported types |
Bool, BoolArray, String, StringArray, Enum, EnumArray, Blob, and DateTimeArray all produce the same UnableToSummarizeNonNumericProperty error. |
|
Non-numeric properties |
Cannot be summarized. Returns SummaryError with detail UnableToSummarizeNonNumericProperty. Partial results are still returned for valid properties. |
|
PropertyId is required |
A property ID must always be provided. Component-only summaries (TypeId without PropertyId) are not supported. |
|
Root vs component scoping |
When a PropertyId exists at both root and component level, providing only PropertyId targets the root. Providing PropertyId + TypeId targets the component. They never overlap. |
|
No cross-component aggregation |
There is no "loose typing" mode. Omitting TypeId targets the root only — it does not aggregate across all components sharing that PropertyId. To summarize a component property you must supply its TypeId. |
|
Case insensitivity |
PropertyId, TypeId, and RelationshipId are matched case-insensitively throughout. Group-by values themselves are also treated as case-insensitive (for example, "alice" and "ALICE" land in the same group). |
|
Resources excluded from a group |
A resource is excluded from a group if it lacks the group-by property (property group) or lacks the relationship target (relationship group). Such resources do not contribute to that group's Count. |
|
Active events excluded from duration |
Open-ended events (no end time, or end time at DateTime.MaxValue) are counted in ResourceSummary.Count but excluded from duration (TimeSpan) aggregation. |
|
Partial authorization |
Resources the caller cannot read are silently excluded from aggregates. The count of excluded resources is reported in Metrics.UnauthorizedGroupCount. |
|
SummaryError.Count |
Reports how many individual resource instances encountered the error (for example, how many had a non-numeric value for the property). |
|
Response ordering |
The order of Summaries in the response is deterministic for a given dataset and group configuration, but consumers should not rely on a specific sort order. |