{
  "repo": "tidbcloud/VictoriaMetrics",
  "binary": "vmrestore",
  "binary_path": "app/vmrestore/main.go",
  "dependencies": {
    "Runtime VMRestoreLifecycle.InitializeFlagsAndLogging": {
      "infrastructure": {},
      "services": []
    },
    "Runtime VMRestoreLifecycle.StartHTTPServer": {
      "infrastructure": {},
      "services": []
    },
    "Runtime VMRestoreLifecycle.HandleSignalCancellation": {
      "infrastructure": {},
      "services": []
    },
    "Runtime VMRestoreLifecycle.RunRestore": {
      "infrastructure": {
        "filesystem": {
          "conditions": [
            "storageDataPath points to the local destination data directory"
          ],
          "operations": [
            {
              "operation": "WRITE RESTORED DATA",
              "trigger": "Synchronize downloaded backup contents into the local VM data directory",
              "conditions": [
                "newDstFS() succeeds"
              ],
              "implementation": "main -> newDstFS() -> fslocal.FS.Init() -> actions.Restore.Run(ctx)"
            }
          ]
        }
      },
      "services": [
        {
          "name": "remote-backup-storage",
          "target_interface": "actions.NewRemoteFS(src)",
          "operation_type": "storage_read",
          "conditions": [
            "src is configured with gs://, s3://, azblob://, or fs://"
          ],
          "operations": [
            {
              "operation": "READ BACKUP DATA",
              "trigger": "Download backup blocks from remote storage before restoring them locally",
              "conditions": [
                "newSrcFS(ctx) succeeds"
              ],
              "implementation": "main -> newSrcFS(ctx) -> actions.Restore.Run(ctx)"
            }
          ]
        }
      ]
    },
    "Runtime VMRestoreLifecycle.StopHTTPServer": {
      "infrastructure": {},
      "services": []
    },
    "HTTP ANY /health": {
      "infrastructure": {},
      "services": []
    },
    "HTTP ANY /ping": {
      "infrastructure": {},
      "services": []
    },
    "HTTP ANY /metrics": {
      "infrastructure": {},
      "services": []
    },
    "HTTP ANY /flags": {
      "infrastructure": {},
      "services": []
    },
    "HTTP ANY /-/healthy": {
      "infrastructure": {},
      "services": []
    },
    "HTTP ANY /-/ready": {
      "infrastructure": {},
      "services": []
    },
    "HTTP ANY /debug/pprof/*": {
      "infrastructure": {},
      "services": []
    }
  }
}
