Time to threshold is calculated by the prediction engine by it picking relevant messages off the message bus and fitting a line to them. It is using the individual ci_metric/target as the criteria for that. So no bulk mode is possible. You can script it though:
You can use a query like
SELECT r.robot, r.hub, h.address, q.[ci_metric_id],q.[target]
FROM [NimsoftSLM].[dbo].[S_QOS_DATA] q, [dbo].[CM_NIMBUS_ROBOT] r, [dbo].[CM_NIMBUS_ROBOT] h
where q.robot=r.robot and r.hub=h.hub
and h.is_hub = 1 and ( r.user_tag_1 = 'VNA:rcs' or r.user_tag_1 = 'VNA:ssa' )
and q.qos like 'QOS_DISK_USAGE_PERC' and q.target like '%/dss[0-9]%'
and q.robot like '%LAB10[0-9]%'
order by q.origin
to get the relevant information. Obviously your where clause will be different.
In LUA, you can take that information and create the JSON with something like
TimeToThreshold = "[{\"metricId\":\"" .. value.ci_metric_id .. "\",\"definitionId\":0,\"qosName\":\"QOS_DISK_USAGE_PERC\",\"value\":60.0,\"time\":70,\"units\":\"DAYS\",\"thresholdLevel\":3,\"enabled\":true}]"
Again, some of those values will differ for you.
And then commit that to the appropriate hub with
pds.putString(probecmd, "timeToValueDefinitions", TimeToThreshold)
Send the command _addTimeToValueDefinitions to the prediction_engine.
I have noted that the admin console doesn't seem to like this because it appears to save a copy of these settings somewhere else and so if you use this callback method, admin console will still report that the TTT function isn't enabled but if you query prediction engine with the callback, it will report that they are.
Hope this helps
-Garin