{
  "repo": "tidbcloud/account",
  "binary": "provider",
  "binary_path": "central/cmd/provider/main.go",
  "surface_kind": "mixed_service",
  "type": "mixed_service",
  "extensions": {},
  "services": [
    {
      "name": "AccountAPIService",
      "package": "account",
      "methods": [
        {"name": "GetUserByEmail", "name_key": "AccountAPIService.GetUserByEmail", "input": "GetUserByEmailRequest", "output": "GetUserByEmailResponse"},
        {"name": "GetUserByID", "name_key": "AccountAPIService.GetUserByID", "input": "GetUserByIDRequest", "output": "GetUserByIDResponse"},
        {"name": "GetUserByToken", "name_key": "AccountAPIService.GetUserByToken", "input": "GetUserByTokenRequest", "output": "GetUserByTokenResponse"},
        {"name": "ListUsers", "name_key": "AccountAPIService.ListUsers", "input": "UserFilter", "output": "ListUsersResponse"},
        {"name": "ListUsersByFilter", "name_key": "AccountAPIService.ListUsersByFilter", "input": "ListUsersByFilterRequest", "output": "ListUsersByFilterResponse"},
        {"name": "ListUsersByPage", "name_key": "AccountAPIService.ListUsersByPage", "input": "ListUsersByPageRequest", "output": "ListUsersByPageResponse"},
        {"name": "ValidateToken", "name_key": "AccountAPIService.ValidateToken", "input": "ValidateTokenRequest", "output": "ValidateTokenResponse"},
        {"name": "GetScopeUser", "name_key": "AccountAPIService.GetScopeUser", "input": "GetScopeUserRequest", "output": "GetScopeUserResponse"},
        {"name": "GetSystemUser", "name_key": "AccountAPIService.GetSystemUser", "input": "GetSystemUserRequest", "output": "GetSystemUserResponse"},
        {"name": "GetOrCreateSystemUser", "name_key": "AccountAPIService.GetOrCreateSystemUser", "input": "GetOrCreateSystemUserRequest", "output": "GetOrCreateSystemUserResponse"},
        {"name": "GetAuthUser", "name_key": "AccountAPIService.GetAuthUser", "input": "GetAuthUserRequest", "output": "GetAuthUserResponse"},
        {"name": "GetProjectByID", "name_key": "AccountAPIService.GetProjectByID", "input": "GetProjectByIDRequest", "output": "GetProjectByIDResponse"},
        {"name": "ListProjects", "name_key": "AccountAPIService.ListProjects", "input": "ProjectFilter", "output": "ListProjectsResponse"},
        {"name": "ListProjectsByOrgs", "name_key": "AccountAPIService.ListProjectsByOrgs", "input": "ListProjectsByOrgsRequest", "output": "ListProjectsByOrgsResponse"},
        {"name": "ListProjectsByOrgsInUser", "name_key": "AccountAPIService.ListProjectsByOrgsInUser", "input": "ListProjectsByOrgsInUserRequest", "output": "ListProjectsByOrgsInUserResponse"},
        {"name": "DeleteProjectByID", "name_key": "AccountAPIService.DeleteProjectByID", "input": "DeleteProjectByIDRequest", "output": "google.protobuf.Empty"},
        {"name": "GetOrgByID", "name_key": "AccountAPIService.GetOrgByID", "input": "GetOrgByIDRequest", "output": "GetOrgByIDResponse"},
        {"name": "ListOrgs", "name_key": "AccountAPIService.ListOrgs", "input": "OrgFilter", "output": "ListOrgsResponse"},
        {"name": "ListOrgsAdvance", "name_key": "AccountAPIService.ListOrgsAdvance", "input": "ListOrgsParam", "output": "ListOrgsAdvanceResponse"},
        {"name": "ListOrgsByUser", "name_key": "AccountAPIService.ListOrgsByUser", "input": "ListOrgsByUserRequest", "output": "ListOrgsByUserResponse"},
        {"name": "DeleteOrgByID", "name_key": "AccountAPIService.DeleteOrgByID", "input": "DeleteOrgRequest", "output": "DeleteOrgResponse"},
        {"name": "DeleteOrgAdvanced", "name_key": "AccountAPIService.DeleteOrgAdvanced", "input": "DeleteOrgAdvancedRequest", "output": "DeleteOrgAdvancedResponse"},
        {"name": "UpdateOrg", "name_key": "AccountAPIService.UpdateOrg", "input": "UpdateOrgRequest", "output": "UpdateOrgResponse"},
        {"name": "VerifyUserOrgAndProjects", "name_key": "AccountAPIService.VerifyUserOrgAndProjects", "input": "VerifyUserOrgAndProjectsReq", "output": "VerifyUserOrgAndProjectsResp"},
        {"name": "CreateAuditLog", "name_key": "AccountAPIService.CreateAuditLog", "input": "CreateAuditLogRequest", "output": "CreateAuditLogResponse"},
        {"name": "BatchCreateAuditLogs", "name_key": "AccountAPIService.BatchCreateAuditLogs", "input": "BatchCreateAuditLogsRequest", "output": "BatchCreateAuditLogsResponse"},
        {"name": "ListTrials", "name_key": "AccountAPIService.ListTrials", "input": "TrialFilter", "output": "ListTrialsResponse"},
        {"name": "CreateTrial", "name_key": "AccountAPIService.CreateTrial", "input": "CreateTrialRequest", "output": "CreateTrialResponse"},
        {"name": "HasPermissionForUser", "name_key": "AccountAPIService.HasPermissionForUser", "input": "RbacPermissionRequest", "output": "RbacPermissionResponse"},
        {"name": "HasPermissionForIdentity", "name_key": "AccountAPIService.HasPermissionForIdentity", "input": "RbacIdentityPermissionRequest", "output": "RbacIdentityPermissionResponse"},
        {"name": "CheckIdentityAndPermission", "name_key": "AccountAPIService.CheckIdentityAndPermission", "input": "CheckIdentityAndPermissionRequest", "output": "CheckIdentityAndPermissionResponse"},
        {"name": "SaveAuthorizationData", "name_key": "AccountAPIService.SaveAuthorizationData", "input": "SaveAuthorizationDataReq", "output": "SaveAuthorizationDataResp"},
        {"name": "SendEmail", "name_key": "AccountAPIService.SendEmail", "input": "SendEmailReq", "output": "SendEmailResp"},
        {"name": "SendEmailByLabels", "name_key": "AccountAPIService.SendEmailByLabels", "input": "SendEmailByLabelsReq", "output": "SendEmailByLabelsResp"},
        {"name": "HoldEmailUniqueID", "name_key": "AccountAPIService.HoldEmailUniqueID", "input": "HoldEmailUniqueIDReq", "output": "HoldEmailUniqueIDResp"},
        {"name": "ClearEmailUniqueID", "name_key": "AccountAPIService.ClearEmailUniqueID", "input": "ClearEmailUniqueIDReq", "output": "ClearEmailUniqueIDResp"},
        {"name": "QueryEmailUniqueID", "name_key": "AccountAPIService.QueryEmailUniqueID", "input": "QueryEmailUniqueIDReq", "output": "QueryEmailUniqueIDResp"},
        {"name": "GetDBUsers", "name_key": "AccountAPIService.GetDBUsers", "input": "GetDBUsersReq", "output": "GetDBUsersResp"},
        {"name": "CreateApiKey", "name_key": "AccountAPIService.CreateApiKey", "input": "CreateApiKeyReq", "output": "CreateApiKeyRsp"},
        {"name": "UpdateApiKey", "name_key": "AccountAPIService.UpdateApiKey", "input": "UpdateApiKeyReq", "output": "UpdateApiKeyRsp"},
        {"name": "DeleteApiKey", "name_key": "AccountAPIService.DeleteApiKey", "input": "DeleteApiKeyReq", "output": "DeleteApiKeyRsp"},
        {"name": "RecoverApiKeyPermission", "name_key": "AccountAPIService.RecoverApiKeyPermission", "input": "RecoverApiKeyPermissionReq", "output": "RecoverApiKeyPermissionRsp"},
        {"name": "GetApiKeysByResource", "name_key": "AccountAPIService.GetApiKeysByResource", "input": "GetApiKeysByResourceReq", "output": "GetApiKeysByResourceRsp"},
        {"name": "GetApiKeyByAccessKey", "name_key": "AccountAPIService.GetApiKeyByAccessKey", "input": "GetApiKeyByAccessKeyReq", "output": "GetApiKeyByAccessKeyRsp"},
        {"name": "RecoverResourceRefAllApiKeyPermission", "name_key": "AccountAPIService.RecoverResourceRefAllApiKeyPermission", "input": "RecoverResourceRefAllApiKeyPermissionReq", "output": "RecoverResourceRefAllApiKeyPermissionRsp"},
        {"name": "BatchUpdateApiKeyExpireTime", "name_key": "AccountAPIService.BatchUpdateApiKeyExpireTime", "input": "BatchUpdateApiKeyExpireTimeReq", "output": "BatchUpdateApiKeyExpireTimeRsp"},
        {"name": "GetIdentityByAccessToken", "name_key": "AccountAPIService.GetIdentityByAccessToken", "input": "GetIdentityByAccessTokenReq", "output": "GetIdentityByAccessTokenResp"},
        {"name": "IsHitExp", "name_key": "AccountAPIService.IsHitExp", "input": "HitExpReq", "output": "HitExpRsp"},
        {"name": "GetExpConfByName", "name_key": "AccountAPIService.GetExpConfByName", "input": "GetExpConfReq", "output": "GetExpConfRsp"},
        {"name": "GetFeatureFlagConf", "name_key": "AccountAPIService.GetFeatureFlagConf", "input": "GetFeatureFlagConfReq", "output": "GetFeatureFlagConfRsp"},
        {"name": "ListHitFeatureFlagNames", "name_key": "AccountAPIService.ListHitFeatureFlagNames", "input": "ListHitFeatureFlagNamesReq", "output": "ListHitFeatureFlagNamesRsp"},
        {"name": "IsHitFeatureFlag", "name_key": "AccountAPIService.IsHitFeatureFlag", "input": "HitFeatureFlagReq", "output": "HitFeatureFlagRsp"},
        {"name": "ConfigFeatureFlagOrg", "name_key": "AccountAPIService.ConfigFeatureFlagOrg", "input": "ConfigFeatureFlagOrgReq", "output": "ConfigFeatureFlagOrgRsp"},
        {"name": "GetOpenAPIAccess", "name_key": "AccountAPIService.GetOpenAPIAccess", "input": "GetOpenAPIAccessReq", "output": "GetOpenAPIAccessResp"},
        {"name": "AddImpersonateUser", "name_key": "AccountAPIService.AddImpersonateUser", "input": "AddImpersonateUserReq", "output": "AddImpersonateUserRsp"},
        {"name": "DeleteImpersonateUser", "name_key": "AccountAPIService.DeleteImpersonateUser", "input": "DeleteImpersonateUserReq", "output": "DeleteImpersonateUserRsp"},
        {"name": "GetImpersonateUser", "name_key": "AccountAPIService.GetImpersonateUser", "input": "GetImpersonateUserReq", "output": "GetImpersonateUserRsp"},
        {"name": "ListPartnerCustomers", "name_key": "AccountAPIService.ListPartnerCustomers", "input": "ListPartnerCustomersReq", "output": "ListPartnerCustomersResp"},
        {"name": "ListClusterDbUsers", "name_key": "AccountAPIService.ListClusterDbUsers", "input": "ListClusterDbUsersReq", "output": "ListClusterDbUsersRsp"},
        {"name": "TestClusterDbUser", "name_key": "AccountAPIService.TestClusterDbUser", "input": "TestClusterDbUserReq", "output": "TestClusterDbUserRsp"},
        {"name": "CreateClusterUser", "name_key": "AccountAPIService.CreateClusterUser", "input": "CreateClusterUserReq", "output": "CreateClusterUserRsp"},
        {"name": "GetClusterUser", "name_key": "AccountAPIService.GetClusterUser", "input": "GetClusterUserReq", "output": "GetClusterUserRsp"},
        {"name": "CreateCloudAdmin", "name_key": "AccountAPIService.CreateCloudAdmin", "input": "CreateCloudAdminReq", "output": "CreateCloudAdminRsp"},
        {"name": "GetCloudAdminCredential", "name_key": "AccountAPIService.GetCloudAdminCredential", "input": "GetCloudAdminCredentialReq", "output": "GetCloudAdminCredentialRsp"},
        {"name": "GetClusterAuthPubKey", "name_key": "AccountAPIService.GetClusterAuthPubKey", "input": "GetClusterAuthPubKeyReq", "output": "GetClusterAuthPubKeyRsp"},
        {"name": "AddClusterRelations", "name_key": "AccountAPIService.AddClusterRelations", "input": "AddClusterRelationsReq", "output": "AddClusterRelationsRsp"},
        {"name": "DeleteClusterRelations", "name_key": "AccountAPIService.DeleteClusterRelations", "input": "DeleteClusterRelationsReq", "output": "DeleteClusterRelationsRsp"},
        {"name": "CheckOperatorHasClusterRole", "name_key": "AccountAPIService.CheckOperatorHasClusterRole", "input": "CheckOperatorHasClusterRoleReq", "output": "CheckOperatorHasClusterRoleRsp"},
        {"name": "ListUserRoleBindings", "name_key": "AccountAPIService.ListUserRoleBindings", "input": "ListUserRoleBindingsReq", "output": "ListUserRoleBindingsRsp"}
      ]
    },
    {
      "name": "InnerHTTP",
      "package": "inner",
      "methods": [
        {"name": "POST /inner/account-provider/api/v1/api-key/authn", "name_key": "HTTP POST /inner/account-provider/api/v1/api-key/authn", "input": "AuthApiKeyReq", "output": "AuthApikeyRet"},
        {"name": "POST /inner/account-provider/api/v1/api-key/authz", "name_key": "HTTP POST /inner/account-provider/api/v1/api-key/authz", "input": "AuthzApiKeyReq", "output": "AuthApikeyRet"},
        {"name": "POST /inner/account-provider/api/v1/user/authn", "name_key": "HTTP POST /inner/account-provider/api/v1/user/authn", "input": "AuthnUserReq", "output": "AuthnAuth0TokenRet"},
        {"name": "POST /inner/account-provider/api/v1/user/authz", "name_key": "HTTP POST /inner/account-provider/api/v1/user/authz", "input": "AuthzUserReq", "output": "PermissionCheckRet"},
        {"name": "POST /inner/account-provider/api/v1/user/authn-session", "name_key": "HTTP POST /inner/account-provider/api/v1/user/authn-session", "input": "AuthnSessionParam", "output": "AuthnSessionRet"}
      ]
    }
  ]
}
