Skip to content
GitmoapAPIBeta
Schema

ComponentListItem

A component this group or repository may use, and whether everything it needs is installed.

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
    • 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 were allow_failure nodes finishes succeeded_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 service is set, the service's own path globs apply.
        • configobjectoptionalThe step's provider-specific configuration, checked against the capability's config_schema when 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_previous mode 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
    • 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
  • idComponentId (string · uuid)
  • inheritedbooleanWhether the component belongs to a group above the group or repository being listed, rather than to it.
  • nameComponentName (string)
  • 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
  • unsatisfied_capabilitiesarray of CapabilityId (string)optionalCapabilities the latest active version needs that no provider installed here supplies. Left out when there are none.
  • 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 deprecated version 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. A sunset version refuses to resolve at all, exact reference included.
    • published_atstring
    • published_byActorSummary
    • 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": "d8f2674f-3dde-4033-9f95-74c9fa4bf951",
"id": "id-662b",
"name": "payments-api",
"version": "version-a8e9"
},
{
"component_id": "156b1ee6-7120-47ae-9f58-779f4b082976",
"id": "id-e078",
"name": "payments-api",
"version": "version-5133"
}
],
"edges": [
{
"id": "id-5989",
"source_node_id": "d30ad090-d1c9-46f7-b05a-3f7e012baa6e",
"target_node_id": "36c38b47-e667-48d2-9a9c-99d32c845ee3"
},
{
"id": "id-a1b5",
"source_node_id": "e58e54a7-23ba-4fa4-9e5d-fdc3bb8885d9",
"target_node_id": "d0e4ebd1-63ce-4760-9fce-b2bbf541c884"
}
],
"inputs": [
{
"name": "payments-api",
"targets": []
},
{
"name": "payments-api",
"targets": []
}
],
"nodes": [
{
"node": {
"capability_id": "7a6d4ee8-67d5-4cb4-93e8-7f7895833c51",
"id": "id-111c",
"name": "payments-api"
},
"stage_slot": "stage-slot-02c6"
},
{
"node": {
"capability_id": "03c22bf3-2e95-4aa7-a13c-8da4c001864f",
"id": "id-ad90",
"name": "payments-api"
},
"stage_slot": "stage-slot-3f92"
}
],
"outputs": [
{
"name": "payments-api",
"source": {
"node_id": "e3e3f4f0-c374-43bb-a05d-88ca1f2eea43",
"port": "port-6a99"
}
}
],
"parameters": [
{
"name": "payments-api",
"param_type": "string"
}
],
"stage_slots": [
"stage-slots-bb3e"
]
},
"created_at": "2026-10-09T05:46:53Z",
"created_by": {
"email": "lin@acme.example",
"id": "id-cd15",
"username": "tomas",
"avatar_url": "https://gitmoap.example/acme/e812b9d6"
},
"id": "78b6d059-f169-4fc8-b317-4b6b81944f00",
"inherited": false,
"name": "payments-api",
"scope": {
"group": "4c1d8e2f-6a3b-4f90-b7c5-1e2d3c4b5a69"
},
"updated_at": "2026-10-11T11:14:20Z",
"version_count": 5,
"description": "Renders each region as density contours of its operations.",
"diagnostics": {
"valid": false,
"violations": [
{
"code": "code-c264",
"message": "Pin a page's payload to the build that rendered it",
"target": {
"kind": "pipeline"
}
}
],
"warnings": [
{
"code": "code-00c5",
"message": "Inline scalar newtypes but keep their brand",
"target": {
"kind": "pipeline"
}
},
{
"code": "code-c3ea",
"message": "Inline scalar newtypes but keep their brand",
"target": {
"kind": "pipeline"
}
}
]
},
"latest_version": "latest-version-6739",
"unsatisfied_capabilities": [
"unsatisfied-capabilities-5aee",
"unsatisfied-capabilities-7d63"
],
"versions": [
{
"capability_requirements": [],
"contract_digest": "contract-digest-c169",
"depth": 19,
"expanded_node_count": 4,
"lifecycle_state": "active",
"published_at": "2026-10-11T04:09:20Z",
"published_by": {
"email": "lin@acme.example",
"id": "id-02e7",
"username": "tomas"
},
"variable_requirements": [],
"version": "version-dccc"
},
{
"capability_requirements": [],
"contract_digest": "contract-digest-a4b1",
"depth": 53,
"expanded_node_count": 1,
"lifecycle_state": "active",
"published_at": "2026-10-11T13:52:55Z",
"published_by": {
"email": "mara@acme.example",
"id": "id-c01e",
"username": "mara"
},
"variable_requirements": [],
"version": "version-c499"
}
]
}

Graph

Used by