github.com/polarismesh/polaris@v1.17.8/apiserver/httpserver/docs/admin_apidoc.go (about) 1 /** 2 * Tencent is pleased to support the open source community by making Polaris available. 3 * 4 * Copyright (C) 2019 THL A29 Limited, a Tencent company. All rights reserved. 5 * 6 * Licensed under the BSD 3-Clause License (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * https://opensource.org/licenses/BSD-3-Clause 11 * 12 * Unless required by applicable law or agreed to in writing, software distributed 13 * under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR 14 * CONDITIONS OF ANY KIND, either express or implied. See the License for the 15 * specific language governing permissions and limitations under the License. 16 */ 17 18 package docs 19 20 import ( 21 "github.com/emicklei/go-restful/v3" 22 restfulspec "github.com/polarismesh/go-restful-openapi/v2" 23 "github.com/polarismesh/specification/source/go/api/v1/service_manage" 24 apiservice "github.com/polarismesh/specification/source/go/api/v1/service_manage" 25 26 "github.com/polarismesh/polaris/admin" 27 "github.com/polarismesh/polaris/common/model" 28 ) 29 30 var ( 31 maintainApiTags = []string{"Maintain"} 32 ) 33 34 func EnrichGetServerConnectionsApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 35 return r. 36 Doc("获取服务端连接数"). 37 Metadata(restfulspec.KeyOpenAPITags, maintainApiTags). 38 Param(restful.QueryParameter("protocol", "查看指定协议").DataType(typeNameString).Required(true)). 39 Param(restful.QueryParameter("host", "查看指定host").DataType(typeNameString).Required(false)). 40 Returns(0, "", admin.ConnCountResp{}) 41 } 42 43 func EnrichGetServerConnStatsApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 44 return r. 45 Doc("获取服务端连接统计信息"). 46 Metadata(restfulspec.KeyOpenAPITags, maintainApiTags). 47 Param(restful.QueryParameter("protocol", "查看指定协议").DataType(typeNameString).Required(true)). 48 Param(restful.QueryParameter("host", "查看指定host").DataType(typeNameString).Required(false)). 49 Param(restful.QueryParameter("amount", "总数").DataType(typeNameInteger).Required(false)). 50 Returns(0, "", admin.ConnStatsResp{}) 51 } 52 53 func EnrichCloseConnectionsApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 54 return r. 55 Doc("关闭指定client ip的连接"). 56 Metadata(restfulspec.KeyOpenAPITags, maintainApiTags). 57 Reads([]admin.ConnReq{}) 58 } 59 60 func EnrichFreeOSMemoryApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 61 return r. 62 Doc("释放系统内存"). 63 Metadata(restfulspec.KeyOpenAPITags, maintainApiTags) 64 } 65 66 func EnrichCleanInstanceApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 67 return r. 68 Doc("彻底清理flag=1的实例"). 69 Metadata(restfulspec.KeyOpenAPITags, maintainApiTags). 70 Reads(apiservice.Instance{}). 71 Returns(0, "", BaseResponse{}) 72 } 73 74 func EnrichBatchCleanInstancesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 75 return r. 76 Doc("彻底清理flag=1的实例"). 77 Metadata(restfulspec.KeyOpenAPITags, maintainApiTags). 78 Reads(apiservice.Instance{}) 79 } 80 81 func EnrichGetLastHeartbeatApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 82 return r. 83 Doc("获取上一次心跳的时间"). 84 Metadata(restfulspec.KeyOpenAPITags, maintainApiTags). 85 Param(restful.QueryParameter("id", "实例ID 如果存在则其它参数可不填").DataType(typeNameString).Required(false)). 86 Param(restful.QueryParameter("service", "服务名").DataType(typeNameString).Required(false)). 87 Param(restful.QueryParameter("namespace", "命名空间").DataType(typeNameString).Required(false)). 88 Param(restful.QueryParameter("host", "主机名").DataType(typeNameString).Required(false)). 89 Param(restful.QueryParameter("port", "端口").DataType(typeNameInteger).Required(false)). 90 Param(restful.QueryParameter("vpv_id", "VPC ID").DataType(typeNameString).Required(false)). 91 Returns(0, "", struct { 92 BaseResponse 93 Instance service_manage.Instance `json:"instance"` 94 }{}) 95 } 96 97 func EnrichGetLogOutputLevelApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 98 return r. 99 Doc("获取日志输出级别"). 100 Metadata(restfulspec.KeyOpenAPITags, maintainApiTags). 101 Returns(0, "", []admin.ScopeLevel{}) 102 } 103 104 func EnrichSetLogOutputLevelApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 105 return r. 106 Doc("设置日志输出级别"). 107 Metadata(restfulspec.KeyOpenAPITags, maintainApiTags). 108 Reads(struct { 109 Scope string `json:"scope"` 110 Level string `json:"level"` 111 }{}) 112 } 113 114 func EnrichListLeaderElectionsApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 115 return r. 116 Doc("获取选主的结果"). 117 Metadata(restfulspec.KeyOpenAPITags, maintainApiTags). 118 Returns(0, "", []model.LeaderElection{}) 119 } 120 121 func EnrichReleaseLeaderElectionApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 122 return r. 123 Doc("主动放弃主身份"). 124 Metadata(restfulspec.KeyOpenAPITags, maintainApiTags). 125 Reads(struct { 126 ElectKey string `json:"electKey"` 127 }{}) 128 } 129 130 func EnrichGetCMDBInfoApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 131 return r. 132 Doc("查询CMDB信息"). 133 Metadata(restfulspec.KeyOpenAPITags, maintainApiTags). 134 Returns(0, "", []model.LocationView{}) 135 } 136 137 func EnrichGetReportClientsApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder { 138 return r. 139 Doc("查询SDK实例列表"). 140 Metadata(restfulspec.KeyOpenAPITags, maintainApiTags). 141 Returns(0, "", model.PrometheusDiscoveryResponse{}) 142 }