PATCH /v1/mlmodels/{id}
from metadata.sdk import configure
from metadata.sdk.entities import MLModels
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# Retrieve, modify, and update
model = MLModels.retrieve("6b04e1d8-b66d-4f78-ab21-beb5be2cf4f2")
model.description = "Updated: Customer segmentation using KMeans with 5 clusters"
model.mlHyperParameters = [
{"name": "n_clusters", "value": "7"},
{"name": "max_iter", "value": "500"}
]
updated = MLModels.update(model)
print(f"Updated to version {updated.version}")
import static org.openmetadata.sdk.fluent.MlModels.*;
// Retrieve, modify, and update
var model = MlModels.retrieve("6b04e1d8-b66d-4f78-ab21-beb5be2cf4f2");
model.setDescription("Updated: Customer segmentation using KMeans with 5 clusters");
var updated = MlModels.update(model);
# Update by ID
curl -X PATCH "{base_url}/api/v1/mlmodels/6b04e1d8-b66d-4f78-ab21-beb5be2cf4f2" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated: Customer segmentation using KMeans with 5 clusters"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/mlmodels/name/mlflow_svc.customer_segmentation" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated: Customer segmentation using KMeans with 5 clusters"}
]'
{
"id": "6b04e1d8-b66d-4f78-ab21-beb5be2cf4f2",
"name": "customer_segmentation",
"fullyQualifiedName": "mlflow_svc.customer_segmentation",
"displayName": "Customer Segmentation Model",
"description": "Updated: Customer segmentation using KMeans with 5 clusters",
"algorithm": "KMeans",
"version": 0.2,
"updatedAt": 1769982669247,
"updatedBy": "admin",
"service": {
"id": "ca22d46e-81b9-4e48-85b5-0adc44980da9",
"type": "mlmodelService",
"name": "mlflow_svc",
"fullyQualifiedName": "mlflow_svc",
"deleted": false
},
"serviceType": "Mlflow",
"href": "http://localhost:8585/api/v1/mlmodels/6b04e1d8-b66d-4f78-ab21-beb5be2cf4f2",
"deleted": false,
"owners": [],
"tags": [],
"followers": [],
"votes": {
"upVotes": 0,
"downVotes": 0
},
"domains": []
}
Update an ML Model
Update ML model properties using JSON Patch
PATCH
/
v1
/
mlmodels
/
{id}
PATCH /v1/mlmodels/{id}
from metadata.sdk import configure
from metadata.sdk.entities import MLModels
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# Retrieve, modify, and update
model = MLModels.retrieve("6b04e1d8-b66d-4f78-ab21-beb5be2cf4f2")
model.description = "Updated: Customer segmentation using KMeans with 5 clusters"
model.mlHyperParameters = [
{"name": "n_clusters", "value": "7"},
{"name": "max_iter", "value": "500"}
]
updated = MLModels.update(model)
print(f"Updated to version {updated.version}")
import static org.openmetadata.sdk.fluent.MlModels.*;
// Retrieve, modify, and update
var model = MlModels.retrieve("6b04e1d8-b66d-4f78-ab21-beb5be2cf4f2");
model.setDescription("Updated: Customer segmentation using KMeans with 5 clusters");
var updated = MlModels.update(model);
# Update by ID
curl -X PATCH "{base_url}/api/v1/mlmodels/6b04e1d8-b66d-4f78-ab21-beb5be2cf4f2" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated: Customer segmentation using KMeans with 5 clusters"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/mlmodels/name/mlflow_svc.customer_segmentation" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated: Customer segmentation using KMeans with 5 clusters"}
]'
{
"id": "6b04e1d8-b66d-4f78-ab21-beb5be2cf4f2",
"name": "customer_segmentation",
"fullyQualifiedName": "mlflow_svc.customer_segmentation",
"displayName": "Customer Segmentation Model",
"description": "Updated: Customer segmentation using KMeans with 5 clusters",
"algorithm": "KMeans",
"version": 0.2,
"updatedAt": 1769982669247,
"updatedBy": "admin",
"service": {
"id": "ca22d46e-81b9-4e48-85b5-0adc44980da9",
"type": "mlmodelService",
"name": "mlflow_svc",
"fullyQualifiedName": "mlflow_svc",
"deleted": false
},
"serviceType": "Mlflow",
"href": "http://localhost:8585/api/v1/mlmodels/6b04e1d8-b66d-4f78-ab21-beb5be2cf4f2",
"deleted": false,
"owners": [],
"tags": [],
"followers": [],
"votes": {
"upVotes": 0,
"downVotes": 0
},
"domains": []
}
Update an ML Model
Update an ML model’s properties using JSON Merge Patch. You can update by ID or by fully qualified name.Update by ID
string
required
UUID of the ML model to update.
Update by Name
UsePATCH /v1/mlmodels/name/{fqn} to update by fully qualified name.
string
required
Fully qualified name of the ML model (e.g.,
mlflow_svc.customer_segmentation).Body Parameters
Send a JSON object with the fields to update. Only provided fields are changed.string
Updated description in Markdown format.
string
Updated display name.
string
Updated algorithm name.
array
array
string
Updated target variable.
array
array
string
Updated domain FQN.
object
Updated custom property values.
PATCH /v1/mlmodels/{id}
from metadata.sdk import configure
from metadata.sdk.entities import MLModels
configure(
host="https://your-company.open-metadata.org/api",
jwt_token="your-jwt-token"
)
# Retrieve, modify, and update
model = MLModels.retrieve("6b04e1d8-b66d-4f78-ab21-beb5be2cf4f2")
model.description = "Updated: Customer segmentation using KMeans with 5 clusters"
model.mlHyperParameters = [
{"name": "n_clusters", "value": "7"},
{"name": "max_iter", "value": "500"}
]
updated = MLModels.update(model)
print(f"Updated to version {updated.version}")
import static org.openmetadata.sdk.fluent.MlModels.*;
// Retrieve, modify, and update
var model = MlModels.retrieve("6b04e1d8-b66d-4f78-ab21-beb5be2cf4f2");
model.setDescription("Updated: Customer segmentation using KMeans with 5 clusters");
var updated = MlModels.update(model);
# Update by ID
curl -X PATCH "{base_url}/api/v1/mlmodels/6b04e1d8-b66d-4f78-ab21-beb5be2cf4f2" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated: Customer segmentation using KMeans with 5 clusters"}
]'
# Update by name
curl -X PATCH "{base_url}/api/v1/mlmodels/name/mlflow_svc.customer_segmentation" \
-H "Authorization: Bearer {access_token}" \
-H "Content-Type: application/json-patch+json" \
-d '[
{"op": "replace", "path": "/description", "value": "Updated: Customer segmentation using KMeans with 5 clusters"}
]'
{
"id": "6b04e1d8-b66d-4f78-ab21-beb5be2cf4f2",
"name": "customer_segmentation",
"fullyQualifiedName": "mlflow_svc.customer_segmentation",
"displayName": "Customer Segmentation Model",
"description": "Updated: Customer segmentation using KMeans with 5 clusters",
"algorithm": "KMeans",
"version": 0.2,
"updatedAt": 1769982669247,
"updatedBy": "admin",
"service": {
"id": "ca22d46e-81b9-4e48-85b5-0adc44980da9",
"type": "mlmodelService",
"name": "mlflow_svc",
"fullyQualifiedName": "mlflow_svc",
"deleted": false
},
"serviceType": "Mlflow",
"href": "http://localhost:8585/api/v1/mlmodels/6b04e1d8-b66d-4f78-ab21-beb5be2cf4f2",
"deleted": false,
"owners": [],
"tags": [],
"followers": [],
"votes": {
"upVotes": 0,
"downVotes": 0
},
"domains": []
}
Returns
Returns the updated ML model object with the new version number.Response
string
Unique identifier for the ML model (UUID format).
string
ML model name.
string
Fully qualified name in format
service.modelName.string
Updated description.
number
Incremented version number.
Error Handling
| Code | Error Type | Description |
|---|---|---|
400 | BAD_REQUEST | Invalid JSON patch or malformed request |
401 | UNAUTHORIZED | Invalid or missing authentication token |
403 | FORBIDDEN | User lacks permission to update this ML model |
404 | NOT_FOUND | ML model with given ID or FQN does not exist |
409 | CONFLICT | Concurrent modification detected |
Was this page helpful?
⌘I