// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 // protoc v3.19.4 // source: service_server.proto package pb import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) // 创建网站 type CreateServerRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` // 可选项,用户ID,如果不想指定用户,此值可以为0 AdminId int64 `protobuf:"varint,2,opt,name=adminId,proto3" json:"adminId,omitempty"` // 可选项,管理员ID Type string `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"` // 类型:httpProxy(HTTP反向代理,一般CDN服务都选这个)、httpWeb(静态文件服务,只会从服务器上读取文件内容,不会转发到源站)、tcpProxy(TCP反向代理)、udpProxy(UDP反向代理) Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` // 网站名称,通常可以是一个域名 Description string `protobuf:"bytes,5,opt,name=description,proto3" json:"description,omitempty"` // 可选项,网站描述 // 配置相关 ServerNamesJSON []byte `protobuf:"bytes,8,opt,name=serverNamesJSON,proto3" json:"serverNamesJSON,omitempty"` // 域名列表 @link json:server_names // Deprecated: Marked as deprecated in service_server.proto. ServerNamesJON []byte `protobuf:"bytes,19,opt,name=serverNamesJON,proto3" json:"serverNamesJON,omitempty"` // 已过期,请使用 serverNamesJSON 代替 HttpJSON []byte `protobuf:"bytes,9,opt,name=httpJSON,proto3" json:"httpJSON,omitempty"` // HTTP协议设置,当type为httpProxy或者httpWeb时填写 @link json:http_protocol HttpsJSON []byte `protobuf:"bytes,10,opt,name=httpsJSON,proto3" json:"httpsJSON,omitempty"` // HTTPS协议设置,当type为httpProxy或者httpWeb时填写 @link json:https_protocol TcpJSON []byte `protobuf:"bytes,11,opt,name=tcpJSON,proto3" json:"tcpJSON,omitempty"` // TCP协议设置,当type为tcpProxy时填写 @link json:tcp_protocol TlsJSON []byte `protobuf:"bytes,12,opt,name=tlsJSON,proto3" json:"tlsJSON,omitempty"` // TLS协议设置,当type为tcpProxy时填写 @link json:tls_protocol UnixJSON []byte `protobuf:"bytes,13,opt,name=unixJSON,proto3" json:"unixJSON,omitempty"` // 备用参数,不用填写 UdpJSON []byte `protobuf:"bytes,14,opt,name=udpJSON,proto3" json:"udpJSON,omitempty"` // UDP协议设置,当type为udpProxy时填写 @link json:udp_protocol WebId int64 `protobuf:"varint,15,opt,name=webId,proto3" json:"webId,omitempty"` // 可选项,Web配置ID,当type为httpProxy或者httpWeb时填写,可以通过 /HTTPWebService/createHTTPWeb 接口创建;如果你需要配置缓存等信息时需要在 HTTPWebService 接口操作 ReverseProxyJSON []byte `protobuf:"bytes,16,opt,name=reverseProxyJSON,proto3" json:"reverseProxyJSON,omitempty"` // 反向代理(包含源站)配置引用,此项可以在创建网站后再设置 @link json:reverse_proxy_ref ServerGroupIds []int64 `protobuf:"varint,17,rep,packed,name=serverGroupIds,proto3" json:"serverGroupIds,omitempty"` // 可选项,所属网站分组ID列表 UserPlanId int64 `protobuf:"varint,18,opt,name=userPlanId,proto3" json:"userPlanId,omitempty"` // 可选项,套餐ID NodeClusterId int64 `protobuf:"varint,30,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 所部署的集群ID IncludeNodesJSON []byte `protobuf:"bytes,31,opt,name=includeNodesJSON,proto3" json:"includeNodesJSON,omitempty"` // 备用参数,不用填写 ExcludeNodesJSON []byte `protobuf:"bytes,32,opt,name=excludeNodesJSON,proto3" json:"excludeNodesJSON,omitempty"` // 备用参数,不用填写 } func (x *CreateServerRequest) Reset() { *x = CreateServerRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateServerRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateServerRequest) ProtoMessage() {} func (x *CreateServerRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[0] 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 CreateServerRequest.ProtoReflect.Descriptor instead. func (*CreateServerRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{0} } func (x *CreateServerRequest) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *CreateServerRequest) GetAdminId() int64 { if x != nil { return x.AdminId } return 0 } func (x *CreateServerRequest) GetType() string { if x != nil { return x.Type } return "" } func (x *CreateServerRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *CreateServerRequest) GetDescription() string { if x != nil { return x.Description } return "" } func (x *CreateServerRequest) GetServerNamesJSON() []byte { if x != nil { return x.ServerNamesJSON } return nil } // Deprecated: Marked as deprecated in service_server.proto. func (x *CreateServerRequest) GetServerNamesJON() []byte { if x != nil { return x.ServerNamesJON } return nil } func (x *CreateServerRequest) GetHttpJSON() []byte { if x != nil { return x.HttpJSON } return nil } func (x *CreateServerRequest) GetHttpsJSON() []byte { if x != nil { return x.HttpsJSON } return nil } func (x *CreateServerRequest) GetTcpJSON() []byte { if x != nil { return x.TcpJSON } return nil } func (x *CreateServerRequest) GetTlsJSON() []byte { if x != nil { return x.TlsJSON } return nil } func (x *CreateServerRequest) GetUnixJSON() []byte { if x != nil { return x.UnixJSON } return nil } func (x *CreateServerRequest) GetUdpJSON() []byte { if x != nil { return x.UdpJSON } return nil } func (x *CreateServerRequest) GetWebId() int64 { if x != nil { return x.WebId } return 0 } func (x *CreateServerRequest) GetReverseProxyJSON() []byte { if x != nil { return x.ReverseProxyJSON } return nil } func (x *CreateServerRequest) GetServerGroupIds() []int64 { if x != nil { return x.ServerGroupIds } return nil } func (x *CreateServerRequest) GetUserPlanId() int64 { if x != nil { return x.UserPlanId } return 0 } func (x *CreateServerRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *CreateServerRequest) GetIncludeNodesJSON() []byte { if x != nil { return x.IncludeNodesJSON } return nil } func (x *CreateServerRequest) GetExcludeNodesJSON() []byte { if x != nil { return x.ExcludeNodesJSON } return nil } type CreateServerResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 所创建的网站ID } func (x *CreateServerResponse) Reset() { *x = CreateServerResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateServerResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateServerResponse) ProtoMessage() {} func (x *CreateServerResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[1] 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 CreateServerResponse.ProtoReflect.Descriptor instead. func (*CreateServerResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{1} } func (x *CreateServerResponse) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } // 快速创建基本的HTTP网站 type CreateBasicHTTPServerRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 部署的集群ID,用户创建时不需要指定此项 UserId int64 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` // 管理员创建网站时可以指定此用户ID,也可以为0表示不指定 Domains []string `protobuf:"bytes,3,rep,name=domains,proto3" json:"domains,omitempty"` // 域名列表 SslCertIds []int64 `protobuf:"varint,4,rep,packed,name=sslCertIds,proto3" json:"sslCertIds,omitempty"` // HTTPS用到的证书ID列表 OriginAddrs []string `protobuf:"bytes,5,rep,name=originAddrs,proto3" json:"originAddrs,omitempty"` // 源站地址列表,每一个源站地址需要带协议部分,比如 http://example.com EnableWebsocket bool `protobuf:"varint,6,opt,name=enableWebsocket,proto3" json:"enableWebsocket,omitempty"` // 可选项,是否启用Websocket } func (x *CreateBasicHTTPServerRequest) Reset() { *x = CreateBasicHTTPServerRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateBasicHTTPServerRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateBasicHTTPServerRequest) ProtoMessage() {} func (x *CreateBasicHTTPServerRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[2] 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 CreateBasicHTTPServerRequest.ProtoReflect.Descriptor instead. func (*CreateBasicHTTPServerRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{2} } func (x *CreateBasicHTTPServerRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *CreateBasicHTTPServerRequest) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *CreateBasicHTTPServerRequest) GetDomains() []string { if x != nil { return x.Domains } return nil } func (x *CreateBasicHTTPServerRequest) GetSslCertIds() []int64 { if x != nil { return x.SslCertIds } return nil } func (x *CreateBasicHTTPServerRequest) GetOriginAddrs() []string { if x != nil { return x.OriginAddrs } return nil } func (x *CreateBasicHTTPServerRequest) GetEnableWebsocket() bool { if x != nil { return x.EnableWebsocket } return false } type CreateBasicHTTPServerResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 所创建的网站ID } func (x *CreateBasicHTTPServerResponse) Reset() { *x = CreateBasicHTTPServerResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateBasicHTTPServerResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateBasicHTTPServerResponse) ProtoMessage() {} func (x *CreateBasicHTTPServerResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[3] 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 CreateBasicHTTPServerResponse.ProtoReflect.Descriptor instead. func (*CreateBasicHTTPServerResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{3} } func (x *CreateBasicHTTPServerResponse) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } // 快速创建基本的TCP网站 type CreateBasicTCPServerRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 部署的集群ID,用户创建时不需要指定此项 UserId int64 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` // 管理员创建网站时可以指定此用户ID,也可以为0表示不指定 TcpPorts []int32 `protobuf:"varint,3,rep,packed,name=tcpPorts,proto3" json:"tcpPorts,omitempty"` // TCP端口 TlsPorts []int32 `protobuf:"varint,4,rep,packed,name=tlsPorts,proto3" json:"tlsPorts,omitempty"` // TLS端口 SslCertIds []int64 `protobuf:"varint,5,rep,packed,name=sslCertIds,proto3" json:"sslCertIds,omitempty"` // TLS用到的证书ID列表 OriginAddrs []string `protobuf:"bytes,6,rep,name=originAddrs,proto3" json:"originAddrs,omitempty"` // 源站地址列表,每一个源站地址需要带协议部分,比如 tcp://example.com, tls://example.com } func (x *CreateBasicTCPServerRequest) Reset() { *x = CreateBasicTCPServerRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateBasicTCPServerRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateBasicTCPServerRequest) ProtoMessage() {} func (x *CreateBasicTCPServerRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[4] 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 CreateBasicTCPServerRequest.ProtoReflect.Descriptor instead. func (*CreateBasicTCPServerRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{4} } func (x *CreateBasicTCPServerRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *CreateBasicTCPServerRequest) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *CreateBasicTCPServerRequest) GetTcpPorts() []int32 { if x != nil { return x.TcpPorts } return nil } func (x *CreateBasicTCPServerRequest) GetTlsPorts() []int32 { if x != nil { return x.TlsPorts } return nil } func (x *CreateBasicTCPServerRequest) GetSslCertIds() []int64 { if x != nil { return x.SslCertIds } return nil } func (x *CreateBasicTCPServerRequest) GetOriginAddrs() []string { if x != nil { return x.OriginAddrs } return nil } type CreateBasicTCPServerResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 所创建的网站ID } func (x *CreateBasicTCPServerResponse) Reset() { *x = CreateBasicTCPServerResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CreateBasicTCPServerResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CreateBasicTCPServerResponse) ProtoMessage() {} func (x *CreateBasicTCPServerResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[5] 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 CreateBasicTCPServerResponse.ProtoReflect.Descriptor instead. func (*CreateBasicTCPServerResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{5} } func (x *CreateBasicTCPServerResponse) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } // 为网站添加源站 type AddServerOriginRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID OriginId int64 `protobuf:"varint,2,opt,name=originId,proto3" json:"originId,omitempty"` // 源站ID,通过 OriginService 创建和查询 IsPrimary bool `protobuf:"varint,3,opt,name=isPrimary,proto3" json:"isPrimary,omitempty"` // 是否为主要源站 } func (x *AddServerOriginRequest) Reset() { *x = AddServerOriginRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AddServerOriginRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*AddServerOriginRequest) ProtoMessage() {} func (x *AddServerOriginRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[6] 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 AddServerOriginRequest.ProtoReflect.Descriptor instead. func (*AddServerOriginRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{6} } func (x *AddServerOriginRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *AddServerOriginRequest) GetOriginId() int64 { if x != nil { return x.OriginId } return 0 } func (x *AddServerOriginRequest) GetIsPrimary() bool { if x != nil { return x.IsPrimary } return false } // 从网站中删除某个源站 type DeleteServerOriginRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID OriginId int64 `protobuf:"varint,2,opt,name=originId,proto3" json:"originId,omitempty"` // 源站ID,通过 OriginService 创建和查询 } func (x *DeleteServerOriginRequest) Reset() { *x = DeleteServerOriginRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteServerOriginRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteServerOriginRequest) ProtoMessage() {} func (x *DeleteServerOriginRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[7] 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 DeleteServerOriginRequest.ProtoReflect.Descriptor instead. func (*DeleteServerOriginRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{7} } func (x *DeleteServerOriginRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *DeleteServerOriginRequest) GetOriginId() int64 { if x != nil { return x.OriginId } return 0 } // 修改网站基本信息 type UpdateServerBasicRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // 网站名称 Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` // 可选项,网站描述 NodeClusterId int64 `protobuf:"varint,4,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` // 集群ID KeepOldConfigs bool `protobuf:"varint,7,opt,name=keepOldConfigs,proto3" json:"keepOldConfigs,omitempty"` // 可选项,是否在老节点上保留一段时间配置 IsOn bool `protobuf:"varint,5,opt,name=isOn,proto3" json:"isOn,omitempty"` // 是否启用 ServerGroupIds []int64 `protobuf:"varint,6,rep,packed,name=serverGroupIds,proto3" json:"serverGroupIds,omitempty"` // 可选项,网站分组ID列表 } func (x *UpdateServerBasicRequest) Reset() { *x = UpdateServerBasicRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerBasicRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerBasicRequest) ProtoMessage() {} func (x *UpdateServerBasicRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[8] 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 UpdateServerBasicRequest.ProtoReflect.Descriptor instead. func (*UpdateServerBasicRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{8} } func (x *UpdateServerBasicRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerBasicRequest) GetName() string { if x != nil { return x.Name } return "" } func (x *UpdateServerBasicRequest) GetDescription() string { if x != nil { return x.Description } return "" } func (x *UpdateServerBasicRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *UpdateServerBasicRequest) GetKeepOldConfigs() bool { if x != nil { return x.KeepOldConfigs } return false } func (x *UpdateServerBasicRequest) GetIsOn() bool { if x != nil { return x.IsOn } return false } func (x *UpdateServerBasicRequest) GetServerGroupIds() []int64 { if x != nil { return x.ServerGroupIds } return nil } // 修改网站所在分组 type UpdateServerGroupIdsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID ServerGroupIds []int64 `protobuf:"varint,2,rep,packed,name=serverGroupIds,proto3" json:"serverGroupIds,omitempty"` } func (x *UpdateServerGroupIdsRequest) Reset() { *x = UpdateServerGroupIdsRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerGroupIdsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerGroupIdsRequest) ProtoMessage() {} func (x *UpdateServerGroupIdsRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[9] 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 UpdateServerGroupIdsRequest.ProtoReflect.Descriptor instead. func (*UpdateServerGroupIdsRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{9} } func (x *UpdateServerGroupIdsRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerGroupIdsRequest) GetServerGroupIds() []int64 { if x != nil { return x.ServerGroupIds } return nil } // 修改网站启是否启用 type UpdateServerIsOnRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID IsOn bool `protobuf:"varint,2,opt,name=isOn,proto3" json:"isOn,omitempty"` } func (x *UpdateServerIsOnRequest) Reset() { *x = UpdateServerIsOnRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerIsOnRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerIsOnRequest) ProtoMessage() {} func (x *UpdateServerIsOnRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[10] 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 UpdateServerIsOnRequest.ProtoReflect.Descriptor instead. func (*UpdateServerIsOnRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{10} } func (x *UpdateServerIsOnRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerIsOnRequest) GetIsOn() bool { if x != nil { return x.IsOn } return false } // 修改网站的HTTP等设置 type UpdateServerHTTPRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID HttpJSON []byte `protobuf:"bytes,2,opt,name=httpJSON,proto3" json:"httpJSON,omitempty"` // HTTP协议设置,当type为httpProxy或者httpWeb时填写 @link json:http_protocol } func (x *UpdateServerHTTPRequest) Reset() { *x = UpdateServerHTTPRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerHTTPRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerHTTPRequest) ProtoMessage() {} func (x *UpdateServerHTTPRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[11] 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 UpdateServerHTTPRequest.ProtoReflect.Descriptor instead. func (*UpdateServerHTTPRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{11} } func (x *UpdateServerHTTPRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerHTTPRequest) GetHttpJSON() []byte { if x != nil { return x.HttpJSON } return nil } type UpdateServerHTTPSRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID HttpsJSON []byte `protobuf:"bytes,2,opt,name=httpsJSON,proto3" json:"httpsJSON,omitempty"` // HTTPS协议设置,当type为httpProxy或者httpWeb时填写 @link json:https_protocol } func (x *UpdateServerHTTPSRequest) Reset() { *x = UpdateServerHTTPSRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerHTTPSRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerHTTPSRequest) ProtoMessage() {} func (x *UpdateServerHTTPSRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[12] 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 UpdateServerHTTPSRequest.ProtoReflect.Descriptor instead. func (*UpdateServerHTTPSRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{12} } func (x *UpdateServerHTTPSRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerHTTPSRequest) GetHttpsJSON() []byte { if x != nil { return x.HttpsJSON } return nil } type UpdateServerTCPRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID TcpJSON []byte `protobuf:"bytes,2,opt,name=tcpJSON,proto3" json:"tcpJSON,omitempty"` // TCP协议设置,当type为tcpProxy时填写 @link json:tcp_protocol } func (x *UpdateServerTCPRequest) Reset() { *x = UpdateServerTCPRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerTCPRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerTCPRequest) ProtoMessage() {} func (x *UpdateServerTCPRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[13] 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 UpdateServerTCPRequest.ProtoReflect.Descriptor instead. func (*UpdateServerTCPRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{13} } func (x *UpdateServerTCPRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerTCPRequest) GetTcpJSON() []byte { if x != nil { return x.TcpJSON } return nil } type UpdateServerTLSRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID TlsJSON []byte `protobuf:"bytes,2,opt,name=tlsJSON,proto3" json:"tlsJSON,omitempty"` // TLS协议设置,当type为tcpProxy时填写 @link json:tls_protocol } func (x *UpdateServerTLSRequest) Reset() { *x = UpdateServerTLSRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerTLSRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerTLSRequest) ProtoMessage() {} func (x *UpdateServerTLSRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[14] 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 UpdateServerTLSRequest.ProtoReflect.Descriptor instead. func (*UpdateServerTLSRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{14} } func (x *UpdateServerTLSRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerTLSRequest) GetTlsJSON() []byte { if x != nil { return x.TlsJSON } return nil } type UpdateServerUnixRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID UnixJSON []byte `protobuf:"bytes,2,opt,name=unixJSON,proto3" json:"unixJSON,omitempty"` } func (x *UpdateServerUnixRequest) Reset() { *x = UpdateServerUnixRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerUnixRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerUnixRequest) ProtoMessage() {} func (x *UpdateServerUnixRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[15] 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 UpdateServerUnixRequest.ProtoReflect.Descriptor instead. func (*UpdateServerUnixRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{15} } func (x *UpdateServerUnixRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerUnixRequest) GetUnixJSON() []byte { if x != nil { return x.UnixJSON } return nil } type UpdateServerUDPRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID UdpJSON []byte `protobuf:"bytes,2,opt,name=udpJSON,proto3" json:"udpJSON,omitempty"` // UDP协议设置,当type为udpProxy时填写 @link json:udp_protocol } func (x *UpdateServerUDPRequest) Reset() { *x = UpdateServerUDPRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerUDPRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerUDPRequest) ProtoMessage() {} func (x *UpdateServerUDPRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[16] 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 UpdateServerUDPRequest.ProtoReflect.Descriptor instead. func (*UpdateServerUDPRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{16} } func (x *UpdateServerUDPRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerUDPRequest) GetUdpJSON() []byte { if x != nil { return x.UdpJSON } return nil } type UpdateServerWebRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID WebId int64 `protobuf:"varint,2,opt,name=webId,proto3" json:"webId,omitempty"` } func (x *UpdateServerWebRequest) Reset() { *x = UpdateServerWebRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerWebRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerWebRequest) ProtoMessage() {} func (x *UpdateServerWebRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[17] 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 UpdateServerWebRequest.ProtoReflect.Descriptor instead. func (*UpdateServerWebRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{17} } func (x *UpdateServerWebRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerWebRequest) GetWebId() int64 { if x != nil { return x.WebId } return 0 } // 修改网站的反向代理设置 type UpdateServerReverseProxyRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID ReverseProxyJSON []byte `protobuf:"bytes,2,opt,name=reverseProxyJSON,proto3" json:"reverseProxyJSON,omitempty"` // 反向代理(包含源站)配置引用,此项可以在创建网站后再设置 @link json:reverse_proxy_ref } func (x *UpdateServerReverseProxyRequest) Reset() { *x = UpdateServerReverseProxyRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerReverseProxyRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerReverseProxyRequest) ProtoMessage() {} func (x *UpdateServerReverseProxyRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[18] 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 UpdateServerReverseProxyRequest.ProtoReflect.Descriptor instead. func (*UpdateServerReverseProxyRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{18} } func (x *UpdateServerReverseProxyRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerReverseProxyRequest) GetReverseProxyJSON() []byte { if x != nil { return x.ReverseProxyJSON } return nil } // 查找网站的域名设置 type FindServerNamesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *FindServerNamesRequest) Reset() { *x = FindServerNamesRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindServerNamesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindServerNamesRequest) ProtoMessage() {} func (x *FindServerNamesRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[19] 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 FindServerNamesRequest.ProtoReflect.Descriptor instead. func (*FindServerNamesRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{19} } func (x *FindServerNamesRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } type FindServerNamesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerNamesJSON []byte `protobuf:"bytes,1,opt,name=serverNamesJSON,proto3" json:"serverNamesJSON,omitempty"` // 域名列表 @link json:server_names IsAuditing bool `protobuf:"varint,2,opt,name=isAuditing,proto3" json:"isAuditing,omitempty"` AuditingAt int64 `protobuf:"varint,5,opt,name=auditingAt,proto3" json:"auditingAt,omitempty"` AuditingServerNamesJSON []byte `protobuf:"bytes,3,opt,name=auditingServerNamesJSON,proto3" json:"auditingServerNamesJSON,omitempty"` AuditingResult *ServerNameAuditingResult `protobuf:"bytes,4,opt,name=auditingResult,proto3" json:"auditingResult,omitempty"` } func (x *FindServerNamesResponse) Reset() { *x = FindServerNamesResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindServerNamesResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindServerNamesResponse) ProtoMessage() {} func (x *FindServerNamesResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[20] 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 FindServerNamesResponse.ProtoReflect.Descriptor instead. func (*FindServerNamesResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{20} } func (x *FindServerNamesResponse) GetServerNamesJSON() []byte { if x != nil { return x.ServerNamesJSON } return nil } func (x *FindServerNamesResponse) GetIsAuditing() bool { if x != nil { return x.IsAuditing } return false } func (x *FindServerNamesResponse) GetAuditingAt() int64 { if x != nil { return x.AuditingAt } return 0 } func (x *FindServerNamesResponse) GetAuditingServerNamesJSON() []byte { if x != nil { return x.AuditingServerNamesJSON } return nil } func (x *FindServerNamesResponse) GetAuditingResult() *ServerNameAuditingResult { if x != nil { return x.AuditingResult } return nil } // 修改网站的域名设置 type UpdateServerNamesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID ServerNamesJSON []byte `protobuf:"bytes,2,opt,name=serverNamesJSON,proto3" json:"serverNamesJSON,omitempty"` // 域名列表 @link json:server_names } func (x *UpdateServerNamesRequest) Reset() { *x = UpdateServerNamesRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerNamesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerNamesRequest) ProtoMessage() {} func (x *UpdateServerNamesRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[21] 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 UpdateServerNamesRequest.ProtoReflect.Descriptor instead. func (*UpdateServerNamesRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{21} } func (x *UpdateServerNamesRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerNamesRequest) GetServerNamesJSON() []byte { if x != nil { return x.ServerNamesJSON } return nil } // 审核网站的域名设置 type UpdateServerNamesAuditingRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID AuditingResult *ServerNameAuditingResult `protobuf:"bytes,2,opt,name=auditingResult,proto3" json:"auditingResult,omitempty"` } func (x *UpdateServerNamesAuditingRequest) Reset() { *x = UpdateServerNamesAuditingRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerNamesAuditingRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerNamesAuditingRequest) ProtoMessage() {} func (x *UpdateServerNamesAuditingRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[22] 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 UpdateServerNamesAuditingRequest.ProtoReflect.Descriptor instead. func (*UpdateServerNamesAuditingRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{22} } func (x *UpdateServerNamesAuditingRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerNamesAuditingRequest) GetAuditingResult() *ServerNameAuditingResult { if x != nil { return x.AuditingResult } return nil } // 修改网站的DNS相关设置 type UpdateServerDNSRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID SupportCNAME bool `protobuf:"varint,2,opt,name=supportCNAME,proto3" json:"supportCNAME,omitempty"` } func (x *UpdateServerDNSRequest) Reset() { *x = UpdateServerDNSRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerDNSRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerDNSRequest) ProtoMessage() {} func (x *UpdateServerDNSRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_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 UpdateServerDNSRequest.ProtoReflect.Descriptor instead. func (*UpdateServerDNSRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{23} } func (x *UpdateServerDNSRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerDNSRequest) GetSupportCNAME() bool { if x != nil { return x.SupportCNAME } return false } // 重新生成CNAME type RegenerateServerDNSNameRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *RegenerateServerDNSNameRequest) Reset() { *x = RegenerateServerDNSNameRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RegenerateServerDNSNameRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*RegenerateServerDNSNameRequest) ProtoMessage() {} func (x *RegenerateServerDNSNameRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_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 RegenerateServerDNSNameRequest.ProtoReflect.Descriptor instead. func (*RegenerateServerDNSNameRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{24} } func (x *RegenerateServerDNSNameRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } // 修改网站的CNAME type UpdateServerDNSNameRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID DnsName string `protobuf:"bytes,2,opt,name=dnsName,proto3" json:"dnsName,omitempty"` } func (x *UpdateServerDNSNameRequest) Reset() { *x = UpdateServerDNSNameRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerDNSNameRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerDNSNameRequest) ProtoMessage() {} func (x *UpdateServerDNSNameRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_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 UpdateServerDNSNameRequest.ProtoReflect.Descriptor instead. func (*UpdateServerDNSNameRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{25} } func (x *UpdateServerDNSNameRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerDNSNameRequest) GetDnsName() string { if x != nil { return x.DnsName } return "" } // 使用CNAME查找网站 type FindServerIdWithDNSNameRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` DnsName string `protobuf:"bytes,2,opt,name=dnsName,proto3" json:"dnsName,omitempty"` } func (x *FindServerIdWithDNSNameRequest) Reset() { *x = FindServerIdWithDNSNameRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindServerIdWithDNSNameRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindServerIdWithDNSNameRequest) ProtoMessage() {} func (x *FindServerIdWithDNSNameRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_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 FindServerIdWithDNSNameRequest.ProtoReflect.Descriptor instead. func (*FindServerIdWithDNSNameRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{26} } func (x *FindServerIdWithDNSNameRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *FindServerIdWithDNSNameRequest) GetDnsName() string { if x != nil { return x.DnsName } return "" } type FindServerIdWithDNSNameResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *FindServerIdWithDNSNameResponse) Reset() { *x = FindServerIdWithDNSNameResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindServerIdWithDNSNameResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindServerIdWithDNSNameResponse) ProtoMessage() {} func (x *FindServerIdWithDNSNameResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[27] 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 FindServerIdWithDNSNameResponse.ProtoReflect.Descriptor instead. func (*FindServerIdWithDNSNameResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{27} } func (x *FindServerIdWithDNSNameResponse) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } // 计算网站数量 type CountAllEnabledServersMatchRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerGroupId int64 `protobuf:"varint,1,opt,name=serverGroupId,proto3" json:"serverGroupId,omitempty"` // 网站分组ID,如果为-1表示查找未分组 Keyword string `protobuf:"bytes,2,opt,name=keyword,proto3" json:"keyword,omitempty"` UserId int64 `protobuf:"varint,3,opt,name=userId,proto3" json:"userId,omitempty"` NodeClusterId int64 `protobuf:"varint,4,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` AuditingFlag int32 `protobuf:"varint,5,opt,name=auditingFlag,proto3" json:"auditingFlag,omitempty"` ProtocolFamily string `protobuf:"bytes,6,opt,name=protocolFamily,proto3" json:"protocolFamily,omitempty"` UserPlanId int64 `protobuf:"varint,7,opt,name=userPlanId,proto3" json:"userPlanId,omitempty"` // 用户套餐ID } func (x *CountAllEnabledServersMatchRequest) Reset() { *x = CountAllEnabledServersMatchRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllEnabledServersMatchRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllEnabledServersMatchRequest) ProtoMessage() {} func (x *CountAllEnabledServersMatchRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[28] 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 CountAllEnabledServersMatchRequest.ProtoReflect.Descriptor instead. func (*CountAllEnabledServersMatchRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{28} } func (x *CountAllEnabledServersMatchRequest) GetServerGroupId() int64 { if x != nil { return x.ServerGroupId } return 0 } func (x *CountAllEnabledServersMatchRequest) GetKeyword() string { if x != nil { return x.Keyword } return "" } func (x *CountAllEnabledServersMatchRequest) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *CountAllEnabledServersMatchRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *CountAllEnabledServersMatchRequest) GetAuditingFlag() int32 { if x != nil { return x.AuditingFlag } return 0 } func (x *CountAllEnabledServersMatchRequest) GetProtocolFamily() string { if x != nil { return x.ProtocolFamily } return "" } func (x *CountAllEnabledServersMatchRequest) GetUserPlanId() int64 { if x != nil { return x.UserPlanId } return 0 } // 列出单页网站 type ListEnabledServersMatchRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Offset int64 `protobuf:"varint,1,opt,name=offset,proto3" json:"offset,omitempty"` Size int64 `protobuf:"varint,2,opt,name=size,proto3" json:"size,omitempty"` ServerGroupId int64 `protobuf:"varint,3,opt,name=serverGroupId,proto3" json:"serverGroupId,omitempty"` // 网站分组ID,如果为-1表示查找未分组 Keyword string `protobuf:"bytes,4,opt,name=keyword,proto3" json:"keyword,omitempty"` UserId int64 `protobuf:"varint,5,opt,name=userId,proto3" json:"userId,omitempty"` NodeClusterId int64 `protobuf:"varint,6,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` AuditingFlag int32 `protobuf:"varint,7,opt,name=auditingFlag,proto3" json:"auditingFlag,omitempty"` ProtocolFamily string `protobuf:"bytes,8,opt,name=protocolFamily,proto3" json:"protocolFamily,omitempty"` TrafficOutAsc bool `protobuf:"varint,9,opt,name=trafficOutAsc,proto3" json:"trafficOutAsc,omitempty"` // 是否流量正排序 TrafficOutDesc bool `protobuf:"varint,10,opt,name=trafficOutDesc,proto3" json:"trafficOutDesc,omitempty"` // 是否流量倒排序 RequestsAsc bool `protobuf:"varint,13,opt,name=requestsAsc,proto3" json:"requestsAsc,omitempty"` // 请求数正排序 RequestsDesc bool `protobuf:"varint,14,opt,name=requestsDesc,proto3" json:"requestsDesc,omitempty"` // 请求数倒排序 AttackRequestsAsc bool `protobuf:"varint,15,opt,name=attackRequestsAsc,proto3" json:"attackRequestsAsc,omitempty"` // 攻击请求数正排序 AttackRequestsDesc bool `protobuf:"varint,16,opt,name=attackRequestsDesc,proto3" json:"attackRequestsDesc,omitempty"` // 攻击请求数倒排序 IgnoreServerNames bool `protobuf:"varint,11,opt,name=ignoreServerNames,proto3" json:"ignoreServerNames,omitempty"` // 忽略域名 IgnoreSSLCerts bool `protobuf:"varint,12,opt,name=ignoreSSLCerts,proto3" json:"ignoreSSLCerts,omitempty"` // 忽略证书 } func (x *ListEnabledServersMatchRequest) Reset() { *x = ListEnabledServersMatchRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListEnabledServersMatchRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListEnabledServersMatchRequest) ProtoMessage() {} func (x *ListEnabledServersMatchRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[29] 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 ListEnabledServersMatchRequest.ProtoReflect.Descriptor instead. func (*ListEnabledServersMatchRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{29} } func (x *ListEnabledServersMatchRequest) GetOffset() int64 { if x != nil { return x.Offset } return 0 } func (x *ListEnabledServersMatchRequest) GetSize() int64 { if x != nil { return x.Size } return 0 } func (x *ListEnabledServersMatchRequest) GetServerGroupId() int64 { if x != nil { return x.ServerGroupId } return 0 } func (x *ListEnabledServersMatchRequest) GetKeyword() string { if x != nil { return x.Keyword } return "" } func (x *ListEnabledServersMatchRequest) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *ListEnabledServersMatchRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *ListEnabledServersMatchRequest) GetAuditingFlag() int32 { if x != nil { return x.AuditingFlag } return 0 } func (x *ListEnabledServersMatchRequest) GetProtocolFamily() string { if x != nil { return x.ProtocolFamily } return "" } func (x *ListEnabledServersMatchRequest) GetTrafficOutAsc() bool { if x != nil { return x.TrafficOutAsc } return false } func (x *ListEnabledServersMatchRequest) GetTrafficOutDesc() bool { if x != nil { return x.TrafficOutDesc } return false } func (x *ListEnabledServersMatchRequest) GetRequestsAsc() bool { if x != nil { return x.RequestsAsc } return false } func (x *ListEnabledServersMatchRequest) GetRequestsDesc() bool { if x != nil { return x.RequestsDesc } return false } func (x *ListEnabledServersMatchRequest) GetAttackRequestsAsc() bool { if x != nil { return x.AttackRequestsAsc } return false } func (x *ListEnabledServersMatchRequest) GetAttackRequestsDesc() bool { if x != nil { return x.AttackRequestsDesc } return false } func (x *ListEnabledServersMatchRequest) GetIgnoreServerNames() bool { if x != nil { return x.IgnoreServerNames } return false } func (x *ListEnabledServersMatchRequest) GetIgnoreSSLCerts() bool { if x != nil { return x.IgnoreSSLCerts } return false } type ListEnabledServersMatchResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Servers []*Server `protobuf:"bytes,1,rep,name=servers,proto3" json:"servers,omitempty"` } func (x *ListEnabledServersMatchResponse) Reset() { *x = ListEnabledServersMatchResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListEnabledServersMatchResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListEnabledServersMatchResponse) ProtoMessage() {} func (x *ListEnabledServersMatchResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_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 ListEnabledServersMatchResponse.ProtoReflect.Descriptor instead. func (*ListEnabledServersMatchResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{30} } func (x *ListEnabledServersMatchResponse) GetServers() []*Server { if x != nil { return x.Servers } return nil } // 删除某网站 type DeleteServerRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *DeleteServerRequest) Reset() { *x = DeleteServerRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteServerRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteServerRequest) ProtoMessage() {} func (x *DeleteServerRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_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 DeleteServerRequest.ProtoReflect.Descriptor instead. func (*DeleteServerRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{31} } func (x *DeleteServerRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } // 删除一组网站 type DeleteServersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerIds []int64 `protobuf:"varint,1,rep,packed,name=serverIds,proto3" json:"serverIds,omitempty"` // 网站ID列表:[1, 2, ...] } func (x *DeleteServersRequest) Reset() { *x = DeleteServersRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *DeleteServersRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*DeleteServersRequest) ProtoMessage() {} func (x *DeleteServersRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_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 DeleteServersRequest.ProtoReflect.Descriptor instead. func (*DeleteServersRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{32} } func (x *DeleteServersRequest) GetServerIds() []int64 { if x != nil { return x.ServerIds } return nil } // 查找单个网站 type FindEnabledServerRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID IgnoreSSLCerts bool `protobuf:"varint,2,opt,name=ignoreSSLCerts,proto3" json:"ignoreSSLCerts,omitempty"` // 忽略SSL证书数据 } func (x *FindEnabledServerRequest) Reset() { *x = FindEnabledServerRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledServerRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledServerRequest) ProtoMessage() {} func (x *FindEnabledServerRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[33] 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 FindEnabledServerRequest.ProtoReflect.Descriptor instead. func (*FindEnabledServerRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{33} } func (x *FindEnabledServerRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *FindEnabledServerRequest) GetIgnoreSSLCerts() bool { if x != nil { return x.IgnoreSSLCerts } return false } type FindEnabledServerResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Server *Server `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"` // 网站信息 } func (x *FindEnabledServerResponse) Reset() { *x = FindEnabledServerResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledServerResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledServerResponse) ProtoMessage() {} func (x *FindEnabledServerResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[34] 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 FindEnabledServerResponse.ProtoReflect.Descriptor instead. func (*FindEnabledServerResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{34} } func (x *FindEnabledServerResponse) GetServer() *Server { if x != nil { return x.Server } return nil } // 查找网站配置 type FindEnabledServerConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *FindEnabledServerConfigRequest) Reset() { *x = FindEnabledServerConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledServerConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledServerConfigRequest) ProtoMessage() {} func (x *FindEnabledServerConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[35] 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 FindEnabledServerConfigRequest.ProtoReflect.Descriptor instead. func (*FindEnabledServerConfigRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{35} } func (x *FindEnabledServerConfigRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } type FindEnabledServerConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerJSON []byte `protobuf:"bytes,1,opt,name=serverJSON,proto3" json:"serverJSON,omitempty"` } func (x *FindEnabledServerConfigResponse) Reset() { *x = FindEnabledServerConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledServerConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledServerConfigResponse) ProtoMessage() {} func (x *FindEnabledServerConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[36] 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 FindEnabledServerConfigResponse.ProtoReflect.Descriptor instead. func (*FindEnabledServerConfigResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{36} } func (x *FindEnabledServerConfigResponse) GetServerJSON() []byte { if x != nil { return x.ServerJSON } return nil } // 查找网站的网站类型 type FindEnabledServerTypeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *FindEnabledServerTypeRequest) Reset() { *x = FindEnabledServerTypeRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledServerTypeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledServerTypeRequest) ProtoMessage() {} func (x *FindEnabledServerTypeRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[37] 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 FindEnabledServerTypeRequest.ProtoReflect.Descriptor instead. func (*FindEnabledServerTypeRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{37} } func (x *FindEnabledServerTypeRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } type FindEnabledServerTypeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` } func (x *FindEnabledServerTypeResponse) Reset() { *x = FindEnabledServerTypeResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledServerTypeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledServerTypeResponse) ProtoMessage() {} func (x *FindEnabledServerTypeResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[38] 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 FindEnabledServerTypeResponse.ProtoReflect.Descriptor instead. func (*FindEnabledServerTypeResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{38} } func (x *FindEnabledServerTypeResponse) GetType() string { if x != nil { return x.Type } return "" } // 查找反向代理设置 type FindAndInitServerReverseProxyConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *FindAndInitServerReverseProxyConfigRequest) Reset() { *x = FindAndInitServerReverseProxyConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAndInitServerReverseProxyConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAndInitServerReverseProxyConfigRequest) ProtoMessage() {} func (x *FindAndInitServerReverseProxyConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[39] 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 FindAndInitServerReverseProxyConfigRequest.ProtoReflect.Descriptor instead. func (*FindAndInitServerReverseProxyConfigRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{39} } func (x *FindAndInitServerReverseProxyConfigRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } type FindAndInitServerReverseProxyConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ReverseProxyJSON []byte `protobuf:"bytes,1,opt,name=reverseProxyJSON,proto3" json:"reverseProxyJSON,omitempty"` ReverseProxyRefJSON []byte `protobuf:"bytes,2,opt,name=reverseProxyRefJSON,proto3" json:"reverseProxyRefJSON,omitempty"` } func (x *FindAndInitServerReverseProxyConfigResponse) Reset() { *x = FindAndInitServerReverseProxyConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAndInitServerReverseProxyConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAndInitServerReverseProxyConfigResponse) ProtoMessage() {} func (x *FindAndInitServerReverseProxyConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[40] 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 FindAndInitServerReverseProxyConfigResponse.ProtoReflect.Descriptor instead. func (*FindAndInitServerReverseProxyConfigResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{40} } func (x *FindAndInitServerReverseProxyConfigResponse) GetReverseProxyJSON() []byte { if x != nil { return x.ReverseProxyJSON } return nil } func (x *FindAndInitServerReverseProxyConfigResponse) GetReverseProxyRefJSON() []byte { if x != nil { return x.ReverseProxyRefJSON } return nil } // 初始化Web设置 type FindAndInitServerWebConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *FindAndInitServerWebConfigRequest) Reset() { *x = FindAndInitServerWebConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAndInitServerWebConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAndInitServerWebConfigRequest) ProtoMessage() {} func (x *FindAndInitServerWebConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[41] 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 FindAndInitServerWebConfigRequest.ProtoReflect.Descriptor instead. func (*FindAndInitServerWebConfigRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{41} } func (x *FindAndInitServerWebConfigRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } type FindAndInitServerWebConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields WebJSON []byte `protobuf:"bytes,1,opt,name=webJSON,proto3" json:"webJSON,omitempty"` } func (x *FindAndInitServerWebConfigResponse) Reset() { *x = FindAndInitServerWebConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAndInitServerWebConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAndInitServerWebConfigResponse) ProtoMessage() {} func (x *FindAndInitServerWebConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[42] 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 FindAndInitServerWebConfigResponse.ProtoReflect.Descriptor instead. func (*FindAndInitServerWebConfigResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{42} } func (x *FindAndInitServerWebConfigResponse) GetWebJSON() []byte { if x != nil { return x.WebJSON } return nil } // 计算使用某个SSL证书的网站数量 type CountAllEnabledServersWithSSLCertIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SslCertId int64 `protobuf:"varint,1,opt,name=sslCertId,proto3" json:"sslCertId,omitempty"` } func (x *CountAllEnabledServersWithSSLCertIdRequest) Reset() { *x = CountAllEnabledServersWithSSLCertIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllEnabledServersWithSSLCertIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllEnabledServersWithSSLCertIdRequest) ProtoMessage() {} func (x *CountAllEnabledServersWithSSLCertIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[43] 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 CountAllEnabledServersWithSSLCertIdRequest.ProtoReflect.Descriptor instead. func (*CountAllEnabledServersWithSSLCertIdRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{43} } func (x *CountAllEnabledServersWithSSLCertIdRequest) GetSslCertId() int64 { if x != nil { return x.SslCertId } return 0 } // 查找使用某个SSL证书的所有网站 type FindAllEnabledServersWithSSLCertIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields SslCertId int64 `protobuf:"varint,1,opt,name=sslCertId,proto3" json:"sslCertId,omitempty"` } func (x *FindAllEnabledServersWithSSLCertIdRequest) Reset() { *x = FindAllEnabledServersWithSSLCertIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledServersWithSSLCertIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledServersWithSSLCertIdRequest) ProtoMessage() {} func (x *FindAllEnabledServersWithSSLCertIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[44] 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 FindAllEnabledServersWithSSLCertIdRequest.ProtoReflect.Descriptor instead. func (*FindAllEnabledServersWithSSLCertIdRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{44} } func (x *FindAllEnabledServersWithSSLCertIdRequest) GetSslCertId() int64 { if x != nil { return x.SslCertId } return 0 } type FindAllEnabledServersWithSSLCertIdResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Servers []*Server `protobuf:"bytes,1,rep,name=servers,proto3" json:"servers,omitempty"` } func (x *FindAllEnabledServersWithSSLCertIdResponse) Reset() { *x = FindAllEnabledServersWithSSLCertIdResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledServersWithSSLCertIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledServersWithSSLCertIdResponse) ProtoMessage() {} func (x *FindAllEnabledServersWithSSLCertIdResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[45] 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 FindAllEnabledServersWithSSLCertIdResponse.ProtoReflect.Descriptor instead. func (*FindAllEnabledServersWithSSLCertIdResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{45} } func (x *FindAllEnabledServersWithSSLCertIdResponse) GetServers() []*Server { if x != nil { return x.Servers } return nil } // 计算运行在某个集群上的所有网站数量 type CountAllEnabledServersWithNodeClusterIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *CountAllEnabledServersWithNodeClusterIdRequest) Reset() { *x = CountAllEnabledServersWithNodeClusterIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllEnabledServersWithNodeClusterIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllEnabledServersWithNodeClusterIdRequest) ProtoMessage() {} func (x *CountAllEnabledServersWithNodeClusterIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[46] 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 CountAllEnabledServersWithNodeClusterIdRequest.ProtoReflect.Descriptor instead. func (*CountAllEnabledServersWithNodeClusterIdRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{46} } func (x *CountAllEnabledServersWithNodeClusterIdRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } // 计算使用某个分组的网站数量 type CountAllEnabledServersWithServerGroupIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerGroupId int64 `protobuf:"varint,1,opt,name=serverGroupId,proto3" json:"serverGroupId,omitempty"` } func (x *CountAllEnabledServersWithServerGroupIdRequest) Reset() { *x = CountAllEnabledServersWithServerGroupIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllEnabledServersWithServerGroupIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllEnabledServersWithServerGroupIdRequest) ProtoMessage() {} func (x *CountAllEnabledServersWithServerGroupIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[47] 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 CountAllEnabledServersWithServerGroupIdRequest.ProtoReflect.Descriptor instead. func (*CountAllEnabledServersWithServerGroupIdRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{47} } func (x *CountAllEnabledServersWithServerGroupIdRequest) GetServerGroupId() int64 { if x != nil { return x.ServerGroupId } return 0 } // 通知更新 type NotifyServersChangeRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *NotifyServersChangeRequest) Reset() { *x = NotifyServersChangeRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NotifyServersChangeRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*NotifyServersChangeRequest) ProtoMessage() {} func (x *NotifyServersChangeRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[48] 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 NotifyServersChangeRequest.ProtoReflect.Descriptor instead. func (*NotifyServersChangeRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{48} } type NotifyServersChangeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *NotifyServersChangeResponse) Reset() { *x = NotifyServersChangeResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *NotifyServersChangeResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*NotifyServersChangeResponse) ProtoMessage() {} func (x *NotifyServersChangeResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[49] 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 NotifyServersChangeResponse.ProtoReflect.Descriptor instead. func (*NotifyServersChangeResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{49} } // 取得某个集群下的所有网站相关的DNS type FindAllEnabledServersDNSWithNodeClusterIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` } func (x *FindAllEnabledServersDNSWithNodeClusterIdRequest) Reset() { *x = FindAllEnabledServersDNSWithNodeClusterIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledServersDNSWithNodeClusterIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledServersDNSWithNodeClusterIdRequest) ProtoMessage() {} func (x *FindAllEnabledServersDNSWithNodeClusterIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[50] 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 FindAllEnabledServersDNSWithNodeClusterIdRequest.ProtoReflect.Descriptor instead. func (*FindAllEnabledServersDNSWithNodeClusterIdRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{50} } func (x *FindAllEnabledServersDNSWithNodeClusterIdRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } type FindAllEnabledServersDNSWithNodeClusterIdResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Servers []*ServerDNSInfo `protobuf:"bytes,1,rep,name=servers,proto3" json:"servers,omitempty"` } func (x *FindAllEnabledServersDNSWithNodeClusterIdResponse) Reset() { *x = FindAllEnabledServersDNSWithNodeClusterIdResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledServersDNSWithNodeClusterIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledServersDNSWithNodeClusterIdResponse) ProtoMessage() {} func (x *FindAllEnabledServersDNSWithNodeClusterIdResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[51] 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 FindAllEnabledServersDNSWithNodeClusterIdResponse.ProtoReflect.Descriptor instead. func (*FindAllEnabledServersDNSWithNodeClusterIdResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{51} } func (x *FindAllEnabledServersDNSWithNodeClusterIdResponse) GetServers() []*ServerDNSInfo { if x != nil { return x.Servers } return nil } type ServerDNSInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id int64 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` DnsName string `protobuf:"bytes,3,opt,name=dnsName,proto3" json:"dnsName,omitempty"` } func (x *ServerDNSInfo) Reset() { *x = ServerDNSInfo{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ServerDNSInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*ServerDNSInfo) ProtoMessage() {} func (x *ServerDNSInfo) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[52] 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 ServerDNSInfo.ProtoReflect.Descriptor instead. func (*ServerDNSInfo) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{52} } func (x *ServerDNSInfo) GetId() int64 { if x != nil { return x.Id } return 0 } func (x *ServerDNSInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *ServerDNSInfo) GetDnsName() string { if x != nil { return x.DnsName } return "" } // 查找单个网站的DNS信息 type FindEnabledServerDNSRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *FindEnabledServerDNSRequest) Reset() { *x = FindEnabledServerDNSRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledServerDNSRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledServerDNSRequest) ProtoMessage() {} func (x *FindEnabledServerDNSRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[53] 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 FindEnabledServerDNSRequest.ProtoReflect.Descriptor instead. func (*FindEnabledServerDNSRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{53} } func (x *FindEnabledServerDNSRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } type FindEnabledServerDNSResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DnsName string `protobuf:"bytes,1,opt,name=dnsName,proto3" json:"dnsName,omitempty"` Domain *DNSDomain `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"` SupportCNAME bool `protobuf:"varint,3,opt,name=supportCNAME,proto3" json:"supportCNAME,omitempty"` } func (x *FindEnabledServerDNSResponse) Reset() { *x = FindEnabledServerDNSResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledServerDNSResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledServerDNSResponse) ProtoMessage() {} func (x *FindEnabledServerDNSResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[54] 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 FindEnabledServerDNSResponse.ProtoReflect.Descriptor instead. func (*FindEnabledServerDNSResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{54} } func (x *FindEnabledServerDNSResponse) GetDnsName() string { if x != nil { return x.DnsName } return "" } func (x *FindEnabledServerDNSResponse) GetDomain() *DNSDomain { if x != nil { return x.Domain } return nil } func (x *FindEnabledServerDNSResponse) GetSupportCNAME() bool { if x != nil { return x.SupportCNAME } return false } // 检查网站是否属于某个用户 type CheckUserServerRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *CheckUserServerRequest) Reset() { *x = CheckUserServerRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckUserServerRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckUserServerRequest) ProtoMessage() {} func (x *CheckUserServerRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[55] 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 CheckUserServerRequest.ProtoReflect.Descriptor instead. func (*CheckUserServerRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{55} } func (x *CheckUserServerRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } // 查找一个用户下的所有域名列表 type FindAllEnabledServerNamesWithUserIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` } func (x *FindAllEnabledServerNamesWithUserIdRequest) Reset() { *x = FindAllEnabledServerNamesWithUserIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledServerNamesWithUserIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledServerNamesWithUserIdRequest) ProtoMessage() {} func (x *FindAllEnabledServerNamesWithUserIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[56] 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 FindAllEnabledServerNamesWithUserIdRequest.ProtoReflect.Descriptor instead. func (*FindAllEnabledServerNamesWithUserIdRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{56} } func (x *FindAllEnabledServerNamesWithUserIdRequest) GetUserId() int64 { if x != nil { return x.UserId } return 0 } type FindAllEnabledServerNamesWithUserIdResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerNames []string `protobuf:"bytes,1,rep,name=serverNames,proto3" json:"serverNames,omitempty"` } func (x *FindAllEnabledServerNamesWithUserIdResponse) Reset() { *x = FindAllEnabledServerNamesWithUserIdResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllEnabledServerNamesWithUserIdResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllEnabledServerNamesWithUserIdResponse) ProtoMessage() {} func (x *FindAllEnabledServerNamesWithUserIdResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[57] 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 FindAllEnabledServerNamesWithUserIdResponse.ProtoReflect.Descriptor instead. func (*FindAllEnabledServerNamesWithUserIdResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{57} } func (x *FindAllEnabledServerNamesWithUserIdResponse) GetServerNames() []string { if x != nil { return x.ServerNames } return nil } // 计算一个用户下的所有域名数量 type CountAllServerNamesWithUserIdRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` // 用户ID UserPlanId int64 `protobuf:"varint,2,opt,name=userPlanId,proto3" json:"userPlanId,omitempty"` // 用户套餐ID } func (x *CountAllServerNamesWithUserIdRequest) Reset() { *x = CountAllServerNamesWithUserIdRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllServerNamesWithUserIdRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllServerNamesWithUserIdRequest) ProtoMessage() {} func (x *CountAllServerNamesWithUserIdRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[58] 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 CountAllServerNamesWithUserIdRequest.ProtoReflect.Descriptor instead. func (*CountAllServerNamesWithUserIdRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{58} } func (x *CountAllServerNamesWithUserIdRequest) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *CountAllServerNamesWithUserIdRequest) GetUserPlanId() int64 { if x != nil { return x.UserPlanId } return 0 } // 计算某个网站下的域名数量 type CountServerNamesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *CountServerNamesRequest) Reset() { *x = CountServerNamesRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountServerNamesRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountServerNamesRequest) ProtoMessage() {} func (x *CountServerNamesRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[59] 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 CountServerNamesRequest.ProtoReflect.Descriptor instead. func (*CountServerNamesRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{59} } func (x *CountServerNamesRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } // 查找一个用户下的所有网站 type FindAllUserServersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` } func (x *FindAllUserServersRequest) Reset() { *x = FindAllUserServersRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllUserServersRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllUserServersRequest) ProtoMessage() {} func (x *FindAllUserServersRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[60] 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 FindAllUserServersRequest.ProtoReflect.Descriptor instead. func (*FindAllUserServersRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{60} } func (x *FindAllUserServersRequest) GetUserId() int64 { if x != nil { return x.UserId } return 0 } type FindAllUserServersResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Servers []*Server `protobuf:"bytes,1,rep,name=servers,proto3" json:"servers,omitempty"` // 只返回一些简要信息 } func (x *FindAllUserServersResponse) Reset() { *x = FindAllUserServersResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindAllUserServersResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindAllUserServersResponse) ProtoMessage() {} func (x *FindAllUserServersResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[61] 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 FindAllUserServersResponse.ProtoReflect.Descriptor instead. func (*FindAllUserServersResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{61} } func (x *FindAllUserServersResponse) GetServers() []*Server { if x != nil { return x.Servers } return nil } // 计算一个用户下的所有网站数量 type CountAllUserServersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` // 用户ID UserPlanId int64 `protobuf:"varint,2,opt,name=userPlanId,proto3" json:"userPlanId,omitempty"` // 用户套餐ID } func (x *CountAllUserServersRequest) Reset() { *x = CountAllUserServersRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CountAllUserServersRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CountAllUserServersRequest) ProtoMessage() {} func (x *CountAllUserServersRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[62] 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 CountAllUserServersRequest.ProtoReflect.Descriptor instead. func (*CountAllUserServersRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{62} } func (x *CountAllUserServersRequest) GetUserId() int64 { if x != nil { return x.UserId } return 0 } func (x *CountAllUserServersRequest) GetUserPlanId() int64 { if x != nil { return x.UserPlanId } return 0 } // 查找某个用户下的网站配置 type ComposeAllUserServersConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserId int64 `protobuf:"varint,1,opt,name=userId,proto3" json:"userId,omitempty"` } func (x *ComposeAllUserServersConfigRequest) Reset() { *x = ComposeAllUserServersConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ComposeAllUserServersConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ComposeAllUserServersConfigRequest) ProtoMessage() {} func (x *ComposeAllUserServersConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[63] 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 ComposeAllUserServersConfigRequest.ProtoReflect.Descriptor instead. func (*ComposeAllUserServersConfigRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{63} } func (x *ComposeAllUserServersConfigRequest) GetUserId() int64 { if x != nil { return x.UserId } return 0 } type ComposeAllUserServersConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServersConfigJSON []byte `protobuf:"bytes,1,opt,name=serversConfigJSON,proto3" json:"serversConfigJSON,omitempty"` // [server config1, server config2, ...] } func (x *ComposeAllUserServersConfigResponse) Reset() { *x = ComposeAllUserServersConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ComposeAllUserServersConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ComposeAllUserServersConfigResponse) ProtoMessage() {} func (x *ComposeAllUserServersConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[64] 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 ComposeAllUserServersConfigResponse.ProtoReflect.Descriptor instead. func (*ComposeAllUserServersConfigResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{64} } func (x *ComposeAllUserServersConfigResponse) GetServersConfigJSON() []byte { if x != nil { return x.ServersConfigJSON } return nil } // 查找用户网站基本信息 type FindEnabledUserServerBasicRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *FindEnabledUserServerBasicRequest) Reset() { *x = FindEnabledUserServerBasicRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledUserServerBasicRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledUserServerBasicRequest) ProtoMessage() {} func (x *FindEnabledUserServerBasicRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[65] 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 FindEnabledUserServerBasicRequest.ProtoReflect.Descriptor instead. func (*FindEnabledUserServerBasicRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{65} } func (x *FindEnabledUserServerBasicRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } type FindEnabledUserServerBasicResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Server *Server `protobuf:"bytes,1,opt,name=server,proto3" json:"server,omitempty"` } func (x *FindEnabledUserServerBasicResponse) Reset() { *x = FindEnabledUserServerBasicResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledUserServerBasicResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledUserServerBasicResponse) ProtoMessage() {} func (x *FindEnabledUserServerBasicResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[66] 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 FindEnabledUserServerBasicResponse.ProtoReflect.Descriptor instead. func (*FindEnabledUserServerBasicResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{66} } func (x *FindEnabledUserServerBasicResponse) GetServer() *Server { if x != nil { return x.Server } return nil } // 修改用户网站基本信息 type UpdateEnabledUserServerBasicRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` } func (x *UpdateEnabledUserServerBasicRequest) Reset() { *x = UpdateEnabledUserServerBasicRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateEnabledUserServerBasicRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateEnabledUserServerBasicRequest) ProtoMessage() {} func (x *UpdateEnabledUserServerBasicRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[67] 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 UpdateEnabledUserServerBasicRequest.ProtoReflect.Descriptor instead. func (*UpdateEnabledUserServerBasicRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{67} } func (x *UpdateEnabledUserServerBasicRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateEnabledUserServerBasicRequest) GetName() string { if x != nil { return x.Name } return "" } // 上传HTTP请求待统计数据 type UploadServerHTTPRequestStatRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Month string `protobuf:"bytes,1,opt,name=month,proto3" json:"month,omitempty"` Day string `protobuf:"bytes,2,opt,name=day,proto3" json:"day,omitempty"` RegionCities []*UploadServerHTTPRequestStatRequest_RegionCity `protobuf:"bytes,3,rep,name=regionCities,proto3" json:"regionCities,omitempty"` RegionProviders []*UploadServerHTTPRequestStatRequest_RegionProvider `protobuf:"bytes,4,rep,name=regionProviders,proto3" json:"regionProviders,omitempty"` Systems []*UploadServerHTTPRequestStatRequest_System `protobuf:"bytes,5,rep,name=systems,proto3" json:"systems,omitempty"` Browsers []*UploadServerHTTPRequestStatRequest_Browser `protobuf:"bytes,6,rep,name=browsers,proto3" json:"browsers,omitempty"` HttpFirewallRuleGroups []*UploadServerHTTPRequestStatRequest_HTTPFirewallRuleGroup `protobuf:"bytes,7,rep,name=httpFirewallRuleGroups,proto3" json:"httpFirewallRuleGroups,omitempty"` } func (x *UploadServerHTTPRequestStatRequest) Reset() { *x = UploadServerHTTPRequestStatRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UploadServerHTTPRequestStatRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UploadServerHTTPRequestStatRequest) ProtoMessage() {} func (x *UploadServerHTTPRequestStatRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[68] 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 UploadServerHTTPRequestStatRequest.ProtoReflect.Descriptor instead. func (*UploadServerHTTPRequestStatRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{68} } func (x *UploadServerHTTPRequestStatRequest) GetMonth() string { if x != nil { return x.Month } return "" } func (x *UploadServerHTTPRequestStatRequest) GetDay() string { if x != nil { return x.Day } return "" } func (x *UploadServerHTTPRequestStatRequest) GetRegionCities() []*UploadServerHTTPRequestStatRequest_RegionCity { if x != nil { return x.RegionCities } return nil } func (x *UploadServerHTTPRequestStatRequest) GetRegionProviders() []*UploadServerHTTPRequestStatRequest_RegionProvider { if x != nil { return x.RegionProviders } return nil } func (x *UploadServerHTTPRequestStatRequest) GetSystems() []*UploadServerHTTPRequestStatRequest_System { if x != nil { return x.Systems } return nil } func (x *UploadServerHTTPRequestStatRequest) GetBrowsers() []*UploadServerHTTPRequestStatRequest_Browser { if x != nil { return x.Browsers } return nil } func (x *UploadServerHTTPRequestStatRequest) GetHttpFirewallRuleGroups() []*UploadServerHTTPRequestStatRequest_HTTPFirewallRuleGroup { if x != nil { return x.HttpFirewallRuleGroups } return nil } // 检查域名是否在集群中已经存在 type CheckServerNameDuplicationInNodeClusterRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields NodeClusterId int64 `protobuf:"varint,1,opt,name=nodeClusterId,proto3" json:"nodeClusterId,omitempty"` ServerNames []string `protobuf:"bytes,2,rep,name=serverNames,proto3" json:"serverNames,omitempty"` // 可以同时检查一批域名 ExcludeServerId int64 `protobuf:"varint,3,opt,name=excludeServerId,proto3" json:"excludeServerId,omitempty"` // 要排除的网站ID SupportWildcard bool `protobuf:"varint,4,opt,name=supportWildcard,proto3" json:"supportWildcard,omitempty"` // 支持泛解析 } func (x *CheckServerNameDuplicationInNodeClusterRequest) Reset() { *x = CheckServerNameDuplicationInNodeClusterRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckServerNameDuplicationInNodeClusterRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckServerNameDuplicationInNodeClusterRequest) ProtoMessage() {} func (x *CheckServerNameDuplicationInNodeClusterRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[69] 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 CheckServerNameDuplicationInNodeClusterRequest.ProtoReflect.Descriptor instead. func (*CheckServerNameDuplicationInNodeClusterRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{69} } func (x *CheckServerNameDuplicationInNodeClusterRequest) GetNodeClusterId() int64 { if x != nil { return x.NodeClusterId } return 0 } func (x *CheckServerNameDuplicationInNodeClusterRequest) GetServerNames() []string { if x != nil { return x.ServerNames } return nil } func (x *CheckServerNameDuplicationInNodeClusterRequest) GetExcludeServerId() int64 { if x != nil { return x.ExcludeServerId } return 0 } func (x *CheckServerNameDuplicationInNodeClusterRequest) GetSupportWildcard() bool { if x != nil { return x.SupportWildcard } return false } type CheckServerNameDuplicationInNodeClusterResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields DuplicatedServerNames []string `protobuf:"bytes,1,rep,name=duplicatedServerNames,proto3" json:"duplicatedServerNames,omitempty"` } func (x *CheckServerNameDuplicationInNodeClusterResponse) Reset() { *x = CheckServerNameDuplicationInNodeClusterResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckServerNameDuplicationInNodeClusterResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckServerNameDuplicationInNodeClusterResponse) ProtoMessage() {} func (x *CheckServerNameDuplicationInNodeClusterResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[70] 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 CheckServerNameDuplicationInNodeClusterResponse.ProtoReflect.Descriptor instead. func (*CheckServerNameDuplicationInNodeClusterResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{70} } func (x *CheckServerNameDuplicationInNodeClusterResponse) GetDuplicatedServerNames() []string { if x != nil { return x.DuplicatedServerNames } return nil } // 检查域名是否在网站中已经绑定 type CheckServerNameInServerRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID ServerName string `protobuf:"bytes,2,opt,name=serverName,proto3" json:"serverName,omitempty"` // 域名 } func (x *CheckServerNameInServerRequest) Reset() { *x = CheckServerNameInServerRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckServerNameInServerRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckServerNameInServerRequest) ProtoMessage() {} func (x *CheckServerNameInServerRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[71] 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 CheckServerNameInServerRequest.ProtoReflect.Descriptor instead. func (*CheckServerNameInServerRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{71} } func (x *CheckServerNameInServerRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *CheckServerNameInServerRequest) GetServerName() string { if x != nil { return x.ServerName } return "" } type CheckServerNameInServerResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Exists bool `protobuf:"varint,1,opt,name=exists,proto3" json:"exists,omitempty"` // 是否存在 } func (x *CheckServerNameInServerResponse) Reset() { *x = CheckServerNameInServerResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CheckServerNameInServerResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*CheckServerNameInServerResponse) ProtoMessage() {} func (x *CheckServerNameInServerResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[72] 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 CheckServerNameInServerResponse.ProtoReflect.Descriptor instead. func (*CheckServerNameInServerResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{72} } func (x *CheckServerNameInServerResponse) GetExists() bool { if x != nil { return x.Exists } return false } // 查找最近访问的网站 type FindLatestServersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Size int64 `protobuf:"varint,1,opt,name=size,proto3" json:"size,omitempty"` } func (x *FindLatestServersRequest) Reset() { *x = FindLatestServersRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindLatestServersRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindLatestServersRequest) ProtoMessage() {} func (x *FindLatestServersRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[73] 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 FindLatestServersRequest.ProtoReflect.Descriptor instead. func (*FindLatestServersRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{73} } func (x *FindLatestServersRequest) GetSize() int64 { if x != nil { return x.Size } return 0 } type FindLatestServersResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Servers []*Server `protobuf:"bytes,1,rep,name=servers,proto3" json:"servers,omitempty"` } func (x *FindLatestServersResponse) Reset() { *x = FindLatestServersResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindLatestServersResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindLatestServersResponse) ProtoMessage() {} func (x *FindLatestServersResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[74] 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 FindLatestServersResponse.ProtoReflect.Descriptor instead. func (*FindLatestServersResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{74} } func (x *FindLatestServersResponse) GetServers() []*Server { if x != nil { return x.Servers } return nil } // 查找某个网站附近的网站 type FindNearbyServersRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *FindNearbyServersRequest) Reset() { *x = FindNearbyServersRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNearbyServersRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNearbyServersRequest) ProtoMessage() {} func (x *FindNearbyServersRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[75] 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 FindNearbyServersRequest.ProtoReflect.Descriptor instead. func (*FindNearbyServersRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{75} } func (x *FindNearbyServersRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } type FindNearbyServersResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Scope string `protobuf:"bytes,1,opt,name=scope,proto3" json:"scope,omitempty"` // 范围 cluster|group Groups []*FindNearbyServersResponse_GroupInfo `protobuf:"bytes,2,rep,name=groups,proto3" json:"groups,omitempty"` } func (x *FindNearbyServersResponse) Reset() { *x = FindNearbyServersResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNearbyServersResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNearbyServersResponse) ProtoMessage() {} func (x *FindNearbyServersResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[76] 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 FindNearbyServersResponse.ProtoReflect.Descriptor instead. func (*FindNearbyServersResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{76} } func (x *FindNearbyServersResponse) GetScope() string { if x != nil { return x.Scope } return "" } func (x *FindNearbyServersResponse) GetGroups() []*FindNearbyServersResponse_GroupInfo { if x != nil { return x.Groups } return nil } // 清除缓存 type PurgeServerCacheRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Keys []string `protobuf:"bytes,2,rep,name=keys,proto3" json:"keys,omitempty"` Prefixes []string `protobuf:"bytes,3,rep,name=prefixes,proto3" json:"prefixes,omitempty"` Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` // 任务描述 } func (x *PurgeServerCacheRequest) Reset() { *x = PurgeServerCacheRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PurgeServerCacheRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*PurgeServerCacheRequest) ProtoMessage() {} func (x *PurgeServerCacheRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[77] 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 PurgeServerCacheRequest.ProtoReflect.Descriptor instead. func (*PurgeServerCacheRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{77} } func (x *PurgeServerCacheRequest) GetKeys() []string { if x != nil { return x.Keys } return nil } func (x *PurgeServerCacheRequest) GetPrefixes() []string { if x != nil { return x.Prefixes } return nil } func (x *PurgeServerCacheRequest) GetDescription() string { if x != nil { return x.Description } return "" } type PurgeServerCacheResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields IsOk bool `protobuf:"varint,1,opt,name=isOk,proto3" json:"isOk,omitempty"` Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` } func (x *PurgeServerCacheResponse) Reset() { *x = PurgeServerCacheResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PurgeServerCacheResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*PurgeServerCacheResponse) ProtoMessage() {} func (x *PurgeServerCacheResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[78] 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 PurgeServerCacheResponse.ProtoReflect.Descriptor instead. func (*PurgeServerCacheResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{78} } func (x *PurgeServerCacheResponse) GetIsOk() bool { if x != nil { return x.IsOk } return false } func (x *PurgeServerCacheResponse) GetMessage() string { if x != nil { return x.Message } return "" } // 查找流量限制 type FindEnabledServerTrafficLimitRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *FindEnabledServerTrafficLimitRequest) Reset() { *x = FindEnabledServerTrafficLimitRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledServerTrafficLimitRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledServerTrafficLimitRequest) ProtoMessage() {} func (x *FindEnabledServerTrafficLimitRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[79] 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 FindEnabledServerTrafficLimitRequest.ProtoReflect.Descriptor instead. func (*FindEnabledServerTrafficLimitRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{79} } func (x *FindEnabledServerTrafficLimitRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } type FindEnabledServerTrafficLimitResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields TrafficLimitJSON []byte `protobuf:"bytes,1,opt,name=trafficLimitJSON,proto3" json:"trafficLimitJSON,omitempty"` } func (x *FindEnabledServerTrafficLimitResponse) Reset() { *x = FindEnabledServerTrafficLimitResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledServerTrafficLimitResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledServerTrafficLimitResponse) ProtoMessage() {} func (x *FindEnabledServerTrafficLimitResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[80] 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 FindEnabledServerTrafficLimitResponse.ProtoReflect.Descriptor instead. func (*FindEnabledServerTrafficLimitResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{80} } func (x *FindEnabledServerTrafficLimitResponse) GetTrafficLimitJSON() []byte { if x != nil { return x.TrafficLimitJSON } return nil } // 设置流量限制 type UpdateServerTrafficLimitRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID TrafficLimitJSON []byte `protobuf:"bytes,2,opt,name=trafficLimitJSON,proto3" json:"trafficLimitJSON,omitempty"` } func (x *UpdateServerTrafficLimitRequest) Reset() { *x = UpdateServerTrafficLimitRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerTrafficLimitRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerTrafficLimitRequest) ProtoMessage() {} func (x *UpdateServerTrafficLimitRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[81] 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 UpdateServerTrafficLimitRequest.ProtoReflect.Descriptor instead. func (*UpdateServerTrafficLimitRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{81} } func (x *UpdateServerTrafficLimitRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerTrafficLimitRequest) GetTrafficLimitJSON() []byte { if x != nil { return x.TrafficLimitJSON } return nil } // 修改网站套餐 type UpdateServerUserPlanRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID UserPlanId int64 `protobuf:"varint,2,opt,name=userPlanId,proto3" json:"userPlanId,omitempty"` } func (x *UpdateServerUserPlanRequest) Reset() { *x = UpdateServerUserPlanRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerUserPlanRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerUserPlanRequest) ProtoMessage() {} func (x *UpdateServerUserPlanRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[82] 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 UpdateServerUserPlanRequest.ProtoReflect.Descriptor instead. func (*UpdateServerUserPlanRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{82} } func (x *UpdateServerUserPlanRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerUserPlanRequest) GetUserPlanId() int64 { if x != nil { return x.UserPlanId } return 0 } // 获取网站套餐信息 type FindServerUserPlanRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *FindServerUserPlanRequest) Reset() { *x = FindServerUserPlanRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindServerUserPlanRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindServerUserPlanRequest) ProtoMessage() {} func (x *FindServerUserPlanRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[83] 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 FindServerUserPlanRequest.ProtoReflect.Descriptor instead. func (*FindServerUserPlanRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{83} } func (x *FindServerUserPlanRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } type FindServerUserPlanResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UserPlan *UserPlan `protobuf:"bytes,1,opt,name=userPlan,proto3" json:"userPlan,omitempty"` } func (x *FindServerUserPlanResponse) Reset() { *x = FindServerUserPlanResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindServerUserPlanResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindServerUserPlanResponse) ProtoMessage() {} func (x *FindServerUserPlanResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[84] 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 FindServerUserPlanResponse.ProtoReflect.Descriptor instead. func (*FindServerUserPlanResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{84} } func (x *FindServerUserPlanResponse) GetUserPlan() *UserPlan { if x != nil { return x.UserPlan } return nil } // 获取网站配置 type ComposeServerConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *ComposeServerConfigRequest) Reset() { *x = ComposeServerConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ComposeServerConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ComposeServerConfigRequest) ProtoMessage() {} func (x *ComposeServerConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[85] 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 ComposeServerConfigRequest.ProtoReflect.Descriptor instead. func (*ComposeServerConfigRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{85} } func (x *ComposeServerConfigRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } type ComposeServerConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerConfigJSON []byte `protobuf:"bytes,1,opt,name=serverConfigJSON,proto3" json:"serverConfigJSON,omitempty"` } func (x *ComposeServerConfigResponse) Reset() { *x = ComposeServerConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ComposeServerConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ComposeServerConfigResponse) ProtoMessage() {} func (x *ComposeServerConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[86] 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 ComposeServerConfigResponse.ProtoReflect.Descriptor instead. func (*ComposeServerConfigResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{86} } func (x *ComposeServerConfigResponse) GetServerConfigJSON() []byte { if x != nil { return x.ServerConfigJSON } return nil } // 修改网站UAM(5秒盾)设置 type UpdateServerUAMRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID UamJSON []byte `protobuf:"bytes,2,opt,name=uamJSON,proto3" json:"uamJSON,omitempty"` } func (x *UpdateServerUAMRequest) Reset() { *x = UpdateServerUAMRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerUAMRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerUAMRequest) ProtoMessage() {} func (x *UpdateServerUAMRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[87] 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 UpdateServerUAMRequest.ProtoReflect.Descriptor instead. func (*UpdateServerUAMRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{87} } func (x *UpdateServerUAMRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerUAMRequest) GetUamJSON() []byte { if x != nil { return x.UamJSON } return nil } // 查找网站UAM(5秒盾)设置 type FindEnabledServerUAMRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *FindEnabledServerUAMRequest) Reset() { *x = FindEnabledServerUAMRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledServerUAMRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledServerUAMRequest) ProtoMessage() {} func (x *FindEnabledServerUAMRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[88] 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 FindEnabledServerUAMRequest.ProtoReflect.Descriptor instead. func (*FindEnabledServerUAMRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{88} } func (x *FindEnabledServerUAMRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } type FindEnabledServerUAMResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields UamJSON []byte `protobuf:"bytes,1,opt,name=uamJSON,proto3" json:"uamJSON,omitempty"` // UAM设置 } func (x *FindEnabledServerUAMResponse) Reset() { *x = FindEnabledServerUAMResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindEnabledServerUAMResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindEnabledServerUAMResponse) ProtoMessage() {} func (x *FindEnabledServerUAMResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[89] 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 FindEnabledServerUAMResponse.ProtoReflect.Descriptor instead. func (*FindEnabledServerUAMResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{89} } func (x *FindEnabledServerUAMResponse) GetUamJSON() []byte { if x != nil { return x.UamJSON } return nil } // 修改网站所属用户 type UpdateServerUserRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID UserId int64 `protobuf:"varint,2,opt,name=userId,proto3" json:"userId,omitempty"` // 用户ID } func (x *UpdateServerUserRequest) Reset() { *x = UpdateServerUserRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerUserRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerUserRequest) ProtoMessage() {} func (x *UpdateServerUserRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[90] 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 UpdateServerUserRequest.ProtoReflect.Descriptor instead. func (*UpdateServerUserRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{90} } func (x *UpdateServerUserRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerUserRequest) GetUserId() int64 { if x != nil { return x.UserId } return 0 } // 修改网站名称 type UpdateServerNameRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` // 网站名称 } func (x *UpdateServerNameRequest) Reset() { *x = UpdateServerNameRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UpdateServerNameRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*UpdateServerNameRequest) ProtoMessage() {} func (x *UpdateServerNameRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[91] 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 UpdateServerNameRequest.ProtoReflect.Descriptor instead. func (*UpdateServerNameRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{91} } func (x *UpdateServerNameRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UpdateServerNameRequest) GetName() string { if x != nil { return x.Name } return "" } // 在网站之间复制配置 type CopyServerConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 被复制网站ID ConfigCode string `protobuf:"bytes,2,opt,name=configCode,proto3" json:"configCode,omitempty"` // 要拷贝的配置代号:stat 统计;charset 字符编码;userAgent UA名单;referers 防盗链;webp WebP配置;accessLog 访问日志;cc CC配置;hostRedirects URL跳转;root ROOT配置;remoteAddr 访客设置;requestLimit 请求限制;compression 内容压缩设置;optimization 页面优化设置;cache 缓存设置;uam 五秒盾设置;websocket Websocket设置;pages 自定义页面设置;auth 访问鉴权;reverseProxy 反向代理设置;waf WAF设置 TargetType string `protobuf:"bytes,3,opt,name=targetType,proto3" json:"targetType,omitempty"` // 目标类型:servers, groups, cluster(当前集群下所有网站,只有管理员才有权限)、user(当前用户下所有网站) TargetServerIds []int64 `protobuf:"varint,4,rep,packed,name=targetServerIds,proto3" json:"targetServerIds,omitempty"` // 目标网站ID列表 TargetServerGroupIds []int64 `protobuf:"varint,5,rep,packed,name=targetServerGroupIds,proto3" json:"targetServerGroupIds,omitempty"` // 目标网站分组ID列表 TargetClusterId int64 `protobuf:"varint,6,opt,name=targetClusterId,proto3" json:"targetClusterId,omitempty"` // 目标集群ID TargetUserId int64 `protobuf:"varint,7,opt,name=targetUserId,proto3" json:"targetUserId,omitempty"` // 目标用户ID WafCopyRegions bool `protobuf:"varint,30,opt,name=wafCopyRegions,proto3" json:"wafCopyRegions,omitempty"` // 可选项,WAF独立配置:是否拷贝区域封禁设置 } func (x *CopyServerConfigRequest) Reset() { *x = CopyServerConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *CopyServerConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*CopyServerConfigRequest) ProtoMessage() {} func (x *CopyServerConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[92] 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 CopyServerConfigRequest.ProtoReflect.Descriptor instead. func (*CopyServerConfigRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{92} } func (x *CopyServerConfigRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *CopyServerConfigRequest) GetConfigCode() string { if x != nil { return x.ConfigCode } return "" } func (x *CopyServerConfigRequest) GetTargetType() string { if x != nil { return x.TargetType } return "" } func (x *CopyServerConfigRequest) GetTargetServerIds() []int64 { if x != nil { return x.TargetServerIds } return nil } func (x *CopyServerConfigRequest) GetTargetServerGroupIds() []int64 { if x != nil { return x.TargetServerGroupIds } return nil } func (x *CopyServerConfigRequest) GetTargetClusterId() int64 { if x != nil { return x.TargetClusterId } return 0 } func (x *CopyServerConfigRequest) GetTargetUserId() int64 { if x != nil { return x.TargetUserId } return 0 } func (x *CopyServerConfigRequest) GetWafCopyRegions() bool { if x != nil { return x.WafCopyRegions } return false } // 获取域名审核时的提示文字 type FindServerAuditingPromptRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID } func (x *FindServerAuditingPromptRequest) Reset() { *x = FindServerAuditingPromptRequest{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindServerAuditingPromptRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindServerAuditingPromptRequest) ProtoMessage() {} func (x *FindServerAuditingPromptRequest) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[93] 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 FindServerAuditingPromptRequest.ProtoReflect.Descriptor instead. func (*FindServerAuditingPromptRequest) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{93} } func (x *FindServerAuditingPromptRequest) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } type FindServerAuditingPromptResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields PromptText string `protobuf:"bytes,1,opt,name=promptText,proto3" json:"promptText,omitempty"` // 提示文字 } func (x *FindServerAuditingPromptResponse) Reset() { *x = FindServerAuditingPromptResponse{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindServerAuditingPromptResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindServerAuditingPromptResponse) ProtoMessage() {} func (x *FindServerAuditingPromptResponse) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[94] 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 FindServerAuditingPromptResponse.ProtoReflect.Descriptor instead. func (*FindServerAuditingPromptResponse) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{94} } func (x *FindServerAuditingPromptResponse) GetPromptText() string { if x != nil { return x.PromptText } return "" } type UploadServerHTTPRequestStatRequest_RegionCity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID CountRequests int64 `protobuf:"varint,5,opt,name=countRequests,proto3" json:"countRequests,omitempty"` Bytes int64 `protobuf:"varint,6,opt,name=bytes,proto3" json:"bytes,omitempty"` CountAttackRequests int64 `protobuf:"varint,7,opt,name=countAttackRequests,proto3" json:"countAttackRequests,omitempty"` AttackBytes int64 `protobuf:"varint,8,opt,name=attackBytes,proto3" json:"attackBytes,omitempty"` CountryId int64 `protobuf:"varint,9,opt,name=countryId,proto3" json:"countryId,omitempty"` ProvinceId int64 `protobuf:"varint,10,opt,name=provinceId,proto3" json:"provinceId,omitempty"` CityId int64 `protobuf:"varint,11,opt,name=cityId,proto3" json:"cityId,omitempty"` } func (x *UploadServerHTTPRequestStatRequest_RegionCity) Reset() { *x = UploadServerHTTPRequestStatRequest_RegionCity{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UploadServerHTTPRequestStatRequest_RegionCity) String() string { return protoimpl.X.MessageStringOf(x) } func (*UploadServerHTTPRequestStatRequest_RegionCity) ProtoMessage() {} func (x *UploadServerHTTPRequestStatRequest_RegionCity) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[95] 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 UploadServerHTTPRequestStatRequest_RegionCity.ProtoReflect.Descriptor instead. func (*UploadServerHTTPRequestStatRequest_RegionCity) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{68, 0} } func (x *UploadServerHTTPRequestStatRequest_RegionCity) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UploadServerHTTPRequestStatRequest_RegionCity) GetCountRequests() int64 { if x != nil { return x.CountRequests } return 0 } func (x *UploadServerHTTPRequestStatRequest_RegionCity) GetBytes() int64 { if x != nil { return x.Bytes } return 0 } func (x *UploadServerHTTPRequestStatRequest_RegionCity) GetCountAttackRequests() int64 { if x != nil { return x.CountAttackRequests } return 0 } func (x *UploadServerHTTPRequestStatRequest_RegionCity) GetAttackBytes() int64 { if x != nil { return x.AttackBytes } return 0 } func (x *UploadServerHTTPRequestStatRequest_RegionCity) GetCountryId() int64 { if x != nil { return x.CountryId } return 0 } func (x *UploadServerHTTPRequestStatRequest_RegionCity) GetProvinceId() int64 { if x != nil { return x.ProvinceId } return 0 } func (x *UploadServerHTTPRequestStatRequest_RegionCity) GetCityId() int64 { if x != nil { return x.CityId } return 0 } type UploadServerHTTPRequestStatRequest_RegionProvider struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID Count int64 `protobuf:"varint,3,opt,name=count,proto3" json:"count,omitempty"` ProviderId int64 `protobuf:"varint,4,opt,name=providerId,proto3" json:"providerId,omitempty"` } func (x *UploadServerHTTPRequestStatRequest_RegionProvider) Reset() { *x = UploadServerHTTPRequestStatRequest_RegionProvider{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UploadServerHTTPRequestStatRequest_RegionProvider) String() string { return protoimpl.X.MessageStringOf(x) } func (*UploadServerHTTPRequestStatRequest_RegionProvider) ProtoMessage() {} func (x *UploadServerHTTPRequestStatRequest_RegionProvider) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[96] 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 UploadServerHTTPRequestStatRequest_RegionProvider.ProtoReflect.Descriptor instead. func (*UploadServerHTTPRequestStatRequest_RegionProvider) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{68, 1} } func (x *UploadServerHTTPRequestStatRequest_RegionProvider) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UploadServerHTTPRequestStatRequest_RegionProvider) GetCount() int64 { if x != nil { return x.Count } return 0 } func (x *UploadServerHTTPRequestStatRequest_RegionProvider) GetProviderId() int64 { if x != nil { return x.ProviderId } return 0 } type UploadServerHTTPRequestStatRequest_System struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` Count int64 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"` } func (x *UploadServerHTTPRequestStatRequest_System) Reset() { *x = UploadServerHTTPRequestStatRequest_System{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UploadServerHTTPRequestStatRequest_System) String() string { return protoimpl.X.MessageStringOf(x) } func (*UploadServerHTTPRequestStatRequest_System) ProtoMessage() {} func (x *UploadServerHTTPRequestStatRequest_System) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[97] 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 UploadServerHTTPRequestStatRequest_System.ProtoReflect.Descriptor instead. func (*UploadServerHTTPRequestStatRequest_System) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{68, 2} } func (x *UploadServerHTTPRequestStatRequest_System) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UploadServerHTTPRequestStatRequest_System) GetName() string { if x != nil { return x.Name } return "" } func (x *UploadServerHTTPRequestStatRequest_System) GetVersion() string { if x != nil { return x.Version } return "" } func (x *UploadServerHTTPRequestStatRequest_System) GetCount() int64 { if x != nil { return x.Count } return 0 } type UploadServerHTTPRequestStatRequest_Browser struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` Count int64 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"` } func (x *UploadServerHTTPRequestStatRequest_Browser) Reset() { *x = UploadServerHTTPRequestStatRequest_Browser{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UploadServerHTTPRequestStatRequest_Browser) String() string { return protoimpl.X.MessageStringOf(x) } func (*UploadServerHTTPRequestStatRequest_Browser) ProtoMessage() {} func (x *UploadServerHTTPRequestStatRequest_Browser) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[98] 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 UploadServerHTTPRequestStatRequest_Browser.ProtoReflect.Descriptor instead. func (*UploadServerHTTPRequestStatRequest_Browser) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{68, 3} } func (x *UploadServerHTTPRequestStatRequest_Browser) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UploadServerHTTPRequestStatRequest_Browser) GetName() string { if x != nil { return x.Name } return "" } func (x *UploadServerHTTPRequestStatRequest_Browser) GetVersion() string { if x != nil { return x.Version } return "" } func (x *UploadServerHTTPRequestStatRequest_Browser) GetCount() int64 { if x != nil { return x.Count } return 0 } type UploadServerHTTPRequestStatRequest_HTTPFirewallRuleGroup struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ServerId int64 `protobuf:"varint,1,opt,name=serverId,proto3" json:"serverId,omitempty"` // 网站ID HttpFirewallRuleGroupId int64 `protobuf:"varint,2,opt,name=httpFirewallRuleGroupId,proto3" json:"httpFirewallRuleGroupId,omitempty"` Action string `protobuf:"bytes,3,opt,name=action,proto3" json:"action,omitempty"` Count int64 `protobuf:"varint,4,opt,name=count,proto3" json:"count,omitempty"` } func (x *UploadServerHTTPRequestStatRequest_HTTPFirewallRuleGroup) Reset() { *x = UploadServerHTTPRequestStatRequest_HTTPFirewallRuleGroup{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *UploadServerHTTPRequestStatRequest_HTTPFirewallRuleGroup) String() string { return protoimpl.X.MessageStringOf(x) } func (*UploadServerHTTPRequestStatRequest_HTTPFirewallRuleGroup) ProtoMessage() {} func (x *UploadServerHTTPRequestStatRequest_HTTPFirewallRuleGroup) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[99] 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 UploadServerHTTPRequestStatRequest_HTTPFirewallRuleGroup.ProtoReflect.Descriptor instead. func (*UploadServerHTTPRequestStatRequest_HTTPFirewallRuleGroup) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{68, 4} } func (x *UploadServerHTTPRequestStatRequest_HTTPFirewallRuleGroup) GetServerId() int64 { if x != nil { return x.ServerId } return 0 } func (x *UploadServerHTTPRequestStatRequest_HTTPFirewallRuleGroup) GetHttpFirewallRuleGroupId() int64 { if x != nil { return x.HttpFirewallRuleGroupId } return 0 } func (x *UploadServerHTTPRequestStatRequest_HTTPFirewallRuleGroup) GetAction() string { if x != nil { return x.Action } return "" } func (x *UploadServerHTTPRequestStatRequest_HTTPFirewallRuleGroup) GetCount() int64 { if x != nil { return x.Count } return 0 } type FindNearbyServersResponse_GroupInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Servers []*Server `protobuf:"bytes,2,rep,name=servers,proto3" json:"servers,omitempty"` } func (x *FindNearbyServersResponse_GroupInfo) Reset() { *x = FindNearbyServersResponse_GroupInfo{} if protoimpl.UnsafeEnabled { mi := &file_service_server_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *FindNearbyServersResponse_GroupInfo) String() string { return protoimpl.X.MessageStringOf(x) } func (*FindNearbyServersResponse_GroupInfo) ProtoMessage() {} func (x *FindNearbyServersResponse_GroupInfo) ProtoReflect() protoreflect.Message { mi := &file_service_server_proto_msgTypes[100] 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 FindNearbyServersResponse_GroupInfo.ProtoReflect.Descriptor instead. func (*FindNearbyServersResponse_GroupInfo) Descriptor() ([]byte, []int) { return file_service_server_proto_rawDescGZIP(), []int{76, 0} } func (x *FindNearbyServersResponse_GroupInfo) GetName() string { if x != nil { return x.Name } return "" } func (x *FindNearbyServersResponse_GroupInfo) GetServers() []*Server { if x != nil { return x.Servers } return nil } var File_service_server_proto protoreflect.FileDescriptor var file_service_server_proto_rawDesc = []byte{ 0x0a, 0x14, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x64, 0x6e, 0x73, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x93, 0x05, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x4a, 0x4f, 0x4e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x4a, 0x4f, 0x4e, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x74, 0x74, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x68, 0x74, 0x74, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x68, 0x74, 0x74, 0x70, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x63, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x63, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x78, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x78, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x64, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x75, 0x64, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x32, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0xe2, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x69, 0x63, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x73, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x73, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x57, 0x65, 0x62, 0x73, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x22, 0x3b, 0x0a, 0x1d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x69, 0x63, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0xd5, 0x01, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x69, 0x63, 0x54, 0x43, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x63, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x74, 0x63, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x74, 0x6c, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x73, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0a, 0x73, 0x73, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x73, 0x22, 0x3a, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x69, 0x63, 0x54, 0x43, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x6e, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x73, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x73, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x22, 0x53, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x49, 0x64, 0x22, 0xf6, 0x01, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61, 0x73, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x6b, 0x65, 0x65, 0x70, 0x4f, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6b, 0x65, 0x65, 0x70, 0x4f, 0x6c, 0x64, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x22, 0x61, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x22, 0x49, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x73, 0x4f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6e, 0x22, 0x51, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x68, 0x74, 0x74, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x68, 0x74, 0x74, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x54, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x74, 0x74, 0x70, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x68, 0x74, 0x74, 0x70, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4e, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x43, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x63, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x63, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4e, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x4c, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x51, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x78, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x78, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x78, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4e, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x44, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x64, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x75, 0x64, 0x70, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4a, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x77, 0x65, 0x62, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x34, 0x0a, 0x16, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x83, 0x02, 0x0a, 0x17, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x41, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x12, 0x38, 0x0a, 0x17, 0x61, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x17, 0x61, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x44, 0x0a, 0x0e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x60, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x84, 0x01, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x41, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x0e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x41, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0e, 0x61, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x58, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x4e, 0x41, 0x4d, 0x45, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x4e, 0x41, 0x4d, 0x45, 0x22, 0x3c, 0x0a, 0x1e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x60, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x57, 0x69, 0x74, 0x68, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x3d, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x57, 0x69, 0x74, 0x68, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x8e, 0x02, 0x0a, 0x22, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x22, 0xde, 0x04, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x26, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x46, 0x61, 0x6d, 0x69, 0x6c, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4f, 0x75, 0x74, 0x41, 0x73, 0x63, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4f, 0x75, 0x74, 0x41, 0x73, 0x63, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4f, 0x75, 0x74, 0x44, 0x65, 0x73, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4f, 0x75, 0x74, 0x44, 0x65, 0x73, 0x63, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x41, 0x73, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x41, 0x73, 0x63, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x44, 0x65, 0x73, 0x63, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x44, 0x65, 0x73, 0x63, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x41, 0x73, 0x63, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x41, 0x73, 0x63, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x44, 0x65, 0x73, 0x63, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x44, 0x65, 0x73, 0x63, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x53, 0x53, 0x4c, 0x43, 0x65, 0x72, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x53, 0x53, 0x4c, 0x43, 0x65, 0x72, 0x74, 0x73, 0x22, 0x47, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x22, 0x31, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x34, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x03, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x5e, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x53, 0x53, 0x4c, 0x43, 0x65, 0x72, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x53, 0x53, 0x4c, 0x43, 0x65, 0x72, 0x74, 0x73, 0x22, 0x3f, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0x3c, 0x0a, 0x1e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x3a, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x33, 0x0a, 0x1d, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x48, 0x0a, 0x2a, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x8b, 0x01, 0x0a, 0x2b, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x4a, 0x53, 0x4f, 0x4e, 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x66, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x13, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x66, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x3f, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3e, 0x0a, 0x22, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x77, 0x65, 0x62, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4a, 0x0a, 0x2a, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x53, 0x4c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x73, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x73, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x29, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x53, 0x4c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x73, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x73, 0x6c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x22, 0x52, 0x0a, 0x2a, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x53, 0x4c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x22, 0x56, 0x0a, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x56, 0x0a, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1d, 0x0a, 0x1b, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x58, 0x0a, 0x30, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x4e, 0x53, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x60, 0x0a, 0x31, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x4e, 0x53, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x22, 0x4d, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x49, 0x6e, 0x66, 0x6f, 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, 0x18, 0x0a, 0x07, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x39, 0x0a, 0x1b, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x83, 0x01, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x6e, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x4e, 0x53, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x4e, 0x41, 0x4d, 0x45, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x43, 0x4e, 0x41, 0x4d, 0x45, 0x22, 0x34, 0x0a, 0x16, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x44, 0x0a, 0x2a, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x4f, 0x0a, 0x2b, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x5e, 0x0a, 0x24, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x22, 0x35, 0x0a, 0x17, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x33, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x42, 0x0a, 0x1a, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x22, 0x54, 0x0a, 0x1a, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x22, 0x3c, 0x0a, 0x22, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x23, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x3f, 0x0a, 0x21, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61, 0x73, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x22, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61, 0x73, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0x55, 0x0a, 0x23, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61, 0x73, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xf7, 0x09, 0x0a, 0x22, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x64, 0x61, 0x79, 0x12, 0x55, 0x0a, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x52, 0x0c, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x5f, 0x0a, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x52, 0x0f, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x73, 0x12, 0x47, 0x0a, 0x07, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x4a, 0x0a, 0x08, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x52, 0x08, 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x73, 0x12, 0x74, 0x0a, 0x16, 0x68, 0x74, 0x74, 0x70, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x16, 0x68, 0x74, 0x74, 0x70, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x1a, 0x8e, 0x02, 0x0a, 0x0a, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x69, 0x74, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x69, 0x74, 0x79, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x63, 0x69, 0x74, 0x79, 0x49, 0x64, 0x1a, 0x62, 0x0a, 0x0e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x49, 0x64, 0x1a, 0x68, 0x0a, 0x06, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x69, 0x0a, 0x07, 0x42, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x9b, 0x01, 0x0a, 0x15, 0x48, 0x54, 0x54, 0x50, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x17, 0x68, 0x74, 0x74, 0x70, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x68, 0x74, 0x74, 0x70, 0x46, 0x69, 0x72, 0x65, 0x77, 0x61, 0x6c, 0x6c, 0x52, 0x75, 0x6c, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xcc, 0x01, 0x0a, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x57, 0x69, 0x6c, 0x64, 0x63, 0x61, 0x72, 0x64, 0x22, 0x67, 0x0a, 0x2f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x64, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x5c, 0x0a, 0x1e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x39, 0x0a, 0x1f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x78, 0x69, 0x73, 0x74, 0x73, 0x22, 0x2e, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x22, 0x41, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x24, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x22, 0x36, 0x0a, 0x18, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x65, 0x61, 0x72, 0x62, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0xb9, 0x01, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x65, 0x61, 0x72, 0x62, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x70, 0x65, 0x12, 0x3f, 0x0a, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x65, 0x61, 0x72, 0x62, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x1a, 0x45, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x22, 0x6b, 0x0a, 0x17, 0x50, 0x75, 0x72, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x48, 0x0a, 0x18, 0x50, 0x75, 0x72, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x69, 0x73, 0x4f, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x42, 0x0a, 0x24, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x25, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x69, 0x0a, 0x1f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x59, 0x0a, 0x1b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x22, 0x37, 0x0a, 0x19, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x46, 0x0a, 0x1a, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x22, 0x38, 0x0a, 0x1a, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x1b, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4e, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x41, 0x4d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x61, 0x6d, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x75, 0x61, 0x6d, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x39, 0x0a, 0x1b, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x41, 0x4d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x38, 0x0a, 0x1c, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x41, 0x4d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x61, 0x6d, 0x4a, 0x53, 0x4f, 0x4e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x75, 0x61, 0x6d, 0x4a, 0x53, 0x4f, 0x4e, 0x22, 0x4d, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x49, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc9, 0x02, 0x0a, 0x17, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x03, 0x52, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x77, 0x61, 0x66, 0x43, 0x6f, 0x70, 0x79, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x77, 0x61, 0x66, 0x43, 0x6f, 0x70, 0x79, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x3d, 0x0a, 0x1f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x22, 0x42, 0x0a, 0x20, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x65, 0x78, 0x74, 0x32, 0xff, 0x2b, 0x0a, 0x0d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x69, 0x63, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x69, 0x63, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x69, 0x63, 0x48, 0x54, 0x54, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x69, 0x63, 0x54, 0x43, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x69, 0x63, 0x54, 0x43, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x61, 0x73, 0x69, 0x63, 0x54, 0x43, 0x50, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x61, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x72, 0x69, 0x67, 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, 0x43, 0x0a, 0x12, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4f, 0x72, 0x69, 0x67, 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, 0x41, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61, 0x73, 0x69, 0x63, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61, 0x73, 0x69, 0x63, 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, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x73, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 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, 0x3f, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x73, 0x4f, 0x6e, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x73, 0x4f, 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, 0x3f, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 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, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x53, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x53, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x43, 0x50, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x43, 0x50, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x4c, 0x53, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x4c, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x78, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x6e, 0x69, 0x78, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x44, 0x50, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x44, 0x50, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x57, 0x65, 0x62, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x57, 0x65, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4f, 0x0a, 0x18, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4a, 0x0a, 0x0f, 0x66, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x41, 0x0a, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 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, 0x51, 0x0a, 0x19, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x41, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x41, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 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, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x4d, 0x0a, 0x17, 0x72, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x45, 0x0a, 0x13, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x62, 0x0a, 0x17, 0x66, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x57, 0x69, 0x74, 0x68, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x57, 0x69, 0x74, 0x68, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x49, 0x64, 0x57, 0x69, 0x74, 0x68, 0x44, 0x4e, 0x53, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x1b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 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, 0x62, 0x0a, 0x17, 0x6c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x18, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 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, 0x50, 0x0a, 0x11, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x86, 0x01, 0x0a, 0x23, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6e, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x57, 0x65, 0x62, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x23, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x53, 0x4c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x12, 0x2e, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x53, 0x4c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 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, 0x83, 0x01, 0x0a, 0x22, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x53, 0x4c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x12, 0x2d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x53, 0x4c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x53, 0x4c, 0x43, 0x65, 0x72, 0x74, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x73, 0x0a, 0x27, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x32, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 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, 0x73, 0x0a, 0x27, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x32, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x57, 0x69, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 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, 0x56, 0x0a, 0x13, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x29, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x4e, 0x53, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x12, 0x34, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x4e, 0x53, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x44, 0x4e, 0x53, 0x57, 0x69, 0x74, 0x68, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x14, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x44, 0x4e, 0x53, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x86, 0x01, 0x0a, 0x23, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5f, 0x0a, 0x1d, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x57, 0x69, 0x74, 0x68, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 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, 0x45, 0x0a, 0x10, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 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, 0x53, 0x0a, 0x12, 0x66, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 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, 0x6e, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61, 0x73, 0x69, 0x63, 0x12, 0x25, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61, 0x73, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61, 0x73, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x1c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61, 0x73, 0x69, 0x63, 0x12, 0x27, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x42, 0x61, 0x73, 0x69, 0x63, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x55, 0x0a, 0x1b, 0x75, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x12, 0x26, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x48, 0x54, 0x54, 0x50, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x92, 0x01, 0x0a, 0x27, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x12, 0x32, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x17, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x22, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x49, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x66, 0x69, 0x6e, 0x64, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x66, 0x69, 0x6e, 0x64, 0x4e, 0x65, 0x61, 0x72, 0x62, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x65, 0x61, 0x72, 0x62, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x4e, 0x65, 0x61, 0x72, 0x62, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x10, 0x70, 0x75, 0x72, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x70, 0x62, 0x2e, 0x50, 0x75, 0x72, 0x67, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x74, 0x0a, 0x1d, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x28, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x18, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4c, 0x69, 0x6d, 0x69, 0x74, 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, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 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, 0x53, 0x0a, 0x12, 0x66, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x1d, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x41, 0x4d, 0x12, 0x1a, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x41, 0x4d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x59, 0x0a, 0x14, 0x66, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x41, 0x4d, 0x12, 0x1f, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x41, 0x4d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x41, 0x4d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3f, 0x0a, 0x10, 0x63, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1b, 0x2e, 0x70, 0x62, 0x2e, 0x43, 0x6f, 0x70, 0x79, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x0e, 0x2e, 0x70, 0x62, 0x2e, 0x52, 0x50, 0x43, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x65, 0x0a, 0x18, 0x66, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x12, 0x23, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x70, 0x62, 0x2e, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, 0x75, 0x64, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x2f, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_service_server_proto_rawDescOnce sync.Once file_service_server_proto_rawDescData = file_service_server_proto_rawDesc ) func file_service_server_proto_rawDescGZIP() []byte { file_service_server_proto_rawDescOnce.Do(func() { file_service_server_proto_rawDescData = protoimpl.X.CompressGZIP(file_service_server_proto_rawDescData) }) return file_service_server_proto_rawDescData } var file_service_server_proto_msgTypes = make([]protoimpl.MessageInfo, 101) var file_service_server_proto_goTypes = []interface{}{ (*CreateServerRequest)(nil), // 0: pb.CreateServerRequest (*CreateServerResponse)(nil), // 1: pb.CreateServerResponse (*CreateBasicHTTPServerRequest)(nil), // 2: pb.CreateBasicHTTPServerRequest (*CreateBasicHTTPServerResponse)(nil), // 3: pb.CreateBasicHTTPServerResponse (*CreateBasicTCPServerRequest)(nil), // 4: pb.CreateBasicTCPServerRequest (*CreateBasicTCPServerResponse)(nil), // 5: pb.CreateBasicTCPServerResponse (*AddServerOriginRequest)(nil), // 6: pb.AddServerOriginRequest (*DeleteServerOriginRequest)(nil), // 7: pb.DeleteServerOriginRequest (*UpdateServerBasicRequest)(nil), // 8: pb.UpdateServerBasicRequest (*UpdateServerGroupIdsRequest)(nil), // 9: pb.UpdateServerGroupIdsRequest (*UpdateServerIsOnRequest)(nil), // 10: pb.UpdateServerIsOnRequest (*UpdateServerHTTPRequest)(nil), // 11: pb.UpdateServerHTTPRequest (*UpdateServerHTTPSRequest)(nil), // 12: pb.UpdateServerHTTPSRequest (*UpdateServerTCPRequest)(nil), // 13: pb.UpdateServerTCPRequest (*UpdateServerTLSRequest)(nil), // 14: pb.UpdateServerTLSRequest (*UpdateServerUnixRequest)(nil), // 15: pb.UpdateServerUnixRequest (*UpdateServerUDPRequest)(nil), // 16: pb.UpdateServerUDPRequest (*UpdateServerWebRequest)(nil), // 17: pb.UpdateServerWebRequest (*UpdateServerReverseProxyRequest)(nil), // 18: pb.UpdateServerReverseProxyRequest (*FindServerNamesRequest)(nil), // 19: pb.FindServerNamesRequest (*FindServerNamesResponse)(nil), // 20: pb.FindServerNamesResponse (*UpdateServerNamesRequest)(nil), // 21: pb.UpdateServerNamesRequest (*UpdateServerNamesAuditingRequest)(nil), // 22: pb.UpdateServerNamesAuditingRequest (*UpdateServerDNSRequest)(nil), // 23: pb.UpdateServerDNSRequest (*RegenerateServerDNSNameRequest)(nil), // 24: pb.RegenerateServerDNSNameRequest (*UpdateServerDNSNameRequest)(nil), // 25: pb.UpdateServerDNSNameRequest (*FindServerIdWithDNSNameRequest)(nil), // 26: pb.FindServerIdWithDNSNameRequest (*FindServerIdWithDNSNameResponse)(nil), // 27: pb.FindServerIdWithDNSNameResponse (*CountAllEnabledServersMatchRequest)(nil), // 28: pb.CountAllEnabledServersMatchRequest (*ListEnabledServersMatchRequest)(nil), // 29: pb.ListEnabledServersMatchRequest (*ListEnabledServersMatchResponse)(nil), // 30: pb.ListEnabledServersMatchResponse (*DeleteServerRequest)(nil), // 31: pb.DeleteServerRequest (*DeleteServersRequest)(nil), // 32: pb.DeleteServersRequest (*FindEnabledServerRequest)(nil), // 33: pb.FindEnabledServerRequest (*FindEnabledServerResponse)(nil), // 34: pb.FindEnabledServerResponse (*FindEnabledServerConfigRequest)(nil), // 35: pb.FindEnabledServerConfigRequest (*FindEnabledServerConfigResponse)(nil), // 36: pb.FindEnabledServerConfigResponse (*FindEnabledServerTypeRequest)(nil), // 37: pb.FindEnabledServerTypeRequest (*FindEnabledServerTypeResponse)(nil), // 38: pb.FindEnabledServerTypeResponse (*FindAndInitServerReverseProxyConfigRequest)(nil), // 39: pb.FindAndInitServerReverseProxyConfigRequest (*FindAndInitServerReverseProxyConfigResponse)(nil), // 40: pb.FindAndInitServerReverseProxyConfigResponse (*FindAndInitServerWebConfigRequest)(nil), // 41: pb.FindAndInitServerWebConfigRequest (*FindAndInitServerWebConfigResponse)(nil), // 42: pb.FindAndInitServerWebConfigResponse (*CountAllEnabledServersWithSSLCertIdRequest)(nil), // 43: pb.CountAllEnabledServersWithSSLCertIdRequest (*FindAllEnabledServersWithSSLCertIdRequest)(nil), // 44: pb.FindAllEnabledServersWithSSLCertIdRequest (*FindAllEnabledServersWithSSLCertIdResponse)(nil), // 45: pb.FindAllEnabledServersWithSSLCertIdResponse (*CountAllEnabledServersWithNodeClusterIdRequest)(nil), // 46: pb.CountAllEnabledServersWithNodeClusterIdRequest (*CountAllEnabledServersWithServerGroupIdRequest)(nil), // 47: pb.CountAllEnabledServersWithServerGroupIdRequest (*NotifyServersChangeRequest)(nil), // 48: pb.NotifyServersChangeRequest (*NotifyServersChangeResponse)(nil), // 49: pb.NotifyServersChangeResponse (*FindAllEnabledServersDNSWithNodeClusterIdRequest)(nil), // 50: pb.FindAllEnabledServersDNSWithNodeClusterIdRequest (*FindAllEnabledServersDNSWithNodeClusterIdResponse)(nil), // 51: pb.FindAllEnabledServersDNSWithNodeClusterIdResponse (*ServerDNSInfo)(nil), // 52: pb.ServerDNSInfo (*FindEnabledServerDNSRequest)(nil), // 53: pb.FindEnabledServerDNSRequest (*FindEnabledServerDNSResponse)(nil), // 54: pb.FindEnabledServerDNSResponse (*CheckUserServerRequest)(nil), // 55: pb.CheckUserServerRequest (*FindAllEnabledServerNamesWithUserIdRequest)(nil), // 56: pb.FindAllEnabledServerNamesWithUserIdRequest (*FindAllEnabledServerNamesWithUserIdResponse)(nil), // 57: pb.FindAllEnabledServerNamesWithUserIdResponse (*CountAllServerNamesWithUserIdRequest)(nil), // 58: pb.CountAllServerNamesWithUserIdRequest (*CountServerNamesRequest)(nil), // 59: pb.CountServerNamesRequest (*FindAllUserServersRequest)(nil), // 60: pb.FindAllUserServersRequest (*FindAllUserServersResponse)(nil), // 61: pb.FindAllUserServersResponse (*CountAllUserServersRequest)(nil), // 62: pb.CountAllUserServersRequest (*ComposeAllUserServersConfigRequest)(nil), // 63: pb.ComposeAllUserServersConfigRequest (*ComposeAllUserServersConfigResponse)(nil), // 64: pb.ComposeAllUserServersConfigResponse (*FindEnabledUserServerBasicRequest)(nil), // 65: pb.FindEnabledUserServerBasicRequest (*FindEnabledUserServerBasicResponse)(nil), // 66: pb.FindEnabledUserServerBasicResponse (*UpdateEnabledUserServerBasicRequest)(nil), // 67: pb.UpdateEnabledUserServerBasicRequest (*UploadServerHTTPRequestStatRequest)(nil), // 68: pb.UploadServerHTTPRequestStatRequest (*CheckServerNameDuplicationInNodeClusterRequest)(nil), // 69: pb.CheckServerNameDuplicationInNodeClusterRequest (*CheckServerNameDuplicationInNodeClusterResponse)(nil), // 70: pb.CheckServerNameDuplicationInNodeClusterResponse (*CheckServerNameInServerRequest)(nil), // 71: pb.CheckServerNameInServerRequest (*CheckServerNameInServerResponse)(nil), // 72: pb.CheckServerNameInServerResponse (*FindLatestServersRequest)(nil), // 73: pb.FindLatestServersRequest (*FindLatestServersResponse)(nil), // 74: pb.FindLatestServersResponse (*FindNearbyServersRequest)(nil), // 75: pb.FindNearbyServersRequest (*FindNearbyServersResponse)(nil), // 76: pb.FindNearbyServersResponse (*PurgeServerCacheRequest)(nil), // 77: pb.PurgeServerCacheRequest (*PurgeServerCacheResponse)(nil), // 78: pb.PurgeServerCacheResponse (*FindEnabledServerTrafficLimitRequest)(nil), // 79: pb.FindEnabledServerTrafficLimitRequest (*FindEnabledServerTrafficLimitResponse)(nil), // 80: pb.FindEnabledServerTrafficLimitResponse (*UpdateServerTrafficLimitRequest)(nil), // 81: pb.UpdateServerTrafficLimitRequest (*UpdateServerUserPlanRequest)(nil), // 82: pb.UpdateServerUserPlanRequest (*FindServerUserPlanRequest)(nil), // 83: pb.FindServerUserPlanRequest (*FindServerUserPlanResponse)(nil), // 84: pb.FindServerUserPlanResponse (*ComposeServerConfigRequest)(nil), // 85: pb.ComposeServerConfigRequest (*ComposeServerConfigResponse)(nil), // 86: pb.ComposeServerConfigResponse (*UpdateServerUAMRequest)(nil), // 87: pb.UpdateServerUAMRequest (*FindEnabledServerUAMRequest)(nil), // 88: pb.FindEnabledServerUAMRequest (*FindEnabledServerUAMResponse)(nil), // 89: pb.FindEnabledServerUAMResponse (*UpdateServerUserRequest)(nil), // 90: pb.UpdateServerUserRequest (*UpdateServerNameRequest)(nil), // 91: pb.UpdateServerNameRequest (*CopyServerConfigRequest)(nil), // 92: pb.CopyServerConfigRequest (*FindServerAuditingPromptRequest)(nil), // 93: pb.FindServerAuditingPromptRequest (*FindServerAuditingPromptResponse)(nil), // 94: pb.FindServerAuditingPromptResponse (*UploadServerHTTPRequestStatRequest_RegionCity)(nil), // 95: pb.UploadServerHTTPRequestStatRequest.RegionCity (*UploadServerHTTPRequestStatRequest_RegionProvider)(nil), // 96: pb.UploadServerHTTPRequestStatRequest.RegionProvider (*UploadServerHTTPRequestStatRequest_System)(nil), // 97: pb.UploadServerHTTPRequestStatRequest.System (*UploadServerHTTPRequestStatRequest_Browser)(nil), // 98: pb.UploadServerHTTPRequestStatRequest.Browser (*UploadServerHTTPRequestStatRequest_HTTPFirewallRuleGroup)(nil), // 99: pb.UploadServerHTTPRequestStatRequest.HTTPFirewallRuleGroup (*FindNearbyServersResponse_GroupInfo)(nil), // 100: pb.FindNearbyServersResponse.GroupInfo (*ServerNameAuditingResult)(nil), // 101: pb.ServerNameAuditingResult (*Server)(nil), // 102: pb.Server (*DNSDomain)(nil), // 103: pb.DNSDomain (*UserPlan)(nil), // 104: pb.UserPlan (*RPCSuccess)(nil), // 105: pb.RPCSuccess (*RPCCountResponse)(nil), // 106: pb.RPCCountResponse } var file_service_server_proto_depIdxs = []int32{ 101, // 0: pb.FindServerNamesResponse.auditingResult:type_name -> pb.ServerNameAuditingResult 101, // 1: pb.UpdateServerNamesAuditingRequest.auditingResult:type_name -> pb.ServerNameAuditingResult 102, // 2: pb.ListEnabledServersMatchResponse.servers:type_name -> pb.Server 102, // 3: pb.FindEnabledServerResponse.server:type_name -> pb.Server 102, // 4: pb.FindAllEnabledServersWithSSLCertIdResponse.servers:type_name -> pb.Server 52, // 5: pb.FindAllEnabledServersDNSWithNodeClusterIdResponse.servers:type_name -> pb.ServerDNSInfo 103, // 6: pb.FindEnabledServerDNSResponse.domain:type_name -> pb.DNSDomain 102, // 7: pb.FindAllUserServersResponse.servers:type_name -> pb.Server 102, // 8: pb.FindEnabledUserServerBasicResponse.server:type_name -> pb.Server 95, // 9: pb.UploadServerHTTPRequestStatRequest.regionCities:type_name -> pb.UploadServerHTTPRequestStatRequest.RegionCity 96, // 10: pb.UploadServerHTTPRequestStatRequest.regionProviders:type_name -> pb.UploadServerHTTPRequestStatRequest.RegionProvider 97, // 11: pb.UploadServerHTTPRequestStatRequest.systems:type_name -> pb.UploadServerHTTPRequestStatRequest.System 98, // 12: pb.UploadServerHTTPRequestStatRequest.browsers:type_name -> pb.UploadServerHTTPRequestStatRequest.Browser 99, // 13: pb.UploadServerHTTPRequestStatRequest.httpFirewallRuleGroups:type_name -> pb.UploadServerHTTPRequestStatRequest.HTTPFirewallRuleGroup 102, // 14: pb.FindLatestServersResponse.servers:type_name -> pb.Server 100, // 15: pb.FindNearbyServersResponse.groups:type_name -> pb.FindNearbyServersResponse.GroupInfo 104, // 16: pb.FindServerUserPlanResponse.userPlan:type_name -> pb.UserPlan 102, // 17: pb.FindNearbyServersResponse.GroupInfo.servers:type_name -> pb.Server 0, // 18: pb.ServerService.createServer:input_type -> pb.CreateServerRequest 2, // 19: pb.ServerService.createBasicHTTPServer:input_type -> pb.CreateBasicHTTPServerRequest 4, // 20: pb.ServerService.createBasicTCPServer:input_type -> pb.CreateBasicTCPServerRequest 6, // 21: pb.ServerService.addServerOrigin:input_type -> pb.AddServerOriginRequest 7, // 22: pb.ServerService.deleteServerOrigin:input_type -> pb.DeleteServerOriginRequest 8, // 23: pb.ServerService.updateServerBasic:input_type -> pb.UpdateServerBasicRequest 9, // 24: pb.ServerService.updateServerGroupIds:input_type -> pb.UpdateServerGroupIdsRequest 10, // 25: pb.ServerService.updateServerIsOn:input_type -> pb.UpdateServerIsOnRequest 11, // 26: pb.ServerService.updateServerHTTP:input_type -> pb.UpdateServerHTTPRequest 12, // 27: pb.ServerService.updateServerHTTPS:input_type -> pb.UpdateServerHTTPSRequest 13, // 28: pb.ServerService.updateServerTCP:input_type -> pb.UpdateServerTCPRequest 14, // 29: pb.ServerService.updateServerTLS:input_type -> pb.UpdateServerTLSRequest 15, // 30: pb.ServerService.updateServerUnix:input_type -> pb.UpdateServerUnixRequest 16, // 31: pb.ServerService.updateServerUDP:input_type -> pb.UpdateServerUDPRequest 17, // 32: pb.ServerService.updateServerWeb:input_type -> pb.UpdateServerWebRequest 18, // 33: pb.ServerService.updateServerReverseProxy:input_type -> pb.UpdateServerReverseProxyRequest 19, // 34: pb.ServerService.findServerNames:input_type -> pb.FindServerNamesRequest 21, // 35: pb.ServerService.updateServerNames:input_type -> pb.UpdateServerNamesRequest 22, // 36: pb.ServerService.updateServerNamesAuditing:input_type -> pb.UpdateServerNamesAuditingRequest 23, // 37: pb.ServerService.updateServerDNS:input_type -> pb.UpdateServerDNSRequest 24, // 38: pb.ServerService.regenerateServerDNSName:input_type -> pb.RegenerateServerDNSNameRequest 25, // 39: pb.ServerService.updateServerDNSName:input_type -> pb.UpdateServerDNSNameRequest 26, // 40: pb.ServerService.findServerIdWithDNSName:input_type -> pb.FindServerIdWithDNSNameRequest 28, // 41: pb.ServerService.countAllEnabledServersMatch:input_type -> pb.CountAllEnabledServersMatchRequest 29, // 42: pb.ServerService.listEnabledServersMatch:input_type -> pb.ListEnabledServersMatchRequest 31, // 43: pb.ServerService.deleteServer:input_type -> pb.DeleteServerRequest 32, // 44: pb.ServerService.deleteServers:input_type -> pb.DeleteServersRequest 33, // 45: pb.ServerService.findEnabledServer:input_type -> pb.FindEnabledServerRequest 35, // 46: pb.ServerService.findEnabledServerConfig:input_type -> pb.FindEnabledServerConfigRequest 37, // 47: pb.ServerService.findEnabledServerType:input_type -> pb.FindEnabledServerTypeRequest 39, // 48: pb.ServerService.findAndInitServerReverseProxyConfig:input_type -> pb.FindAndInitServerReverseProxyConfigRequest 41, // 49: pb.ServerService.findAndInitServerWebConfig:input_type -> pb.FindAndInitServerWebConfigRequest 43, // 50: pb.ServerService.countAllEnabledServersWithSSLCertId:input_type -> pb.CountAllEnabledServersWithSSLCertIdRequest 44, // 51: pb.ServerService.findAllEnabledServersWithSSLCertId:input_type -> pb.FindAllEnabledServersWithSSLCertIdRequest 46, // 52: pb.ServerService.countAllEnabledServersWithNodeClusterId:input_type -> pb.CountAllEnabledServersWithNodeClusterIdRequest 47, // 53: pb.ServerService.countAllEnabledServersWithServerGroupId:input_type -> pb.CountAllEnabledServersWithServerGroupIdRequest 48, // 54: pb.ServerService.notifyServersChange:input_type -> pb.NotifyServersChangeRequest 50, // 55: pb.ServerService.findAllEnabledServersDNSWithNodeClusterId:input_type -> pb.FindAllEnabledServersDNSWithNodeClusterIdRequest 53, // 56: pb.ServerService.findEnabledServerDNS:input_type -> pb.FindEnabledServerDNSRequest 55, // 57: pb.ServerService.checkUserServer:input_type -> pb.CheckUserServerRequest 56, // 58: pb.ServerService.findAllEnabledServerNamesWithUserId:input_type -> pb.FindAllEnabledServerNamesWithUserIdRequest 58, // 59: pb.ServerService.countAllServerNamesWithUserId:input_type -> pb.CountAllServerNamesWithUserIdRequest 59, // 60: pb.ServerService.countServerNames:input_type -> pb.CountServerNamesRequest 60, // 61: pb.ServerService.findAllUserServers:input_type -> pb.FindAllUserServersRequest 62, // 62: pb.ServerService.countAllUserServers:input_type -> pb.CountAllUserServersRequest 63, // 63: pb.ServerService.composeAllUserServersConfig:input_type -> pb.ComposeAllUserServersConfigRequest 65, // 64: pb.ServerService.findEnabledUserServerBasic:input_type -> pb.FindEnabledUserServerBasicRequest 67, // 65: pb.ServerService.updateEnabledUserServerBasic:input_type -> pb.UpdateEnabledUserServerBasicRequest 68, // 66: pb.ServerService.uploadServerHTTPRequestStat:input_type -> pb.UploadServerHTTPRequestStatRequest 69, // 67: pb.ServerService.checkServerNameDuplicationInNodeCluster:input_type -> pb.CheckServerNameDuplicationInNodeClusterRequest 71, // 68: pb.ServerService.checkServerNameInServer:input_type -> pb.CheckServerNameInServerRequest 73, // 69: pb.ServerService.findLatestServers:input_type -> pb.FindLatestServersRequest 75, // 70: pb.ServerService.findNearbyServers:input_type -> pb.FindNearbyServersRequest 77, // 71: pb.ServerService.purgeServerCache:input_type -> pb.PurgeServerCacheRequest 79, // 72: pb.ServerService.findEnabledServerTrafficLimit:input_type -> pb.FindEnabledServerTrafficLimitRequest 81, // 73: pb.ServerService.updateServerTrafficLimit:input_type -> pb.UpdateServerTrafficLimitRequest 82, // 74: pb.ServerService.updateServerUserPlan:input_type -> pb.UpdateServerUserPlanRequest 83, // 75: pb.ServerService.findServerUserPlan:input_type -> pb.FindServerUserPlanRequest 85, // 76: pb.ServerService.composeServerConfig:input_type -> pb.ComposeServerConfigRequest 87, // 77: pb.ServerService.updateServerUAM:input_type -> pb.UpdateServerUAMRequest 88, // 78: pb.ServerService.findEnabledServerUAM:input_type -> pb.FindEnabledServerUAMRequest 90, // 79: pb.ServerService.updateServerUser:input_type -> pb.UpdateServerUserRequest 91, // 80: pb.ServerService.updateServerName:input_type -> pb.UpdateServerNameRequest 92, // 81: pb.ServerService.copyServerConfig:input_type -> pb.CopyServerConfigRequest 93, // 82: pb.ServerService.findServerAuditingPrompt:input_type -> pb.FindServerAuditingPromptRequest 1, // 83: pb.ServerService.createServer:output_type -> pb.CreateServerResponse 3, // 84: pb.ServerService.createBasicHTTPServer:output_type -> pb.CreateBasicHTTPServerResponse 5, // 85: pb.ServerService.createBasicTCPServer:output_type -> pb.CreateBasicTCPServerResponse 105, // 86: pb.ServerService.addServerOrigin:output_type -> pb.RPCSuccess 105, // 87: pb.ServerService.deleteServerOrigin:output_type -> pb.RPCSuccess 105, // 88: pb.ServerService.updateServerBasic:output_type -> pb.RPCSuccess 105, // 89: pb.ServerService.updateServerGroupIds:output_type -> pb.RPCSuccess 105, // 90: pb.ServerService.updateServerIsOn:output_type -> pb.RPCSuccess 105, // 91: pb.ServerService.updateServerHTTP:output_type -> pb.RPCSuccess 105, // 92: pb.ServerService.updateServerHTTPS:output_type -> pb.RPCSuccess 105, // 93: pb.ServerService.updateServerTCP:output_type -> pb.RPCSuccess 105, // 94: pb.ServerService.updateServerTLS:output_type -> pb.RPCSuccess 105, // 95: pb.ServerService.updateServerUnix:output_type -> pb.RPCSuccess 105, // 96: pb.ServerService.updateServerUDP:output_type -> pb.RPCSuccess 105, // 97: pb.ServerService.updateServerWeb:output_type -> pb.RPCSuccess 105, // 98: pb.ServerService.updateServerReverseProxy:output_type -> pb.RPCSuccess 20, // 99: pb.ServerService.findServerNames:output_type -> pb.FindServerNamesResponse 105, // 100: pb.ServerService.updateServerNames:output_type -> pb.RPCSuccess 105, // 101: pb.ServerService.updateServerNamesAuditing:output_type -> pb.RPCSuccess 105, // 102: pb.ServerService.updateServerDNS:output_type -> pb.RPCSuccess 105, // 103: pb.ServerService.regenerateServerDNSName:output_type -> pb.RPCSuccess 105, // 104: pb.ServerService.updateServerDNSName:output_type -> pb.RPCSuccess 27, // 105: pb.ServerService.findServerIdWithDNSName:output_type -> pb.FindServerIdWithDNSNameResponse 106, // 106: pb.ServerService.countAllEnabledServersMatch:output_type -> pb.RPCCountResponse 30, // 107: pb.ServerService.listEnabledServersMatch:output_type -> pb.ListEnabledServersMatchResponse 105, // 108: pb.ServerService.deleteServer:output_type -> pb.RPCSuccess 105, // 109: pb.ServerService.deleteServers:output_type -> pb.RPCSuccess 34, // 110: pb.ServerService.findEnabledServer:output_type -> pb.FindEnabledServerResponse 36, // 111: pb.ServerService.findEnabledServerConfig:output_type -> pb.FindEnabledServerConfigResponse 38, // 112: pb.ServerService.findEnabledServerType:output_type -> pb.FindEnabledServerTypeResponse 40, // 113: pb.ServerService.findAndInitServerReverseProxyConfig:output_type -> pb.FindAndInitServerReverseProxyConfigResponse 42, // 114: pb.ServerService.findAndInitServerWebConfig:output_type -> pb.FindAndInitServerWebConfigResponse 106, // 115: pb.ServerService.countAllEnabledServersWithSSLCertId:output_type -> pb.RPCCountResponse 45, // 116: pb.ServerService.findAllEnabledServersWithSSLCertId:output_type -> pb.FindAllEnabledServersWithSSLCertIdResponse 106, // 117: pb.ServerService.countAllEnabledServersWithNodeClusterId:output_type -> pb.RPCCountResponse 106, // 118: pb.ServerService.countAllEnabledServersWithServerGroupId:output_type -> pb.RPCCountResponse 49, // 119: pb.ServerService.notifyServersChange:output_type -> pb.NotifyServersChangeResponse 51, // 120: pb.ServerService.findAllEnabledServersDNSWithNodeClusterId:output_type -> pb.FindAllEnabledServersDNSWithNodeClusterIdResponse 54, // 121: pb.ServerService.findEnabledServerDNS:output_type -> pb.FindEnabledServerDNSResponse 105, // 122: pb.ServerService.checkUserServer:output_type -> pb.RPCSuccess 57, // 123: pb.ServerService.findAllEnabledServerNamesWithUserId:output_type -> pb.FindAllEnabledServerNamesWithUserIdResponse 106, // 124: pb.ServerService.countAllServerNamesWithUserId:output_type -> pb.RPCCountResponse 106, // 125: pb.ServerService.countServerNames:output_type -> pb.RPCCountResponse 61, // 126: pb.ServerService.findAllUserServers:output_type -> pb.FindAllUserServersResponse 106, // 127: pb.ServerService.countAllUserServers:output_type -> pb.RPCCountResponse 64, // 128: pb.ServerService.composeAllUserServersConfig:output_type -> pb.ComposeAllUserServersConfigResponse 66, // 129: pb.ServerService.findEnabledUserServerBasic:output_type -> pb.FindEnabledUserServerBasicResponse 105, // 130: pb.ServerService.updateEnabledUserServerBasic:output_type -> pb.RPCSuccess 105, // 131: pb.ServerService.uploadServerHTTPRequestStat:output_type -> pb.RPCSuccess 70, // 132: pb.ServerService.checkServerNameDuplicationInNodeCluster:output_type -> pb.CheckServerNameDuplicationInNodeClusterResponse 72, // 133: pb.ServerService.checkServerNameInServer:output_type -> pb.CheckServerNameInServerResponse 74, // 134: pb.ServerService.findLatestServers:output_type -> pb.FindLatestServersResponse 76, // 135: pb.ServerService.findNearbyServers:output_type -> pb.FindNearbyServersResponse 78, // 136: pb.ServerService.purgeServerCache:output_type -> pb.PurgeServerCacheResponse 80, // 137: pb.ServerService.findEnabledServerTrafficLimit:output_type -> pb.FindEnabledServerTrafficLimitResponse 105, // 138: pb.ServerService.updateServerTrafficLimit:output_type -> pb.RPCSuccess 105, // 139: pb.ServerService.updateServerUserPlan:output_type -> pb.RPCSuccess 84, // 140: pb.ServerService.findServerUserPlan:output_type -> pb.FindServerUserPlanResponse 86, // 141: pb.ServerService.composeServerConfig:output_type -> pb.ComposeServerConfigResponse 105, // 142: pb.ServerService.updateServerUAM:output_type -> pb.RPCSuccess 89, // 143: pb.ServerService.findEnabledServerUAM:output_type -> pb.FindEnabledServerUAMResponse 105, // 144: pb.ServerService.updateServerUser:output_type -> pb.RPCSuccess 105, // 145: pb.ServerService.updateServerName:output_type -> pb.RPCSuccess 105, // 146: pb.ServerService.copyServerConfig:output_type -> pb.RPCSuccess 94, // 147: pb.ServerService.findServerAuditingPrompt:output_type -> pb.FindServerAuditingPromptResponse 83, // [83:148] is the sub-list for method output_type 18, // [18:83] is the sub-list for method input_type 18, // [18:18] is the sub-list for extension type_name 18, // [18:18] is the sub-list for extension extendee 0, // [0:18] is the sub-list for field type_name } func init() { file_service_server_proto_init() } func file_service_server_proto_init() { if File_service_server_proto != nil { return } file_models_model_server_proto_init() file_models_model_dns_domain_proto_init() file_models_model_server_name_auditing_result_proto_init() file_models_rpc_messages_proto_init() file_models_model_user_plan_proto_init() if !protoimpl.UnsafeEnabled { file_service_server_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateServerRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateServerResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateBasicHTTPServerRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateBasicHTTPServerResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateBasicTCPServerRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateBasicTCPServerResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AddServerOriginRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteServerOriginRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerBasicRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerGroupIdsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerIsOnRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerHTTPRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerHTTPSRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerTCPRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerTLSRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerUnixRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerUDPRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerWebRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerReverseProxyRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindServerNamesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindServerNamesResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerNamesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerNamesAuditingRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerDNSRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RegenerateServerDNSNameRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerDNSNameRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindServerIdWithDNSNameRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindServerIdWithDNSNameResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllEnabledServersMatchRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEnabledServersMatchRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEnabledServersMatchResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteServerRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteServersRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledServerRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledServerResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledServerConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledServerConfigResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledServerTypeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledServerTypeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAndInitServerReverseProxyConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAndInitServerReverseProxyConfigResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAndInitServerWebConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAndInitServerWebConfigResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllEnabledServersWithSSLCertIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledServersWithSSLCertIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledServersWithSSLCertIdResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllEnabledServersWithNodeClusterIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllEnabledServersWithServerGroupIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotifyServersChangeRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NotifyServersChangeResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledServersDNSWithNodeClusterIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledServersDNSWithNodeClusterIdResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ServerDNSInfo); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledServerDNSRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledServerDNSResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckUserServerRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledServerNamesWithUserIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllEnabledServerNamesWithUserIdResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllServerNamesWithUserIdRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountServerNamesRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllUserServersRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindAllUserServersResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CountAllUserServersRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ComposeAllUserServersConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ComposeAllUserServersConfigResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledUserServerBasicRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledUserServerBasicResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateEnabledUserServerBasicRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UploadServerHTTPRequestStatRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckServerNameDuplicationInNodeClusterRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckServerNameDuplicationInNodeClusterResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckServerNameInServerRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CheckServerNameInServerResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindLatestServersRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindLatestServersResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNearbyServersRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNearbyServersResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PurgeServerCacheRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PurgeServerCacheResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledServerTrafficLimitRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledServerTrafficLimitResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerTrafficLimitRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerUserPlanRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindServerUserPlanRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindServerUserPlanResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ComposeServerConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ComposeServerConfigResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerUAMRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledServerUAMRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindEnabledServerUAMResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerUserRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateServerNameRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CopyServerConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindServerAuditingPromptRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindServerAuditingPromptResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UploadServerHTTPRequestStatRequest_RegionCity); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UploadServerHTTPRequestStatRequest_RegionProvider); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UploadServerHTTPRequestStatRequest_System); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UploadServerHTTPRequestStatRequest_Browser); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UploadServerHTTPRequestStatRequest_HTTPFirewallRuleGroup); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_service_server_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FindNearbyServersResponse_GroupInfo); 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{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_service_server_proto_rawDesc, NumEnums: 0, NumMessages: 101, NumExtensions: 0, NumServices: 1, }, GoTypes: file_service_server_proto_goTypes, DependencyIndexes: file_service_server_proto_depIdxs, MessageInfos: file_service_server_proto_msgTypes, }.Build() File_service_server_proto = out.File file_service_server_proto_rawDesc = nil file_service_server_proto_goTypes = nil file_service_server_proto_depIdxs = nil }