Skip to main content

Block Model API

Version: 1.17.0

Request version metadata for a specific block model version

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

Gets the version of the block model bm_id identified by the version_id UUID.

If the include_changes query parameter is set to true, then the response will include the changes made in the update. Returned object will be of type VersionWithChanges, this object extends the Version object to include the field changes. The changes field contains the VersionChanges object.

The fields of the VersionChanges object are as follows:

  • blocks_uploaded: The number of blocks (rows) present in the update file if one was used for the update, null otherwise.
  • total_blocks: The total number of blocks in the block model. Will remain static for regular models, will change for sub-blocked models when the sub-block count changes due to geometry change updates.
  • update_type: Whether the update that created the Version was of type merge or replace; field contains null if the update did not update any blocks.
  • columns:
  • columns->new: List of columns (specified by title) created in the update that created the Version. Empty if the update did not create any columns.
  • columns->deleted: List of columns (specified by title) deleted in the update that created the Version. Empty if the update did not delete any columns.
  • columns->updated: List of columns (specified by title) updated in the update that created the Version. Empty if the update did not update any columns.
  • columns->renamed: List of the ColumnRename object, denoting which columns were renamed in the update the created the version. Empty if the update did not rename any columns. ColumnRename contains the fields: (old_title, new_title).
  • columns->metadata_updated: List of the UpdateMetadataLite object, containing column metadata changes if they were made in the update. This includes the title of the column, the new title, and updated unit ID, respective of what was modified in the update. Empty if the update did not update any column metadata.

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.

Query parameters

Whether or not to include the changes made in the update that created the specified block model version.

Responses

200

Successful Response

Example: 4

Version the update was applied to. This will be the same as parent_version_id, except for updates made by Leapfrog, where it is the current local version when the block model is published. This is null if this is the first version.

Bounding box of data updated between this version and last version. Will be None for the initial version, and updates that only delete and rename columns.

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

ID of the block model

User-supplied comment

When the version was created

User who performed the action that created the version

Example: "kim@example.test"

The primary email address of the user. Can be null if an error occurred while retrieving this information.

Example: "59b73891-5538-4e45-ae67-f8c5b00d7405"

The ID of the user

Example: "Kim Kim"

The full name of the user. Can be null if an error occurred while retrieving this information.

Example: "1234567890"

ID of the Geoscience Object Service object version associated with this block model version

Columns within this version

Example: "618d6339-2fa7-4dfd-9c7f-c0b12016639e"

The ID of the column, a UUID for non-system columns

Capitalized list of supported PyArrow datatypes outlined in https://arrow.apache.org/docs/python/api/datatypes.html.

Timestamp datatype is expected to be used with unit measured in "us" and timezone set to "UTC" inside of parquet column header schema or it won't be accepted; an example for PyArrow binding would look like this: pa.timestamp("us", tz="UTC")

The human-readable label used to identify the column

The ID of the column's unit

Example: 4

Previous version. 0 if this is the first version.

Example: 5

Identifier for the version within a block model as a monotonically increasing integer, where 1 is the version_id for the version created upon creation of the block model.

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

A universally unique identifier for the version

Example: 4

Version the update was applied to. This will be the same as parent_version_id, except for updates made by Leapfrog, where it is the current local version when the block model is published. This is null if this is the first version.

Bounding box of data updated between this version and last version. Will be None for the initial version, and updates that only delete and rename columns.

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

ID of the block model

blocks_uploadedinteger | null
deletedstring[]
Default: []
metadata_updatedarray | null
Default: []
newstring[]
Default: []
Default: []
new_titlestring
old_titlestring
updatedstring[]
Default: []
total_blocksinteger

Behaviour of the update, for blocks that are omitted from the update file.

  • If set to replace, the values for blocks that are omitted will be set to null, for the selected columns. If geometry_change is true, the geometry of any parent block that has no blocks in the update file will be reset to an un-subdivided state.
  • If set to merge, blocks that are omitted will be left unchanged, the values within those blocks will be the same as within the previous version.

This is null if there were no columns updated and geometry_change was not set to false.

User-supplied comment

When the version was created

User who performed the action that created the version

Example: "kim@example.test"

The primary email address of the user. Can be null if an error occurred while retrieving this information.

Example: "59b73891-5538-4e45-ae67-f8c5b00d7405"

The ID of the user

Example: "Kim Kim"

The full name of the user. Can be null if an error occurred while retrieving this information.

Example: "1234567890"

ID of the Geoscience Object Service object version associated with this block model version

Columns within this version

Example: "618d6339-2fa7-4dfd-9c7f-c0b12016639e"

The ID of the column, a UUID for non-system columns

Capitalized list of supported PyArrow datatypes outlined in https://arrow.apache.org/docs/python/api/datatypes.html.

Timestamp datatype is expected to be used with unit measured in "us" and timezone set to "UTC" inside of parquet column header schema or it won't be accepted; an example for PyArrow binding would look like this: pa.timestamp("us", tz="UTC")

The human-readable label used to identify the column

The ID of the column's unit

Example: 4

Previous version. 0 if this is the first version.

Example: 5

Identifier for the version within a block model as a monotonically increasing integer, where 1 is the version_id for the version created upon creation of the block model.

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

A universally unique identifier for the version

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.

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.

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.

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.

422

Unprocessable Entity

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.

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.


© Seequent, The Bentley Subsurface Company