Skip to content

Latest commit

 

History

History
109 lines (83 loc) · 10.7 KB

Org.OData.Aggregation.V1.md

File metadata and controls

109 lines (83 loc) · 10.7 KB

Aggregation Vocabulary

Namespace: Org.OData.Aggregation.V1

Terms to describe which data in a given entity model can be aggregated, and how.

Terms

Term Type Description
ApplySupported ApplySupportedType This structured type, entity set or entity container supports the $apply system query option
Groupable (Deprecated) Tag Deprecated in favor of ApplySupported/GroupableProperties
Aggregatable (Deprecated) Tag Deprecated in favor of ApplySupported/AggregatableProperties
CustomAggregate String Dynamic property that can be used in the aggregate transformation

This term MUST be applied with a Qualifier, the Qualifier value is the name of the dynamic property. The value of the annotation MUST be the qualified name of a primitive type. The aggregated value will be of that type.

ContextDefiningProperties [PropertyPath] The annotated property or custom aggregate is only well-defined in the context of these properties

The context-defining properties need either be part of the result entities, or be restricted to a single value by a pre-filter operation. Examples are postal codes within a country, or monetary amounts whose context is the unit of currency.

LeveledHierarchy [PropertyPath] Defines a leveled hierarchy by defining an ordered list of properties in the hierarchy
RecursiveHierarchy RecursiveHierarchyType Defines a recursive hierarchy.
AvailableOnAggregates AvailableOnAggregatesType This action or function is available on aggregated entities if the RequiredProperties are still defined

Functions

Function Signature Description
isroot Entity: EntityType, Hierarchy: String → Boolean Returns true, if and only if the value of the node property of the specified hierarchy is the root of the hierarchy
isdescendant Entity: EntityType, Hierarchy: String, Node: PrimitiveType, MaxDistance: Int16? → Boolean Returns true, if and only if the value of the node property of the specified hierarchy is a descendant of the given parent node with a distance of less than or equal to the optionally specified maximum distance
isancestor Entity: EntityType, Hierarchy: String, Node: PrimitiveType, MaxDistance: Int16? → Boolean Returns true, if and only if the value of the node property of the specified hierarchy is an ancestor of the given child node with a distance of less than or equal to the optionally specified maximum distance
issibling Entity: EntityType, Hierarchy: String, Node: PrimitiveType → Boolean Returns true, if and only if the value of the node property of the specified hierarchy has the same parent node as the specified node
isleaf Entity: EntityType, Hierarchy: String → Boolean Returns true, if and only if the value of the node property of the specified hierarchy has no descendants
Property Type Description
Transformations [String] Transformations that can be used in $apply
CustomAggregationMethods [String] Qualified names of custom aggregation methods that can be used in aggregate(...with...)
Rollup RollupType The service supports rollup hierarchies in a groupby transformation
PropertyRestrictions (Deprecated) Boolean Deprecated since Groupable and Aggregatable are deprecated
GroupableProperties [PropertyPath] Properties supported by the groupby transformation. Setting this collection implies that PropertyRestrictions is true
AggregatableProperties [AggregatablePropertyType] Properties supported by the aggregate transformation. Setting this collection implies that PropertyRestrictions is true
Property Type Description
Property PropertyPath Aggregatable property
SupportedAggregationMethods [String] Standard and custom aggregation methods than can be applied to the property. If omitted, all aggregation methods can be applied
RecommendedAggregationMethod String? Recommended method for aggregating values of the property

The number of rollup operators allowed in a groupby transformation

Member Value Description
None 0 No rollup support
SingleHierarchy 1 Only one rollup operator per groupby
MultipleHierarchies 2 Full rollup support
Property Type Description
NodeProperty PropertyPath Property holding the hierarchy node value
ParentNavigationProperty NavigationPropertyPath Property for navigating to the parent node
DistanceFromRootProperty PropertyPath? Property holding the number of edges between the node and the root node
IsLeafProperty PropertyPath? Property indicating whether the node is a leaf of the hierarchy
Property Type Description
RequiredProperties [PropertyPath] Properties required to apply this action or function

Aggregation capabilities on a navigation path

Property Type Description
NavigationProperty NavigationPropertyPath? Navigation properties can be navigated
Navigability NavigationType? Supported navigability of this navigation property
FilterFunctions [String] List of functions and operators supported in filter expressions

If not specified, null, or empty, all functions and operators may be attempted.

FilterRestrictions FilterRestrictionsType? Restrictions on filter expressions
SearchRestrictions SearchRestrictionsType? Restrictions on search expressions
SortRestrictions SortRestrictionsType? Restrictions on orderby expressions
TopSupported Boolean Supports $top
SkipSupported Boolean Supports $skip
SelectSupport SelectSupportType? Support for $select
IndexableByKey Boolean Supports key values according to OData URL conventions
InsertRestrictions InsertRestrictionsType? Restrictions on insert operations
DeepInsertSupport DeepInsertSupportType? Deep Insert Support of the annotated resource (the whole service, an entity set, or a collection-valued resource)
UpdateRestrictions UpdateRestrictionsType? Restrictions on update operations
DeepUpdateSupport DeepUpdateSupportType? Deep Update Support of the annotated resource (the whole service, an entity set, or a collection-valued resource)
DeleteRestrictions DeleteRestrictionsType? Restrictions on delete operations
OptimisticConcurrencyControl Boolean Data modification (including insert) along this navigation property requires the use of ETags
ReadRestrictions ReadRestrictionsType? Restrictions for retrieving entities
ApplySupported ApplySupportedType? Support for $apply
CustomAggregates [CustomAggregateType] Supported custom aggregates
Property Type Description
Name String Name of the dynamic property that can be used in the aggregate transformation
Type String Qualified name of a primitive type. The aggregated value will be of that type