mirror of
				https://github.com/TeaOSLab/EdgeCommon.git
				synced 2025-11-04 05:00:24 +08:00 
			
		
		
		
	域名解析功能实现健康检查
This commit is contained in:
		
							
								
								
									
										101
									
								
								build/rpc.json
									
									
									
									
									
								
							
							
						
						
									
										101
									
								
								build/rpc.json
									
									
									
									
									
								
							@@ -7709,6 +7709,30 @@
 | 
			
		||||
            "user"
 | 
			
		||||
          ],
 | 
			
		||||
          "isDeprecated": false
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "name": "findNSDomainRecordsHealthCheck",
 | 
			
		||||
          "requestMessageName": "FindNSDomainRecordsHealthCheckRequest",
 | 
			
		||||
          "responseMessageName": "FindNSDomainRecordsHealthCheckResponse",
 | 
			
		||||
          "code": "rpc findNSDomainRecordsHealthCheck(FindNSDomainRecordsHealthCheckRequest) returns (FindNSDomainRecordsHealthCheckResponse);",
 | 
			
		||||
          "doc": "查询记录健康检查全局设置",
 | 
			
		||||
          "roles": [
 | 
			
		||||
            "admin",
 | 
			
		||||
            "user"
 | 
			
		||||
          ],
 | 
			
		||||
          "isDeprecated": false
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "name": "updateNSDomainRecordsHealthCheck",
 | 
			
		||||
          "requestMessageName": "UpdateNSDomainRecordsHealthCheckRequest",
 | 
			
		||||
          "responseMessageName": "RPCSuccess",
 | 
			
		||||
          "code": "rpc updateNSDomainRecordsHealthCheck(UpdateNSDomainRecordsHealthCheckRequest) returns (RPCSuccess);",
 | 
			
		||||
          "doc": "修改记录健康检查全局设置",
 | 
			
		||||
          "roles": [
 | 
			
		||||
            "admin",
 | 
			
		||||
            "user"
 | 
			
		||||
          ],
 | 
			
		||||
          "isDeprecated": false
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "filename": "service_ns_domain.proto",
 | 
			
		||||
@@ -8509,6 +8533,42 @@
 | 
			
		||||
            "dns"
 | 
			
		||||
          ],
 | 
			
		||||
          "isDeprecated": false
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "name": "findNSRecordHealthCheck",
 | 
			
		||||
          "requestMessageName": "FindNSRecordHealthCheckRequest",
 | 
			
		||||
          "responseMessageName": "FindNSRecordHealthCheckResponse",
 | 
			
		||||
          "code": "rpc findNSRecordHealthCheck(FindNSRecordHealthCheckRequest) returns (FindNSRecordHealthCheckResponse);",
 | 
			
		||||
          "doc": "查询记录健康检查设置",
 | 
			
		||||
          "roles": [
 | 
			
		||||
            "admin",
 | 
			
		||||
            "user"
 | 
			
		||||
          ],
 | 
			
		||||
          "isDeprecated": false
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "name": "updateNSRecordHealthCheck",
 | 
			
		||||
          "requestMessageName": "UpdateNSRecordHealthCheckRequest",
 | 
			
		||||
          "responseMessageName": "RPCSuccess",
 | 
			
		||||
          "code": "rpc updateNSRecordHealthCheck(UpdateNSRecordHealthCheckRequest) returns (RPCSuccess);",
 | 
			
		||||
          "doc": "修改记录健康检查设置",
 | 
			
		||||
          "roles": [
 | 
			
		||||
            "admin",
 | 
			
		||||
            "user"
 | 
			
		||||
          ],
 | 
			
		||||
          "isDeprecated": false
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
          "name": "updateNSRecordIsUp",
 | 
			
		||||
          "requestMessageName": "UpdateNSRecordIsUpRequest",
 | 
			
		||||
          "responseMessageName": "RPCSuccess",
 | 
			
		||||
          "code": "rpc updateNSRecordIsUp(UpdateNSRecordIsUpRequest) returns (RPCSuccess);",
 | 
			
		||||
          "doc": "手动修改记录在线状态",
 | 
			
		||||
          "roles": [
 | 
			
		||||
            "admin",
 | 
			
		||||
            "user"
 | 
			
		||||
          ],
 | 
			
		||||
          "isDeprecated": false
 | 
			
		||||
        }
 | 
			
		||||
      ],
 | 
			
		||||
      "filename": "service_ns_record.proto",
 | 
			
		||||
@@ -18433,6 +18493,16 @@
 | 
			
		||||
      "code": "message FindNSDomainGroupResponse {\n\tNSDomainGroup nsDomainGroup = 1;\n}",
 | 
			
		||||
      "doc": ""
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "FindNSDomainRecordsHealthCheckRequest",
 | 
			
		||||
      "code": "message FindNSDomainRecordsHealthCheckRequest {\n\tint64 nsDomainId = 1; // 域名ID\n}",
 | 
			
		||||
      "doc": "查询记录健康检查全局设置"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "FindNSDomainRecordsHealthCheckResponse",
 | 
			
		||||
      "code": "message FindNSDomainRecordsHealthCheckResponse {\n\tbytes nsDomainRecordsHealthCheckJSON = 1; // 健康检查设置\n}",
 | 
			
		||||
      "doc": ""
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "FindNSDomainRequest",
 | 
			
		||||
      "code": "message FindNSDomainRequest {\n\tint64 nsDomainId = 1; // 域名ID\n}",
 | 
			
		||||
@@ -18543,6 +18613,16 @@
 | 
			
		||||
      "code": "message FindNSQuestionOptionResponse {\n\tNSQuestionOption nsQuestionOption = 1;\n}",
 | 
			
		||||
      "doc": ""
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "FindNSRecordHealthCheckRequest",
 | 
			
		||||
      "code": "message FindNSRecordHealthCheckRequest {\n\tint64 nsRecordId = 1; // 记录ID\n}",
 | 
			
		||||
      "doc": "查询记录健康检查设置"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "FindNSRecordHealthCheckResponse",
 | 
			
		||||
      "code": "message FindNSRecordHealthCheckResponse {\n\tbytes nsRecordHealthCheckJSON = 1; // 记录健康检查配置\n}",
 | 
			
		||||
      "doc": ""
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "FindNSRecordHourlyStatRequest",
 | 
			
		||||
      "code": "message FindNSRecordHourlyStatRequest {\n\tint64 nsRecordId = 1; // 记录ID\n\tstring hour = 2; // YYYYMMDDHH\n}",
 | 
			
		||||
@@ -19845,7 +19925,7 @@
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "ListNSRecordsRequest",
 | 
			
		||||
      "code": "message ListNSRecordsRequest {\n\tint64 nsDomainId = 1;\n\tstring type = 2;\n\tint64 nsRouteId = 3 [deprecated = true]; // 使用nsRouteCode代替\n\tstring nsRouteCode = 7;\n\tstring keyword = 4;\n\n\tbool nameAsc = 8;\n\tbool nameDesc = 9;\n\tbool typeAsc = 10;\n\tbool typeDesc = 11;\n\tbool ttlAsc = 12;\n\tbool ttlDesc = 13;\n\n\tint64 offset = 5;\n\tint64 size = 6;\n}",
 | 
			
		||||
      "code": "message ListNSRecordsRequest {\n\tint64 nsDomainId = 1;\n\tstring type = 2;\n\tint64 nsRouteId = 3 [deprecated = true]; // 使用nsRouteCode代替\n\tstring nsRouteCode = 7;\n\tstring keyword = 4;\n\n\tbool nameAsc = 8;\n\tbool nameDesc = 9;\n\tbool typeAsc = 10;\n\tbool typeDesc = 11;\n\tbool ttlAsc = 12;\n\tbool ttlDesc = 13;\n\tbool upAsc = 14;\n\tbool upDesc = 15;\n\n\tint64 offset = 5;\n\tint64 size = 6;\n}",
 | 
			
		||||
      "doc": "读取单页记录"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
@@ -20220,7 +20300,7 @@
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "NSDomain",
 | 
			
		||||
      "code": "message NSDomain {\n\tint64 id = 1;\n\tstring name = 2;\n\tbool isOn = 3;\n\tint64 createdAt = 4;\n\tbool isDeleted = 5;\n\tint64 version = 6;\n\tbytes tsigJSON = 7;\n\trepeated int64 nsDomainGroupIds = 8;\n\tstring status = 9;\n\tint64 userId = 10; // 用户ID\n\n\tNSCluster nsCluster = 30;\n\tUser user = 31;\n\trepeated NSDomainGroup nsDomainGroups = 32;\n}",
 | 
			
		||||
      "code": "message NSDomain {\n\tint64 id = 1;\n\tstring name = 2;\n\tbool isOn = 3;\n\tint64 createdAt = 4;\n\tbool isDeleted = 5;\n\tint64 version = 6;\n\tbytes tsigJSON = 7;\n\trepeated int64 nsDomainGroupIds = 8;\n\tstring status = 9;\n\tint64 userId = 10; // 用户ID\n\tbytes recordsHealthCheckJSON = 11; // 健康检查设置\n\n\tNSCluster nsCluster = 30;\n\tUser user = 31;\n\trepeated NSDomainGroup nsDomainGroups = 32;\n}",
 | 
			
		||||
      "doc": "DNS域名"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
@@ -20255,7 +20335,7 @@
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "NSRecord",
 | 
			
		||||
      "code": "message NSRecord {\n\tint64 id = 1;\n\tstring description = 2;\n\tstring name = 3;\n\tstring type = 4;\n\tstring value = 5;\n\n\tint32 mxPriority = 12; // mx优先级\n\n\tint32 srvPriority = 13; // SRV优先级\n\tint32 srvWeight = 14; // SRV权重\n\tint32 srvPort = 15; // SRV端口\n\n\tint32 caaFlag = 16; // CAA Flag\n\tstring caaTag = 17; // CAA TAG\n\n\tint32 ttl = 6;\n\tint32 weight = 7;\n\tint64 createdAt = 8;\n\tbool isDeleted = 9;\n\tint64 version = 10;\n\tbool isOn = 11;\n\n\tNSDomain nsDomain = 30;\n\trepeated NSRoute nsRoutes = 31;\n}",
 | 
			
		||||
      "code": "message NSRecord {\n\tint64 id = 1; // 记录ID\n\tstring description = 2; // 备注\n\tstring name = 3; // 记录名\n\tstring type = 4; // 记录类型\n\tstring value = 5; // 记录值\n\n\tint32 mxPriority = 12; // mx优先级\n\n\tint32 srvPriority = 13; // SRV优先级\n\tint32 srvWeight = 14; // SRV权重\n\tint32 srvPort = 15; // SRV端口\n\n\tint32 caaFlag = 16; // CAA Flag\n\tstring caaTag = 17; // CAA TAG\n\n\tint32 ttl = 6; // TTL\n\tint32 weight = 7; // 权重\n\tint64 createdAt = 8;\n\tbool isDeleted = 9;\n\tint64 version = 10;\n\tbool isOn = 11; // 是否启用\n\n\tbytes healthCheckJSON = 18; // 健康检查配置\n\tbool isUp = 19; // 是否在线(根据健康检查结果)\n\n\tNSDomain nsDomain = 30; // 所属域名\n\trepeated NSRoute nsRoutes = 31; // 线路\n}",
 | 
			
		||||
      "doc": "域名记录"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
@@ -21428,6 +21508,11 @@
 | 
			
		||||
      "code": "message UpdateNSDomainGroupRequest {\n\tint64 nsDomainGroupId = 1;\n\tstring name = 2;\n\tbool isOn = 3;\n}",
 | 
			
		||||
      "doc": "修改分组"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "UpdateNSDomainRecordsHealthCheckRequest",
 | 
			
		||||
      "code": "message UpdateNSDomainRecordsHealthCheckRequest {\n\tint64 nsDomainId = 1; // 域名ID\n\tbytes nsDomainRecordsHealthCheckJSON = 2; // 健康检查设置\n}",
 | 
			
		||||
      "doc": "修改记录健康检查全局设置"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "UpdateNSDomainRequest",
 | 
			
		||||
      "code": "message UpdateNSDomainRequest {\n\tint64 nsDomainId = 1;\n\tint64 nsClusterId = 2;\n\tint64 userId = 3;\n\trepeated int64 nsDomainGroupIds = 5; // 域名分组ID\n\tbool isOn = 4;\n}",
 | 
			
		||||
@@ -21488,6 +21573,16 @@
 | 
			
		||||
      "code": "message UpdateNSPlanRequest {\n\tint64 nsPlanId = 1;\n\tstring name = 2;\n\tbool isOn = 3;\n\tfloat monthlyPrice = 4;\n\tfloat yearlyPrice = 5;\n\tbytes configJSON = 6;\n}",
 | 
			
		||||
      "doc": "修改DNS套餐"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "UpdateNSRecordHealthCheckRequest",
 | 
			
		||||
      "code": "message UpdateNSRecordHealthCheckRequest {\n\tint64 nsRecordId = 1; // 记录ID\n\tbytes nsRecordHealthCheckJSON = 2; // 记录健康检查配置\n}",
 | 
			
		||||
      "doc": "修改记录健康检查设置"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "UpdateNSRecordIsUpRequest",
 | 
			
		||||
      "code": "message UpdateNSRecordIsUpRequest {\n\tint64 nsRecordId = 1; // 记录ID\n\tbool isUp = 2;  // 是否在线\n}",
 | 
			
		||||
      "doc": "手动修改记录在线状态"
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
      "name": "UpdateNSRecordRequest",
 | 
			
		||||
      "code": "message UpdateNSRecordRequest {\n\tint64 nsRecordId = 1;\n\tstring description = 2;\n\tstring name = 3;\n\tstring type = 4;\n\tstring value = 5;\n\tint32 ttl = 6;\n\trepeated int64 nsRouteIds = 7 [deprecated = true];\n\tbool isOn = 8;\n\trepeated string nsRouteCodes = 9; // 路线代号\n\tint32 weight = 16; // 权重\n\n\tint32 mxPriority = 10; // mx优先级\n\n\tint32 srvPriority = 11; // SRV优先级\n\tint32 srvWeight = 12; // SRV权重\n\tint32 srvPort = 13; // SRV端口\n\n\tint32 caaFlag = 14; // CAA Flag\n\tstring caaTag = 15; // CAA TAG\n}",
 | 
			
		||||
 
 | 
			
		||||
