github.com/polarismesh/polaris@v1.17.8/apiserver/httpserver/docs/naming_console_access_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/fault_tolerance"
    24  	apifault "github.com/polarismesh/specification/source/go/api/v1/fault_tolerance"
    25  	apimodel "github.com/polarismesh/specification/source/go/api/v1/model"
    26  	"github.com/polarismesh/specification/source/go/api/v1/service_manage"
    27  	apiservice "github.com/polarismesh/specification/source/go/api/v1/service_manage"
    28  	"github.com/polarismesh/specification/source/go/api/v1/traffic_manage"
    29  	apitraffic "github.com/polarismesh/specification/source/go/api/v1/traffic_manage"
    30  )
    31  
    32  var (
    33  	namespacesApiTags          = []string{"Namespaces"}
    34  	servicesApiTags            = []string{"Services"}
    35  	instancesApiTags           = []string{"Instances"}
    36  	routingRulesApiTags        = []string{"RoutingRules"}
    37  	rateLimitsApiTags          = []string{"RateLimits"}
    38  	circuitBreakersApiTags     = []string{"CircuitBreakers"}
    39  	circuitBreakerRulesApiTags = []string{"CircuitBreakerRules"}
    40  	faultDetectsApiTags        = []string{"FaultDetects"}
    41  )
    42  
    43  const (
    44  	typeNameString  = "string"
    45  	typeNameInteger = "integer"
    46  	typeNameBool    = "boolean"
    47  )
    48  
    49  func EnrichGetNamespacesApiDocsOld(r *restful.RouteBuilder) *restful.RouteBuilder {
    50  	return r.Doc("获取命名空间列表(Old)").
    51  		Metadata(restfulspec.KeyOpenAPITags, namespacesApiTags).
    52  		Param(restful.QueryParameter("name", "命名空间唯一名称").
    53  			DataType(typeNameString).Required(true)).
    54  		Param(restful.QueryParameter("offset", "查询偏移量").
    55  			DataType(typeNameInteger).Required(false).DefaultValue("0")).
    56  		Param(restful.QueryParameter("limit", "查询条数,**最多查询100条**").
    57  			DataType(typeNameInteger).Required(false)).
    58  		Returns(0, "", struct {
    59  			BatchQueryResponse
    60  			Namespaces []apimodel.Namespace `json:"namespaces"`
    61  		}{})
    62  }
    63  
    64  func EnrichCreateNamespacesApiDocsOld(r *restful.RouteBuilder) *restful.RouteBuilder {
    65  	return r.
    66  		Doc("创建命名空间(Old)").
    67  		Metadata(restfulspec.KeyOpenAPITags, namespacesApiTags).
    68  		Reads([]apimodel.Namespace{}, "create namespaces").
    69  		Returns(0, "", struct {
    70  			BatchWriteResponse
    71  			Responses []struct {
    72  				BaseResponse
    73  				Namespace apimodel.Namespace `json:"namespace"`
    74  			} `json:"responses"`
    75  		}{})
    76  }
    77  
    78  func EnrichDeleteNamespacesApiDocsOld(r *restful.RouteBuilder) *restful.RouteBuilder {
    79  	return r.
    80  		Doc("删除命名空间(Old)").
    81  		Metadata(restfulspec.KeyOpenAPITags, namespacesApiTags).
    82  		Reads([]apimodel.Namespace{}, "delete namespaces").
    83  		Returns(0, "", struct {
    84  			BatchWriteResponse
    85  			Responses []struct {
    86  				BaseResponse
    87  				Namespace apimodel.Namespace `json:"namespace"`
    88  			} `json:"responses"`
    89  		}{})
    90  }
    91  
    92  func EnrichUpdateNamespacesApiDocsOld(r *restful.RouteBuilder) *restful.RouteBuilder {
    93  	return r.
    94  		Doc("更新命名空间(Old)").
    95  		Metadata(restfulspec.KeyOpenAPITags, namespacesApiTags).
    96  		Reads([]apimodel.Namespace{}, "update namespaces").
    97  		Returns(0, "", struct {
    98  			BatchWriteResponse
    99  			Responses []struct {
   100  				BaseResponse
   101  				Namespace apimodel.Namespace `json:"namespace"`
   102  			} `json:"responses"`
   103  		}{})
   104  }
   105  
   106  func EnrichGetNamespaceTokenApiDocsOld(r *restful.RouteBuilder) *restful.RouteBuilder {
   107  	return r.
   108  		Doc("查询命名空间Token(Old)").
   109  		Metadata(restfulspec.KeyOpenAPITags, namespacesApiTags).Deprecate()
   110  }
   111  
   112  func EnrichUpdateNamespaceTokenApiDocsOld(r *restful.RouteBuilder) *restful.RouteBuilder {
   113  	return r.
   114  		Doc("更新命名空间Token(Old)").
   115  		Metadata(restfulspec.KeyOpenAPITags, namespacesApiTags).Deprecate()
   116  }
   117  
   118  func EnrichGetAllServicesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   119  	return r.Doc("获取全部服务列表").
   120  		Metadata(restfulspec.KeyOpenAPITags, servicesApiTags).
   121  		Param(restful.QueryParameter("namespace", "命名空间").DataType(typeNameString).
   122  			Required(false)).
   123  		Returns(0, "", struct {
   124  			BatchQueryResponse
   125  			Services []service_manage.Service `json:"services"`
   126  		}{})
   127  }
   128  
   129  func EnrichGetServicesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   130  	return r.Doc("获取服务列表").
   131  		Metadata(restfulspec.KeyOpenAPITags, servicesApiTags).
   132  		Param(restful.QueryParameter("name", "服务名, 前缀查询: name*; 后缀查询: *name; 全模糊查询: *name*").
   133  			DataType(typeNameString).
   134  			Required(false).
   135  			DefaultValue("demo-service")).
   136  		Param(restful.QueryParameter("namespace", "命名空间, 前缀查询: name*; 后缀查询: *name; 全模糊查询: *name*").
   137  			DataType(typeNameString).
   138  			Required(false).
   139  			DefaultValue("default")).
   140  		Param(restful.QueryParameter("business", "业务,默认模糊查询").DataType(typeNameString).
   141  			Required(false)).
   142  		Param(restful.QueryParameter("department", "部门").DataType(typeNameString).
   143  			Required(false)).
   144  		Param(restful.QueryParameter("host", "实例IP,**多个IP以英文逗号分隔**").
   145  			DataType(typeNameString).Required(false)).
   146  		Param(restful.QueryParameter("port", "**实例端口**,**多个端口以英文逗号分隔** ").
   147  			DataType(typeNameString).Required(false)).
   148  		Param(restful.QueryParameter("keys", "服务元数据名,keys和values需要同时填写,"+
   149  			"目前只支持查询一组元数据。").DataType(typeNameString).Required(false)).
   150  		Param(restful.QueryParameter("values", "服务元数据名,keys和values需要同时填写,"+
   151  			"目前只支持查询一组元数据。").DataType(typeNameString).Required(false)).
   152  		Param(restful.QueryParameter("instance_keys", "实例标签key, key-1,key-2, instance_keys 和 "+
   153  			" instance_values 需要同时填写且必须元素个数一致").DataType(typeNameString).
   154  			Required(false).DefaultValue("")).
   155  		Param(restful.QueryParameter("instance_values", "实例标签value, value-1,value-2, instance_keys "+
   156  			" 和 instance_values 需要同时填写且必须元素个数一致").
   157  			DataType(typeNameString).
   158  			Required(false)).
   159  		Param(restful.QueryParameter("offset", "查询偏移量").DataType(typeNameInteger).
   160  			Required(false).DefaultValue("0")).
   161  		Param(restful.QueryParameter("limit", "查询条数,**最多查询100条**").DataType(typeNameInteger).
   162  			Required(false)).
   163  		Returns(0, "", struct {
   164  			BatchQueryResponse
   165  			Services []service_manage.Service `json:"services"`
   166  		}{})
   167  }
   168  
   169  func EnrichCreateServicesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   170  	return r.
   171  		Doc("创建服务").
   172  		Metadata(restfulspec.KeyOpenAPITags, servicesApiTags).
   173  		Reads([]apiservice.Service{}, "create services").
   174  		Returns(0, "", struct {
   175  			BatchWriteResponse
   176  			Responses []struct {
   177  				BaseResponse
   178  				Service service_manage.Service `json:"service"`
   179  			} `json:"responses"`
   180  		}{})
   181  }
   182  
   183  func EnrichDeleteServicesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   184  	return r.
   185  		Doc("删除服务").
   186  		Metadata(restfulspec.KeyOpenAPITags, servicesApiTags).
   187  		Reads([]apiservice.Service{}, "delete services").
   188  		Returns(0, "", struct {
   189  			BatchWriteResponse
   190  			Responses []struct {
   191  				BaseResponse
   192  				Service service_manage.Service `json:"service"`
   193  			} `json:"responses"`
   194  		}{})
   195  }
   196  
   197  func EnrichUpdateServicesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   198  	return r.
   199  		Doc("更新服务").
   200  		Metadata(restfulspec.KeyOpenAPITags, servicesApiTags).
   201  		Reads([]apiservice.Service{}, "update services").
   202  		Returns(0, "", struct {
   203  			BatchWriteResponse
   204  			Responses []struct {
   205  				BaseResponse
   206  				Service service_manage.Service `json:"service"`
   207  			} `json:"responses"`
   208  		}{})
   209  }
   210  
   211  func EnrichGetServicesCountApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   212  	return r.
   213  		Doc("获取服务数量").
   214  		Metadata(restfulspec.KeyOpenAPITags, servicesApiTags).
   215  		Returns(0, "", BatchQueryResponse{})
   216  }
   217  
   218  func EnrichGetServiceTokenApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   219  	return r.
   220  		Doc("查询服务Token").
   221  		Metadata(restfulspec.KeyOpenAPITags, servicesApiTags).Deprecate()
   222  }
   223  
   224  func EnrichUpdateServiceTokenApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   225  	return r.Doc("更新服务Token").
   226  		Metadata(restfulspec.KeyOpenAPITags, servicesApiTags).Deprecate()
   227  }
   228  
   229  func EnrichCreateServiceAliasApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   230  	return r.Doc("创建服务别名").
   231  		Metadata(restfulspec.KeyOpenAPITags, servicesApiTags).
   232  		Reads(apiservice.ServiceAlias{}, "create service alias").
   233  		Returns(0, "", BaseResponse{})
   234  }
   235  
   236  func EnrichUpdateServiceAliasApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   237  	return r.Doc("更新服务别名").
   238  		Metadata(restfulspec.KeyOpenAPITags, servicesApiTags).
   239  		Reads(apiservice.ServiceAlias{}, "update service alias").
   240  		Returns(0, "", BaseResponse{})
   241  }
   242  
   243  func EnrichGetServiceAliasesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   244  	return r.Doc("查询服务别名").
   245  		Metadata(restfulspec.KeyOpenAPITags, servicesApiTags).
   246  		Param(restful.QueryParameter("alias", "服务别名").
   247  			DataType(typeNameString).Required(false).DefaultValue("demo-service")).
   248  		Param(restful.QueryParameter("alias_namespace", "服务别名命名空间").
   249  			DataType(typeNameString).Required(false).DefaultValue("demo-service")).
   250  		Param(restful.QueryParameter("service", "原服务名").
   251  			DataType(typeNameString).Required(false).DefaultValue("demo-service")).
   252  		Param(restful.QueryParameter("namespace", "原服务命名空间").
   253  			DataType(typeNameString).Required(false).DefaultValue("demo-service")).
   254  		Param(restful.QueryParameter("offset", "查询偏移量").DataType(typeNameInteger).
   255  			Required(false).DefaultValue("0")).
   256  		Param(restful.QueryParameter("limit", "查询条数,**最多查询100条**").DataType(typeNameInteger).
   257  			Required(false)).
   258  		Returns(0, "", struct {
   259  			BatchQueryResponse
   260  			Services []service_manage.Service `json:"services"`
   261  		}{})
   262  }
   263  
   264  func EnrichDeleteServiceAliasesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   265  	return r.Doc("删除服务别名").
   266  		Metadata(restfulspec.KeyOpenAPITags, servicesApiTags).
   267  		Reads([]apiservice.ServiceAlias{}, "delete service aliases").
   268  		Returns(0, "", BaseResponse{})
   269  }
   270  
   271  func EnrichCreateInstancesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   272  	return r.Doc("创建实例").
   273  		Metadata(restfulspec.KeyOpenAPITags, instancesApiTags).
   274  		Reads([]apiservice.Instance{}, "create instances").
   275  		Returns(0, "", struct {
   276  			BatchWriteResponse
   277  			Responses []struct {
   278  				BaseResponse
   279  				Instance service_manage.Instance `json:"instance"`
   280  			} `json:"responses"`
   281  		}{})
   282  }
   283  
   284  func EnrichDeleteInstancesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   285  	return r.Doc("删除实例(根据实例ID)").
   286  		Metadata(restfulspec.KeyOpenAPITags, instancesApiTags).
   287  		Reads([]apiservice.Instance{}, "delete instances").
   288  		Returns(0, "", struct {
   289  			BatchWriteResponse
   290  			Responses []struct {
   291  				BaseResponse
   292  				Instance service_manage.Instance `json:"instance"`
   293  			} `json:"responses"`
   294  		}{})
   295  }
   296  
   297  func EnrichDeleteInstancesByHostApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   298  	return r.Doc("删除实例(根据主机)").
   299  		Metadata(restfulspec.KeyOpenAPITags, instancesApiTags).
   300  		Reads([]apiservice.Instance{}, "delete instances").
   301  		Returns(0, "", struct {
   302  			BatchWriteResponse
   303  			Responses []struct {
   304  				BaseResponse
   305  				Instance service_manage.Instance `json:"instance"`
   306  			} `json:"responses"`
   307  		}{})
   308  }
   309  
   310  func EnrichUpdateInstancesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   311  	return r.Doc("更新实例").
   312  		Metadata(restfulspec.KeyOpenAPITags, instancesApiTags).
   313  		Reads([]apiservice.Instance{}, "update instances").
   314  		Returns(0, "", struct {
   315  			BatchWriteResponse
   316  			Responses []struct {
   317  				BaseResponse
   318  				Instance service_manage.Instance `json:"instance"`
   319  			} `json:"responses"`
   320  		}{})
   321  }
   322  
   323  func EnrichUpdateInstancesIsolateApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   324  	return r.Doc("修改服务实例的隔离状态").
   325  		Metadata(restfulspec.KeyOpenAPITags, instancesApiTags).
   326  		Reads([]apiservice.Instance{}, "update instances").
   327  		Returns(0, "", struct {
   328  			BatchWriteResponse
   329  			Responses []struct {
   330  				BaseResponse
   331  				Instance service_manage.Instance `json:"instance"`
   332  			} `json:"responses"`
   333  		}{})
   334  }
   335  
   336  func EnrichGetInstancesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   337  	return r.Doc("查询服务实例").
   338  		Metadata(restfulspec.KeyOpenAPITags, instancesApiTags).
   339  		Param(restful.PathParameter("id", "实例ID").
   340  			DataType(typeNameString).Required(false)).
   341  		Param(restful.QueryParameter("service", "service namespace host 三个必须最少传一个, "+
   342  			" 前缀查询: name*; 后缀查询: *name; 全模糊查询: *name*").
   343  			DataType(typeNameString).Required(false)).
   344  		Param(restful.QueryParameter("namespace", "service namespace host 三个必须最少传一个, "+
   345  			" 前缀查询: name*; 后缀查询: *name; 全模糊查询: *name*").
   346  			DataType(typeNameString).Required(false)).
   347  		Param(restful.QueryParameter("host", "service namespace host 三个必须最少传一个").
   348  			DataType(typeNameString).Required(false)).
   349  		Param(restful.PathParameter("keys", "标签key").
   350  			DataType(typeNameString).Required(false)).
   351  		Param(restful.PathParameter("values", "标签value").
   352  			DataType(typeNameString).Required(false)).
   353  		Param(restful.PathParameter("healthy", "实例健康状态").
   354  			DataType(typeNameString).Required(false)).
   355  		Param(restful.PathParameter("isolate", "实例隔离状态").
   356  			DataType(typeNameString).Required(false)).
   357  		Param(restful.PathParameter("protocol", "实例端口协议状态").
   358  			DataType(typeNameString).Required(false)).
   359  		Param(restful.PathParameter("version", "实例版本").
   360  			DataType(typeNameString).Required(false)).
   361  		Param(restful.PathParameter("cmdb_region", "实例region信息").
   362  			DataType(typeNameString).Required(false)).
   363  		Param(restful.PathParameter("cmdb_zone", "实例zone信息").
   364  			DataType(typeNameString).Required(false)).
   365  		Param(restful.PathParameter("cmdb_idc", "实例idc信息").
   366  			DataType(typeNameString).Required(false)).
   367  		Param(restful.PathParameter("offset", "查询偏移量").
   368  			DataType(typeNameInteger).Required(false)).
   369  		Param(restful.PathParameter("limit", "查询条数").
   370  			DataType(typeNameInteger).Required(false)).
   371  		Returns(0, "", struct {
   372  			BatchQueryResponse
   373  			Instances []service_manage.Instance `json:"instances"`
   374  		}{})
   375  }
   376  
   377  func EnrichGetInstancesCountApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   378  	return r.Doc("查询服务实例数量").
   379  		Metadata(restfulspec.KeyOpenAPITags, instancesApiTags).
   380  		Returns(0, "", BatchQueryResponse{})
   381  }
   382  
   383  func EnrichGetInstanceLabelsApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   384  	return r.Doc("查询某个服务下所有实例的标签信息").
   385  		Metadata(restfulspec.KeyOpenAPITags, instancesApiTags).
   386  		Param(restful.QueryParameter("service", "服务名称").
   387  			DataType(typeNameString).Required(true)).
   388  		Param(restful.QueryParameter("namespace", "命名空间").
   389  			DataType(typeNameString).Required(true)).
   390  		Returns(0, "", struct {
   391  			BaseResponse
   392  			InstanceLabels service_manage.InstanceLabels `json:"instanceLabels,omitempty"`
   393  		}{})
   394  }
   395  
   396  func EnrichCreateRateLimitsApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   397  	return r.Doc("创建限流规则").
   398  		Metadata(restfulspec.KeyOpenAPITags, rateLimitsApiTags).
   399  		Reads([]apitraffic.Rule{}, "create rate limits").
   400  		Returns(0, "", struct {
   401  			BatchWriteResponse
   402  			Responses []struct {
   403  				BaseResponse
   404  			} `json:"responses"`
   405  		}{})
   406  }
   407  
   408  func EnrichDeleteRateLimitsApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   409  	return r.Doc("删除限流规则").
   410  		Metadata(restfulspec.KeyOpenAPITags, rateLimitsApiTags).
   411  		Reads([]apitraffic.Rule{}, "delete rate limits").
   412  		Returns(0, "", struct {
   413  			BatchWriteResponse
   414  			Responses []struct {
   415  				BaseResponse
   416  			} `json:"responses"`
   417  		}{})
   418  }
   419  
   420  func EnrichUpdateRateLimitsApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   421  	return r.Doc("更新限流规则").
   422  		Metadata(restfulspec.KeyOpenAPITags, rateLimitsApiTags).
   423  		Reads([]apitraffic.Rule{}, "update rate limits").
   424  		Returns(0, "", struct {
   425  			BatchWriteResponse
   426  			Responses []struct {
   427  				BaseResponse
   428  			} `json:"responses"`
   429  		}{})
   430  }
   431  
   432  func EnrichGetRateLimitsApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   433  	return r.Doc("查询限流规则").
   434  		Metadata(restfulspec.KeyOpenAPITags, rateLimitsApiTags).
   435  		Param(restful.PathParameter("id", "规则ID").
   436  			DataType(typeNameString).Required(false)).
   437  		Param(restful.PathParameter("name", "规则名称").
   438  			DataType(typeNameString).Required(false)).
   439  		Param(restful.PathParameter("service", "服务名称").
   440  			DataType(typeNameString).Required(false)).
   441  		Param(restful.PathParameter("namespace", "命名空间").
   442  			DataType(typeNameString).Required(false)).
   443  		Param(restful.PathParameter("method", "限流接口名,默认为模糊匹配 ").
   444  			DataType(typeNameString).Required(false)).
   445  		Param(restful.PathParameter("disable", "规则是否启用,true为不启用,false为启用").
   446  			DataType(typeNameBool).Required(false)).
   447  		Param(restful.PathParameter("brief",
   448  			"是否只显示概要信息,brief=true时,只返回规则列表概要信息,默认为false").
   449  			DataType("boolean").Required(false).DefaultValue("false")).
   450  		Param(restful.PathParameter("offset", "分页的起始位置,默认为0").DataType(typeNameInteger).
   451  			Required(false).DefaultValue("0")).
   452  		Param(restful.PathParameter("limit", "每页行数,默认100  ").DataType(typeNameInteger).
   453  			Required(false).DefaultValue("100")).
   454  		Returns(0, "", struct {
   455  			BatchQueryResponse
   456  			RateLimits []traffic_manage.Rule `json:"rateLimits,omitempty"`
   457  		}{})
   458  }
   459  
   460  func EnrichEnableRateLimitsApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   461  	return r.Doc("启用限流规则").
   462  		Metadata(restfulspec.KeyOpenAPITags, rateLimitsApiTags).
   463  		Reads([]apitraffic.Rule{}, "enable rate limits").
   464  		Returns(0, "", struct {
   465  			BatchWriteResponse
   466  			Responses []struct {
   467  				BaseResponse
   468  			} `json:"responses"`
   469  		}{})
   470  }
   471  
   472  func EnrichCreateCircuitBreakerRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   473  	return r.Doc("创建熔断规则").
   474  		Metadata(restfulspec.KeyOpenAPITags, circuitBreakersApiTags).
   475  		Reads([]apifault.CircuitBreakerRule{}, "create circuitbreaker rules").
   476  		Returns(0, "", struct {
   477  			BatchWriteResponse
   478  			Responses []struct {
   479  				BaseResponse
   480  			} `json:"responses"`
   481  		}{})
   482  }
   483  
   484  func EnrichDeleteCircuitBreakerRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   485  	return r.Doc("删除熔断规则").
   486  		Metadata(restfulspec.KeyOpenAPITags, circuitBreakersApiTags).
   487  		Reads([]apifault.CircuitBreakerRule{}, "delete circuitbreaker rules").
   488  		Returns(0, "", struct {
   489  			BatchWriteResponse
   490  			Responses []struct {
   491  				BaseResponse
   492  			} `json:"responses"`
   493  		}{})
   494  }
   495  
   496  func EnrichUpdateCircuitBreakerRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   497  	return r.Doc("更新熔断规则").
   498  		Metadata(restfulspec.KeyOpenAPITags, circuitBreakersApiTags).
   499  		Reads([]apifault.CircuitBreakerRule{}, "update circuitbreaker rules").
   500  		Returns(0, "", struct {
   501  			BatchWriteResponse
   502  			Responses []struct {
   503  				BaseResponse
   504  			} `json:"responses"`
   505  		}{})
   506  }
   507  
   508  func EnrichGetCircuitBreakerRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   509  	return r.Doc("查询熔断规则").
   510  		Metadata(restfulspec.KeyOpenAPITags, circuitBreakersApiTags).
   511  		Param(restful.PathParameter("brief", "是否只显示概要信息,brief=true时,则不返回规则详情,"+
   512  			"只返回规则列表概要信息,默认为false").DataType(typeNameBool).
   513  			Required(false).DefaultValue("false")).
   514  		Param(restful.PathParameter("offset", "分页的起始位置,默认为0").DataType(typeNameInteger).
   515  			Required(false).DefaultValue("0")).
   516  		Param(restful.PathParameter("limit", "每页行数,默认100  ").DataType(typeNameInteger).
   517  			Required(false).DefaultValue("100")).
   518  		Param(restful.PathParameter("id", "规则ID").DataType(typeNameString).
   519  			Required(false)).
   520  		Param(restful.PathParameter("name", "规则名称").DataType(typeNameString).
   521  			Required(false)).
   522  		Param(restful.PathParameter("enable", "规则是否启用,true为启用,false为不启用").
   523  			DataType("boolean").Required(false)).
   524  		Param(restful.PathParameter("namespace", "命名空间").DataType(typeNameString).
   525  			Required(false)).
   526  		Param(restful.PathParameter("level", "熔断级别,可输入多个,逗号分割:1服务,2接口,3分组,4实例").
   527  			DataType(typeNameString).Required(true)).
   528  		Param(restful.PathParameter("service", "规则所关联服务,必须和serviceNamespace一起用").
   529  			DataType(typeNameString).Required(true)).
   530  		Param(restful.PathParameter("serviceNamespace", "规则所关联服务的命名空间,必须和service一起用").
   531  			DataType(typeNameString).Required(true)).
   532  		Param(restful.PathParameter("srcService", "规则的源服务名,模糊匹配").
   533  			DataType(typeNameString).Required(true)).
   534  		Param(restful.PathParameter("srcNamespace", "规则的源命名空间,模糊匹配").
   535  			DataType(typeNameString).Required(true)).
   536  		Param(restful.PathParameter("dstService", "规则的目标服务名,模糊匹配").
   537  			DataType(typeNameString).Required(true)).
   538  		Param(restful.PathParameter("dstNamespace", "规则的目标命名空间,模糊匹配").
   539  			DataType(typeNameString).Required(true)).
   540  		Param(restful.PathParameter("dstMethod", "规则的目标方法名,模糊匹配").
   541  			DataType(typeNameString).Required(true)).
   542  		Param(restful.PathParameter("description", "规则描述,模糊匹配").
   543  			DataType(typeNameString).Required(true)).
   544  		Returns(0, "", struct {
   545  			BatchQueryResponse
   546  			Data []fault_tolerance.CircuitBreakerRule `json:"data"`
   547  		}{})
   548  }
   549  
   550  func EnrichEnableCircuitBreakerRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   551  	return r.Doc("启用熔断规则").
   552  		Metadata(restfulspec.KeyOpenAPITags, circuitBreakersApiTags).
   553  		Reads([]fault_tolerance.CircuitBreakerRule{}, "enable circuitbreaker rule").
   554  		Returns(0, "", struct {
   555  			BatchWriteResponse
   556  			Responses []struct {
   557  				BaseResponse
   558  			} `json:"responses"`
   559  		}{})
   560  }
   561  
   562  func EnrichCreateFaultDetectRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   563  	return r.Doc("创建主动探测规则").
   564  		Metadata(restfulspec.KeyOpenAPITags, faultDetectsApiTags).
   565  		Reads([]apifault.FaultDetectRule{}, "create fault detect rules").
   566  		Returns(0, "", struct {
   567  			BatchWriteResponse
   568  			Responses []struct {
   569  				BaseResponse
   570  			} `json:"responses"`
   571  		}{})
   572  }
   573  
   574  func EnrichDeleteFaultDetectRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   575  	return r.Doc("删除主动探测规则").
   576  		Metadata(restfulspec.KeyOpenAPITags, faultDetectsApiTags).
   577  		Reads([]apifault.FaultDetectRule{}, "delete fault detect rules").
   578  		Returns(0, "", struct {
   579  			BatchWriteResponse
   580  			Responses []struct {
   581  				BaseResponse
   582  			} `json:"responses"`
   583  		}{})
   584  }
   585  
   586  func EnrichUpdateFaultDetectRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   587  	return r.Doc("更新主动探测规则").
   588  		Metadata(restfulspec.KeyOpenAPITags, faultDetectsApiTags).
   589  		Reads([]apifault.FaultDetectRule{}, "update fault detect rules").
   590  		Returns(0, "", struct {
   591  			BatchWriteResponse
   592  			Responses []struct {
   593  				BaseResponse
   594  			} `json:"responses"`
   595  		}{})
   596  }
   597  
   598  func EnrichGetFaultDetectRulesApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   599  	return r.Doc("查询主动探测规则").
   600  		Metadata(restfulspec.KeyOpenAPITags, faultDetectsApiTags).
   601  		Param(restful.PathParameter("brief", "是否只显示概要信息,brief=true时,"+
   602  			"则不返回规则详情,只返回规则列表概要信息,默认为false").DataType(typeNameBool).
   603  			Required(false).DefaultValue("false")).
   604  		Param(restful.PathParameter("offset", "分页的起始位置,默认为0").DataType(typeNameInteger).
   605  			Required(false).DefaultValue("0")).
   606  		Param(restful.PathParameter("limit", "每页行数,默认100  ").DataType(typeNameInteger).
   607  			Required(false).DefaultValue("100")).
   608  		Param(restful.PathParameter("id", "规则ID").DataType(typeNameString).
   609  			Required(false)).
   610  		Param(restful.PathParameter("name", "规则名称").DataType(typeNameString).
   611  			Required(false)).
   612  		Param(restful.PathParameter("enable", "规则是否启用,true为启用,false为不启用").
   613  			DataType("boolean").Required(false)).
   614  		Param(restful.PathParameter("namespace", "命名空间").DataType(typeNameString).
   615  			Required(false)).
   616  		Param(restful.PathParameter("service", "规则所关联服务,必须和serviceNamespace一起用").
   617  			DataType(typeNameString).Required(true)).
   618  		Param(restful.PathParameter("serviceNamespace", "规则所关联服务的命名空间,必须和service一起用").
   619  			DataType(typeNameString).Required(true)).
   620  		Param(restful.PathParameter("dstService", "规则的目标服务名,模糊匹配").
   621  			DataType(typeNameString).Required(true)).
   622  		Param(restful.PathParameter("dstNamespace", "规则的目标命名空间,模糊匹配").
   623  			DataType(typeNameString).Required(true)).
   624  		Param(restful.PathParameter("dstMethod", "规则的目标方法名,模糊匹配").
   625  			DataType(typeNameString).Required(true)).
   626  		Param(restful.PathParameter("description", "规则描述,模糊匹配").
   627  			DataType(typeNameString).Required(true)).
   628  		Returns(0, "", struct {
   629  			BatchQueryResponse
   630  			Data []fault_tolerance.FaultDetectConfig `json:"data"`
   631  		}{})
   632  }
   633  
   634  func EnrichCreateRouterRuleApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   635  	return r.Doc("创建路由规则(V2)").
   636  		Metadata(restfulspec.KeyOpenAPITags, routingRulesApiTags).
   637  		Operation("v2CreateRoutings").
   638  		Reads([]RouteRule{}, `
   639  		SourceMatch.Type: CUSTOM/METHOD/HEADER/QUERY/CALLER_IP/PATH/COOKIE
   640  		SourceMatch.Value.Type: EXACT/REGEX/NOT_EQUALS/IN/NOT_IN/RANGE
   641  		SourceMatch.Value.ValueType: TEXT/PARAMETER
   642  		SourceMatch.Type: CUSTOM/METHOD/HEADER/QUERY/CALLER_IP/PATH/COOKIE
   643  		SourceMatch.Value.Type: EXACT/REGEX/NOT_EQUALS/IN/NOT_IN/RANGE
   644  		DestinationGroup.Labels.Value.Typee: EXACT/REGEX/NOT_EQUALS/IN/NOT_IN/RANGE
   645  		DestinationGroup.Labels.Value.ValueType: TEXT/PARAMETER
   646  		`).
   647  		Returns(0, "", struct {
   648  			BatchWriteResponse
   649  			Responses []struct {
   650  				BaseResponse
   651  			} `json:"responses"`
   652  		}{})
   653  }
   654  
   655  func EnrichDeleteRouterRuleApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   656  	return r.Doc("删除路由规则(V2)").
   657  		Metadata(restfulspec.KeyOpenAPITags, routingRulesApiTags).
   658  		Operation("v2DeleteRoutings").
   659  		Reads([]RouteRule{}).
   660  		Returns(0, "", struct {
   661  			BatchWriteResponse
   662  			Responses []struct {
   663  				BaseResponse
   664  			} `json:"responses"`
   665  		}{})
   666  }
   667  
   668  func EnrichUpdateRouterRuleApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   669  	return r.Doc("更新路由规则(V2)").
   670  		Metadata(restfulspec.KeyOpenAPITags, routingRulesApiTags).
   671  		Operation("v2UpdateRoutings").
   672  		Reads([]RouteRule{}).
   673  		Returns(0, "", struct {
   674  			BatchWriteResponse
   675  			Responses []struct {
   676  				BaseResponse
   677  			} `json:"responses"`
   678  		}{})
   679  }
   680  
   681  func EnrichGetRouterRuleApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   682  	return r.Doc("获取路由规则(V2)").
   683  		Metadata(restfulspec.KeyOpenAPITags, routingRulesApiTags).
   684  		Param(restful.PathParameter("id", "规则ID").DataType(typeNameString).
   685  			Required(false)).
   686  		Param(restful.PathParameter("name", "规则名称").DataType(typeNameString).
   687  			Required(false)).
   688  		Param(restful.PathParameter("service", "服务名称,匹配 source 或者 destination").DataType(typeNameString).
   689  			Required(false)).
   690  		Param(restful.PathParameter("namespace", "命名空间,匹配 source 或者 destination").DataType(typeNameString).
   691  			Required(false)).
   692  		Param(restful.PathParameter("source_service", "服务名称,只匹配 source").DataType(typeNameString).
   693  			Required(false)).
   694  		Param(restful.PathParameter("source_namespace", "命名空间,只匹配 source").DataType(typeNameString).
   695  			Required(false)).
   696  		Param(restful.PathParameter("destination_service", "服务名称,只匹配 destination").DataType(typeNameString).
   697  			Required(false)).
   698  		Param(restful.PathParameter("destination_namespace", "命名空间,只匹配 destination").DataType(typeNameString).
   699  			Required(false)).
   700  		Param(restful.PathParameter("enable", "查询符合对应启用状态").DataType(typeNameBool).
   701  			Required(false)).
   702  		Param(restful.PathParameter("offset", "分页的起始位置,默认为0").DataType(typeNameInteger).
   703  			Required(false).
   704  			DefaultValue("0")).
   705  		Param(restful.PathParameter("limit", "每页行数,默认100").DataType(typeNameInteger).
   706  			Required(false).
   707  			DefaultValue("100")).
   708  		Operation("v2GetRoutings").
   709  		Returns(0, "", struct {
   710  			BatchQueryResponse
   711  			Data []RouteRule `json:"data"`
   712  		}{})
   713  }
   714  
   715  func EnrichEnableRouterRuleApiDocs(r *restful.RouteBuilder) *restful.RouteBuilder {
   716  	return r.Doc("启用路由规则(V2)").
   717  		Metadata(restfulspec.KeyOpenAPITags, routingRulesApiTags).
   718  		Reads([]RouteRule{}).
   719  		Operation("v2EnableRoutings").
   720  		Returns(0, "", struct {
   721  			BatchWriteResponse
   722  			Responses []struct {
   723  				BaseResponse
   724  			} `json:"responses"`
   725  		}{})
   726  }