Anysphere Cursor.com · Schema
MirrorTransitionJob
An asynchronous job tracking one mirror transition. Jobs are created by starting a transition or forcing a cutover, and are polled until they reach a terminal status.
AI CodingDevelopment ToolsCloud AgentsCLIEnterprise Software
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Unique identifier of the job. |
| transition | string | The mirror-direction change this job performs. |
| status | string | Lifecycle state. `succeeded`, `failed_rolled_back`, and `superseded` are terminal; `requires_attention` needs operator intervention or a forced cutover. |
| phase | string | Progress detail within `status`, for display and debugging. One of "queued", "starting", "draining-writes", "initializing-mirror-fetch", "finalizing-mirror-fetch", "finalizing-mirror-push", "snapshott |
| attemptCount | integer | Number of times this job has been attempted. |
| drainUntil | string | When the write-drain window of an in-progress transition ends. Absent outside the draining phase. |
| lastErrorCode | string | Stable code identifying why the job last failed, for example "InboundMirrorDrainTimeout" or "MirrorIntegrityMismatch". Absent while the job has not failed. |
| lastErrorMessage | string | Human-readable detail for `last_error_code`. Absent while the job has not failed. |
| startedAt | string | When the job started running. Absent while queued. |
| completedAt | string | When the job reached a terminal status. Absent until then. |
| createdAt | string | |
| updatedAt | string |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/anysphere-cursor.com/main/json-schema/anysphere-cursor.com-mirror-transition-job-schema.json",
"title": "MirrorTransitionJob",
"description": "An asynchronous job tracking one mirror transition. Jobs are created by\n starting a transition or forcing a cutover, and are polled until they reach\n a terminal status.",
"x-generated": "2026-09-25",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/anysphere-cursor.com-openapi.yaml#/components/schemas/MirrorTransitionJob",
"type": "object",
"properties": {
"id": {
"readOnly": true,
"type": "string",
"description": "Unique identifier of the job."
},
"transition": {
"readOnly": true,
"enum": [
"initial_to_inbound",
"inbound_to_outbound",
"outbound_to_inbound"
],
"type": "string",
"description": "The mirror-direction change this job performs."
},
"status": {
"readOnly": true,
"enum": [
"queued",
"running",
"succeeded",
"failed_rolled_back",
"requires_attention",
"superseded"
],
"type": "string",
"description": "Lifecycle state. `succeeded`, `failed_rolled_back`, and `superseded` are\n terminal; `requires_attention` needs operator intervention or a forced\n cutover."
},
"phase": {
"readOnly": true,
"type": "string",
"description": "Progress detail within `status`, for display and debugging. One of\n \"queued\", \"starting\", \"draining-writes\", \"initializing-mirror-fetch\",\n \"finalizing-mirror-fetch\", \"finalizing-mirror-push\", \"snapshotting-refs\",\n \"verifying-integrity\", \"reopening-inbound-mirror\",\n \"committing-target-status\", \"rolling-back\", or \"completed\". New phases\n may appear as the transition process evolves; poll `status` for\n completion rather than matching on phases."
},
"attemptCount": {
"readOnly": true,
"type": "integer",
"description": "Number of times this job has been attempted.",
"format": "uint32"
},
"drainUntil": {
"readOnly": true,
"type": "string",
"description": "When the write-drain window of an in-progress transition ends. Absent\n outside the draining phase.",
"format": "date-time"
},
"lastErrorCode": {
"readOnly": true,
"type": "string",
"description": "Stable code identifying why the job last failed, for example\n \"InboundMirrorDrainTimeout\" or \"MirrorIntegrityMismatch\". Absent while\n the job has not failed."
},
"lastErrorMessage": {
"readOnly": true,
"type": "string",
"description": "Human-readable detail for `last_error_code`. Absent while the job has\n not failed."
},
"startedAt": {
"readOnly": true,
"type": "string",
"description": "When the job started running. Absent while queued.",
"format": "date-time"
},
"completedAt": {
"readOnly": true,
"type": "string",
"description": "When the job reached a terminal status. Absent until then.",
"format": "date-time"
},
"createdAt": {
"readOnly": true,
"type": "string",
"format": "date-time"
},
"updatedAt": {
"readOnly": true,
"type": "string",
"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
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/anysphere-cursor.com-mirror-transition-job"
All schemas
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.