ComponentBody
What a component contains: its stage slots, parameters, steps, connections and the ports it exposes. Drafts and published versions share this shape.
Shape
component_instancesarray of NestedComponentInstanceoptionalOther components this component uses. Always empty in a published version, where they have already been expanded into steps.
- The NestedComponentInstance schema
- component_idComponentId (string · uuid)
- idNodeId (string)
- namestring
- versionComponentVersionRef (string)
- component_refstring or nulloptional
- paramsobjectoptional
- stage_mapobjectoptionalBinds every slot the referenced component declares to a slot of the containing body.
edgesarray of EdgeoptionalConnections between the component's own steps; both ends must be steps of this component.
- The Edge schema
- idEdgeId (string)
- source_node_idNodeId (string)
- target_node_idNodeId (string)
- source_portPortName (string) or nulloptionalAbsent on a dependency-only edge.
- target_portPortName (string) or nulloptionalAbsent on a dependency-only edge.
inputsarray of ComponentInputPortoptional
- The ComponentInputPort schema
- namePortName (string)
targetsarray of PortRef
- The PortRef schema
- node_idNodeId (string)
- portPortName (string)
- descriptionstring or nulloptional
nodesarray of ComponentNodeoptional
- The ComponentNode schema
nodeNode
- The Node schema
- capability_idCapabilityId (string)
- idNodeId (string)
- namestring
- allow_failurebooleanoptionalWhen
true, this node's failure (a non-zero exit or a timeout, after any retries) is non-blocking: it does not fail the enclosing stage or the run. The node's transitive dependents — which can never receive its output — are skipped, while independent branches and later stages keep running. A run whose only failures wereallow_failurenodes finishessucceeded_with_warnings. approvalManualApproval or nulloptionalHolds this step until it is approved. A step deploying to an environment that requires approval is held as well, whether or not this is set.
- The ManualApproval schema
- requiredinteger · int32 or nulloptional0–∞Distinct approvals needed, 1–10. On a gated environment the larger of this and the environment's own count applies.
- changesarray of string or nulloptionalPath globs that decide whether this step runs: when none of them matches a path the push changed, the step is skipped. When absent and
serviceis set, the service's own path globs apply. - configobjectoptionalThe step's provider-specific configuration, checked against the capability's
config_schemawhen the run starts. - connectionProviderConnectionName (string) or nulloptionalThe provider connection to use, by name (e.g.
aws-prod). When absent, the step uses the provider's only connection available to the repository, if there is exactly one. - cpustring or nulloptional
- environmentEnvironmentSlug (string) or nulloptionalThe environment this step deploys to, by slug. It is looked up on the repository and then on each group above it when the run starts.
matrixMatrixSpec or nulloptionalRuns this step once for every combination of the named dimensions' values. At most 100 copies.
- The MatrixSpec schema
- dimensionsobjectEach dimension's name and its list of values. The step's
configreads the current value of a dimension with{"$matrix": "<dimension>"}.
- max_retriesinteger · int32optional0–∞
- memorystring or nulloptional
resource_groupNodeResourceGroup or nulloptionalKeeps this step from running at the same time as any other step, in any of your organization's pipelines, that names the same resource group — a Terraform state, a shared staging database, a fragile external sandbox. The
cancel_previousmode is not accepted here.- The NodeResourceGroup schema
- nameResourceGroupName (string)
- max_wait_secondsinteger · int32 or nulloptional0–∞
- modeConcurrencyModequeueskipcancel_previousor nulloptionalWhat happens when a run wants to deploy while another run holds the lock:
queue(the default) waits its turn,skipskips the step, andcancel_previouscancels the other run.cancel_previousis available on environments only, not on a step's resource group.
- retry_delay_secondsinteger · int32optional0–∞
- serviceServiceSlug (string) or nulloptionalThe catalog service this step acts on, by slug. Optional when the repository holds exactly one service, which is then implied; required when it holds more.
- timeout_secondsinteger · int32 or nulloptional0–∞
- variables_fromEnvironmentSlug (string) or nulloptionalAn environment whose plain variables this step reads, by slug, without deploying there — for a build that bakes the environment's settings in. The step receives the environment's non-secret variables and nothing else: no approval, no lock, no secrets, and no deployment is recorded. A step may name this or
environment, not both. - versionProviderVersion (string) or nulloptionalPins a specific provider version. When absent, the provider's default version for this repository is used, as it stands when the run starts.
- stage_slotStageSlot (string)Which of the component's stage slots this step is placed in.
param_slotsComponentNodeParamsoptionalStep fields whose values come from the component's parameters rather than from the step.
- The ComponentNodeParams schema
- allow_failureComponentParamName (string) or nulloptional
- connectionComponentParamName (string) or nulloptional
- cpuComponentParamName (string) or nulloptional
- environmentComponentParamName (string) or nulloptional
- max_retriesComponentParamName (string) or nulloptional
- memoryComponentParamName (string) or nulloptional
- retry_delay_secondsComponentParamName (string) or nulloptional
- serviceComponentParamName (string) or nulloptional
- timeout_secondsComponentParamName (string) or nulloptional
- variables_fromComponentParamName (string) or nulloptionalThe parameter naming the environment whose plain variables this step reads without deploying there.
outputsarray of ComponentOutputPortoptional
- The ComponentOutputPort schema
- namePortName (string)
sourcePortRef
- The PortRef schema
- node_idNodeId (string)
- portPortName (string)
- descriptionstring or nulloptional
parametersarray of ComponentParameteroptional
- The ComponentParameter schema
- nameComponentParamName (string)
- param_typeComponentParamTypestringnumberbooleanobjectarrayThe JSON shape a parameter's value must have.
- allowed_valuesarray of object or nulloptionalThe only values this parameter accepts. Absent means any value of its type. On a published parameter, adding this list or removing a value from it is a major version change; adding a value is a minor one.
- defaultobjectoptional
- descriptionstring or nulloptional
- requiredbooleanoptionalWhether a pipeline using the component must supply a value. A required parameter cannot have a default.
- stage_slotsarray of StageSlot (string)optionalThe positions the component's steps occupy, in order. A pipeline using the component maps each slot to one of its own stages.
Example
Synthesized example{
"component_instances": [
{
"component_id": "0299e766-c8e2-4d18-b6d8-1d42bc0fe61f",
"id": "id-527f",
"name": "payments-api",
"version": "version-7c99"
}
],
"edges": [
{
"id": "id-d8eb",
"source_node_id": "f453d6c0-ab4c-406c-be82-241e86da538a",
"target_node_id": "d80e1b18-b1dc-4f50-b96e-de6390bc6ed5"
}
],
"inputs": [
{
"name": "payments-api",
"targets": []
}
],
"nodes": [
{
"node": {
"capability_id": "721a356e-0558-4b82-95ee-7930d118da5a",
"id": "id-dc07",
"name": "payments-api"
},
"stage_slot": "stage-slot-1320"
},
{
"node": {
"capability_id": "14c2bb9c-2f93-4da6-99b8-1354f0e990ed",
"id": "id-9776",
"name": "payments-api"
},
"stage_slot": "stage-slot-3def"
}
],
"outputs": [
{
"name": "payments-api",
"source": {
"node_id": "1eae2054-eaa9-434a-b93a-1999bd1bf750",
"port": "port-81d0"
}
},
{
"name": "payments-api",
"source": {
"node_id": "65589503-da8f-4fba-ae18-955ec0fa766b",
"port": "port-8bb0"
}
}
],
"parameters": [
{
"name": "payments-api",
"param_type": "string"
}
],
"stage_slots": [
"stage-slots-cac4",
"stage-slots-169f"
]
}
Graph
Used by
Sent by 0 operations
No operation takes it as a request body.
Returned by 8 operations
- POSTCreate a reusable pipeline component/groups/{group_id}/pipeline-components
- GETRead one component, its draft body and its published versions/groups/{group_id}/pipeline-components/{component_id}
- PUTReplace a component's draft body/groups/{group_id}/pipeline-components/{component_id}
- GETRead one published version, including the body it froze/groups/{group_id}/pipeline-components/{component_id}/versions/{version}
- POSTCreate a reusable pipeline component/repositories/{repo_id}/pipeline-components
- GETRead one component, its draft body and its published versions/repositories/{repo_id}/pipeline-components/{component_id}
- PUTReplace a component's draft body/repositories/{repo_id}/pipeline-components/{component_id}
- GETRead one published version, including the body it froze/repositories/{repo_id}/pipeline-components/{component_id}/versions/{version}