@app.put("/user/{user_uuid}/models/{type_name}/{model_name}/{model_uuid}")
async def update_model(
user_uuid: str,
type_name: str,
model_name: str,
model_uuid: str,
model: dict[str, Any],
) -> dict[str, Any]:
registry = Registry.get_default()
validated_model = registry.validate(type_name, model_name, model)
found_model = await DefaultDB.backend().find_model(model_uuid=model_uuid)
found_model_name = found_model["json_str"].get("name")
if model["name"] != found_model_name:
await check_model_name_uniqueness_and_raise(user_uuid, model["name"])
await DefaultDB.backend().update_model(
model_uuid=found_model["uuid"],
user_uuid=user_uuid,
type_name=type_name,
model_name=model_name,
json_str=validated_model.model_dump_json(),
)
return validated_model.model_dump()