{
  "repo": "tidbcloud/account",
  "binary": "central",
  "binary_path": "central/cmd/central/main.go",
  "surface_kind": "mixed_service",
  "type": "mixed_service",
  "extensions": {
    "notes": [
      "LocationService removed - registration is commented out in source code"
    ]
  },
  "services": [
    {
      "name": "AuthService",
      "package": "central",
      "methods": [
        {"name": "Meta", "name_key": "AuthService.Meta", "input": "google.protobuf.Empty", "output": "MetaData"},
        {"name": "VerifyEmailPassword", "name_key": "AuthService.VerifyEmailPassword", "input": "VerifyEmailPasswordReq", "output": "VerifyEmailPasswordRsp"},
        {"name": "VerifyOtpCode", "name_key": "AuthService.VerifyOtpCode", "input": "VerifyOtpCodeReq", "output": "VerifyRsp"},
        {"name": "VerifyRecoveryCode", "name_key": "AuthService.VerifyRecoveryCode", "input": "VerifyRecoveryCodeReq", "output": "VerifyRsp"},
        {"name": "StartEnableMFA", "name_key": "AuthService.StartEnableMFA", "input": "StartEnableMFAReq", "output": "StartEnableMFARsp"},
        {"name": "ConfirmMfaAuthenticators", "name_key": "AuthService.ConfirmMfaAuthenticators", "input": "ConfirmMfaAuthenticatorsReq", "output": "VerifyRsp"},
        {"name": "DisableMFA", "name_key": "AuthService.DisableMFA", "input": "DisableMfaReq", "output": "google.protobuf.Empty"}
      ]
    },
    {
      "name": "AuditLogService",
      "package": "central",
      "methods": [
        {"name": "CreateAuditLog", "name_key": "AuditLogService.CreateAuditLog", "input": "CreateAuditLogReq", "output": "google.protobuf.Empty"},
        {"name": "Auth0AuditLog", "name_key": "AuditLogService.Auth0AuditLog", "input": "Auth0AuditLogReq", "output": "google.protobuf.Empty"},
        {"name": "PaymentMethodAuditLog", "name_key": "AuditLogService.PaymentMethodAuditLog", "input": "PaymentMethodAuditLogReq", "output": "google.protobuf.Empty"}
      ]
    },
    {
      "name": "TenantService",
      "package": "central",
      "methods": [
        {"name": "Registration", "name_key": "TenantService.Registration", "input": "RegistrationReq", "output": "DefaultResp"},
        {"name": "SendVerificationEmail", "name_key": "TenantService.SendVerificationEmail", "input": "SendVerificationEmailReq", "output": "google.protobuf.Empty"},
        {"name": "ListOrganizations", "name_key": "TenantService.ListOrganizations", "input": "google.protobuf.Empty", "output": "OrganizationList"},
        {"name": "UpdateOrganization", "name_key": "TenantService.UpdateOrganization", "input": "UpdateOrgReq", "output": "google.protobuf.Empty"},
        {"name": "AcknowledgeCNPolicy", "name_key": "TenantService.AcknowledgeCNPolicy", "input": "AcknowledgeCNPolicyReq", "output": "google.protobuf.Empty"},
        {"name": "ListUsers", "name_key": "TenantService.ListUsers", "input": "ListUsersReq", "output": "Users"},
        {"name": "GetUserProfile", "name_key": "TenantService.GetUserProfile", "input": "OrgIdReq", "output": "UserProfile"},
        {"name": "UpdateUser", "name_key": "TenantService.UpdateUser", "input": "UpdateUserReq", "output": "google.protobuf.Empty"},
        {"name": "UpdateUserProfile", "name_key": "TenantService.UpdateUserProfile", "input": "UpdateUserProfileReq", "output": "google.protobuf.Empty"},
        {"name": "DeleteUser", "name_key": "TenantService.DeleteUser", "input": "DeleteUserReq", "output": "google.protobuf.Empty"},
        {"name": "CreateProject", "name_key": "TenantService.CreateProject", "input": "CreateProjectReq", "output": "ProjectId"},
        {"name": "ListProjects", "name_key": "TenantService.ListProjects", "input": "ListProjectsReq", "output": "Projects"},
        {"name": "UpdateProject", "name_key": "TenantService.UpdateProject", "input": "UpdateProjectReq", "output": "google.protobuf.Empty"},
        {"name": "DeleteProject", "name_key": "TenantService.DeleteProject", "input": "DeleteProjectReq", "output": "google.protobuf.Empty"},
        {"name": "ListProjectUsers", "name_key": "TenantService.ListProjectUsers", "input": "ListProjectUsersReq", "output": "Users"},
        {"name": "InviteUser", "name_key": "TenantService.InviteUser", "input": "InviteUserReq", "output": "google.protobuf.Empty"},
        {"name": "InviteUserToOrg", "name_key": "TenantService.InviteUserToOrg", "input": "InviteUserToOrgReq", "output": "google.protobuf.Empty"},
        {"name": "DeleteProjectUser", "name_key": "TenantService.DeleteProjectUser", "input": "DeleteProjectUserReq", "output": "google.protobuf.Empty"},
        {"name": "UpdateProjectUserRole", "name_key": "TenantService.UpdateProjectUserRole", "input": "UpdateProjectUserRoleReq", "output": "google.protobuf.Empty"},
        {"name": "AcceptInvitation", "name_key": "TenantService.AcceptInvitation", "input": "AcceptInvitationReq", "output": "google.protobuf.Empty"},
        {"name": "CreateAuth0User", "name_key": "TenantService.CreateAuth0User", "input": "CreateAuth0UserReq", "output": "google.protobuf.Empty"},
        {"name": "ListTenantAccessLogs", "name_key": "TenantService.ListTenantAccessLogs", "input": "ListAccessLogReq", "output": "ListAccessLogResp"},
        {"name": "GetClientIP", "name_key": "TenantService.GetClientIP", "input": "google.protobuf.Empty", "output": "GetClientIPResp"},
        {"name": "ListRolesByUserID", "name_key": "TenantService.ListRolesByUserID", "input": "ListRolesByUserIDReq", "output": "ListRolesByUserIDRsp"},
        {"name": "ListUsersByScope", "name_key": "TenantService.ListUsersByScope", "input": "ListUsersByScopeReq", "output": "Users"},
        {"name": "ListLoginUserRoles", "name_key": "TenantService.ListLoginUserRoles", "input": "ListLoginUserRolesReq", "output": "ListLoginUserRolesRsp"},
        {"name": "ListOrgActiveAuthMethods", "name_key": "TenantService.ListOrgActiveAuthMethods", "input": "ListOrgActiveAuthMethodsReq", "output": "ListOrgActiveAuthMethodsRsp"},
        {"name": "GetOrgByCompanyName", "name_key": "TenantService.GetOrgByCompanyName", "input": "GetOrgByCompanyNameReq", "output": "GetOrgByCompanyNameRsp"},
        {"name": "OrgBindThirdParty", "name_key": "TenantService.OrgBindThirdParty", "input": "OrgBindThirdPartyReq", "output": "google.protobuf.Empty"},
        {"name": "ValidateThirdPartyToken", "name_key": "TenantService.ValidateThirdPartyToken", "input": "ValidateThirdPartyTokenReq", "output": "ValidateThirdPartyTokenResponse"},
        {"name": "OpenOrgSso", "name_key": "TenantService.OpenOrgSso", "input": "OpenOrgSsoReq", "output": "google.protobuf.Empty"},
        {"name": "GetExpWhiteList", "name_key": "TenantService.GetExpWhiteList", "input": "GetExpWhiteListReq", "output": "GetExpWhiteListResp"},
        {"name": "CreatePocApplication", "name_key": "TenantService.CreatePocApplication", "input": "CreatePocApplicationReq", "output": "CreatePocApplicationResp"},
        {"name": "GetMspConfig", "name_key": "TenantService.GetMspConfig", "input": "GetMspConfigReq", "output": "GetMspConfigResp"},
        {"name": "GetMspCustomer", "name_key": "TenantService.GetMspCustomer", "input": "GetMspCustomerReq", "output": "GetMspCustomerResp"},
        {"name": "GetPartnerByCustomerId", "name_key": "TenantService.GetPartnerByCustomerId", "input": "GetPartnerByCustomerIdReq", "output": "GetPartnerByCustomerIdResp"},
        {"name": "ConfigFeatureFlagForProviderSource", "name_key": "TenantService.ConfigFeatureFlagForProviderSource", "input": "ConfigFeatureFlagForProviderSourceReq", "output": "google.protobuf.Empty"}
      ]
    },
    {
      "name": "OpenAPIKeyService",
      "package": "central",
      "methods": [
        {"name": "CreateOpenAPIKey", "name_key": "OpenAPIKeyService.CreateOpenAPIKey", "input": "CreateOpenAPIKeyReq", "output": "OpenAPIKey"},
        {"name": "CreateProjectOpenAPIKey", "name_key": "OpenAPIKeyService.CreateProjectOpenAPIKey", "input": "CreateProjectOpenAPIKeyReq", "output": "OpenAPIKey"},
        {"name": "ListOpenAPIKeys", "name_key": "OpenAPIKeyService.ListOpenAPIKeys", "input": "ListOpenAPIKeysReq", "output": "OpenAPIKeys"},
        {"name": "ListProjectOpenAPIKeys", "name_key": "OpenAPIKeyService.ListProjectOpenAPIKeys", "input": "ListProjectOpenAPIKeysReq", "output": "OpenAPIKeys"},
        {"name": "UpdateOpenAPIKey", "name_key": "OpenAPIKeyService.UpdateOpenAPIKey", "input": "UpdateOpenAPIKeyReq", "output": "google.protobuf.Empty"},
        {"name": "UpdateProjectOpenAPIKey", "name_key": "OpenAPIKeyService.UpdateProjectOpenAPIKey", "input": "UpdateProjectOpenAPIKeyReq", "output": "google.protobuf.Empty"},
        {"name": "DeleteOpenAPIKey", "name_key": "OpenAPIKeyService.DeleteOpenAPIKey", "input": "DeleteOpenAPIKeyReq", "output": "google.protobuf.Empty"},
        {"name": "DeleteProjectOpenAPIKey", "name_key": "OpenAPIKeyService.DeleteProjectOpenAPIKey", "input": "DeleteProjectOpenAPIKeyReq", "output": "google.protobuf.Empty"},
        {"name": "ListConsoleApiKeys", "name_key": "OpenAPIKeyService.ListConsoleApiKeys", "input": "ListConsoleApiKeysReq", "output": "ListConsoleApiKeysResp"},
        {"name": "CreateConsoleApiKey", "name_key": "OpenAPIKeyService.CreateConsoleApiKey", "input": "UpdateConsoleApiKeyReq", "output": "ConsoleApiKey"},
        {"name": "UpdateConsoleApiKey", "name_key": "OpenAPIKeyService.UpdateConsoleApiKey", "input": "UpdateConsoleApiKeyReq", "output": "google.protobuf.Empty"}
      ]
    },
    {
      "name": "MetricsService",
      "package": "central",
      "methods": [
        {"name": "LoginMetrics", "name_key": "MetricsService.LoginMetrics", "input": "LoginMetricsReq", "output": "LoginMetricsResp"}
      ]
    },
    {
      "name": "ApiKeyService",
      "package": "central",
      "methods": [
        {"name": "CreateApiKeyForMsp", "name_key": "ApiKeyService.CreateApiKeyForMsp", "input": "CreateApiKeyForMspReq", "output": "CreateApiKeyForMspResp"}
      ]
    },
    {
      "name": "DbJwtService",
      "package": "central",
      "methods": [
        {"name": "GetJwtByToken", "name_key": "DbJwtService.GetJwtByToken", "input": "GetJwtByTokenReq", "output": "GetJwtByTokenResp"},
        {"name": "GetJwtByApiKey", "name_key": "DbJwtService.GetJwtByApiKey", "input": "GetJwtByApiKeyReq", "output": "GetJwtByApiKeyResp"},
        {"name": "GetJwtByBuiltinUser", "name_key": "DbJwtService.GetJwtByBuiltinUser", "input": "GetJwtByBuiltinUserReq", "output": "GetJwtByBuiltinUserResp"},
        {"name": "GetCloudAdminPasswd", "name_key": "DbJwtService.GetCloudAdminPasswd", "input": "GetCloudAdminPasswdReq", "output": "GetCloudAdminPasswdResp"}
      ]
    },
    {
      "name": "OrgAuthMethodService",
      "package": "central",
      "methods": [
        {"name": "UpdateAuthMethod", "name_key": "OrgAuthMethodService.UpdateAuthMethod", "input": "UpdateAuthMethodReq", "output": "google.protobuf.Empty"},
        {"name": "SetAuthMethodStatus", "name_key": "OrgAuthMethodService.SetAuthMethodStatus", "input": "SetAuthMethodStatusReq", "output": "google.protobuf.Empty"},
        {"name": "ListAuthMethods", "name_key": "OrgAuthMethodService.ListAuthMethods", "input": "ListAuthMethodsFilter", "output": "ListAuthMethodsRsp"},
        {"name": "GetEmailDomains", "name_key": "OrgAuthMethodService.GetEmailDomains", "input": "GetEmailDomainsReq", "output": "GetEmailDomainsRsp"},
        {"name": "ShowAuthMethods", "name_key": "OrgAuthMethodService.ShowAuthMethods", "input": "ShowAuthMethodsReq", "output": "ListAuthMethodsRsp"},
        {"name": "CheckAuthMethod", "name_key": "OrgAuthMethodService.CheckAuthMethod", "input": "CheckAuthMethodReq", "output": "CheckAuthMethodRsp"},
        {"name": "CreateBearerToken", "name_key": "OrgAuthMethodService.CreateBearerToken", "input": "CreateBearerTokenReq", "output": "BearerToken"},
        {"name": "ListBearerTokens", "name_key": "OrgAuthMethodService.ListBearerTokens", "input": "ListBearerTokensReq", "output": "BearerTokens"}
      ]
    },
    {
      "name": "UserService",
      "package": "central",
      "methods": [
        {"name": "GetUserUIPrivileges", "name_key": "UserService.GetUserUIPrivileges", "input": "google.protobuf.Empty", "output": "GetUserUIPrivilegesResp"},
        {"name": "QueryUserServicesAgreement", "name_key": "UserService.QueryUserServicesAgreement", "input": "GetUserServicesAgreementReq", "output": "QueryUserServicesAgreementResp"},
        {"name": "SaveUserServicesAgreement", "name_key": "UserService.SaveUserServicesAgreement", "input": "UserServicesAgreement", "output": "google.protobuf.Empty"},
        {"name": "CreateSqlUser", "name_key": "UserService.CreateSqlUser", "input": "CreateSqlUserReq", "output": "google.protobuf.Empty"},
        {"name": "UpdateSqlUser", "name_key": "UserService.UpdateSqlUser", "input": "UpdateSqlUserReq", "output": "google.protobuf.Empty"},
        {"name": "DeleteSqlUser", "name_key": "UserService.DeleteSqlUser", "input": "DeleteSqlUserReq", "output": "google.protobuf.Empty"},
        {"name": "ListSqlUsers", "name_key": "UserService.ListSqlUsers", "input": "ListSqlUsersReq", "output": "ListSqlUsersResp"},
        {"name": "QuerySqlUser", "name_key": "UserService.QuerySqlUser", "input": "QuerySqlUserReq", "output": "QuerySqlUserResp"},
        {"name": "CreateUserVisitHistory", "name_key": "UserService.CreateUserVisitHistory", "input": "CreateUserVisitHistoryReq", "output": "google.protobuf.Empty"},
        {"name": "GetUserLastVisitHistory", "name_key": "UserService.GetUserLastVisitHistory", "input": "google.protobuf.Empty", "output": "GetUserLastVisitHistoryResp"},
        {"name": "GetUserProfileV2", "name_key": "UserService.GetUserProfileV2", "input": "google.protobuf.Empty", "output": "GetUserProfileResp"},
        {"name": "GetUserOrgsProjects", "name_key": "UserService.GetUserOrgsProjects", "input": "google.protobuf.Empty", "output": "GetUserOrgsProjectsResp"},
        {"name": "GetUserLoginExtInfo", "name_key": "UserService.GetUserLoginExtInfo", "input": "google.protobuf.Empty", "output": "GetUserLoginExtInfoResp"},
        {"name": "CreatePlgOnBoardingSurvey", "name_key": "UserService.CreatePlgOnBoardingSurvey", "input": "CreatePlgOnBoardingSurveyReq", "output": "google.protobuf.Empty"},
        {"name": "ListConsoleUsers", "name_key": "UserService.ListConsoleUsers", "input": "ListConsoleUsersReq", "output": "ListConsoleUsersResp"},
        {"name": "AssignConsoleUserRole", "name_key": "UserService.AssignConsoleUserRole", "input": "AssignConsoleUserRoleReq", "output": "AssignConsoleUserRoleResp"},
        {"name": "EditConsoleUserRole", "name_key": "UserService.EditConsoleUserRole", "input": "EditConsoleUserRoleReq", "output": "google.protobuf.Empty"},
        {"name": "CheckEmailAlreadyHasOrgRole", "name_key": "UserService.CheckEmailAlreadyHasOrgRole", "input": "CheckEmailAlreadyHasOrgRoleReq", "output": "CheckEmailAlreadyHasOrgRoleResp"},
        {"name": "RevokeUserLoginState", "name_key": "UserService.RevokeUserLoginState", "input": "google.protobuf.Empty", "output": "google.protobuf.Empty"}
      ]
    },
    {
      "name": "MessageService",
      "package": "central",
      "methods": [
        {"name": "QueryNotice", "name_key": "MessageService.QueryNotice", "input": "google.protobuf.Empty", "output": "QueryNoticeResp"}
      ]
    },
    {
      "name": "ScimGroupService",
      "package": "central",
      "methods": [
        {"name": "ListScimGroups", "name_key": "ScimGroupService.ListScimGroups", "input": "ListScimGroupsReq", "output": "ListScimGroupsRsp"},
        {"name": "UpdateScimGroupRole", "name_key": "ScimGroupService.UpdateScimGroupRole", "input": "UpdateScimGroupRoleReq", "output": "google.protobuf.Empty"}
      ]
    },
    {
      "name": "HTTPHandlers",
      "type": "http",
      "methods": [
        {"name": "Healthz", "name_key": "HTTPHandlers.Healthz", "method": "ANY", "path": "/healthz", "auth": false},
        {"name": "Version", "name_key": "HTTPHandlers.Version", "method": "ANY", "path": "/version", "auth": false},
        {"name": "InvitationVerification", "name_key": "HTTPHandlers.InvitationVerification", "method": "ANY", "path": "/invitation-verification", "auth": false},
        {"name": "RegistrationVerification", "name_key": "HTTPHandlers.RegistrationVerification", "method": "ANY", "path": "/registration-verification", "auth": false},
        {"name": "ActionCallback", "name_key": "HTTPHandlers.ActionCallback", "method": "ANY", "path": "/action-callback", "auth": false},
        {"name": "ActionVerify", "name_key": "HTTPHandlers.ActionVerify", "method": "ANY", "path": "/action-verify", "auth": false},
        {"name": "RevokeLoginStateCallback", "name_key": "HTTPHandlers.RevokeLoginStateCallback", "method": "POST", "path": "/revoke_login_state_callback", "auth": false},
        {"name": "LoginConfirm", "name_key": "HTTPHandlers.LoginConfirm", "method": "ANY", "path": "/login_confirm", "auth": false},
        {"name": "Logout", "name_key": "HTTPHandlers.Logout", "method": "ANY", "path": "/logout", "auth": false},
        {"name": "ThirdPartyAccountRedirect", "name_key": "HTTPHandlers.ThirdPartyAccountRedirect", "method": "ANY", "path": "/third_party_account_redirect/:third_party_account_provider", "auth": false},
        {"name": "BillingProxy", "name_key": "HTTPHandlers.BillingProxy", "method": "ANY", "path": "/api_proxy/billing/*any", "auth": true}
      ]
    }
  ]
}
