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  }