Validate Semantic Model
This documentation is for Kyvos 2026.6.x. To view documentation for other Kyvos versions, click here. |
|---|
Overview
This API validates a Semantic Model and its related configurations.
Method: POST
Request URL: {kyvos-url}/rest/v2/semantic-models/{name-or-id}/validate
Authorization
API Key: sessionid
This method authenticates requests using a session ID which acts like an API key.
BasicAuth: HTTP Authorization Scheme
This method authenticates requests using a username and password sent in the HTTP Authorization header.
Headers
Header Name | Type | Description | Possible Values |
|---|---|---|---|
Content-Type (Required) | String | Specifies media type of request body. |
|
sessionid | String | The session ID is the token received from the login API. Note: Session ID is required for token-based authentication. | – |
Path Parameters
Parameter Name | Type | Description | Possible Values |
|---|---|---|---|
name-or-id (Required) | String | Name or ID of the Semantic Model that needs to be validated. Note: If the Semantic Model name is provided, then folderName must also be provided. | – |
Query Parameters
Parameter Name | Type | Description | Possible Values |
|---|---|---|---|
by | String | Specifies whether the name-or-id parameter should be interpreted as a Semantic Model name or Semantic Model ID. If by=name, provide the Semantic Model name in the name-or-id parameter. If by=id, provide the Semantic Model ID in the name-or-id parameter. The default value is name. | – |
Request Body
Parameter Name | Type | Description | Possible Values |
|---|---|---|---|
folderName | String | Name of the folder containing the Semantic Model to be validated. If the Semantic Model is present in the root directory, specify [Root]. Note: If folderName is not provided, the Semantic Model will be treated as a root-level entity by default. | – |
propertiesJson | String | JSON containing additional Semantic Model properties to be validated along with the Semantic Model. | – |
jobType | String | Specifies the type of job validation to perform. |
|
incrementalType | String | Specifies the incremental validation type. |
|
validateDependentEntities | Boolean | Specifies whether dependent entities should also be validated. |
|
validationType | String | Specifies whether only Semantic Model design validation or subsequent build validation should be performed. |
|
requestId | String | Unique request identifier used to track the validation request. | – |
semanticModelJson | String | JSON containing the logical view of the Semantic Model. Note: An example JSON is provided here. | – |
Responses
200 Success (Valid Semantic Model)
{
"code":0,
"message":"Semantic model validated successfully.",
"validationStatus":"VALID"
}200 Success (Invalid Semantic Model)
{
"code":0,
"message":"Semantic model is invalid.",
"validationStatus":"INVALID",
"validationResult":{
"name":"Accounts",
"subType":"CUBE",
"id":"SMODEL_OBJECT_17823923054733127039095115313736",
"hasError":true,
"type":"ANALYTICAL",
"problems":[
{
"problemFunctionalType":"DESIGN",
"objects":[
{
"name":"accountid",
"id":"MEASURE_341288",
"type":"MEASURE",
"parentId":"Account by table"
}
],
"stackTrace":{
"reason":[
{
"isExists":true,
"isEncoded":false,
"name":"Account by table",
"subType":"REGISTERED",
"id":"17768552829111127070099165929021",
"type":"QUERY",
"message":"Data field associated with measure:accountid is either renamed, deleted or is not visible",
"folderId":"folder_17768552810231127019028112168715",
"object":"OTHERS"
}
]
},
"type":"ERROR",
"message":"accountid measure is invalid"
},
{
"problemFunctionalType":"DESIGN",
"objects":[
{
"name":"accountpid",
"id":"DIMENSION_ATTRIBUTE_913993",
"type":"ATTRIBUTE",
"parentId":"DIM_984155"
}
],
"stackTrace":{
"reason":[
{
"isExists":true,
"isEncoded":false,
"name":"Account by table",
"subType":"REGISTERED",
"id":"17768552829111127070099165929021",
"type":"QUERY",
"message":"Data field associated with attribute:accountpid is either renamed, deleted or is not visible",
"folderId":"folder_17768552810231127019028112168715",
"object":"OTHERS"
}
]
},
"type":"ERROR",
"message":"accountpid attribute of Account by table dimension is invalid"
},
{
"problemFunctionalType":"AI_SETTINGS",
"objects":[
{
"name":"UntitledConnection1sfsdfsdfsdfsdf",
"id":"UntitledConnection1sfsdfsdfsdfsdf",
"type":"DBCONNECTION"
}
],
"stackTrace":{
"reason":[
{
"isExists":true,
"isEncoded":false,
"name":"UntitledConnection1sfsdfsdfsdfsdf",
"id":"UntitledConnection1sfsdfsdfsdfsdf",
"type":"DBCONNECTION",
"message":"Received an UnknownHostException when attempting to interact with a service. See cause for the exact endpoint that is failing to resolve. If this is happening on an endpoint that previously worked, there may be a network connectivity issue or your DNS cache could be storing endpoints for too long.",
"object":"OTHERS"
}
]
},
"type":"WARNING",
"message":"AI settings connection \"UntitledConnection1sfsdfsdfsdfsdf\" is invalid."
}
]
}
}
Status Code | Description |
|---|---|
401 | Authorization information is missing or invalid. |
404 | No matching record found. |
500 | Internal Server Error |
Resources
Refer to this example of JSON structure which can be used as a reference for the propertiesJson parameter in the request body.
{
"TYPE":"ADVANCED_PROPERTIES",
"entities":[
{
"entityPropsValues":{
"property":[
{
"mode":"MANUAL",
"name":"kyvos.process.compute.type",
"value":"KYVOS_QE_COMPUTE"
},
{
"mode":"MANUAL",
"name":"kyvos.cuboid.replication.type",
"value":"LOCAL"
},
{
"mode":"MANUAL",
"name":"kyvos.query.resultcache.strategy",
"value":"NONE"
}
]
},
"subType":"CUBE",
"id":"17830762122520127028058189453617",
"type":"ANALYTICAL"
}
]
}JSON Fields Description
Field | Type | Description | Possible Values | Example |
TYPE | String | The type of property that is being validated. | ADVANCED_PROPERTIES | ADVANCED_PROPERTIES |
entities | Array | A list of entity objects. Each item represents one entity and its associated advanced property information. Multiple entities can be included in the array. | Array with one or more entity objects | [{"id":"...","type":"SMODEL",...}] |
entities[].id | String | The unique identifier of the entity. | Valid entity ID string | 17754811627004127079024192058298 |
entities[].type | String | The primary category of the entity. | RDATASET, RELATIONSHIP, SMODEL | SMODEL |
entities[].subType | String | The sub-category of the entity. Provides additional classification for the entity type. Leave empty if not applicable. | REGISTERED, or empty string | REGISTERED |
entities[].entityPropsValues | Object | A wrapper object containing the advanced property definitions for the entity. | Object containing a property array | {"property":[{...}]} |
entities[].entityPropsValues.property | Array | A list of advanced property objects associated with the entity. Each object represents one property definition. | Array with one or more property objects | [{"name":"spark.kryoserializer.buffer.max","value":"64m","mode":"MANUAL"}] |
entities[].entityPropsValues.property[].name | String | The technical name (key) of the advanced property. | Any valid Kyvos advanced property key | kyvos.process.compute.type |
entities[].entityPropsValues.property[].value | String | The value associated with the advanced property. The expected format depends on the specific property. | Any valid value accepted by the property | KYVOS_QE_COMPUTE |
entities[].entityPropsValues.property[].mode | String | Indicates how the property value is represented. | MANUAL, DEFAULT | MANUAL |
entities[].entityPropsValues.property[].recommendedValue | String | The system-recommended value for the property, when available. | Any string or empty | 128m |
entities[].entityPropsValues.property[].defaultValue | String | The system default value for the property, when available. | Any string or empty | 32m |
entities[].entityPropsValues.property[].remarks | String | Optional descriptive text associated with the property. | Any text string or empty | Increased for large dataset builds |
entities[].entityPropsValues.property[].inheritedValue | Object | Contains details about a value this property may be inheriting from a parent entity or global configuration. | Object containing value and source fields. | {"value":"32m","source":"Global"} |
entities[].entityPropsValues.property[].inheritedValue.value | String | The inherited value associated with the property. | Any string or empty | 32m |
entities[].entityPropsValues.property[].inheritedValue.source | String | The source from which the property value is inherited. | Any string or empty | Global |