Skip to content
GitmoapAPIBeta
Schema

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
  • 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.
        • The ManualApproval schema
        • approversarray of ApproverRefoptional
        • 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 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.
        • The MatrixSpec schema
        • dimensionsobjectEach dimension's name and its list of values. The step's config reads 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_previous mode 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, skip skips the step, and cancel_previous cancels the other run. cancel_previous is 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
  • 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