The AI Foundry Pipeline Job job type submits an Azure Machine
Learning Pipeline job in an Azure AI Foundry workspace. Polysync
clones a template Pipeline's definition (the jobs / settings
blocks) and submits a new job whose inputs are overridden by
the Polysync parameter values. The template Pipeline is identified by
its job name — Polysync stores that in the External Id.
This job type is supported on the Azure AI Foundry platform.
name.AI Foundry Pipeline Job (set automatically on
import).GET /jobs?api-version=2024-10-01&$filter=jobType eq 'Pipeline'&$top=200
(scoped to the workspace ARM URL). Each returned name,
properties.displayName, and properties.description becomes a
Polysync Job.
Input + Input&Output parameter values are sent as the inputs block.
Each value is wrapped as { value, type: "literal" } (the only ML
job input shape Polysync supports — literals, not data assets):
{
"properties": {
"jobType": "Pipeline",
"displayName": "<polysync-name>",
"computeId": "<from-template-or-attr>",
"jobs": { "...": "(copied from template)" },
"settings": { "...": "(copied from template)" },
"inputs": {
"<name>": { "value": <typed-value>, "type": "literal" }
}
}
}
| Direction | Sent in inputs |
Updated from properties.outputs |
|---|---|---|
Input |
✅ | ❌ |
Output |
❌ | ✅ |
Input&Output |
✅ | ✅ |
On completion, Polysync reads the job's properties.outputs and writes
any matching Output / Input&Output parameter back to the Polysync
RunParameters.
Polysync reads the template via GET /jobs/{externalId},
then PUT /jobs/{newJobName} with the cloned + overlaid body.
The new name becomes the Polysync RunId.
Status is polled via GET /jobs/{runId} and decoded from
properties.status:
| Azure ML status | Polysync status |
|---|---|
notstarted / starting / provisioning / preparing / queued |
Starting |
running / finalizing |
Running |
completed |
Success |
failed |
Failed |
canceled |
Cancelled |
| (other) | Unknown |
Start / end timestamps come from properties.startTime /
properties.endTime; failure detail from properties.error.message.
Cancel is supported via POST /jobs/{runId}/cancel.
https://ml.azure.com/runs/{runId}
?wsid=/subscriptions/{subId}/resourceGroups/{rg}
/providers/Microsoft.MachineLearningServices/workspaces/{workspaceName}
jobs and
settings verbatim, so a working template makes for working clones.inputs block in the template so the Polysync
importer (and overlay logic) can map parameter names 1:1.inputs.InputNotFound on submit — the parameter name doesn't exist on
the template's inputs. Add the input to the template or rename
the Polysync parameter.failed with empty message — Azure ML hides some errors
in the run's child jobs; open the Monitor URL to inspect the
pipeline graph.