Object Types¶
Object types define the schema categories in the metaverse (e.g. person, group). Each object type has attributes mapped to it and configurable deletion rules that control what happens when all connector space objects are disconnected.
Attribute Mappings¶
Attributes are mapped to object types to define which fields are available on objects of that type. For example, mapping displayName and mail to the person type means all person objects can hold those values.
Attribute-to-object-type mappings are managed via the Attributes API, not the Object Types API. To add or remove attributes from an object type:
- Add an attribute to an object type: update the attribute and include this object type's ID in the
objectTypeIdsarray - Remove an attribute from an object type: update the attribute and exclude this object type's ID from the
objectTypeIdsarray - Create a new attribute mapped to this type: create the attribute with this object type's ID in
objectTypeIds - View which attributes are mapped: retrieve the object type to see the
attributesarray
Note
You cannot remove an attribute mapping from an object type if metaverse objects of that type have values stored for the attribute. See Data Integrity Rules for details.
The Object Type Object¶
{
"id": 1,
"name": "person",
"pluralName": "people",
"created": "2026-01-10T09:00:00Z",
"builtIn": true,
"icon": "Person",
"deletionRule": "WhenLastConnectorDisconnected",
"deletionGracePeriod": "7.00:00:00",
"deletionTriggerConnectedSystemIds": [],
"attributes": [
{
"id": 1,
"name": "displayName",
"type": "Text",
"attributePlurality": "SingleValued",
"builtIn": true
},
{
"id": 2,
"name": "mail",
"type": "Text",
"attributePlurality": "SingleValued",
"builtIn": false
}
]
}
Attributes¶
| Field | Type | Description |
|---|---|---|
id |
integer | Unique identifier |
name |
string | Singular name (e.g. person) |
pluralName |
string | Plural name (e.g. people) |
created |
datetime | UTC creation timestamp |
builtIn |
boolean | Whether this is a built-in type (cannot be deleted) |
icon |
string, nullable | MudBlazor icon name for the UI |
deletionRule |
string | Deletion behaviour (see below) |
deletionGracePeriod |
timespan, nullable | Grace period before deletion (e.g. "7.00:00:00" for 7 days) |
deletionTriggerConnectedSystemIds |
array | Connected system IDs that trigger deletion (for WhenAuthoritativeSourceDisconnected) |
attributes |
array | Attributes mapped to this object type (detail view only) |
Deletion Rules¶
| Rule | Description |
|---|---|
Manual |
Objects are never automatically deleted; manual intervention required |
WhenLastConnectorDisconnected |
Delete when all connector space objects are disconnected (after optional grace period) |
WhenAuthoritativeSourceDisconnected |
Delete when any authoritative source disconnects (requires deletionTriggerConnectedSystemIds) |
List Object Types¶
Returns a paginated list of object types.
Query Parameters¶
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
page |
integer | No | 1 |
Page number |
pageSize |
integer | No | 25 |
Items per page |
includeChildObjects |
boolean | No | false |
Include child object counts |
Examples¶
Response¶
Returns 200 OK with a paginated list of object type summaries.
Retrieve an Object Type¶
Returns the full details of an object type, including all attributes mapped to it.
Examples¶
Errors¶
| Status | Code | Description |
|---|---|---|
401 |
UNAUTHORISED |
Authentication required |
403 |
FORBIDDEN |
Insufficient permissions (Administrator role required) |
404 |
NOT_FOUND |
Object type does not exist |
Update an Object Type¶
Updates the deletion rules for an object type. Only deletion-related properties can be changed through this endpoint; the name and built-in status cannot be modified. To manage which attributes are mapped to this type, use the Attributes API.
Request Body¶
| Parameter | Type | Required | Description |
|---|---|---|---|
deletionRule |
string | No | Manual, WhenLastConnectorDisconnected, or WhenAuthoritativeSourceDisconnected |
deletionGracePeriod |
string | No | Grace period as a timespan (e.g. "7.00:00:00" for 7 days, "00:00:00" for immediate) |
deletionTriggerConnectedSystemIds |
array | Conditional | Required when deletion rule is WhenAuthoritativeSourceDisconnected |
Examples¶
# Set 7-day grace period before deletion
curl -X PUT https://jim.example.com/api/v1/metaverse/object-types/1 \
-H "X-Api-Key: jim_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"deletionRule": "WhenLastConnectorDisconnected",
"deletionGracePeriod": "7.00:00:00"
}'
# Delete when HR system disconnects
curl -X PUT https://jim.example.com/api/v1/metaverse/object-types/1 \
-H "X-Api-Key: jim_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"deletionRule": "WhenAuthoritativeSourceDisconnected",
"deletionTriggerConnectedSystemIds": [1],
"deletionGracePeriod": "30.00:00:00"
}'
# Disable automatic deletion
curl -X PUT https://jim.example.com/api/v1/metaverse/object-types/1 \
-H "X-Api-Key: jim_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"deletionRule": "Manual"
}'
Connect-JIM -Url "https://jim.example.com" -ApiKey "jim_xxxxxxxxxxxx"
# Set 7-day grace period
Set-JIMMetaverseObjectType -Id 1 `
-DeletionRule WhenLastConnectorDisconnected `
-DeletionGracePeriod ([TimeSpan]::FromDays(7))
# Delete when HR system disconnects, 30-day grace period
Set-JIMMetaverseObjectType -Id 1 `
-DeletionRule WhenAuthoritativeSourceDisconnected `
-DeletionTriggerConnectedSystemIds @(1) `
-DeletionGracePeriod ([TimeSpan]::FromDays(30))
# Disable automatic deletion
Set-JIMMetaverseObjectType -Name "person" -DeletionRule Manual
Errors¶
| Status | Code | Description |
|---|---|---|
400 |
VALIDATION_ERROR |
Invalid configuration (e.g. missing trigger IDs for authoritative source rule) |
401 |
UNAUTHORISED |
Authentication required |
403 |
FORBIDDEN |
Insufficient permissions (Administrator role required) |
404 |
NOT_FOUND |
Object type does not exist |