api.v4.Component
A component represents a source code repository tracked by CloudBees Unify. Components can be created with or without an SCM integration, so teams in air-gapped or network-restricted environments can onboard immediately. A component created without an integration can be connected to one later to unlock features that depend on it.
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Unique identifier for this component. Auto-generated on create. |
| name | string | Display name for the component. Required on create; mutable via PATCH. |
| description | string | Optional free-text description. Mutable via PATCH. Note: once set, a description cannot be cleared back to empty through this API; sending an empty value leaves the existing description unchanged. |
| repositoryUrl | string | Repository clone URL (.git form). Required on create. It is the identity of the component and cannot be changed after creation. |
| repositoryHref | string | Browser-facing repository URL. Server-derived by stripping the trailing ".git" from repository_url. |
| defaultBranch | string | Default branch for the repository. Optional on create (defaults to "main" when absent); mutable via PATCH. |
| provider | string | SCM provider backing the repository. Optional on create: inferred from the repository_url hostname for known public providers, or supplied explicitly for self-hosted providers. Not directly mutable vi |
| integrationId | string | Identifier of the SCM integration backing this component. Empty when the component has no integration. Optional on create, and can be set via PATCH to attach an integration to a component that has non |
| organizationId | string | Organization that owns this component. Read-only; set from the organization in the request URL. |
| createdAt | string | When this component was created. |
| updatedAt | string | When this component was last modified. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/cloudbees/main/json-schema/cloudbees-api-v4-component-schema.json",
"title": "api.v4.Component",
"description": "A component represents a source code repository tracked by CloudBees Unify.\n Components can be created with or without an SCM integration, so teams in\n air-gapped or network-restricted environments can onboard immediately. A\n component created without an integration can be connected to one later to\n unlock features that depend on it.",
"x-generated": "2026-10-04",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/cloudbees-components-api-openapi.yml#/components/schemas/api.v4.Component",
"required": [
"name",
"repositoryUrl"
],
"type": "object",
"properties": {
"id": {
"readOnly": true,
"type": "string",
"description": "Unique identifier for this component. Auto-generated on create."
},
"name": {
"type": "string",
"description": "Display name for the component. Required on create; mutable via PATCH."
},
"description": {
"type": "string",
"description": "Optional free-text description. Mutable via PATCH.\n\n Note: once set, a description cannot be cleared back to empty through this\n API; sending an empty value leaves the existing description unchanged."
},
"repositoryUrl": {
"type": "string",
"description": "Repository clone URL (.git form). Required on create. It is the identity of\n the component and cannot be changed after creation."
},
"repositoryHref": {
"readOnly": true,
"type": "string",
"description": "Browser-facing repository URL. Server-derived by stripping the trailing\n \".git\" from repository_url."
},
"defaultBranch": {
"type": "string",
"description": "Default branch for the repository. Optional on create (defaults to \"main\"\n when absent); mutable via PATCH."
},
"provider": {
"type": "string",
"description": "SCM provider backing the repository. Optional on create: inferred from the\n repository_url hostname for known public providers, or supplied explicitly\n for self-hosted providers. Not directly mutable via PATCH; it is\n resolved automatically, including when an SCM integration is attached.\n One of: \"GITHUB\", \"GITHUB_ENTERPRISE\", \"GITLAB\", \"GITLAB_SERVER\",\n \"BITBUCKET\", \"BITBUCKET_DATACENTER\". Empty when unresolved."
},
"integrationId": {
"type": "string",
"description": "Identifier of the SCM integration backing this component. Empty when the\n component has no integration. Optional on create, and can be set via PATCH\n to attach an integration to a component that has none.\n\n Note: once an integration is attached it cannot be removed through this\n API; sending an empty value leaves the existing integration in place."
},
"organizationId": {
"readOnly": true,
"type": "string",
"description": "Organization that owns this component. Read-only; set from the organization\n in the request URL."
},
"createdAt": {
"readOnly": true,
"type": "string",
"description": "When this component was created.",
"format": "date-time"
},
"updatedAt": {
"readOnly": true,
"type": "string",
"description": "When this component was last modified.",
"format": "date-time"
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/cloudbees-api-v4-component"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.