{ "swagger": "2.0", "info": { "description": "This is a sample server celler server.", "title": "ApiDoc", "termsOfService": "http://swagger.io/terms/", "contact": { "name": "UserName", "url": "http://www.swagger.io/support", "email": "support@swagger.io" }, "license": { "name": "Apache 2.0", "url": "http://www.apache.org/licenses/LICENSE-2.0.html" }, "version": "1.0" }, "host": "localhost:8080", "basePath": "/t/{tenant_code}/v1", "paths": { "/super/v1/auth/login": { "post": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Super" ], "parameters": [ { "description": "form", "name": "form", "in": "body", "required": true, "schema": { "$ref": "#/definitions/dto.LoginForm" } } ], "responses": { "200": { "description": "成功", "schema": { "$ref": "#/definitions/dto.LoginResponse" } } } } }, "/super/v1/tenants": { "get": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Super" ], "summary": "租户列表", "parameters": [ { "type": "string", "name": "asc", "in": "query" }, { "type": "string", "name": "desc", "in": "query" }, { "type": "integer", "name": "limit", "in": "query" }, { "type": "string", "name": "name", "in": "query" }, { "type": "integer", "name": "page", "in": "query" }, { "type": "string", "name": "status", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/requests.Pager" }, { "type": "object", "properties": { "items": { "$ref": "#/definitions/dto.TenantItem" } } } ] } } } } }, "/super/v1/tenants/statuses": { "get": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Super" ], "summary": "租户状态列表", "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/requests.KV" } } } } } }, "/super/v1/tenants/{tenantID}": { "patch": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Super" ], "summary": "更新过期时间", "parameters": [ { "type": "integer", "format": "int64", "description": "TenantID", "name": "tenantID", "in": "path", "required": true }, { "description": "Form", "name": "form", "in": "body", "required": true, "schema": { "$ref": "#/definitions/dto.TenantExpireUpdateForm" } } ], "responses": {} } }, "/super/v1/tenants/{tenantID}/status": { "patch": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Super" ], "summary": "更新租户状态", "parameters": [ { "type": "integer", "format": "int64", "description": "TenantID", "name": "tenantID", "in": "path", "required": true }, { "description": "Form", "name": "form", "in": "body", "required": true, "schema": { "$ref": "#/definitions/dto.TenantStatusUpdateForm" } } ], "responses": {} } }, "/super/v1/users": { "get": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Super" ], "summary": "租户列表", "parameters": [ { "type": "string", "name": "asc", "in": "query" }, { "type": "string", "name": "desc", "in": "query" }, { "type": "integer", "name": "limit", "in": "query" }, { "type": "integer", "name": "page", "in": "query" }, { "type": "string", "name": "status", "in": "query" }, { "type": "integer", "name": "tenantID", "in": "query" }, { "type": "string", "name": "username", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/requests.Pager" }, { "type": "object", "properties": { "items": { "$ref": "#/definitions/dto.UserItem" } } } ] } } } } }, "/super/v1/users/statistics": { "get": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Super" ], "summary": "用户统计信息", "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/dto.UserStatistics" } } } } } }, "/super/v1/users/statuses": { "get": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Super" ], "summary": "用户状态列表", "responses": { "200": { "description": "OK", "schema": { "type": "array", "items": { "$ref": "#/definitions/requests.KV" } } } } } }, "/super/v1/users/{userID}/status": { "patch": { "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Super" ], "summary": "更新用户状态", "parameters": [ { "type": "integer", "format": "int64", "description": "UserID", "name": "userID", "in": "path", "required": true }, { "description": "Form", "name": "form", "in": "body", "required": true, "schema": { "$ref": "#/definitions/dto.UserStatusUpdateForm" } } ], "responses": {} } } }, "definitions": { "consts.Role": { "type": "string", "enum": [ "user", "super_admin" ], "x-enum-varnames": [ "RoleUser", "RoleSuperAdmin" ] }, "consts.TenantStatus": { "type": "string", "enum": [ "pending_verify", "verified", "banned" ], "x-enum-varnames": [ "TenantStatusPendingVerify", "TenantStatusVerified", "TenantStatusBanned" ] }, "consts.UserStatus": { "type": "string", "enum": [ "pending_verify", "verified", "banned" ], "x-enum-varnames": [ "UserStatusPendingVerify", "UserStatusVerified", "UserStatusBanned" ] }, "dto.LoginForm": { "type": "object", "properties": { "password": { "type": "string" }, "username": { "type": "string" } } }, "dto.LoginResponse": { "type": "object", "properties": { "token": { "type": "string" } } }, "dto.TenantExpireUpdateForm": { "type": "object", "required": [ "duration" ], "properties": { "duration": { "type": "integer", "enum": [ 7, 30, 90, 180, 365 ] } } }, "dto.TenantItem": { "type": "object", "properties": { "code": { "type": "string" }, "config": { "type": "array", "items": { "type": "integer" } }, "created_at": { "type": "string" }, "expired_at": { "type": "string" }, "id": { "type": "integer" }, "name": { "type": "string" }, "status": { "$ref": "#/definitions/consts.TenantStatus" }, "status_description": { "type": "string" }, "updated_at": { "type": "string" }, "user_balance": { "type": "integer" }, "user_count": { "type": "integer" }, "user_id": { "type": "integer" }, "users": { "type": "array", "items": { "$ref": "#/definitions/models.User" } }, "uuid": { "type": "string" } } }, "dto.TenantStatusUpdateForm": { "type": "object", "required": [ "status" ], "properties": { "status": { "enum": [ "normal", "disabled" ], "allOf": [ { "$ref": "#/definitions/consts.TenantStatus" } ] } } }, "dto.UserItem": { "type": "object", "properties": { "created_at": { "type": "string" }, "deleted_at": { "$ref": "#/definitions/gorm.DeletedAt" }, "id": { "type": "integer" }, "metas": { "type": "array", "items": { "type": "integer" } }, "owned": { "$ref": "#/definitions/models.Tenant" }, "password": { "type": "string" }, "roles": { "type": "array", "items": { "$ref": "#/definitions/consts.Role" } }, "status": { "$ref": "#/definitions/consts.UserStatus" }, "status_description": { "type": "string" }, "tenants": { "type": "array", "items": { "$ref": "#/definitions/models.Tenant" } }, "updated_at": { "type": "string" }, "username": { "type": "string" }, "verified_at": { "type": "string" } } }, "dto.UserStatistics": { "type": "object", "properties": { "count": { "type": "integer" }, "status": { "$ref": "#/definitions/consts.UserStatus" }, "status_description": { "type": "string" } } }, "dto.UserStatusUpdateForm": { "type": "object", "required": [ "status" ], "properties": { "status": { "enum": [ "normal", "disabled" ], "allOf": [ { "$ref": "#/definitions/consts.UserStatus" } ] } } }, "gorm.DeletedAt": { "type": "object", "properties": { "time": { "type": "string" }, "valid": { "description": "Valid is true if Time is not NULL", "type": "boolean" } } }, "models.Tenant": { "type": "object", "properties": { "code": { "type": "string" }, "config": { "type": "array", "items": { "type": "integer" } }, "created_at": { "type": "string" }, "expired_at": { "type": "string" }, "id": { "type": "integer" }, "name": { "type": "string" }, "status": { "$ref": "#/definitions/consts.TenantStatus" }, "updated_at": { "type": "string" }, "user_id": { "type": "integer" }, "users": { "type": "array", "items": { "$ref": "#/definitions/models.User" } }, "uuid": { "type": "string" } } }, "models.User": { "type": "object", "properties": { "created_at": { "type": "string" }, "deleted_at": { "$ref": "#/definitions/gorm.DeletedAt" }, "id": { "type": "integer" }, "metas": { "type": "array", "items": { "type": "integer" } }, "owned": { "$ref": "#/definitions/models.Tenant" }, "password": { "type": "string" }, "roles": { "type": "array", "items": { "$ref": "#/definitions/consts.Role" } }, "status": { "$ref": "#/definitions/consts.UserStatus" }, "tenants": { "type": "array", "items": { "$ref": "#/definitions/models.Tenant" } }, "updated_at": { "type": "string" }, "username": { "type": "string" }, "verified_at": { "type": "string" } } }, "requests.KV": { "type": "object", "properties": { "key": { "type": "string" }, "value": {} } }, "requests.Pager": { "type": "object", "properties": { "items": {}, "limit": { "type": "integer" }, "page": { "type": "integer" }, "total": { "type": "integer" } } } }, "securityDefinitions": { "BasicAuth": { "type": "basic" } }, "externalDocs": { "description": "OpenAPI", "url": "https://swagger.io/resources/open-api/" } }