@@ -41,6 +41,7 @@ type NSDomain struct {
 | 
			
		||||
	NsDomainGroupIds       []int64          `protobuf:"varint,8,rep,packed,name=nsDomainGroupIds,proto3" json:"nsDomainGroupIds,omitempty"`
 | 
			
		||||
	Status                 string           `protobuf:"bytes,9,opt,name=status,proto3" json:"status,omitempty"`
 | 
			
		||||
	UserId                 int64            `protobuf:"varint,10,opt,name=userId,proto3" json:"userId,omitempty"`                                // 用户ID
 | 
			
		||||
	RecordsHealthCheckJSON []byte           `protobuf:"bytes,11,opt,name=recordsHealthCheckJSON,proto3" json:"recordsHealthCheckJSON,omitempty"` // 健康检查设置
 | 
			
		||||
	NsCluster              *NSCluster       `protobuf:"bytes,30,opt,name=nsCluster,proto3" json:"nsCluster,omitempty"`
 | 
			
		||||
	User                   *User            `protobuf:"bytes,31,opt,name=user,proto3" json:"user,omitempty"`
 | 
			
		||||
	NsDomainGroups         []*NSDomainGroup `protobuf:"bytes,32,rep,name=nsDomainGroups,proto3" json:"nsDomainGroups,omitempty"`
 | 
			
		||||
@@ -148,6 +149,13 @@ func (x *NSDomain) GetUserId() int64 {
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *NSDomain) GetRecordsHealthCheckJSON() []byte {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.RecordsHealthCheckJSON
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *NSDomain) GetNsCluster() *NSCluster {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.NsCluster
 | 
			
		||||
@@ -179,7 +187,7 @@ var file_models_model_ns_domain_proto_rawDesc = []byte{
 | 
			
		||||
	0x6f, 0x1a, 0x22, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f,
 | 
			
		||||
	0x6e, 0x73, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e,
 | 
			
		||||
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f,
 | 
			
		||||
	0x64, 0x65, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x96,
 | 
			
		||||
	0x64, 0x65, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xce,
 | 
			
		||||
	0x03, 0x0a, 0x08, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69,
 | 
			
		||||
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e,
 | 
			
		||||
	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
 | 
			
		||||
@@ -197,16 +205,19 @@ var file_models_model_ns_domain_proto_rawDesc = []byte{
 | 
			
		||||
	0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28,
 | 
			
		||||
	0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65,
 | 
			
		||||
	0x72, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49,
 | 
			
		||||
	0x64, 0x12, 0x2b, 0x0a, 0x09, 0x6e, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x1e,
 | 
			
		||||
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73,
 | 
			
		||||
	0x74, 0x65, 0x72, 0x52, 0x09, 0x6e, 0x73, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c,
 | 
			
		||||
	0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70,
 | 
			
		||||
	0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x0e,
 | 
			
		||||
	0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x20,
 | 
			
		||||
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61,
 | 
			
		||||
	0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0e, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69,
 | 
			
		||||
	0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62,
 | 
			
		||||
	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
	0x64, 0x12, 0x36, 0x0a, 0x16, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x48, 0x65, 0x61, 0x6c,
 | 
			
		||||
	0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0b, 0x20, 0x01, 0x28,
 | 
			
		||||
	0x0c, 0x52, 0x16, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
 | 
			
		||||
	0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x2b, 0x0a, 0x09, 0x6e, 0x73, 0x43,
 | 
			
		||||
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70,
 | 
			
		||||
	0x62, 0x2e, 0x4e, 0x53, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x09, 0x6e, 0x73, 0x43,
 | 
			
		||||
	0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x1f,
 | 
			
		||||
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x08, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04,
 | 
			
		||||
	0x75, 0x73, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x0e, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
 | 
			
		||||
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x20, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70,
 | 
			
		||||
	0x62, 0x2e, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52,
 | 
			
		||||
	0x0e, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x42,
 | 
			
		||||
	0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
 
 | 
			
		||||
@@ -31,25 +31,27 @@ type NSRecord struct {
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	Id          int64      `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
 | 
			
		||||
	Description string     `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 | 
			
		||||
	Name        string     `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
 | 
			
		||||
	Type        string     `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"`
 | 
			
		||||
	Value       string     `protobuf:"bytes,5,opt,name=value,proto3" json:"value,omitempty"`
 | 
			
		||||
	Id              int64      `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`                    // 记录ID
 | 
			
		||||
	Description     string     `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`   // 备注
 | 
			
		||||
	Name            string     `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`                 // 记录名
 | 
			
		||||
	Type            string     `protobuf:"bytes,4,opt,name=type,proto3" json:"type,omitempty"`                 // 记录类型
 | 
			
		||||
	Value           string     `protobuf:"bytes,5,opt,name=value,proto3" json:"value,omitempty"`               // 记录值
 | 
			
		||||
	MxPriority      int32      `protobuf:"varint,12,opt,name=mxPriority,proto3" json:"mxPriority,omitempty"`   // mx优先级
 | 
			
		||||
	SrvPriority     int32      `protobuf:"varint,13,opt,name=srvPriority,proto3" json:"srvPriority,omitempty"` // SRV优先级
 | 
			
		||||
	SrvWeight       int32      `protobuf:"varint,14,opt,name=srvWeight,proto3" json:"srvWeight,omitempty"`     // SRV权重
 | 
			
		||||
	SrvPort         int32      `protobuf:"varint,15,opt,name=srvPort,proto3" json:"srvPort,omitempty"`         // SRV端口
 | 
			
		||||
	CaaFlag         int32      `protobuf:"varint,16,opt,name=caaFlag,proto3" json:"caaFlag,omitempty"`         // CAA Flag
 | 
			
		||||
	CaaTag          string     `protobuf:"bytes,17,opt,name=caaTag,proto3" json:"caaTag,omitempty"`            // CAA TAG
 | 
			
		||||
	Ttl         int32      `protobuf:"varint,6,opt,name=ttl,proto3" json:"ttl,omitempty"`
 | 
			
		||||
	Weight      int32      `protobuf:"varint,7,opt,name=weight,proto3" json:"weight,omitempty"`
 | 
			
		||||
	Ttl             int32      `protobuf:"varint,6,opt,name=ttl,proto3" json:"ttl,omitempty"`                  // TTL
 | 
			
		||||
	Weight          int32      `protobuf:"varint,7,opt,name=weight,proto3" json:"weight,omitempty"`            // 权重
 | 
			
		||||
	CreatedAt       int64      `protobuf:"varint,8,opt,name=createdAt,proto3" json:"createdAt,omitempty"`
 | 
			
		||||
	IsDeleted       bool       `protobuf:"varint,9,opt,name=isDeleted,proto3" json:"isDeleted,omitempty"`
 | 
			
		||||
	Version         int64      `protobuf:"varint,10,opt,name=version,proto3" json:"version,omitempty"`
 | 
			
		||||
	IsOn        bool       `protobuf:"varint,11,opt,name=isOn,proto3" json:"isOn,omitempty"`
 | 
			
		||||
	NsDomain    *NSDomain  `protobuf:"bytes,30,opt,name=nsDomain,proto3" json:"nsDomain,omitempty"`
 | 
			
		||||
	NsRoutes    []*NSRoute `protobuf:"bytes,31,rep,name=nsRoutes,proto3" json:"nsRoutes,omitempty"`
 | 
			
		||||
	IsOn            bool       `protobuf:"varint,11,opt,name=isOn,proto3" json:"isOn,omitempty"`                      // 是否启用
 | 
			
		||||
	HealthCheckJSON []byte     `protobuf:"bytes,18,opt,name=healthCheckJSON,proto3" json:"healthCheckJSON,omitempty"` // 健康检查配置
 | 
			
		||||
	IsUp            bool       `protobuf:"varint,19,opt,name=isUp,proto3" json:"isUp,omitempty"`                      // 是否在线(根据健康检查结果)
 | 
			
		||||
	NsDomain        *NSDomain  `protobuf:"bytes,30,opt,name=nsDomain,proto3" json:"nsDomain,omitempty"`               // 所属域名
 | 
			
		||||
	NsRoutes        []*NSRoute `protobuf:"bytes,31,rep,name=nsRoutes,proto3" json:"nsRoutes,omitempty"`               // 线路
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *NSRecord) Reset() {
 | 
			
		||||
@@ -203,6 +205,20 @@ func (x *NSRecord) GetIsOn() bool {
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *NSRecord) GetHealthCheckJSON() []byte {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.HealthCheckJSON
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *NSRecord) GetIsUp() bool {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.IsUp
 | 
			
		||||
	}
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *NSRecord) GetNsDomain() *NSDomain {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.NsDomain
 | 
			
		||||
@@ -225,7 +241,7 @@ var file_models_model_ns_record_proto_rawDesc = []byte{
 | 
			
		||||
	0x70, 0x62, 0x1a, 0x1c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
 | 
			
		||||
	0x5f, 0x6e, 0x73, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
 | 
			
		||||
	0x1a, 0x1b, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x6e,
 | 
			
		||||
	0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8d, 0x04,
 | 
			
		||||
	0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcb, 0x04,
 | 
			
		||||
	0x0a, 0x08, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64,
 | 
			
		||||
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65,
 | 
			
		||||
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
 | 
			
		||||
@@ -253,13 +269,17 @@ var file_models_model_ns_record_proto_rawDesc = []byte{
 | 
			
		||||
	0x08, 0x52, 0x09, 0x69, 0x73, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07,
 | 
			
		||||
	0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x76,
 | 
			
		||||
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x0b,
 | 
			
		||||
	0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x12, 0x28, 0x0a, 0x08, 0x6e, 0x73,
 | 
			
		||||
	0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70,
 | 
			
		||||
	0x62, 0x2e, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x08, 0x6e, 0x73, 0x44, 0x6f,
 | 
			
		||||
	0x6d, 0x61, 0x69, 0x6e, 0x12, 0x27, 0x0a, 0x08, 0x6e, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73,
 | 
			
		||||
	0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53, 0x52, 0x6f,
 | 
			
		||||
	0x75, 0x74, 0x65, 0x52, 0x08, 0x6e, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x42, 0x06, 0x5a,
 | 
			
		||||
	0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
	0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x68, 0x65,
 | 
			
		||||
	0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x12, 0x20,
 | 
			
		||||
	0x01, 0x28, 0x0c, 0x52, 0x0f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b,
 | 
			
		||||
	0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x55, 0x70, 0x18, 0x13, 0x20, 0x01,
 | 
			
		||||
	0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x55, 0x70, 0x12, 0x28, 0x0a, 0x08, 0x6e, 0x73, 0x44, 0x6f,
 | 
			
		||||
	0x6d, 0x61, 0x69, 0x6e, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e,
 | 
			
		||||
	0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x08, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61,
 | 
			
		||||
	0x69, 0x6e, 0x12, 0x27, 0x0a, 0x08, 0x6e, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x18, 0x1f,
 | 
			
		||||
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53, 0x52, 0x6f, 0x75, 0x74,
 | 
			
		||||
	0x65, 0x52, 0x08, 0x6e, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e,
 | 
			
		||||
	0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
 
 | 
			
		||||
@@ -1706,6 +1706,157 @@ func (x *VerifyNSDomainResponse) GetErrorMessage() string {
 | 
			
		||||
	return ""
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查询记录健康检查全局设置
 | 
			
		||||
type FindNSDomainRecordsHealthCheckRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	NsDomainId int64 `protobuf:"varint,1,opt,name=nsDomainId,proto3" json:"nsDomainId,omitempty"` // 域名ID
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindNSDomainRecordsHealthCheckRequest) Reset() {
 | 
			
		||||
	*x = FindNSDomainRecordsHealthCheckRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_ns_domain_proto_msgTypes[30]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindNSDomainRecordsHealthCheckRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindNSDomainRecordsHealthCheckRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindNSDomainRecordsHealthCheckRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_ns_domain_proto_msgTypes[30]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindNSDomainRecordsHealthCheckRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindNSDomainRecordsHealthCheckRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_ns_domain_proto_rawDescGZIP(), []int{30}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindNSDomainRecordsHealthCheckRequest) GetNsDomainId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.NsDomainId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type FindNSDomainRecordsHealthCheckResponse struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	NsDomainRecordsHealthCheckJSON []byte `protobuf:"bytes,1,opt,name=nsDomainRecordsHealthCheckJSON,proto3" json:"nsDomainRecordsHealthCheckJSON,omitempty"` // 健康检查设置
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindNSDomainRecordsHealthCheckResponse) Reset() {
 | 
			
		||||
	*x = FindNSDomainRecordsHealthCheckResponse{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_ns_domain_proto_msgTypes[31]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindNSDomainRecordsHealthCheckResponse) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindNSDomainRecordsHealthCheckResponse) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindNSDomainRecordsHealthCheckResponse) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_ns_domain_proto_msgTypes[31]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindNSDomainRecordsHealthCheckResponse.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindNSDomainRecordsHealthCheckResponse) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_ns_domain_proto_rawDescGZIP(), []int{31}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindNSDomainRecordsHealthCheckResponse) GetNsDomainRecordsHealthCheckJSON() []byte {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.NsDomainRecordsHealthCheckJSON
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 修改记录健康检查全局设置
 | 
			
		||||
type UpdateNSDomainRecordsHealthCheckRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	NsDomainId                     int64  `protobuf:"varint,1,opt,name=nsDomainId,proto3" json:"nsDomainId,omitempty"`                                        // 域名ID
 | 
			
		||||
	NsDomainRecordsHealthCheckJSON []byte `protobuf:"bytes,2,opt,name=nsDomainRecordsHealthCheckJSON,proto3" json:"nsDomainRecordsHealthCheckJSON,omitempty"` // 健康检查设置
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateNSDomainRecordsHealthCheckRequest) Reset() {
 | 
			
		||||
	*x = UpdateNSDomainRecordsHealthCheckRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_ns_domain_proto_msgTypes[32]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateNSDomainRecordsHealthCheckRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*UpdateNSDomainRecordsHealthCheckRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateNSDomainRecordsHealthCheckRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_ns_domain_proto_msgTypes[32]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use UpdateNSDomainRecordsHealthCheckRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*UpdateNSDomainRecordsHealthCheckRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_ns_domain_proto_rawDescGZIP(), []int{32}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateNSDomainRecordsHealthCheckRequest) GetNsDomainId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.NsDomainId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateNSDomainRecordsHealthCheckRequest) GetNsDomainRecordsHealthCheckJSON() []byte {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.NsDomainRecordsHealthCheckJSON
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var File_service_ns_domain_proto protoreflect.FileDescriptor
 | 
			
		||||
 | 
			
		||||
var file_service_ns_domain_proto_rawDesc = []byte{
 | 
			
		||||
@@ -1883,99 +2034,133 @@ var file_service_ns_domain_proto_rawDesc = []byte{
 | 
			
		||||
	0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
 | 
			
		||||
	0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x72,
 | 
			
		||||
	0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
 | 
			
		||||
	0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0xa6,
 | 
			
		||||
	0x0b, 0x0a, 0x0f, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69,
 | 
			
		||||
	0x63, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f,
 | 
			
		||||
	0x6d, 0x61, 0x69, 0x6e, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
 | 
			
		||||
	0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
 | 
			
		||||
	0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d,
 | 
			
		||||
	0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x63,
 | 
			
		||||
	0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x1a,
 | 
			
		||||
	0x52, 0x0c, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x47,
 | 
			
		||||
	0x0a, 0x25, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65,
 | 
			
		||||
	0x63, 0x6f, 0x72, 0x64, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b,
 | 
			
		||||
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x73, 0x44, 0x6f, 0x6d,
 | 
			
		||||
	0x61, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x73, 0x44,
 | 
			
		||||
	0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x22, 0x70, 0x0a, 0x26, 0x46, 0x69, 0x6e, 0x64, 0x4e,
 | 
			
		||||
	0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x48, 0x65,
 | 
			
		||||
	0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
 | 
			
		||||
	0x65, 0x12, 0x46, 0x0a, 0x1e, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x63,
 | 
			
		||||
	0x6f, 0x72, 0x64, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a,
 | 
			
		||||
	0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1e, 0x6e, 0x73, 0x44, 0x6f, 0x6d,
 | 
			
		||||
	0x61, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68,
 | 
			
		||||
	0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x91, 0x01, 0x0a, 0x27, 0x55, 0x70,
 | 
			
		||||
	0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f,
 | 
			
		||||
	0x72, 0x64, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65,
 | 
			
		||||
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69,
 | 
			
		||||
	0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x73, 0x44, 0x6f, 0x6d,
 | 
			
		||||
	0x61, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x46, 0x0a, 0x1e, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69,
 | 
			
		||||
	0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68,
 | 
			
		||||
	0x65, 0x63, 0x6b, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x1e, 0x6e,
 | 
			
		||||
	0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x48, 0x65,
 | 
			
		||||
	0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x53, 0x4f, 0x4e, 0x32, 0x80, 0x0d,
 | 
			
		||||
	0x0a, 0x0f, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
 | 
			
		||||
	0x65, 0x12, 0x47, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d,
 | 
			
		||||
	0x61, 0x69, 0x6e, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e,
 | 
			
		||||
	0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a,
 | 
			
		||||
	0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61,
 | 
			
		||||
	0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x2e,
 | 
			
		||||
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52,
 | 
			
		||||
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74,
 | 
			
		||||
	0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x55,
 | 
			
		||||
	0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71,
 | 
			
		||||
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63,
 | 
			
		||||
	0x63, 0x65, 0x73, 0x73, 0x12, 0x47, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53,
 | 
			
		||||
	0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x2e, 0x70,
 | 
			
		||||
	0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
 | 
			
		||||
	0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e,
 | 
			
		||||
	0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3b, 0x0a,
 | 
			
		||||
	0x0e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12,
 | 
			
		||||
	0x19, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d,
 | 
			
		||||
	0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e,
 | 
			
		||||
	0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x64, 0x65,
 | 
			
		||||
	0x6c, 0x65, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x1a, 0x2e,
 | 
			
		||||
	0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69,
 | 
			
		||||
	0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52,
 | 
			
		||||
	0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x66, 0x69, 0x6e,
 | 
			
		||||
	0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x46,
 | 
			
		||||
	0x69, 0x6e, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x44, 0x6f,
 | 
			
		||||
	0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14,
 | 
			
		||||
	0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x57, 0x69, 0x74, 0x68,
 | 
			
		||||
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53,
 | 
			
		||||
	0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x63, 0x72,
 | 
			
		||||
	0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x1a, 0x2e,
 | 
			
		||||
	0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69,
 | 
			
		||||
	0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x43,
 | 
			
		||||
	0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65,
 | 
			
		||||
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
 | 
			
		||||
	0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70,
 | 
			
		||||
	0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75,
 | 
			
		||||
	0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63,
 | 
			
		||||
	0x65, 0x73, 0x73, 0x12, 0x47, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44,
 | 
			
		||||
	0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62,
 | 
			
		||||
	0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x53,
 | 
			
		||||
	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70,
 | 
			
		||||
	0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3b, 0x0a, 0x0e,
 | 
			
		||||
	0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x19,
 | 
			
		||||
	0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61,
 | 
			
		||||
	0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52,
 | 
			
		||||
	0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x64, 0x65, 0x6c,
 | 
			
		||||
	0x65, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x1a, 0x2e, 0x70,
 | 
			
		||||
	0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
 | 
			
		||||
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50,
 | 
			
		||||
	0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x66, 0x69, 0x6e, 0x64,
 | 
			
		||||
	0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69,
 | 
			
		||||
	0x6e, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
 | 
			
		||||
	0x74, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d,
 | 
			
		||||
	0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x66,
 | 
			
		||||
	0x69, 0x6e, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x4e,
 | 
			
		||||
	0x61, 0x6d, 0x65, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x44,
 | 
			
		||||
	0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71,
 | 
			
		||||
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53,
 | 
			
		||||
	0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65,
 | 
			
		||||
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e,
 | 
			
		||||
	0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x52,
 | 
			
		||||
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x1d, 0x66, 0x69, 0x6e, 0x64, 0x56,
 | 
			
		||||
	0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4f,
 | 
			
		||||
	0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69,
 | 
			
		||||
	0x6e, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61,
 | 
			
		||||
	0x69, 0x6e, 0x4f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x1a, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x69,
 | 
			
		||||
	0x66, 0x69, 0x65, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4f, 0x6e, 0x43, 0x6c,
 | 
			
		||||
	0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a,
 | 
			
		||||
	0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69,
 | 
			
		||||
	0x6e, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c,
 | 
			
		||||
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x1d, 0x66, 0x69, 0x6e, 0x64, 0x56, 0x65,
 | 
			
		||||
	0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4f, 0x6e,
 | 
			
		||||
	0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e,
 | 
			
		||||
	0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69,
 | 
			
		||||
	0x6e, 0x4f, 0x6e, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
 | 
			
		||||
	0x74, 0x1a, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66,
 | 
			
		||||
	0x69, 0x65, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4f, 0x6e, 0x43, 0x6c, 0x75,
 | 
			
		||||
	0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x11,
 | 
			
		||||
	0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
 | 
			
		||||
	0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e,
 | 
			
		||||
	0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
 | 
			
		||||
	0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73,
 | 
			
		||||
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x44,
 | 
			
		||||
	0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74,
 | 
			
		||||
	0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
 | 
			
		||||
	0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65,
 | 
			
		||||
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x4e, 0x53,
 | 
			
		||||
	0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73,
 | 
			
		||||
	0x74, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
 | 
			
		||||
	0x74, 0x1a, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x44, 0x6f, 0x6d,
 | 
			
		||||
	0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x19,
 | 
			
		||||
	0x6c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x41, 0x66, 0x74,
 | 
			
		||||
	0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x4c,
 | 
			
		||||
	0x1a, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61,
 | 
			
		||||
	0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x6c,
 | 
			
		||||
	0x69, 0x73, 0x74, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x41, 0x66, 0x74, 0x65,
 | 
			
		||||
	0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
 | 
			
		||||
	0x25, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69,
 | 
			
		||||
	0x6e, 0x73, 0x41, 0x66, 0x74, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65,
 | 
			
		||||
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53,
 | 
			
		||||
	0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x53, 0x49, 0x47, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e,
 | 
			
		||||
	0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x53, 0x49, 0x47,
 | 
			
		||||
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e,
 | 
			
		||||
	0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x53, 0x49, 0x47, 0x52, 0x65, 0x73,
 | 
			
		||||
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e,
 | 
			
		||||
	0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x53, 0x49, 0x47, 0x12, 0x1d, 0x2e, 0x70, 0x62,
 | 
			
		||||
	0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x54,
 | 
			
		||||
	0x53, 0x49, 0x47, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e,
 | 
			
		||||
	0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x47, 0x0a, 0x0e, 0x65, 0x78,
 | 
			
		||||
	0x69, 0x73, 0x74, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x19, 0x2e, 0x70,
 | 
			
		||||
	0x62, 0x2e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73,
 | 
			
		||||
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x69,
 | 
			
		||||
	0x73, 0x74, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
 | 
			
		||||
	0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x65, 0x78, 0x69, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69,
 | 
			
		||||
	0x66, 0x69, 0x65, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x21, 0x2e,
 | 
			
		||||
	0x70, 0x62, 0x2e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64,
 | 
			
		||||
	0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
 | 
			
		||||
	0x1a, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66,
 | 
			
		||||
	0x69, 0x65, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70,
 | 
			
		||||
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x44, 0x6f,
 | 
			
		||||
	0x6d, 0x61, 0x69, 0x6e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66,
 | 
			
		||||
	0x6f, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d,
 | 
			
		||||
	0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69,
 | 
			
		||||
	0x73, 0x74, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x41, 0x66, 0x74, 0x65, 0x72,
 | 
			
		||||
	0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25,
 | 
			
		||||
	0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
 | 
			
		||||
	0x73, 0x41, 0x66, 0x74, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
 | 
			
		||||
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x44,
 | 
			
		||||
	0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x53, 0x49, 0x47, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x46,
 | 
			
		||||
	0x69, 0x6e, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x53, 0x49, 0x47, 0x52,
 | 
			
		||||
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64,
 | 
			
		||||
	0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x53, 0x49, 0x47, 0x52, 0x65, 0x73, 0x70,
 | 
			
		||||
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53,
 | 
			
		||||
	0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x53, 0x49, 0x47, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e,
 | 
			
		||||
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x54, 0x53,
 | 
			
		||||
	0x49, 0x47, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52,
 | 
			
		||||
	0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x47, 0x0a, 0x0e, 0x65, 0x78, 0x69,
 | 
			
		||||
	0x73, 0x74, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x19, 0x2e, 0x70, 0x62,
 | 
			
		||||
	0x2e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52,
 | 
			
		||||
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x69, 0x73,
 | 
			
		||||
	0x74, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
 | 
			
		||||
	0x73, 0x65, 0x12, 0x5f, 0x0a, 0x16, 0x65, 0x78, 0x69, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66,
 | 
			
		||||
	0x69, 0x65, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x21, 0x2e, 0x70,
 | 
			
		||||
	0x62, 0x2e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x4e,
 | 
			
		||||
	0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
 | 
			
		||||
	0x22, 0x2e, 0x70, 0x62, 0x2e, 0x45, 0x78, 0x69, 0x73, 0x74, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69,
 | 
			
		||||
	0x65, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
 | 
			
		||||
	0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d,
 | 
			
		||||
	0x61, 0x69, 0x6e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f,
 | 
			
		||||
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e,
 | 
			
		||||
	0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x69,
 | 
			
		||||
	0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47,
 | 
			
		||||
	0x0a, 0x0e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
 | 
			
		||||
	0x12, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4e, 0x53, 0x44, 0x6f,
 | 
			
		||||
	0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x62,
 | 
			
		||||
	0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52,
 | 
			
		||||
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62,
 | 
			
		||||
	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
	0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61,
 | 
			
		||||
	0x69, 0x6e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52,
 | 
			
		||||
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64,
 | 
			
		||||
	0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x69, 0x6e,
 | 
			
		||||
	0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a,
 | 
			
		||||
	0x0e, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12,
 | 
			
		||||
	0x19, 0x2e, 0x70, 0x62, 0x2e, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4e, 0x53, 0x44, 0x6f, 0x6d,
 | 
			
		||||
	0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x2e,
 | 
			
		||||
	0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65,
 | 
			
		||||
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x77, 0x0a, 0x1e, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53,
 | 
			
		||||
	0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x48, 0x65, 0x61,
 | 
			
		||||
	0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69,
 | 
			
		||||
	0x6e, 0x64, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
 | 
			
		||||
	0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75,
 | 
			
		||||
	0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x44,
 | 
			
		||||
	0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x48, 0x65, 0x61, 0x6c,
 | 
			
		||||
	0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
 | 
			
		||||
	0x5f, 0x0a, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69,
 | 
			
		||||
	0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68,
 | 
			
		||||
	0x65, 0x63, 0x6b, 0x12, 0x2b, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e,
 | 
			
		||||
	0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x48, 0x65,
 | 
			
		||||
	0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
 | 
			
		||||
	0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73,
 | 
			
		||||
	0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
@@ -1990,7 +2175,7 @@ func file_service_ns_domain_proto_rawDescGZIP() []byte {
 | 
			
		||||
	return file_service_ns_domain_proto_rawDescData
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var file_service_ns_domain_proto_msgTypes = make([]protoimpl.MessageInfo, 30)
 | 
			
		||||
var file_service_ns_domain_proto_msgTypes = make([]protoimpl.MessageInfo, 33)
 | 
			
		||||
var file_service_ns_domain_proto_goTypes = []interface{}{
 | 
			
		||||
	(*CreateNSDomainRequest)(nil),                   // 0: pb.CreateNSDomainRequest
 | 
			
		||||
	(*CreateNSDomainResponse)(nil),                  // 1: pb.CreateNSDomainResponse
 | 
			
		||||
@@ -2022,16 +2207,19 @@ var file_service_ns_domain_proto_goTypes = []interface{}{
 | 
			
		||||
	(*FindNSDomainVerifyingInfoResponse)(nil),       // 27: pb.FindNSDomainVerifyingInfoResponse
 | 
			
		||||
	(*VerifyNSDomainRequest)(nil),                   // 28: pb.VerifyNSDomainRequest
 | 
			
		||||
	(*VerifyNSDomainResponse)(nil),                  // 29: pb.VerifyNSDomainResponse
 | 
			
		||||
	(*NSDomain)(nil),                              // 30: pb.NSDomain
 | 
			
		||||
	(*RPCSuccess)(nil),                            // 31: pb.RPCSuccess
 | 
			
		||||
	(*RPCCountResponse)(nil),                      // 32: pb.RPCCountResponse
 | 
			
		||||
	(*FindNSDomainRecordsHealthCheckRequest)(nil),   // 30: pb.FindNSDomainRecordsHealthCheckRequest
 | 
			
		||||
	(*FindNSDomainRecordsHealthCheckResponse)(nil),  // 31: pb.FindNSDomainRecordsHealthCheckResponse
 | 
			
		||||
	(*UpdateNSDomainRecordsHealthCheckRequest)(nil), // 32: pb.UpdateNSDomainRecordsHealthCheckRequest
 | 
			
		||||
	(*NSDomain)(nil),                                // 33: pb.NSDomain
 | 
			
		||||
	(*RPCSuccess)(nil),                              // 34: pb.RPCSuccess
 | 
			
		||||
	(*RPCCountResponse)(nil),                        // 35: pb.RPCCountResponse
 | 
			
		||||
}
 | 
			
		||||
var file_service_ns_domain_proto_depIdxs = []int32{
 | 
			
		||||
	30, // 0: pb.FindNSDomainResponse.nsDomain:type_name -> pb.NSDomain
 | 
			
		||||
	30, // 1: pb.FindNSDomainWithNameResponse.nsDomain:type_name -> pb.NSDomain
 | 
			
		||||
	30, // 2: pb.FindVerifiedNSDomainOnClusterResponse.nsDomain:type_name -> pb.NSDomain
 | 
			
		||||
	30, // 3: pb.ListNSDomainsResponse.nsDomains:type_name -> pb.NSDomain
 | 
			
		||||
	30, // 4: pb.ListNSDomainsAfterVersionResponse.nsDomains:type_name -> pb.NSDomain
 | 
			
		||||
	33, // 0: pb.FindNSDomainResponse.nsDomain:type_name -> pb.NSDomain
 | 
			
		||||
	33, // 1: pb.FindNSDomainWithNameResponse.nsDomain:type_name -> pb.NSDomain
 | 
			
		||||
	33, // 2: pb.FindVerifiedNSDomainOnClusterResponse.nsDomain:type_name -> pb.NSDomain
 | 
			
		||||
	33, // 3: pb.ListNSDomainsResponse.nsDomains:type_name -> pb.NSDomain
 | 
			
		||||
	33, // 4: pb.ListNSDomainsAfterVersionResponse.nsDomains:type_name -> pb.NSDomain
 | 
			
		||||
	0,  // 5: pb.NSDomainService.createNSDomain:input_type -> pb.CreateNSDomainRequest
 | 
			
		||||
	2,  // 6: pb.NSDomainService.createNSDomains:input_type -> pb.CreateNSDomainsRequest
 | 
			
		||||
	4,  // 7: pb.NSDomainService.updateNSDomain:input_type -> pb.UpdateNSDomainRequest
 | 
			
		||||
@@ -2050,26 +2238,30 @@ var file_service_ns_domain_proto_depIdxs = []int32{
 | 
			
		||||
	24, // 20: pb.NSDomainService.existVerifiedNSDomains:input_type -> pb.ExistVerifiedNSDomainsRequest
 | 
			
		||||
	26, // 21: pb.NSDomainService.findNSDomainVerifyingInfo:input_type -> pb.FindNSDomainVerifyingInfoRequest
 | 
			
		||||
	28, // 22: pb.NSDomainService.verifyNSDomain:input_type -> pb.VerifyNSDomainRequest
 | 
			
		||||
	1,  // 23: pb.NSDomainService.createNSDomain:output_type -> pb.CreateNSDomainResponse
 | 
			
		||||
	3,  // 24: pb.NSDomainService.createNSDomains:output_type -> pb.CreateNSDomainsResponse
 | 
			
		||||
	31, // 25: pb.NSDomainService.updateNSDomain:output_type -> pb.RPCSuccess
 | 
			
		||||
	31, // 26: pb.NSDomainService.updateNSDomainStatus:output_type -> pb.RPCSuccess
 | 
			
		||||
	31, // 27: pb.NSDomainService.deleteNSDomain:output_type -> pb.RPCSuccess
 | 
			
		||||
	31, // 28: pb.NSDomainService.deleteNSDomains:output_type -> pb.RPCSuccess
 | 
			
		||||
	9,  // 29: pb.NSDomainService.findNSDomain:output_type -> pb.FindNSDomainResponse
 | 
			
		||||
	11, // 30: pb.NSDomainService.findNSDomainWithName:output_type -> pb.FindNSDomainWithNameResponse
 | 
			
		||||
	13, // 31: pb.NSDomainService.findVerifiedNSDomainOnCluster:output_type -> pb.FindVerifiedNSDomainOnClusterResponse
 | 
			
		||||
	32, // 32: pb.NSDomainService.countAllNSDomains:output_type -> pb.RPCCountResponse
 | 
			
		||||
	16, // 33: pb.NSDomainService.listNSDomains:output_type -> pb.ListNSDomainsResponse
 | 
			
		||||
	18, // 34: pb.NSDomainService.listNSDomainsAfterVersion:output_type -> pb.ListNSDomainsAfterVersionResponse
 | 
			
		||||
	20, // 35: pb.NSDomainService.findNSDomainTSIG:output_type -> pb.FindNSDomainTSIGResponse
 | 
			
		||||
	31, // 36: pb.NSDomainService.updateNSDomainTSIG:output_type -> pb.RPCSuccess
 | 
			
		||||
	23, // 37: pb.NSDomainService.existNSDomains:output_type -> pb.ExistNSDomainsResponse
 | 
			
		||||
	25, // 38: pb.NSDomainService.existVerifiedNSDomains:output_type -> pb.ExistVerifiedNSDomainsResponse
 | 
			
		||||
	27, // 39: pb.NSDomainService.findNSDomainVerifyingInfo:output_type -> pb.FindNSDomainVerifyingInfoResponse
 | 
			
		||||
	29, // 40: pb.NSDomainService.verifyNSDomain:output_type -> pb.VerifyNSDomainResponse
 | 
			
		||||
	23, // [23:41] is the sub-list for method output_type
 | 
			
		||||
	5,  // [5:23] is the sub-list for method input_type
 | 
			
		||||
	30, // 23: pb.NSDomainService.findNSDomainRecordsHealthCheck:input_type -> pb.FindNSDomainRecordsHealthCheckRequest
 | 
			
		||||
	32, // 24: pb.NSDomainService.updateNSDomainRecordsHealthCheck:input_type -> pb.UpdateNSDomainRecordsHealthCheckRequest
 | 
			
		||||
	1,  // 25: pb.NSDomainService.createNSDomain:output_type -> pb.CreateNSDomainResponse
 | 
			
		||||
	3,  // 26: pb.NSDomainService.createNSDomains:output_type -> pb.CreateNSDomainsResponse
 | 
			
		||||
	34, // 27: pb.NSDomainService.updateNSDomain:output_type -> pb.RPCSuccess
 | 
			
		||||
	34, // 28: pb.NSDomainService.updateNSDomainStatus:output_type -> pb.RPCSuccess
 | 
			
		||||
	34, // 29: pb.NSDomainService.deleteNSDomain:output_type -> pb.RPCSuccess
 | 
			
		||||
	34, // 30: pb.NSDomainService.deleteNSDomains:output_type -> pb.RPCSuccess
 | 
			
		||||
	9,  // 31: pb.NSDomainService.findNSDomain:output_type -> pb.FindNSDomainResponse
 | 
			
		||||
	11, // 32: pb.NSDomainService.findNSDomainWithName:output_type -> pb.FindNSDomainWithNameResponse
 | 
			
		||||
	13, // 33: pb.NSDomainService.findVerifiedNSDomainOnCluster:output_type -> pb.FindVerifiedNSDomainOnClusterResponse
 | 
			
		||||
	35, // 34: pb.NSDomainService.countAllNSDomains:output_type -> pb.RPCCountResponse
 | 
			
		||||
	16, // 35: pb.NSDomainService.listNSDomains:output_type -> pb.ListNSDomainsResponse
 | 
			
		||||
	18, // 36: pb.NSDomainService.listNSDomainsAfterVersion:output_type -> pb.ListNSDomainsAfterVersionResponse
 | 
			
		||||
	20, // 37: pb.NSDomainService.findNSDomainTSIG:output_type -> pb.FindNSDomainTSIGResponse
 | 
			
		||||
	34, // 38: pb.NSDomainService.updateNSDomainTSIG:output_type -> pb.RPCSuccess
 | 
			
		||||
	23, // 39: pb.NSDomainService.existNSDomains:output_type -> pb.ExistNSDomainsResponse
 | 
			
		||||
	25, // 40: pb.NSDomainService.existVerifiedNSDomains:output_type -> pb.ExistVerifiedNSDomainsResponse
 | 
			
		||||
	27, // 41: pb.NSDomainService.findNSDomainVerifyingInfo:output_type -> pb.FindNSDomainVerifyingInfoResponse
 | 
			
		||||
	29, // 42: pb.NSDomainService.verifyNSDomain:output_type -> pb.VerifyNSDomainResponse
 | 
			
		||||
	31, // 43: pb.NSDomainService.findNSDomainRecordsHealthCheck:output_type -> pb.FindNSDomainRecordsHealthCheckResponse
 | 
			
		||||
	34, // 44: pb.NSDomainService.updateNSDomainRecordsHealthCheck:output_type -> pb.RPCSuccess
 | 
			
		||||
	25, // [25:45] is the sub-list for method output_type
 | 
			
		||||
	5,  // [5:25] is the sub-list for method input_type
 | 
			
		||||
	5,  // [5:5] is the sub-list for extension type_name
 | 
			
		||||
	5,  // [5:5] is the sub-list for extension extendee
 | 
			
		||||
	0,  // [0:5] is the sub-list for field type_name
 | 
			
		||||
@@ -2443,6 +2635,42 @@ func file_service_ns_domain_proto_init() {
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_ns_domain_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindNSDomainRecordsHealthCheckRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_ns_domain_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindNSDomainRecordsHealthCheckResponse); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_ns_domain_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*UpdateNSDomainRecordsHealthCheckRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	type x struct{}
 | 
			
		||||
	out := protoimpl.TypeBuilder{
 | 
			
		||||
@@ -2450,7 +2678,7 @@ func file_service_ns_domain_proto_init() {
 | 
			
		||||
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 | 
			
		||||
			RawDescriptor: file_service_ns_domain_proto_rawDesc,
 | 
			
		||||
			NumEnums:      0,
 | 
			
		||||
			NumMessages:   30,
 | 
			
		||||
			NumMessages:   33,
 | 
			
		||||
			NumExtensions: 0,
 | 
			
		||||
			NumServices:   1,
 | 
			
		||||
		},
 | 
			
		||||
@@ -2512,6 +2740,10 @@ type NSDomainServiceClient interface {
 | 
			
		||||
	FindNSDomainVerifyingInfo(ctx context.Context, in *FindNSDomainVerifyingInfoRequest, opts ...grpc.CallOption) (*FindNSDomainVerifyingInfoResponse, error)
 | 
			
		||||
	// 验证域名信息
 | 
			
		||||
	VerifyNSDomain(ctx context.Context, in *VerifyNSDomainRequest, opts ...grpc.CallOption) (*VerifyNSDomainResponse, error)
 | 
			
		||||
	// 查询记录健康检查全局设置
 | 
			
		||||
	FindNSDomainRecordsHealthCheck(ctx context.Context, in *FindNSDomainRecordsHealthCheckRequest, opts ...grpc.CallOption) (*FindNSDomainRecordsHealthCheckResponse, error)
 | 
			
		||||
	// 修改记录健康检查全局设置
 | 
			
		||||
	UpdateNSDomainRecordsHealthCheck(ctx context.Context, in *UpdateNSDomainRecordsHealthCheckRequest, opts ...grpc.CallOption) (*RPCSuccess, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type nSDomainServiceClient struct {
 | 
			
		||||
@@ -2684,6 +2916,24 @@ func (c *nSDomainServiceClient) VerifyNSDomain(ctx context.Context, in *VerifyNS
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *nSDomainServiceClient) FindNSDomainRecordsHealthCheck(ctx context.Context, in *FindNSDomainRecordsHealthCheckRequest, opts ...grpc.CallOption) (*FindNSDomainRecordsHealthCheckResponse, error) {
 | 
			
		||||
	out := new(FindNSDomainRecordsHealthCheckResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.NSDomainService/findNSDomainRecordsHealthCheck", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *nSDomainServiceClient) UpdateNSDomainRecordsHealthCheck(ctx context.Context, in *UpdateNSDomainRecordsHealthCheckRequest, opts ...grpc.CallOption) (*RPCSuccess, error) {
 | 
			
		||||
	out := new(RPCSuccess)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.NSDomainService/updateNSDomainRecordsHealthCheck", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NSDomainServiceServer is the server API for NSDomainService service.
 | 
			
		||||
type NSDomainServiceServer interface {
 | 
			
		||||
	// 创建单个域名
 | 
			
		||||
@@ -2722,6 +2972,10 @@ type NSDomainServiceServer interface {
 | 
			
		||||
	FindNSDomainVerifyingInfo(context.Context, *FindNSDomainVerifyingInfoRequest) (*FindNSDomainVerifyingInfoResponse, error)
 | 
			
		||||
	// 验证域名信息
 | 
			
		||||
	VerifyNSDomain(context.Context, *VerifyNSDomainRequest) (*VerifyNSDomainResponse, error)
 | 
			
		||||
	// 查询记录健康检查全局设置
 | 
			
		||||
	FindNSDomainRecordsHealthCheck(context.Context, *FindNSDomainRecordsHealthCheckRequest) (*FindNSDomainRecordsHealthCheckResponse, error)
 | 
			
		||||
	// 修改记录健康检查全局设置
 | 
			
		||||
	UpdateNSDomainRecordsHealthCheck(context.Context, *UpdateNSDomainRecordsHealthCheckRequest) (*RPCSuccess, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// UnimplementedNSDomainServiceServer can be embedded to have forward compatible implementations.
 | 
			
		||||
@@ -2782,6 +3036,12 @@ func (*UnimplementedNSDomainServiceServer) FindNSDomainVerifyingInfo(context.Con
 | 
			
		||||
func (*UnimplementedNSDomainServiceServer) VerifyNSDomain(context.Context, *VerifyNSDomainRequest) (*VerifyNSDomainResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method VerifyNSDomain not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedNSDomainServiceServer) FindNSDomainRecordsHealthCheck(context.Context, *FindNSDomainRecordsHealthCheckRequest) (*FindNSDomainRecordsHealthCheckResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method FindNSDomainRecordsHealthCheck not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedNSDomainServiceServer) UpdateNSDomainRecordsHealthCheck(context.Context, *UpdateNSDomainRecordsHealthCheckRequest) (*RPCSuccess, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method UpdateNSDomainRecordsHealthCheck not implemented")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func RegisterNSDomainServiceServer(s *grpc.Server, srv NSDomainServiceServer) {
 | 
			
		||||
	s.RegisterService(&_NSDomainService_serviceDesc, srv)
 | 
			
		||||
@@ -3111,6 +3371,42 @@ func _NSDomainService_VerifyNSDomain_Handler(srv interface{}, ctx context.Contex
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _NSDomainService_FindNSDomainRecordsHealthCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(FindNSDomainRecordsHealthCheckRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(NSDomainServiceServer).FindNSDomainRecordsHealthCheck(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.NSDomainService/FindNSDomainRecordsHealthCheck",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(NSDomainServiceServer).FindNSDomainRecordsHealthCheck(ctx, req.(*FindNSDomainRecordsHealthCheckRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _NSDomainService_UpdateNSDomainRecordsHealthCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(UpdateNSDomainRecordsHealthCheckRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(NSDomainServiceServer).UpdateNSDomainRecordsHealthCheck(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.NSDomainService/UpdateNSDomainRecordsHealthCheck",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(NSDomainServiceServer).UpdateNSDomainRecordsHealthCheck(ctx, req.(*UpdateNSDomainRecordsHealthCheckRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _NSDomainService_serviceDesc = grpc.ServiceDesc{
 | 
			
		||||
	ServiceName: "pb.NSDomainService",
 | 
			
		||||
	HandlerType: (*NSDomainServiceServer)(nil),
 | 
			
		||||
@@ -3187,6 +3483,14 @@ var _NSDomainService_serviceDesc = grpc.ServiceDesc{
 | 
			
		||||
			MethodName: "verifyNSDomain",
 | 
			
		||||
			Handler:    _NSDomainService_VerifyNSDomain_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "findNSDomainRecordsHealthCheck",
 | 
			
		||||
			Handler:    _NSDomainService_FindNSDomainRecordsHealthCheck_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "updateNSDomainRecordsHealthCheck",
 | 
			
		||||
			Handler:    _NSDomainService_UpdateNSDomainRecordsHealthCheck_Handler,
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	Streams:  []grpc.StreamDesc{},
 | 
			
		||||
	Metadata: "service_ns_domain.proto",
 | 
			
		||||
 
 | 
			
		||||
@@ -1259,6 +1259,8 @@ type ListNSRecordsRequest struct {
 | 
			
		||||
	TypeDesc    bool   `protobuf:"varint,11,opt,name=typeDesc,proto3" json:"typeDesc,omitempty"`
 | 
			
		||||
	TtlAsc      bool   `protobuf:"varint,12,opt,name=ttlAsc,proto3" json:"ttlAsc,omitempty"`
 | 
			
		||||
	TtlDesc     bool   `protobuf:"varint,13,opt,name=ttlDesc,proto3" json:"ttlDesc,omitempty"`
 | 
			
		||||
	UpAsc       bool   `protobuf:"varint,14,opt,name=upAsc,proto3" json:"upAsc,omitempty"`
 | 
			
		||||
	UpDesc      bool   `protobuf:"varint,15,opt,name=upDesc,proto3" json:"upDesc,omitempty"`
 | 
			
		||||
	Offset      int64  `protobuf:"varint,5,opt,name=offset,proto3" json:"offset,omitempty"`
 | 
			
		||||
	Size        int64  `protobuf:"varint,6,opt,name=size,proto3" json:"size,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
@@ -1373,6 +1375,20 @@ func (x *ListNSRecordsRequest) GetTtlDesc() bool {
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *ListNSRecordsRequest) GetUpAsc() bool {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.UpAsc
 | 
			
		||||
	}
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *ListNSRecordsRequest) GetUpDesc() bool {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.UpDesc
 | 
			
		||||
	}
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *ListNSRecordsRequest) GetOffset() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.Offset
 | 
			
		||||
@@ -1854,6 +1870,213 @@ func (x *ListNSRecordsAfterVersionResponse) GetNsRecords() []*NSRecord {
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查询记录健康检查设置
 | 
			
		||||
type FindNSRecordHealthCheckRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	NsRecordId int64 `protobuf:"varint,1,opt,name=nsRecordId,proto3" json:"nsRecordId,omitempty"` // 记录ID
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindNSRecordHealthCheckRequest) Reset() {
 | 
			
		||||
	*x = FindNSRecordHealthCheckRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_ns_record_proto_msgTypes[23]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindNSRecordHealthCheckRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindNSRecordHealthCheckRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindNSRecordHealthCheckRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_ns_record_proto_msgTypes[23]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindNSRecordHealthCheckRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindNSRecordHealthCheckRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_ns_record_proto_rawDescGZIP(), []int{23}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindNSRecordHealthCheckRequest) GetNsRecordId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.NsRecordId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type FindNSRecordHealthCheckResponse struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	NsRecordHealthCheckJSON []byte `protobuf:"bytes,1,opt,name=nsRecordHealthCheckJSON,proto3" json:"nsRecordHealthCheckJSON,omitempty"` // 记录健康检查配置
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindNSRecordHealthCheckResponse) Reset() {
 | 
			
		||||
	*x = FindNSRecordHealthCheckResponse{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_ns_record_proto_msgTypes[24]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindNSRecordHealthCheckResponse) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*FindNSRecordHealthCheckResponse) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *FindNSRecordHealthCheckResponse) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_ns_record_proto_msgTypes[24]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use FindNSRecordHealthCheckResponse.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*FindNSRecordHealthCheckResponse) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_ns_record_proto_rawDescGZIP(), []int{24}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *FindNSRecordHealthCheckResponse) GetNsRecordHealthCheckJSON() []byte {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.NsRecordHealthCheckJSON
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 修改记录健康检查设置
 | 
			
		||||
type UpdateNSRecordHealthCheckRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	NsRecordId              int64  `protobuf:"varint,1,opt,name=nsRecordId,proto3" json:"nsRecordId,omitempty"`                          // 记录ID
 | 
			
		||||
	NsRecordHealthCheckJSON []byte `protobuf:"bytes,2,opt,name=nsRecordHealthCheckJSON,proto3" json:"nsRecordHealthCheckJSON,omitempty"` // 记录健康检查配置
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateNSRecordHealthCheckRequest) Reset() {
 | 
			
		||||
	*x = UpdateNSRecordHealthCheckRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_ns_record_proto_msgTypes[25]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateNSRecordHealthCheckRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*UpdateNSRecordHealthCheckRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateNSRecordHealthCheckRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_ns_record_proto_msgTypes[25]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use UpdateNSRecordHealthCheckRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*UpdateNSRecordHealthCheckRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_ns_record_proto_rawDescGZIP(), []int{25}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateNSRecordHealthCheckRequest) GetNsRecordId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.NsRecordId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateNSRecordHealthCheckRequest) GetNsRecordHealthCheckJSON() []byte {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.NsRecordHealthCheckJSON
 | 
			
		||||
	}
 | 
			
		||||
	return nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 手动修改记录在线状态
 | 
			
		||||
type UpdateNSRecordIsUpRequest struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
	unknownFields protoimpl.UnknownFields
 | 
			
		||||
 | 
			
		||||
	NsRecordId int64 `protobuf:"varint,1,opt,name=nsRecordId,proto3" json:"nsRecordId,omitempty"` // 记录ID
 | 
			
		||||
	IsUp       bool  `protobuf:"varint,2,opt,name=isUp,proto3" json:"isUp,omitempty"`             // 是否在线
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateNSRecordIsUpRequest) Reset() {
 | 
			
		||||
	*x = UpdateNSRecordIsUpRequest{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_ns_record_proto_msgTypes[26]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateNSRecordIsUpRequest) String() string {
 | 
			
		||||
	return protoimpl.X.MessageStringOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (*UpdateNSRecordIsUpRequest) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateNSRecordIsUpRequest) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_ns_record_proto_msgTypes[26]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
			ms.StoreMessageInfo(mi)
 | 
			
		||||
		}
 | 
			
		||||
		return ms
 | 
			
		||||
	}
 | 
			
		||||
	return mi.MessageOf(x)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Deprecated: Use UpdateNSRecordIsUpRequest.ProtoReflect.Descriptor instead.
 | 
			
		||||
func (*UpdateNSRecordIsUpRequest) Descriptor() ([]byte, []int) {
 | 
			
		||||
	return file_service_ns_record_proto_rawDescGZIP(), []int{26}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateNSRecordIsUpRequest) GetNsRecordId() int64 {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.NsRecordId
 | 
			
		||||
	}
 | 
			
		||||
	return 0
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (x *UpdateNSRecordIsUpRequest) GetIsUp() bool {
 | 
			
		||||
	if x != nil {
 | 
			
		||||
		return x.IsUp
 | 
			
		||||
	}
 | 
			
		||||
	return false
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type ImportNSRecordsRequest_Record struct {
 | 
			
		||||
	state         protoimpl.MessageState
 | 
			
		||||
	sizeCache     protoimpl.SizeCache
 | 
			
		||||
@@ -1876,7 +2099,7 @@ type ImportNSRecordsRequest_Record struct {
 | 
			
		||||
func (x *ImportNSRecordsRequest_Record) Reset() {
 | 
			
		||||
	*x = ImportNSRecordsRequest_Record{}
 | 
			
		||||
	if protoimpl.UnsafeEnabled {
 | 
			
		||||
		mi := &file_service_ns_record_proto_msgTypes[23]
 | 
			
		||||
		mi := &file_service_ns_record_proto_msgTypes[27]
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		ms.StoreMessageInfo(mi)
 | 
			
		||||
	}
 | 
			
		||||
@@ -1889,7 +2112,7 @@ func (x *ImportNSRecordsRequest_Record) String() string {
 | 
			
		||||
func (*ImportNSRecordsRequest_Record) ProtoMessage() {}
 | 
			
		||||
 | 
			
		||||
func (x *ImportNSRecordsRequest_Record) ProtoReflect() protoreflect.Message {
 | 
			
		||||
	mi := &file_service_ns_record_proto_msgTypes[23]
 | 
			
		||||
	mi := &file_service_ns_record_proto_msgTypes[27]
 | 
			
		||||
	if protoimpl.UnsafeEnabled && x != nil {
 | 
			
		||||
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 | 
			
		||||
		if ms.LoadMessageInfo() == nil {
 | 
			
		||||
@@ -2203,7 +2426,7 @@ var file_service_ns_record_proto_rawDesc = []byte{
 | 
			
		||||
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49,
 | 
			
		||||
	0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
 | 
			
		||||
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20,
 | 
			
		||||
	0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xf2, 0x02, 0x0a, 0x14, 0x4c, 0x69,
 | 
			
		||||
	0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xa0, 0x03, 0x0a, 0x14, 0x4c, 0x69,
 | 
			
		||||
	0x73, 0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64,
 | 
			
		||||
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
 | 
			
		||||
@@ -2224,142 +2447,183 @@ var file_service_ns_record_proto_rawDesc = []byte{
 | 
			
		||||
	0x12, 0x16, 0x0a, 0x06, 0x74, 0x74, 0x6c, 0x41, 0x73, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08,
 | 
			
		||||
	0x52, 0x06, 0x74, 0x74, 0x6c, 0x41, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x74, 0x6c, 0x44,
 | 
			
		||||
	0x65, 0x73, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x74, 0x74, 0x6c, 0x44, 0x65,
 | 
			
		||||
	0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01,
 | 
			
		||||
	0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69,
 | 
			
		||||
	0x7a, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x43,
 | 
			
		||||
	0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52,
 | 
			
		||||
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x09, 0x6e, 0x73, 0x52, 0x65, 0x63,
 | 
			
		||||
	0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e,
 | 
			
		||||
	0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x09, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f,
 | 
			
		||||
	0x72, 0x64, 0x73, 0x22, 0x35, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63,
 | 
			
		||||
	0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x73,
 | 
			
		||||
	0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a,
 | 
			
		||||
	0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x14, 0x46, 0x69,
 | 
			
		||||
	0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
 | 
			
		||||
	0x73, 0x65, 0x12, 0x28, 0x0a, 0x08, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01,
 | 
			
		||||
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f,
 | 
			
		||||
	0x72, 0x64, 0x52, 0x08, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x6c, 0x0a, 0x22,
 | 
			
		||||
	0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x57, 0x69, 0x74, 0x68,
 | 
			
		||||
	0x4e, 0x61, 0x6d, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64,
 | 
			
		||||
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
 | 
			
		||||
	0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
 | 
			
		||||
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03,
 | 
			
		||||
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x4f, 0x0a, 0x23, 0x46, 0x69,
 | 
			
		||||
	0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61,
 | 
			
		||||
	0x6d, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
 | 
			
		||||
	0x65, 0x12, 0x28, 0x0a, 0x08, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20,
 | 
			
		||||
	0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72,
 | 
			
		||||
	0x64, 0x52, 0x08, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x6d, 0x0a, 0x23, 0x46,
 | 
			
		||||
	0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68,
 | 
			
		||||
	0x4e, 0x61, 0x6d, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64,
 | 
			
		||||
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
 | 
			
		||||
	0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
 | 
			
		||||
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03,
 | 
			
		||||
	0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x52, 0x0a, 0x24, 0x46, 0x69,
 | 
			
		||||
	0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e,
 | 
			
		||||
	0x61, 0x6d, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
 | 
			
		||||
	0x73, 0x65, 0x12, 0x2a, 0x0a, 0x09, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18,
 | 
			
		||||
	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53, 0x52, 0x65, 0x63,
 | 
			
		||||
	0x6f, 0x72, 0x64, 0x52, 0x09, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x50,
 | 
			
		||||
	0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x41,
 | 
			
		||||
	0x66, 0x74, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20,
 | 
			
		||||
	0x01, 0x28, 0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04,
 | 
			
		||||
	0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65,
 | 
			
		||||
	0x22, 0x4f, 0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
 | 
			
		||||
	0x73, 0x41, 0x66, 0x74, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73,
 | 
			
		||||
	0x73, 0x63, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x70, 0x41, 0x73, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28,
 | 
			
		||||
	0x08, 0x52, 0x05, 0x75, 0x70, 0x41, 0x73, 0x63, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x44, 0x65,
 | 
			
		||||
	0x73, 0x63, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x70, 0x44, 0x65, 0x73, 0x63,
 | 
			
		||||
	0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03,
 | 
			
		||||
	0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65,
 | 
			
		||||
	0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x43, 0x0a, 0x15,
 | 
			
		||||
	0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73,
 | 
			
		||||
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x09, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72,
 | 
			
		||||
	0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53,
 | 
			
		||||
	0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x09, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
 | 
			
		||||
	0x73, 0x32, 0xd3, 0x0a, 0x0a, 0x0f, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x65,
 | 
			
		||||
	0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e,
 | 
			
		||||
	0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65,
 | 
			
		||||
	0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53,
 | 
			
		||||
	0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a,
 | 
			
		||||
	0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
 | 
			
		||||
	0x73, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52,
 | 
			
		||||
	0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e,
 | 
			
		||||
	0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72,
 | 
			
		||||
	0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x1e, 0x63, 0x72,
 | 
			
		||||
	0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74,
 | 
			
		||||
	0x68, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x70,
 | 
			
		||||
	0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
 | 
			
		||||
	0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73,
 | 
			
		||||
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43,
 | 
			
		||||
	0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x5b, 0x0a, 0x1e, 0x75, 0x70, 0x64, 0x61, 0x74,
 | 
			
		||||
	0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x6f,
 | 
			
		||||
	0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x55,
 | 
			
		||||
	0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69,
 | 
			
		||||
	0x74, 0x68, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71,
 | 
			
		||||
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63,
 | 
			
		||||
	0x63, 0x65, 0x73, 0x73, 0x12, 0x5b, 0x0a, 0x1e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x53,
 | 
			
		||||
	0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x6f, 0x6d, 0x61, 0x69,
 | 
			
		||||
	0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65,
 | 
			
		||||
	0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44,
 | 
			
		||||
	0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
 | 
			
		||||
	0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73,
 | 
			
		||||
	0x73, 0x12, 0x63, 0x0a, 0x22, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63,
 | 
			
		||||
	0x6f, 0x72, 0x64, 0x73, 0x49, 0x73, 0x4f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x44, 0x6f, 0x6d, 0x61,
 | 
			
		||||
	0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64,
 | 
			
		||||
	0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x49, 0x73, 0x4f, 0x6e,
 | 
			
		||||
	0x57, 0x69, 0x74, 0x68, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52,
 | 
			
		||||
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53,
 | 
			
		||||
	0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74,
 | 
			
		||||
	0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x49,
 | 
			
		||||
	0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65,
 | 
			
		||||
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75,
 | 
			
		||||
	0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3b, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e,
 | 
			
		||||
	0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64,
 | 
			
		||||
	0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65,
 | 
			
		||||
	0x73, 0x73, 0x12, 0x3b, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65,
 | 
			
		||||
	0x63, 0x6f, 0x72, 0x64, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65,
 | 
			
		||||
	0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
 | 
			
		||||
	0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12,
 | 
			
		||||
	0x47, 0x0a, 0x11, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x52, 0x65, 0x63,
 | 
			
		||||
	0x6f, 0x72, 0x64, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41,
 | 
			
		||||
	0x6c, 0x6c, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74,
 | 
			
		||||
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x19, 0x63, 0x6f, 0x75, 0x6e,
 | 
			
		||||
	0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74,
 | 
			
		||||
	0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
 | 
			
		||||
	0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68,
 | 
			
		||||
	0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62,
 | 
			
		||||
	0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
 | 
			
		||||
	0x65, 0x12, 0x44, 0x0a, 0x0d, 0x6c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72,
 | 
			
		||||
	0x64, 0x73, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x52, 0x65,
 | 
			
		||||
	0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x70,
 | 
			
		||||
	0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52,
 | 
			
		||||
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x66, 0x69, 0x6e, 0x64, 0x4e,
 | 
			
		||||
	0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e,
 | 
			
		||||
	0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
 | 
			
		||||
	0x1a, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f,
 | 
			
		||||
	0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x1b, 0x66, 0x69,
 | 
			
		||||
	0x73, 0x22, 0x35, 0x0a, 0x13, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72,
 | 
			
		||||
	0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x73, 0x52, 0x65,
 | 
			
		||||
	0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x73,
 | 
			
		||||
	0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x22, 0x40, 0x0a, 0x14, 0x46, 0x69, 0x6e, 0x64,
 | 
			
		||||
	0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
 | 
			
		||||
	0x12, 0x28, 0x0a, 0x08, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01,
 | 
			
		||||
	0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
 | 
			
		||||
	0x52, 0x08, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x6c, 0x0a, 0x22, 0x46, 0x69,
 | 
			
		||||
	0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61,
 | 
			
		||||
	0x6d, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x46,
 | 
			
		||||
	0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4e,
 | 
			
		||||
	0x61, 0x6d, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
 | 
			
		||||
	0x74, 0x1a, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63,
 | 
			
		||||
	0x6f, 0x72, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x79,
 | 
			
		||||
	0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x1c, 0x66, 0x69,
 | 
			
		||||
	0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e,
 | 
			
		||||
	0x61, 0x6d, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x2e,
 | 
			
		||||
	0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74,
 | 
			
		||||
	0x68, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75,
 | 
			
		||||
	0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52,
 | 
			
		||||
	0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x6e,
 | 
			
		||||
	0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a,
 | 
			
		||||
	0x19, 0x6c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x41, 0x66,
 | 
			
		||||
	0x74, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e,
 | 
			
		||||
	0x6d, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
 | 
			
		||||
	0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x01,
 | 
			
		||||
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64,
 | 
			
		||||
	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
 | 
			
		||||
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01,
 | 
			
		||||
	0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x4f, 0x0a, 0x23, 0x46, 0x69, 0x6e, 0x64,
 | 
			
		||||
	0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65,
 | 
			
		||||
	0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12,
 | 
			
		||||
	0x28, 0x0a, 0x08, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
 | 
			
		||||
	0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52,
 | 
			
		||||
	0x08, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x22, 0x6d, 0x0a, 0x23, 0x46, 0x69, 0x6e,
 | 
			
		||||
	0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61,
 | 
			
		||||
	0x6d, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
 | 
			
		||||
	0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x01,
 | 
			
		||||
	0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x73, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x49, 0x64,
 | 
			
		||||
	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
 | 
			
		||||
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01,
 | 
			
		||||
	0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x52, 0x0a, 0x24, 0x46, 0x69, 0x6e, 0x64,
 | 
			
		||||
	0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d,
 | 
			
		||||
	0x65, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
 | 
			
		||||
	0x12, 0x2a, 0x0a, 0x09, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20,
 | 
			
		||||
	0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72,
 | 
			
		||||
	0x64, 0x52, 0x09, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x50, 0x0a, 0x20,
 | 
			
		||||
	0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x41, 0x66, 0x74,
 | 
			
		||||
	0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
 | 
			
		||||
	0x1a, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f,
 | 
			
		||||
	0x72, 0x64, 0x73, 0x41, 0x66, 0x74, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52,
 | 
			
		||||
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62,
 | 
			
		||||
	0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
	0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
 | 
			
		||||
	0x03, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69,
 | 
			
		||||
	0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x4f,
 | 
			
		||||
	0x0a, 0x21, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x41,
 | 
			
		||||
	0x66, 0x74, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f,
 | 
			
		||||
	0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x09, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73,
 | 
			
		||||
	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x53, 0x52, 0x65,
 | 
			
		||||
	0x63, 0x6f, 0x72, 0x64, 0x52, 0x09, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22,
 | 
			
		||||
	0x40, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48,
 | 
			
		||||
	0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
 | 
			
		||||
	0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x18,
 | 
			
		||||
	0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49,
 | 
			
		||||
	0x64, 0x22, 0x5b, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72,
 | 
			
		||||
	0x64, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70,
 | 
			
		||||
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x17, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
 | 
			
		||||
	0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x53, 0x4f, 0x4e, 0x18,
 | 
			
		||||
	0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x17, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48,
 | 
			
		||||
	0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x7c,
 | 
			
		||||
	0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
 | 
			
		||||
	0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64,
 | 
			
		||||
	0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
 | 
			
		||||
	0x49, 0x64, 0x12, 0x38, 0x0a, 0x17, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x65,
 | 
			
		||||
	0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20,
 | 
			
		||||
	0x01, 0x28, 0x0c, 0x52, 0x17, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x65, 0x61,
 | 
			
		||||
	0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4f, 0x0a, 0x19,
 | 
			
		||||
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x73,
 | 
			
		||||
	0x55, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x73, 0x52,
 | 
			
		||||
	0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6e,
 | 
			
		||||
	0x73, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x55,
 | 
			
		||||
	0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x55, 0x70, 0x32, 0xcf, 0x0c,
 | 
			
		||||
	0x0a, 0x0f, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63,
 | 
			
		||||
	0x65, 0x12, 0x47, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63,
 | 
			
		||||
	0x6f, 0x72, 0x64, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e,
 | 
			
		||||
	0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a,
 | 
			
		||||
	0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f,
 | 
			
		||||
	0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4a, 0x0a, 0x0f, 0x63, 0x72,
 | 
			
		||||
	0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x1a, 0x2e,
 | 
			
		||||
	0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72,
 | 
			
		||||
	0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x43,
 | 
			
		||||
	0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65,
 | 
			
		||||
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x1e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
 | 
			
		||||
	0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x6f, 0x6d,
 | 
			
		||||
	0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72,
 | 
			
		||||
	0x65, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74,
 | 
			
		||||
	0x68, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75,
 | 
			
		||||
	0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63,
 | 
			
		||||
	0x65, 0x73, 0x73, 0x12, 0x5b, 0x0a, 0x1e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52,
 | 
			
		||||
	0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
 | 
			
		||||
	0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
 | 
			
		||||
	0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x6f,
 | 
			
		||||
	0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
 | 
			
		||||
	0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73,
 | 
			
		||||
	0x12, 0x5b, 0x0a, 0x1e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f,
 | 
			
		||||
	0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d,
 | 
			
		||||
	0x65, 0x73, 0x12, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x53,
 | 
			
		||||
	0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x44, 0x6f, 0x6d, 0x61, 0x69,
 | 
			
		||||
	0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e,
 | 
			
		||||
	0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x63, 0x0a,
 | 
			
		||||
	0x22, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73,
 | 
			
		||||
	0x49, 0x73, 0x4f, 0x6e, 0x57, 0x69, 0x74, 0x68, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61,
 | 
			
		||||
	0x6d, 0x65, 0x73, 0x12, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e,
 | 
			
		||||
	0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x49, 0x73, 0x4f, 0x6e, 0x57, 0x69, 0x74, 0x68,
 | 
			
		||||
	0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65,
 | 
			
		||||
	0x73, 0x73, 0x12, 0x3d, 0x0a, 0x0f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x53, 0x52, 0x65,
 | 
			
		||||
	0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72,
 | 
			
		||||
	0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
 | 
			
		||||
	0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73,
 | 
			
		||||
	0x73, 0x12, 0x3b, 0x0a, 0x0e, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63,
 | 
			
		||||
	0x6f, 0x72, 0x64, 0x12, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e,
 | 
			
		||||
	0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e,
 | 
			
		||||
	0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3b,
 | 
			
		||||
	0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
 | 
			
		||||
	0x12, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65,
 | 
			
		||||
	0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62,
 | 
			
		||||
	0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x47, 0x0a, 0x11, 0x63,
 | 
			
		||||
	0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73,
 | 
			
		||||
	0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e, 0x53,
 | 
			
		||||
	0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14,
 | 
			
		||||
	0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70,
 | 
			
		||||
	0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x19, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c,
 | 
			
		||||
	0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d,
 | 
			
		||||
	0x65, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x4e,
 | 
			
		||||
	0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65,
 | 
			
		||||
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43,
 | 
			
		||||
	0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a,
 | 
			
		||||
	0x0d, 0x6c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x18,
 | 
			
		||||
	0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
 | 
			
		||||
	0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69,
 | 
			
		||||
	0x73, 0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
 | 
			
		||||
	0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63,
 | 
			
		||||
	0x6f, 0x72, 0x64, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52,
 | 
			
		||||
	0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70,
 | 
			
		||||
	0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65,
 | 
			
		||||
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6e, 0x0a, 0x1b, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53,
 | 
			
		||||
	0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x6e,
 | 
			
		||||
	0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e,
 | 
			
		||||
	0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x41,
 | 
			
		||||
	0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e,
 | 
			
		||||
	0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x57,
 | 
			
		||||
	0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65,
 | 
			
		||||
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x1c, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53,
 | 
			
		||||
	0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x41,
 | 
			
		||||
	0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64,
 | 
			
		||||
	0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d,
 | 
			
		||||
	0x65, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
 | 
			
		||||
	0x28, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72,
 | 
			
		||||
	0x64, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x6e, 0x64, 0x54, 0x79, 0x70,
 | 
			
		||||
	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x19, 0x6c, 0x69, 0x73,
 | 
			
		||||
	0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x41, 0x66, 0x74, 0x65, 0x72, 0x56,
 | 
			
		||||
	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74,
 | 
			
		||||
	0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x41, 0x66, 0x74, 0x65, 0x72, 0x56, 0x65,
 | 
			
		||||
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x70,
 | 
			
		||||
	0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x41,
 | 
			
		||||
	0x66, 0x74, 0x65, 0x72, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f,
 | 
			
		||||
	0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63,
 | 
			
		||||
	0x6f, 0x72, 0x64, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x22,
 | 
			
		||||
	0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
 | 
			
		||||
	0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65,
 | 
			
		||||
	0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x53, 0x52, 0x65,
 | 
			
		||||
	0x63, 0x6f, 0x72, 0x64, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52,
 | 
			
		||||
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74,
 | 
			
		||||
	0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43,
 | 
			
		||||
	0x68, 0x65, 0x63, 0x6b, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
 | 
			
		||||
	0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x68,
 | 
			
		||||
	0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e,
 | 
			
		||||
	0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x12, 0x75, 0x70,
 | 
			
		||||
	0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x55, 0x70,
 | 
			
		||||
	0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4e, 0x53, 0x52, 0x65,
 | 
			
		||||
	0x63, 0x6f, 0x72, 0x64, 0x49, 0x73, 0x55, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
 | 
			
		||||
	0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42,
 | 
			
		||||
	0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
@@ -2374,7 +2638,7 @@ func file_service_ns_record_proto_rawDescGZIP() []byte {
 | 
			
		||||
	return file_service_ns_record_proto_rawDescData
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var file_service_ns_record_proto_msgTypes = make([]protoimpl.MessageInfo, 24)
 | 
			
		||||
var file_service_ns_record_proto_msgTypes = make([]protoimpl.MessageInfo, 28)
 | 
			
		||||
var file_service_ns_record_proto_goTypes = []interface{}{
 | 
			
		||||
	(*CreateNSRecordRequest)(nil),                     // 0: pb.CreateNSRecordRequest
 | 
			
		||||
	(*CreateNSRecordResponse)(nil),                    // 1: pb.CreateNSRecordResponse
 | 
			
		||||
@@ -2399,18 +2663,22 @@ var file_service_ns_record_proto_goTypes = []interface{}{
 | 
			
		||||
	(*FindNSRecordsWithNameAndTypeResponse)(nil),      // 20: pb.FindNSRecordsWithNameAndTypeResponse
 | 
			
		||||
	(*ListNSRecordsAfterVersionRequest)(nil),          // 21: pb.ListNSRecordsAfterVersionRequest
 | 
			
		||||
	(*ListNSRecordsAfterVersionResponse)(nil),         // 22: pb.ListNSRecordsAfterVersionResponse
 | 
			
		||||
	(*ImportNSRecordsRequest_Record)(nil),             // 23: pb.ImportNSRecordsRequest.Record
 | 
			
		||||
	(*NSRecord)(nil),                                  // 24: pb.NSRecord
 | 
			
		||||
	(*RPCSuccess)(nil),                                // 25: pb.RPCSuccess
 | 
			
		||||
	(*RPCCountResponse)(nil),                          // 26: pb.RPCCountResponse
 | 
			
		||||
	(*FindNSRecordHealthCheckRequest)(nil),            // 23: pb.FindNSRecordHealthCheckRequest
 | 
			
		||||
	(*FindNSRecordHealthCheckResponse)(nil),           // 24: pb.FindNSRecordHealthCheckResponse
 | 
			
		||||
	(*UpdateNSRecordHealthCheckRequest)(nil),          // 25: pb.UpdateNSRecordHealthCheckRequest
 | 
			
		||||
	(*UpdateNSRecordIsUpRequest)(nil),                 // 26: pb.UpdateNSRecordIsUpRequest
 | 
			
		||||
	(*ImportNSRecordsRequest_Record)(nil),             // 27: pb.ImportNSRecordsRequest.Record
 | 
			
		||||
	(*NSRecord)(nil),                                  // 28: pb.NSRecord
 | 
			
		||||
	(*RPCSuccess)(nil),                                // 29: pb.RPCSuccess
 | 
			
		||||
	(*RPCCountResponse)(nil),                          // 30: pb.RPCCountResponse
 | 
			
		||||
}
 | 
			
		||||
var file_service_ns_record_proto_depIdxs = []int32{
 | 
			
		||||
	23, // 0: pb.ImportNSRecordsRequest.nsRecords:type_name -> pb.ImportNSRecordsRequest.Record
 | 
			
		||||
	24, // 1: pb.ListNSRecordsResponse.nsRecords:type_name -> pb.NSRecord
 | 
			
		||||
	24, // 2: pb.FindNSRecordResponse.nsRecord:type_name -> pb.NSRecord
 | 
			
		||||
	24, // 3: pb.FindNSRecordWithNameAndTypeResponse.nsRecord:type_name -> pb.NSRecord
 | 
			
		||||
	24, // 4: pb.FindNSRecordsWithNameAndTypeResponse.nsRecords:type_name -> pb.NSRecord
 | 
			
		||||
	24, // 5: pb.ListNSRecordsAfterVersionResponse.nsRecords:type_name -> pb.NSRecord
 | 
			
		||||
	27, // 0: pb.ImportNSRecordsRequest.nsRecords:type_name -> pb.ImportNSRecordsRequest.Record
 | 
			
		||||
	28, // 1: pb.ListNSRecordsResponse.nsRecords:type_name -> pb.NSRecord
 | 
			
		||||
	28, // 2: pb.FindNSRecordResponse.nsRecord:type_name -> pb.NSRecord
 | 
			
		||||
	28, // 3: pb.FindNSRecordWithNameAndTypeResponse.nsRecord:type_name -> pb.NSRecord
 | 
			
		||||
	28, // 4: pb.FindNSRecordsWithNameAndTypeResponse.nsRecords:type_name -> pb.NSRecord
 | 
			
		||||
	28, // 5: pb.ListNSRecordsAfterVersionResponse.nsRecords:type_name -> pb.NSRecord
 | 
			
		||||
	0,  // 6: pb.NSRecordService.createNSRecord:input_type -> pb.CreateNSRecordRequest
 | 
			
		||||
	2,  // 7: pb.NSRecordService.createNSRecords:input_type -> pb.CreateNSRecordsRequest
 | 
			
		||||
	4,  // 8: pb.NSRecordService.createNSRecordsWithDomainNames:input_type -> pb.CreateNSRecordsWithDomainNamesRequest
 | 
			
		||||
@@ -2427,24 +2695,30 @@ var file_service_ns_record_proto_depIdxs = []int32{
 | 
			
		||||
	17, // 19: pb.NSRecordService.findNSRecordWithNameAndType:input_type -> pb.FindNSRecordWithNameAndTypeRequest
 | 
			
		||||
	19, // 20: pb.NSRecordService.findNSRecordsWithNameAndType:input_type -> pb.FindNSRecordsWithNameAndTypeRequest
 | 
			
		||||
	21, // 21: pb.NSRecordService.listNSRecordsAfterVersion:input_type -> pb.ListNSRecordsAfterVersionRequest
 | 
			
		||||
	1,  // 22: pb.NSRecordService.createNSRecord:output_type -> pb.CreateNSRecordResponse
 | 
			
		||||
	3,  // 23: pb.NSRecordService.createNSRecords:output_type -> pb.CreateNSRecordsResponse
 | 
			
		||||
	25, // 24: pb.NSRecordService.createNSRecordsWithDomainNames:output_type -> pb.RPCSuccess
 | 
			
		||||
	25, // 25: pb.NSRecordService.updateNSRecordsWithDomainNames:output_type -> pb.RPCSuccess
 | 
			
		||||
	25, // 26: pb.NSRecordService.deleteNSRecordsWithDomainNames:output_type -> pb.RPCSuccess
 | 
			
		||||
	25, // 27: pb.NSRecordService.updateNSRecordsIsOnWithDomainNames:output_type -> pb.RPCSuccess
 | 
			
		||||
	25, // 28: pb.NSRecordService.importNSRecords:output_type -> pb.RPCSuccess
 | 
			
		||||
	25, // 29: pb.NSRecordService.updateNSRecord:output_type -> pb.RPCSuccess
 | 
			
		||||
	25, // 30: pb.NSRecordService.deleteNSRecord:output_type -> pb.RPCSuccess
 | 
			
		||||
	26, // 31: pb.NSRecordService.countAllNSRecords:output_type -> pb.RPCCountResponse
 | 
			
		||||
	26, // 32: pb.NSRecordService.countAllNSRecordsWithName:output_type -> pb.RPCCountResponse
 | 
			
		||||
	14, // 33: pb.NSRecordService.listNSRecords:output_type -> pb.ListNSRecordsResponse
 | 
			
		||||
	16, // 34: pb.NSRecordService.findNSRecord:output_type -> pb.FindNSRecordResponse
 | 
			
		||||
	18, // 35: pb.NSRecordService.findNSRecordWithNameAndType:output_type -> pb.FindNSRecordWithNameAndTypeResponse
 | 
			
		||||
	20, // 36: pb.NSRecordService.findNSRecordsWithNameAndType:output_type -> pb.FindNSRecordsWithNameAndTypeResponse
 | 
			
		||||
	22, // 37: pb.NSRecordService.listNSRecordsAfterVersion:output_type -> pb.ListNSRecordsAfterVersionResponse
 | 
			
		||||
	22, // [22:38] is the sub-list for method output_type
 | 
			
		||||
	6,  // [6:22] is the sub-list for method input_type
 | 
			
		||||
	23, // 22: pb.NSRecordService.findNSRecordHealthCheck:input_type -> pb.FindNSRecordHealthCheckRequest
 | 
			
		||||
	25, // 23: pb.NSRecordService.updateNSRecordHealthCheck:input_type -> pb.UpdateNSRecordHealthCheckRequest
 | 
			
		||||
	26, // 24: pb.NSRecordService.updateNSRecordIsUp:input_type -> pb.UpdateNSRecordIsUpRequest
 | 
			
		||||
	1,  // 25: pb.NSRecordService.createNSRecord:output_type -> pb.CreateNSRecordResponse
 | 
			
		||||
	3,  // 26: pb.NSRecordService.createNSRecords:output_type -> pb.CreateNSRecordsResponse
 | 
			
		||||
	29, // 27: pb.NSRecordService.createNSRecordsWithDomainNames:output_type -> pb.RPCSuccess
 | 
			
		||||
	29, // 28: pb.NSRecordService.updateNSRecordsWithDomainNames:output_type -> pb.RPCSuccess
 | 
			
		||||
	29, // 29: pb.NSRecordService.deleteNSRecordsWithDomainNames:output_type -> pb.RPCSuccess
 | 
			
		||||
	29, // 30: pb.NSRecordService.updateNSRecordsIsOnWithDomainNames:output_type -> pb.RPCSuccess
 | 
			
		||||
	29, // 31: pb.NSRecordService.importNSRecords:output_type -> pb.RPCSuccess
 | 
			
		||||
	29, // 32: pb.NSRecordService.updateNSRecord:output_type -> pb.RPCSuccess
 | 
			
		||||
	29, // 33: pb.NSRecordService.deleteNSRecord:output_type -> pb.RPCSuccess
 | 
			
		||||
	30, // 34: pb.NSRecordService.countAllNSRecords:output_type -> pb.RPCCountResponse
 | 
			
		||||
	30, // 35: pb.NSRecordService.countAllNSRecordsWithName:output_type -> pb.RPCCountResponse
 | 
			
		||||
	14, // 36: pb.NSRecordService.listNSRecords:output_type -> pb.ListNSRecordsResponse
 | 
			
		||||
	16, // 37: pb.NSRecordService.findNSRecord:output_type -> pb.FindNSRecordResponse
 | 
			
		||||
	18, // 38: pb.NSRecordService.findNSRecordWithNameAndType:output_type -> pb.FindNSRecordWithNameAndTypeResponse
 | 
			
		||||
	20, // 39: pb.NSRecordService.findNSRecordsWithNameAndType:output_type -> pb.FindNSRecordsWithNameAndTypeResponse
 | 
			
		||||
	22, // 40: pb.NSRecordService.listNSRecordsAfterVersion:output_type -> pb.ListNSRecordsAfterVersionResponse
 | 
			
		||||
	24, // 41: pb.NSRecordService.findNSRecordHealthCheck:output_type -> pb.FindNSRecordHealthCheckResponse
 | 
			
		||||
	29, // 42: pb.NSRecordService.updateNSRecordHealthCheck:output_type -> pb.RPCSuccess
 | 
			
		||||
	29, // 43: pb.NSRecordService.updateNSRecordIsUp:output_type -> pb.RPCSuccess
 | 
			
		||||
	25, // [25:44] is the sub-list for method output_type
 | 
			
		||||
	6,  // [6:25] is the sub-list for method input_type
 | 
			
		||||
	6,  // [6:6] is the sub-list for extension type_name
 | 
			
		||||
	6,  // [6:6] is the sub-list for extension extendee
 | 
			
		||||
	0,  // [0:6] is the sub-list for field type_name
 | 
			
		||||
@@ -2735,6 +3009,54 @@ func file_service_ns_record_proto_init() {
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_ns_record_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindNSRecordHealthCheckRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_ns_record_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*FindNSRecordHealthCheckResponse); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_ns_record_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*UpdateNSRecordHealthCheckRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_ns_record_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*UpdateNSRecordIsUpRequest); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
			case 1:
 | 
			
		||||
				return &v.sizeCache
 | 
			
		||||
			case 2:
 | 
			
		||||
				return &v.unknownFields
 | 
			
		||||
			default:
 | 
			
		||||
				return nil
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		file_service_ns_record_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
 | 
			
		||||
			switch v := v.(*ImportNSRecordsRequest_Record); i {
 | 
			
		||||
			case 0:
 | 
			
		||||
				return &v.state
 | 
			
		||||
@@ -2753,7 +3075,7 @@ func file_service_ns_record_proto_init() {
 | 
			
		||||
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 | 
			
		||||
			RawDescriptor: file_service_ns_record_proto_rawDesc,
 | 
			
		||||
			NumEnums:      0,
 | 
			
		||||
			NumMessages:   24,
 | 
			
		||||
			NumMessages:   28,
 | 
			
		||||
			NumExtensions: 0,
 | 
			
		||||
			NumServices:   1,
 | 
			
		||||
		},
 | 
			
		||||
@@ -2811,6 +3133,12 @@ type NSRecordServiceClient interface {
 | 
			
		||||
	FindNSRecordsWithNameAndType(ctx context.Context, in *FindNSRecordsWithNameAndTypeRequest, opts ...grpc.CallOption) (*FindNSRecordsWithNameAndTypeResponse, error)
 | 
			
		||||
	// 根据版本列出一组记录
 | 
			
		||||
	ListNSRecordsAfterVersion(ctx context.Context, in *ListNSRecordsAfterVersionRequest, opts ...grpc.CallOption) (*ListNSRecordsAfterVersionResponse, error)
 | 
			
		||||
	// 查询记录健康检查设置
 | 
			
		||||
	FindNSRecordHealthCheck(ctx context.Context, in *FindNSRecordHealthCheckRequest, opts ...grpc.CallOption) (*FindNSRecordHealthCheckResponse, error)
 | 
			
		||||
	// 修改记录健康检查设置
 | 
			
		||||
	UpdateNSRecordHealthCheck(ctx context.Context, in *UpdateNSRecordHealthCheckRequest, opts ...grpc.CallOption) (*RPCSuccess, error)
 | 
			
		||||
	// 手动修改记录在线状态
 | 
			
		||||
	UpdateNSRecordIsUp(ctx context.Context, in *UpdateNSRecordIsUpRequest, opts ...grpc.CallOption) (*RPCSuccess, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type nSRecordServiceClient struct {
 | 
			
		||||
@@ -2965,6 +3293,33 @@ func (c *nSRecordServiceClient) ListNSRecordsAfterVersion(ctx context.Context, i
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *nSRecordServiceClient) FindNSRecordHealthCheck(ctx context.Context, in *FindNSRecordHealthCheckRequest, opts ...grpc.CallOption) (*FindNSRecordHealthCheckResponse, error) {
 | 
			
		||||
	out := new(FindNSRecordHealthCheckResponse)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.NSRecordService/findNSRecordHealthCheck", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *nSRecordServiceClient) UpdateNSRecordHealthCheck(ctx context.Context, in *UpdateNSRecordHealthCheckRequest, opts ...grpc.CallOption) (*RPCSuccess, error) {
 | 
			
		||||
	out := new(RPCSuccess)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.NSRecordService/updateNSRecordHealthCheck", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func (c *nSRecordServiceClient) UpdateNSRecordIsUp(ctx context.Context, in *UpdateNSRecordIsUpRequest, opts ...grpc.CallOption) (*RPCSuccess, error) {
 | 
			
		||||
	out := new(RPCSuccess)
 | 
			
		||||
	err := c.cc.Invoke(ctx, "/pb.NSRecordService/updateNSRecordIsUp", in, out, opts...)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return out, nil
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NSRecordServiceServer is the server API for NSRecordService service.
 | 
			
		||||
type NSRecordServiceServer interface {
 | 
			
		||||
	// 创建记录
 | 
			
		||||
@@ -2999,6 +3354,12 @@ type NSRecordServiceServer interface {
 | 
			
		||||
	FindNSRecordsWithNameAndType(context.Context, *FindNSRecordsWithNameAndTypeRequest) (*FindNSRecordsWithNameAndTypeResponse, error)
 | 
			
		||||
	// 根据版本列出一组记录
 | 
			
		||||
	ListNSRecordsAfterVersion(context.Context, *ListNSRecordsAfterVersionRequest) (*ListNSRecordsAfterVersionResponse, error)
 | 
			
		||||
	// 查询记录健康检查设置
 | 
			
		||||
	FindNSRecordHealthCheck(context.Context, *FindNSRecordHealthCheckRequest) (*FindNSRecordHealthCheckResponse, error)
 | 
			
		||||
	// 修改记录健康检查设置
 | 
			
		||||
	UpdateNSRecordHealthCheck(context.Context, *UpdateNSRecordHealthCheckRequest) (*RPCSuccess, error)
 | 
			
		||||
	// 手动修改记录在线状态
 | 
			
		||||
	UpdateNSRecordIsUp(context.Context, *UpdateNSRecordIsUpRequest) (*RPCSuccess, error)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// UnimplementedNSRecordServiceServer can be embedded to have forward compatible implementations.
 | 
			
		||||
@@ -3053,6 +3414,15 @@ func (*UnimplementedNSRecordServiceServer) FindNSRecordsWithNameAndType(context.
 | 
			
		||||
func (*UnimplementedNSRecordServiceServer) ListNSRecordsAfterVersion(context.Context, *ListNSRecordsAfterVersionRequest) (*ListNSRecordsAfterVersionResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method ListNSRecordsAfterVersion not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedNSRecordServiceServer) FindNSRecordHealthCheck(context.Context, *FindNSRecordHealthCheckRequest) (*FindNSRecordHealthCheckResponse, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method FindNSRecordHealthCheck not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedNSRecordServiceServer) UpdateNSRecordHealthCheck(context.Context, *UpdateNSRecordHealthCheckRequest) (*RPCSuccess, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method UpdateNSRecordHealthCheck not implemented")
 | 
			
		||||
}
 | 
			
		||||
func (*UnimplementedNSRecordServiceServer) UpdateNSRecordIsUp(context.Context, *UpdateNSRecordIsUpRequest) (*RPCSuccess, error) {
 | 
			
		||||
	return nil, status.Errorf(codes.Unimplemented, "method UpdateNSRecordIsUp not implemented")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func RegisterNSRecordServiceServer(s *grpc.Server, srv NSRecordServiceServer) {
 | 
			
		||||
	s.RegisterService(&_NSRecordService_serviceDesc, srv)
 | 
			
		||||
@@ -3346,6 +3716,60 @@ func _NSRecordService_ListNSRecordsAfterVersion_Handler(srv interface{}, ctx con
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _NSRecordService_FindNSRecordHealthCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(FindNSRecordHealthCheckRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(NSRecordServiceServer).FindNSRecordHealthCheck(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.NSRecordService/FindNSRecordHealthCheck",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(NSRecordServiceServer).FindNSRecordHealthCheck(ctx, req.(*FindNSRecordHealthCheckRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _NSRecordService_UpdateNSRecordHealthCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(UpdateNSRecordHealthCheckRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(NSRecordServiceServer).UpdateNSRecordHealthCheck(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.NSRecordService/UpdateNSRecordHealthCheck",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(NSRecordServiceServer).UpdateNSRecordHealthCheck(ctx, req.(*UpdateNSRecordHealthCheckRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func _NSRecordService_UpdateNSRecordIsUp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 | 
			
		||||
	in := new(UpdateNSRecordIsUpRequest)
 | 
			
		||||
	if err := dec(in); err != nil {
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	if interceptor == nil {
 | 
			
		||||
		return srv.(NSRecordServiceServer).UpdateNSRecordIsUp(ctx, in)
 | 
			
		||||
	}
 | 
			
		||||
	info := &grpc.UnaryServerInfo{
 | 
			
		||||
		Server:     srv,
 | 
			
		||||
		FullMethod: "/pb.NSRecordService/UpdateNSRecordIsUp",
 | 
			
		||||
	}
 | 
			
		||||
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
 | 
			
		||||
		return srv.(NSRecordServiceServer).UpdateNSRecordIsUp(ctx, req.(*UpdateNSRecordIsUpRequest))
 | 
			
		||||
	}
 | 
			
		||||
	return interceptor(ctx, in, info, handler)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var _NSRecordService_serviceDesc = grpc.ServiceDesc{
 | 
			
		||||
	ServiceName: "pb.NSRecordService",
 | 
			
		||||
	HandlerType: (*NSRecordServiceServer)(nil),
 | 
			
		||||
@@ -3414,6 +3838,18 @@ var _NSRecordService_serviceDesc = grpc.ServiceDesc{
 | 
			
		||||
			MethodName: "listNSRecordsAfterVersion",
 | 
			
		||||
			Handler:    _NSRecordService_ListNSRecordsAfterVersion_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "findNSRecordHealthCheck",
 | 
			
		||||
			Handler:    _NSRecordService_FindNSRecordHealthCheck_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "updateNSRecordHealthCheck",
 | 
			
		||||
			Handler:    _NSRecordService_UpdateNSRecordHealthCheck_Handler,
 | 
			
		||||
		},
 | 
			
		||||
		{
 | 
			
		||||
			MethodName: "updateNSRecordIsUp",
 | 
			
		||||
			Handler:    _NSRecordService_UpdateNSRecordIsUp_Handler,
 | 
			
		||||
		},
 | 
			
		||||
	},
 | 
			
		||||
	Streams:  []grpc.StreamDesc{},
 | 
			
		||||
	Metadata: "service_ns_record.proto",
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,7 @@ message NSDomain {
 | 
			
		||||
	repeated int64 nsDomainGroupIds = 8;
 | 
			
		||||
	string status = 9;
 | 
			
		||||
	int64 userId = 10; // 用户ID
 | 
			
		||||
	bytes recordsHealthCheckJSON = 11; // 健康检查设置
 | 
			
		||||
 | 
			
		||||
	NSCluster nsCluster = 30;
 | 
			
		||||
	User user = 31;
 | 
			
		||||
 
 | 
			
		||||
@@ -8,11 +8,11 @@ import "models/model_ns_route.proto";
 | 
			
		||||
 | 
			
		||||
// 域名记录
 | 
			
		||||
message NSRecord {
 | 
			
		||||
	int64 id = 1;
 | 
			
		||||
	string description = 2;
 | 
			
		||||
	string name = 3;
 | 
			
		||||
	string type = 4;
 | 
			
		||||
	string value = 5;
 | 
			
		||||
	int64 id = 1; // 记录ID
 | 
			
		||||
	string description = 2; // 备注
 | 
			
		||||
	string name = 3; // 记录名
 | 
			
		||||
	string type = 4; // 记录类型
 | 
			
		||||
	string value = 5; // 记录值
 | 
			
		||||
 | 
			
		||||
	int32 mxPriority = 12; // mx优先级
 | 
			
		||||
 | 
			
		||||
@@ -23,13 +23,16 @@ message NSRecord {
 | 
			
		||||
	int32 caaFlag = 16; // CAA Flag
 | 
			
		||||
	string caaTag = 17; // CAA TAG
 | 
			
		||||
 | 
			
		||||
	int32 ttl = 6;
 | 
			
		||||
	int32 weight = 7;
 | 
			
		||||
	int32 ttl = 6; // TTL
 | 
			
		||||
	int32 weight = 7; // 权重
 | 
			
		||||
	int64 createdAt = 8;
 | 
			
		||||
	bool isDeleted = 9;
 | 
			
		||||
	int64 version = 10;
 | 
			
		||||
	bool isOn = 11;
 | 
			
		||||
	bool isOn = 11; // 是否启用
 | 
			
		||||
 | 
			
		||||
	NSDomain nsDomain = 30;
 | 
			
		||||
	repeated NSRoute nsRoutes = 31;
 | 
			
		||||
	bytes healthCheckJSON = 18; // 健康检查配置
 | 
			
		||||
	bool isUp = 19; // 是否在线(根据健康检查结果)
 | 
			
		||||
 | 
			
		||||
	NSDomain nsDomain = 30; // 所属域名
 | 
			
		||||
	repeated NSRoute nsRoutes = 31; // 线路
 | 
			
		||||
}
 | 
			
		||||
@@ -61,6 +61,12 @@ service NSDomainService {
 | 
			
		||||
 | 
			
		||||
	// 验证域名信息
 | 
			
		||||
	rpc verifyNSDomain(VerifyNSDomainRequest) returns (VerifyNSDomainResponse);
 | 
			
		||||
 | 
			
		||||
	// 查询记录健康检查全局设置
 | 
			
		||||
	rpc findNSDomainRecordsHealthCheck(FindNSDomainRecordsHealthCheckRequest) returns (FindNSDomainRecordsHealthCheckResponse);
 | 
			
		||||
 | 
			
		||||
	// 修改记录健康检查全局设置
 | 
			
		||||
	rpc updateNSDomainRecordsHealthCheck(UpdateNSDomainRecordsHealthCheckRequest) returns (RPCSuccess);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 创建单个域名
 | 
			
		||||
@@ -232,3 +238,18 @@ message VerifyNSDomainResponse {
 | 
			
		||||
	string errorCode = 2; // 错误代码
 | 
			
		||||
	string errorMessage = 3; // 错误消息
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查询记录健康检查全局设置
 | 
			
		||||
message FindNSDomainRecordsHealthCheckRequest {
 | 
			
		||||
	int64 nsDomainId = 1; // 域名ID
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message FindNSDomainRecordsHealthCheckResponse {
 | 
			
		||||
	bytes nsDomainRecordsHealthCheckJSON = 1; // 健康检查设置
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 修改记录健康检查全局设置
 | 
			
		||||
message UpdateNSDomainRecordsHealthCheckRequest {
 | 
			
		||||
	int64 nsDomainId = 1; // 域名ID
 | 
			
		||||
	bytes nsDomainRecordsHealthCheckJSON = 2; // 健康检查设置
 | 
			
		||||
}
 | 
			
		||||
@@ -55,6 +55,15 @@ service NSRecordService {
 | 
			
		||||
 | 
			
		||||
	// 根据版本列出一组记录
 | 
			
		||||
	rpc listNSRecordsAfterVersion (ListNSRecordsAfterVersionRequest) returns (ListNSRecordsAfterVersionResponse);
 | 
			
		||||
 | 
			
		||||
	// 查询记录健康检查设置
 | 
			
		||||
	rpc findNSRecordHealthCheck(FindNSRecordHealthCheckRequest) returns (FindNSRecordHealthCheckResponse);
 | 
			
		||||
 | 
			
		||||
	// 修改记录健康检查设置
 | 
			
		||||
	rpc updateNSRecordHealthCheck(UpdateNSRecordHealthCheckRequest) returns (RPCSuccess);
 | 
			
		||||
 | 
			
		||||
	// 手动修改记录在线状态
 | 
			
		||||
	rpc updateNSRecordIsUp(UpdateNSRecordIsUpRequest) returns (RPCSuccess);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 创建记录
 | 
			
		||||
@@ -233,6 +242,8 @@ message ListNSRecordsRequest {
 | 
			
		||||
	bool typeDesc = 11;
 | 
			
		||||
	bool ttlAsc = 12;
 | 
			
		||||
	bool ttlDesc = 13;
 | 
			
		||||
	bool upAsc = 14;
 | 
			
		||||
	bool upDesc = 15;
 | 
			
		||||
 | 
			
		||||
	int64 offset = 5;
 | 
			
		||||
	int64 size = 6;
 | 
			
		||||
@@ -282,3 +293,24 @@ message ListNSRecordsAfterVersionRequest {
 | 
			
		||||
message ListNSRecordsAfterVersionResponse {
 | 
			
		||||
	repeated NSRecord nsRecords = 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 查询记录健康检查设置
 | 
			
		||||
message FindNSRecordHealthCheckRequest {
 | 
			
		||||
	int64 nsRecordId = 1; // 记录ID
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
message FindNSRecordHealthCheckResponse {
 | 
			
		||||
	bytes nsRecordHealthCheckJSON = 1; // 记录健康检查配置
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 修改记录健康检查设置
 | 
			
		||||
message UpdateNSRecordHealthCheckRequest {
 | 
			
		||||
	int64 nsRecordId = 1; // 记录ID
 | 
			
		||||
	bytes nsRecordHealthCheckJSON = 2; // 记录健康检查配置
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// 手动修改记录在线状态
 | 
			
		||||
message UpdateNSRecordIsUpRequest {
 | 
			
		||||
	int64 nsRecordId = 1; // 记录ID
 | 
			
		||||
	bool isUp = 2;  // 是否在线
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user