{
  "repo": "tidbcloud/ffs",
  "binary": "realm-server",
  "binary_path": "cmd/realm-server/main.go",
  "surface_kind": "mixed_service",
  "type": "service",
  "services": [
    {
      "name": "RealmLifecycle",
      "methods": [
        {
          "name": "BootstrapZoneClient",
          "name_key": "RealmLifecycle.BootstrapZoneClient",
          "input": "universe endpoints, zone name",
          "response": "Zone",
          "type": "local"
        },
        {
          "name": "WatchZoneUpdates",
          "name_key": "RealmLifecycle.WatchZoneUpdates",
          "input": "context.Context",
          "response": "void",
          "type": "local"
        },
        {
          "name": "ReportRealmHeartbeat",
          "name_key": "RealmLifecycle.ReportRealmHeartbeat",
          "input": "context.Context",
          "response": "void",
          "type": "local"
        }
      ]
    },
    {
      "name": "RealmControlService",
      "proto_file": "proto/control.proto",
      "methods": [
        {
          "name": "Mount",
          "name_key": "RealmControlService.Mount",
          "request": "MountReq",
          "response": "MountResp",
          "type": "unary"
        },
        {
          "name": "Umount",
          "name_key": "RealmControlService.Umount",
          "request": "UmountReq",
          "response": "EmptyMessage",
          "type": "unary"
        },
        {
          "name": "Cleanup",
          "name_key": "RealmControlService.Cleanup",
          "request": "CleanupReq",
          "response": "EmptyMessage",
          "type": "unary"
        },
        {
          "name": "Heartbeat",
          "name_key": "RealmControlService.Heartbeat",
          "request": "MountPointHeartbeatReq",
          "response": "MountPointHeartbeatResp",
          "type": "unary"
        }
      ]
    },
    {
      "name": "RealmService",
      "proto_file": "proto/data.proto",
      "methods": [
        {
          "name": "Create",
          "name_key": "RealmService.Create",
          "request": "CreateReq",
          "response": "CreateResp",
          "type": "unary"
        },
        {
          "name": "Open",
          "name_key": "RealmService.Open",
          "request": "OpenReq",
          "response": "OpenResp",
          "type": "unary"
        },
        {
          "name": "Fallocate",
          "name_key": "RealmService.Fallocate",
          "request": "FallocateReq",
          "response": "FallocateResp",
          "type": "unary"
        },
        {
          "name": "Read",
          "name_key": "RealmService.Read",
          "request": "ReadReq",
          "response": "ReadResp",
          "type": "unary"
        },
        {
          "name": "Write",
          "name_key": "RealmService.Write",
          "request": "WriteReq",
          "response": "WriteResp",
          "type": "unary"
        },
        {
          "name": "Flush",
          "name_key": "RealmService.Flush",
          "request": "FlushReq",
          "response": "FlushResp",
          "type": "unary"
        },
        {
          "name": "Unlink",
          "name_key": "RealmService.Unlink",
          "request": "UnlinkReq",
          "response": "UnlinkResp",
          "type": "unary"
        },
        {
          "name": "Readdir",
          "name_key": "RealmService.Readdir",
          "request": "ReaddirReq",
          "response": "ReaddirResp",
          "type": "unary"
        },
        {
          "name": "Lookup",
          "name_key": "RealmService.Lookup",
          "request": "LookupReq",
          "response": "LookupResp",
          "type": "unary"
        },
        {
          "name": "Close",
          "name_key": "RealmService.Close",
          "request": "CloseReq",
          "response": "CloseResp",
          "type": "unary"
        },
        {
          "name": "Fsync",
          "name_key": "RealmService.Fsync",
          "request": "FsyncReq",
          "response": "FsyncResp",
          "type": "unary"
        },
        {
          "name": "Link",
          "name_key": "RealmService.Link",
          "request": "LinkReq",
          "response": "LinkResp",
          "type": "unary"
        },
        {
          "name": "Symlink",
          "name_key": "RealmService.Symlink",
          "request": "SymlinkReq",
          "response": "SymlinkResp",
          "type": "unary"
        },
        {
          "name": "Readlink",
          "name_key": "RealmService.Readlink",
          "request": "ReadlinkReq",
          "response": "ReadlinkResp",
          "type": "unary"
        },
        {
          "name": "Rename",
          "name_key": "RealmService.Rename",
          "request": "RenameReq",
          "response": "RenameResp",
          "type": "unary"
        },
        {
          "name": "Mknod",
          "name_key": "RealmService.Mknod",
          "request": "MknodReq",
          "response": "MknodResp",
          "type": "unary"
        },
        {
          "name": "Mkdir",
          "name_key": "RealmService.Mkdir",
          "request": "MkdirReq",
          "response": "MkdirResp",
          "type": "unary"
        },
        {
          "name": "Rmdir",
          "name_key": "RealmService.Rmdir",
          "request": "RmdirReq",
          "response": "RmdirResp",
          "type": "unary"
        },
        {
          "name": "Statfs",
          "name_key": "RealmService.Statfs",
          "request": "StatfsReq",
          "response": "StatfsResp",
          "type": "unary"
        },
        {
          "name": "Setattr",
          "name_key": "RealmService.Setattr",
          "request": "SetattrReq",
          "response": "SetattrResp",
          "type": "unary"
        },
        {
          "name": "Access",
          "name_key": "RealmService.Access",
          "request": "AccessReq",
          "response": "AccessResp",
          "type": "unary"
        },
        {
          "name": "BatchCommands",
          "name_key": "RealmService.BatchCommands",
          "request": "BatchCommandsRequest",
          "response": "BatchCommandsResponse",
          "type": "bidi_stream"
        }
      ]
    }
  ],
  "extensions": {}
}
