PipelineComponentResponse
A reusable pipeline component: its draft and its published versions.
Shape
bodyComponentBodyThe draft: what the next published version will contain.
- The ComponentBody schema
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.
- 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.
- 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. - 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.
- created_atstring
created_byActorSummary
- The ActorSummary schema
- emailstring
- idstring
- usernamestring
- avatar_urlstring or nulloptional
- idComponentId (string · uuid)
- nameComponentName (string)
- scopeScopeRef
- updated_atstring
- version_countinteger · int640–∞
- descriptionstring or nulloptional
diagnosticsValidationSummary or nulloptionalProblems found in the draft. A draft is saved even when it is invalid.
- The ValidationSummary schema
- validboolean
violationsarray of ValidationViolation
- The ValidationViolation schema
- codestringStable machine-readable code (e.g.
cycle_detected,type_mismatch,required_input_not_wired). - messagestringHuman-readable description.
targetValidationTarget
- The ValidationTarget schema
- kindValidationTargetKindpipelinestagenodeedgecomponent_instanceWhich kind of element a validation violation targets.
- idstringoptionalId of the stage, step, connection or component instance at fault; empty for a problem with the pipeline as a whole.
warningsarray of ValidationWarningoptionalThings worth knowing that do not make the definition invalid, such as a deprecated component version. A violation stops a published definition from being saved; a warning never does. Left out when there are none.
- The ValidationWarning schema
- codestringStable machine code — the warning rule's own name, exactly as a violation's is.
- messagestring
targetValidationTarget
- The ValidationTarget schema
- kindValidationTargetKindpipelinestagenodeedgecomponent_instanceWhich kind of element a validation violation targets.
- idstringoptionalId of the stage, step, connection or component instance at fault; empty for a problem with the pipeline as a whole.
- latest_versionComponentVersion (string) or nulloptional
versionsarray of ComponentVersionSummaryoptionalPublished versions, newest first. Present on a single-component read.
- The ComponentVersionSummary schema
- capability_requirementsarray of CapabilityId (string)The provider capabilities the version's steps use.
- contract_digeststringA SHA-256 fingerprint, in hex, of what a pipeline using the version must satisfy: its parameters, its ports and the variables it reads. It changes only when that contract does.
- depthinteger · int320–∞How many levels of components the version spans: 1 when it uses no other component.
- expanded_node_countinteger · int320–∞How many steps the version expands into.
- lifecycle_stateComponentLifecycleStateactivedeprecatedsunsetWhere a published version sits in its retirement. A
deprecatedversion still resolves for an exact reference and still runs, but no floating reference selects it — which is what makes deprecating the safe way to retire one. Asunsetversion refuses to resolve at all, exact reference included. - published_atstring
published_byActorSummary
- The ActorSummary schema
- emailstring
- idstring
- usernamestring
- avatar_urlstring or nulloptional
- variable_requirementsarray of EnvironmentVariableName (string)The variables the version's steps read from the pipeline that uses it. Each must be declared on the environment those steps run in, or on a group or repository above the pipeline, or a run is refused when it starts.
- versionComponentVersion (string)
- changelogstring or nulloptional
Example
Synthesized example{
"body": {
"component_instances": [
{
"component_id": "cf6c97a5-1913-4ad0-83c2-dd1002ad2473",
"id": "id-6eab",
"name": "payments-api",
"version": "version-6626"
},
{
"component_id": "9706a15a-8277-4d28-b4e9-a430ca773bed",
"id": "id-b75c",
"name": "payments-api",
"version": "version-252c"
}
],
"edges": [
{
"id": "id-213f",
"source_node_id": "f80d3d1e-9632-4115-a9b2-1b926cdaaad4",
"target_node_id": "b14ef413-4fe3-47d6-a0db-ecee4e4315d1"
}
],
"inputs": [
{
"name": "payments-api",
"targets": []
},
{
"name": "payments-api",
"targets": []
}
],
"nodes": [
{
"node": {
"capability_id": "69931d3c-4e8f-488e-abfe-558d1d8104e4",
"id": "id-b6dd",
"name": "payments-api"
},
"stage_slot": "stage-slot-f2d1"
}
],
"outputs": [
{
"name": "payments-api",
"source": {
"node_id": "4c57eb94-7276-4086-b257-22a6556ccd7f",
"port": "port-ce00"
}
},
{
"name": "payments-api",
"source": {
"node_id": "322443fc-dba9-4528-b5b5-174fe1cb2132",
"port": "port-de0e"
}
}
],
"parameters": [
{
"name": "payments-api",
"param_type": "string"
}
],
"stage_slots": [
"stage-slots-a60e",
"stage-slots-6be9"
]
},
"created_at": "2026-10-12T10:14:07Z",
"created_by": {
"email": "tomas@acme.example",
"id": "id-2d5c",
"username": "tomas",
"avatar_url": "https://gitmoap.example/acme/d1d0a9cb"
},
"id": "fbc44e93-6253-4206-9be5-cb4f55f71738",
"name": "payments-api",
"scope": {
"group": "4c1d8e2f-6a3b-4f90-b7c5-1e2d3c4b5a69"
},
"updated_at": "2026-10-08T18:31:33Z",
"version_count": 3,
"description": "Renders each region as density contours of its operations.",
"diagnostics": {
"valid": false,
"violations": [
{
"code": "code-4d39",
"message": "Pin a page's payload to the build that rendered it",
"target": {
"kind": "pipeline"
}
}
],
"warnings": [
{
"code": "code-420b",
"message": "Draw the region map from operation density",
"target": {
"kind": "pipeline"
}
},
{
"code": "code-40e9",
"message": "Stream pipeline status into the run header",
"target": {
"kind": "pipeline"
}
}
]
},
"latest_version": "latest-version-9ad8",
"versions": [
{
"capability_requirements": [],
"contract_digest": "contract-digest-232d",
"depth": 72,
"expanded_node_count": 6,
"lifecycle_state": "active",
"published_at": "2026-10-13T11:11:34Z",
"published_by": {
"email": "mara@acme.example",
"id": "id-f7e5",
"username": "lin"
},
"variable_requirements": [],
"version": "version-8582"
}
]
}
Graph
Used inside
No schema contains this one.
Used by
Sent by 0 operations
No operation takes it as a request body.
Returned by 6 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}
- 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}