{
  "schema_version": 2,
  "title": "Cloud Phone API Capability Catalog",
  "introduction": "Integrate Android Cloud Phone creation, day-to-day operations, app distribution, file transfer, and backups into your own business system through APIs.",
  "availability_note": "Available operations depend on the devices and delivery environment. After submitting a device operation, check the task and each device result; acceptance does not mean execution is complete.",
  "integration": {
    "introduction": "Connect your business system to the Core API, or manage Cloud Phones through the Web Base standard workbench.",
    "steps": [
      "Use the modules in this catalog to confirm your business needs, paying particular attention to the scope of Images, files, and Backups.",
      "Once the scope of cooperation is agreed, have your technical team connect the service endpoint, access authorization, target devices, and asynchronous task results.",
      "Complete integration testing through your own business pages or the standard workbench, then validate against the actual devices and delivery environment."
    ]
  },
  "modules": [
    {
      "id": "cloud-phones",
      "title": "Cloud Phone Management",
      "summary": "Manage Cloud Phones from creation and daily operation to recycling, and adjust device and network settings.",
      "kind": "primary",
      "notes": [],
      "capabilities": [
        {
          "id": "phone-list",
          "title": "List Cloud Phones",
          "summary": "Find Cloud Phones by name, group, status, and other filters, with paginated results.",
          "notes": [],
          "keywords": ["Cloud Phone", "list", "filter", "pagination"],
          "references": [
            {
              "operation_id": "listEnvs",
              "method": "GET",
              "path": "/api/v1/envs"
            }
          ],
          "anchor": "capability-phone-list"
        },
        {
          "id": "phone-details",
          "title": "View Cloud Phone Details",
          "summary": "View basic information, associated resources, and the most recently synchronized status of a Cloud Phone.",
          "notes": [],
          "keywords": ["details", "status", "device information"],
          "references": [
            {
              "operation_id": "getEnv",
              "method": "GET",
              "path": "/api/v1/envs/{resource_id}"
            }
          ],
          "anchor": "capability-phone-details"
        },
        {
          "id": "phone-statistics",
          "title": "View Cloud Phone Statistics",
          "summary": "Summarize Cloud Phone counts, power states, and the number available for operation.",
          "notes": [
            "Operational availability requires both power and network availability. The last synchronized status does not guarantee that a phone can be connected to or streamed right now."
          ],
          "keywords": ["statistics", "count", "operational availability"],
          "references": [
            {
              "operation_id": "getEnvStats",
              "method": "GET",
              "path": "/api/v1/envs-stats"
            }
          ],
          "anchor": "capability-phone-statistics"
        },
        {
          "id": "phone-create",
          "title": "Create Cloud Phones",
          "summary": "Create one or more Cloud Phones on selected Cloud Cards using existing Images and device models.",
          "notes": [],
          "keywords": ["create", "new phone", "batch creation", "capacity"],
          "references": [
            {
              "operation_id": "getEnvCreateOptions",
              "method": "GET",
              "path": "/api/v1/boxes/{box_id}/create-options"
            },
            {
              "operation_id": "createTask",
              "action": "create",
              "request_schema": "TaskCreateRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskCreateRequest"
            }
          ],
          "anchor": "capability-phone-create"
        },
        {
          "id": "phone-start",
          "title": "Power On",
          "summary": "Start selected Cloud Phones, including multiple devices in one operation.",
          "notes": [],
          "keywords": ["power on", "start", "batch power on"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "start",
              "request_schema": "TaskStartRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskStartRequest"
            }
          ],
          "anchor": "capability-phone-start"
        },
        {
          "id": "phone-stop",
          "title": "Power Off",
          "summary": "Shut down selected Cloud Phones, including multiple devices in one operation.",
          "notes": [],
          "keywords": ["power off", "stop", "batch power off"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "stop",
              "request_schema": "TaskStopRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskStopRequest"
            }
          ],
          "anchor": "capability-phone-stop"
        },
        {
          "id": "phone-restart",
          "title": "Restart",
          "summary": "Restart selected Cloud Phones.",
          "notes": [],
          "keywords": ["restart", "reboot"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "restart",
              "request_schema": "TaskRestartRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskRestartRequest"
            }
          ],
          "anchor": "capability-phone-restart"
        },
        {
          "id": "phone-name",
          "title": "Rename a Cloud Phone",
          "summary": "Give a Cloud Phone a name that is easy to identify in your business.",
          "notes": [],
          "keywords": ["name", "rename", "label"],
          "references": [
            {
              "operation_id": "updateEnvMetadata",
              "method": "PATCH",
              "path": "/api/v1/envs/{env_id}"
            }
          ],
          "anchor": "capability-phone-name"
        },
        {
          "id": "phone-groups",
          "title": "Manage Cloud Phone Groups",
          "summary": "View existing groups and change which group a Cloud Phone belongs to.",
          "notes": [],
          "keywords": ["group", "category", "membership"],
          "references": [
            {
              "operation_id": "listEnvGroups",
              "method": "GET",
              "path": "/api/v1/env-groups"
            },
            {
              "operation_id": "updateEnvMetadata",
              "method": "PATCH",
              "path": "/api/v1/envs/{env_id}"
            }
          ],
          "anchor": "capability-phone-groups"
        },
        {
          "id": "phone-recycle",
          "title": "Recycle Cloud Phones",
          "summary": "Move Cloud Phones that are temporarily unused to the recycle bin.",
          "notes": [],
          "keywords": ["recycle", "recycle bin"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "recycle",
              "request_schema": "TaskRecycleRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskRecycleRequest"
            }
          ],
          "anchor": "capability-phone-recycle"
        },
        {
          "id": "phone-restore",
          "title": "Restore Recycled Cloud Phones",
          "summary": "Return Cloud Phones from the recycle bin to use.",
          "notes": [
            "This restores the original Cloud Phone from the recycle bin. To create a new Cloud Phone from a Backup, see Backup Management."
          ],
          "keywords": ["restore", "recycle bin", "return to use"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "restore",
              "request_schema": "TaskRestoreRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskRestoreRequest"
            }
          ],
          "anchor": "capability-phone-restore"
        },
        {
          "id": "phone-remove",
          "title": "Permanently Delete Cloud Phones",
          "summary": "Permanently remove Cloud Phones that are no longer needed.",
          "notes": [],
          "keywords": ["delete", "permanent deletion", "remove"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "remove",
              "request_schema": "TaskRemoveRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskRemoveRequest"
            }
          ],
          "anchor": "capability-phone-remove"
        },
        {
          "id": "phone-repair",
          "title": "Repair Cloud Phones",
          "summary": "Request a repair operation for Cloud Phones with a problem.",
          "notes": [
            "Repair does not automatically power the phone on or off, or perform a factory reset. Confirm afterward whether the device has returned to normal."
          ],
          "keywords": ["repair", "fault", "problem"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "repair",
              "request_schema": "TaskRepairRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskRepairRequest"
            }
          ],
          "anchor": "capability-phone-repair"
        },
        {
          "id": "phone-factory-reset",
          "title": "Factory Reset",
          "summary": "Clear apps and data from Cloud Phones while keeping their basic hardware identifiers.",
          "notes": [],
          "keywords": ["factory reset", "clear data", "reset"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "factory_reset",
              "request_schema": "TaskFactoryResetRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskFactoryResetRequest"
            }
          ],
          "anchor": "capability-phone-factory-reset"
        },
        {
          "id": "phone-new-device",
          "title": "Reset as New Device",
          "summary": "Clear apps and data, and regenerate basic configuration and hardware identifiers.",
          "notes": [],
          "keywords": ["new device", "reset as new", "hardware identifiers"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "new_device",
              "request_schema": "TaskNewDeviceRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskNewDeviceRequest"
            }
          ],
          "anchor": "capability-phone-new-device"
        },
        {
          "id": "phone-operation-availability",
          "title": "Check Available Operations",
          "summary": "Find which operations a Cloud Phone supports and whether it currently meets their execution conditions.",
          "notes": [],
          "keywords": [
            "supported capabilities",
            "available operations",
            "execution conditions"
          ],
          "references": [
            {
              "operation_id": "getEnvCapabilities",
              "method": "GET",
              "path": "/api/v1/envs/{env_id}/capabilities"
            }
          ],
          "anchor": "capability-phone-operation-availability"
        },
        {
          "id": "phone-network-details",
          "title": "View Internal Network Addresses",
          "summary": "View the most recently read internal network addresses to help with connectivity and network troubleshooting.",
          "notes": [],
          "keywords": ["network", "internal network", "IP address"],
          "references": [
            {
              "operation_id": "getEnvNetwork",
              "method": "GET",
              "path": "/api/v1/envs/{env_id}/network"
            }
          ],
          "anchor": "capability-phone-network-details"
        },
        {
          "id": "phone-current-configuration",
          "title": "View Current Configuration",
          "summary": "View the most recently read resolution, proxy, and DNS settings of a Cloud Phone.",
          "notes": [],
          "keywords": ["configuration", "resolution", "proxy", "DNS"],
          "references": [
            {
              "operation_id": "getEnvConfiguration",
              "method": "GET",
              "path": "/api/v1/envs/{env_id}/configuration"
            }
          ],
          "anchor": "capability-phone-current-configuration"
        },
        {
          "id": "phone-resolution",
          "title": "Set Resolution",
          "summary": "Adjust the Cloud Phone display size or restore the device default resolution.",
          "notes": [],
          "keywords": ["resolution", "display size", "display"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "resolution",
              "request_schema": "TaskResolutionRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskResolutionRequest"
            }
          ],
          "anchor": "capability-phone-resolution"
        },
        {
          "id": "phone-screen-orientation",
          "title": "Set Screen Orientation",
          "summary": "Set a Cloud Phone to landscape, portrait, or reverse orientation.",
          "notes": [],
          "keywords": ["landscape", "portrait", "screen orientation"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "rotation",
              "request_schema": "TaskRotationRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskRotationRequest"
            }
          ],
          "anchor": "capability-phone-screen-orientation"
        },
        {
          "id": "phone-device-profile-read",
          "title": "View Device Profiles",
          "summary": "View adjustable device profile fields and masked current values.",
          "notes": [],
          "keywords": [
            "device profile",
            "device information",
            "hardware information"
          ],
          "references": [
            {
              "operation_id": "getDeviceProfileFields",
              "method": "GET",
              "path": "/api/v1/device-profile-fields"
            },
            {
              "operation_id": "getEnvDeviceProfile",
              "method": "GET",
              "path": "/api/v1/envs/{env_id}/device-profile"
            }
          ],
          "anchor": "capability-phone-device-profile-read"
        },
        {
          "id": "phone-device-profile-update",
          "title": "Update Device Profiles",
          "summary": "Adjust supported device identity profiles using specified values or random generation.",
          "notes": [],
          "keywords": ["device profile", "random profile", "custom profile"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "device_profile",
              "request_schema": "TaskDeviceProfileRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskDeviceProfileRequest"
            }
          ],
          "anchor": "capability-phone-device-profile-update"
        },
        {
          "id": "phone-saved-configuration",
          "title": "Manage Saved Configuration",
          "summary": "View or change saved system, network, location, and device identity settings.",
          "notes": [
            "Saving configuration does not automatically restart a Cloud Phone or mean that a running device has adopted the new values."
          ],
          "keywords": [
            "system",
            "language",
            "time zone",
            "location",
            "SIM",
            "saved configuration"
          ],
          "references": [
            {
              "operation_id": "getEnvContainerConfig",
              "method": "GET",
              "path": "/api/v1/envs/{env_id}/container-config"
            },
            {
              "operation_id": "createTask",
              "action": "container_config",
              "request_schema": "TaskContainerConfigRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskContainerConfigRequest"
            }
          ],
          "anchor": "capability-phone-saved-configuration"
        },
        {
          "id": "phone-proxy",
          "title": "Set Network Proxy",
          "summary": "Save proxy settings for a Cloud Phone or select a direct connection.",
          "notes": [],
          "keywords": ["proxy", "network proxy", "direct connection"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "proxy",
              "request_schema": "TaskProxyRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskProxyRequest"
            }
          ],
          "anchor": "capability-phone-proxy"
        },
        {
          "id": "phone-proxy-check",
          "title": "Check Proxy Egress",
          "summary": "Check the Machine Room internet egress through a specified proxy or direct connection.",
          "notes": [
            "The result describes the Machine Room egress; it does not prove that the Cloud Phone has adopted those proxy settings."
          ],
          "keywords": ["proxy check", "egress", "connectivity"],
          "references": [
            {
              "operation_id": "checkEnvProxy",
              "method": "POST",
              "path": "/api/v1/envs/{env_id}/proxy-check"
            }
          ],
          "anchor": "capability-phone-proxy-check"
        },
        {
          "id": "phone-dns",
          "title": "Set DNS",
          "summary": "Save DNS server settings for a Cloud Phone.",
          "notes": [],
          "keywords": [
            "DNS",
            "domain name resolution",
            "network configuration"
          ],
          "references": [
            {
              "operation_id": "createTask",
              "action": "dns",
              "request_schema": "TaskDnsRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskDnsRequest"
            }
          ],
          "anchor": "capability-phone-dns"
        },
        {
          "id": "phone-simulated-sms",
          "title": "Simulate Incoming SMS",
          "summary": "Inject a simulated SMS with a specified sender and message into a Cloud Phone.",
          "notes": [
            "This simulates incoming messages. It does not provide a real phone number, an SMS sending or receiving service, or a verification-code channel."
          ],
          "keywords": ["SMS", "simulated SMS", "incoming message"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "sms",
              "request_schema": "TaskSmsRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskSmsRequest"
            }
          ],
          "anchor": "capability-phone-simulated-sms"
        }
      ],
      "anchor": "module-cloud-phones"
    },
    {
      "id": "images",
      "title": "Image Management",
      "summary": "View available system Images and device models, and use them to create Cloud Phones.",
      "kind": "primary",
      "notes": [
        "The current scope covers finding and selecting existing Images; it does not include Image uploads, creation, version publishing, or distribution management.",
        "Image and model lists reflect the most recently synchronized options. Actual conditions are checked again when creating a Cloud Phone."
      ],
      "capabilities": [
        {
          "id": "image-options",
          "title": "List Available Images",
          "summary": "View the system Image options currently offered by a specified Cloud Card.",
          "notes": [],
          "keywords": ["Image", "system Image", "available options"],
          "references": [
            {
              "operation_id": "getEnvCreateOptions",
              "method": "GET",
              "path": "/api/v1/boxes/{box_id}/create-options"
            }
          ],
          "anchor": "capability-image-options"
        },
        {
          "id": "image-compatible-models",
          "title": "View Compatible Device Models",
          "summary": "View available device models and the Images each model allows.",
          "notes": [],
          "keywords": ["device model", "model", "brand", "Image compatibility"],
          "references": [
            {
              "operation_id": "getEnvCreateOptions",
              "method": "GET",
              "path": "/api/v1/boxes/{box_id}/create-options"
            }
          ],
          "anchor": "capability-image-compatible-models"
        },
        {
          "id": "image-create-phone",
          "title": "Create Cloud Phones from Images",
          "summary": "Choose an existing Image and a compatible device model to create new Cloud Phones.",
          "notes": [],
          "keywords": [
            "create from Image",
            "create Cloud Phone",
            "model selection"
          ],
          "references": [
            {
              "operation_id": "getEnvCreateOptions",
              "method": "GET",
              "path": "/api/v1/boxes/{box_id}/create-options"
            },
            {
              "operation_id": "createTask",
              "action": "create",
              "request_schema": "TaskCreateRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskCreateRequest"
            }
          ],
          "anchor": "capability-image-create-phone"
        }
      ],
      "anchor": "module-images"
    },
    {
      "id": "tasks",
      "title": "Task Management",
      "summary": "Track Cloud Phone operations, view the result for each device, and investigate unexpected outcomes.",
      "kind": "primary",
      "notes": [
        "Task management tracks submitted device operations; it does not provide scheduled execution or multistep automation workflows."
      ],
      "capabilities": [
        {
          "id": "task-preflight",
          "title": "Check Operation Conditions",
          "summary": "Check permissions and current execution conditions for the selected devices before submitting an operation.",
          "notes": [],
          "keywords": ["preflight", "permissions", "execution conditions"],
          "references": [
            {
              "operation_id": "preflightTask",
              "method": "POST",
              "path": "/api/v1/tasks/preflight"
            }
          ],
          "anchor": "capability-task-preflight"
        },
        {
          "id": "task-submit",
          "title": "Submit Single or Batch Operations",
          "summary": "Submit operations for selected devices as Tasks that can be queried over time.",
          "notes": [],
          "keywords": ["Task", "batch", "submit"],
          "references": [
            {
              "operation_id": "createTask",
              "method": "POST",
              "path": "/api/v1/tasks"
            }
          ],
          "anchor": "capability-task-submit"
        },
        {
          "id": "task-progress",
          "title": "View Progress and Results",
          "summary": "Query Task progress and view success, failure, or unconfirmed results for each device.",
          "notes": [],
          "keywords": ["progress", "results", "per-device", "batch results"],
          "references": [
            {
              "operation_id": "getTask",
              "method": "GET",
              "path": "/api/v1/tasks/{task_id}"
            }
          ],
          "anchor": "capability-task-progress"
        },
        {
          "id": "task-history",
          "title": "View Task History",
          "summary": "Browse previously submitted operations, their targets, and their results with pagination.",
          "notes": [],
          "keywords": ["history", "records", "Task list"],
          "references": [
            {
              "operation_id": "listTasks",
              "method": "GET",
              "path": "/api/v1/tasks"
            }
          ],
          "anchor": "capability-task-history"
        },
        {
          "id": "task-cancel",
          "title": "Request Task Cancellation",
          "summary": "Cancel operations that have not been dispatched, and record cancellation requests for those already dispatched.",
          "notes": [
            "An operation already sent to a device is not guaranteed to stop. Query the original Task to confirm its result."
          ],
          "keywords": ["cancel", "Task cancellation"],
          "references": [
            {
              "operation_id": "cancelTask",
              "method": "POST",
              "path": "/api/v1/tasks/{task_id}/cancel"
            }
          ],
          "anchor": "capability-task-cancel"
        },
        {
          "id": "task-find-original",
          "title": "Find an Original Submission",
          "summary": "Use the original request identifier to find an accepted Task when a submission did not receive a clear response.",
          "notes": [],
          "keywords": ["lost response", "find Task", "duplicate submission"],
          "references": [
            {
              "operation_id": "getTaskByIdempotency",
              "method": "GET",
              "path": "/api/v1/tasks/by-idempotency/{key}"
            }
          ],
          "anchor": "capability-task-find-original"
        },
        {
          "id": "task-reconcile",
          "title": "Verify Operations with Unknown Results",
          "summary": "Query the original operation or files already generated to complete the Task result.",
          "notes": [
            "This checks the original operation; it does not execute the same device operation again."
          ],
          "keywords": [
            "unknown result",
            "verification",
            "reconciliation",
            "receipt"
          ],
          "references": [
            {
              "operation_id": "reconcileTask",
              "method": "POST",
              "path": "/api/v1/tasks/{task_id}/reconcile"
            }
          ],
          "anchor": "capability-task-reconcile"
        }
      ],
      "anchor": "module-tasks"
    },
    {
      "id": "apps",
      "title": "App Management",
      "summary": "Find apps, distribute installation packages, and manage apps and accessibility services on Cloud Phones.",
      "kind": "primary",
      "notes": [],
      "capabilities": [
        {
          "id": "app-installed",
          "title": "List Installed Apps",
          "summary": "View apps already installed on a Cloud Phone.",
          "notes": [],
          "keywords": ["installed apps", "app list", "installation lookup"],
          "references": [
            {
              "operation_id": "listEnvApps",
              "method": "GET",
              "path": "/api/v1/envs/{env_id}/apps"
            }
          ],
          "anchor": "capability-app-installed"
        },
        {
          "id": "app-catalog",
          "title": "Browse Available Apps",
          "summary": "Browse the installable app catalog provided by the delivery environment.",
          "notes": [
            "The delivery provider configures the app catalog. Installation from packages or links remains available when no catalog is configured."
          ],
          "keywords": ["app catalog", "app store", "installation source"],
          "references": [
            {
              "operation_id": "getAppCatalog",
              "method": "GET",
              "path": "/api/v1/app-catalog"
            }
          ],
          "anchor": "capability-app-catalog"
        },
        {
          "id": "app-install-file",
          "title": "Install Uploaded Apps",
          "summary": "Install completed uploads from the cloud file library onto selected Cloud Phones.",
          "notes": [],
          "keywords": [
            "install",
            "APK",
            "installation package",
            "upload and install"
          ],
          "references": [
            {
              "operation_id": "createTask",
              "action": "app_install",
              "request_schema": "TaskAppInstallRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskAppInstallRequest"
            }
          ],
          "anchor": "capability-app-install-file"
        },
        {
          "id": "app-install-url",
          "title": "Install Apps from Links",
          "summary": "Download an installation package from a link and install it onto selected Cloud Phones.",
          "notes": [],
          "keywords": [
            "install from link",
            "download and install",
            "app distribution"
          ],
          "references": [
            {
              "operation_id": "createTask",
              "action": "app_install_url",
              "request_schema": "TaskAppInstallUrlRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskAppInstallUrlRequest"
            }
          ],
          "anchor": "capability-app-install-url"
        },
        {
          "id": "app-start",
          "title": "Start Apps",
          "summary": "Start specified installed apps on Cloud Phones.",
          "notes": [],
          "keywords": ["start app", "open app"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "app_start",
              "request_schema": "TaskAppStartRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskAppStartRequest"
            }
          ],
          "anchor": "capability-app-start"
        },
        {
          "id": "app-stop",
          "title": "Stop Apps",
          "summary": "Stop specified apps running on Cloud Phones.",
          "notes": [],
          "keywords": ["stop app", "close app"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "app_stop",
              "request_schema": "TaskAppStopRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskAppStopRequest"
            }
          ],
          "anchor": "capability-app-stop"
        },
        {
          "id": "app-restart",
          "title": "Restart Apps",
          "summary": "Restart specified apps on Cloud Phones.",
          "notes": [],
          "keywords": ["restart app", "reopen app"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "app_restart",
              "request_schema": "TaskAppRestartRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskAppRestartRequest"
            }
          ],
          "anchor": "capability-app-restart"
        },
        {
          "id": "app-uninstall",
          "title": "Uninstall Apps",
          "summary": "Remove specified apps from selected Cloud Phones.",
          "notes": [],
          "keywords": ["uninstall", "remove app"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "app_uninstall",
              "request_schema": "TaskAppUninstallRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskAppUninstallRequest"
            }
          ],
          "anchor": "capability-app-uninstall"
        },
        {
          "id": "app-accessibility-services",
          "title": "List App Accessibility Services",
          "summary": "View the accessibility services provided by an app and their status.",
          "notes": [],
          "keywords": ["accessibility", "service list", "assistive features"],
          "references": [
            {
              "operation_id": "getEnvAccessibilityServices",
              "method": "GET",
              "path": "/api/v1/envs/{env_id}/accessibility-services"
            }
          ],
          "anchor": "capability-app-accessibility-services"
        },
        {
          "id": "app-accessibility-toggle",
          "title": "Configure App Accessibility Services",
          "summary": "Enable or disable specified app accessibility services.",
          "notes": [],
          "keywords": ["accessibility", "enable service", "disable service"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "accessibility_service",
              "request_schema": "TaskAccessibilityServiceRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskAccessibilityServiceRequest"
            }
          ],
          "anchor": "capability-app-accessibility-toggle"
        },
        {
          "id": "app-accessibility-open",
          "title": "Open App Accessibility Entry",
          "summary": "Open the accessibility entry for a specified app.",
          "notes": [],
          "keywords": ["accessibility entry", "open entry"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "accessibility_enable",
              "request_schema": "TaskAccessibilityEnableRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskAccessibilityEnableRequest"
            }
          ],
          "anchor": "capability-app-accessibility-open"
        },
        {
          "id": "app-accessibility-hide",
          "title": "Hide App Accessibility Entry",
          "summary": "Hide the accessibility entry for a specified app.",
          "notes": [
            "Hiding an accessibility entry does not hide the app itself."
          ],
          "keywords": ["accessibility entry", "hide entry"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "accessibility_hide",
              "request_schema": "TaskAccessibilityHideRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskAccessibilityHideRequest"
            }
          ],
          "anchor": "capability-app-accessibility-hide"
        }
      ],
      "anchor": "module-apps"
    },
    {
      "id": "files",
      "title": "File Management",
      "summary": "Manage cloud files for the current Cloud Card, and transfer files or media to Cloud Phones.",
      "kind": "primary",
      "notes": [
        "A completed upload means the file has been saved in cloud storage. Installing an app or sending a file to a phone requires a separate operation.",
        "The cloud file library belongs to the current Cloud Card; it is not shared across Cloud Cards. The current API does not provide full browsing, retrieval, or moving of files inside a phone."
      ],
      "capabilities": [
        {
          "id": "file-upload",
          "title": "Upload Files",
          "summary": "Upload installation packages, images, videos, and other files to the current Cloud Card file library, with multipart transfer and integrity checking.",
          "notes": [],
          "keywords": ["upload", "multipart", "media", "installation package"],
          "references": [
            {
              "operation_id": "createFileUpload",
              "method": "POST",
              "path": "/api/v1/files/uploads"
            },
            {
              "operation_id": "uploadFilePart",
              "method": "PUT",
              "path": "/api/v1/files/{file_id}/parts/{part_number}"
            },
            {
              "operation_id": "completeFileUpload",
              "method": "POST",
              "path": "/api/v1/files/{file_id}/complete"
            }
          ],
          "anchor": "capability-file-upload"
        },
        {
          "id": "file-list",
          "title": "List Cloud Files",
          "summary": "Browse files in the current Cloud Card file library with pagination and filters by name or type.",
          "notes": [],
          "keywords": ["file library", "list", "filter"],
          "references": [
            {
              "operation_id": "listFiles",
              "method": "GET",
              "path": "/api/v1/files"
            }
          ],
          "anchor": "capability-file-list"
        },
        {
          "id": "file-status",
          "title": "View File Status",
          "summary": "View a cloud file and check whether its upload is complete and the file is ready to use.",
          "notes": [],
          "keywords": ["file status", "upload progress", "file information"],
          "references": [
            {
              "operation_id": "getFile",
              "method": "GET",
              "path": "/api/v1/files/{file_id}"
            }
          ],
          "anchor": "capability-file-status"
        },
        {
          "id": "file-download",
          "title": "Download Cloud Files",
          "summary": "Download ready cloud files or generate download links with an expiry time.",
          "notes": [],
          "keywords": ["download", "download link", "share download"],
          "references": [
            {
              "operation_id": "createFileTransfer",
              "method": "POST",
              "path": "/api/v1/files/{file_id}/transfers"
            },
            {
              "operation_id": "downloadFile",
              "method": "GET",
              "path": "/api/v1/files/{file_id}/content"
            },
            {
              "operation_id": "readFileTransfer",
              "method": "GET",
              "path": "/api/v1/file-transfers/{token}"
            }
          ],
          "anchor": "capability-file-download"
        },
        {
          "id": "file-delete",
          "title": "Delete Cloud Files",
          "summary": "Delete files that are no longer needed from the current file library.",
          "notes": [],
          "keywords": ["delete file", "clean up files"],
          "references": [
            {
              "operation_id": "deleteFile",
              "method": "DELETE",
              "path": "/api/v1/files/{file_id}"
            }
          ],
          "anchor": "capability-file-delete"
        },
        {
          "id": "file-push-uploaded",
          "title": "Send Uploaded Files to Phones",
          "summary": "Send files from the cloud file library to category directories on Cloud Phones, such as downloads, pictures, or videos.",
          "notes": [],
          "keywords": [
            "send file",
            "push file",
            "file transfer",
            "phone directory"
          ],
          "references": [
            {
              "operation_id": "createTask",
              "action": "file_push",
              "request_schema": "TaskFilePushRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskFilePushRequest"
            }
          ],
          "anchor": "capability-file-push-uploaded"
        },
        {
          "id": "file-push-url",
          "title": "Send Files from Links",
          "summary": "Download files from links and send them to specified category directories on Cloud Phones.",
          "notes": [],
          "keywords": [
            "send from link",
            "download and push",
            "media distribution"
          ],
          "references": [
            {
              "operation_id": "createTask",
              "action": "file_push_url",
              "request_schema": "TaskFilePushUrlRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskFilePushUrlRequest"
            }
          ],
          "anchor": "capability-file-push-url"
        },
        {
          "id": "file-screenshot",
          "title": "Capture Cloud Phone Screenshots",
          "summary": "Capture a Cloud Phone screen and retrieve the image as a cloud file.",
          "notes": [],
          "keywords": ["screenshot", "screen", "image"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "screenshot",
              "request_schema": "TaskScreenshotRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskScreenshotRequest"
            },
            {
              "operation_id": "getFile",
              "method": "GET",
              "path": "/api/v1/files/{file_id}"
            },
            {
              "operation_id": "createFileTransfer",
              "method": "POST",
              "path": "/api/v1/files/{file_id}/transfers"
            }
          ],
          "anchor": "capability-file-screenshot"
        }
      ],
      "anchor": "module-files"
    },
    {
      "id": "backups",
      "title": "Backup Management",
      "summary": "Export Cloud Phones as Backups, manage Backup files, and create new Cloud Phones from existing Backups.",
      "kind": "primary",
      "notes": [
        "The current scope provides on-demand Backup and restore. It does not include automatic Backup policies or scheduled retention management. Backup contents and restore compatibility must be confirmed at delivery."
      ],
      "capabilities": [
        {
          "id": "backup-availability",
          "title": "Check Backup Availability",
          "summary": "Check whether a Cloud Phone currently supports Backup and meets the relevant execution conditions.",
          "notes": [],
          "keywords": ["Backup support", "Backup conditions", "availability"],
          "references": [
            {
              "operation_id": "getEnvBackupAvailability",
              "method": "GET",
              "path": "/api/v1/envs/{env_id}/backup-availability"
            }
          ],
          "anchor": "capability-backup-availability"
        },
        {
          "id": "backup-create",
          "title": "Create Backups",
          "summary": "Request a Backup export for selected Cloud Phones and deliver the generated files to cloud storage.",
          "notes": [],
          "keywords": ["create Backup", "export", "data Backup"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "backup_export",
              "request_schema": "TaskBackupExportRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskBackupExportRequest"
            }
          ],
          "anchor": "capability-backup-create"
        },
        {
          "id": "backup-history",
          "title": "View Backup History",
          "summary": "Browse generated and fully delivered Backups with pagination.",
          "notes": [
            "Check the original Task for the progress of a Backup export that is still in progress."
          ],
          "keywords": ["Backup history", "Backup list", "history"],
          "references": [
            {
              "operation_id": "listBackups",
              "method": "GET",
              "path": "/api/v1/backups"
            }
          ],
          "anchor": "capability-backup-history"
        },
        {
          "id": "backup-download",
          "title": "Download Backups",
          "summary": "Obtain download links with an expiry time for ready Backups.",
          "notes": [],
          "keywords": ["download Backup", "download URL"],
          "references": [
            {
              "operation_id": "getBackupDownload",
              "method": "GET",
              "path": "/api/v1/backups/{backup_id}/download"
            }
          ],
          "anchor": "capability-backup-download"
        },
        {
          "id": "backup-delete",
          "title": "Delete Backups",
          "summary": "Delete Backup files that are no longer needed.",
          "notes": [],
          "keywords": ["delete Backup", "clean up Backups"],
          "references": [
            {
              "operation_id": "deleteBackup",
              "method": "DELETE",
              "path": "/api/v1/backups/{backup_id}"
            }
          ],
          "anchor": "capability-backup-delete"
        },
        {
          "id": "backup-restore-new-phone",
          "title": "Create Cloud Phones from Backups",
          "summary": "Import an existing usable Backup into a specified Cloud Card to create a new Cloud Phone.",
          "notes": [
            "Restore creates a new Cloud Phone and keeps the original. Access to both the Backup and target Cloud Card is required. Compatibility across Machine Rooms must be confirmed at delivery."
          ],
          "keywords": [
            "Backup restore",
            "restore",
            "import",
            "new Cloud Phone"
          ],
          "references": [
            {
              "operation_id": "restoreBackupToBox",
              "method": "POST",
              "path": "/api/v1/boxes/{box_id}/backup-restores"
            },
            {
              "operation_id": "createTask",
              "action": "backup_restore",
              "request_schema": "TaskBackupRestoreRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskBackupRestoreRequest"
            }
          ],
          "anchor": "capability-backup-restore-new-phone"
        }
      ],
      "anchor": "module-backups"
    },
    {
      "id": "media",
      "title": "Screen Streaming and Preview",
      "summary": "Add Cloud Phone viewing, interaction, and camera media settings to your business pages.",
      "kind": "support",
      "notes": [],
      "capabilities": [
        {
          "id": "media-interactive-stream",
          "title": "Stream and Control Cloud Phones",
          "summary": "Obtain a screen streaming connection so authorized users can view and operate a Cloud Phone.",
          "notes": [
            "Current screen streaming connections include device control and require the corresponding operation permission."
          ],
          "keywords": ["screen streaming", "remote control", "live screen"],
          "references": [
            {
              "operation_id": "createMediaSession",
              "method": "POST",
              "path": "/api/v1/envs/{env_id}/media-sessions"
            }
          ],
          "anchor": "capability-media-interactive-stream"
        },
        {
          "id": "media-preview",
          "title": "View Read-Only Previews",
          "summary": "Obtain short-lived read-only screen previews for multiple Cloud Phones.",
          "notes": [
            "Previews do not provide device control. A picture is not guaranteed when a phone is offline or powered off."
          ],
          "keywords": ["preview", "read-only", "multiple devices", "thumbnail"],
          "references": [
            {
              "operation_id": "createPreviewGrants",
              "method": "POST",
              "path": "/api/v1/preview-grants"
            }
          ],
          "anchor": "capability-media-preview"
        },
        {
          "id": "media-camera-image",
          "title": "Set Camera Images",
          "summary": "Set the camera background image on a Cloud Phone using an uploaded file or image link.",
          "notes": [],
          "keywords": ["camera", "image", "QR code", "camera background"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "qrcode",
              "request_schema": "TaskQrcodeRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskQrcodeRequest"
            }
          ],
          "anchor": "capability-media-camera-image"
        },
        {
          "id": "media-camera-source",
          "title": "Set Camera Media",
          "summary": "Replace a specified camera feed with supported image or video media.",
          "notes": [
            "After applying the setting, confirm the actual camera picture on the Cloud Phone."
          ],
          "keywords": ["camera", "video", "camera feed", "source replacement"],
          "references": [
            {
              "operation_id": "createTask",
              "action": "flow_play",
              "request_schema": "TaskFlowPlayRequest",
              "method": "POST",
              "path": "/api/v1/tasks",
              "schema_ref": "#/components/schemas/TaskFlowPlayRequest"
            }
          ],
          "anchor": "capability-media-camera-source"
        }
      ],
      "anchor": "module-media"
    },
    {
      "id": "resources",
      "title": "Cloud Card and Machine Room Resources",
      "summary": "View the Cloud Cards that host Cloud Phones and their Machine Rooms to plan creation and maintenance.",
      "kind": "support",
      "notes": [],
      "capabilities": [
        {
          "id": "resource-card-list",
          "title": "List Cloud Cards",
          "summary": "View accessible Cloud Card resources and filter the results.",
          "notes": [],
          "keywords": ["Cloud Card", "resource list", "filter"],
          "references": [
            {
              "operation_id": "listBoxes",
              "method": "GET",
              "path": "/api/v1/boxes"
            }
          ],
          "anchor": "capability-resource-card-list"
        },
        {
          "id": "resource-card-details",
          "title": "View Cloud Card Details",
          "summary": "View information about a Cloud Card and which resources it belongs to.",
          "notes": [],
          "keywords": ["Cloud Card details", "resource ownership"],
          "references": [
            {
              "operation_id": "getBox",
              "method": "GET",
              "path": "/api/v1/boxes/{resource_id}"
            }
          ],
          "anchor": "capability-resource-card-details"
        },
        {
          "id": "resource-card-statistics",
          "title": "View Cloud Card Statistics",
          "summary": "Summarize Cloud Card counts and status within the current scope.",
          "notes": [],
          "keywords": ["Cloud Card statistics", "resource count"],
          "references": [
            {
              "operation_id": "getBoxStats",
              "method": "GET",
              "path": "/api/v1/boxes-stats"
            }
          ],
          "anchor": "capability-resource-card-statistics"
        },
        {
          "id": "resource-room-list",
          "title": "View Machine Rooms",
          "summary": "View the names and online status of visible Machine Rooms.",
          "notes": [],
          "keywords": ["Machine Room", "Machine Room status", "online"],
          "references": [
            {
              "operation_id": "listRooms",
              "method": "GET",
              "path": "/api/v1/rooms"
            }
          ],
          "anchor": "capability-resource-room-list"
        }
      ],
      "anchor": "module-resources"
    },
    {
      "id": "access",
      "title": "Access Authorization",
      "summary": "Connect device scope, operation permissions, and access duration to your own business login system.",
      "kind": "support",
      "notes": [
        "Revoking API access does not guarantee that an established screen streaming connection closes immediately. Existing streaming tickets expire at their specified time."
      ],
      "capabilities": [
        {
          "id": "access-create",
          "title": "Grant Restricted Access",
          "summary": "Issue access for business users with a limited device scope, operation permissions, and validity period.",
          "notes": [],
          "keywords": [
            "authorization",
            "user access",
            "permissions",
            "validity period"
          ],
          "references": [
            {
              "operation_id": "createAccessSession",
              "method": "POST",
              "path": "/api/v1/access-sessions"
            }
          ],
          "anchor": "capability-access-create"
        },
        {
          "id": "access-replace",
          "title": "Update Access Authorization",
          "summary": "Update the device scope, permissions, or validity period of existing user access.",
          "notes": [],
          "keywords": [
            "update authorization",
            "permission changes",
            "validity changes"
          ],
          "references": [
            {
              "operation_id": "replaceAccessSession",
              "method": "PUT",
              "path": "/api/v1/access-sessions/{session_id}"
            }
          ],
          "anchor": "capability-access-replace"
        },
        {
          "id": "access-find",
          "title": "Find Business Login Authorization",
          "summary": "Find the access authorization associated with a login record in your own business system.",
          "notes": [],
          "keywords": ["find authorization", "login record", "session"],
          "references": [
            {
              "operation_id": "getAccessSessionByReference",
              "method": "GET",
              "path": "/api/v1/access-sessions/by-reference"
            }
          ],
          "anchor": "capability-access-find"
        },
        {
          "id": "access-revoke",
          "title": "Revoke Specific Access",
          "summary": "Revoke an access authorization to prevent further API requests with it.",
          "notes": [],
          "keywords": ["revoke access", "sign out", "disable"],
          "references": [
            {
              "operation_id": "revokeAccessSession",
              "method": "DELETE",
              "path": "/api/v1/access-sessions/{session_id}"
            }
          ],
          "anchor": "capability-access-revoke"
        },
        {
          "id": "access-revoke-login",
          "title": "Revoke Business Login Access",
          "summary": "Revoke access associated with a business login record for sign-out or account disabling.",
          "notes": [],
          "keywords": ["business sign-out", "login revocation", "disable"],
          "references": [
            {
              "operation_id": "revokeBusinessSession",
              "method": "POST",
              "path": "/api/v1/access-session-revocations"
            }
          ],
          "anchor": "capability-access-revoke-login"
        }
      ],
      "anchor": "module-access"
    }
  ],
  "technical_only": [
    {
      "id": "technical-start-compatibility",
      "title": "Compatible Power-On Endpoint",
      "reason": "Retains an endpoint for existing clients. The customer catalog describes power-on as one capability to avoid duplicate entries.",
      "references": [
        {
          "operation_id": "requestPower",
          "method": "POST",
          "path": "/api/v1/power-requests"
        }
      ]
    },
    {
      "id": "technical-core-capabilities",
      "title": "Platform Version and Capability Lookup",
      "reason": "Helps technical teams identify the Core version and global integration capabilities; it is not a customer business module.",
      "references": [
        {
          "operation_id": "getCapabilities",
          "method": "GET",
          "path": "/api/v1/capabilities"
        }
      ]
    },
    {
      "id": "technical-service-credentials",
      "title": "Service Credential Maintenance",
      "reason": "Used by technical staff for trusted server integration and administrator credential lifecycle management.",
      "references": [
        {
          "operation_id": "createServiceCredential",
          "method": "POST",
          "path": "/api/v1/admin/service-credentials"
        },
        {
          "operation_id": "disableServiceCredential",
          "method": "DELETE",
          "path": "/api/v1/admin/service-credentials/{credential_id}"
        }
      ]
    },
    {
      "id": "technical-resource-handover",
      "title": "Cloud Card Allocation and Release Handover",
      "reason": "Used by administrators for resource reservation, allocation, and cleanup handover. It is separate from Cloud Phone recycling and user access authorization.",
      "references": [
        {
          "operation_id": "reserveBox",
          "method": "POST",
          "path": "/api/v1/admin/boxes/{box_id}/reservations"
        },
        {
          "operation_id": "allocateBox",
          "method": "POST",
          "path": "/api/v1/admin/boxes/{box_id}/allocations"
        },
        {
          "operation_id": "requestBoxRelease",
          "method": "POST",
          "path": "/api/v1/admin/boxes/{box_id}/release-requests"
        },
        {
          "operation_id": "confirmBoxRelease",
          "method": "POST",
          "path": "/api/v1/admin/boxes/{box_id}/release-confirmations"
        }
      ]
    },
    {
      "id": "technical-health",
      "title": "Service Health and Worker Readiness Checks",
      "reason": "Used by deployment monitoring to check processes, data dependencies, and background Task processing. It does not indicate that a particular device is available.",
      "references": [
        {
          "operation_id": "getLiveness",
          "method": "GET",
          "path": "/health/live"
        },
        {
          "operation_id": "getReadiness",
          "method": "GET",
          "path": "/health/ready"
        },
        {
          "operation_id": "getWorkerReadiness",
          "method": "GET",
          "path": "/health/worker"
        }
      ]
    },
    {
      "id": "technical-room-credentials",
      "title": "Machine Room Credential Maintenance",
      "reason": "Used by platform technical staff to query, issue, rotate, disable, and revoke credentials for Machine Room connections.",
      "references": [
        {
          "operation_id": "getRoomCredential",
          "method": "GET",
          "path": "/api/v1/admin/room-credentials/{server_id}"
        },
        {
          "operation_id": "issueRoomCredential",
          "method": "POST",
          "path": "/api/v1/admin/room-credentials/{server_id}"
        },
        {
          "operation_id": "rotateRoomCredential",
          "method": "POST",
          "path": "/api/v1/admin/room-credentials/{server_id}/rotations"
        },
        {
          "operation_id": "disableRoomCredential",
          "method": "POST",
          "path": "/api/v1/admin/room-credentials/{server_id}/disable"
        },
        {
          "operation_id": "revokeRoomCredential",
          "method": "POST",
          "path": "/api/v1/admin/room-credentials/{server_id}/revocations"
        }
      ]
    },
    {
      "id": "technical-media-configuration",
      "title": "Machine Room Media Endpoint Configuration",
      "reason": "Configures screen streaming infrastructure; it is not presented as a user screen streaming operation.",
      "references": [
        {
          "operation_id": "configureRoomMedia",
          "method": "PUT",
          "path": "/api/v1/admin/rooms/{server_id}/media"
        }
      ]
    },
    {
      "id": "technical-task-recovery",
      "title": "Resume Subsequent Operations after an Unknown Task Result",
      "reason": "Requires explicit human confirmation and only allows subsequent operations to continue. The original unknown result and cleanup restrictions remain. This is not a retry, a success result, or cancellation.",
      "references": [
        {
          "operation_id": "recoverTask",
          "method": "POST",
          "path": "/api/v1/tasks/{task_id}/recovery"
        }
      ]
    },
    {
      "id": "technical-adb-shell",
      "title": "Device Command Execution",
      "reason": "Intended for technical staff with device debugging permissions, rather than routine business use by semi-technical customers.",
      "references": [
        {
          "operation_id": "createTask",
          "action": "adb_shell",
          "request_schema": "TaskAdbShellRequest",
          "method": "POST",
          "path": "/api/v1/tasks",
          "schema_ref": "#/components/schemas/TaskAdbShellRequest"
        }
      ]
    }
  ],
  "locale": "en",
  "text_sha256": "740bd4bf153d3ce17299da5bb4e7980e9a5a2445676b88837c68953270c1e90c",
  "contract_version": "0.2.0",
  "spec_sha256": "f8a9a88337fc14c7df5eee3822d39c8094bdedaeffc51065db1b5dcd000cbcf2",
  "catalog_sha256": "f2e2b4f3ccb54345faa78157eee68c6808aac6cb634a6c410d83e47b9f598d7e"
}
