{
  "repo": "tidbcloud/tidb-management-service",
  "binary": "tempo-proxy",
  "binary_path": "tempo-proxy/cmd/tempo-proxy/main.go",
  "dependencies": {
    "CoreService.CreateCluster": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterService.CreateCluster",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "IsDevTier == true"
          ],
          "operations": [
            {
              "operation": "gRPC CreateCluster",
              "trigger": "Create serverless cluster",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "IsDevTier == true"
              ],
              "implementation": "svc.tiDBMgmtServerlessClient.CreateCluster()"
            }
          ]
        },
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterService.RestoreDedicatedCluster",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "IsDevTier == false",
            "RestoreId != 0 || RestoreClusterId != 0"
          ],
          "operations": [
            {
              "operation": "gRPC RestoreDedicatedCluster",
              "trigger": "Restore dedicated cluster in TiDBMgmt",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "!IsDevTier && (RestoreId != 0 || RestoreClusterId != 0)"
              ],
              "implementation": "svc.tiDBMgmtClusterClient.RestoreDedicatedCluster()"
            }
          ]
        },
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.CreateCluster",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "IsDevTier == false",
            "RestoreId == 0 && RestoreClusterId == 0"
          ],
          "operations": [
            {
              "operation": "gRPC CreateCluster",
              "trigger": "Create dedicated cluster in DedicatedGlobal",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.CreateCluster()"
            }
          ]
        }
      ]
    },
    "CoreService.ChangeClusterPasswd": {
      "infrastructure": {},
      "services": [
        {
          "name": "serverless-global",
          "target_interface": "SqlUserService.ChangeSqlUserPasswd",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ChangeSqlUserPasswd",
              "trigger": "Change serverless cluster password",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.serverlessSqlUserClient.ChangeSqlUserPasswd()"
            }
          ]
        },
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.ChangeClusterPasswd",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "cluster not found in serverless-global"
          ],
          "operations": [
            {
              "operation": "gRPC ChangeClusterPasswd",
              "trigger": "Fallback to dedicated cluster",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "isClusterNotFoundInForwardTarget(err)"
              ],
              "implementation": "svc.dedicatedGlobalClient.ChangeClusterPasswd()"
            }
          ]
        }
      ]
    },
    "CoreService.SetClusterAuthPubKey": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterService.ListClusters",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListClusters",
              "trigger": "Query cluster from mgmt to determine deploy type",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.getClusterFromMgmt()"
            }
          ]
        }
      ]
    },
    "CoreService.GetClusterConfidentialInfo": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterService.ListClusters",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListClusters",
              "trigger": "Query cluster from mgmt to determine deploy type",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.getClusterFromMgmt()"
            }
          ]
        },
        {
          "name": "serverless-global",
          "target_interface": "ServerlessService.GetEncryptedCloudAdminPwd",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "DeployType == SERVERLESS"
          ],
          "operations": [
            {
              "operation": "gRPC GetEncryptedCloudAdminPwd",
              "trigger": "Get serverless cluster confidential info",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "cluster.DeployType == SERVERLESS"
              ],
              "implementation": "svc.serverlessGlobalClient.GetEncryptedCloudAdminPwd()"
            }
          ]
        },
        {
          "name": "dedicated-global",
          "target_interface": "ClusterService.GetClusterConfidentialInfo",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "DeployType == DEDICATED"
          ],
          "operations": [
            {
              "operation": "gRPC GetClusterConfidentialInfo",
              "trigger": "Get dedicated cluster confidential info",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "cluster.DeployType == DEDICATED"
              ],
              "implementation": "svc.dedicatedClusterServiceClient.GetClusterConfidentialInfo()"
            }
          ]
        }
      ]
    },
    "CoreService.CleanClusters": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterService.CleanClusters",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC CleanClusters (Serverless)",
              "trigger": "Clean serverless clusters",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "IsDevTier == true"
              ],
              "implementation": "svc.tiDBMgmtClusterClient.CleanClusters(DEPLOY_TYPE_SERVERLESS)"
            },
            {
              "operation": "gRPC CleanClusters (Dedicated)",
              "trigger": "Clean dedicated clusters",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "IsDevTier == false"
              ],
              "implementation": "svc.tiDBMgmtClusterClient.CleanClusters(DEPLOY_TYPE_DEDICATED)"
            }
          ]
        }
      ]
    },
    "CoreService.ClearCluster": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterService.ListClusters",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListClusters",
              "trigger": "Check if cluster exists in tidb-mgmt",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtClusterClient.ListClusters()"
            }
          ]
        }
      ]
    },
    "CoreService.ScaleCluster": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterService.ListClusters",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListClusters",
              "trigger": "Check if cluster exists in tidb-mgmt",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtClusterClient.ListClusters()"
            }
          ]
        }
      ]
    },
    "CoreService.PauseCluster": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterService.ListClusters",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListClusters",
              "trigger": "Check if cluster exists in tidb-mgmt",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtClusterClient.ListClusters()"
            }
          ]
        }
      ]
    },
    "CoreService.ResumeCluster": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterService.ListClusters",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListClusters",
              "trigger": "Check if cluster exists in tidb-mgmt",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtClusterClient.ListClusters()"
            }
          ]
        }
      ]
    },
    "CoreService.GetClusterCACertificate": {
      "infrastructure": {},
      "services": [
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.GetClusterCACertificate",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC GetClusterCACertificate",
              "trigger": "Get cluster CA certificate",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.GetClusterCACertificate()"
            }
          ]
        }
      ]
    },
    "CoreService.QueryAccessPoints": {
      "infrastructure": {},
      "services": [
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.QueryAccessPoints",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC QueryAccessPoints",
              "trigger": "Query access points",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.QueryAccessPoints()"
            }
          ]
        }
      ]
    },
    "CoreService.QueryCidrs": {
      "infrastructure": {},
      "services": [
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.QueryCidrs",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC QueryCidrs",
              "trigger": "Query CIDRs",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.QueryCidrs()"
            }
          ]
        }
      ]
    },
    "CoreService.CreateClusterJob": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterCustomStatusService.SetClusterCustomStatus",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC SetClusterCustomStatus",
              "trigger": "Create cluster job via custom status",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtCustomStatusClient.SetClusterCustomStatus()"
            }
          ]
        }
      ]
    },
    "CoreService.DeleteClusterJob": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterCustomStatusService.DeleteClusterCustomStatus",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "JobId != 0"
          ],
          "operations": [
            {
              "operation": "gRPC DeleteClusterCustomStatus",
              "trigger": "Delete cluster job by ID",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "JobId != 0"
              ],
              "implementation": "svc.tiDBMgmtCustomStatusClient.DeleteClusterCustomStatus()"
            }
          ]
        },
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterCustomStatusService.GetClusterCustomStatusByName",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "JobId == 0"
          ],
          "operations": [
            {
              "operation": "gRPC GetClusterCustomStatusByName",
              "trigger": "Get cluster job by name",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "JobId == 0"
              ],
              "implementation": "svc.tiDBMgmtCustomStatusClient.GetClusterCustomStatusByName()"
            }
          ]
        }
      ]
    },
    "CoreService.IsClusterJobRegistered": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterCustomStatusService.GetClusterCustomStatusByID",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "JobId != 0"
          ],
          "operations": [
            {
              "operation": "gRPC GetClusterCustomStatusByID",
              "trigger": "Check job registration by ID",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "JobId != 0"
              ],
              "implementation": "svc.tiDBMgmtCustomStatusClient.GetClusterCustomStatusByID()"
            }
          ]
        },
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterCustomStatusService.IsClusterCustomStatusExisted",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "JobId == 0"
          ],
          "operations": [
            {
              "operation": "gRPC IsClusterCustomStatusExisted",
              "trigger": "Check job existence",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "JobId == 0"
              ],
              "implementation": "svc.tiDBMgmtCustomStatusClient.IsClusterCustomStatusExisted()"
            }
          ]
        }
      ]
    },
    "CoreService.ListClusterJobs": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterCustomStatusService.ListClusterCustomStatus",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListClusterCustomStatus",
              "trigger": "List cluster jobs",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtCustomStatusClient.ListClusterCustomStatus()"
            }
          ]
        }
      ]
    },
    "CoreService.CreateClusterSnapshot": {
      "infrastructure": {},
      "services": [
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.CreateClusterSnapshot",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC CreateClusterSnapshot",
              "trigger": "Create cluster snapshot",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.CreateClusterSnapshot()"
            }
          ]
        }
      ]
    },
    "CoreService.ListClusterSnapshots": {
      "infrastructure": {},
      "services": [
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.ListClusterSnapshots",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListClusterSnapshots",
              "trigger": "List cluster snapshots",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.ListClusterSnapshots()"
            }
          ]
        }
      ]
    },
    "CoreService.GetAwsCmek": {
      "infrastructure": {},
      "services": [
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.GetAwsCmek",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC GetAwsCmek",
              "trigger": "Get AWS CMEK config",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.GetAwsCmek()"
            }
          ]
        }
      ]
    },
    "CoreService.CountClusters": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterService.CountClusters",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC CountClusters",
              "trigger": "Count clusters",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtClusterClient.CountClusters()"
            }
          ]
        }
      ]
    },
    "CoreService.ExecuteCtlCommand": {
      "infrastructure": {},
      "services": []
    },
    "CoreService.GetClusterTopology": {
      "infrastructure": {},
      "services": []
    },
    "CoreService.CreateDBUser": {
      "infrastructure": {},
      "services": [
        {
          "name": "serverless-global",
          "target_interface": "SqlUserService.CreateSqlUser",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC CreateSqlUser",
              "trigger": "Create DB user",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.serverlessSqlUserClient.CreateSqlUser()"
            }
          ]
        }
      ]
    },
    "CoreService.UpdateDBUser": {
      "infrastructure": {},
      "services": [
        {
          "name": "serverless-global",
          "target_interface": "SqlUserService.UpdateSqlUser",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC UpdateSqlUser",
              "trigger": "Update DB user",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.serverlessSqlUserClient.UpdateSqlUser()"
            }
          ]
        }
      ]
    },
    "CoreService.ListDBUsers": {
      "infrastructure": {},
      "services": [
        {
          "name": "serverless-global",
          "target_interface": "SqlUserService.ListSqlUsers",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListSqlUsers",
              "trigger": "List DB users",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.serverlessSqlUserClient.ListSqlUsers()"
            }
          ]
        }
      ]
    },
    "CoreService.DeleteDBUser": {
      "infrastructure": {},
      "services": [
        {
          "name": "serverless-global",
          "target_interface": "SqlUserService.DeleteSqlUser",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC DeleteSqlUser",
              "trigger": "Delete DB user",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.serverlessSqlUserClient.DeleteSqlUser()"
            }
          ]
        }
      ]
    },
    "CoreService.GetDBUser": {
      "infrastructure": {},
      "services": [
        {
          "name": "serverless-global",
          "target_interface": "SqlUserService.GetSqlUser",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC GetSqlUser",
              "trigger": "Get DB user",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.serverlessSqlUserClient.GetSqlUser()"
            }
          ]
        }
      ]
    },
    "CoreService.IsDBUserExisting": {
      "infrastructure": {},
      "services": [
        {
          "name": "serverless-global",
          "target_interface": "SqlUserService.IsSqlUserExisting",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC IsSqlUserExisting",
              "trigger": "Check DB user existence",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.serverlessSqlUserClient.IsSqlUserExisting()"
            }
          ]
        }
      ]
    },
    "CoreService.CreateDBRole": {
      "infrastructure": {},
      "services": [
        {
          "name": "serverless-global",
          "target_interface": "SqlUserService.CreateSqlRole",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC CreateSqlRole",
              "trigger": "Create DB role",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.serverlessSqlUserClient.CreateSqlRole()"
            }
          ]
        }
      ]
    },
    "CoreService.UpdateDBRole": {
      "infrastructure": {},
      "services": [
        {
          "name": "serverless-global",
          "target_interface": "SqlUserService.UpdateSqlRole",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC UpdateSqlRole",
              "trigger": "Update DB role",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.serverlessSqlUserClient.UpdateSqlRole()"
            }
          ]
        }
      ]
    },
    "CoreService.ListClusters": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterService.ListClusters",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListClusters",
              "trigger": "List clusters from tidb-mgmt",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtClusterClient.ListClusters()"
            }
          ]
        }
      ]
    },
    "CoreService.GetMaintenanceWindowByProjectID": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "CoreService.GetMaintenanceWindowByProjectID",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC GetMaintenanceWindowByProjectID",
              "trigger": "Get maintenance window",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtCoreSvcClient.GetMaintenanceWindowByProjectID()"
            }
          ]
        }
      ]
    },
    "CoreService.UpdateMaintenanceWindow": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "CoreService.UpdateMaintenanceWindow",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC UpdateMaintenanceWindow",
              "trigger": "Update maintenance window",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtCoreSvcClient.UpdateMaintenanceWindow()"
            }
          ]
        }
      ]
    },
    "CoreService.CreateMaintenanceTask": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "CoreService.CreateMaintenanceTask",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC CreateMaintenanceTask",
              "trigger": "Create maintenance task",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtCoreSvcClient.CreateMaintenanceTask()"
            }
          ]
        }
      ]
    },
    "CoreService.SyncMaintenanceWindow": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "CoreService.SyncMaintenanceWindow",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC SyncMaintenanceWindow",
              "trigger": "Sync maintenance window",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtCoreSvcClient.SyncMaintenanceWindow()"
            }
          ]
        }
      ]
    },
    "CoreService.DeferMaintenanceTask": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "CoreService.DeferMaintenanceTask",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC DeferMaintenanceTask",
              "trigger": "Defer maintenance task",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtCoreSvcClient.DeferMaintenanceTask()"
            }
          ]
        }
      ]
    },
    "CoreService.UpdateMaintenanceTaskStatus": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "CoreService.UpdateMaintenanceTaskStatus",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC UpdateMaintenanceTaskStatus",
              "trigger": "Update maintenance task status",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtCoreSvcClient.UpdateMaintenanceTaskStatus()"
            }
          ]
        }
      ]
    },
    "CoreService.UpdateMaintenanceTaskExecutionStatus": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "CoreService.UpdateMaintenanceTaskExecutionStatus",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC UpdateMaintenanceTaskExecutionStatus",
              "trigger": "Update maintenance task execution status",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtCoreSvcClient.UpdateMaintenanceTaskExecutionStatus()"
            }
          ]
        }
      ]
    },
    "CoreService.QueryMaintenanceTasks": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "CoreService.QueryMaintenanceTasks",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC QueryMaintenanceTasks",
              "trigger": "Query maintenance tasks",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtCoreSvcClient.QueryMaintenanceTasks()"
            }
          ]
        }
      ]
    },
    "CoreService.CountMaintenanceTasks": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "CoreService.CountMaintenanceTasks",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC CountMaintenanceTasks",
              "trigger": "Count maintenance tasks",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtCoreSvcClient.CountMaintenanceTasks()"
            }
          ]
        }
      ]
    },
    "CoreService.QueryMaintenanceTaskExecutions": {
      "infrastructure": {},
      "services": [
        {
          "name": "tidb-mgmt-service",
          "target_interface": "CoreService.QueryMaintenanceTaskExecutions",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC QueryMaintenanceTaskExecutions",
              "trigger": "Query maintenance task executions",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.tiDBMgmtCoreSvcClient.QueryMaintenanceTaskExecutions()"
            }
          ]
        }
      ]
    },
    "CoreService.CreateNetworkPeer": {
      "infrastructure": {},
      "services": [
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.CreateNetworkPeer",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC CreateNetworkPeer",
              "trigger": "Create network peer",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.CreateNetworkPeer()"
            }
          ]
        }
      ]
    },
    "CoreService.DeleteNetworkPeer": {
      "infrastructure": {},
      "services": [
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.ListNetworkPeer",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListNetworkPeer",
              "trigger": "Query network peer before delete",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.ListNetworkPeer()"
            }
          ]
        },
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.DeleteNetworkPeer",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC DeleteNetworkPeer",
              "trigger": "Delete network peer",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.DeleteNetworkPeer()"
            }
          ]
        }
      ]
    },
    "CoreService.ListNetworkPeer": {
      "infrastructure": {},
      "services": [
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.ListNetworkPeer",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListNetworkPeer",
              "trigger": "List network peers",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.ListNetworkPeer()"
            }
          ]
        }
      ]
    },
    "CoreService.GetPrivateLinkService": {
      "infrastructure": {},
      "services": [
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.GetPrivateLinkService",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC GetPrivateLinkService",
              "trigger": "Get private link service",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.GetPrivateLinkService()"
            }
          ]
        }
      ]
    },
    "CoreService.CreatePrivateLinkEndpoint": {
      "infrastructure": {},
      "services": [
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.CreatePrivateLinkEndpoint",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC CreatePrivateLinkEndpoint",
              "trigger": "Create private link endpoint",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.CreatePrivateLinkEndpoint()"
            }
          ]
        },
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterService.ListClusters",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListClusters",
              "trigger": "Get cluster display name",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.getClusterDisplayName()"
            }
          ]
        }
      ]
    },
    "CoreService.ListPrivateLinkEndpoints": {
      "infrastructure": {},
      "services": [
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.ListPrivateLinkEndpoints",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListPrivateLinkEndpoints",
              "trigger": "List private link endpoints",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.ListPrivateLinkEndpoints()"
            }
          ]
        },
        {
          "name": "tidb-mgmt-service",
          "target_interface": "ClusterService.ListClusters",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListClusters",
              "trigger": "Get cluster display name for each endpoint",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.getClusterDisplayName() (loop)"
            }
          ]
        }
      ]
    },
    "CoreService.UpdateTenantQuota": {
      "infrastructure": {},
      "services": [
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.UpdateTenantQuota",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC UpdateTenantQuota",
              "trigger": "Update tenant quota",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.UpdateTenantQuota()"
            }
          ]
        }
      ]
    },
    "CoreService.ListTenantQuota": {
      "infrastructure": {},
      "services": [
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.ListTenantQuota",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListTenantQuota",
              "trigger": "List tenant quota",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.ListTenantQuota()"
            }
          ]
        }
      ]
    },
    "CoreService.ListCloudRegions": {
      "infrastructure": {},
      "services": [
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.ListCloudRegions",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListCloudRegions",
              "trigger": "List cloud regions",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.ListCloudRegions()"
            }
          ]
        }
      ]
    },
    "CoreService.ListCloudProviders": {
      "infrastructure": {},
      "services": [
        {
          "name": "serverless-global",
          "target_interface": "RegionService.List",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "DeployType == DEPLOY_TYPE_SHARED"
          ],
          "operations": [
            {
              "operation": "gRPC List (RegionService)",
              "trigger": "List serverless cloud providers",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "DeployType == DEPLOY_TYPE_SHARED"
              ],
              "implementation": "svc.serverlessGlobalRegionClient.List()"
            }
          ]
        },
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.ListCloudProviders",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "DeployType != DEPLOY_TYPE_SHARED"
          ],
          "operations": [
            {
              "operation": "gRPC ListCloudProviders",
              "trigger": "List dedicated cloud providers",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "DeployType != DEPLOY_TYPE_SHARED"
              ],
              "implementation": "svc.dedicatedGlobalClient.ListCloudProviders()"
            }
          ]
        }
      ]
    },
    "CoreService.ListRegionCIDROfProject": {
      "infrastructure": {},
      "services": [
        {
          "name": "dedicated-global",
          "target_interface": "CoreService.ListRegionCIDROfProject",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/tidb-management-service",
          "conditions": [
            "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
            "Always"
          ],
          "operations": [
            {
              "operation": "gRPC ListRegionCIDROfProject",
              "trigger": "List region CIDR of project",
              "conditions": [
                "Registered only when cfg.Server.ForwardMethods contains this method name; if the list is empty, the runtime gRPC surface becomes empty",
                "Always"
              ],
              "implementation": "svc.dedicatedGlobalClient.ListRegionCIDROfProject()"
            }
          ]
        }
      ]
    },
    "TempoProxyLifecycle.Startup": {
      "infrastructure": {
        "config": {
          "conditions": [
            "Always"
          ],
          "operations": [
            {
              "operation": "READ YAML",
              "trigger": "Load proxy routing and downstream addresses before server build",
              "conditions": [
                "Always"
              ],
              "implementation": "runFromCfgFile -> ReadConfigFromFile(cfgFilePath)"
            }
          ]
        }
      },
      "services": []
    },
    "TempoProxyLifecycle.BuildProxyServer": {
      "infrastructure": {
        "pprof": {
          "conditions": [
            "Always"
          ],
          "operations": [
            {
              "operation": "REGISTER",
              "trigger": "Expose pprof handlers on the TiInf Gin engine",
              "conditions": [
                "Always"
              ],
              "implementation": "pprof.Register(inf.GinEngine())"
            }
          ]
        }
      },
      "services": [
        {
          "name": "account-service",
          "target_interface": "AccountAPIService.ListOrgsAdvance",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/account",
          "conditions": [
            "Always when allowListConfigName != \"dummy\""
          ],
          "operations": [
            {
              "operation": "gRPC ListOrgsAdvance",
              "trigger": "Prefetch org metadata into the allow-list cache after the proxy-side allow-list client is initialized",
              "conditions": [
                "allowListConfigName != \"dummy\""
              ],
              "implementation": "allowlist.NewAllowList(..., getAccountProviderSvcClient(), ...) -> loadAccountCache() -> PrefetchOrgsInfo() -> accountCli.ListOrgsAdvance(...)"
            }
          ]
        },
        {
          "name": "account-service",
          "target_interface": "AccountAPIService.GetOrgByID",
          "operation_type": "grpc_unary",
          "target_repo": "tidbcloud/account",
          "conditions": [
            "Only on allow-list cache miss when org creation time must be checked against AffectOrgCreatedAfter"
          ],
          "operations": [
            {
              "operation": "gRPC GetOrgByID",
              "trigger": "Resolve org creation time for allow-list evaluation when the prefetched cache does not already contain the tenant metadata",
              "conditions": [
                "allowListConfigName != \"dummy\"",
                "allow-list cache miss"
              ],
              "implementation": "AllowList.IsAllow() -> getOrgInfo() -> accountCli.GetOrgByID(ctx, &account.GetOrgByIDRequest{Id: tenantID})"
            }
          ]
        }
      ]
    }
  },
  "notes": [
    "Fresh codex rescan confirmed that the proxy surface is filtered by cfg.Server.ForwardMethods at registration time; old scans that assumed a full CoreService surface would overstate the runtime API."
  ]
}
