Skip to main content

Block Model API

Version: 1.28.0

Check for deltas

POST
/blockmodel/orgs/{org_id}/workspaces/{workspace_id}/block-models/{bm_id}/versions/{version_id}/delta

Checks if there have been any changes to the block model within a given bounding box, between two specified versions.

Changes are searched for within a range of versions. The first version searched for changes is the version after version_id. The last version that is searched is the version that is specified by end_version_id (inclusive), or if end_version_id isn't specified, the latest version of the block model.

This request only checks for updates or deletions for specified columns. The columns are specified as list of column_id UUIDs or a wildcard ("*"), for all columns that exist within the version_id version (the starting version). Using column titles is not supported on this endpoint.

For this endpoint, changes that are considered are:

  • Addition of any new columns, regardless of the columns specified in this request
  • Deletions of any of the columns specified
  • Updates to any of the columns specified, within the given bounding box. When block models are updated, a bounding box that encloses all updated blocks is computed. Only updates that have a bounding box that intersects with the specified bounding box are included.

Column renames aren't considered as part of this and they do not count as a change.

If no changes are found, then the response will have a status code of 304, with no content in the response.

If there are changes found, then the verbose flag inside the request body changes the response. If verbose is false, then the response body will be empty. If verbose is true, then the response body will contain information about the difference in versions. For clarity, if no changes are found, then the verbose flag does nothing, as in that case the system will always return a 304 with no content.

All workspace roles can use this endpoint.

Request

Path parameters

Example: "3e9ce8de-f6ba-4920-8c6e-0882e90f0ed7"

ID of the version of the block model this call is scoped to. Represented as a v4 UUID.

Example: "860be2f5-fe06-4c1b-ac8b-7d34d2b6d2ef"

ID of the workspace this call is scoped to. Represented as a v4 UUID.

Example: "bf1a040c-8c58-4bc2-bec2-c5ae7de8bd84"

ID of the organization this call is scoped to. Represented as a v4 UUID.

Example: "e3c277c2-edc6-4a7a-8380-251dd19231f2"

ID of the block model this call is scoped to. Represented as a v4 UUID.

Body parameters
Required

Bounding box within which changes are searched for.

Minimum and maximum values for the i column in the file

Maximum value for the column

Minimum value for the column

Minimum and maximum values for the j column in the file

Maximum value for the column

Minimum value for the column

Minimum and maximum values for the k column in the file

Maximum value for the column

Minimum value for the column

Minimum and maximum values for the x column in the file

Maximum value for the column

Minimum value for the column

Minimum and maximum values for the y column in the file

Maximum value for the column

Minimum value for the column

Minimum and maximum values for the z column in the file

Maximum value for the column

Minimum value for the column

Example: ["*"]

List of column IDs to consider when checking for column updates or deletions. Also accepts ['*'], which will consider all columns.

Last version to search for changes in. Any versions newer than this are not searched for changes. If not supplied, changes are searched for within all version beyond the start version, up to and including the latest version of the block model.

If there are changes, whether to return details about such changes or not.

{
"bbox": {
"i_minmax": {
"max": 0,
"min": 0
},
"j_minmax": {
"max": 0,
"min": 0
},
"k_minmax": {
"max": 0,
"min": 0
}
},
"columns": [
"string"
],
"end_version_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"verbose": false
}

Responses

200

Successful Response

Response Get Deltas For Block ModelDeltaResponseData | null
{
"delete_deltas": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
],
"new_deltas": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
],
"update_deltas": [
"3fa85f64-5717-4562-b3fc-2c963f66afa6"
],
"version_data": [
{
"bbox": {
"i_minmax": {
"max": 0,
"min": 0
},
"j_minmax": {
"max": 0,
"min": 0
},
"k_minmax": {
"max": 0,
"min": 0
}
},
"mapping": {
"columns": [
{
"col_id": "string",
"data_type": "Boolean",
"title": "string",
"unit_id": "string"
}
]
},
"update_columns": {
"delete": [
"string"
],
"new": [
{
"col_id": "string",
"data_type": "Boolean",
"title": "string",
"unit_id": "string"
}
],
"rename": [
{
"col_id": "string",
"new_title": "string"
}
],
"update": [
"string"
],
"update_metadata": [
{
"col_id": "string",
"values": {
"title": "string",
"unit_id": "string"
}
}
]
},
"version_id": 0,
"version_uuid": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
}
]
}

304

Not Modified

401

Unauthorized

Example: "Invalid authentication credentials"

A human-readable explanation specific to this occurrence of the problem.

Example: 401

The HTTP status code generated by the origin server for this occurrence of the problem.

Example: "Invalid authentication credentials"

A short, human-readable summary of the problem type.

Example: "https://seequent.com/error-codes/block-model-service/auth/unauthorized"

A URI reference that is the primary identifier of the problem type.

{
"detail": "string",
"status": 0,
"title": "string",
"type": "string"
}

403

Forbidden

Example: "Permission denied"

A human-readable explanation specific to this occurrence of the problem.

Example: 403

The HTTP status code generated by the origin server for this occurrence of the problem.

Example: "Permission Denied"

A short, human-readable summary of the problem type.

Example: "https://seequent.com/error-codes/block-model-service/auth/forbidden"

A URI reference that is the primary identifier of the problem type.

{
"detail": "string",
"status": 0,
"title": "string",
"type": "string"
}

404

Not Found

Example: "Block model 11111111-2222-3333-4444-555555555555 not found."

A human-readable explanation specific to this occurrence of the problem.

Example: 404

The HTTP status code generated by the origin server for this occurrence of the problem.

Example: "Resource Not Found"

A short, human-readable summary of the problem type.

Example: "https://seequent.com/error-codes/block-model-service/not-found"

A URI reference that is the primary identifier of the problem type.

{
"detail": "string",
"status": 0,
"title": "string",
"type": "string"
}

410

Gone

Example: "The requested resource was not found."

A human-readable explanation specific to this occurrence of the problem.

Example: 410

The HTTP status code generated by the origin server for this occurrence of the problem.

Example: "Workspace soft deleted."

A short, human-readable summary of the problem type.

Example: "https://seequent.com/error-codes/workspace/gone"

A URI reference that is the primary identifier of the problem type.

{
"detail": "string",
"status": 0,
"title": "string",
"type": "string"
}

422

Unprocessable Content

Example: "1 validation error for 'HTTP Request' body -> block_rotation value is not a valid list (type=type_error.list)"

A human-readable explanation specific to this occurrence of the problem.

Example: 422

The HTTP status code generated by the origin server for this occurrence of the problem.

Example: "1 validation error for Request"

A short, human-readable summary of the problem type.

Example: "https://seequent.com/error-codes/block-model-service/validation"

A URI reference that is the primary identifier of the problem type.

{
"detail": "string",
"status": 0,
"title": "string",
"type": "string"
}

500

Internal Server Error

Example: "An error occurred"

A human-readable explanation specific to this occurrence of the problem.

Example: 500

The HTTP status code generated by the origin server for this occurrence of the problem.

Example: "Service Error"

A short, human-readable summary of the problem type.

Example: "https://seequent.com/error-codes/block-model-service/service"

A URI reference that is the primary identifier of the problem type.

{
"detail": "string",
"status": 0,
"title": "string",
"type": "string"
}