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
View JSON Schema on GitHub

JSON Schema

anysphere-cursor.com-mirror-transition-job-schema.json Raw ↑
{
  "$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.
All 92 tools →

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.