Updates an aggregation property.
Aggregation property defines how the aggregation should be done. There are 3 supported types: GroupBy
, Count
, and Sum
.
GroupBy
aggregation property type splits the data source table into groups that have matching values in the column specified in sourcePropertyName
. If you will not create a GroupBy
property our aggregator will assume that the whole data source table is one group. If you will create multiple GroupBy
properties targeting different data source properties each group will have a unique combination of those properties. See example configuration and output table T3
below.
Count
aggregation property type counts how many rows there are in a group. If the value of property specified in sourcePropertyName
contains a null
value in data source table, the row is still counted.
Sum
aggregation property type sums all values of a single property in a single group.
Examples
Let's say you have this data source table:
Then you have these aggregation table configurations:
- Aggregation properties for table
T1
:
- Aggregation properties for table
T2
:
- Aggregation properties for table
T3
:
Then your aggregated table outputs will look like this:
- Table
T1
:
- Table
T2
:
- Table
T3
:
In the T3
example you can see that groups were created for each unique pair of values in columns A
and B
.
Authentication
Requires Authorization
header with valid Bearer token for scope itwin-platform
.
For more documentation on authorization and how to get access token visit OAUTH2 Authorization page.
Authorization
User must have imodels_write
permission(s) assigned at the Project level. iModel specific permissions may also be applied at the iModel level if iModel level permissions are enabled.
Alternatively the user should be an Organization Administrator for the Organization that owns a given Project or iModel.
An Organization Administrator must have at least one of the following roles assigned in User Management: Account Administrator, Co-Administrator, or CONNECT Services Administrator. For more information about User Management please visit our Bentley Communities Licensing, Cloud, and Web Services wiki page.
Rate limits
All iTwin Platform API operations have a rate limit. For more documentation on that visit Rate limits and quotas page.
Request parameters
Id of the aggregation table set.
Id of the aggregation table.
Id of the aggregation property.
Request headers
OAuth access token with itwin-platform
scope
Setting to application/vnd.bentley.itwin-platform.v1+json
is recommended.
Request body
Aggregation Property (update)
Name of the aggregation property (OData v4 SimpleIdentifier).
Name of a property in data source table to run the aggregation against. For example, if type
is set to Sum
and sourcePropertyName
is set to X
, the aggregator will sum all values of property X
for each group in the data source table. Value of sourcePropertyName
must be OData v4 SimpleIdentifier.
Type of aggregation to run for this property. Possible values: GroupBy
, Count
, Sum
.
Example
{ "propertyName": "RowCount_updated", "sourcePropertyName": "ECClassId_updated", "type": "Sum" }
Response 200 OK
Updated AggregationProperty successfully.
{ "aggregationProperty": { "id": "509c53bd-3cdc-4a18-97aa-8c686a0a1c6f", "propertyName": "RowCount_updated", "sourcePropertyName": "ECClassId_updated", "type": "Sum", "_links": { "datasource": { "href": "https://api.bentley.com/insights/reporting/datasources/imodels/70a3d6d3-5385-4bc3-87c4-b6bf106e1c0a/mappings/f1fe5959-35ab-467e-83b8-a679b722d80f" }, "aggregationTableSet": { "href": "https://api.bentley.com/insights/reporting/datasources/aggregations/5d92982f-dea0-4290-b25c-184bec2ec7d4" }, "aggregationTable": { "href": "https://api.bentley.com/insights/reporting/datasources/aggregations/5d92982f-dea0-4290-b25c-184bec2ec7d4/tables/30a58b49-0290-4c22-8d65-37c11d7c943c" } } } }
Response 401 Unauthorized
This response indicates that request lacks valid authentication credentials. Access token might not been provided, issued by the wrong issuer, does not have required scopes or request headers were malformed.
{ "error": { "code": "HeaderNotFound", "message": "Header Authorization was not found in the request. Access denied." } }
Response 403 Forbidden
The user has insufficient permissions for the requested operation.
{ "error": { "code": "InsufficientPermissions", "message": "The user has insufficient permissions for the requested operation." } }
Response 404 Not Found
Specified AggregationProperty was not found.
{ "error": { "code": "AggregationPropertyNotFound", "message": "Requested AggregationProperty is not available.", "target": "aggregationPropertyId" } }
Response 409 Conflict
AggregationProperty with the same name already exists within the AggregationTable.
{ "error": { "code": "PropertyExists", "message": "Property 'RowCount' already exists.", "target": "propertyName" } }
Response 422 Unprocessable Entity
The 422 (Unprocessable Entity) status code indicates that the request cannot be processed by the server due to a client error (e.g. malformed request syntax).
{ "error": { "code": "InvalidInsightsRequest", "message": "Cannot update AggregationProperty.", "details": [{ "code": "InvalidValue", "message": "Provided 'propertyName' value is not valid. Provided value must be OData V4 SimpleIdentifier.", "target": "propertyName" }] } }
Response 429 Too many requests
This response indicates that the user has sent too many requests in a given amount of time.
{ "error": { "code": "TooManyRequests", "message": "More requests were received than the subscription rate-limit allows." } }
Response headers
The number of requests exceeds the rate-limit for the client subscription.
Aggregation Property type
Type of aggregation to run for this property. Possible values: GroupBy
, Count
, Sum
.
{ "type": "string", "description": "Type of aggregation to run for this property. Possible values: `GroupBy`, `Count`, `Sum`.", "enum": [ "GroupBy", "Count", "Sum" ], "title": "Aggregation Property type" }
Aggregation Property
Defines an output property of aggregation.
The aggregation property's id.
Name of the aggregation property (OData v4 SimpleIdentifier).
Name of a property in data source table to run the aggregation against. For example, if type
is set to Sum
and sourcePropertyName
is set to X
, the aggregator will sum all values of property X
for each group in the data source table. Value of sourcePropertyName
must be OData v4 SimpleIdentifier.
Type of aggregation to run for this property. Possible values: GroupBy
, Count
, Sum
.
{ "title": "Aggregation Property", "type": "object", "description": "Defines an output property of aggregation.", "properties": { "id": { "type": "string", "description": "The aggregation property's id." }, "propertyName": { "type": "string", "description": "Name of the aggregation property (OData v4 SimpleIdentifier)." }, "sourcePropertyName": { "type": "string", "description": "Name of a property in data source table to run the aggregation against. For example, if `type` is set to `Sum` and `sourcePropertyName` is set to `X`, the aggregator will sum all values of property `X` for each group in the data source table. Value of `sourcePropertyName` must be OData v4 SimpleIdentifier." }, "type": { "type": "string", "description": "Type of aggregation to run for this property. Possible values: `GroupBy`, `Count`, `Sum`.", "enum": [ "GroupBy", "Count", "Sum" ], "title": "Aggregation Property type", "$ref": "#/components/schemas/AggregationProperty-type" }, "_links": { "type": "object", "description": "Contains contextual hyperlinks to related data.", "properties": { "datasource": { "$ref": "#/components/schemas/Link", "description": "URL pointing to the related data source." }, "aggregationTableSet": { "$ref": "#/components/schemas/Link", "description": "URL pointing to the parent aggregation table set." }, "aggregationTable": { "$ref": "#/components/schemas/Link", "description": "URL point to the parent aggregation table." } } } }, "additionalProperties": false }
Aggregation Property (update) type
Type of aggregation to run for this property. Possible values: GroupBy
, Count
, Sum
.
{ "type": "string", "description": "Type of aggregation to run for this property. Possible values: `GroupBy`, `Count`, `Sum`.", "enum": [ "GroupBy", "Count", "Sum" ], "title": "Aggregation Property (update) type" }
Aggregation Property (update)
Properties of the aggregation property to be updated.
Name of the aggregation property (OData v4 SimpleIdentifier).
Name of a property in data source table to run the aggregation against. For example, if type
is set to Sum
and sourcePropertyName
is set to X
, the aggregator will sum all values of property X
for each group in the data source table. Value of sourcePropertyName
must be OData v4 SimpleIdentifier.
Type of aggregation to run for this property. Possible values: GroupBy
, Count
, Sum
.
{ "title": "Aggregation Property (update)", "type": "object", "description": "Properties of the aggregation property to be updated.", "properties": { "propertyName": { "type": "string", "description": "Name of the aggregation property (OData v4 SimpleIdentifier)." }, "sourcePropertyName": { "type": "string", "description": "Name of a property in data source table to run the aggregation against. For example, if `type` is set to `Sum` and `sourcePropertyName` is set to `X`, the aggregator will sum all values of property `X` for each group in the data source table. Value of `sourcePropertyName` must be OData v4 SimpleIdentifier." }, "type": { "type": "string", "description": "Type of aggregation to run for this property. Possible values: `GroupBy`, `Count`, `Sum`.", "enum": [ "GroupBy", "Count", "Sum" ], "title": "Aggregation Property (update) type", "$ref": "#/components/schemas/AggregationPropertyUpdate-type" } }, "additionalProperties": false }
Aggregation Property Response
Container for an AggregationProperty object.
{ "title": "Aggregation Property Response", "type": "object", "description": "Container for an AggregationProperty object.", "properties": { "aggregationProperty": { "$ref": "#/components/schemas/AggregationProperty", "description": "Properties of AggregationProperty." } }, "additionalProperties": false }
Link
Hyperlink container.
Hyperlink to the specific entity.
{ "title": "Link", "type": "object", "description": "Hyperlink container.", "properties": { "href": { "type": "string", "description": "Hyperlink to the specific entity." } }, "additionalProperties": false }
Error
Contains error information.
One of a server-defined set of error codes.
A human-readable representation of the error.
The target of the error.
{ "type": "object", "description": "Contains error information.", "properties": { "code": { "type": "string", "description": "One of a server-defined set of error codes." }, "message": { "type": "string", "description": "A human-readable representation of the error." }, "target": { "type": "string", "description": "The target of the error.", "nullable": true } }, "required": [ "code", "message" ], "additionalProperties": true }
Error Response
Gives details for an error that occurred while handling the request. Note that clients MUST NOT assume that every failed request will produce an object of this schema, or that all of the properties in the response will be non-null, as the error may have prevented this response from being constructed.
{ "type": "object", "title": "Error Response", "description": "Gives details for an error that occurred while handling the request. Note that clients MUST NOT assume that every failed request will produce an object of this schema, or that all of the properties in the response will be non-null, as the error may have prevented this response from being constructed.", "properties": { "error": { "description": "Error information.", "$ref": "#/components/schemas/Error" } }, "required": [ "error" ], "additionalProperties": false }
Was this page helpful?