Portal Backend API
Requests need a Bearer token. See Authentication for how to get a token.
API host
External clients call the API on the management host:
https://management.<your-domain>/v1
All paths start with /v1.
Typical responses
| Status | Meaning |
|---|---|
401 Unauthorized | The token is missing, expired or invalid, comes from another realm, or does not come from the api-access client |
403 Forbidden | The token is valid, but the user does not have the permission for the request. The gateway also returns 403 for a path under /v1 that the API does not have |
404 Not Found | The requested resource does not exist, or the path does not start with /v1 |
When the gateway rejects a token, the 401 response is an HTML page, not JSON.
OpenAPI reference
CIVITAS/CORE Data Management API (2.0.0)
Download OpenAPI specification:Download
Smart city data management REST API
REST API for the CIVITAS/CORE smart city data management platform. Manages datasets, data sources, data structures, users, groups, roles, and permissions.
List all assignments
Returns a paginated, filterable list of assignments. Supports sorting and specification-based filtering.
Authorizations:
query Parameters
| page | integer >= 0 Default: 0 Zero-based page index (0..N) |
| size | integer >= 1 Default: 20 The size of the page to be returned |
| sort | Array of strings Default: "createdAt,DESC" Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. |
| id | string Example: id=1,2,3 Filter by one or more IDs (comma-separated). |
| createdAtFrom | string <date-time> Example: createdAtFrom=2024-01-01T00:00:00Z Filter by creation date greater than or equal to this value (ISO 8601). |
| createdAtTo | string <date-time> Example: createdAtTo=2024-12-31T23:59:59Z Filter by creation date less than or equal to this value (ISO 8601). |
| modifiedAtFrom | string <date-time> Example: modifiedAtFrom=2024-01-01T00:00:00Z Filter by modification date greater than or equal to this value (ISO 8601). |
| modifiedAtTo | string <date-time> Example: modifiedAtTo=2024-12-31T23:59:59Z Filter by modification date less than or equal to this value (ISO 8601). |
| roleId | string Example: roleId=role-123 Filter by role ID (exact match). |
| userId | string Example: userId=user-456 Filter by user ID (exact match). |
| groupId | string Example: groupId=group-789 Filter by group ID (exact match). |
| scopeId | string Example: scopeId=scope-101112 Filter by scope ID (exact match). |
| scopeType | string Example: scopeType=DATASET Filter by scope type (exact match). One of: TENANT, DATASET, DATASOURCE, DATASTRUCTURE, DATAPOOL. |
| roleType | string Example: roleType=DATA Filter by role type (exact match). One of: SYSTEM, DATA. |
| q | string Example: q=admin Search in role name, role description, or group name (partial match, case-insensitive). |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "content": [
- {
- "createdAt": "2025-06-15T10:30:00",
- "group": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "role": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "readonly": true,
- "roleType": "SYSTEM"
}, - "scope": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "scopeType": "DATASET"
}
], - "empty": true,
- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "pageable": {
- "offset": 0,
- "pageNumber": 0,
- "pageSize": 0,
- "paged": true,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "unpaged": true
}, - "size": 0,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "totalElements": 0,
- "totalPages": 0
}Create a new assignment
Creates a new assignment and returns it with a Location header pointing to the new assignment URI.
Authorizations:
Request Body schema: application/jsonrequired
| groupId required | string <uuid> |
| roleId required | string <uuid> |
| scopeId | string <uuid> |
| scopeType | string Enum: "TENANT" "DATASTRUCTURE" "DATASOURCE" "DATASET" "DATAPOOL" |
Responses
Request samples
- Payload
{- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391",
- "scopeId": "65fafe40-a220-4dd7-8724-4598b81c0643",
- "scopeType": "TENANT"
}Response samples
- 201
- 400
- 401
- 403
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "group": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "role": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "readonly": true,
- "roleType": "SYSTEM"
}, - "scope": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "scopeType": "DATASET"
}Delete a assignment
Permanently deletes a assignment by its UUID.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 401
- 403
- 404
- 409
- 500
{- "detail": "Authentication required",
- "instance": "/v1/datasets",
- "status": 401,
- "title": "Unauthorized",
- "type": "urn:civitas:error:UNAUTHORIZED"
}Get assignment by ID
Returns a single assignment identified by its UUID.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "group": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "role": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "readonly": true,
- "roleType": "SYSTEM"
}, - "scope": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "scopeType": "DATASET"
}List all groups
Returns a paginated, filterable list of groups. Supports sorting and specification-based filtering.
Authorizations:
query Parameters
| page | integer >= 0 Default: 0 Zero-based page index (0..N) |
| size | integer >= 1 Default: 20 The size of the page to be returned |
| sort | Array of strings Default: "createdAt,DESC" Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. |
| id | string Example: id=1,2,3 Filter by one or more IDs (comma-separated). |
| createdAtFrom | string <date-time> Example: createdAtFrom=2024-01-01T00:00:00Z Filter by creation date greater than or equal to this value (ISO 8601). |
| createdAtTo | string <date-time> Example: createdAtTo=2024-12-31T23:59:59Z Filter by creation date less than or equal to this value (ISO 8601). |
| modifiedAtFrom | string <date-time> Example: modifiedAtFrom=2024-01-01T00:00:00Z Filter by modification date greater than or equal to this value (ISO 8601). |
| modifiedAtTo | string <date-time> Example: modifiedAtTo=2024-12-31T23:59:59Z Filter by modification date less than or equal to this value (ISO 8601). |
| name | string Example: name=Engineering Filter by name (partial match, case-insensitive). |
| description | string Example: description=Development team Filter by description (partial match, case-insensitive). |
| contactUserId | string Example: contactUserId=user-123 Filter by contact user ID (exact match). |
| memberIds | string Example: memberIds=user-456 Filter by member user ID(s), comma-separated. |
| q | string Example: q=team Search in name or description (partial match, case-insensitive). |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "content": [
- {
- "assignments": [
- {
- "createdAt": "2025-06-15T10:30:00",
- "group": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "role": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "readonly": true,
- "roleType": "SYSTEM"
}, - "scope": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "scopeType": "DATASET"
}
], - "contactUser": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "createdAt": "2025-06-15T10:30:00",
- "datapools": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "description": "Responsible for urban mobility datasets",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "members": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "modifiedAt": "2025-06-15T14:22:00",
- "name": "City Data Team"
}
], - "empty": true,
- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "pageable": {
- "offset": 0,
- "pageNumber": 0,
- "pageSize": 0,
- "paged": true,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "unpaged": true
}, - "size": 0,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "totalElements": 0,
- "totalPages": 0
}Create a new group
Creates a new group and returns it with a Location header pointing to the new group URI.
Authorizations:
Request Body schema: application/jsonrequired
| contactUserId | string <uuid> ID of the primary contact user |
| description | string |
| memberIds | Array of strings <uuid> [ items <uuid > ] IDs of users to add as group members |
| name required | string non-empty |
Responses
Request samples
- Payload
{- "contactUserId": "51bacfca-7fc8-4660-8192-15c9f8dde461",
- "description": "Responsible for urban mobility datasets",
- "memberIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "name": "City Data Team"
}Response samples
- 201
- 400
- 401
- 403
- 409
- 500
{- "assignments": [
- {
- "createdAt": "2025-06-15T10:30:00",
- "group": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "role": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "readonly": true,
- "roleType": "SYSTEM"
}, - "scope": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "scopeType": "DATASET"
}
], - "contactUser": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "createdAt": "2025-06-15T10:30:00",
- "datapools": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "description": "Responsible for urban mobility datasets",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "members": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "modifiedAt": "2025-06-15T14:22:00",
- "name": "City Data Team"
}Replace group assignments
Replaces all role assignments for a group using diff-based semantics.
Authorizations:
path Parameters
| groupId required | string <uuid> |
Request Body schema: application/jsonrequired
| roleId required | string <uuid> |
| scopeId | string <uuid> |
| scopeType | string Enum: "TENANT" "DATASTRUCTURE" "DATASOURCE" "DATASET" "DATAPOOL" |
Responses
Request samples
- Payload
[- {
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391",
- "scopeId": "65fafe40-a220-4dd7-8724-4598b81c0643",
- "scopeType": "TENANT"
}
]Response samples
- 200
- 401
- 403
- 500
{- "assignments": [
- {
- "createdAt": "2025-06-15T10:30:00",
- "group": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "role": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "readonly": true,
- "roleType": "SYSTEM"
}, - "scope": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "scopeType": "DATASET"
}
], - "contactUser": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "createdAt": "2025-06-15T10:30:00",
- "datapools": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "description": "Responsible for urban mobility datasets",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "members": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "modifiedAt": "2025-06-15T14:22:00",
- "name": "City Data Team"
}Delete a group
Permanently deletes a group by its UUID.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 401
- 403
- 404
- 409
- 500
{- "detail": "Authentication required",
- "instance": "/v1/datasets",
- "status": 401,
- "title": "Unauthorized",
- "type": "urn:civitas:error:UNAUTHORIZED"
}Get group by ID
Returns a single group identified by its UUID.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
{- "assignments": [
- {
- "createdAt": "2025-06-15T10:30:00",
- "group": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "role": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "readonly": true,
- "roleType": "SYSTEM"
}, - "scope": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "scopeType": "DATASET"
}
], - "contactUser": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "createdAt": "2025-06-15T10:30:00",
- "datapools": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "description": "Responsible for urban mobility datasets",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "members": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "modifiedAt": "2025-06-15T14:22:00",
- "name": "City Data Team"
}Partially update a group
Applies a partial JSON update to an existing group. Only provided fields are modified.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
| contactUserId | string <uuid> ID of the primary contact user |
| description | string |
| memberIds | Array of strings <uuid> [ items <uuid > ] IDs of users to add as group members |
| name | string non-empty |
Responses
Request samples
- Payload
{- "contactUserId": "51bacfca-7fc8-4660-8192-15c9f8dde461",
- "description": "Responsible for urban mobility datasets",
- "memberIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "name": "City Data Team"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "assignments": [
- {
- "createdAt": "2025-06-15T10:30:00",
- "group": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "role": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "readonly": true,
- "roleType": "SYSTEM"
}, - "scope": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "scopeType": "DATASET"
}
], - "contactUser": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "createdAt": "2025-06-15T10:30:00",
- "datapools": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "description": "Responsible for urban mobility datasets",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "members": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "modifiedAt": "2025-06-15T14:22:00",
- "name": "City Data Team"
}Replace a group
Fully replaces an existing group with the provided input.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
| contactUserId | string <uuid> ID of the primary contact user |
| description | string |
| memberIds | Array of strings <uuid> [ items <uuid > ] IDs of users to add as group members |
| name required | string non-empty |
Responses
Request samples
- Payload
{- "contactUserId": "51bacfca-7fc8-4660-8192-15c9f8dde461",
- "description": "Responsible for urban mobility datasets",
- "memberIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "name": "City Data Team"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "assignments": [
- {
- "createdAt": "2025-06-15T10:30:00",
- "group": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "role": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "readonly": true,
- "roleType": "SYSTEM"
}, - "scope": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "scopeType": "DATASET"
}
], - "contactUser": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "createdAt": "2025-06-15T10:30:00",
- "datapools": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "description": "Responsible for urban mobility datasets",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "members": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "modifiedAt": "2025-06-15T14:22:00",
- "name": "City Data Team"
}List all roles
Returns a paginated, filterable list of roles. Supports sorting and specification-based filtering.
Authorizations:
query Parameters
| page | integer >= 0 Default: 0 Zero-based page index (0..N) |
| size | integer >= 1 Default: 20 The size of the page to be returned |
| sort | Array of strings Default: "createdAt,DESC" Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. |
| id | string Example: id=1,2,3 Filter by one or more IDs (comma-separated). |
| createdAtFrom | string <date-time> Example: createdAtFrom=2024-01-01T00:00:00Z Filter by creation date greater than or equal to this value (ISO 8601). |
| createdAtTo | string <date-time> Example: createdAtTo=2024-12-31T23:59:59Z Filter by creation date less than or equal to this value (ISO 8601). |
| modifiedAtFrom | string <date-time> Example: modifiedAtFrom=2024-01-01T00:00:00Z Filter by modification date greater than or equal to this value (ISO 8601). |
| modifiedAtTo | string <date-time> Example: modifiedAtTo=2024-12-31T23:59:59Z Filter by modification date less than or equal to this value (ISO 8601). |
| name | string Example: name=admin Filter by name (partial match, case-insensitive). |
| description | string Example: description=Full access Filter by description (partial match, case-insensitive). |
| roleType | string Example: roleType=SYSTEM Filter by role type (exact match, comma-separated for multiple). |
| q | string Example: q=admin Search in name or description (partial match, case-insensitive). |
| readonly | boolean Example: readonly=true Filter by readonly flag (exact match). |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "content": [
- {
- "createdAt": "2025-06-15T10:30:00",
- "datapools": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "description": "Manages datasets and data sources",
- "groupCount": 3,
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Data Manager",
- "permissions": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "permissionType": "SYSTEM"
}
], - "readonly": false,
- "roleType": "DATA",
- "userCount": 12
}
], - "empty": true,
- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "pageable": {
- "offset": 0,
- "pageNumber": 0,
- "pageSize": 0,
- "paged": true,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "unpaged": true
}, - "size": 0,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "totalElements": 0,
- "totalPages": 0
}Create a new role
Creates a new role and returns it with a Location header pointing to the new role URI.
Authorizations:
Request Body schema: application/jsonrequired
| description | string |
| name required | string non-empty |
| permissionIds | Array of strings <uuid> [ items <uuid > ] IDs of permissions to assign to this role |
| readonly | boolean Whether this role can be modified, defaults to false |
| roleType required | string Enum: "SYSTEM" "DATA" |
Responses
Request samples
- Payload
{- "description": "Manages datasets and data sources",
- "name": "Data Manager",
- "permissionIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "readonly": true,
- "roleType": "DATA"
}Response samples
- 201
- 400
- 401
- 403
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "datapools": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "description": "Manages datasets and data sources",
- "groupCount": 3,
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Data Manager",
- "permissions": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "permissionType": "SYSTEM"
}
], - "readonly": false,
- "roleType": "DATA",
- "userCount": 12
}Delete a role
Permanently deletes a role by its UUID.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 401
- 403
- 404
- 409
- 500
{- "detail": "Authentication required",
- "instance": "/v1/datasets",
- "status": 401,
- "title": "Unauthorized",
- "type": "urn:civitas:error:UNAUTHORIZED"
}Get role by ID
Returns a single role identified by its UUID.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "datapools": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "description": "Manages datasets and data sources",
- "groupCount": 3,
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Data Manager",
- "permissions": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "permissionType": "SYSTEM"
}
], - "readonly": false,
- "roleType": "DATA",
- "userCount": 12
}Partially update a role
Applies a partial JSON update to an existing role. Only provided fields are modified.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
| description | string |
| name | string non-empty |
| permissionIds | Array of strings <uuid> [ items <uuid > ] IDs of permissions to assign to this role |
| readonly | boolean Whether this role can be modified, defaults to false |
| roleType | string Enum: "SYSTEM" "DATA" |
Responses
Request samples
- Payload
{- "description": "Manages datasets and data sources",
- "name": "Data Manager",
- "permissionIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "readonly": true,
- "roleType": "DATA"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "datapools": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "description": "Manages datasets and data sources",
- "groupCount": 3,
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Data Manager",
- "permissions": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "permissionType": "SYSTEM"
}
], - "readonly": false,
- "roleType": "DATA",
- "userCount": 12
}Replace a role
Fully replaces an existing role with the provided input.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
| description | string |
| name required | string non-empty |
| permissionIds | Array of strings <uuid> [ items <uuid > ] IDs of permissions to assign to this role |
| readonly | boolean Whether this role can be modified, defaults to false |
| roleType required | string Enum: "SYSTEM" "DATA" |
Responses
Request samples
- Payload
{- "description": "Manages datasets and data sources",
- "name": "Data Manager",
- "permissionIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "readonly": true,
- "roleType": "DATA"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "datapools": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "description": "Manages datasets and data sources",
- "groupCount": 3,
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Data Manager",
- "permissions": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "permissionType": "SYSTEM"
}
], - "readonly": false,
- "roleType": "DATA",
- "userCount": 12
}List all permissions
Returns a filterable, sorted list of permissions.
Authorizations:
query Parameters
required | object (Sort) |
| id | string Example: id=1,2,3 Filter by one or more IDs (comma-separated). |
| createdAtFrom | string <date-time> Example: createdAtFrom=2024-01-01T00:00:00Z Filter by creation date greater than or equal to this value (ISO 8601). |
| createdAtTo | string <date-time> Example: createdAtTo=2024-12-31T23:59:59Z Filter by creation date less than or equal to this value (ISO 8601). |
| modifiedAtFrom | string <date-time> Example: modifiedAtFrom=2024-01-01T00:00:00Z Filter by modification date greater than or equal to this value (ISO 8601). |
| modifiedAtTo | string <date-time> Example: modifiedAtTo=2024-12-31T23:59:59Z Filter by modification date less than or equal to this value (ISO 8601). |
| name | string Example: name=read Filter by name (partial match, case-insensitive). |
| description | string Example: description=Allows read access Filter by description (partial match, case-insensitive). |
| q | string Example: q=read Search in name or description (partial match, case-insensitive). |
| permissionType | string Enum: "SYSTEM" "DATA" Filter by permission type (exact match). |
| category | string Enum: "TENANT_ADMINISTRATION" "DATA" Filter by category (exact match). |
| source | string Enum: "INTERNAL" "DATASET_DASHBOARD" Filter by source (exact match). |
Responses
Response samples
- 200
- 401
- 403
- 500
[- {
- "category": "DATASET",
- "createdAt": "2025-06-15T10:30:00",
- "description": "Read access to datasets",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "DATASET_READ",
- "permissionType": "DATA"
}
]Get permission by ID
Returns a single permission identified by its UUID.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "category": "DATASET",
- "createdAt": "2025-06-15T10:30:00",
- "description": "Read access to datasets",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "DATASET_READ",
- "permissionType": "DATA"
}List all datasets
Returns a paginated, filterable list of datasets. Supports sorting and specification-based filtering.
Authorizations:
query Parameters
| page | integer >= 0 Default: 0 Zero-based page index (0..N) |
| size | integer >= 1 Default: 20 The size of the page to be returned |
| sort | Array of strings Default: "createdAt,DESC" Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. |
| id | string Example: id=1,2,3 Filter by one or more IDs (comma-separated). |
| createdAtFrom | string <date-time> Example: createdAtFrom=2024-01-01T00:00:00Z Filter by creation date greater than or equal to this value (ISO 8601). |
| createdAtTo | string <date-time> Example: createdAtTo=2024-12-31T23:59:59Z Filter by creation date less than or equal to this value (ISO 8601). |
| modifiedAtFrom | string <date-time> Example: modifiedAtFrom=2024-01-01T00:00:00Z Filter by modification date greater than or equal to this value (ISO 8601). |
| modifiedAtTo | string <date-time> Example: modifiedAtTo=2024-12-31T23:59:59Z Filter by modification date less than or equal to this value (ISO 8601). |
| name | string Example: name=sensor-data Filter by name (partial match, case-insensitive). |
| description | string Example: description=Temperature sensor readings Filter by description (partial match, case-insensitive). |
| q | string Example: q=sensor Search in name or description (partial match, case-insensitive). |
| datapoolIds | string Example: datapoolIds=550e8400-e29b-41d4-a716-446655440000,3fa85f64-5717-4562-b3fc-2c963f66afa6 Filter by datapool IDs (comma-separated UUIDs, IN-clause). Returns datasets assigned to any of the listed datapools. |
| includePendingDelete | boolean Default: false Example: includePendingDelete=true Include datasets with pendingSagaType DELETE. Defaults to false. |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "content": [
- {
- "createdAt": "2025-06-15T10:30:00",
- "createdBy": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "dataSetStatus": "DRAFT",
- "datapool": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "description": "Hourly vehicle counts at major intersections",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Count 2025",
- "namedApis": [
- {
- "description": "Live traffic counter readings from city sensors.",
- "name": "Traffic Sensor Readings",
- "slug": "traffic",
- "standard": "STA",
- "version": "1.1"
}
], - "openDataAccess": true,
- "pendingSagaType": "CREATE",
- "pipelines": [
- {
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "runtimeStatus": {
- "lastEventId": "ac612444-ec03-4887-9773-6acbb45b4af9",
- "message": "string",
- "occurredAt": "2019-08-24T14:15:22Z",
- "sanitizedStacktrace": "string",
- "source": "DEPLOYMENT",
- "state": "OK"
}
}
], - "provisioned": true,
}
], - "empty": true,
- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "pageable": {
- "offset": 0,
- "pageNumber": 0,
- "pageSize": 0,
- "paged": true,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "unpaged": true
}, - "size": 0,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "totalElements": 0,
- "totalPages": 0
}Create a new dataset
Creates a new dataset and returns it with a Location header pointing to the new dataset URI.
Authorizations:
Request Body schema: application/jsonrequired
Array of objects (AssignmentScopedInputDTO) unique | |
| datapoolId | string <uuid> ID of the datapool this dataset belongs to. |
| description required | string non-empty |
| name required | string [ 3 .. 255 ] characters |
Array of objects (NamedApiInputDTO) Named API endpoints exposed by this dataset. Each entry produces one APISIX route after release. | |
| openDataAccess | boolean Whether this dataset is publicly accessible, defaults to false |
Responses
Request samples
- Payload
{- "assignments": [
- {
- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391"
}
], - "datapoolId": "c1a42405-0a1d-43d8-8252-dbf4e1fe39a8",
- "description": "string",
- "name": "string",
- "namedApis": [
- {
- "description": "Live traffic counter readings from city sensors.",
- "name": "Traffic Sensor Readings",
- "slug": "traffic",
- "standard": "STA",
- "version": "1.1"
}
], - "openDataAccess": true
}Response samples
- 201
- 400
- 401
- 403
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "createdBy": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "dataSetStatus": "DRAFT",
- "datapool": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "description": "Hourly vehicle counts at major intersections",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Count 2025",
- "namedApis": [
- {
- "description": "Live traffic counter readings from city sensors.",
- "name": "Traffic Sensor Readings",
- "slug": "traffic",
- "standard": "STA",
- "version": "1.1"
}
], - "openDataAccess": true,
- "pendingSagaType": "CREATE",
- "pipelines": [
- {
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "runtimeStatus": {
- "lastEventId": "ac612444-ec03-4887-9773-6acbb45b4af9",
- "message": "string",
- "occurredAt": "2019-08-24T14:15:22Z",
- "sanitizedStacktrace": "string",
- "source": "DEPLOYMENT",
- "state": "OK"
}
}
], - "provisioned": true,
}Delete a dataset
Deletes a dataset (204 No Content). A never-provisioned dataset is removed immediately. A dataset that still holds a provisioned sink is torn down asynchronously via a DELETE saga and removed once the saga completes. An AVAILABLE dataset cannot be deleted directly — unrelease it first (POST /{id}/unrelease).
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 401
- 403
- 404
- 409
- 500
{- "detail": "Authentication required",
- "instance": "/v1/datasets",
- "status": 401,
- "title": "Unauthorized",
- "type": "urn:civitas:error:UNAUTHORIZED"
}Get dataset by ID
Returns a single dataset identified by its UUID.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "createdBy": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "dataSetStatus": "DRAFT",
- "datapool": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "description": "Hourly vehicle counts at major intersections",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Count 2025",
- "namedApis": [
- {
- "description": "Live traffic counter readings from city sensors.",
- "name": "Traffic Sensor Readings",
- "slug": "traffic",
- "standard": "STA",
- "version": "1.1"
}
], - "openDataAccess": true,
- "pendingSagaType": "CREATE",
- "pipelines": [
- {
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "runtimeStatus": {
- "lastEventId": "ac612444-ec03-4887-9773-6acbb45b4af9",
- "message": "string",
- "occurredAt": "2019-08-24T14:15:22Z",
- "sanitizedStacktrace": "string",
- "source": "DEPLOYMENT",
- "state": "OK"
}
}
], - "provisioned": true,
}Partially update a dataset
Applies a partial JSON update to an existing dataset. Only provided fields are modified.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
Array of objects (AssignmentScopedInputDTO) unique | |
| datapoolId | string <uuid> ID of the datapool this dataset belongs to. |
| description | string non-empty |
| name | string [ 3 .. 255 ] characters |
Array of objects (NamedApiInputDTO) Named API endpoints exposed by this dataset. Each entry produces one APISIX route after release. | |
| openDataAccess | boolean Whether this dataset is publicly accessible, defaults to false |
Responses
Request samples
- Payload
{- "assignments": [
- {
- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391"
}
], - "datapoolId": "c1a42405-0a1d-43d8-8252-dbf4e1fe39a8",
- "description": "string",
- "name": "string",
- "namedApis": [
- {
- "description": "Live traffic counter readings from city sensors.",
- "name": "Traffic Sensor Readings",
- "slug": "traffic",
- "standard": "STA",
- "version": "1.1"
}
], - "openDataAccess": true
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "createdBy": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "dataSetStatus": "DRAFT",
- "datapool": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "description": "Hourly vehicle counts at major intersections",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Count 2025",
- "namedApis": [
- {
- "description": "Live traffic counter readings from city sensors.",
- "name": "Traffic Sensor Readings",
- "slug": "traffic",
- "standard": "STA",
- "version": "1.1"
}
], - "openDataAccess": true,
- "pendingSagaType": "CREATE",
- "pipelines": [
- {
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "runtimeStatus": {
- "lastEventId": "ac612444-ec03-4887-9773-6acbb45b4af9",
- "message": "string",
- "occurredAt": "2019-08-24T14:15:22Z",
- "sanitizedStacktrace": "string",
- "source": "DEPLOYMENT",
- "state": "OK"
}
}
], - "provisioned": true,
}Update a DRAFT dataset
Updates a dataset in DRAFT status. For released datasets (READY or AVAILABLE), use PATCH /datasets/{id}/released/meta instead.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
Array of objects (AssignmentScopedInputDTO) unique | |
| datapoolId | string <uuid> ID of the datapool this dataset belongs to. |
| description required | string non-empty |
| name required | string [ 3 .. 255 ] characters |
Array of objects (NamedApiInputDTO) Named API endpoints exposed by this dataset. Each entry produces one APISIX route after release. | |
| openDataAccess | boolean Whether this dataset is publicly accessible, defaults to false |
Responses
Request samples
- Payload
{- "assignments": [
- {
- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391"
}
], - "datapoolId": "c1a42405-0a1d-43d8-8252-dbf4e1fe39a8",
- "description": "string",
- "name": "string",
- "namedApis": [
- {
- "description": "Live traffic counter readings from city sensors.",
- "name": "Traffic Sensor Readings",
- "slug": "traffic",
- "standard": "STA",
- "version": "1.1"
}
], - "openDataAccess": true
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "createdBy": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "dataSetStatus": "DRAFT",
- "datapool": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "description": "Hourly vehicle counts at major intersections",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Count 2025",
- "namedApis": [
- {
- "description": "Live traffic counter readings from city sensors.",
- "name": "Traffic Sensor Readings",
- "slug": "traffic",
- "standard": "STA",
- "version": "1.1"
}
], - "openDataAccess": true,
- "pendingSagaType": "CREATE",
- "pipelines": [
- {
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "runtimeStatus": {
- "lastEventId": "ac612444-ec03-4887-9773-6acbb45b4af9",
- "message": "string",
- "occurredAt": "2019-08-24T14:15:22Z",
- "sanitizedStacktrace": "string",
- "source": "DEPLOYMENT",
- "state": "OK"
}
}
], - "provisioned": true,
}List a dataset's published named APIs
Returns the named APIs of a PUBLISHED dataset (lifecycle status AVAILABLE), including the server-built previewUrl. Per concept #1379 only active published APIs are discoverable: a DRAFT/READY dataset returns an empty list. Respects the caller's X-Allowed-Scope-Ids; unknown or out-of-scope datasets return 404.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
[- {
- "description": "Live traffic counter readings from city sensors.",
- "name": "Traffic Sensor Readings",
- "slug": "traffic",
- "standard": "STA",
- "version": "1.1"
}
]Get assignments
Returns all role assignments scoped to this dataset.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
[- {
- "createdAt": "2025-06-15T10:30:00",
- "group": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "role": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "readonly": true,
- "roleType": "SYSTEM"
}, - "scope": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "scopeType": "DATASET"
}
]Update READY dataset metadata
Applies a JSON merge patch to the metadata of a dataset in READY status, requiring only DATASET_UPDATE — unlike PATCH /datasets/{id}/released/meta, which also requires DATASET_RELEASE. An omitted field keeps its value. Rejects DRAFT and AVAILABLE datasets. A field that is not metadata, such as namedApis, answers 400 — unrelease the dataset and edit it in DRAFT.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
Array of objects (AssignmentScopedInputDTO) unique | |
| datapoolId | string <uuid> ID of the datapool this dataset belongs to. |
| description | string non-empty |
| name | string [ 3 .. 255 ] characters |
| openDataAccess | boolean Whether this dataset is publicly accessible, defaults to false |
Responses
Request samples
- Payload
{- "assignments": [
- {
- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391"
}
], - "datapoolId": "c1a42405-0a1d-43d8-8252-dbf4e1fe39a8",
- "description": "string",
- "name": "string",
- "openDataAccess": true
}Response samples
- 200
- 400
- 401
- 403
- 409
- 422
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "createdBy": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "dataSetStatus": "DRAFT",
- "datapool": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "description": "Hourly vehicle counts at major intersections",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Count 2025",
- "namedApis": [
- {
- "description": "Live traffic counter readings from city sensors.",
- "name": "Traffic Sensor Readings",
- "slug": "traffic",
- "standard": "STA",
- "version": "1.1"
}
], - "openDataAccess": true,
- "pendingSagaType": "CREATE",
- "pipelines": [
- {
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "runtimeStatus": {
- "lastEventId": "ac612444-ec03-4887-9773-6acbb45b4af9",
- "message": "string",
- "occurredAt": "2019-08-24T14:15:22Z",
- "sanitizedStacktrace": "string",
- "source": "DEPLOYMENT",
- "state": "OK"
}
}
], - "provisioned": true,
}Release
Transitions the entity from DRAFT to AVAILABLE status.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 202
- 401
- 403
- 409
- 422
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "createdBy": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "dataSetStatus": "DRAFT",
- "datapool": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "description": "Hourly vehicle counts at major intersections",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Count 2025",
- "namedApis": [
- {
- "description": "Live traffic counter readings from city sensors.",
- "name": "Traffic Sensor Readings",
- "slug": "traffic",
- "standard": "STA",
- "version": "1.1"
}
], - "openDataAccess": true,
- "pendingSagaType": "CREATE",
- "pipelines": [
- {
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "runtimeStatus": {
- "lastEventId": "ac612444-ec03-4887-9773-6acbb45b4af9",
- "message": "string",
- "occurredAt": "2019-08-24T14:15:22Z",
- "sanitizedStacktrace": "string",
- "source": "DEPLOYMENT",
- "state": "OK"
}
}
], - "provisioned": true,
}Update released metadata
Applies a JSON merge patch to the metadata of a released entity. An omitted field keeps its value. A field that is not metadata answers 400, and so does null for assignments or datapoolScope. Only works on entities that are not in DRAFT status.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
Array of objects (AssignmentScopedInputDTO) unique | |
| datapoolId | string <uuid> ID of the datapool this dataset belongs to. |
| description | string non-empty |
| name | string [ 3 .. 255 ] characters |
| openDataAccess | boolean Whether this dataset is publicly accessible, defaults to false |
Responses
Request samples
- Payload
{- "assignments": [
- {
- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391"
}
], - "datapoolId": "c1a42405-0a1d-43d8-8252-dbf4e1fe39a8",
- "description": "string",
- "name": "string",
- "openDataAccess": true
}Response samples
- 401
- 403
- 409
- 500
{- "detail": "Authentication required",
- "instance": "/v1/datasets",
- "status": 401,
- "title": "Unauthorized",
- "type": "urn:civitas:error:UNAUTHORIZED"
}Stage a dataset
Validates the dataset's pipeline configuration, then transitions status from DRAFT to READY. The artifacts participating in its flows may still be DRAFT; release validates them.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 422
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "createdBy": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "dataSetStatus": "DRAFT",
- "datapool": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "description": "Hourly vehicle counts at major intersections",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Count 2025",
- "namedApis": [
- {
- "description": "Live traffic counter readings from city sensors.",
- "name": "Traffic Sensor Readings",
- "slug": "traffic",
- "standard": "STA",
- "version": "1.1"
}
], - "openDataAccess": true,
- "pendingSagaType": "CREATE",
- "pipelines": [
- {
- "description": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "name": "string",
- "runtimeStatus": {
- "lastEventId": "ac612444-ec03-4887-9773-6acbb45b4af9",
- "message": "string",
- "occurredAt": "2019-08-24T14:15:22Z",
- "sanitizedStacktrace": "string",
- "source": "DEPLOYMENT",
- "state": "OK"
}
}
], - "provisioned": true,
}Unrelease
Transitions the entity from AVAILABLE back to DRAFT status.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 401
- 403
- 409
- 500
{- "detail": "Authentication required",
- "instance": "/v1/datasets",
- "status": 401,
- "title": "Unauthorized",
- "type": "urn:civitas:error:UNAUTHORIZED"
}Unstage a dataset
Reverts the dataset from READY to DRAFT.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 401
- 403
- 409
- 500
{- "detail": "Authentication required",
- "instance": "/v1/datasets",
- "status": 401,
- "title": "Unauthorized",
- "type": "urn:civitas:error:UNAUTHORIZED"
}List all Styles for a dataset
Authorizations:
path Parameters
| dataSetId required | any <uuid> |
query Parameters
| page | integer >= 0 Default: 0 Zero-based page index (0..N) |
| size | integer >= 1 Default: 20 The size of the page to be returned |
| sort | Array of strings Default: "createdAt,DESC" Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. |
| id | string Example: id=1,2,3 Filter by one or more IDs (comma-separated). |
| createdAtFrom | string <date-time> Example: createdAtFrom=2024-01-01T00:00:00Z Filter by creation date greater than or equal to this value (ISO 8601). |
| createdAtTo | string <date-time> Example: createdAtTo=2024-12-31T23:59:59Z Filter by creation date less than or equal to this value (ISO 8601). |
| modifiedAtFrom | string <date-time> Example: modifiedAtFrom=2024-01-01T00:00:00Z Filter by modification date greater than or equal to this value (ISO 8601). |
| modifiedAtTo | string <date-time> Example: modifiedAtTo=2024-12-31T23:59:59Z Filter by modification date less than or equal to this value (ISO 8601). |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "content": [
- {
- "createdAt": "2025-06-15T10:30:00",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "string",
- "sldContent": "string"
}
], - "empty": true,
- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "pageable": {
- "offset": 0,
- "pageNumber": 0,
- "pageSize": 0,
- "paged": true,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "unpaged": true
}, - "size": 0,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "totalElements": 0,
- "totalPages": 0
}Create a new Style
Authorizations:
path Parameters
| dataSetId required | any <uuid> |
Request Body schema: application/jsonrequired
| name required | string non-empty [A-Za-z0-9_-]+ |
| sldContent required | string non-empty |
Responses
Request samples
- Payload
{- "name": "string",
- "sldContent": "string"
}Response samples
- 201
- 400
- 401
- 403
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "string",
- "sldContent": "string"
}Delete a Style
Authorizations:
path Parameters
| id required | string <uuid> |
| dataSetId required | any <uuid> |
Responses
Response samples
- 400
- 401
- 403
- 404
- 409
- 500
{- "detail": "A dataset and its sub-entities can only be changed while the dataset is DRAFT. Unstage or unrelease the dataset first.",
- "instance": "/datasets/{dataSetId}/styles/{id}",
- "status": 400,
- "title": "Bad Request",
- "type": "urn:civitas:error:DATASET_NOT_EDITABLE"
}Get Style by ID
Authorizations:
path Parameters
| id required | string <uuid> |
| dataSetId required | any <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "string",
- "sldContent": "string"
}Partially update a style
Applies a partial JSON update to an existing style. Only provided fields are modified.
Authorizations:
path Parameters
| id required | string <uuid> |
| dataSetId required | any <uuid> |
Request Body schema: application/jsonrequired
| name | string non-empty [A-Za-z0-9_-]+ |
| sldContent | string non-empty |
Responses
Request samples
- Payload
{- "name": "string",
- "sldContent": "string"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "string",
- "sldContent": "string"
}Replace a Style
Authorizations:
path Parameters
| id required | string <uuid> |
| dataSetId required | any <uuid> |
Request Body schema: application/jsonrequired
| name required | string non-empty [A-Za-z0-9_-]+ |
| sldContent required | string non-empty |
Responses
Request samples
- Payload
{- "name": "string",
- "sldContent": "string"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "string",
- "sldContent": "string"
}Delete a Mapping artifact by its (logical or versioned) CORE URN
Rejected while another artifact still references the mapping — a pipeline's mappingRef, for instance. Remove that reference at the artifact holding it first; deleting a mapping a pipeline still uses would leave the pipeline pointing at nothing.
Authorizations:
path Parameters
| dataSetId required | string <uuid> |
query Parameters
| urn required | string |
Responses
Response samples
- 401
- 403
- 500
{- "detail": "Authentication required",
- "instance": "/v1/datasets",
- "status": 401,
- "title": "Unauthorized",
- "type": "urn:civitas:error:UNAUTHORIZED"
}Fetch a Mapping artifact's content by CORE URN, or list this DataSet's mappings
With urn, returns that mapping's content. Without urn, returns the URNs of every mapping of this DataSet — the only way to find one that no pipeline names.
Authorizations:
path Parameters
| dataSetId required | string <uuid> |
query Parameters
| urn | string |
Responses
Response samples
- 200
- 401
- 403
- 500
{ }Create a Mapping artifact from a CORE mapping document; returns its URN pins
Authorizations:
path Parameters
| dataSetId required | string <uuid> |
Request Body schema: application/jsonrequired
| property name* additional property | any |
Responses
Request samples
- Payload
{- "property1": null,
- "property2": null
}Response samples
- 200
- 401
- 403
- 500
{- "property1": "string",
- "property2": "string"
}Version an existing Mapping artifact (body carries its logicalUrn)
Authorizations:
path Parameters
| dataSetId required | string <uuid> |
Request Body schema: application/jsonrequired
| property name* additional property | any |
Responses
Request samples
- Payload
{- "property1": null,
- "property2": null
}Response samples
- 200
- 401
- 403
- 500
{- "property1": "string",
- "property2": "string"
}List all users
Returns a paginated, filterable list of users. Supports sorting and specification-based filtering.
Authorizations:
query Parameters
| page | integer >= 0 Default: 0 Zero-based page index (0..N) |
| size | integer >= 1 Default: 20 The size of the page to be returned |
| sort | Array of strings Default: "createdAt,DESC" Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. |
| id | string Example: id=1,2,3 Filter by one or more IDs (comma-separated). |
| createdAtFrom | string <date-time> Example: createdAtFrom=2024-01-01T00:00:00Z Filter by creation date greater than or equal to this value (ISO 8601). |
| createdAtTo | string <date-time> Example: createdAtTo=2024-12-31T23:59:59Z Filter by creation date less than or equal to this value (ISO 8601). |
| modifiedAtFrom | string <date-time> Example: modifiedAtFrom=2024-01-01T00:00:00Z Filter by modification date greater than or equal to this value (ISO 8601). |
| modifiedAtTo | string <date-time> Example: modifiedAtTo=2024-12-31T23:59:59Z Filter by modification date less than or equal to this value (ISO 8601). |
| firstName | string Example: firstName=John Filter by first name (partial match, case-insensitive). |
| lastName | string Example: lastName=Doe Filter by last name (partial match, case-insensitive). |
string Example: email=john.doe@example.com Filter by email (exact match, case-insensitive). | |
| q | string Example: q=john doe, john@doe.com Search in full name, or email (partial match, case-insensitive). |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "content": [
- {
- "createdAt": "2025-06-15T10:30:00",
- "datapools": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "email": "jane.doe@example.com",
- "firstName": "Jane",
- "groups": [
- {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "id": "550e8400-e29b-41d4-a716-446655440000",
- "lastName": "Doe",
- "modifiedAt": "2025-06-15T14:22:00",
- "phone": "+49 170 1234567",
- "title": "MS"
}
], - "empty": true,
- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "pageable": {
- "offset": 0,
- "pageNumber": 0,
- "pageSize": 0,
- "paged": true,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "unpaged": true
}, - "size": 0,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "totalElements": 0,
- "totalPages": 0
}Create a new user
Creates a new user and returns it with a Location header pointing to the new user URI.
Authorizations:
Request Body schema: application/jsonrequired
| email required | string <email> non-empty |
| firstName required | string non-empty |
| lastName required | string non-empty |
| phone | string |
| title | string Enum: "MR" "MS" "OTHER" Salutation, defaults to OTHER |
Responses
Request samples
- Payload
{- "email": "jane.doe@example.com",
- "firstName": "Jane",
- "lastName": "Doe",
- "phone": "+49 170 1234567",
- "title": "MS"
}Response samples
- 201
- 400
- 401
- 403
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "datapools": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "email": "jane.doe@example.com",
- "firstName": "Jane",
- "groups": [
- {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "id": "550e8400-e29b-41d4-a716-446655440000",
- "lastName": "Doe",
- "modifiedAt": "2025-06-15T14:22:00",
- "phone": "+49 170 1234567",
- "title": "MS"
}Get current user
Returns the profile information of the authenticated user including assignments
Authorizations:
Responses
Response samples
- 200
- 401
- 403
- 500
{- "assignments": [
- {
- "permissions": [
- "DATASET_READ",
- "DATASET_CREATE"
], - "scopeId": "550e8400-e29b-41d4-a716-446655440000",
- "scopeType": "DATASET"
}
], - "email": "user@example.com",
- "firstName": "John",
- "lastName": "Doe",
- "title": "MS",
- "username": "testuser"
}Delete a user
Permanently deletes a user by its UUID.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 401
- 403
- 404
- 409
- 500
{- "detail": "Authentication required",
- "instance": "/v1/datasets",
- "status": 401,
- "title": "Unauthorized",
- "type": "urn:civitas:error:UNAUTHORIZED"
}Get user by ID
Returns a single user identified by its UUID.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "datapools": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "email": "jane.doe@example.com",
- "firstName": "Jane",
- "groups": [
- {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "id": "550e8400-e29b-41d4-a716-446655440000",
- "lastName": "Doe",
- "modifiedAt": "2025-06-15T14:22:00",
- "phone": "+49 170 1234567",
- "title": "MS"
}Partially update a user
Applies a partial JSON update to an existing user. Only provided fields are modified.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
string <email> non-empty | |
| firstName | string non-empty |
| lastName | string non-empty |
| phone | string |
| title | string Enum: "MR" "MS" "OTHER" Salutation, defaults to OTHER |
Responses
Request samples
- Payload
{- "email": "jane.doe@example.com",
- "firstName": "Jane",
- "lastName": "Doe",
- "phone": "+49 170 1234567",
- "title": "MS"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "datapools": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "email": "jane.doe@example.com",
- "firstName": "Jane",
- "groups": [
- {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "id": "550e8400-e29b-41d4-a716-446655440000",
- "lastName": "Doe",
- "modifiedAt": "2025-06-15T14:22:00",
- "phone": "+49 170 1234567",
- "title": "MS"
}Replace a user
Fully replaces an existing user with the provided input.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
| email required | string <email> non-empty |
| firstName required | string non-empty |
| lastName required | string non-empty |
| phone | string |
| title | string Enum: "MR" "MS" "OTHER" Salutation, defaults to OTHER |
Responses
Request samples
- Payload
{- "email": "jane.doe@example.com",
- "firstName": "Jane",
- "lastName": "Doe",
- "phone": "+49 170 1234567",
- "title": "MS"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "datapools": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "email": "jane.doe@example.com",
- "firstName": "Jane",
- "groups": [
- {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "id": "550e8400-e29b-41d4-a716-446655440000",
- "lastName": "Doe",
- "modifiedAt": "2025-06-15T14:22:00",
- "phone": "+49 170 1234567",
- "title": "MS"
}Replace user group memberships
Replaces all group memberships for a user with the provided list of group IDs.
Authorizations:
path Parameters
| userId required | string <uuid> |
Request Body schema: application/jsonrequired
Responses
Request samples
- Payload
[- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
]Response samples
- 200
- 401
- 403
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "datapools": [
- {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "email": "jane.doe@example.com",
- "firstName": "Jane",
- "groups": [
- {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}
], - "id": "550e8400-e29b-41d4-a716-446655440000",
- "lastName": "Doe",
- "modifiedAt": "2025-06-15T14:22:00",
- "phone": "+49 170 1234567",
- "title": "MS"
}List all data structures
Returns a paginated, filterable list of data structures. Supports sorting and specification-based filtering.
Authorizations:
query Parameters
| page | integer >= 0 Default: 0 Zero-based page index (0..N) |
| size | integer >= 1 Default: 20 The size of the page to be returned |
| sort | Array of strings Default: "createdAt,DESC" Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. |
| id | string Example: id=1,2,3 Filter by one or more IDs (comma-separated). |
| createdAtFrom | string <date-time> Example: createdAtFrom=2024-01-01T00:00:00Z Filter by creation date greater than or equal to this value (ISO 8601). |
| createdAtTo | string <date-time> Example: createdAtTo=2024-12-31T23:59:59Z Filter by creation date less than or equal to this value (ISO 8601). |
| modifiedAtFrom | string <date-time> Example: modifiedAtFrom=2024-01-01T00:00:00Z Filter by modification date greater than or equal to this value (ISO 8601). |
| modifiedAtTo | string <date-time> Example: modifiedAtTo=2024-12-31T23:59:59Z Filter by modification date less than or equal to this value (ISO 8601). |
| name | string Example: name=My Data Structure Filter by name (partial match, case-insensitive). |
| description | string Example: description=Data structure description Filter by description (partial match, case-insensitive). |
| q | string Example: q=structure Search in name or description (partial match, case-insensitive). |
| dataStructureStatus | string Enum: "DRAFT" "AVAILABLE" Filter by status (exact match). |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "content": [
- {
- "createdAt": "2025-06-15T10:30:00",
- "dataStructureStatus": "ACTIVE",
- "dataStructureVersions": [
- {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}
], - "description": "Schema for traffic sensor readings",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Sensor Schema"
}
], - "empty": true,
- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "pageable": {
- "offset": 0,
- "pageNumber": 0,
- "pageSize": 0,
- "paged": true,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "unpaged": true
}, - "size": 0,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "totalElements": 0,
- "totalPages": 0
}Create a new data structure
Creates a new data structure and returns it with a Location header pointing to the new data structure URI.
Authorizations:
Request Body schema: application/jsonrequired
Array of objects (AssignmentScopedInputDTO) unique | |
| description required | string non-empty |
| name required | string non-empty |
Responses
Request samples
- Payload
{- "assignments": [
- {
- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391"
}
], - "description": "string",
- "name": "string"
}Response samples
- 201
- 400
- 401
- 403
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataStructureStatus": "ACTIVE",
- "dataStructureVersions": [
- {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}
], - "description": "Schema for traffic sensor readings",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Sensor Schema"
}Delete a data structure
Permanently deletes a data structure by its UUID.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 401
- 403
- 404
- 409
- 500
{- "detail": "Authentication required",
- "instance": "/v1/datasets",
- "status": 401,
- "title": "Unauthorized",
- "type": "urn:civitas:error:UNAUTHORIZED"
}Get data structure by ID
Returns a single data structure identified by its UUID.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataStructureStatus": "ACTIVE",
- "dataStructureVersions": [
- {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}
], - "description": "Schema for traffic sensor readings",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Sensor Schema"
}Partially update a data structure
Applies a partial JSON update to an existing data structure. Only provided fields are modified.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
Array of objects (AssignmentScopedInputDTO) unique | |
| description | string non-empty |
| name | string non-empty |
Responses
Request samples
- Payload
{- "assignments": [
- {
- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391"
}
], - "description": "string",
- "name": "string"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataStructureStatus": "ACTIVE",
- "dataStructureVersions": [
- {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}
], - "description": "Schema for traffic sensor readings",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Sensor Schema"
}Replace a data structure
Fully replaces an existing data structure with the provided input.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
Array of objects (AssignmentScopedInputDTO) unique | |
| description required | string non-empty |
| name required | string non-empty |
Responses
Request samples
- Payload
{- "assignments": [
- {
- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391"
}
], - "description": "string",
- "name": "string"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataStructureStatus": "ACTIVE",
- "dataStructureVersions": [
- {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}
], - "description": "Schema for traffic sensor readings",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Sensor Schema"
}Get assignments
Returns all role assignments scoped to this data structure.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
[- {
- "createdAt": "2025-06-15T10:30:00",
- "group": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "role": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "readonly": true,
- "roleType": "SYSTEM"
}, - "scope": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "scopeType": "DATASET"
}
]Release
Transitions the entity from DRAFT to AVAILABLE status.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataStructureStatus": "ACTIVE",
- "dataStructureVersions": [
- {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}
], - "description": "Schema for traffic sensor readings",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Sensor Schema"
}Update released metadata
Applies a JSON merge patch to the metadata of a released entity. An omitted field keeps its value. A field that is not metadata answers 400, and so does null for assignments or datapoolScope. Only works on entities that are not in DRAFT status.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
Array of objects (AssignmentScopedInputDTO) unique | |
| description | string non-empty |
| name | string non-empty |
Responses
Request samples
- Payload
{- "assignments": [
- {
- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391"
}
], - "description": "string",
- "name": "string"
}Response samples
- 200
- 401
- 403
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataStructureStatus": "ACTIVE",
- "dataStructureVersions": [
- {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}
], - "description": "Schema for traffic sensor readings",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Sensor Schema"
}Unrelease
Transitions the entity from AVAILABLE back to DRAFT status.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataStructureStatus": "ACTIVE",
- "dataStructureVersions": [
- {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}
], - "description": "Schema for traffic sensor readings",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Sensor Schema"
}List all pipelines
Authorizations:
path Parameters
| dataSetId required | any <uuid> |
query Parameters
| page | integer >= 0 Default: 0 Zero-based page index (0..N) |
| size | integer >= 1 Default: 20 The size of the page to be returned |
| sort | Array of strings Default: "createdAt,DESC" Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. |
| id | string Example: id=1,2,3 Filter by one or more IDs (comma-separated). |
| createdAtFrom | string <date-time> Example: createdAtFrom=2024-01-01T00:00:00Z Filter by creation date greater than or equal to this value (ISO 8601). |
| createdAtTo | string <date-time> Example: createdAtTo=2024-12-31T23:59:59Z Filter by creation date less than or equal to this value (ISO 8601). |
| modifiedAtFrom | string <date-time> Example: modifiedAtFrom=2024-01-01T00:00:00Z Filter by modification date greater than or equal to this value (ISO 8601). |
| modifiedAtTo | string <date-time> Example: modifiedAtTo=2024-12-31T23:59:59Z Filter by modification date less than or equal to this value (ISO 8601). |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "content": [
- {
- "createdAt": "2025-06-15T10:30:00",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "dataSinkIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "dataSourceIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "model": {
- "property1": null,
- "property2": null
}, - "modelUrn": "string",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "string",
- "styles": {
- "property1": null,
- "property2": null
}
}
], - "empty": true,
- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "pageable": {
- "offset": 0,
- "pageNumber": 0,
- "pageSize": 0,
- "paged": true,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "unpaged": true
}, - "size": 0,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "totalElements": 0,
- "totalPages": 0
}Create a new pipeline
Authorizations:
path Parameters
| dataSetId required | any <uuid> |
Request Body schema: application/jsonrequired
| dataSinkIds | Array of strings <uuid> unique [ items <uuid > ] |
| dataSourceIds | Array of strings <uuid> unique [ items <uuid > ] |
| description | string |
object | |
| name required | string non-empty |
object |
Responses
Request samples
- Payload
{- "dataSinkIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "dataSourceIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "description": "string",
- "model": {
- "property1": null,
- "property2": null
}, - "name": "string",
- "styles": {
- "property1": null,
- "property2": null
}
}Response samples
- 201
- 400
- 401
- 403
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "dataSinkIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "dataSourceIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "model": {
- "property1": null,
- "property2": null
}, - "modelUrn": "string",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "string",
- "styles": {
- "property1": null,
- "property2": null
}
}Delete a pipeline
Authorizations:
path Parameters
| id required | string <uuid> |
| dataSetId required | any <uuid> |
Responses
Response samples
- 400
- 401
- 403
- 404
- 409
- 500
{- "detail": "A dataset and its sub-entities can only be changed while the dataset is DRAFT. Unstage or unrelease the dataset first.",
- "instance": "/datasets/{dataSetId}/pipelines/{id}",
- "status": 400,
- "title": "Bad Request",
- "type": "urn:civitas:error:DATASET_NOT_EDITABLE"
}Get pipeline by ID
Authorizations:
path Parameters
| id required | string <uuid> |
| dataSetId required | any <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "dataSinkIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "dataSourceIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "model": {
- "property1": null,
- "property2": null
}, - "modelUrn": "string",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "string",
- "styles": {
- "property1": null,
- "property2": null
}
}Partially update a pipeline
Authorizations:
path Parameters
| id required | string <uuid> |
| dataSetId required | any <uuid> |
Request Body schema: application/jsonrequired
| dataSinkIds | Array of strings <uuid> unique [ items <uuid > ] |
| dataSourceIds | Array of strings <uuid> unique [ items <uuid > ] |
| description | string |
object | |
| name | string non-empty |
object |
Responses
Request samples
- Payload
{- "dataSinkIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "dataSourceIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "description": "string",
- "model": {
- "property1": null,
- "property2": null
}, - "name": "string",
- "styles": {
- "property1": null,
- "property2": null
}
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "dataSinkIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "dataSourceIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "model": {
- "property1": null,
- "property2": null
}, - "modelUrn": "string",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "string",
- "styles": {
- "property1": null,
- "property2": null
}
}Replace a pipeline
Authorizations:
path Parameters
| id required | string <uuid> |
| dataSetId required | any <uuid> |
Request Body schema: application/jsonrequired
| dataSinkIds | Array of strings <uuid> unique [ items <uuid > ] |
| dataSourceIds | Array of strings <uuid> unique [ items <uuid > ] |
| description | string |
object | |
| name required | string non-empty |
object |
Responses
Request samples
- Payload
{- "dataSinkIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "dataSourceIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "description": "string",
- "model": {
- "property1": null,
- "property2": null
}, - "name": "string",
- "styles": {
- "property1": null,
- "property2": null
}
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "dataSinkIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "dataSourceIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "model": {
- "property1": null,
- "property2": null
}, - "modelUrn": "string",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "string",
- "styles": {
- "property1": null,
- "property2": null
}
}List all DataSinks for a dataset
Authorizations:
path Parameters
| dataSetId required | any <uuid> |
query Parameters
| page | integer >= 0 Default: 0 Zero-based page index (0..N) |
| size | integer >= 1 Default: 20 The size of the page to be returned |
| sort | Array of strings Default: "createdAt,DESC" Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. |
| id | string Example: id=1,2,3 Filter by one or more IDs (comma-separated). |
| createdAtFrom | string <date-time> Example: createdAtFrom=2024-01-01T00:00:00Z Filter by creation date greater than or equal to this value (ISO 8601). |
| createdAtTo | string <date-time> Example: createdAtTo=2024-12-31T23:59:59Z Filter by creation date less than or equal to this value (ISO 8601). |
| modifiedAtFrom | string <date-time> Example: modifiedAtFrom=2024-01-01T00:00:00Z Filter by modification date greater than or equal to this value (ISO 8601). |
| modifiedAtTo | string <date-time> Example: modifiedAtTo=2024-12-31T23:59:59Z Filter by modification date less than or equal to this value (ISO 8601). |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "content": [
- {
- "configuration": {
- "dataStructureVersion": {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}, - "element": "string",
- "tableName": "traffic_data"
}, - "configurationUrn": "string",
- "createdAt": "2025-06-15T10:30:00",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "dataSinkType": "FROST",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUseByLayer": true,
- "inUseByPipeline": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "pipelineId": "621ef2b0-ba1d-48e5-89dc-b778e6ed42fd",
- "provisioned": true
}
], - "empty": true,
- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "pageable": {
- "offset": 0,
- "pageNumber": 0,
- "pageSize": 0,
- "paged": true,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "unpaged": true
}, - "size": 0,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "totalElements": 0,
- "totalPages": 0
}Create a new DataSink
Authorizations:
path Parameters
| dataSetId required | any <uuid> |
Request Body schema: application/jsonrequired
required | PostgisConfiguration (object) or FrostConfiguration (object) |
| confirmDataLoss | boolean Acknowledges that this update rebuilds the sink's table and discards all stored data. Required (true) when tableName or the referenced element changes on a provisioned sink; ignored otherwise. |
| dataSinkType required | string Enum: "FROST" "POSTGIS" |
Responses
Request samples
- Payload
{- "configuration": {
- "property1": null,
- "property2": null,
- "element": "string",
- "tableName": "traffic_data"
}, - "confirmDataLoss": true,
- "dataSinkType": "FROST"
}Response samples
- 201
- 400
- 401
- 403
- 409
- 500
{- "configuration": {
- "dataStructureVersion": {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}, - "element": "string",
- "tableName": "traffic_data"
}, - "configurationUrn": "string",
- "createdAt": "2025-06-15T10:30:00",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "dataSinkType": "FROST",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUseByLayer": true,
- "inUseByPipeline": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "pipelineId": "621ef2b0-ba1d-48e5-89dc-b778e6ed42fd",
- "provisioned": true
}Delete a DataSink
Authorizations:
path Parameters
| id required | string <uuid> |
| dataSetId required | any <uuid> |
Responses
Response samples
- 400
- 401
- 403
- 404
- 409
- 500
{- "detail": "A dataset and its sub-entities can only be changed while the dataset is DRAFT. Unstage or unrelease the dataset first.",
- "instance": "/datasets/{dataSetId}/datasinks/{id}",
- "status": 400,
- "title": "Bad Request",
- "type": "urn:civitas:error:DATASET_NOT_EDITABLE"
}Get DataSink by ID
Authorizations:
path Parameters
| id required | string <uuid> |
| dataSetId required | any <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
{- "configuration": {
- "dataStructureVersion": {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}, - "element": "string",
- "tableName": "traffic_data"
}, - "configurationUrn": "string",
- "createdAt": "2025-06-15T10:30:00",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "dataSinkType": "FROST",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUseByLayer": true,
- "inUseByPipeline": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "pipelineId": "621ef2b0-ba1d-48e5-89dc-b778e6ed42fd",
- "provisioned": true
}Partially update a DataSink
Authorizations:
path Parameters
| id required | string <uuid> |
| dataSetId required | any <uuid> |
Request Body schema: application/jsonrequired
PostgisConfiguration (object) or FrostConfiguration (object) | |
| confirmDataLoss | boolean Acknowledges that this update rebuilds the sink's table and discards all stored data. Required (true) when tableName or the referenced element changes on a provisioned sink; ignored otherwise. |
| dataSinkType | string Enum: "FROST" "POSTGIS" |
Responses
Request samples
- Payload
{- "configuration": {
- "property1": null,
- "property2": null,
- "element": "string",
- "tableName": "traffic_data"
}, - "confirmDataLoss": true,
- "dataSinkType": "FROST"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "configuration": {
- "dataStructureVersion": {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}, - "element": "string",
- "tableName": "traffic_data"
}, - "configurationUrn": "string",
- "createdAt": "2025-06-15T10:30:00",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "dataSinkType": "FROST",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUseByLayer": true,
- "inUseByPipeline": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "pipelineId": "621ef2b0-ba1d-48e5-89dc-b778e6ed42fd",
- "provisioned": true
}Replace a DataSink
Authorizations:
path Parameters
| id required | string <uuid> |
| dataSetId required | any <uuid> |
Request Body schema: application/jsonrequired
required | PostgisConfiguration (object) or FrostConfiguration (object) |
| confirmDataLoss | boolean Acknowledges that this update rebuilds the sink's table and discards all stored data. Required (true) when tableName or the referenced element changes on a provisioned sink; ignored otherwise. |
| dataSinkType required | string Enum: "FROST" "POSTGIS" |
Responses
Request samples
- Payload
{- "configuration": {
- "property1": null,
- "property2": null,
- "element": "string",
- "tableName": "traffic_data"
}, - "confirmDataLoss": true,
- "dataSinkType": "FROST"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "configuration": {
- "dataStructureVersion": {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}, - "element": "string",
- "tableName": "traffic_data"
}, - "configurationUrn": "string",
- "createdAt": "2025-06-15T10:30:00",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "dataSinkType": "FROST",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUseByLayer": true,
- "inUseByPipeline": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "pipelineId": "621ef2b0-ba1d-48e5-89dc-b778e6ed42fd",
- "provisioned": true
}List all Layers for a dataset
Authorizations:
path Parameters
| dataSetId required | any <uuid> |
query Parameters
| page | integer >= 0 Default: 0 Zero-based page index (0..N) |
| size | integer >= 1 Default: 20 The size of the page to be returned |
| sort | Array of strings Default: "createdAt,DESC" Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. |
| id | string Example: id=1,2,3 Filter by one or more IDs (comma-separated). |
| createdAtFrom | string <date-time> Example: createdAtFrom=2024-01-01T00:00:00Z Filter by creation date greater than or equal to this value (ISO 8601). |
| createdAtTo | string <date-time> Example: createdAtTo=2024-12-31T23:59:59Z Filter by creation date less than or equal to this value (ISO 8601). |
| modifiedAtFrom | string <date-time> Example: modifiedAtFrom=2024-01-01T00:00:00Z Filter by modification date greater than or equal to this value (ISO 8601). |
| modifiedAtTo | string <date-time> Example: modifiedAtTo=2024-12-31T23:59:59Z Filter by modification date less than or equal to this value (ISO 8601). |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "content": [
- {
- "alternativeStyleIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "attribute": [
- "string"
], - "cqlFilter": "string",
- "createdAt": "2025-06-15T10:30:00",
- "crs": "string",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "dataSinkId": "d5b80dfe-0335-4d90-b1c3-ece455c91130",
- "defaultStyleId": "7c1ad1be-33c1-4d72-b742-ac8cc28b8ba1",
- "description": "string",
- "geometryColumnRef": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "latLonBoundingBox": {
- "property1": null,
- "property2": null
}, - "layerName": "string",
- "modifiedAt": "2025-06-15T14:22:00",
- "nativeBoundingBox": {
- "property1": null,
- "property2": null
}, - "title": "string"
}
], - "empty": true,
- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "pageable": {
- "offset": 0,
- "pageNumber": 0,
- "pageSize": 0,
- "paged": true,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "unpaged": true
}, - "size": 0,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "totalElements": 0,
- "totalPages": 0
}Create a new Layer
Authorizations:
path Parameters
| dataSetId required | any <uuid> |
Request Body schema: application/jsonrequired
| alternativeStyleIds | Array of strings <uuid> [ items <uuid > ] |
| attribute | Array of strings |
| cqlFilter | string |
| crs | string |
| dataSinkId required | string <uuid> |
| defaultStyleId | string <uuid> |
| description | string |
| geometryColumnRef | string |
object | |
| layerName required | string non-empty ^[A-Za-z_-][A-Za-z0-9_-]*$ |
object | |
| title | string |
Responses
Request samples
- Payload
{- "alternativeStyleIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "attribute": [
- "string"
], - "cqlFilter": "string",
- "crs": "string",
- "dataSinkId": "d5b80dfe-0335-4d90-b1c3-ece455c91130",
- "defaultStyleId": "7c1ad1be-33c1-4d72-b742-ac8cc28b8ba1",
- "description": "string",
- "geometryColumnRef": "string",
- "latLonBoundingBox": {
- "property1": null,
- "property2": null
}, - "layerName": "string",
- "nativeBoundingBox": {
- "property1": null,
- "property2": null
}, - "title": "string"
}Response samples
- 201
- 400
- 401
- 403
- 409
- 500
{- "alternativeStyleIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "attribute": [
- "string"
], - "cqlFilter": "string",
- "createdAt": "2025-06-15T10:30:00",
- "crs": "string",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "dataSinkId": "d5b80dfe-0335-4d90-b1c3-ece455c91130",
- "defaultStyleId": "7c1ad1be-33c1-4d72-b742-ac8cc28b8ba1",
- "description": "string",
- "geometryColumnRef": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "latLonBoundingBox": {
- "property1": null,
- "property2": null
}, - "layerName": "string",
- "modifiedAt": "2025-06-15T14:22:00",
- "nativeBoundingBox": {
- "property1": null,
- "property2": null
}, - "title": "string"
}Delete a Layer
Authorizations:
path Parameters
| id required | string <uuid> |
| dataSetId required | any <uuid> |
Responses
Response samples
- 400
- 401
- 403
- 404
- 409
- 500
{- "detail": "A dataset and its sub-entities can only be changed while the dataset is DRAFT. Unstage or unrelease the dataset first.",
- "instance": "/datasets/{dataSetId}/layers/{id}",
- "status": 400,
- "title": "Bad Request",
- "type": "urn:civitas:error:DATASET_NOT_EDITABLE"
}Get Layer by ID
Authorizations:
path Parameters
| id required | string <uuid> |
| dataSetId required | any <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
{- "alternativeStyleIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "attribute": [
- "string"
], - "cqlFilter": "string",
- "createdAt": "2025-06-15T10:30:00",
- "crs": "string",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "dataSinkId": "d5b80dfe-0335-4d90-b1c3-ece455c91130",
- "defaultStyleId": "7c1ad1be-33c1-4d72-b742-ac8cc28b8ba1",
- "description": "string",
- "geometryColumnRef": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "latLonBoundingBox": {
- "property1": null,
- "property2": null
}, - "layerName": "string",
- "modifiedAt": "2025-06-15T14:22:00",
- "nativeBoundingBox": {
- "property1": null,
- "property2": null
}, - "title": "string"
}Partially update a layer
Applies a partial JSON update to an existing layer. Only provided fields are modified.
Authorizations:
path Parameters
| id required | string <uuid> |
| dataSetId required | any <uuid> |
Request Body schema: application/jsonrequired
| alternativeStyleIds | Array of strings <uuid> [ items <uuid > ] |
| attribute | Array of strings |
| cqlFilter | string |
| crs | string |
| dataSinkId | string <uuid> |
| defaultStyleId | string <uuid> |
| description | string |
| geometryColumnRef | string |
object | |
| layerName | string non-empty ^[A-Za-z_-][A-Za-z0-9_-]*$ |
object | |
| title | string |
Responses
Request samples
- Payload
{- "alternativeStyleIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "attribute": [
- "string"
], - "cqlFilter": "string",
- "crs": "string",
- "dataSinkId": "d5b80dfe-0335-4d90-b1c3-ece455c91130",
- "defaultStyleId": "7c1ad1be-33c1-4d72-b742-ac8cc28b8ba1",
- "description": "string",
- "geometryColumnRef": "string",
- "latLonBoundingBox": {
- "property1": null,
- "property2": null
}, - "layerName": "string",
- "nativeBoundingBox": {
- "property1": null,
- "property2": null
}, - "title": "string"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "alternativeStyleIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "attribute": [
- "string"
], - "cqlFilter": "string",
- "createdAt": "2025-06-15T10:30:00",
- "crs": "string",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "dataSinkId": "d5b80dfe-0335-4d90-b1c3-ece455c91130",
- "defaultStyleId": "7c1ad1be-33c1-4d72-b742-ac8cc28b8ba1",
- "description": "string",
- "geometryColumnRef": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "latLonBoundingBox": {
- "property1": null,
- "property2": null
}, - "layerName": "string",
- "modifiedAt": "2025-06-15T14:22:00",
- "nativeBoundingBox": {
- "property1": null,
- "property2": null
}, - "title": "string"
}Replace a Layer
Authorizations:
path Parameters
| id required | string <uuid> |
| dataSetId required | any <uuid> |
Request Body schema: application/jsonrequired
| alternativeStyleIds | Array of strings <uuid> [ items <uuid > ] |
| attribute | Array of strings |
| cqlFilter | string |
| crs | string |
| dataSinkId required | string <uuid> |
| defaultStyleId | string <uuid> |
| description | string |
| geometryColumnRef | string |
object | |
| layerName required | string non-empty ^[A-Za-z_-][A-Za-z0-9_-]*$ |
object | |
| title | string |
Responses
Request samples
- Payload
{- "alternativeStyleIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "attribute": [
- "string"
], - "cqlFilter": "string",
- "crs": "string",
- "dataSinkId": "d5b80dfe-0335-4d90-b1c3-ece455c91130",
- "defaultStyleId": "7c1ad1be-33c1-4d72-b742-ac8cc28b8ba1",
- "description": "string",
- "geometryColumnRef": "string",
- "latLonBoundingBox": {
- "property1": null,
- "property2": null
}, - "layerName": "string",
- "nativeBoundingBox": {
- "property1": null,
- "property2": null
}, - "title": "string"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "alternativeStyleIds": [
- "497f6eca-6276-4993-bfeb-53cbbbba6f08"
], - "attribute": [
- "string"
], - "cqlFilter": "string",
- "createdAt": "2025-06-15T10:30:00",
- "crs": "string",
- "dataSetId": "4d7600aa-4d53-4144-aa57-ce0c5b68b1da",
- "dataSinkId": "d5b80dfe-0335-4d90-b1c3-ece455c91130",
- "defaultStyleId": "7c1ad1be-33c1-4d72-b742-ac8cc28b8ba1",
- "description": "string",
- "geometryColumnRef": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "latLonBoundingBox": {
- "property1": null,
- "property2": null
}, - "layerName": "string",
- "modifiedAt": "2025-06-15T14:22:00",
- "nativeBoundingBox": {
- "property1": null,
- "property2": null
}, - "title": "string"
}Create a new data structure version
Authorizations:
path Parameters
| dataStructureId required | any <uuid> |
Request Body schema: application/jsonrequired
| description | string |
| importedStructureUrns | Array of strings |
object Data model definition as a JSON Schema document | |
| modelName | string |
object |
Responses
Request samples
- Payload
{- "description": "string",
- "importedStructureUrns": [
- "string"
], - "model": {
- "property1": null,
- "property2": null
}, - "modelName": "string",
- "styles": {
- "property1": null,
- "property2": null
}
}Response samples
- 201
- 400
- 401
- 403
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataStructure": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "Initial version of traffic sensor schema",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "importedStructureUrns": [
- "string"
], - "inUse": true,
- "inUseByReleased": true,
- "model": {
- "property1": null,
- "property2": null
}, - "modelName": "string",
- "modelUrn": "string",
- "modifiedAt": "2025-06-15T14:22:00",
- "styles": {
- "property1": null,
- "property2": null
}, - "version": "1.0.0"
}Get data structure version by ID
Authorizations:
path Parameters
| id required | string <uuid> |
| dataStructureId required | any <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataStructure": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "Initial version of traffic sensor schema",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "importedStructureUrns": [
- "string"
], - "inUse": true,
- "inUseByReleased": true,
- "model": {
- "property1": null,
- "property2": null
}, - "modelName": "string",
- "modelUrn": "string",
- "modifiedAt": "2025-06-15T14:22:00",
- "styles": {
- "property1": null,
- "property2": null
}, - "version": "1.0.0"
}Partially update a data structure version
Authorizations:
path Parameters
| id required | string <uuid> |
| dataStructureId required | any <uuid> |
Request Body schema: application/jsonrequired
| description | string |
| importedStructureUrns | Array of strings |
object Data model definition as a JSON Schema document | |
| modelName | string |
object |
Responses
Request samples
- Payload
{- "description": "string",
- "importedStructureUrns": [
- "string"
], - "model": {
- "property1": null,
- "property2": null
}, - "modelName": "string",
- "styles": {
- "property1": null,
- "property2": null
}
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataStructure": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "Initial version of traffic sensor schema",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "importedStructureUrns": [
- "string"
], - "inUse": true,
- "inUseByReleased": true,
- "model": {
- "property1": null,
- "property2": null
}, - "modelName": "string",
- "modelUrn": "string",
- "modifiedAt": "2025-06-15T14:22:00",
- "styles": {
- "property1": null,
- "property2": null
}, - "version": "1.0.0"
}Replace a data structure version
Authorizations:
path Parameters
| id required | string <uuid> |
| dataStructureId required | any <uuid> |
Request Body schema: application/jsonrequired
| description | string |
| importedStructureUrns | Array of strings |
object Data model definition as a JSON Schema document | |
| modelName | string |
object |
Responses
Request samples
- Payload
{- "description": "string",
- "importedStructureUrns": [
- "string"
], - "model": {
- "property1": null,
- "property2": null
}, - "modelName": "string",
- "styles": {
- "property1": null,
- "property2": null
}
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataStructure": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "Initial version of traffic sensor schema",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "importedStructureUrns": [
- "string"
], - "inUse": true,
- "inUseByReleased": true,
- "model": {
- "property1": null,
- "property2": null
}, - "modelName": "string",
- "modelUrn": "string",
- "modifiedAt": "2025-06-15T14:22:00",
- "styles": {
- "property1": null,
- "property2": null
}, - "version": "1.0.0"
}Release a data structure version
Releases a data structure version by setting status to AVAILABLE. Requires a model (JSON schema) with exactly one root Element that reaches every other member.
Authorizations:
path Parameters
| dataStructureId required | string <uuid> |
| versionId required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataStructure": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "Initial version of traffic sensor schema",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "importedStructureUrns": [
- "string"
], - "inUse": true,
- "inUseByReleased": true,
- "model": {
- "property1": null,
- "property2": null
}, - "modelName": "string",
- "modelUrn": "string",
- "modifiedAt": "2025-06-15T14:22:00",
- "styles": {
- "property1": null,
- "property2": null
}, - "version": "1.0.0"
}Update metadata of a released data structure version
Applies a JSON merge patch to the description of a released data structure version (AVAILABLE status). An omitted field keeps its value. The description is the only field of a released version that can change; a request that contains any other field answers 400. For DRAFT versions, use PATCH /datastructures/{dataStructureId}/versions/{versionId} instead.
Authorizations:
path Parameters
| dataStructureId required | string <uuid> |
| versionId required | string <uuid> |
Request Body schema: application/jsonrequired
| description | string |
Responses
Request samples
- Payload
{- "description": "string"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataStructure": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "Initial version of traffic sensor schema",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "importedStructureUrns": [
- "string"
], - "inUse": true,
- "inUseByReleased": true,
- "model": {
- "property1": null,
- "property2": null
}, - "modelName": "string",
- "modelUrn": "string",
- "modifiedAt": "2025-06-15T14:22:00",
- "styles": {
- "property1": null,
- "property2": null
}, - "version": "1.0.0"
}Unrelease a data structure version
Unreleases a data structure version by setting status back to DRAFT. Cannot unrelease if this is the only released version of a released DataStructure - unrelease the DataStructure first in that case.
Authorizations:
path Parameters
| dataStructureId required | string <uuid> |
| versionId required | string <uuid> |
Responses
Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "createdAt": "2025-06-15T10:30:00",
- "dataStructure": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "Initial version of traffic sensor schema",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "importedStructureUrns": [
- "string"
], - "inUse": true,
- "inUseByReleased": true,
- "model": {
- "property1": null,
- "property2": null
}, - "modelName": "string",
- "modelUrn": "string",
- "modifiedAt": "2025-06-15T14:22:00",
- "styles": {
- "property1": null,
- "property2": null
}, - "version": "1.0.0"
}List all datapools
Returns a paginated, filterable list of datapools. Supports sorting and specification-based filtering.
Authorizations:
query Parameters
| page | integer >= 0 Default: 0 Zero-based page index (0..N) |
| size | integer >= 1 Default: 20 The size of the page to be returned |
| sort | Array of strings Default: "createdAt,DESC" Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. |
| id | string Example: id=1,2,3 Filter by one or more IDs (comma-separated). |
| createdAtFrom | string <date-time> Example: createdAtFrom=2024-01-01T00:00:00Z Filter by creation date greater than or equal to this value (ISO 8601). |
| createdAtTo | string <date-time> Example: createdAtTo=2024-12-31T23:59:59Z Filter by creation date less than or equal to this value (ISO 8601). |
| modifiedAtFrom | string <date-time> Example: modifiedAtFrom=2024-01-01T00:00:00Z Filter by modification date greater than or equal to this value (ISO 8601). |
| modifiedAtTo | string <date-time> Example: modifiedAtTo=2024-12-31T23:59:59Z Filter by modification date less than or equal to this value (ISO 8601). |
| name | string Example: name=mobility Filter by name (partial match, case-insensitive). |
| description | string Example: description=governance Filter by description (partial match, case-insensitive). |
| q | string Example: q=city Search in name or description (partial match, case-insensitive). |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "content": [
- {
- "contactPerson": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "createdAt": "2025-06-15T10:30:00",
- "datasets": [
- "string"
], - "description": "Groups all mobility-related datasets under one governance boundary",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "City Mobility DataPool"
}
], - "empty": true,
- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "pageable": {
- "offset": 0,
- "pageNumber": 0,
- "pageSize": 0,
- "paged": true,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "unpaged": true
}, - "size": 0,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "totalElements": 0,
- "totalPages": 0
}Create a new datapool
Creates a new datapool and returns it with a Location header pointing to the new datapool URI.
Authorizations:
Request Body schema: application/jsonrequired
Array of objects (AssignmentScopedInputDTO) unique | |
| contactPersonId | string <uuid> ID of the user designated as the contact person for this datapool |
| description required | string non-empty |
| name required | string [ 3 .. 255 ] characters |
Responses
Request samples
- Payload
{- "assignments": [
- {
- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391"
}
], - "contactPersonId": "22834537-8924-44e7-9ea8-8ffa30265086",
- "description": "string",
- "name": "string"
}Response samples
- 201
- 400
- 401
- 403
- 409
- 500
{- "contactPerson": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "createdAt": "2025-06-15T10:30:00",
- "datasets": [
- "string"
], - "description": "Groups all mobility-related datasets under one governance boundary",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "City Mobility DataPool"
}Delete a datapool
Permanently deletes a datapool by its UUID. Fails with 409 Conflict if any datasets are still assigned to it.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 401
- 403
- 404
- 409
- 500
{- "detail": "Authentication required",
- "instance": "/v1/datasets",
- "status": 401,
- "title": "Unauthorized",
- "type": "urn:civitas:error:UNAUTHORIZED"
}Get datapool by ID
Returns a single datapool identified by its UUID.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
{- "contactPerson": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "createdAt": "2025-06-15T10:30:00",
- "datasets": [
- "string"
], - "description": "Groups all mobility-related datasets under one governance boundary",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "City Mobility DataPool"
}Partially update a datapool
Applies a partial JSON update to an existing datapool. Only provided fields are modified.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
Array of objects (AssignmentScopedInputDTO) unique | |
| contactPersonId | string <uuid> ID of the user designated as the contact person for this datapool |
| description | string non-empty |
| name | string [ 3 .. 255 ] characters |
Responses
Request samples
- Payload
{- "assignments": [
- {
- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391"
}
], - "contactPersonId": "22834537-8924-44e7-9ea8-8ffa30265086",
- "description": "string",
- "name": "string"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "contactPerson": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "createdAt": "2025-06-15T10:30:00",
- "datasets": [
- "string"
], - "description": "Groups all mobility-related datasets under one governance boundary",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "City Mobility DataPool"
}Replace a datapool
Fully replaces an existing datapool with the provided input.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
Array of objects (AssignmentScopedInputDTO) unique | |
| contactPersonId | string <uuid> ID of the user designated as the contact person for this datapool |
| description required | string non-empty |
| name required | string [ 3 .. 255 ] characters |
Responses
Request samples
- Payload
{- "assignments": [
- {
- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391"
}
], - "contactPersonId": "22834537-8924-44e7-9ea8-8ffa30265086",
- "description": "string",
- "name": "string"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "contactPerson": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "createdAt": "2025-06-15T10:30:00",
- "datasets": [
- "string"
], - "description": "Groups all mobility-related datasets under one governance boundary",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "City Mobility DataPool"
}Get assignments
Returns all role assignments scoped to this datapool.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
[- {
- "createdAt": "2025-06-15T10:30:00",
- "group": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "role": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "readonly": true,
- "roleType": "SYSTEM"
}, - "scope": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "scopeType": "DATASET"
}
]List all datasources
Returns a paginated, filterable list of datasources. Supports sorting and specification-based filtering.
Authorizations:
query Parameters
| page | integer >= 0 Default: 0 Zero-based page index (0..N) |
| size | integer >= 1 Default: 20 The size of the page to be returned |
| sort | Array of strings Default: "createdAt,DESC" Sorting criteria in the format: property,(asc|desc). Default sort order is ascending. Multiple sort criteria are supported. |
| id | string Example: id=1,2,3 Filter by one or more IDs (comma-separated). |
| createdAtFrom | string <date-time> Example: createdAtFrom=2024-01-01T00:00:00Z Filter by creation date greater than or equal to this value (ISO 8601). |
| createdAtTo | string <date-time> Example: createdAtTo=2024-12-31T23:59:59Z Filter by creation date less than or equal to this value (ISO 8601). |
| modifiedAtFrom | string <date-time> Example: modifiedAtFrom=2024-01-01T00:00:00Z Filter by modification date greater than or equal to this value (ISO 8601). |
| modifiedAtTo | string <date-time> Example: modifiedAtTo=2024-12-31T23:59:59Z Filter by modification date less than or equal to this value (ISO 8601). |
| name | string Example: name=mqtt-sensor Filter by name (partial match, case-insensitive). |
| description | string Example: description=Temperature sensor Filter by description (partial match, case-insensitive). |
| q | string Example: q=sensor Search in name or description (partial match, case-insensitive). |
| dataSourceStatus | string Enum: "DRAFT" "AVAILABLE" Filter by status (exact match). |
| connectorType | string Enum: "MQTT" "SQL" Filter by connector type (exact match). |
| datapoolId | string <uuid> Example: datapoolId=550e8400-e29b-41d4-a716-446655440000 Filter by DataPool scope. Returns DataSources with scope type ALL, or SPECIFIC DataSources that include this DataPool. |
| datapoolScopeType | string Enum: "ALL" "NONE" "SPECIFIC" Filter by DataPool scope type (exact match). |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "content": [
- {
- "configuration": {
- "property1": null,
- "property2": null,
- "connect_timeout": "5s",
- "keepalive": "30s",
- "protocol_version": "3",
- "qos": 1,
- "tls": {
- "enabled": false
}, - "topics": [
- "sensor/#"
], - "urls": [
- "tcp://broker:1883"
], - "user": "mqttuser"
}, - "configurationUrn": "string",
- "connectorType": "MQTT",
- "createdAt": "2025-06-15T10:30:00",
- "dataSourceStatus": "ACTIVE",
- "dataStructureVersion": {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}, - "datapoolScope": {
- "datapoolIds": [
- "550e8400-e29b-41d4-a716-446655440000"
], - "type": "ALL"
}, - "description": "Real-time traffic sensor data via MQTT broker",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Sensor MQTT"
}
], - "empty": true,
- "first": true,
- "last": true,
- "number": 0,
- "numberOfElements": 0,
- "pageable": {
- "offset": 0,
- "pageNumber": 0,
- "pageSize": 0,
- "paged": true,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "unpaged": true
}, - "size": 0,
- "sort": {
- "empty": true,
- "sorted": true,
- "unsorted": true
}, - "totalElements": 0,
- "totalPages": 0
}Create a new datasource
Creates a new datasource and returns it with a Location header pointing to the new datasource URI.
Authorizations:
Request Body schema: application/jsonrequired
Array of objects (AssignmentScopedInputDTO) unique | |
MqttConnectorConfiguration (object) or SqlConnectorConfiguration (object) Connector-specific configuration. Structure depends on connectorType. | |
| connectorType | string Enum: "MQTT" "SQL" Type of connector (e.g. MQTT, SQL) |
| dataStructureVersionId | string <uuid> ID of the data structure version to associate |
object (DatapoolScopeInputDTO) Datapool scope configuration. Defaults to ALL if omitted on create. | |
| description required | string non-empty Data source description (required) |
| name required | string non-empty Data source name (required) |
Responses
Request samples
- Payload
{- "assignments": [
- {
- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391"
}
], - "configuration": {
- "property1": null,
- "property2": null,
- "connect_timeout": "5s",
- "keepalive": "30s",
- "password": "secret",
- "protocol_version": "3",
- "qos": 1,
- "tls": {
- "enabled": false
}, - "topics": [
- "sensor/#"
], - "urls": [
- "tcp://broker:1883"
], - "user": "mqttuser"
}, - "connectorType": "MQTT",
- "dataStructureVersionId": "4c6dbd5d-de35-4924-850b-7c38f17c9638",
- "datapoolScope": {
- "datapoolIds": [
- "550e8400-e29b-41d4-a716-446655440000"
], - "type": "SPECIFIC"
}, - "description": "string",
- "name": "string"
}Response samples
- 201
- 400
- 401
- 403
- 409
- 500
{- "configuration": {
- "property1": null,
- "property2": null,
- "connect_timeout": "5s",
- "keepalive": "30s",
- "protocol_version": "3",
- "qos": 1,
- "tls": {
- "enabled": false
}, - "topics": [
- "sensor/#"
], - "urls": [
- "tcp://broker:1883"
], - "user": "mqttuser"
}, - "configurationUrn": "string",
- "connectorType": "MQTT",
- "createdAt": "2025-06-15T10:30:00",
- "dataSourceStatus": "ACTIVE",
- "dataStructureVersion": {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}, - "datapoolScope": {
- "datapoolIds": [
- "550e8400-e29b-41d4-a716-446655440000"
], - "type": "ALL"
}, - "description": "Real-time traffic sensor data via MQTT broker",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Sensor MQTT"
}Delete a datasource
Permanently deletes a datasource by its UUID.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 401
- 403
- 404
- 409
- 500
{- "detail": "Authentication required",
- "instance": "/v1/datasets",
- "status": 401,
- "title": "Unauthorized",
- "type": "urn:civitas:error:UNAUTHORIZED"
}Get datasource by ID
Returns a single datasource identified by its UUID.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
{- "configuration": {
- "property1": null,
- "property2": null,
- "connect_timeout": "5s",
- "keepalive": "30s",
- "protocol_version": "3",
- "qos": 1,
- "tls": {
- "enabled": false
}, - "topics": [
- "sensor/#"
], - "urls": [
- "tcp://broker:1883"
], - "user": "mqttuser"
}, - "configurationUrn": "string",
- "connectorType": "MQTT",
- "createdAt": "2025-06-15T10:30:00",
- "dataSourceStatus": "ACTIVE",
- "dataStructureVersion": {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}, - "datapoolScope": {
- "datapoolIds": [
- "550e8400-e29b-41d4-a716-446655440000"
], - "type": "ALL"
}, - "description": "Real-time traffic sensor data via MQTT broker",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Sensor MQTT"
}Partially update a datasource
Applies a partial JSON update to an existing datasource. Only provided fields are modified.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
Array of objects (AssignmentScopedInputDTO) unique | |
MqttConnectorConfiguration (object) or SqlConnectorConfiguration (object) Connector-specific configuration. Structure depends on connectorType. | |
| connectorType | string Enum: "MQTT" "SQL" Type of connector (e.g. MQTT, SQL) |
| dataStructureVersionId | string <uuid> ID of the data structure version to associate |
object (DatapoolScopeInputDTO) Datapool scope configuration. Defaults to ALL if omitted on create. | |
| description | string non-empty Data source description (required) |
| name | string non-empty Data source name (required) |
Responses
Request samples
- Payload
{- "assignments": [
- {
- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391"
}
], - "configuration": {
- "property1": null,
- "property2": null,
- "connect_timeout": "5s",
- "keepalive": "30s",
- "password": "secret",
- "protocol_version": "3",
- "qos": 1,
- "tls": {
- "enabled": false
}, - "topics": [
- "sensor/#"
], - "urls": [
- "tcp://broker:1883"
], - "user": "mqttuser"
}, - "connectorType": "MQTT",
- "dataStructureVersionId": "4c6dbd5d-de35-4924-850b-7c38f17c9638",
- "datapoolScope": {
- "datapoolIds": [
- "550e8400-e29b-41d4-a716-446655440000"
], - "type": "SPECIFIC"
}, - "description": "string",
- "name": "string"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "configuration": {
- "property1": null,
- "property2": null,
- "connect_timeout": "5s",
- "keepalive": "30s",
- "protocol_version": "3",
- "qos": 1,
- "tls": {
- "enabled": false
}, - "topics": [
- "sensor/#"
], - "urls": [
- "tcp://broker:1883"
], - "user": "mqttuser"
}, - "configurationUrn": "string",
- "connectorType": "MQTT",
- "createdAt": "2025-06-15T10:30:00",
- "dataSourceStatus": "ACTIVE",
- "dataStructureVersion": {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}, - "datapoolScope": {
- "datapoolIds": [
- "550e8400-e29b-41d4-a716-446655440000"
], - "type": "ALL"
}, - "description": "Real-time traffic sensor data via MQTT broker",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Sensor MQTT"
}Replace a datasource
Fully replaces an existing datasource with the provided input.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
Array of objects (AssignmentScopedInputDTO) unique | |
MqttConnectorConfiguration (object) or SqlConnectorConfiguration (object) Connector-specific configuration. Structure depends on connectorType. | |
| connectorType | string Enum: "MQTT" "SQL" Type of connector (e.g. MQTT, SQL) |
| dataStructureVersionId | string <uuid> ID of the data structure version to associate |
object (DatapoolScopeInputDTO) Datapool scope configuration. Defaults to ALL if omitted on create. | |
| description required | string non-empty Data source description (required) |
| name required | string non-empty Data source name (required) |
Responses
Request samples
- Payload
{- "assignments": [
- {
- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391"
}
], - "configuration": {
- "property1": null,
- "property2": null,
- "connect_timeout": "5s",
- "keepalive": "30s",
- "password": "secret",
- "protocol_version": "3",
- "qos": 1,
- "tls": {
- "enabled": false
}, - "topics": [
- "sensor/#"
], - "urls": [
- "tcp://broker:1883"
], - "user": "mqttuser"
}, - "connectorType": "MQTT",
- "dataStructureVersionId": "4c6dbd5d-de35-4924-850b-7c38f17c9638",
- "datapoolScope": {
- "datapoolIds": [
- "550e8400-e29b-41d4-a716-446655440000"
], - "type": "SPECIFIC"
}, - "description": "string",
- "name": "string"
}Response samples
- 200
- 400
- 401
- 403
- 404
- 409
- 500
{- "configuration": {
- "property1": null,
- "property2": null,
- "connect_timeout": "5s",
- "keepalive": "30s",
- "protocol_version": "3",
- "qos": 1,
- "tls": {
- "enabled": false
}, - "topics": [
- "sensor/#"
], - "urls": [
- "tcp://broker:1883"
], - "user": "mqttuser"
}, - "configurationUrn": "string",
- "connectorType": "MQTT",
- "createdAt": "2025-06-15T10:30:00",
- "dataSourceStatus": "ACTIVE",
- "dataStructureVersion": {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}, - "datapoolScope": {
- "datapoolIds": [
- "550e8400-e29b-41d4-a716-446655440000"
], - "type": "ALL"
}, - "description": "Real-time traffic sensor data via MQTT broker",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Sensor MQTT"
}Get assignments
Returns all role assignments scoped to this datasource.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 404
- 500
[- {
- "createdAt": "2025-06-15T10:30:00",
- "group": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "id": "550e8400-e29b-41d4-a716-446655440000",
- "modifiedAt": "2025-06-15T14:22:00",
- "role": {
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string",
- "readonly": true,
- "roleType": "SYSTEM"
}, - "scope": {
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "name": "string"
}, - "scopeType": "DATASET"
}
]Release
Transitions the entity from DRAFT to AVAILABLE status.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "configuration": {
- "property1": null,
- "property2": null,
- "connect_timeout": "5s",
- "keepalive": "30s",
- "protocol_version": "3",
- "qos": 1,
- "tls": {
- "enabled": false
}, - "topics": [
- "sensor/#"
], - "urls": [
- "tcp://broker:1883"
], - "user": "mqttuser"
}, - "configurationUrn": "string",
- "connectorType": "MQTT",
- "createdAt": "2025-06-15T10:30:00",
- "dataSourceStatus": "ACTIVE",
- "dataStructureVersion": {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}, - "datapoolScope": {
- "datapoolIds": [
- "550e8400-e29b-41d4-a716-446655440000"
], - "type": "ALL"
}, - "description": "Real-time traffic sensor data via MQTT broker",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Sensor MQTT"
}Update released metadata
Applies a JSON merge patch to the metadata of a released entity. An omitted field keeps its value. A field that is not metadata answers 400, and so does null for assignments or datapoolScope. Only works on entities that are not in DRAFT status.
Authorizations:
path Parameters
| id required | string <uuid> |
Request Body schema: application/jsonrequired
Array of objects (AssignmentScopedInputDTO) unique | |
object (DatapoolScopeInputDTO) Datapool scope configuration. Defaults to ALL if omitted on create. | |
| description | string non-empty Data source description (required) |
| name | string non-empty Data source name (required) |
Responses
Request samples
- Payload
{- "assignments": [
- {
- "groupId": "eb54e96e-21b8-4f54-9cd4-80fccbd06f55",
- "roleId": "7382d58e-652a-4905-b7c9-bcca1e0e5391"
}
], - "datapoolScope": {
- "datapoolIds": [
- "550e8400-e29b-41d4-a716-446655440000"
], - "type": "SPECIFIC"
}, - "description": "string",
- "name": "string"
}Response samples
- 200
- 401
- 403
- 500
{- "configuration": {
- "property1": null,
- "property2": null,
- "connect_timeout": "5s",
- "keepalive": "30s",
- "protocol_version": "3",
- "qos": 1,
- "tls": {
- "enabled": false
}, - "topics": [
- "sensor/#"
], - "urls": [
- "tcp://broker:1883"
], - "user": "mqttuser"
}, - "configurationUrn": "string",
- "connectorType": "MQTT",
- "createdAt": "2025-06-15T10:30:00",
- "dataSourceStatus": "ACTIVE",
- "dataStructureVersion": {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}, - "datapoolScope": {
- "datapoolIds": [
- "550e8400-e29b-41d4-a716-446655440000"
], - "type": "ALL"
}, - "description": "Real-time traffic sensor data via MQTT broker",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Sensor MQTT"
}Unrelease
Transitions the entity from AVAILABLE back to DRAFT status.
Authorizations:
path Parameters
| id required | string <uuid> |
Responses
Response samples
- 200
- 401
- 403
- 500
{- "configuration": {
- "property1": null,
- "property2": null,
- "connect_timeout": "5s",
- "keepalive": "30s",
- "protocol_version": "3",
- "qos": 1,
- "tls": {
- "enabled": false
}, - "topics": [
- "sensor/#"
], - "urls": [
- "tcp://broker:1883"
], - "user": "mqttuser"
}, - "configurationUrn": "string",
- "connectorType": "MQTT",
- "createdAt": "2025-06-15T10:30:00",
- "dataSourceStatus": "ACTIVE",
- "dataStructureVersion": {
- "createdAt": "2019-08-24T14:15:22Z",
- "dataStructureId": "346ea3cc-36e7-445e-abe5-31bb45839066",
- "dataStructureVersionSource": "OWN",
- "dataStructureVersionStatus": "DRAFT",
- "description": "string",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "modelUrn": "string",
- "modifiedAt": "2019-08-24T14:15:22Z",
- "version": "string"
}, - "datapoolScope": {
- "datapoolIds": [
- "550e8400-e29b-41d4-a716-446655440000"
], - "type": "ALL"
}, - "description": "Real-time traffic sensor data via MQTT broker",
- "id": "550e8400-e29b-41d4-a716-446655440000",
- "inUse": true,
- "inUseByReleased": true,
- "modifiedAt": "2025-06-15T14:22:00",
- "name": "Traffic Sensor MQTT"
}