mirror of
https://github.com/chirpstack/chirpstack.git
synced 2025-02-20 17:12:48 +00:00
Add sorting to device and gw table. (#579)
Co-authored-by: Franka Schmid <fra.schmid@rational-online.com> Co-authored-by: Orne Brocaar <info@brocaar.com>
This commit is contained in:
parent
2fc762d932
commit
01246dd124
1061
api/go/api/device.pb.go
vendored
1061
api/go/api/device.pb.go
vendored
File diff suppressed because it is too large
Load Diff
821
api/go/api/gateway.pb.go
vendored
821
api/go/api/gateway.pb.go
vendored
@ -76,6 +76,55 @@ func (GatewayState) EnumDescriptor() ([]byte, []int) {
|
|||||||
return file_api_gateway_proto_rawDescGZIP(), []int{0}
|
return file_api_gateway_proto_rawDescGZIP(), []int{0}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ListGatewaysRequest_OrderBy int32
|
||||||
|
|
||||||
|
const (
|
||||||
|
ListGatewaysRequest_NAME ListGatewaysRequest_OrderBy = 0
|
||||||
|
ListGatewaysRequest_GATEWAY_ID ListGatewaysRequest_OrderBy = 1
|
||||||
|
ListGatewaysRequest_LAST_SEEN_AT ListGatewaysRequest_OrderBy = 2
|
||||||
|
)
|
||||||
|
|
||||||
|
// Enum value maps for ListGatewaysRequest_OrderBy.
|
||||||
|
var (
|
||||||
|
ListGatewaysRequest_OrderBy_name = map[int32]string{
|
||||||
|
0: "NAME",
|
||||||
|
1: "GATEWAY_ID",
|
||||||
|
2: "LAST_SEEN_AT",
|
||||||
|
}
|
||||||
|
ListGatewaysRequest_OrderBy_value = map[string]int32{
|
||||||
|
"NAME": 0,
|
||||||
|
"GATEWAY_ID": 1,
|
||||||
|
"LAST_SEEN_AT": 2,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
func (x ListGatewaysRequest_OrderBy) Enum() *ListGatewaysRequest_OrderBy {
|
||||||
|
p := new(ListGatewaysRequest_OrderBy)
|
||||||
|
*p = x
|
||||||
|
return p
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x ListGatewaysRequest_OrderBy) String() string {
|
||||||
|
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ListGatewaysRequest_OrderBy) Descriptor() protoreflect.EnumDescriptor {
|
||||||
|
return file_api_gateway_proto_enumTypes[1].Descriptor()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ListGatewaysRequest_OrderBy) Type() protoreflect.EnumType {
|
||||||
|
return &file_api_gateway_proto_enumTypes[1]
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x ListGatewaysRequest_OrderBy) Number() protoreflect.EnumNumber {
|
||||||
|
return protoreflect.EnumNumber(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Deprecated: Use ListGatewaysRequest_OrderBy.Descriptor instead.
|
||||||
|
func (ListGatewaysRequest_OrderBy) EnumDescriptor() ([]byte, []int) {
|
||||||
|
return file_api_gateway_proto_rawDescGZIP(), []int{7, 0}
|
||||||
|
}
|
||||||
|
|
||||||
type Gateway struct {
|
type Gateway struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
@ -589,6 +638,10 @@ type ListGatewaysRequest struct {
|
|||||||
TenantId string `protobuf:"bytes,4,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
|
TenantId string `protobuf:"bytes,4,opt,name=tenant_id,json=tenantId,proto3" json:"tenant_id,omitempty"`
|
||||||
// Multicast-group ID (UUID) to filter gateways on.
|
// Multicast-group ID (UUID) to filter gateways on.
|
||||||
MulticastGroupId string `protobuf:"bytes,5,opt,name=multicast_group_id,json=multicastGroupId,proto3" json:"multicast_group_id,omitempty"`
|
MulticastGroupId string `protobuf:"bytes,5,opt,name=multicast_group_id,json=multicastGroupId,proto3" json:"multicast_group_id,omitempty"`
|
||||||
|
// If set, the given value will be used to sort by (optional).
|
||||||
|
OrderBy ListGatewaysRequest_OrderBy `protobuf:"varint,6,opt,name=order_by,json=orderBy,proto3,enum=api.ListGatewaysRequest_OrderBy" json:"order_by,omitempty"`
|
||||||
|
// If set, the sorting direction will be decending (default = ascending) (optional).
|
||||||
|
OrderByDesc bool `protobuf:"varint,7,opt,name=order_by_desc,json=orderByDesc,proto3" json:"order_by_desc,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (x *ListGatewaysRequest) Reset() {
|
func (x *ListGatewaysRequest) Reset() {
|
||||||
@ -656,6 +709,20 @@ func (x *ListGatewaysRequest) GetMulticastGroupId() string {
|
|||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (x *ListGatewaysRequest) GetOrderBy() ListGatewaysRequest_OrderBy {
|
||||||
|
if x != nil {
|
||||||
|
return x.OrderBy
|
||||||
|
}
|
||||||
|
return ListGatewaysRequest_NAME
|
||||||
|
}
|
||||||
|
|
||||||
|
func (x *ListGatewaysRequest) GetOrderByDesc() bool {
|
||||||
|
if x != nil {
|
||||||
|
return x.OrderByDesc
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
type ListGatewaysResponse struct {
|
type ListGatewaysResponse struct {
|
||||||
state protoimpl.MessageState
|
state protoimpl.MessageState
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
@ -1785,7 +1852,7 @@ var file_api_gateway_proto_rawDesc = []byte{
|
|||||||
0x77, 0x61, 0x79, 0x22, 0x35, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x61, 0x74,
|
0x77, 0x61, 0x79, 0x22, 0x35, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x61, 0x74,
|
||||||
0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x67,
|
0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x67,
|
||||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
|
||||||
0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x22, 0xa6, 0x01, 0x0a, 0x13, 0x4c,
|
0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x22, 0xbe, 0x02, 0x0a, 0x13, 0x4c,
|
||||||
0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
|
0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||||
0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
|
0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73,
|
0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73,
|
||||||
@ -1796,282 +1863,292 @@ var file_api_gateway_proto_rawDesc = []byte{
|
|||||||
0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61,
|
||||||
0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28,
|
0x73, 0x74, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28,
|
||||||
0x09, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75,
|
0x09, 0x52, 0x10, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x47, 0x72, 0x6f, 0x75,
|
||||||
0x70, 0x49, 0x64, 0x22, 0x65, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77,
|
0x70, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x08, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x18,
|
||||||
0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74,
|
0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74,
|
||||||
0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d,
|
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e,
|
||||||
0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x06,
|
0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79,
|
||||||
0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61,
|
0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x73,
|
||||||
0x70, 0x69, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74,
|
0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79,
|
||||||
0x65, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x48, 0x0a, 0x27, 0x47, 0x65,
|
0x44, 0x65, 0x73, 0x63, 0x22, 0x35, 0x0a, 0x07, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79, 0x12,
|
||||||
0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6c, 0x69,
|
0x08, 0x0a, 0x04, 0x4e, 0x41, 0x4d, 0x45, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x41, 0x54,
|
||||||
0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65,
|
0x45, 0x57, 0x41, 0x59, 0x5f, 0x49, 0x44, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4c, 0x41, 0x53,
|
||||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
0x54, 0x5f, 0x53, 0x45, 0x45, 0x4e, 0x5f, 0x41, 0x54, 0x10, 0x02, 0x22, 0x65, 0x0a, 0x14, 0x4c,
|
||||||
0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77,
|
0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||||
0x61, 0x79, 0x49, 0x64, 0x22, 0xb2, 0x01, 0x0a, 0x28, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
|
0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75,
|
||||||
0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65,
|
0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43,
|
||||||
0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
|
0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02,
|
||||||
0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x01, 0x20,
|
0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77,
|
||||||
0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07,
|
0x61, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75,
|
||||||
0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74,
|
0x6c, 0x74, 0x22, 0x48, 0x0a, 0x27, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x61,
|
||||||
0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x61, 0x5f, 0x63, 0x65, 0x72, 0x74,
|
0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69,
|
||||||
0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x43, 0x65, 0x72, 0x74, 0x12, 0x39,
|
0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a,
|
||||||
0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01,
|
0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x22, 0xb2, 0x01, 0x0a,
|
||||||
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09,
|
0x28, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
||||||
0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x22, 0xd0, 0x01, 0x0a, 0x18, 0x47, 0x65,
|
0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
|
||||||
0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52,
|
0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6c, 0x73,
|
||||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
|
0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6c, 0x73,
|
||||||
0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65,
|
0x43, 0x65, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6c, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18,
|
||||||
0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02,
|
0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x6c, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a,
|
||||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
|
0x07, 0x63, 0x61, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
|
||||||
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
|
0x63, 0x61, 0x43, 0x65, 0x72, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65,
|
||||||
0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03,
|
0x73, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
|
||||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
|
|
||||||
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
|
|
||||||
0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61,
|
|
||||||
0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6d,
|
|
||||||
0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52,
|
|
||||||
0x0b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb0, 0x03, 0x0a,
|
|
||||||
0x19, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69,
|
|
||||||
0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x0a, 0x72, 0x78,
|
|
||||||
0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e,
|
|
||||||
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x09,
|
|
||||||
0x72, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x0a, 0x74, 0x78, 0x5f,
|
|
||||||
0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
|
|
||||||
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x09, 0x74,
|
|
||||||
0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x13, 0x74, 0x78, 0x5f, 0x70,
|
|
||||||
0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x18,
|
|
||||||
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d,
|
|
||||||
0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x10, 0x74, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73,
|
|
||||||
0x50, 0x65, 0x72, 0x46, 0x72, 0x65, 0x71, 0x12, 0x3d, 0x0a, 0x13, 0x72, 0x78, 0x5f, 0x70, 0x61,
|
|
||||||
0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x18, 0x04,
|
|
||||||
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65,
|
|
||||||
0x74, 0x72, 0x69, 0x63, 0x52, 0x10, 0x72, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50,
|
|
||||||
0x65, 0x72, 0x46, 0x72, 0x65, 0x71, 0x12, 0x39, 0x0a, 0x11, 0x74, 0x78, 0x5f, 0x70, 0x61, 0x63,
|
|
||||||
0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28,
|
|
||||||
0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69,
|
|
||||||
0x63, 0x52, 0x0e, 0x74, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x44,
|
|
||||||
0x72, 0x12, 0x39, 0x0a, 0x11, 0x72, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f,
|
|
||||||
0x70, 0x65, 0x72, 0x5f, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63,
|
|
||||||
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0e, 0x72, 0x78,
|
|
||||||
0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x44, 0x72, 0x12, 0x41, 0x0a, 0x15,
|
|
||||||
0x74, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73,
|
|
||||||
0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f,
|
|
||||||
0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x12, 0x74, 0x78, 0x50,
|
|
||||||
0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22,
|
|
||||||
0xa2, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x44, 0x75,
|
|
||||||
0x74, 0x79, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65,
|
|
||||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
|
||||||
0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77,
|
|
||||||
0x61, 0x79, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20,
|
|
||||||
0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
|
|
||||||
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
|
|
||||||
0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20,
|
|
||||||
0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
|
|
||||||
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52,
|
|
||||||
0x03, 0x65, 0x6e, 0x64, 0x22, 0xa1, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65,
|
|
||||||
0x77, 0x61, 0x79, 0x44, 0x75, 0x74, 0x79, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x72,
|
|
||||||
0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x13, 0x6d,
|
|
||||||
0x61, 0x78, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61,
|
|
||||||
0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
|
|
||||||
0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x4c, 0x6f, 0x61,
|
|
||||||
0x64, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x12, 0x3b, 0x0a, 0x11, 0x77,
|
|
||||||
0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65,
|
|
||||||
0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
|
|
||||||
0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x10, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x50, 0x65,
|
|
||||||
0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x22, 0x50, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x52,
|
|
||||||
0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
|
|
||||||
0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18,
|
|
||||||
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12,
|
|
||||||
0x19, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
|
|
||||||
0x09, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x22, 0x85, 0x02, 0x0a, 0x17, 0x47,
|
|
||||||
0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65,
|
|
||||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f,
|
|
||||||
0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e,
|
|
||||||
0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
|
||||||
0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x39,
|
|
||||||
0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01,
|
|
||||||
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
|
||||||
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09,
|
|
||||||
0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64,
|
|
||||||
0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
|
|
||||||
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
|
|
||||||
0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74,
|
|
||||||
0x65, 0x64, 0x41, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65,
|
|
||||||
0x6e, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
|
|
||||||
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
|
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
|
||||||
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e,
|
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x41,
|
||||||
0x41, 0x74, 0x22, 0x65, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47,
|
0x74, 0x22, 0xd0, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
||||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14,
|
0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d,
|
||||||
0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c,
|
0x0a, 0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
|
||||||
0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02,
|
0x28, 0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x30, 0x0a,
|
||||||
0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09,
|
0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
|
||||||
0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
|
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
|
||||||
0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x6f, 0x0a, 0x19, 0x4c, 0x69, 0x73,
|
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12,
|
||||||
0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65,
|
0x2c, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
|
||||||
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f,
|
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
|
||||||
0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74,
|
0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x12, 0x35, 0x0a,
|
||||||
0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x31, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c,
|
0x0b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01,
|
||||||
0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65,
|
0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x41, 0x67, 0x67, 0x72,
|
||||||
0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74,
|
0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0b, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61,
|
||||||
0x65, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x8b, 0x03, 0x0a, 0x14, 0x52,
|
0x74, 0x69, 0x6f, 0x6e, 0x22, 0xb0, 0x03, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65,
|
||||||
0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x49,
|
0x77, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
|
||||||
0x74, 0x65, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64,
|
0x73, 0x65, 0x12, 0x2d, 0x0a, 0x0a, 0x72, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73,
|
||||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64,
|
0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e,
|
||||||
0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
|
0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x09, 0x72, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74,
|
||||||
0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e,
|
0x73, 0x12, 0x2d, 0x0a, 0x0a, 0x74, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18,
|
||||||
0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
|
0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d,
|
||||||
0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04,
|
0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x09, 0x74, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73,
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
|
0x12, 0x3d, 0x0a, 0x13, 0x74, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70,
|
||||||
0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18,
|
0x65, 0x72, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
|
||||||
0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
|
0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x10, 0x74,
|
||||||
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
|
0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x46, 0x72, 0x65, 0x71, 0x12,
|
||||||
0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a,
|
0x3d, 0x0a, 0x13, 0x72, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65,
|
||||||
0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
|
0x72, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63,
|
||||||
0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
|
0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x10, 0x72, 0x78,
|
||||||
0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70,
|
0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x46, 0x72, 0x65, 0x71, 0x12, 0x39,
|
||||||
0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3c, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f,
|
0x0a, 0x11, 0x74, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72,
|
||||||
0x73, 0x65, 0x65, 0x6e, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
|
0x5f, 0x64, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d,
|
||||||
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
|
0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0e, 0x74, 0x78, 0x50, 0x61, 0x63,
|
||||||
0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x53,
|
0x6b, 0x65, 0x74, 0x73, 0x50, 0x65, 0x72, 0x44, 0x72, 0x12, 0x39, 0x0a, 0x11, 0x72, 0x78, 0x5f,
|
||||||
0x65, 0x65, 0x6e, 0x41, 0x74, 0x12, 0x27, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a,
|
0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x72, 0x18, 0x06,
|
||||||
0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77,
|
0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65,
|
||||||
0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28,
|
0x74, 0x72, 0x69, 0x63, 0x52, 0x0e, 0x72, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50,
|
||||||
0x0a, 0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f,
|
0x65, 0x72, 0x44, 0x72, 0x12, 0x41, 0x0a, 0x15, 0x74, 0x78, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65,
|
||||||
0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e,
|
0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20,
|
||||||
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x22, 0x53, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61,
|
0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74,
|
||||||
0x74, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65,
|
0x72, 0x69, 0x63, 0x52, 0x12, 0x74, 0x78, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x50, 0x65,
|
||||||
0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x67,
|
0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xa2, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x47,
|
||||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61,
|
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x44, 0x75, 0x74, 0x79, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x4d,
|
||||||
0x70, 0x69, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52,
|
0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a,
|
||||||
0x0c, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x22, 0x53, 0x0a,
|
0x0a, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
|
||||||
0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65,
|
0x09, 0x52, 0x09, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x05,
|
||||||
|
0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
|
||||||
|
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
|
||||||
|
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x2c,
|
||||||
|
0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
|
||||||
|
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
|
||||||
|
0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x22, 0xa1, 0x01, 0x0a,
|
||||||
|
0x22, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x44, 0x75, 0x74, 0x79, 0x43,
|
||||||
|
0x79, 0x63, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||||
|
0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x5f,
|
||||||
|
0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
|
||||||
|
0x32, 0x0e, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63,
|
||||||
|
0x52, 0x11, 0x6d, 0x61, 0x78, 0x4c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74,
|
||||||
|
0x61, 0x67, 0x65, 0x12, 0x3b, 0x0a, 0x11, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x70, 0x65,
|
||||||
|
0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e,
|
||||||
|
0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x10,
|
||||||
|
0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65,
|
||||||
|
0x22, 0x50, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65,
|
||||||
0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65,
|
0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65,
|
||||||
0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74,
|
0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74,
|
||||||
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79,
|
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79,
|
||||||
0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x61, 0x79,
|
0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x61, 0x79,
|
||||||
0x49, 0x64, 0x22, 0xcd, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65,
|
0x49, 0x64, 0x22, 0x85, 0x02, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47,
|
||||||
0x77, 0x61, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64,
|
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36,
|
||||||
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64,
|
0x0a, 0x0d, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18,
|
||||||
0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
|
0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6c, 0x61,
|
||||||
0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e,
|
0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x47,
|
||||||
0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12,
|
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
|
||||||
0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04,
|
0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
|
||||||
0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
|
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
|
||||||
0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72,
|
0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41,
|
||||||
0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x73,
|
0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18,
|
||||||
0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x67, 0x69,
|
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
|
||||||
0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01,
|
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
|
||||||
0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
|
0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3c, 0x0a, 0x0c,
|
||||||
0x49, 0x64, 0x2a, 0x37, 0x0a, 0x0c, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x74, 0x61,
|
0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01,
|
||||||
0x74, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x45, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x45, 0x4e,
|
0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
||||||
0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x4e, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x0b,
|
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a,
|
||||||
0x0a, 0x07, 0x4f, 0x46, 0x46, 0x4c, 0x49, 0x4e, 0x45, 0x10, 0x02, 0x32, 0xee, 0x0b, 0x0a, 0x0e,
|
0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x41, 0x74, 0x22, 0x65, 0x0a, 0x18, 0x4c, 0x69,
|
||||||
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55,
|
0x73, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52,
|
||||||
0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43,
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18,
|
||||||
0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75,
|
0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06,
|
||||||
0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
|
0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66,
|
||||||
0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x18, 0x82, 0xd3, 0xe4,
|
0x66, 0x73, 0x65, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69,
|
||||||
0x93, 0x02, 0x12, 0x3a, 0x01, 0x2a, 0x22, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74,
|
0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49,
|
||||||
0x65, 0x77, 0x61, 0x79, 0x73, 0x12, 0x5a, 0x0a, 0x03, 0x47, 0x65, 0x74, 0x12, 0x16, 0x2e, 0x61,
|
0x64, 0x22, 0x6f, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61,
|
||||||
0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71,
|
0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f,
|
||||||
0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61,
|
0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20,
|
||||||
0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82,
|
0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12,
|
||||||
0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65,
|
0x31, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
|
||||||
0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64,
|
0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77,
|
||||||
0x7d, 0x12, 0x6a, 0x0a, 0x06, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70,
|
0x61, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75,
|
||||||
0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52,
|
0x6c, 0x74, 0x22, 0x8b, 0x03, 0x0a, 0x14, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65,
|
||||||
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
|
0x77, 0x61, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x74,
|
||||||
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2d,
|
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
|
||||||
0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01, 0x2a, 0x1a, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f,
|
0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61,
|
||||||
0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
|
0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x61,
|
||||||
0x79, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x5f, 0x0a,
|
0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
|
||||||
0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65,
|
0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
|
||||||
0x6c, 0x65, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
|
0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65,
|
||||||
0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
|
0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65,
|
||||||
0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93,
|
0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
|
||||||
0x02, 0x1c, 0x2a, 0x1a, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
|
||||||
0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x52,
|
0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74,
|
||||||
0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73,
|
0x65, 0x64, 0x41, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f,
|
||||||
0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
|
||||||
0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77,
|
0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
|
||||||
0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4,
|
0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12,
|
||||||
0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
|
0x3c, 0x0a, 0x0c, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x5f, 0x61, 0x74, 0x18,
|
||||||
0x79, 0x73, 0x12, 0xb1, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43,
|
0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
|
||||||
0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65,
|
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
|
||||||
0x12, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47,
|
0x70, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x41, 0x74, 0x12, 0x27, 0x0a,
|
||||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74,
|
0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x61,
|
||||||
0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d,
|
0x70, 0x69, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52,
|
||||||
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74,
|
0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e,
|
||||||
0x65, 0x77, 0x61, 0x79, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
|
0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09,
|
||||||
0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82,
|
0x52, 0x0e, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64,
|
||||||
0xd3, 0xe4, 0x93, 0x02, 0x31, 0x22, 0x2f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65,
|
0x22, 0x53, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47,
|
||||||
0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64,
|
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a,
|
||||||
0x7d, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x69,
|
0x0d, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x18, 0x01,
|
||||||
0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x77, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74,
|
0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x6c, 0x61, 0x79,
|
||||||
0x72, 0x69, 0x63, 0x73, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61,
|
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x0c, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61,
|
||||||
0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75,
|
0x74, 0x65, 0x77, 0x61, 0x79, 0x22, 0x53, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52,
|
||||||
0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74,
|
0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
|
||||||
0x65, 0x77, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18,
|
||||||
0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x61, 0x70,
|
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12,
|
||||||
0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65,
|
0x19, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
|
||||||
0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12,
|
0x09, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x49, 0x64, 0x22, 0xcd, 0x01, 0x0a, 0x0c, 0x52,
|
||||||
0x9d, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x44, 0x75, 0x74, 0x79, 0x43, 0x79, 0x63, 0x6c, 0x65,
|
0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x74,
|
||||||
0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65,
|
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
|
||||||
0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x44, 0x75, 0x74, 0x79, 0x43, 0x79, 0x63, 0x6c,
|
0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x6c, 0x61,
|
||||||
0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
0x79, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x6c, 0x61,
|
||||||
0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
0x79, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 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, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65,
|
||||||
|
0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61,
|
||||||
|
0x74, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28,
|
||||||
|
0x0d, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x73, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c,
|
||||||
|
0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69,
|
||||||
|
0x67, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x67, 0x69,
|
||||||
|
0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x49, 0x64, 0x2a, 0x37, 0x0a, 0x0c, 0x47, 0x61,
|
||||||
|
0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x4e, 0x45,
|
||||||
|
0x56, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x45, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x4e,
|
||||||
|
0x4c, 0x49, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x4f, 0x46, 0x46, 0x4c, 0x49, 0x4e,
|
||||||
|
0x45, 0x10, 0x02, 0x32, 0xee, 0x0b, 0x0a, 0x0e, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53,
|
||||||
|
0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x55, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
|
||||||
|
0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74,
|
||||||
|
0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f,
|
||||||
|
0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d,
|
||||||
|
0x70, 0x74, 0x79, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x3a, 0x01, 0x2a, 0x22, 0x0d,
|
||||||
|
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x12, 0x5a, 0x0a,
|
||||||
|
0x03, 0x47, 0x65, 0x74, 0x12, 0x16, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61,
|
||||||
|
0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x61,
|
||||||
|
0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x73,
|
||||||
|
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f,
|
||||||
|
0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x67, 0x61,
|
||||||
|
0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x6a, 0x0a, 0x06, 0x55, 0x70, 0x64,
|
||||||
|
0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
|
||||||
|
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16,
|
||||||
|
0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
|
||||||
|
0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01,
|
||||||
|
0x2a, 0x1a, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73,
|
||||||
|
0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||||
|
0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x5f, 0x0a, 0x06, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12,
|
||||||
|
0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65,
|
||||||
|
0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f,
|
||||||
|
0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70,
|
||||||
|
0x74, 0x79, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x2a, 0x1a, 0x2f, 0x61, 0x70, 0x69,
|
||||||
|
0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65, 0x77,
|
||||||
|
0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x52, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18,
|
||||||
|
0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
||||||
|
0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c,
|
||||||
|
0x69, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
|
||||||
|
0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x61, 0x70,
|
||||||
|
0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x12, 0xb1, 0x01, 0x0a, 0x19, 0x47,
|
||||||
|
0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72,
|
||||||
|
0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x2c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47,
|
||||||
|
0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6c,
|
||||||
|
0x69, 0x65, 0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52,
|
||||||
|
0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x6e,
|
||||||
|
0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x43, 0x6c, 0x69, 0x65,
|
||||||
|
0x6e, 0x74, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73,
|
||||||
|
0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x22, 0x2f, 0x2f,
|
||||||
|
0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x67, 0x61,
|
||||||
|
0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61,
|
||||||
|
0x74, 0x65, 0x2d, 0x63, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x12, 0x77,
|
||||||
|
0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x1d, 0x2e, 0x61,
|
||||||
|
0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x65, 0x74,
|
||||||
|
0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70,
|
||||||
|
0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72,
|
||||||
|
0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4,
|
||||||
|
0x93, 0x02, 0x24, 0x12, 0x22, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||||
|
0x79, 0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x2f,
|
||||||
|
0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x9d, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x44,
|
||||||
|
0x75, 0x74, 0x79, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12,
|
||||||
|
0x26, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
||||||
0x44, 0x75, 0x74, 0x79, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
|
0x44, 0x75, 0x74, 0x79, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73,
|
||||||
0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f,
|
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65,
|
||||||
0x12, 0x2d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f,
|
0x74, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x44, 0x75, 0x74, 0x79, 0x43, 0x79, 0x63, 0x6c,
|
||||||
0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x75, 0x74,
|
0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
|
||||||
0x79, 0x2d, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x2d, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12,
|
0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67,
|
||||||
0x89, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65,
|
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
||||||
0x77, 0x61, 0x79, 0x12, 0x1b, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c,
|
0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x75, 0x74, 0x79, 0x2d, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x2d,
|
||||||
0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
|
0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x89, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x52,
|
||||||
0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47,
|
0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x1b, 0x2e, 0x61, 0x70,
|
||||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b,
|
0x69, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61,
|
||||||
0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74,
|
0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x47,
|
||||||
0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2d, 0x67, 0x61, 0x74, 0x65,
|
0x65, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65,
|
||||||
0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d,
|
0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x12, 0x33,
|
||||||
0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x78, 0x0a, 0x11, 0x4c,
|
0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x72, 0x65,
|
||||||
|
0x6c, 0x61, 0x79, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x74, 0x65,
|
||||||
|
0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f,
|
||||||
|
0x69, 0x64, 0x7d, 0x12, 0x78, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79,
|
||||||
|
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c,
|
||||||
0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73,
|
0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73,
|
||||||
0x12, 0x1d, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79,
|
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69,
|
||||||
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
0x73, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52,
|
||||||
0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47,
|
0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12,
|
||||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
|
0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x72,
|
||||||
0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61,
|
0x65, 0x6c, 0x61, 0x79, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x12, 0xa8, 0x01,
|
||||||
|
0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74,
|
||||||
|
0x65, 0x77, 0x61, 0x79, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74,
|
||||||
|
0x65, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71,
|
||||||
|
0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
|
||||||
|
0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x5a, 0x82, 0xd3,
|
||||||
|
0xe4, 0x93, 0x02, 0x54, 0x3a, 0x01, 0x2a, 0x1a, 0x4f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61,
|
||||||
0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2d, 0x67, 0x61, 0x74,
|
0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2d, 0x67, 0x61, 0x74,
|
||||||
0x65, 0x77, 0x61, 0x79, 0x73, 0x12, 0xa8, 0x01, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
|
0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x67, 0x61, 0x74,
|
||||||
0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x1e, 0x2e, 0x61,
|
0x65, 0x77, 0x61, 0x79, 0x2e, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f,
|
||||||
0x70, 0x69, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61,
|
0x7b, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x72,
|
||||||
0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67,
|
0x65, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x89, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c,
|
||||||
0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45,
|
0x65, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12,
|
||||||
0x6d, 0x70, 0x74, 0x79, 0x22, 0x5a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x54, 0x3a, 0x01, 0x2a, 0x1a,
|
0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x61,
|
||||||
0x4f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x72,
|
0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
|
||||||
0x65, 0x6c, 0x61, 0x79, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x72,
|
0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
|
||||||
0x65, 0x6c, 0x61, 0x79, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x74, 0x65, 0x6e,
|
0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x2a,
|
||||||
0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x67,
|
0x33, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x72,
|
||||||
0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d,
|
0x65, 0x6c, 0x61, 0x79, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x74,
|
||||||
0x12, 0x89, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x79,
|
0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x61, 0x79,
|
||||||
0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x12, 0x1e, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x44, 0x65,
|
0x5f, 0x69, 0x64, 0x7d, 0x42, 0x92, 0x01, 0x0a, 0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72,
|
||||||
0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x6c, 0x61, 0x79, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79,
|
0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0c, 0x47, 0x61, 0x74, 0x65,
|
||||||
0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
|
0x77, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68,
|
||||||
0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22,
|
0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63,
|
||||||
0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x2a, 0x33, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x61,
|
0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69,
|
||||||
0x74, 0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2d, 0x67, 0x61, 0x74,
|
0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61, 0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69,
|
||||||
0x65, 0x77, 0x61, 0x79, 0x73, 0x2f, 0x7b, 0x74, 0x65, 0x6e, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64,
|
0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x41, 0x70, 0x69, 0xca, 0x02, 0x0e, 0x43, 0x68,
|
||||||
0x7d, 0x2f, 0x7b, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x7d, 0x42, 0x92, 0x01, 0x0a,
|
0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0xe2, 0x02, 0x1a, 0x47,
|
||||||
0x11, 0x69, 0x6f, 0x2e, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x61,
|
0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72, 0x70,
|
||||||
0x70, 0x69, 0x42, 0x0c, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f,
|
0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f,
|
||||||
0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63,
|
0x33,
|
||||||
0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2f, 0x63, 0x68, 0x69, 0x72, 0x70, 0x73,
|
|
||||||
0x74, 0x61, 0x63, 0x6b, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x67, 0x6f, 0x2f, 0x76, 0x34, 0x2f, 0x61,
|
|
||||||
0x70, 0x69, 0xaa, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e,
|
|
||||||
0x41, 0x70, 0x69, 0xca, 0x02, 0x0e, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b,
|
|
||||||
0x5c, 0x41, 0x70, 0x69, 0xe2, 0x02, 0x1a, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
|
|
||||||
0x74, 0x61, 0x5c, 0x43, 0x68, 0x69, 0x72, 0x70, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5c, 0x41, 0x70,
|
|
||||||
0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -2086,113 +2163,115 @@ func file_api_gateway_proto_rawDescGZIP() []byte {
|
|||||||
return file_api_gateway_proto_rawDescData
|
return file_api_gateway_proto_rawDescData
|
||||||
}
|
}
|
||||||
|
|
||||||
var file_api_gateway_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
|
var file_api_gateway_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
|
||||||
var file_api_gateway_proto_msgTypes = make([]protoimpl.MessageInfo, 26)
|
var file_api_gateway_proto_msgTypes = make([]protoimpl.MessageInfo, 26)
|
||||||
var file_api_gateway_proto_goTypes = []any{
|
var file_api_gateway_proto_goTypes = []any{
|
||||||
(GatewayState)(0), // 0: api.GatewayState
|
(GatewayState)(0), // 0: api.GatewayState
|
||||||
(*Gateway)(nil), // 1: api.Gateway
|
(ListGatewaysRequest_OrderBy)(0), // 1: api.ListGatewaysRequest.OrderBy
|
||||||
(*GatewayListItem)(nil), // 2: api.GatewayListItem
|
(*Gateway)(nil), // 2: api.Gateway
|
||||||
(*CreateGatewayRequest)(nil), // 3: api.CreateGatewayRequest
|
(*GatewayListItem)(nil), // 3: api.GatewayListItem
|
||||||
(*GetGatewayRequest)(nil), // 4: api.GetGatewayRequest
|
(*CreateGatewayRequest)(nil), // 4: api.CreateGatewayRequest
|
||||||
(*GetGatewayResponse)(nil), // 5: api.GetGatewayResponse
|
(*GetGatewayRequest)(nil), // 5: api.GetGatewayRequest
|
||||||
(*UpdateGatewayRequest)(nil), // 6: api.UpdateGatewayRequest
|
(*GetGatewayResponse)(nil), // 6: api.GetGatewayResponse
|
||||||
(*DeleteGatewayRequest)(nil), // 7: api.DeleteGatewayRequest
|
(*UpdateGatewayRequest)(nil), // 7: api.UpdateGatewayRequest
|
||||||
(*ListGatewaysRequest)(nil), // 8: api.ListGatewaysRequest
|
(*DeleteGatewayRequest)(nil), // 8: api.DeleteGatewayRequest
|
||||||
(*ListGatewaysResponse)(nil), // 9: api.ListGatewaysResponse
|
(*ListGatewaysRequest)(nil), // 9: api.ListGatewaysRequest
|
||||||
(*GenerateGatewayClientCertificateRequest)(nil), // 10: api.GenerateGatewayClientCertificateRequest
|
(*ListGatewaysResponse)(nil), // 10: api.ListGatewaysResponse
|
||||||
(*GenerateGatewayClientCertificateResponse)(nil), // 11: api.GenerateGatewayClientCertificateResponse
|
(*GenerateGatewayClientCertificateRequest)(nil), // 11: api.GenerateGatewayClientCertificateRequest
|
||||||
(*GetGatewayMetricsRequest)(nil), // 12: api.GetGatewayMetricsRequest
|
(*GenerateGatewayClientCertificateResponse)(nil), // 12: api.GenerateGatewayClientCertificateResponse
|
||||||
(*GetGatewayMetricsResponse)(nil), // 13: api.GetGatewayMetricsResponse
|
(*GetGatewayMetricsRequest)(nil), // 13: api.GetGatewayMetricsRequest
|
||||||
(*GetGatewayDutyCycleMetricsRequest)(nil), // 14: api.GetGatewayDutyCycleMetricsRequest
|
(*GetGatewayMetricsResponse)(nil), // 14: api.GetGatewayMetricsResponse
|
||||||
(*GetGatewayDutyCycleMetricsResponse)(nil), // 15: api.GetGatewayDutyCycleMetricsResponse
|
(*GetGatewayDutyCycleMetricsRequest)(nil), // 15: api.GetGatewayDutyCycleMetricsRequest
|
||||||
(*GetRelayGatewayRequest)(nil), // 16: api.GetRelayGatewayRequest
|
(*GetGatewayDutyCycleMetricsResponse)(nil), // 16: api.GetGatewayDutyCycleMetricsResponse
|
||||||
(*GetRelayGatewayResponse)(nil), // 17: api.GetRelayGatewayResponse
|
(*GetRelayGatewayRequest)(nil), // 17: api.GetRelayGatewayRequest
|
||||||
(*ListRelayGatewaysRequest)(nil), // 18: api.ListRelayGatewaysRequest
|
(*GetRelayGatewayResponse)(nil), // 18: api.GetRelayGatewayResponse
|
||||||
(*ListRelayGatewaysResponse)(nil), // 19: api.ListRelayGatewaysResponse
|
(*ListRelayGatewaysRequest)(nil), // 19: api.ListRelayGatewaysRequest
|
||||||
(*RelayGatewayListItem)(nil), // 20: api.RelayGatewayListItem
|
(*ListRelayGatewaysResponse)(nil), // 20: api.ListRelayGatewaysResponse
|
||||||
(*UpdateRelayGatewayRequest)(nil), // 21: api.UpdateRelayGatewayRequest
|
(*RelayGatewayListItem)(nil), // 21: api.RelayGatewayListItem
|
||||||
(*DeleteRelayGatewayRequest)(nil), // 22: api.DeleteRelayGatewayRequest
|
(*UpdateRelayGatewayRequest)(nil), // 22: api.UpdateRelayGatewayRequest
|
||||||
(*RelayGateway)(nil), // 23: api.RelayGateway
|
(*DeleteRelayGatewayRequest)(nil), // 23: api.DeleteRelayGatewayRequest
|
||||||
nil, // 24: api.Gateway.TagsEntry
|
(*RelayGateway)(nil), // 24: api.RelayGateway
|
||||||
nil, // 25: api.Gateway.MetadataEntry
|
nil, // 25: api.Gateway.TagsEntry
|
||||||
nil, // 26: api.GatewayListItem.PropertiesEntry
|
nil, // 26: api.Gateway.MetadataEntry
|
||||||
(*common.Location)(nil), // 27: common.Location
|
nil, // 27: api.GatewayListItem.PropertiesEntry
|
||||||
(*timestamppb.Timestamp)(nil), // 28: google.protobuf.Timestamp
|
(*common.Location)(nil), // 28: common.Location
|
||||||
(common.Aggregation)(0), // 29: common.Aggregation
|
(*timestamppb.Timestamp)(nil), // 29: google.protobuf.Timestamp
|
||||||
(*common.Metric)(nil), // 30: common.Metric
|
(common.Aggregation)(0), // 30: common.Aggregation
|
||||||
(*emptypb.Empty)(nil), // 31: google.protobuf.Empty
|
(*common.Metric)(nil), // 31: common.Metric
|
||||||
|
(*emptypb.Empty)(nil), // 32: google.protobuf.Empty
|
||||||
}
|
}
|
||||||
var file_api_gateway_proto_depIdxs = []int32{
|
var file_api_gateway_proto_depIdxs = []int32{
|
||||||
27, // 0: api.Gateway.location:type_name -> common.Location
|
28, // 0: api.Gateway.location:type_name -> common.Location
|
||||||
24, // 1: api.Gateway.tags:type_name -> api.Gateway.TagsEntry
|
25, // 1: api.Gateway.tags:type_name -> api.Gateway.TagsEntry
|
||||||
25, // 2: api.Gateway.metadata:type_name -> api.Gateway.MetadataEntry
|
26, // 2: api.Gateway.metadata:type_name -> api.Gateway.MetadataEntry
|
||||||
27, // 3: api.GatewayListItem.location:type_name -> common.Location
|
28, // 3: api.GatewayListItem.location:type_name -> common.Location
|
||||||
26, // 4: api.GatewayListItem.properties:type_name -> api.GatewayListItem.PropertiesEntry
|
27, // 4: api.GatewayListItem.properties:type_name -> api.GatewayListItem.PropertiesEntry
|
||||||
28, // 5: api.GatewayListItem.created_at:type_name -> google.protobuf.Timestamp
|
29, // 5: api.GatewayListItem.created_at:type_name -> google.protobuf.Timestamp
|
||||||
28, // 6: api.GatewayListItem.updated_at:type_name -> google.protobuf.Timestamp
|
29, // 6: api.GatewayListItem.updated_at:type_name -> google.protobuf.Timestamp
|
||||||
28, // 7: api.GatewayListItem.last_seen_at:type_name -> google.protobuf.Timestamp
|
29, // 7: api.GatewayListItem.last_seen_at:type_name -> google.protobuf.Timestamp
|
||||||
0, // 8: api.GatewayListItem.state:type_name -> api.GatewayState
|
0, // 8: api.GatewayListItem.state:type_name -> api.GatewayState
|
||||||
1, // 9: api.CreateGatewayRequest.gateway:type_name -> api.Gateway
|
2, // 9: api.CreateGatewayRequest.gateway:type_name -> api.Gateway
|
||||||
1, // 10: api.GetGatewayResponse.gateway:type_name -> api.Gateway
|
2, // 10: api.GetGatewayResponse.gateway:type_name -> api.Gateway
|
||||||
28, // 11: api.GetGatewayResponse.created_at:type_name -> google.protobuf.Timestamp
|
29, // 11: api.GetGatewayResponse.created_at:type_name -> google.protobuf.Timestamp
|
||||||
28, // 12: api.GetGatewayResponse.updated_at:type_name -> google.protobuf.Timestamp
|
29, // 12: api.GetGatewayResponse.updated_at:type_name -> google.protobuf.Timestamp
|
||||||
28, // 13: api.GetGatewayResponse.last_seen_at:type_name -> google.protobuf.Timestamp
|
29, // 13: api.GetGatewayResponse.last_seen_at:type_name -> google.protobuf.Timestamp
|
||||||
1, // 14: api.UpdateGatewayRequest.gateway:type_name -> api.Gateway
|
2, // 14: api.UpdateGatewayRequest.gateway:type_name -> api.Gateway
|
||||||
2, // 15: api.ListGatewaysResponse.result:type_name -> api.GatewayListItem
|
1, // 15: api.ListGatewaysRequest.order_by:type_name -> api.ListGatewaysRequest.OrderBy
|
||||||
28, // 16: api.GenerateGatewayClientCertificateResponse.expires_at:type_name -> google.protobuf.Timestamp
|
3, // 16: api.ListGatewaysResponse.result:type_name -> api.GatewayListItem
|
||||||
28, // 17: api.GetGatewayMetricsRequest.start:type_name -> google.protobuf.Timestamp
|
29, // 17: api.GenerateGatewayClientCertificateResponse.expires_at:type_name -> google.protobuf.Timestamp
|
||||||
28, // 18: api.GetGatewayMetricsRequest.end:type_name -> google.protobuf.Timestamp
|
29, // 18: api.GetGatewayMetricsRequest.start:type_name -> google.protobuf.Timestamp
|
||||||
29, // 19: api.GetGatewayMetricsRequest.aggregation:type_name -> common.Aggregation
|
29, // 19: api.GetGatewayMetricsRequest.end:type_name -> google.protobuf.Timestamp
|
||||||
30, // 20: api.GetGatewayMetricsResponse.rx_packets:type_name -> common.Metric
|
30, // 20: api.GetGatewayMetricsRequest.aggregation:type_name -> common.Aggregation
|
||||||
30, // 21: api.GetGatewayMetricsResponse.tx_packets:type_name -> common.Metric
|
31, // 21: api.GetGatewayMetricsResponse.rx_packets:type_name -> common.Metric
|
||||||
30, // 22: api.GetGatewayMetricsResponse.tx_packets_per_freq:type_name -> common.Metric
|
31, // 22: api.GetGatewayMetricsResponse.tx_packets:type_name -> common.Metric
|
||||||
30, // 23: api.GetGatewayMetricsResponse.rx_packets_per_freq:type_name -> common.Metric
|
31, // 23: api.GetGatewayMetricsResponse.tx_packets_per_freq:type_name -> common.Metric
|
||||||
30, // 24: api.GetGatewayMetricsResponse.tx_packets_per_dr:type_name -> common.Metric
|
31, // 24: api.GetGatewayMetricsResponse.rx_packets_per_freq:type_name -> common.Metric
|
||||||
30, // 25: api.GetGatewayMetricsResponse.rx_packets_per_dr:type_name -> common.Metric
|
31, // 25: api.GetGatewayMetricsResponse.tx_packets_per_dr:type_name -> common.Metric
|
||||||
30, // 26: api.GetGatewayMetricsResponse.tx_packets_per_status:type_name -> common.Metric
|
31, // 26: api.GetGatewayMetricsResponse.rx_packets_per_dr:type_name -> common.Metric
|
||||||
28, // 27: api.GetGatewayDutyCycleMetricsRequest.start:type_name -> google.protobuf.Timestamp
|
31, // 27: api.GetGatewayMetricsResponse.tx_packets_per_status:type_name -> common.Metric
|
||||||
28, // 28: api.GetGatewayDutyCycleMetricsRequest.end:type_name -> google.protobuf.Timestamp
|
29, // 28: api.GetGatewayDutyCycleMetricsRequest.start:type_name -> google.protobuf.Timestamp
|
||||||
30, // 29: api.GetGatewayDutyCycleMetricsResponse.max_load_percentage:type_name -> common.Metric
|
29, // 29: api.GetGatewayDutyCycleMetricsRequest.end:type_name -> google.protobuf.Timestamp
|
||||||
30, // 30: api.GetGatewayDutyCycleMetricsResponse.window_percentage:type_name -> common.Metric
|
31, // 30: api.GetGatewayDutyCycleMetricsResponse.max_load_percentage:type_name -> common.Metric
|
||||||
23, // 31: api.GetRelayGatewayResponse.relay_gateway:type_name -> api.RelayGateway
|
31, // 31: api.GetGatewayDutyCycleMetricsResponse.window_percentage:type_name -> common.Metric
|
||||||
28, // 32: api.GetRelayGatewayResponse.created_at:type_name -> google.protobuf.Timestamp
|
24, // 32: api.GetRelayGatewayResponse.relay_gateway:type_name -> api.RelayGateway
|
||||||
28, // 33: api.GetRelayGatewayResponse.updated_at:type_name -> google.protobuf.Timestamp
|
29, // 33: api.GetRelayGatewayResponse.created_at:type_name -> google.protobuf.Timestamp
|
||||||
28, // 34: api.GetRelayGatewayResponse.last_seen_at:type_name -> google.protobuf.Timestamp
|
29, // 34: api.GetRelayGatewayResponse.updated_at:type_name -> google.protobuf.Timestamp
|
||||||
20, // 35: api.ListRelayGatewaysResponse.result:type_name -> api.RelayGatewayListItem
|
29, // 35: api.GetRelayGatewayResponse.last_seen_at:type_name -> google.protobuf.Timestamp
|
||||||
28, // 36: api.RelayGatewayListItem.created_at:type_name -> google.protobuf.Timestamp
|
21, // 36: api.ListRelayGatewaysResponse.result:type_name -> api.RelayGatewayListItem
|
||||||
28, // 37: api.RelayGatewayListItem.updated_at:type_name -> google.protobuf.Timestamp
|
29, // 37: api.RelayGatewayListItem.created_at:type_name -> google.protobuf.Timestamp
|
||||||
28, // 38: api.RelayGatewayListItem.last_seen_at:type_name -> google.protobuf.Timestamp
|
29, // 38: api.RelayGatewayListItem.updated_at:type_name -> google.protobuf.Timestamp
|
||||||
0, // 39: api.RelayGatewayListItem.state:type_name -> api.GatewayState
|
29, // 39: api.RelayGatewayListItem.last_seen_at:type_name -> google.protobuf.Timestamp
|
||||||
23, // 40: api.UpdateRelayGatewayRequest.relay_gateway:type_name -> api.RelayGateway
|
0, // 40: api.RelayGatewayListItem.state:type_name -> api.GatewayState
|
||||||
3, // 41: api.GatewayService.Create:input_type -> api.CreateGatewayRequest
|
24, // 41: api.UpdateRelayGatewayRequest.relay_gateway:type_name -> api.RelayGateway
|
||||||
4, // 42: api.GatewayService.Get:input_type -> api.GetGatewayRequest
|
4, // 42: api.GatewayService.Create:input_type -> api.CreateGatewayRequest
|
||||||
6, // 43: api.GatewayService.Update:input_type -> api.UpdateGatewayRequest
|
5, // 43: api.GatewayService.Get:input_type -> api.GetGatewayRequest
|
||||||
7, // 44: api.GatewayService.Delete:input_type -> api.DeleteGatewayRequest
|
7, // 44: api.GatewayService.Update:input_type -> api.UpdateGatewayRequest
|
||||||
8, // 45: api.GatewayService.List:input_type -> api.ListGatewaysRequest
|
8, // 45: api.GatewayService.Delete:input_type -> api.DeleteGatewayRequest
|
||||||
10, // 46: api.GatewayService.GenerateClientCertificate:input_type -> api.GenerateGatewayClientCertificateRequest
|
9, // 46: api.GatewayService.List:input_type -> api.ListGatewaysRequest
|
||||||
12, // 47: api.GatewayService.GetMetrics:input_type -> api.GetGatewayMetricsRequest
|
11, // 47: api.GatewayService.GenerateClientCertificate:input_type -> api.GenerateGatewayClientCertificateRequest
|
||||||
14, // 48: api.GatewayService.GetDutyCycleMetrics:input_type -> api.GetGatewayDutyCycleMetricsRequest
|
13, // 48: api.GatewayService.GetMetrics:input_type -> api.GetGatewayMetricsRequest
|
||||||
16, // 49: api.GatewayService.GetRelayGateway:input_type -> api.GetRelayGatewayRequest
|
15, // 49: api.GatewayService.GetDutyCycleMetrics:input_type -> api.GetGatewayDutyCycleMetricsRequest
|
||||||
18, // 50: api.GatewayService.ListRelayGateways:input_type -> api.ListRelayGatewaysRequest
|
17, // 50: api.GatewayService.GetRelayGateway:input_type -> api.GetRelayGatewayRequest
|
||||||
21, // 51: api.GatewayService.UpdateRelayGateway:input_type -> api.UpdateRelayGatewayRequest
|
19, // 51: api.GatewayService.ListRelayGateways:input_type -> api.ListRelayGatewaysRequest
|
||||||
22, // 52: api.GatewayService.DeleteRelayGateway:input_type -> api.DeleteRelayGatewayRequest
|
22, // 52: api.GatewayService.UpdateRelayGateway:input_type -> api.UpdateRelayGatewayRequest
|
||||||
31, // 53: api.GatewayService.Create:output_type -> google.protobuf.Empty
|
23, // 53: api.GatewayService.DeleteRelayGateway:input_type -> api.DeleteRelayGatewayRequest
|
||||||
5, // 54: api.GatewayService.Get:output_type -> api.GetGatewayResponse
|
32, // 54: api.GatewayService.Create:output_type -> google.protobuf.Empty
|
||||||
31, // 55: api.GatewayService.Update:output_type -> google.protobuf.Empty
|
6, // 55: api.GatewayService.Get:output_type -> api.GetGatewayResponse
|
||||||
31, // 56: api.GatewayService.Delete:output_type -> google.protobuf.Empty
|
32, // 56: api.GatewayService.Update:output_type -> google.protobuf.Empty
|
||||||
9, // 57: api.GatewayService.List:output_type -> api.ListGatewaysResponse
|
32, // 57: api.GatewayService.Delete:output_type -> google.protobuf.Empty
|
||||||
11, // 58: api.GatewayService.GenerateClientCertificate:output_type -> api.GenerateGatewayClientCertificateResponse
|
10, // 58: api.GatewayService.List:output_type -> api.ListGatewaysResponse
|
||||||
13, // 59: api.GatewayService.GetMetrics:output_type -> api.GetGatewayMetricsResponse
|
12, // 59: api.GatewayService.GenerateClientCertificate:output_type -> api.GenerateGatewayClientCertificateResponse
|
||||||
15, // 60: api.GatewayService.GetDutyCycleMetrics:output_type -> api.GetGatewayDutyCycleMetricsResponse
|
14, // 60: api.GatewayService.GetMetrics:output_type -> api.GetGatewayMetricsResponse
|
||||||
17, // 61: api.GatewayService.GetRelayGateway:output_type -> api.GetRelayGatewayResponse
|
16, // 61: api.GatewayService.GetDutyCycleMetrics:output_type -> api.GetGatewayDutyCycleMetricsResponse
|
||||||
19, // 62: api.GatewayService.ListRelayGateways:output_type -> api.ListRelayGatewaysResponse
|
18, // 62: api.GatewayService.GetRelayGateway:output_type -> api.GetRelayGatewayResponse
|
||||||
31, // 63: api.GatewayService.UpdateRelayGateway:output_type -> google.protobuf.Empty
|
20, // 63: api.GatewayService.ListRelayGateways:output_type -> api.ListRelayGatewaysResponse
|
||||||
31, // 64: api.GatewayService.DeleteRelayGateway:output_type -> google.protobuf.Empty
|
32, // 64: api.GatewayService.UpdateRelayGateway:output_type -> google.protobuf.Empty
|
||||||
53, // [53:65] is the sub-list for method output_type
|
32, // 65: api.GatewayService.DeleteRelayGateway:output_type -> google.protobuf.Empty
|
||||||
41, // [41:53] is the sub-list for method input_type
|
54, // [54:66] is the sub-list for method output_type
|
||||||
41, // [41:41] is the sub-list for extension type_name
|
42, // [42:54] is the sub-list for method input_type
|
||||||
41, // [41:41] is the sub-list for extension extendee
|
42, // [42:42] is the sub-list for extension type_name
|
||||||
0, // [0:41] is the sub-list for field type_name
|
42, // [42:42] is the sub-list for extension extendee
|
||||||
|
0, // [0:42] is the sub-list for field type_name
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() { file_api_gateway_proto_init() }
|
func init() { file_api_gateway_proto_init() }
|
||||||
@ -2205,7 +2284,7 @@ func file_api_gateway_proto_init() {
|
|||||||
File: protoimpl.DescBuilder{
|
File: protoimpl.DescBuilder{
|
||||||
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
|
||||||
RawDescriptor: file_api_gateway_proto_rawDesc,
|
RawDescriptor: file_api_gateway_proto_rawDesc,
|
||||||
NumEnums: 1,
|
NumEnums: 2,
|
||||||
NumMessages: 26,
|
NumMessages: 26,
|
||||||
NumExtensions: 0,
|
NumExtensions: 0,
|
||||||
NumServices: 1,
|
NumServices: 1,
|
||||||
|
13
api/proto/api/device.proto
vendored
13
api/proto/api/device.proto
vendored
@ -332,6 +332,19 @@ message ListDevicesRequest {
|
|||||||
|
|
||||||
// Multicst-group ID (UUID) to filter devices on.
|
// Multicst-group ID (UUID) to filter devices on.
|
||||||
string multicast_group_id = 5;
|
string multicast_group_id = 5;
|
||||||
|
|
||||||
|
enum OrderBy {
|
||||||
|
NAME = 0;
|
||||||
|
DEV_EUI = 1;
|
||||||
|
LAST_SEEN_AT = 2;
|
||||||
|
DEVICE_PROFILE_NAME = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If set, the given value will be used to sort by (optional).
|
||||||
|
OrderBy order_by = 6;
|
||||||
|
|
||||||
|
// If set, the sorting direction will be decending (default = ascending) (optional).
|
||||||
|
bool order_by_desc = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
message ListDevicesResponse {
|
message ListDevicesResponse {
|
||||||
|
12
api/proto/api/gateway.proto
vendored
12
api/proto/api/gateway.proto
vendored
@ -229,6 +229,18 @@ message ListGatewaysRequest {
|
|||||||
|
|
||||||
// Multicast-group ID (UUID) to filter gateways on.
|
// Multicast-group ID (UUID) to filter gateways on.
|
||||||
string multicast_group_id = 5;
|
string multicast_group_id = 5;
|
||||||
|
|
||||||
|
enum OrderBy {
|
||||||
|
NAME = 0;
|
||||||
|
GATEWAY_ID = 1;
|
||||||
|
LAST_SEEN_AT = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If set, the given value will be used to sort by (optional).
|
||||||
|
OrderBy order_by = 6;
|
||||||
|
|
||||||
|
// If set, the sorting direction will be decending (default = ascending) (optional).
|
||||||
|
bool order_by_desc = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
message ListGatewaysResponse {
|
message ListGatewaysResponse {
|
||||||
|
13
api/rust/proto/chirpstack/api/device.proto
vendored
13
api/rust/proto/chirpstack/api/device.proto
vendored
@ -332,6 +332,19 @@ message ListDevicesRequest {
|
|||||||
|
|
||||||
// Multicst-group ID (UUID) to filter devices on.
|
// Multicst-group ID (UUID) to filter devices on.
|
||||||
string multicast_group_id = 5;
|
string multicast_group_id = 5;
|
||||||
|
|
||||||
|
enum OrderBy {
|
||||||
|
NAME = 0;
|
||||||
|
DEV_EUI = 1;
|
||||||
|
LAST_SEEN_AT = 2;
|
||||||
|
DEVICE_PROFILE_NAME = 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If set, the given value will be used to sort by (optional).
|
||||||
|
OrderBy order_by = 6;
|
||||||
|
|
||||||
|
// If set, the sorting direction will be decending (default = ascending) (optional).
|
||||||
|
bool order_by_desc = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
message ListDevicesResponse {
|
message ListDevicesResponse {
|
||||||
|
12
api/rust/proto/chirpstack/api/gateway.proto
vendored
12
api/rust/proto/chirpstack/api/gateway.proto
vendored
@ -229,6 +229,18 @@ message ListGatewaysRequest {
|
|||||||
|
|
||||||
// Multicast-group ID (UUID) to filter gateways on.
|
// Multicast-group ID (UUID) to filter gateways on.
|
||||||
string multicast_group_id = 5;
|
string multicast_group_id = 5;
|
||||||
|
|
||||||
|
enum OrderBy {
|
||||||
|
NAME = 0;
|
||||||
|
GATEWAY_ID = 1;
|
||||||
|
LAST_SEEN_AT = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// If set, the given value will be used to sort by (optional).
|
||||||
|
OrderBy order_by = 6;
|
||||||
|
|
||||||
|
// If set, the sorting direction will be decending (default = ascending) (optional).
|
||||||
|
bool order_by_desc = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
message ListGatewaysResponse {
|
message ListGatewaysResponse {
|
||||||
|
@ -278,9 +278,15 @@ impl DeviceService for Device {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let count = device::get_count(&filters).await.map_err(|e| e.status())?;
|
let count = device::get_count(&filters).await.map_err(|e| e.status())?;
|
||||||
let items = device::list(req.limit as i64, req.offset as i64, &filters)
|
let items = device::list(
|
||||||
.await
|
req.limit as i64,
|
||||||
.map_err(|e| e.status())?;
|
req.offset as i64,
|
||||||
|
&filters,
|
||||||
|
req.order_by().from_proto(),
|
||||||
|
req.order_by_desc,
|
||||||
|
)
|
||||||
|
.await
|
||||||
|
.map_err(|e| e.status())?;
|
||||||
|
|
||||||
let mut resp = Response::new(api::ListDevicesResponse {
|
let mut resp = Response::new(api::ListDevicesResponse {
|
||||||
total_count: count as u32,
|
total_count: count as u32,
|
||||||
@ -1362,6 +1368,8 @@ pub mod test {
|
|||||||
multicast_group_id: "".into(),
|
multicast_group_id: "".into(),
|
||||||
limit: 10,
|
limit: 10,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
|
order_by: api::list_devices_request::OrderBy::Name.into(),
|
||||||
|
order_by_desc: true,
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
let list_resp = service.list(list_req).await.unwrap();
|
let list_resp = service.list(list_req).await.unwrap();
|
||||||
|
@ -238,9 +238,15 @@ impl GatewayService for Gateway {
|
|||||||
};
|
};
|
||||||
|
|
||||||
let count = gateway::get_count(&filters).await.map_err(|e| e.status())?;
|
let count = gateway::get_count(&filters).await.map_err(|e| e.status())?;
|
||||||
let result = gateway::list(req.limit as i64, req.offset as i64, &filters)
|
let result = gateway::list(
|
||||||
.await
|
req.limit as i64,
|
||||||
.map_err(|e| e.status())?;
|
req.offset as i64,
|
||||||
|
&filters,
|
||||||
|
req.order_by().from_proto(),
|
||||||
|
req.order_by_desc,
|
||||||
|
)
|
||||||
|
.await
|
||||||
|
.map_err(|e| e.status())?;
|
||||||
|
|
||||||
let mut resp = Response::new(api::ListGatewaysResponse {
|
let mut resp = Response::new(api::ListGatewaysResponse {
|
||||||
total_count: count as u32,
|
total_count: count as u32,
|
||||||
|
@ -2,7 +2,7 @@ use chrono::{DateTime, Utc};
|
|||||||
|
|
||||||
use crate::codec::Codec;
|
use crate::codec::Codec;
|
||||||
use crate::storage::fields::{MeasurementKind, MulticastGroupSchedulingType};
|
use crate::storage::fields::{MeasurementKind, MulticastGroupSchedulingType};
|
||||||
use crate::storage::{device::DeviceClass, metrics::Aggregation};
|
use crate::storage::{device, device::DeviceClass, gateway, metrics::Aggregation};
|
||||||
use chirpstack_api::{api, common};
|
use chirpstack_api::{api, common};
|
||||||
use lrwn::region::{CommonName, MacVersion, Revision};
|
use lrwn::region::{CommonName, MacVersion, Revision};
|
||||||
|
|
||||||
@ -263,6 +263,27 @@ impl ToProto<common::DeviceClass> for DeviceClass {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl FromProto<device::OrderBy> for api::list_devices_request::OrderBy {
|
||||||
|
fn from_proto(self) -> device::OrderBy {
|
||||||
|
match self {
|
||||||
|
Self::Name => device::OrderBy::Name,
|
||||||
|
Self::DevEui => device::OrderBy::DevEui,
|
||||||
|
Self::LastSeenAt => device::OrderBy::LastSeenAt,
|
||||||
|
Self::DeviceProfileName => device::OrderBy::DeviceProfileName,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl FromProto<gateway::OrderBy> for api::list_gateways_request::OrderBy {
|
||||||
|
fn from_proto(self) -> gateway::OrderBy {
|
||||||
|
match self {
|
||||||
|
Self::Name => gateway::OrderBy::Name,
|
||||||
|
Self::GatewayId => gateway::OrderBy::GatewayId,
|
||||||
|
Self::LastSeenAt => gateway::OrderBy::LastSeenAt,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn datetime_to_prost_timestamp(dt: &DateTime<Utc>) -> prost_types::Timestamp {
|
pub fn datetime_to_prost_timestamp(dt: &DateTime<Utc>) -> prost_types::Timestamp {
|
||||||
let ts = dt.timestamp_nanos_opt().unwrap_or_default();
|
let ts = dt.timestamp_nanos_opt().unwrap_or_default();
|
||||||
|
|
||||||
|
@ -216,6 +216,15 @@ pub struct Filters {
|
|||||||
pub search: Option<String>,
|
pub search: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, Default)]
|
||||||
|
pub enum OrderBy {
|
||||||
|
#[default]
|
||||||
|
Name,
|
||||||
|
DevEui,
|
||||||
|
LastSeenAt,
|
||||||
|
DeviceProfileName,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(QueryableByName, PartialEq, Eq, Debug)]
|
#[derive(QueryableByName, PartialEq, Eq, Debug)]
|
||||||
pub struct DevicesActiveInactive {
|
pub struct DevicesActiveInactive {
|
||||||
#[diesel(sql_type = diesel::sql_types::BigInt)]
|
#[diesel(sql_type = diesel::sql_types::BigInt)]
|
||||||
@ -606,6 +615,8 @@ pub async fn list(
|
|||||||
limit: i64,
|
limit: i64,
|
||||||
offset: i64,
|
offset: i64,
|
||||||
filters: &Filters,
|
filters: &Filters,
|
||||||
|
order_by: OrderBy,
|
||||||
|
order_by_desc: bool,
|
||||||
) -> Result<Vec<DeviceListItem>, Error> {
|
) -> Result<Vec<DeviceListItem>, Error> {
|
||||||
let mut q = device::dsl::device
|
let mut q = device::dsl::device
|
||||||
.inner_join(device_profile::table)
|
.inner_join(device_profile::table)
|
||||||
@ -648,8 +659,26 @@ pub async fn list(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
q.order_by(device::dsl::name)
|
q = match order_by_desc {
|
||||||
.limit(limit)
|
true => match order_by {
|
||||||
|
OrderBy::Name => q.order_by(device::dsl::name.desc()),
|
||||||
|
OrderBy::DevEui => q.order_by(device::dsl::dev_eui.desc()),
|
||||||
|
OrderBy::LastSeenAt => q
|
||||||
|
.order_by(device::dsl::last_seen_at.desc())
|
||||||
|
.then_order_by(device::dsl::name),
|
||||||
|
OrderBy::DeviceProfileName => q.order_by(device_profile::dsl::name.desc()),
|
||||||
|
},
|
||||||
|
false => match order_by {
|
||||||
|
OrderBy::Name => q.order_by(device::dsl::name),
|
||||||
|
OrderBy::DevEui => q.order_by(device::dsl::dev_eui),
|
||||||
|
OrderBy::LastSeenAt => q
|
||||||
|
.order_by(device::dsl::last_seen_at)
|
||||||
|
.then_order_by(device::dsl::name),
|
||||||
|
OrderBy::DeviceProfileName => q.order_by(device_profile::dsl::name),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
q.limit(limit)
|
||||||
.offset(offset)
|
.offset(offset)
|
||||||
.load(&mut get_async_db_conn().await?)
|
.load(&mut get_async_db_conn().await?)
|
||||||
.await
|
.await
|
||||||
@ -875,6 +904,8 @@ pub mod test {
|
|||||||
count: usize,
|
count: usize,
|
||||||
limit: i64,
|
limit: i64,
|
||||||
offset: i64,
|
offset: i64,
|
||||||
|
order: OrderBy,
|
||||||
|
order_by_desc: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn create_device(
|
pub async fn create_device(
|
||||||
@ -942,6 +973,8 @@ pub mod test {
|
|||||||
count: 1,
|
count: 1,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
|
order: OrderBy::Name,
|
||||||
|
order_by_desc: false,
|
||||||
},
|
},
|
||||||
FilterTest {
|
FilterTest {
|
||||||
filters: Filters {
|
filters: Filters {
|
||||||
@ -953,6 +986,8 @@ pub mod test {
|
|||||||
count: 0,
|
count: 0,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
|
order: OrderBy::Name,
|
||||||
|
order_by_desc: false,
|
||||||
},
|
},
|
||||||
FilterTest {
|
FilterTest {
|
||||||
filters: Filters {
|
filters: Filters {
|
||||||
@ -964,6 +999,8 @@ pub mod test {
|
|||||||
count: 1,
|
count: 1,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
|
order: OrderBy::Name,
|
||||||
|
order_by_desc: false,
|
||||||
},
|
},
|
||||||
FilterTest {
|
FilterTest {
|
||||||
filters: Filters {
|
filters: Filters {
|
||||||
@ -975,6 +1012,8 @@ pub mod test {
|
|||||||
count: 1,
|
count: 1,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
|
order: OrderBy::Name,
|
||||||
|
order_by_desc: false,
|
||||||
},
|
},
|
||||||
FilterTest {
|
FilterTest {
|
||||||
filters: Filters {
|
filters: Filters {
|
||||||
@ -986,6 +1025,8 @@ pub mod test {
|
|||||||
count: 0,
|
count: 0,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
|
order: OrderBy::Name,
|
||||||
|
order_by_desc: false,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -993,7 +1034,15 @@ pub mod test {
|
|||||||
let count = get_count(&tst.filters).await.unwrap() as usize;
|
let count = get_count(&tst.filters).await.unwrap() as usize;
|
||||||
assert_eq!(tst.count, count);
|
assert_eq!(tst.count, count);
|
||||||
|
|
||||||
let items = list(tst.limit, tst.offset, &tst.filters).await.unwrap();
|
let items = list(
|
||||||
|
tst.limit,
|
||||||
|
tst.offset,
|
||||||
|
&tst.filters,
|
||||||
|
tst.order,
|
||||||
|
tst.order_by_desc,
|
||||||
|
)
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
tst.devs
|
tst.devs
|
||||||
.iter()
|
.iter()
|
||||||
|
@ -110,6 +110,14 @@ pub struct Filters {
|
|||||||
pub search: Option<String>,
|
pub search: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Clone, Debug, Default)]
|
||||||
|
pub enum OrderBy {
|
||||||
|
#[default]
|
||||||
|
Name,
|
||||||
|
GatewayId,
|
||||||
|
LastSeenAt,
|
||||||
|
}
|
||||||
|
|
||||||
#[derive(QueryableByName, PartialEq, Eq, Debug)]
|
#[derive(QueryableByName, PartialEq, Eq, Debug)]
|
||||||
pub struct GatewayCountsByState {
|
pub struct GatewayCountsByState {
|
||||||
#[diesel(sql_type = diesel::sql_types::BigInt)]
|
#[diesel(sql_type = diesel::sql_types::BigInt)]
|
||||||
@ -309,6 +317,8 @@ pub async fn list(
|
|||||||
limit: i64,
|
limit: i64,
|
||||||
offset: i64,
|
offset: i64,
|
||||||
filters: &Filters,
|
filters: &Filters,
|
||||||
|
order_by: OrderBy,
|
||||||
|
order_by_desc: bool,
|
||||||
) -> Result<Vec<GatewayListItem>, Error> {
|
) -> Result<Vec<GatewayListItem>, Error> {
|
||||||
let mut q = gateway::dsl::gateway
|
let mut q = gateway::dsl::gateway
|
||||||
.left_join(multicast_group_gateway::table)
|
.left_join(multicast_group_gateway::table)
|
||||||
@ -351,8 +361,24 @@ pub async fn list(
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
q = match order_by_desc {
|
||||||
|
true => match order_by {
|
||||||
|
OrderBy::Name => q.order_by(gateway::dsl::name.desc()),
|
||||||
|
OrderBy::GatewayId => q.order_by(gateway::dsl::gateway_id.desc()),
|
||||||
|
OrderBy::LastSeenAt => q
|
||||||
|
.order_by(gateway::dsl::last_seen_at.desc())
|
||||||
|
.then_order_by(gateway::dsl::name),
|
||||||
|
},
|
||||||
|
false => match order_by {
|
||||||
|
OrderBy::Name => q.order_by(gateway::dsl::name),
|
||||||
|
OrderBy::GatewayId => q.order_by(gateway::dsl::gateway_id),
|
||||||
|
OrderBy::LastSeenAt => q
|
||||||
|
.order_by(gateway::dsl::last_seen_at)
|
||||||
|
.then_order_by(gateway::dsl::name),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
let items = q
|
let items = q
|
||||||
.order_by(gateway::dsl::name)
|
|
||||||
.limit(limit)
|
.limit(limit)
|
||||||
.offset(offset)
|
.offset(offset)
|
||||||
.load(&mut get_async_db_conn().await?)
|
.load(&mut get_async_db_conn().await?)
|
||||||
@ -522,6 +548,8 @@ pub mod test {
|
|||||||
count: usize,
|
count: usize,
|
||||||
limit: i64,
|
limit: i64,
|
||||||
offset: i64,
|
offset: i64,
|
||||||
|
order: OrderBy,
|
||||||
|
order_by_desc: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
struct RelayGatewayFilterTest<'a> {
|
struct RelayGatewayFilterTest<'a> {
|
||||||
@ -603,6 +631,8 @@ pub mod test {
|
|||||||
count: 1,
|
count: 1,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
|
order: OrderBy::Name,
|
||||||
|
order_by_desc: false,
|
||||||
},
|
},
|
||||||
FilterTest {
|
FilterTest {
|
||||||
filters: Filters {
|
filters: Filters {
|
||||||
@ -614,6 +644,8 @@ pub mod test {
|
|||||||
count: 0,
|
count: 0,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
|
order: OrderBy::Name,
|
||||||
|
order_by_desc: false,
|
||||||
},
|
},
|
||||||
FilterTest {
|
FilterTest {
|
||||||
filters: Filters {
|
filters: Filters {
|
||||||
@ -625,6 +657,8 @@ pub mod test {
|
|||||||
count: 1,
|
count: 1,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
|
order: OrderBy::Name,
|
||||||
|
order_by_desc: false,
|
||||||
},
|
},
|
||||||
FilterTest {
|
FilterTest {
|
||||||
filters: Filters {
|
filters: Filters {
|
||||||
@ -636,6 +670,8 @@ pub mod test {
|
|||||||
count: 1,
|
count: 1,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
|
order: OrderBy::Name,
|
||||||
|
order_by_desc: false,
|
||||||
},
|
},
|
||||||
FilterTest {
|
FilterTest {
|
||||||
filters: Filters {
|
filters: Filters {
|
||||||
@ -647,6 +683,8 @@ pub mod test {
|
|||||||
count: 0,
|
count: 0,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
|
order: OrderBy::Name,
|
||||||
|
order_by_desc: false,
|
||||||
},
|
},
|
||||||
FilterTest {
|
FilterTest {
|
||||||
filters: Filters {
|
filters: Filters {
|
||||||
@ -658,6 +696,8 @@ pub mod test {
|
|||||||
count: 1,
|
count: 1,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
|
order: OrderBy::Name,
|
||||||
|
order_by_desc: false,
|
||||||
},
|
},
|
||||||
FilterTest {
|
FilterTest {
|
||||||
filters: Filters {
|
filters: Filters {
|
||||||
@ -669,6 +709,47 @@ pub mod test {
|
|||||||
count: 0,
|
count: 0,
|
||||||
limit: 10,
|
limit: 10,
|
||||||
offset: 0,
|
offset: 0,
|
||||||
|
order: OrderBy::Name,
|
||||||
|
order_by_desc: false,
|
||||||
|
},
|
||||||
|
FilterTest {
|
||||||
|
filters: Filters {
|
||||||
|
tenant_id: None,
|
||||||
|
multicast_group_id: None,
|
||||||
|
search: None,
|
||||||
|
},
|
||||||
|
gws: vec![&gw],
|
||||||
|
count: 1,
|
||||||
|
limit: 10,
|
||||||
|
offset: 0,
|
||||||
|
order: OrderBy::Name,
|
||||||
|
order_by_desc: false,
|
||||||
|
},
|
||||||
|
FilterTest {
|
||||||
|
filters: Filters {
|
||||||
|
tenant_id: None,
|
||||||
|
multicast_group_id: None,
|
||||||
|
search: None,
|
||||||
|
},
|
||||||
|
gws: vec![&gw],
|
||||||
|
count: 1,
|
||||||
|
limit: 10,
|
||||||
|
offset: 0,
|
||||||
|
order: OrderBy::Name,
|
||||||
|
order_by_desc: false,
|
||||||
|
},
|
||||||
|
FilterTest {
|
||||||
|
filters: Filters {
|
||||||
|
tenant_id: None,
|
||||||
|
multicast_group_id: None,
|
||||||
|
search: None,
|
||||||
|
},
|
||||||
|
gws: vec![&gw],
|
||||||
|
count: 1,
|
||||||
|
limit: 10,
|
||||||
|
offset: 0,
|
||||||
|
order: OrderBy::Name,
|
||||||
|
order_by_desc: true,
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
@ -676,7 +757,15 @@ pub mod test {
|
|||||||
let count = get_count(&tst.filters).await.unwrap() as usize;
|
let count = get_count(&tst.filters).await.unwrap() as usize;
|
||||||
assert_eq!(tst.count, count);
|
assert_eq!(tst.count, count);
|
||||||
|
|
||||||
let items = list(tst.limit, tst.offset, &tst.filters).await.unwrap();
|
let items = list(
|
||||||
|
tst.limit,
|
||||||
|
tst.offset,
|
||||||
|
&tst.filters,
|
||||||
|
tst.order,
|
||||||
|
tst.order_by_desc,
|
||||||
|
)
|
||||||
|
.await
|
||||||
|
.unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
tst.gws
|
tst.gws
|
||||||
.iter()
|
.iter()
|
||||||
|
@ -1,7 +1,8 @@
|
|||||||
import React, { useState, useEffect, useCallback } from "react";
|
import React, { useState, useEffect, useCallback } from "react";
|
||||||
|
|
||||||
import { Table } from "antd";
|
import { Table, TableProps } from "antd";
|
||||||
import type { ColumnsType } from "antd/es/table";
|
import type { ColumnsType } from "antd/es/table";
|
||||||
|
import type { SorterResult } from "antd/es/table/interface";
|
||||||
|
|
||||||
import SessionStore from "../stores/SessionStore";
|
import SessionStore from "../stores/SessionStore";
|
||||||
|
|
||||||
@ -10,7 +11,13 @@ export type GetPageCallbackFunc = (totalCount: number, rows: object[]) => void;
|
|||||||
interface IProps {
|
interface IProps {
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
columns: ColumnsType<any>;
|
columns: ColumnsType<any>;
|
||||||
getPage: (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => void;
|
getPage: (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => void;
|
||||||
onRowsSelectChange?: (ids: string[]) => void;
|
onRowsSelectChange?: (ids: string[]) => void;
|
||||||
rowKey: string;
|
rowKey: string;
|
||||||
refreshKey?: unknown;
|
refreshKey?: unknown;
|
||||||
@ -21,33 +28,24 @@ function DataTable(props: IProps) {
|
|||||||
const [totalCount, setTotalCount] = useState<number>(0);
|
const [totalCount, setTotalCount] = useState<number>(0);
|
||||||
const [pageSize, setPageSize] = useState<number>(SessionStore.getRowsPerPage());
|
const [pageSize, setPageSize] = useState<number>(SessionStore.getRowsPerPage());
|
||||||
const [currentPage, setCurrentPage] = useState<number>(1);
|
const [currentPage, setCurrentPage] = useState<number>(1);
|
||||||
|
const [orderBy, setOrderBy] = useState<string>("");
|
||||||
|
const [orderByDesc, setOrderByDesc] = useState<boolean>(false);
|
||||||
const [rows, setRows] = useState<object[]>([]);
|
const [rows, setRows] = useState<object[]>([]);
|
||||||
const [loading, setLoading] = useState<boolean>(true);
|
const [loading, setLoading] = useState<boolean>(true);
|
||||||
|
|
||||||
const onChangePage = useCallback(
|
const loadPage = useCallback(
|
||||||
(page: number, pz?: number | void) => {
|
(page: number, pz: number, orderBy?: string | void, orderByDesc?: boolean | void) => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
|
|
||||||
if (!pz) {
|
props.getPage(pz, (page - 1) * pz, orderBy, orderByDesc, (totalCount: number, rows: object[]) => {
|
||||||
pz = pageSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
props.getPage(pz, (page - 1) * pz, (totalCount: number, rows: object[]) => {
|
|
||||||
setCurrentPage(page);
|
|
||||||
setTotalCount(totalCount);
|
setTotalCount(totalCount);
|
||||||
setRows(rows);
|
setRows(rows);
|
||||||
setPageSize(pz || 0);
|
|
||||||
setLoading(false);
|
setLoading(false);
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
[props, pageSize],
|
[props, pageSize],
|
||||||
);
|
);
|
||||||
|
|
||||||
const onShowSizeChange = (page: number, pageSize: number) => {
|
|
||||||
onChangePage(page, pageSize);
|
|
||||||
SessionStore.setRowsPerPage(pageSize);
|
|
||||||
};
|
|
||||||
|
|
||||||
const onRowsSelectChange = (ids: React.Key[]) => {
|
const onRowsSelectChange = (ids: React.Key[]) => {
|
||||||
const idss = ids as string[];
|
const idss = ids as string[];
|
||||||
if (props.onRowsSelectChange) {
|
if (props.onRowsSelectChange) {
|
||||||
@ -55,9 +53,49 @@ function DataTable(props: IProps) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const onChange: TableProps<object>["onChange"] = (pagination, filters, sorter, extra) => {
|
||||||
|
let page = pagination.current;
|
||||||
|
if (!page) {
|
||||||
|
page = currentPage;
|
||||||
|
}
|
||||||
|
|
||||||
|
let pz = pagination.pageSize;
|
||||||
|
if (!pz) {
|
||||||
|
pz = pageSize;
|
||||||
|
}
|
||||||
|
SessionStore.setRowsPerPage(pz);
|
||||||
|
|
||||||
|
let firstSorter: SorterResult<object> | void = undefined;
|
||||||
|
if (Array.isArray(sorter)) {
|
||||||
|
if (sorter.length) {
|
||||||
|
firstSorter = sorter[0];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
firstSorter = sorter;
|
||||||
|
}
|
||||||
|
let sort: string | void = undefined;
|
||||||
|
if (firstSorter) {
|
||||||
|
if (firstSorter.columnKey) {
|
||||||
|
sort = firstSorter.columnKey.toString();
|
||||||
|
if (firstSorter.order === "descend") {
|
||||||
|
setOrderByDesc(true);
|
||||||
|
} else {
|
||||||
|
setOrderByDesc(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!sort) {
|
||||||
|
sort = orderBy;
|
||||||
|
}
|
||||||
|
|
||||||
|
setCurrentPage(page);
|
||||||
|
setPageSize(pz || 0);
|
||||||
|
setOrderBy(sort);
|
||||||
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
onChangePage(currentPage, pageSize);
|
loadPage(currentPage, pageSize, orderBy, orderByDesc);
|
||||||
}, [props, currentPage, pageSize, onChangePage]);
|
}, [props, currentPage, pageSize, orderBy, orderByDesc, loadPage]);
|
||||||
|
|
||||||
const { getPage, refreshKey, ...otherProps } = props;
|
const { getPage, refreshKey, ...otherProps } = props;
|
||||||
let loadingProps = undefined;
|
let loadingProps = undefined;
|
||||||
@ -73,9 +111,7 @@ function DataTable(props: IProps) {
|
|||||||
current: currentPage,
|
current: currentPage,
|
||||||
total: totalCount,
|
total: totalCount,
|
||||||
pageSize: pageSize,
|
pageSize: pageSize,
|
||||||
onChange: onChangePage,
|
|
||||||
showSizeChanger: true,
|
showSizeChanger: true,
|
||||||
onShowSizeChange: onShowSizeChange,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,6 +128,7 @@ function DataTable(props: IProps) {
|
|||||||
dataSource={rows}
|
dataSource={rows}
|
||||||
pagination={pagination || false}
|
pagination={pagination || false}
|
||||||
rowSelection={rowSelection}
|
rowSelection={rowSelection}
|
||||||
|
onChange={onChange}
|
||||||
{...otherProps}
|
{...otherProps}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
@ -56,7 +56,13 @@ function ListAdminApiKeys() {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
const req = new ListApiKeysRequest();
|
const req = new ListApiKeysRequest();
|
||||||
req.setLimit(limit);
|
req.setLimit(limit);
|
||||||
req.setOffset(offset);
|
req.setOffset(offset);
|
||||||
|
@ -64,7 +64,13 @@ function ListTenantApiKeys(props: IProps) {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
const req = new ListApiKeysRequest();
|
const req = new ListApiKeysRequest();
|
||||||
req.setLimit(limit);
|
req.setLimit(limit);
|
||||||
req.setOffset(offset);
|
req.setOffset(offset);
|
||||||
|
@ -38,7 +38,13 @@ function ListApplications(props: IProps) {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
const req = new ListApplicationsRequest();
|
const req = new ListApplicationsRequest();
|
||||||
req.setTenantId(props.tenant.getId());
|
req.setTenantId(props.tenant.getId());
|
||||||
req.setLimit(limit);
|
req.setLimit(limit);
|
||||||
|
@ -47,7 +47,13 @@ function ListDeviceProfileTemplates() {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
const req = new ListDeviceProfileTemplatesRequest();
|
const req = new ListDeviceProfileTemplatesRequest();
|
||||||
req.setLimit(limit);
|
req.setLimit(limit);
|
||||||
req.setOffset(offset);
|
req.setOffset(offset);
|
||||||
|
@ -102,7 +102,13 @@ function ListDeviceProfiles(props: IProps) {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
const req = new ListDeviceProfilesRequest();
|
const req = new ListDeviceProfilesRequest();
|
||||||
req.setTenantId(props.tenant.getId());
|
req.setTenantId(props.tenant.getId());
|
||||||
req.setLimit(limit);
|
req.setLimit(limit);
|
||||||
|
@ -5,28 +5,16 @@ import { format } from "date-fns";
|
|||||||
import { Timestamp } from "google-protobuf/google/protobuf/timestamp_pb";
|
import { Timestamp } from "google-protobuf/google/protobuf/timestamp_pb";
|
||||||
|
|
||||||
import { Switch, notification } from "antd";
|
import { Switch, notification } from "antd";
|
||||||
import {
|
import type { DatePickerProps } from "antd";
|
||||||
Button,
|
import { Button, Tabs, Space, Card, Row, Form, Input, InputNumber, Popconfirm, DatePicker } from "antd";
|
||||||
Tabs,
|
|
||||||
Space,
|
|
||||||
Card,
|
|
||||||
Row,
|
|
||||||
Form,
|
|
||||||
Input,
|
|
||||||
InputNumber,
|
|
||||||
Popconfirm,
|
|
||||||
DatePicker,
|
|
||||||
DatePickerProps,
|
|
||||||
} from "antd";
|
|
||||||
import type { ColumnsType } from "antd/es/table";
|
import type { ColumnsType } from "antd/es/table";
|
||||||
import { RedoOutlined, DeleteOutlined } from "@ant-design/icons";
|
import { RedoOutlined, DeleteOutlined } from "@ant-design/icons";
|
||||||
import { Buffer } from "buffer";
|
import { Buffer } from "buffer";
|
||||||
|
|
||||||
|
import type { GetDeviceQueueItemsResponse, Device } from "@chirpstack/chirpstack-api-grpc-web/api/device_pb";
|
||||||
import {
|
import {
|
||||||
EnqueueDeviceQueueItemRequest,
|
EnqueueDeviceQueueItemRequest,
|
||||||
GetDeviceQueueItemsRequest,
|
GetDeviceQueueItemsRequest,
|
||||||
GetDeviceQueueItemsResponse,
|
|
||||||
Device,
|
|
||||||
FlushDeviceQueueRequest,
|
FlushDeviceQueueRequest,
|
||||||
DeviceQueueItem,
|
DeviceQueueItem,
|
||||||
} from "@chirpstack/chirpstack-api-grpc-web/api/device_pb";
|
} from "@chirpstack/chirpstack-api-grpc-web/api/device_pb";
|
||||||
@ -147,7 +135,13 @@ function DeviceQueue(props: IProps) {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
const req = new GetDeviceQueueItemsRequest();
|
const req = new GetDeviceQueueItemsRequest();
|
||||||
req.setDevEui(props.device.getDevEui());
|
req.setDevEui(props.device.getDevEui());
|
||||||
|
|
||||||
|
@ -79,6 +79,7 @@ function ListDevices(props: IProps) {
|
|||||||
}
|
}
|
||||||
return "Never";
|
return "Never";
|
||||||
},
|
},
|
||||||
|
sorter: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "DevEUI",
|
title: "DevEUI",
|
||||||
@ -94,11 +95,13 @@ function ListDevices(props: IProps) {
|
|||||||
{text}
|
{text}
|
||||||
</Link>
|
</Link>
|
||||||
),
|
),
|
||||||
|
sorter: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Name",
|
title: "Name",
|
||||||
dataIndex: "name",
|
dataIndex: "name",
|
||||||
key: "name",
|
key: "name",
|
||||||
|
sorter: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Device profile",
|
title: "Device profile",
|
||||||
@ -109,6 +112,7 @@ function ListDevices(props: IProps) {
|
|||||||
{text}
|
{text}
|
||||||
</Link>
|
</Link>
|
||||||
),
|
),
|
||||||
|
sorter: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Battery",
|
title: "Battery",
|
||||||
@ -134,11 +138,32 @@ function ListDevices(props: IProps) {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
|
function getOrderBy(orderBy: string | void): ListDevicesRequest.OrderBy {
|
||||||
|
switch (orderBy) {
|
||||||
|
case "lastSeenAt":
|
||||||
|
return ListDevicesRequest.OrderBy.LAST_SEEN_AT;
|
||||||
|
case "deviceProfileName":
|
||||||
|
return ListDevicesRequest.OrderBy.DEVICE_PROFILE_NAME;
|
||||||
|
case "devEui":
|
||||||
|
return ListDevicesRequest.OrderBy.DEV_EUI;
|
||||||
|
default:
|
||||||
|
return ListDevicesRequest.OrderBy.NAME;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const req = new ListDevicesRequest();
|
const req = new ListDevicesRequest();
|
||||||
req.setApplicationId(props.application.getId());
|
req.setApplicationId(props.application.getId());
|
||||||
req.setLimit(limit);
|
req.setLimit(limit);
|
||||||
req.setOffset(offset);
|
req.setOffset(offset);
|
||||||
|
req.setOrderBy(getOrderBy(orderBy));
|
||||||
|
req.setOrderByDesc(orderByDesc || false);
|
||||||
|
|
||||||
DeviceStore.list(req, (resp: ListDevicesResponse) => {
|
DeviceStore.list(req, (resp: ListDevicesResponse) => {
|
||||||
const obj = resp.toObject();
|
const obj = resp.toObject();
|
||||||
|
@ -71,6 +71,7 @@ function ListGateways(props: IProps) {
|
|||||||
return format(ts, "yyyy-MM-dd HH:mm:ss");
|
return format(ts, "yyyy-MM-dd HH:mm:ss");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
sorter: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Gateway ID",
|
title: "Gateway ID",
|
||||||
@ -80,11 +81,13 @@ function ListGateways(props: IProps) {
|
|||||||
render: (text, record) => (
|
render: (text, record) => (
|
||||||
<Link to={`/tenants/${props.tenant.getId()}/gateways/${record.gatewayId}`}>{text}</Link>
|
<Link to={`/tenants/${props.tenant.getId()}/gateways/${record.gatewayId}`}>{text}</Link>
|
||||||
),
|
),
|
||||||
|
sorter: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Name",
|
title: "Name",
|
||||||
dataIndex: "name",
|
dataIndex: "name",
|
||||||
key: "name",
|
key: "name",
|
||||||
|
sorter: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Region ID",
|
title: "Region ID",
|
||||||
@ -97,7 +100,6 @@ function ListGateways(props: IProps) {
|
|||||||
return <Link to={`/regions/${v}`}>{v}</Link>;
|
return <Link to={`/regions/${v}`}>{v}</Link>;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -112,7 +114,6 @@ function ListGateways(props: IProps) {
|
|||||||
return v;
|
return v;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return "";
|
return "";
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -147,11 +148,30 @@ function ListGateways(props: IProps) {
|
|||||||
});
|
});
|
||||||
}, [props]);
|
}, [props]);
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
|
function getOrderBy(orderBy: string | void): ListGatewaysRequest.OrderBy {
|
||||||
|
switch (orderBy) {
|
||||||
|
case "lastSeenAt":
|
||||||
|
return ListGatewaysRequest.OrderBy.LAST_SEEN_AT;
|
||||||
|
case "gatewayId":
|
||||||
|
return ListGatewaysRequest.OrderBy.GATEWAY_ID;
|
||||||
|
default:
|
||||||
|
return ListGatewaysRequest.OrderBy.NAME;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const req = new ListGatewaysRequest();
|
const req = new ListGatewaysRequest();
|
||||||
req.setTenantId(props.tenant.getId());
|
req.setTenantId(props.tenant.getId());
|
||||||
req.setLimit(limit);
|
req.setLimit(limit);
|
||||||
req.setOffset(offset);
|
req.setOffset(offset);
|
||||||
|
req.setOrderBy(getOrderBy(orderBy));
|
||||||
|
req.setOrderByDesc(orderByDesc || false);
|
||||||
|
|
||||||
GatewayStore.list(req, (resp: ListGatewaysResponse) => {
|
GatewayStore.list(req, (resp: ListGatewaysResponse) => {
|
||||||
const obj = resp.toObject();
|
const obj = resp.toObject();
|
||||||
|
@ -77,7 +77,13 @@ function ListRelayGateways(props: IProps) {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
const req = new ListRelayGatewaysRequest();
|
const req = new ListRelayGatewaysRequest();
|
||||||
req.setTenantId(props.tenant.getId());
|
req.setTenantId(props.tenant.getId());
|
||||||
req.setLimit(limit);
|
req.setLimit(limit);
|
||||||
|
@ -40,7 +40,13 @@ function ListMulticastGroupDevices(props: IProps) {
|
|||||||
setSelectedRowIds(ids);
|
setSelectedRowIds(ids);
|
||||||
};
|
};
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
const req = new ListDevicesRequest();
|
const req = new ListDevicesRequest();
|
||||||
req.setApplicationId(props.multicastGroup.getApplicationId());
|
req.setApplicationId(props.multicastGroup.getApplicationId());
|
||||||
req.setMulticastGroupId(props.multicastGroup.getId());
|
req.setMulticastGroupId(props.multicastGroup.getId());
|
||||||
|
@ -43,7 +43,13 @@ function ListMulticastGroupGateways(props: IProps) {
|
|||||||
setSelectedRowIds(ids);
|
setSelectedRowIds(ids);
|
||||||
};
|
};
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
const req = new ListGatewaysRequest();
|
const req = new ListGatewaysRequest();
|
||||||
req.setTenantId(props.application.getTenantId());
|
req.setTenantId(props.application.getTenantId());
|
||||||
req.setMulticastGroupId(props.multicastGroup.getId());
|
req.setMulticastGroupId(props.multicastGroup.getId());
|
||||||
|
@ -60,7 +60,13 @@ function ListMulticastGroups(props: IProps) {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
const req = new ListMulticastGroupsRequest();
|
const req = new ListMulticastGroupsRequest();
|
||||||
req.setApplicationId(props.application.getId());
|
req.setApplicationId(props.application.getId());
|
||||||
req.setLimit(limit);
|
req.setLimit(limit);
|
||||||
|
@ -3,30 +3,21 @@ import { useState } from "react";
|
|||||||
import { format } from "date-fns";
|
import { format } from "date-fns";
|
||||||
import { Timestamp } from "google-protobuf/google/protobuf/timestamp_pb";
|
import { Timestamp } from "google-protobuf/google/protobuf/timestamp_pb";
|
||||||
|
|
||||||
import {
|
import type { DatePickerProps } from "antd";
|
||||||
Button,
|
import { Button, Tabs, Space, Card, Row, Form, Input, InputNumber, Popconfirm, DatePicker } from "antd";
|
||||||
Tabs,
|
|
||||||
Space,
|
|
||||||
Card,
|
|
||||||
Row,
|
|
||||||
Form,
|
|
||||||
Input,
|
|
||||||
InputNumber,
|
|
||||||
Popconfirm,
|
|
||||||
DatePicker,
|
|
||||||
DatePickerProps,
|
|
||||||
} from "antd";
|
|
||||||
import type { ColumnsType } from "antd/es/table";
|
import type { ColumnsType } from "antd/es/table";
|
||||||
import { RedoOutlined, DeleteOutlined } from "@ant-design/icons";
|
import { RedoOutlined, DeleteOutlined } from "@ant-design/icons";
|
||||||
import { Buffer } from "buffer";
|
import { Buffer } from "buffer";
|
||||||
|
|
||||||
|
import type {
|
||||||
|
MulticastGroup,
|
||||||
|
ListMulticastGroupQueueResponse,
|
||||||
|
} from "@chirpstack/chirpstack-api-grpc-web/api/multicast_group_pb";
|
||||||
import {
|
import {
|
||||||
EnqueueMulticastGroupQueueItemRequest,
|
EnqueueMulticastGroupQueueItemRequest,
|
||||||
ListMulticastGroupQueueRequest,
|
ListMulticastGroupQueueRequest,
|
||||||
FlushMulticastGroupQueueRequest,
|
FlushMulticastGroupQueueRequest,
|
||||||
MulticastGroupQueueItem,
|
MulticastGroupQueueItem,
|
||||||
MulticastGroup,
|
|
||||||
ListMulticastGroupQueueResponse,
|
|
||||||
} from "@chirpstack/chirpstack-api-grpc-web/api/multicast_group_pb";
|
} from "@chirpstack/chirpstack-api-grpc-web/api/multicast_group_pb";
|
||||||
|
|
||||||
import { onFinishFailed } from "../helpers";
|
import { onFinishFailed } from "../helpers";
|
||||||
@ -87,7 +78,13 @@ function MulticastGroupQueue(props: IProps) {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
const req = new ListMulticastGroupQueueRequest();
|
const req = new ListMulticastGroupQueueRequest();
|
||||||
req.setMulticastGroupId(props.multicastGroup.getId());
|
req.setMulticastGroupId(props.multicastGroup.getId());
|
||||||
|
|
||||||
|
@ -63,7 +63,13 @@ function ListRelayDevices(props: IProps) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
const req = new ListRelayDevicesRequest();
|
const req = new ListRelayDevicesRequest();
|
||||||
req.setRelayDevEui(props.relayDevice.getDevEui());
|
req.setRelayDevEui(props.relayDevice.getDevEui());
|
||||||
req.setLimit(limit);
|
req.setLimit(limit);
|
||||||
|
@ -37,7 +37,13 @@ function ListRelays(props: IProps) {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
const req = new ListRelaysRequest();
|
const req = new ListRelaysRequest();
|
||||||
req.setApplicationId(props.application.getId());
|
req.setApplicationId(props.application.getId());
|
||||||
req.setLimit(limit);
|
req.setLimit(limit);
|
||||||
|
@ -65,7 +65,13 @@ function ListTenantUsers(props: IProps) {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
const req = new ListTenantUsersRequest();
|
const req = new ListTenantUsersRequest();
|
||||||
req.setTenantId(props.tenant.getId());
|
req.setTenantId(props.tenant.getId());
|
||||||
req.setLimit(limit);
|
req.setLimit(limit);
|
||||||
|
@ -92,7 +92,13 @@ function ListTenants() {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
const req = new ListTenantsRequest();
|
const req = new ListTenantsRequest();
|
||||||
req.setLimit(limit);
|
req.setLimit(limit);
|
||||||
req.setOffset(offset);
|
req.setOffset(offset);
|
||||||
|
@ -50,7 +50,13 @@ function ListUsers() {
|
|||||||
},
|
},
|
||||||
];
|
];
|
||||||
|
|
||||||
const getPage = (limit: number, offset: number, callbackFunc: GetPageCallbackFunc) => {
|
const getPage = (
|
||||||
|
limit: number,
|
||||||
|
offset: number,
|
||||||
|
orderBy: string | void,
|
||||||
|
orderByDesc: boolean | void,
|
||||||
|
callbackFunc: GetPageCallbackFunc,
|
||||||
|
) => {
|
||||||
const req = new ListUsersRequest();
|
const req = new ListUsersRequest();
|
||||||
req.setLimit(limit);
|
req.setLimit(limit);
|
||||||
req.setOffset(offset);
|
req.setOffset(offset);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user