{
    "swagger": "2.0",
    "info": {
        "title": "Casdoor API",
        "description": "Documentation of Casdoor API",
        "version": "1.0.0",
        "contact": {
            "email": "admin@casbin.org"
        }
    },
    "basePath": "/",
    "paths": {
        "/.well-known/openid-configuration": {
            "get": {
                "tags": [
                    "OIDC API"
                ],
                "operationId": "RootController.GetOidcDiscovery"
            }
        },
        "/api/add-application": {
            "post": {
                "tags": [
                    "Application API"
                ],
                "description": "add an application",
                "operationId": "ApiController.AddApplication",
                "parameters": [
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The details of the application",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.Application"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/add-ldap": {
            "post": {
                "tags": [
                    "Account API"
                ],
                "operationId": "ApiController.AddLdap"
            }
        },
        "/api/add-organization": {
            "post": {
                "tags": [
                    "Organization API"
                ],
                "description": "add organization",
                "operationId": "ApiController.AddOrganization",
                "parameters": [
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The details of the organization",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.Organization"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/add-provider": {
            "post": {
                "tags": [
                    "Provider API"
                ],
                "description": "add provider",
                "operationId": "ApiController.AddProvider",
                "parameters": [
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The details of the provider",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.Provider"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/add-resource": {
            "post": {
                "tags": [
                    "Resource API"
                ],
                "operationId": "ApiController.AddResource"
            }
        },
        "/api/add-token": {
            "post": {
                "tags": [
                    "Token API"
                ],
                "description": "add token",
                "operationId": "ApiController.AddToken",
                "parameters": [
                    {
                        "in": "body",
                        "name": "body",
                        "description": "Details of the token",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.Token"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/add-user": {
            "post": {
                "tags": [
                    "User API"
                ],
                "description": "add user",
                "operationId": "ApiController.AddUser",
                "parameters": [
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The details of the user",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.User"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/add-webhook": {
            "post": {
                "tags": [
                    "Webhook API"
                ],
                "description": "add webhook",
                "operationId": "ApiController.AddWebhook",
                "parameters": [
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The details of the webhook",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.Webhook"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/api/get-human-check": {
            "get": {
                "tags": [
                    "Login API"
                ],
                "operationId": "ApiController.GetHumancheck"
            }
        },
        "/api/api/reset-email-or-phone": {
            "post": {
                "tags": [
                    "Account API"
                ],
                "operationId": "ApiController.ResetEmailOrPhone"
            }
        },
        "/api/api/send-email": {
            "post": {
                "tags": [
                    "Service API"
                ],
                "description": "This API is not for Casdoor frontend to call, it is for Casdoor SDKs.",
                "operationId": "ApiController.SendEmail",
                "parameters": [
                    {
                        "in": "query",
                        "name": "clientId",
                        "description": "The clientId of the application",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "clientSecret",
                        "description": "The clientSecret of the application",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "body",
                        "description": "Details of the email request",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/emailForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "object",
                        "schema": {
                            "$ref": "#/definitions/Response"
                        }
                    }
                }
            }
        },
        "/api/api/send-sms": {
            "post": {
                "tags": [
                    "Service API"
                ],
                "description": "This API is not for Casdoor frontend to call, it is for Casdoor SDKs.",
                "operationId": "ApiController.SendSms",
                "parameters": [
                    {
                        "in": "query",
                        "name": "clientId",
                        "description": "The clientId of the application",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "clientSecret",
                        "description": "The clientSecret of the application",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "body",
                        "description": "Details of the sms request",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/smsForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "object",
                        "schema": {
                            "$ref": "#/definitions/Response"
                        }
                    }
                }
            }
        },
        "/api/certs": {
            "get": {
                "tags": [
                    "OIDC API"
                ],
                "operationId": "RootController.GetOidcCert"
            }
        },
        "/api/check-ldap-users-exist": {
            "post": {
                "tags": [
                    "Account API"
                ],
                "operationId": "ApiController.CheckLdapUserExist"
            }
        },
        "/api/check-user-password": {
            "post": {
                "tags": [
                    "User API"
                ],
                "operationId": "ApiController.CheckUserPassword"
            }
        },
        "/api/delete-application": {
            "post": {
                "tags": [
                    "Application API"
                ],
                "description": "delete an application",
                "operationId": "ApiController.DeleteApplication",
                "parameters": [
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The details of the application",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.Application"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/delete-ldap": {
            "post": {
                "tags": [
                    "Account API"
                ],
                "operationId": "ApiController.DeleteLdap"
            }
        },
        "/api/delete-organization": {
            "post": {
                "tags": [
                    "Organization API"
                ],
                "description": "delete organization",
                "operationId": "ApiController.DeleteOrganization",
                "parameters": [
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The details of the organization",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.Organization"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/delete-provider": {
            "post": {
                "tags": [
                    "Provider API"
                ],
                "description": "delete provider",
                "operationId": "ApiController.DeleteProvider",
                "parameters": [
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The details of the provider",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.Provider"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/delete-resource": {
            "post": {
                "tags": [
                    "Resource API"
                ],
                "operationId": "ApiController.DeleteResource"
            }
        },
        "/api/delete-token": {
            "post": {
                "tags": [
                    "Token API"
                ],
                "description": "delete token",
                "operationId": "ApiController.DeleteToken",
                "parameters": [
                    {
                        "in": "body",
                        "name": "body",
                        "description": "Details of the token",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.Token"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/delete-user": {
            "post": {
                "tags": [
                    "User API"
                ],
                "description": "delete user",
                "operationId": "ApiController.DeleteUser",
                "parameters": [
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The details of the user",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.User"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/delete-webhook": {
            "post": {
                "tags": [
                    "Webhook API"
                ],
                "description": "delete webhook",
                "operationId": "ApiController.DeleteWebhook",
                "parameters": [
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The details of the webhook",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.Webhook"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/get-account": {
            "get": {
                "tags": [
                    "Account API"
                ],
                "description": "get the details of the current account",
                "operationId": "ApiController.GetAccount",
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/get-application": {
            "get": {
                "tags": [
                    "Application API"
                ],
                "description": "get the detail of an application",
                "operationId": "ApiController.GetApplication",
                "parameters": [
                    {
                        "in": "query",
                        "name": "id",
                        "description": "The id of the application.",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/object.Application"
                        }
                    }
                }
            }
        },
        "/api/get-applications": {
            "get": {
                "tags": [
                    "Application API"
                ],
                "description": "get all applications",
                "operationId": "ApiController.GetApplications",
                "parameters": [
                    {
                        "in": "query",
                        "name": "owner",
                        "description": "The owner of applications.",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/object.Application"
                            }
                        }
                    }
                }
            }
        },
        "/api/get-email-and-phone": {
            "post": {
                "tags": [
                    "User API"
                ],
                "description": "get email and phone by username",
                "operationId": "ApiController.GetEmailAndPhone",
                "parameters": [
                    {
                        "in": "formData",
                        "name": "username",
                        "description": "The username of the user",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "formData",
                        "name": "organization",
                        "description": "The organization of the user",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/get-global-users": {
            "get": {
                "tags": [
                    "User API"
                ],
                "description": "get global users",
                "operationId": "ApiController.GetGlobalUsers",
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/object.User"
                            }
                        }
                    }
                }
            }
        },
        "/api/get-ldap": {
            "post": {
                "tags": [
                    "Account API"
                ],
                "operationId": "ApiController.GetLdap"
            }
        },
        "/api/get-ldap-user": {
            "post": {
                "tags": [
                    "Account API"
                ],
                "operationId": "ApiController.GetLdapser"
            }
        },
        "/api/get-ldaps": {
            "post": {
                "tags": [
                    "Account API"
                ],
                "operationId": "ApiController.GetLdaps"
            }
        },
        "/api/get-organization": {
            "get": {
                "tags": [
                    "Organization API"
                ],
                "description": "get organization",
                "operationId": "ApiController.GetOrganization",
                "parameters": [
                    {
                        "in": "query",
                        "name": "id",
                        "description": "organization id",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/object.Organization"
                        }
                    }
                }
            }
        },
        "/api/get-organizations": {
            "get": {
                "tags": [
                    "Organization API"
                ],
                "description": "get organizations",
                "operationId": "ApiController.GetOrganizations",
                "parameters": [
                    {
                        "in": "query",
                        "name": "owner",
                        "description": "owner",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/object.Organization"
                            }
                        }
                    }
                }
            }
        },
        "/api/get-provider": {
            "get": {
                "tags": [
                    "Provider API"
                ],
                "description": "get provider",
                "operationId": "ApiController.GetProvider",
                "parameters": [
                    {
                        "in": "query",
                        "name": "id",
                        "description": "The id of the provider",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/object.Provider"
                        }
                    }
                }
            }
        },
        "/api/get-providers": {
            "get": {
                "tags": [
                    "Provider API"
                ],
                "description": "get providers",
                "operationId": "ApiController.GetProviders",
                "parameters": [
                    {
                        "in": "query",
                        "name": "owner",
                        "description": "The owner of providers",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/object.Provider"
                            }
                        }
                    }
                }
            }
        },
        "/api/get-records": {
            "get": {
                "tags": [
                    "Record API"
                ],
                "description": "get all records",
                "operationId": "ApiController.GetRecords",
                "parameters": [
                    {
                        "in": "query",
                        "name": "pageSize",
                        "description": "The size of each page",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "p",
                        "description": "The number of the page",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/object.Records"
                            }
                        }
                    }
                }
            }
        },
        "/api/get-records-filter": {
            "post": {
                "tags": [
                    "Record API"
                ],
                "description": "get records by filter",
                "operationId": "ApiController.GetRecordsByFilter",
                "parameters": [
                    {
                        "in": "body",
                        "name": "body",
                        "description": "filter Record message",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.Records"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/object.Records"
                            }
                        }
                    }
                }
            }
        },
        "/api/get-resource": {
            "get": {
                "tags": [
                    "Resource API"
                ],
                "operationId": "ApiController.GetResource"
            }
        },
        "/api/get-resources": {
            "get": {
                "tags": [
                    "Resource API"
                ],
                "operationId": "ApiController.GetResources"
            }
        },
        "/api/get-sorted-users": {
            "get": {
                "tags": [
                    "User API"
                ],
                "operationId": "ApiController.GetSortedUsers",
                "parameters": [
                    {
                        "in": "query",
                        "name": "owner",
                        "description": "The owner of users",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "sorter",
                        "description": "The DB column name to sort by, e.g., created_time",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "limit",
                        "description": "The count of users to return, e.g., 25",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/object.User"
                            }
                        }
                    }
                }
            }
        },
        "/api/get-token": {
            "get": {
                "tags": [
                    "Token API"
                ],
                "description": "get token",
                "operationId": "ApiController.GetToken",
                "parameters": [
                    {
                        "in": "query",
                        "name": "id",
                        "description": "The id of token",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/object.Token"
                        }
                    }
                }
            }
        },
        "/api/get-tokens": {
            "get": {
                "tags": [
                    "Token API"
                ],
                "description": "get tokens",
                "operationId": "ApiController.GetTokens",
                "parameters": [
                    {
                        "in": "query",
                        "name": "owner",
                        "description": "The owner of tokens",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "pageSize",
                        "description": "The size of each page",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "p",
                        "description": "The number of the page",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/object.Token"
                            }
                        }
                    }
                }
            }
        },
        "/api/get-user": {
            "get": {
                "tags": [
                    "User API"
                ],
                "description": "get user",
                "operationId": "ApiController.GetUser",
                "parameters": [
                    {
                        "in": "query",
                        "name": "id",
                        "description": "The id of the user",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/object.User"
                        }
                    }
                }
            }
        },
        "/api/get-user-application": {
            "get": {
                "tags": [
                    "Application API"
                ],
                "description": "get the detail of the user's application",
                "operationId": "ApiController.GetUserApplication",
                "parameters": [
                    {
                        "in": "query",
                        "name": "id",
                        "description": "The id of the user",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/object.Application"
                        }
                    }
                }
            }
        },
        "/api/get-user-count": {
            "get": {
                "tags": [
                    "User API"
                ],
                "operationId": "ApiController.GetUserCount",
                "parameters": [
                    {
                        "in": "query",
                        "name": "owner",
                        "description": "The owner of users",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "isOnline",
                        "description": "The filter for query, 1 for online, 0 for offline, empty string for all users",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "{int} int The count of filtered users for an organization"
                    }
                }
            }
        },
        "/api/get-users": {
            "get": {
                "tags": [
                    "User API"
                ],
                "operationId": "ApiController.GetUsers",
                "parameters": [
                    {
                        "in": "query",
                        "name": "owner",
                        "description": "The owner of users",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/object.User"
                            }
                        }
                    }
                }
            }
        },
        "/api/get-webhook": {
            "get": {
                "tags": [
                    "Webhook API"
                ],
                "description": "get webhook",
                "operationId": "ApiController.GetWebhook",
                "parameters": [
                    {
                        "in": "query",
                        "name": "id",
                        "description": "The id of the webhook",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/object.Webhook"
                        }
                    }
                }
            }
        },
        "/api/get-webhooks": {
            "get": {
                "tags": [
                    "Webhook API"
                ],
                "description": "get webhooks",
                "operationId": "ApiController.GetWebhooks",
                "parameters": [
                    {
                        "in": "query",
                        "name": "owner",
                        "description": "The owner of webhooks",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "type": "array",
                            "items": {
                                "$ref": "#/definitions/object.Webhook"
                            }
                        }
                    }
                }
            }
        },
        "/api/login": {
            "post": {
                "tags": [
                    "Login API"
                ],
                "description": "login",
                "operationId": "ApiController.Login",
                "parameters": [
                    {
                        "in": "query",
                        "name": "oAuthParams",
                        "description": "oAuth parameters",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "body",
                        "description": "Login information",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/RequestForm"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.api_controller.Response"
                        }
                    }
                }
            }
        },
        "/api/login/oauth/access_token": {
            "post": {
                "tags": [
                    "Token API"
                ],
                "description": "get OAuth access token",
                "operationId": "ApiController.GetOAuthToken",
                "parameters": [
                    {
                        "in": "query",
                        "name": "grant_type",
                        "description": "OAuth grant type",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "client_id",
                        "description": "OAuth client id",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "client_secret",
                        "description": "OAuth client secret",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "code",
                        "description": "OAuth code",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/object.TokenWrapper"
                        }
                    }
                }
            }
        },
        "/api/login/oauth/code": {
            "post": {
                "tags": [
                    "Token API"
                ],
                "description": "get OAuth code",
                "operationId": "ApiController.GetOAuthCode",
                "parameters": [
                    {
                        "in": "query",
                        "name": "user_id",
                        "description": "The id of user",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "client_id",
                        "description": "OAuth client id",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "response_type",
                        "description": "OAuth response type",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "redirect_uri",
                        "description": "OAuth redirect URI",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "scope",
                        "description": "OAuth scope",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "state",
                        "description": "OAuth state",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/object.TokenWrapper"
                        }
                    }
                }
            }
        },
        "/api/logout": {
            "post": {
                "tags": [
                    "Login API"
                ],
                "description": "logout the current user",
                "operationId": "ApiController.Logout",
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/send-verification-code": {
            "post": {
                "tags": [
                    "Verification API"
                ],
                "operationId": "ApiController.SendVerificationCode"
            }
        },
        "/api/set-password": {
            "post": {
                "tags": [
                    "Account API"
                ],
                "description": "set password",
                "operationId": "ApiController.SetPassword",
                "parameters": [
                    {
                        "in": "formData",
                        "name": "userOwner",
                        "description": "The owner of the user",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "formData",
                        "name": "userName",
                        "description": "The name of the user",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "formData",
                        "name": "oldPassword",
                        "description": "The old password of the user",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "formData",
                        "name": "newPassword",
                        "description": "The new password of the user",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/signup": {
            "post": {
                "tags": [
                    "Login API"
                ],
                "description": "sign up a new user",
                "operationId": "ApiController.Signup",
                "parameters": [
                    {
                        "in": "formData",
                        "name": "username",
                        "description": "The username to sign up",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "formData",
                        "name": "password",
                        "description": "The password",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/sync-ldap-users": {
            "post": {
                "tags": [
                    "Account API"
                ],
                "operationId": "ApiController.SyncLdapUsers"
            }
        },
        "/api/unlink": {
            "post": {
                "tags": [
                    "Login API"
                ]
            }
        },
        "/api/update-application": {
            "get": {
                "tags": [
                    "Login API"
                ],
                "description": "get application login",
                "operationId": "ApiController.GetApplicationLogin",
                "parameters": [
                    {
                        "in": "query",
                        "name": "clientId",
                        "description": "client id",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "responseType",
                        "description": "response type",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "redirectUri",
                        "description": "redirect uri",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "scope",
                        "description": "scope",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "query",
                        "name": "state",
                        "description": "state",
                        "required": true,
                        "type": "string"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.api_controller.Response"
                        }
                    }
                }
            },
            "post": {
                "tags": [
                    "Application API"
                ],
                "description": "update an application",
                "operationId": "ApiController.UpdateApplication",
                "parameters": [
                    {
                        "in": "query",
                        "name": "id",
                        "description": "The id of the application",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The details of the application",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.Application"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/update-ldap": {
            "post": {
                "tags": [
                    "Account API"
                ],
                "operationId": "ApiController.UpdateLdap"
            }
        },
        "/api/update-organization": {
            "post": {
                "tags": [
                    "Organization API"
                ],
                "description": "update organization",
                "operationId": "ApiController.UpdateOrganization",
                "parameters": [
                    {
                        "in": "query",
                        "name": "id",
                        "description": "The id of the organization",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The details of the organization",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.Organization"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/update-provider": {
            "post": {
                "tags": [
                    "Provider API"
                ],
                "description": "update provider",
                "operationId": "ApiController.UpdateProvider",
                "parameters": [
                    {
                        "in": "query",
                        "name": "id",
                        "description": "The id of the provider",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The details of the provider",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.Provider"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/update-resource": {
            "post": {
                "tags": [
                    "Resource API"
                ],
                "operationId": "ApiController.UpdateResource"
            }
        },
        "/api/update-token": {
            "post": {
                "tags": [
                    "Token API"
                ],
                "description": "update token",
                "operationId": "ApiController.UpdateToken",
                "parameters": [
                    {
                        "in": "query",
                        "name": "id",
                        "description": "The id of token",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "body",
                        "description": "Details of the token",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.Token"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/update-user": {
            "post": {
                "tags": [
                    "User API"
                ],
                "description": "update user",
                "operationId": "ApiController.UpdateUser",
                "parameters": [
                    {
                        "in": "query",
                        "name": "id",
                        "description": "The id of the user",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The details of the user",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.User"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/update-webhook": {
            "post": {
                "tags": [
                    "Webhook API"
                ],
                "description": "update webhook",
                "operationId": "ApiController.UpdateWebhook",
                "parameters": [
                    {
                        "in": "query",
                        "name": "id",
                        "description": "The id of the webhook",
                        "required": true,
                        "type": "string"
                    },
                    {
                        "in": "body",
                        "name": "body",
                        "description": "The details of the webhook",
                        "required": true,
                        "schema": {
                            "$ref": "#/definitions/object.Webhook"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "The Response object",
                        "schema": {
                            "$ref": "#/definitions/controllers.Response"
                        }
                    }
                }
            }
        },
        "/api/upload-resource": {
            "post": {
                "tags": [
                    "Resource API"
                ],
                "operationId": "ApiController.UploadResource"
            }
        }
    },
    "definitions": {
        "1713.0xc000393f50.false": {
            "title": "false",
            "type": "object"
        },
        "1747.0xc000393f80.false": {
            "title": "false",
            "type": "object"
        },
        "RequestForm": {
            "title": "RequestForm",
            "type": "object"
        },
        "Response": {
            "title": "Response",
            "type": "object"
        },
        "controllers.Response": {
            "title": "Response",
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/1713.0xc000393f50.false"
                },
                "data2": {
                    "$ref": "#/definitions/1747.0xc000393f80.false"
                },
                "msg": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "controllers.api_controller.Response": {
            "title": "Response",
            "type": "object",
            "properties": {
                "data": {
                    "$ref": "#/definitions/1713.0xc000393f50.false"
                },
                "data2": {
                    "$ref": "#/definitions/1747.0xc000393f80.false"
                },
                "msg": {
                    "type": "string"
                },
                "status": {
                    "type": "string"
                }
            }
        },
        "emailForm": {
            "title": "emailForm",
            "type": "object"
        },
        "object.Application": {
            "title": "Application",
            "type": "object",
            "properties": {
                "affiliationUrl": {
                    "type": "string"
                },
                "clientId": {
                    "type": "string"
                },
                "clientSecret": {
                    "type": "string"
                },
                "createdTime": {
                    "type": "string"
                },
                "description": {
                    "type": "string"
                },
                "displayName": {
                    "type": "string"
                },
                "enableCodeSignin": {
                    "type": "boolean"
                },
                "enablePassword": {
                    "type": "boolean"
                },
                "enableSignUp": {
                    "type": "boolean"
                },
                "expireInHours": {
                    "type": "integer",
                    "format": "int64"
                },
                "forgetUrl": {
                    "type": "string"
                },
                "homepageUrl": {
                    "type": "string"
                },
                "logo": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "organization": {
                    "type": "string"
                },
                "organizationObj": {
                    "$ref": "#/definitions/object.Organization"
                },
                "owner": {
                    "type": "string"
                },
                "providers": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/object.ProviderItem"
                    }
                },
                "redirectUris": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "signinHtml": {
                    "type": "string"
                },
                "signinUrl": {
                    "type": "string"
                },
                "signupHtml": {
                    "type": "string"
                },
                "signupItems": {
                    "type": "array",
                    "items": {
                        "$ref": "#/definitions/object.SignupItem"
                    }
                },
                "signupUrl": {
                    "type": "string"
                },
                "termsOfUse": {
                    "type": "string"
                }
            }
        },
        "object.Organization": {
            "title": "Organization",
            "type": "object",
            "properties": {
                "createdTime": {
                    "type": "string"
                },
                "defaultAvatar": {
                    "type": "string"
                },
                "displayName": {
                    "type": "string"
                },
                "enableSoftDeletion": {
                    "type": "boolean"
                },
                "favicon": {
                    "type": "string"
                },
                "masterPassword": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "owner": {
                    "type": "string"
                },
                "passwordSalt": {
                    "type": "string"
                },
                "passwordType": {
                    "type": "string"
                },
                "phonePrefix": {
                    "type": "string"
                },
                "websiteUrl": {
                    "type": "string"
                }
            }
        },
        "object.Provider": {
            "title": "Provider",
            "type": "object",
            "properties": {
                "appId": {
                    "type": "string"
                },
                "bucket": {
                    "type": "string"
                },
                "category": {
                    "type": "string"
                },
                "clientId": {
                    "type": "string"
                },
                "clientSecret": {
                    "type": "string"
                },
                "content": {
                    "type": "string"
                },
                "createdTime": {
                    "type": "string"
                },
                "displayName": {
                    "type": "string"
                },
                "domain": {
                    "type": "string"
                },
                "endpoint": {
                    "type": "string"
                },
                "host": {
                    "type": "string"
                },
                "method": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "owner": {
                    "type": "string"
                },
                "port": {
                    "type": "integer",
                    "format": "int64"
                },
                "providerUrl": {
                    "type": "string"
                },
                "regionId": {
                    "type": "string"
                },
                "signName": {
                    "type": "string"
                },
                "templateCode": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                }
            }
        },
        "object.ProviderItem": {
            "title": "ProviderItem",
            "type": "object",
            "properties": {
                "alertType": {
                    "type": "string"
                },
                "canSignIn": {
                    "type": "boolean"
                },
                "canSignUp": {
                    "type": "boolean"
                },
                "canUnlink": {
                    "type": "boolean"
                },
                "name": {
                    "type": "string"
                },
                "prompted": {
                    "type": "boolean"
                },
                "provider": {
                    "$ref": "#/definitions/object.Provider"
                }
            }
        },
        "object.Records": {
            "title": "Records",
            "type": "object"
        },
        "object.SignupItem": {
            "title": "SignupItem",
            "type": "object",
            "properties": {
                "name": {
                    "type": "string"
                },
                "prompted": {
                    "type": "boolean"
                },
                "required": {
                    "type": "boolean"
                },
                "rule": {
                    "type": "string"
                },
                "visible": {
                    "type": "boolean"
                }
            }
        },
        "object.Token": {
            "title": "Token",
            "type": "object",
            "properties": {
                "accessToken": {
                    "type": "string"
                },
                "application": {
                    "type": "string"
                },
                "code": {
                    "type": "string"
                },
                "createdTime": {
                    "type": "string"
                },
                "expiresIn": {
                    "type": "integer",
                    "format": "int64"
                },
                "name": {
                    "type": "string"
                },
                "organization": {
                    "type": "string"
                },
                "owner": {
                    "type": "string"
                },
                "scope": {
                    "type": "string"
                },
                "tokenType": {
                    "type": "string"
                },
                "user": {
                    "type": "string"
                }
            }
        },
        "object.TokenWrapper": {
            "title": "TokenWrapper",
            "type": "object",
            "properties": {
                "access_token": {
                    "type": "string"
                },
                "expires_in": {
                    "type": "integer",
                    "format": "int64"
                },
                "id_token": {
                    "type": "string"
                },
                "scope": {
                    "type": "string"
                },
                "token_type": {
                    "type": "string"
                }
            }
        },
        "object.User": {
            "title": "User",
            "type": "object",
            "properties": {
                "address": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "affiliation": {
                    "type": "string"
                },
                "avatar": {
                    "type": "string"
                },
                "bio": {
                    "type": "string"
                },
                "birthday": {
                    "type": "string"
                },
                "createdIp": {
                    "type": "string"
                },
                "createdTime": {
                    "type": "string"
                },
                "dingtalk": {
                    "type": "string"
                },
                "displayName": {
                    "type": "string"
                },
                "education": {
                    "type": "string"
                },
                "email": {
                    "type": "string"
                },
                "facebook": {
                    "type": "string"
                },
                "gender": {
                    "type": "string"
                },
                "gitee": {
                    "type": "string"
                },
                "github": {
                    "type": "string"
                },
                "gitlab": {
                    "type": "string"
                },
                "google": {
                    "type": "string"
                },
                "hash": {
                    "type": "string"
                },
                "homepage": {
                    "type": "string"
                },
                "id": {
                    "type": "string"
                },
                "idCard": {
                    "type": "string"
                },
                "idCardType": {
                    "type": "string"
                },
                "isAdmin": {
                    "type": "boolean"
                },
                "isDefaultAvatar": {
                    "type": "boolean"
                },
                "isDeleted": {
                    "type": "boolean"
                },
                "isForbidden": {
                    "type": "boolean"
                },
                "isGlobalAdmin": {
                    "type": "boolean"
                },
                "isOnline": {
                    "type": "boolean"
                },
                "language": {
                    "type": "string"
                },
                "lark": {
                    "type": "string"
                },
                "lastSigninIp": {
                    "type": "string"
                },
                "lastSigninTime": {
                    "type": "string"
                },
                "ldap": {
                    "type": "string"
                },
                "linkedin": {
                    "type": "string"
                },
                "location": {
                    "type": "string"
                },
                "name": {
                    "type": "string"
                },
                "owner": {
                    "type": "string"
                },
                "password": {
                    "type": "string"
                },
                "passwordSalt": {
                    "type": "string"
                },
                "permanentAvatar": {
                    "type": "string"
                },
                "phone": {
                    "type": "string"
                },
                "preHash": {
                    "type": "string"
                },
                "properties": {
                    "additionalProperties": {
                        "type": "string"
                    }
                },
                "qq": {
                    "type": "string"
                },
                "ranking": {
                    "type": "integer",
                    "format": "int64"
                },
                "region": {
                    "type": "string"
                },
                "score": {
                    "type": "integer",
                    "format": "int64"
                },
                "signupApplication": {
                    "type": "string"
                },
                "tag": {
                    "type": "string"
                },
                "title": {
                    "type": "string"
                },
                "type": {
                    "type": "string"
                },
                "updatedTime": {
                    "type": "string"
                },
                "wechat": {
                    "type": "string"
                },
                "wecom": {
                    "type": "string"
                },
                "weibo": {
                    "type": "string"
                }
            }
        },
        "object.Webhook": {
            "title": "Webhook",
            "type": "object",
            "properties": {
                "contentType": {
                    "type": "string"
                },
                "createdTime": {
                    "type": "string"
                },
                "events": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                },
                "name": {
                    "type": "string"
                },
                "organization": {
                    "type": "string"
                },
                "owner": {
                    "type": "string"
                },
                "url": {
                    "type": "string"
                }
            }
        },
        "smsForm": {
            "title": "smsForm",
            "type": "object"
        }
    }
}