From ecd3eacbb3e28d620014a4c488734d42db794cc2 Mon Sep 17 00:00:00 2001 From: Nishad Musthafa Date: Tue, 26 Aug 2025 19:36:22 -0700 Subject: [PATCH 1/8] Adding get and update apis for livekit phone numbers --- protobufs/livekit_phone_number.proto | 70 ++++++++++++++++++++++------ 1 file changed, 55 insertions(+), 15 deletions(-) diff --git a/protobufs/livekit_phone_number.proto b/protobufs/livekit_phone_number.proto index f92049aeb..62168dc49 100644 --- a/protobufs/livekit_phone_number.proto +++ b/protobufs/livekit_phone_number.proto @@ -4,7 +4,6 @@ package livekit; option go_package = "github.com/livekit/protocol/livekit"; -import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; import "livekit_models.proto"; import "livekit_sip.proto"; @@ -32,18 +31,26 @@ service PhoneNumberService { // List available phone numbers in inventory rpc ListPhoneNumberInventory(ListPhoneNumberInventoryRequest) returns (ListPhoneNumberInventoryResponse) {} - + // Purchase a phone number from inventory rpc PurchasePhoneNumber(PurchasePhoneNumberRequest) returns (PurchasePhoneNumberResponse) {} - + // List purchased phone numbers for a project rpc ListPurchasedPhoneNumbers(ListPurchasedPhoneNumbersRequest) returns (ListPurchasedPhoneNumbersResponse) {} - + + // Get a purchased phone number + rpc GetPurchasedPhoneNumber(GetPurchasedPhoneNumberRequest) + returns (GetPurchasedPhoneNumberResponse) {} + + // Update a purchased phone number + rpc UpdatePurchasedPhoneNumber(UpdatePurchasedPhoneNumberRequest) + returns (UpdatePurchasedPhoneNumberResponse) {} + // Release a purchased phone number - rpc ReleasePhoneNumber(ReleasePhoneNumberRequest) - returns (google.protobuf.Empty) {} + rpc ReleasePurchasedPhoneNumber(ReleasePurchasedPhoneNumbersRequest) + returns (ReleasePurchasedPhoneNumbersResponse) {} } // ListPhoneNumberInventoryRequest - Request to list available phone numbers @@ -63,6 +70,7 @@ message ListPhoneNumberInventoryResponse { // PurchasePhoneNumberRequest - Request to purchase phone numbers message PurchasePhoneNumberRequest { repeated string phone_numbers = 1; // Phone numbers to purchase (e.g., ["+1234567890", "+1234567891"]) + string sip_dispatch_rule_id = 2; // Optional: SIP dispatch rule ID to apply to all purchased numbers } // PurchasePhoneNumberResponse - Response containing the purchased phone numbers @@ -73,7 +81,9 @@ message PurchasePhoneNumberResponse { // ListPurchasedPhoneNumbersRequest - Request to list purchased phone numbers message ListPurchasedPhoneNumbersRequest { int32 limit = 1; // Optional: Maximum number of results (default: 50) - TokenPagination page_token = 2; // Optional: Token for pagination (empty for first page) + PhoneNumberStatus status = 2; // Optional: Filter by status (active, pending, released) + TokenPagination page_token = 3; // Optional: Token for pagination (empty for first page) + string sip_dispatch_rule_id = 4; // Optional: Filter by SIP dispatch rule ID } // ListPurchasedPhoneNumbersResponse - Response containing purchased phone numbers @@ -83,9 +93,38 @@ message ListPurchasedPhoneNumbersResponse { int32 total_count = 3; // Total number of purchased phone numbers } -// ReleasePhoneNumberRequest - Request to release purchased phone numbers -message ReleasePhoneNumberRequest { - repeated string phone_numbers = 1; // Phone numbers to release (e.g., ["+1234567890", "+1234567891"]) +// GetPurchasedPhoneNumberRequest - Request to get a purchased phone number +message GetPurchasedPhoneNumberRequest { + string purchased_phone_number_id = 1; // Optional: Use purchased phone number ID for direct lookup + string phone_number = 2; // Optional: Use phone number string for lookup +} + +// GetPurchasedPhoneNumberResponse - Response containing the purchased phone number +message GetPurchasedPhoneNumberResponse { + PurchasedPhoneNumber phone_number = 1; // The purchased phone number details +} + +// UpdatePurchasedPhoneNumberRequest - Request to update a purchased phone number +message UpdatePurchasedPhoneNumberRequest { + string purchased_phone_number_id = 1; // Optional: Use purchased phone number ID for direct lookup + string phone_number = 2; // Optional: Use phone number string for lookup + string sip_dispatch_rule_id = 3; // Optional: SIP dispatch rule ID to assign to the phone number +} + +// UpdatePurchasedPhoneNumberResponse - Response containing the updated purchased phone number +message UpdatePurchasedPhoneNumberResponse { + PurchasedPhoneNumber phone_number = 1; // The updated purchased phone number details +} + +// ReleasePurchasedPhoneNumbersRequest - Request to release purchased phone numbers +message ReleasePurchasedPhoneNumbersRequest { + repeated string purchased_phone_number_ids = 1; // Optional: Use purchased phone number IDs for direct lookup + repeated string phone_numbers = 2; // Optional: Use phone number strings for lookup +} + +// ReleasePurchasedPhoneNumbersResponse - Response for releasing purchased phone numbers +message ReleasePurchasedPhoneNumbersResponse { + // Empty response - operation completed successfully } // GlobalPhoneNumber represents a phone number with standardized format @@ -121,9 +160,10 @@ message PhoneNumberInventoryItem { // PurchasedPhoneNumber - Represents a phone number owned by a LiveKit project message PurchasedPhoneNumber { - GlobalPhoneNumber phone_number = 1; // Common phone number fields - PhoneNumberStatus status = 2; // Current status of the phone number - google.protobuf.Timestamp assigned_at = 3; // Timestamp when the number was assigned - google.protobuf.Timestamp released_at = 4; // Timestamp when the number was released (if applicable) - SIPDispatchRuleInfo sip_dispatch_rule = 5; // Optional: Associated SIP dispatch rule + string purchased_phone_number_id = 1; // Unique identifier for the purchased phone number + GlobalPhoneNumber phone_number = 2; // Common phone number fields + PhoneNumberStatus status = 3; // Current status of the phone number + google.protobuf.Timestamp assigned_at = 4; // Timestamp when the number was assigned + google.protobuf.Timestamp released_at = 5; // Timestamp when the number was released (if applicable) + SIPDispatchRuleInfo sip_dispatch_rule = 6; // Optional: Associated SIP dispatch rule } From 2d45509134a9c6a2986e91625140529abf4820d0 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 27 Aug 2025 02:37:37 +0000 Subject: [PATCH 2/8] generated protobuf --- livekit/livekit_phone_number.pb.go | 534 +++++++++++++---- livekit/livekit_phone_number.twirp.go | 828 ++++++++++++++++++++++---- 2 files changed, 1120 insertions(+), 242 deletions(-) diff --git a/livekit/livekit_phone_number.pb.go b/livekit/livekit_phone_number.pb.go index 72268f39a..677cce59c 100644 --- a/livekit/livekit_phone_number.pb.go +++ b/livekit/livekit_phone_number.pb.go @@ -9,7 +9,6 @@ package livekit import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - emptypb "google.golang.org/protobuf/types/known/emptypb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" @@ -259,10 +258,11 @@ func (x *ListPhoneNumberInventoryResponse) GetNextPageToken() *TokenPagination { // PurchasePhoneNumberRequest - Request to purchase phone numbers type PurchasePhoneNumberRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - PhoneNumbers []string `protobuf:"bytes,1,rep,name=phone_numbers,json=phoneNumbers,proto3" json:"phone_numbers,omitempty"` // Phone numbers to purchase (e.g., ["+1234567890", "+1234567891"]) - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + PhoneNumbers []string `protobuf:"bytes,1,rep,name=phone_numbers,json=phoneNumbers,proto3" json:"phone_numbers,omitempty"` // Phone numbers to purchase (e.g., ["+1234567890", "+1234567891"]) + SipDispatchRuleId string `protobuf:"bytes,2,opt,name=sip_dispatch_rule_id,json=sipDispatchRuleId,proto3" json:"sip_dispatch_rule_id,omitempty"` // Optional: SIP dispatch rule ID to apply to all purchased numbers + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PurchasePhoneNumberRequest) Reset() { @@ -302,6 +302,13 @@ func (x *PurchasePhoneNumberRequest) GetPhoneNumbers() []string { return nil } +func (x *PurchasePhoneNumberRequest) GetSipDispatchRuleId() string { + if x != nil { + return x.SipDispatchRuleId + } + return "" +} + // PurchasePhoneNumberResponse - Response containing the purchased phone numbers type PurchasePhoneNumberResponse struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -349,11 +356,13 @@ func (x *PurchasePhoneNumberResponse) GetPhoneNumbers() []*PurchasedPhoneNumber // ListPurchasedPhoneNumbersRequest - Request to list purchased phone numbers type ListPurchasedPhoneNumbersRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` // Optional: Maximum number of results (default: 50) - PageToken *TokenPagination `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // Optional: Token for pagination (empty for first page) - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Limit int32 `protobuf:"varint,1,opt,name=limit,proto3" json:"limit,omitempty"` // Optional: Maximum number of results (default: 50) + Status PhoneNumberStatus `protobuf:"varint,2,opt,name=status,proto3,enum=livekit.PhoneNumberStatus" json:"status,omitempty"` // Optional: Filter by status (active, pending, released) + PageToken *TokenPagination `protobuf:"bytes,3,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` // Optional: Token for pagination (empty for first page) + SipDispatchRuleId string `protobuf:"bytes,4,opt,name=sip_dispatch_rule_id,json=sipDispatchRuleId,proto3" json:"sip_dispatch_rule_id,omitempty"` // Optional: Filter by SIP dispatch rule ID + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *ListPurchasedPhoneNumbersRequest) Reset() { @@ -393,6 +402,13 @@ func (x *ListPurchasedPhoneNumbersRequest) GetLimit() int32 { return 0 } +func (x *ListPurchasedPhoneNumbersRequest) GetStatus() PhoneNumberStatus { + if x != nil { + return x.Status + } + return PhoneNumberStatus_PHONE_NUMBER_STATUS_UNSPECIFIED +} + func (x *ListPurchasedPhoneNumbersRequest) GetPageToken() *TokenPagination { if x != nil { return x.PageToken @@ -400,6 +416,13 @@ func (x *ListPurchasedPhoneNumbersRequest) GetPageToken() *TokenPagination { return nil } +func (x *ListPurchasedPhoneNumbersRequest) GetSipDispatchRuleId() string { + if x != nil { + return x.SipDispatchRuleId + } + return "" +} + // ListPurchasedPhoneNumbersResponse - Response containing purchased phone numbers type ListPurchasedPhoneNumbersResponse struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -461,28 +484,29 @@ func (x *ListPurchasedPhoneNumbersResponse) GetTotalCount() int32 { return 0 } -// ReleasePhoneNumberRequest - Request to release purchased phone numbers -type ReleasePhoneNumberRequest struct { - state protoimpl.MessageState `protogen:"open.v1"` - PhoneNumbers []string `protobuf:"bytes,1,rep,name=phone_numbers,json=phoneNumbers,proto3" json:"phone_numbers,omitempty"` // Phone numbers to release (e.g., ["+1234567890", "+1234567891"]) - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache +// GetPurchasedPhoneNumberRequest - Request to get a purchased phone number +type GetPurchasedPhoneNumberRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + PurchasedPhoneNumberId string `protobuf:"bytes,1,opt,name=purchased_phone_number_id,json=purchasedPhoneNumberId,proto3" json:"purchased_phone_number_id,omitempty"` // Optional: Use purchased phone number ID for direct lookup + PhoneNumber string `protobuf:"bytes,2,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` // Optional: Use phone number string for lookup + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } -func (x *ReleasePhoneNumberRequest) Reset() { - *x = ReleasePhoneNumberRequest{} +func (x *GetPurchasedPhoneNumberRequest) Reset() { + *x = GetPurchasedPhoneNumberRequest{} mi := &file_livekit_phone_number_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *ReleasePhoneNumberRequest) String() string { +func (x *GetPurchasedPhoneNumberRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ReleasePhoneNumberRequest) ProtoMessage() {} +func (*GetPurchasedPhoneNumberRequest) ProtoMessage() {} -func (x *ReleasePhoneNumberRequest) ProtoReflect() protoreflect.Message { +func (x *GetPurchasedPhoneNumberRequest) ProtoReflect() protoreflect.Message { mi := &file_livekit_phone_number_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -494,18 +518,266 @@ func (x *ReleasePhoneNumberRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ReleasePhoneNumberRequest.ProtoReflect.Descriptor instead. -func (*ReleasePhoneNumberRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetPurchasedPhoneNumberRequest.ProtoReflect.Descriptor instead. +func (*GetPurchasedPhoneNumberRequest) Descriptor() ([]byte, []int) { return file_livekit_phone_number_proto_rawDescGZIP(), []int{6} } -func (x *ReleasePhoneNumberRequest) GetPhoneNumbers() []string { +func (x *GetPurchasedPhoneNumberRequest) GetPurchasedPhoneNumberId() string { + if x != nil { + return x.PurchasedPhoneNumberId + } + return "" +} + +func (x *GetPurchasedPhoneNumberRequest) GetPhoneNumber() string { + if x != nil { + return x.PhoneNumber + } + return "" +} + +// GetPurchasedPhoneNumberResponse - Response containing the purchased phone number +type GetPurchasedPhoneNumberResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + PhoneNumber *PurchasedPhoneNumber `protobuf:"bytes,1,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` // The purchased phone number details + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetPurchasedPhoneNumberResponse) Reset() { + *x = GetPurchasedPhoneNumberResponse{} + mi := &file_livekit_phone_number_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetPurchasedPhoneNumberResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPurchasedPhoneNumberResponse) ProtoMessage() {} + +func (x *GetPurchasedPhoneNumberResponse) ProtoReflect() protoreflect.Message { + mi := &file_livekit_phone_number_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetPurchasedPhoneNumberResponse.ProtoReflect.Descriptor instead. +func (*GetPurchasedPhoneNumberResponse) Descriptor() ([]byte, []int) { + return file_livekit_phone_number_proto_rawDescGZIP(), []int{7} +} + +func (x *GetPurchasedPhoneNumberResponse) GetPhoneNumber() *PurchasedPhoneNumber { + if x != nil { + return x.PhoneNumber + } + return nil +} + +// UpdatePurchasedPhoneNumberRequest - Request to update a purchased phone number +type UpdatePurchasedPhoneNumberRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + PurchasedPhoneNumberId string `protobuf:"bytes,1,opt,name=purchased_phone_number_id,json=purchasedPhoneNumberId,proto3" json:"purchased_phone_number_id,omitempty"` // Optional: Use purchased phone number ID for direct lookup + PhoneNumber string `protobuf:"bytes,2,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` // Optional: Use phone number string for lookup + SipDispatchRuleId string `protobuf:"bytes,3,opt,name=sip_dispatch_rule_id,json=sipDispatchRuleId,proto3" json:"sip_dispatch_rule_id,omitempty"` // Optional: SIP dispatch rule ID to assign to the phone number + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdatePurchasedPhoneNumberRequest) Reset() { + *x = UpdatePurchasedPhoneNumberRequest{} + mi := &file_livekit_phone_number_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdatePurchasedPhoneNumberRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdatePurchasedPhoneNumberRequest) ProtoMessage() {} + +func (x *UpdatePurchasedPhoneNumberRequest) ProtoReflect() protoreflect.Message { + mi := &file_livekit_phone_number_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdatePurchasedPhoneNumberRequest.ProtoReflect.Descriptor instead. +func (*UpdatePurchasedPhoneNumberRequest) Descriptor() ([]byte, []int) { + return file_livekit_phone_number_proto_rawDescGZIP(), []int{8} +} + +func (x *UpdatePurchasedPhoneNumberRequest) GetPurchasedPhoneNumberId() string { + if x != nil { + return x.PurchasedPhoneNumberId + } + return "" +} + +func (x *UpdatePurchasedPhoneNumberRequest) GetPhoneNumber() string { + if x != nil { + return x.PhoneNumber + } + return "" +} + +func (x *UpdatePurchasedPhoneNumberRequest) GetSipDispatchRuleId() string { + if x != nil { + return x.SipDispatchRuleId + } + return "" +} + +// UpdatePurchasedPhoneNumberResponse - Response containing the updated purchased phone number +type UpdatePurchasedPhoneNumberResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + PhoneNumber *PurchasedPhoneNumber `protobuf:"bytes,1,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` // The updated purchased phone number details + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UpdatePurchasedPhoneNumberResponse) Reset() { + *x = UpdatePurchasedPhoneNumberResponse{} + mi := &file_livekit_phone_number_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UpdatePurchasedPhoneNumberResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdatePurchasedPhoneNumberResponse) ProtoMessage() {} + +func (x *UpdatePurchasedPhoneNumberResponse) ProtoReflect() protoreflect.Message { + mi := &file_livekit_phone_number_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdatePurchasedPhoneNumberResponse.ProtoReflect.Descriptor instead. +func (*UpdatePurchasedPhoneNumberResponse) Descriptor() ([]byte, []int) { + return file_livekit_phone_number_proto_rawDescGZIP(), []int{9} +} + +func (x *UpdatePurchasedPhoneNumberResponse) GetPhoneNumber() *PurchasedPhoneNumber { + if x != nil { + return x.PhoneNumber + } + return nil +} + +// ReleasePurchasedPhoneNumbersRequest - Request to release purchased phone numbers +type ReleasePurchasedPhoneNumbersRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + PurchasedPhoneNumberIds []string `protobuf:"bytes,1,rep,name=purchased_phone_number_ids,json=purchasedPhoneNumberIds,proto3" json:"purchased_phone_number_ids,omitempty"` // Optional: Use purchased phone number IDs for direct lookup + PhoneNumbers []string `protobuf:"bytes,2,rep,name=phone_numbers,json=phoneNumbers,proto3" json:"phone_numbers,omitempty"` // Optional: Use phone number strings for lookup + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReleasePurchasedPhoneNumbersRequest) Reset() { + *x = ReleasePurchasedPhoneNumbersRequest{} + mi := &file_livekit_phone_number_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReleasePurchasedPhoneNumbersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReleasePurchasedPhoneNumbersRequest) ProtoMessage() {} + +func (x *ReleasePurchasedPhoneNumbersRequest) ProtoReflect() protoreflect.Message { + mi := &file_livekit_phone_number_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReleasePurchasedPhoneNumbersRequest.ProtoReflect.Descriptor instead. +func (*ReleasePurchasedPhoneNumbersRequest) Descriptor() ([]byte, []int) { + return file_livekit_phone_number_proto_rawDescGZIP(), []int{10} +} + +func (x *ReleasePurchasedPhoneNumbersRequest) GetPurchasedPhoneNumberIds() []string { + if x != nil { + return x.PurchasedPhoneNumberIds + } + return nil +} + +func (x *ReleasePurchasedPhoneNumbersRequest) GetPhoneNumbers() []string { if x != nil { return x.PhoneNumbers } return nil } +// ReleasePurchasedPhoneNumbersResponse - Response for releasing purchased phone numbers +type ReleasePurchasedPhoneNumbersResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReleasePurchasedPhoneNumbersResponse) Reset() { + *x = ReleasePurchasedPhoneNumbersResponse{} + mi := &file_livekit_phone_number_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReleasePurchasedPhoneNumbersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReleasePurchasedPhoneNumbersResponse) ProtoMessage() {} + +func (x *ReleasePurchasedPhoneNumbersResponse) ProtoReflect() protoreflect.Message { + mi := &file_livekit_phone_number_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReleasePurchasedPhoneNumbersResponse.ProtoReflect.Descriptor instead. +func (*ReleasePurchasedPhoneNumbersResponse) Descriptor() ([]byte, []int) { + return file_livekit_phone_number_proto_rawDescGZIP(), []int{11} +} + // GlobalPhoneNumber represents a phone number with standardized format type GlobalPhoneNumber struct { state protoimpl.MessageState `protogen:"open.v1"` @@ -525,7 +797,7 @@ type GlobalPhoneNumber struct { func (x *GlobalPhoneNumber) Reset() { *x = GlobalPhoneNumber{} - mi := &file_livekit_phone_number_proto_msgTypes[7] + mi := &file_livekit_phone_number_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -537,7 +809,7 @@ func (x *GlobalPhoneNumber) String() string { func (*GlobalPhoneNumber) ProtoMessage() {} func (x *GlobalPhoneNumber) ProtoReflect() protoreflect.Message { - mi := &file_livekit_phone_number_proto_msgTypes[7] + mi := &file_livekit_phone_number_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -550,7 +822,7 @@ func (x *GlobalPhoneNumber) ProtoReflect() protoreflect.Message { // Deprecated: Use GlobalPhoneNumber.ProtoReflect.Descriptor instead. func (*GlobalPhoneNumber) Descriptor() ([]byte, []int) { - return file_livekit_phone_number_proto_rawDescGZIP(), []int{7} + return file_livekit_phone_number_proto_rawDescGZIP(), []int{12} } func (x *GlobalPhoneNumber) GetId() string { @@ -636,7 +908,7 @@ type TelephonyCost struct { func (x *TelephonyCost) Reset() { *x = TelephonyCost{} - mi := &file_livekit_phone_number_proto_msgTypes[8] + mi := &file_livekit_phone_number_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -648,7 +920,7 @@ func (x *TelephonyCost) String() string { func (*TelephonyCost) ProtoMessage() {} func (x *TelephonyCost) ProtoReflect() protoreflect.Message { - mi := &file_livekit_phone_number_proto_msgTypes[8] + mi := &file_livekit_phone_number_proto_msgTypes[13] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -661,7 +933,7 @@ func (x *TelephonyCost) ProtoReflect() protoreflect.Message { // Deprecated: Use TelephonyCost.ProtoReflect.Descriptor instead. func (*TelephonyCost) Descriptor() ([]byte, []int) { - return file_livekit_phone_number_proto_rawDescGZIP(), []int{8} + return file_livekit_phone_number_proto_rawDescGZIP(), []int{13} } func (x *TelephonyCost) GetResource() TelephonyCostType { @@ -704,7 +976,7 @@ type PhoneNumberInventoryItem struct { func (x *PhoneNumberInventoryItem) Reset() { *x = PhoneNumberInventoryItem{} - mi := &file_livekit_phone_number_proto_msgTypes[9] + mi := &file_livekit_phone_number_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -716,7 +988,7 @@ func (x *PhoneNumberInventoryItem) String() string { func (*PhoneNumberInventoryItem) ProtoMessage() {} func (x *PhoneNumberInventoryItem) ProtoReflect() protoreflect.Message { - mi := &file_livekit_phone_number_proto_msgTypes[9] + mi := &file_livekit_phone_number_proto_msgTypes[14] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -729,7 +1001,7 @@ func (x *PhoneNumberInventoryItem) ProtoReflect() protoreflect.Message { // Deprecated: Use PhoneNumberInventoryItem.ProtoReflect.Descriptor instead. func (*PhoneNumberInventoryItem) Descriptor() ([]byte, []int) { - return file_livekit_phone_number_proto_rawDescGZIP(), []int{9} + return file_livekit_phone_number_proto_rawDescGZIP(), []int{14} } func (x *PhoneNumberInventoryItem) GetPhoneNumber() *GlobalPhoneNumber { @@ -755,19 +1027,20 @@ func (x *PhoneNumberInventoryItem) GetCosts() []*TelephonyCost { // PurchasedPhoneNumber - Represents a phone number owned by a LiveKit project type PurchasedPhoneNumber struct { - state protoimpl.MessageState `protogen:"open.v1"` - PhoneNumber *GlobalPhoneNumber `protobuf:"bytes,1,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` // Common phone number fields - Status PhoneNumberStatus `protobuf:"varint,2,opt,name=status,proto3,enum=livekit.PhoneNumberStatus" json:"status,omitempty"` // Current status of the phone number - AssignedAt *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=assigned_at,json=assignedAt,proto3" json:"assigned_at,omitempty"` // Timestamp when the number was assigned - ReleasedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=released_at,json=releasedAt,proto3" json:"released_at,omitempty"` // Timestamp when the number was released (if applicable) - SipDispatchRule *SIPDispatchRuleInfo `protobuf:"bytes,5,opt,name=sip_dispatch_rule,json=sipDispatchRule,proto3" json:"sip_dispatch_rule,omitempty"` // Optional: Associated SIP dispatch rule - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + PurchasedPhoneNumberId string `protobuf:"bytes,1,opt,name=purchased_phone_number_id,json=purchasedPhoneNumberId,proto3" json:"purchased_phone_number_id,omitempty"` // Unique identifier for the purchased phone number + PhoneNumber *GlobalPhoneNumber `protobuf:"bytes,2,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"` // Common phone number fields + Status PhoneNumberStatus `protobuf:"varint,3,opt,name=status,proto3,enum=livekit.PhoneNumberStatus" json:"status,omitempty"` // Current status of the phone number + AssignedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=assigned_at,json=assignedAt,proto3" json:"assigned_at,omitempty"` // Timestamp when the number was assigned + ReleasedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=released_at,json=releasedAt,proto3" json:"released_at,omitempty"` // Timestamp when the number was released (if applicable) + SipDispatchRule *SIPDispatchRuleInfo `protobuf:"bytes,6,opt,name=sip_dispatch_rule,json=sipDispatchRule,proto3" json:"sip_dispatch_rule,omitempty"` // Optional: Associated SIP dispatch rule + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *PurchasedPhoneNumber) Reset() { *x = PurchasedPhoneNumber{} - mi := &file_livekit_phone_number_proto_msgTypes[10] + mi := &file_livekit_phone_number_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -779,7 +1052,7 @@ func (x *PurchasedPhoneNumber) String() string { func (*PurchasedPhoneNumber) ProtoMessage() {} func (x *PurchasedPhoneNumber) ProtoReflect() protoreflect.Message { - mi := &file_livekit_phone_number_proto_msgTypes[10] + mi := &file_livekit_phone_number_proto_msgTypes[15] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -792,7 +1065,14 @@ func (x *PurchasedPhoneNumber) ProtoReflect() protoreflect.Message { // Deprecated: Use PurchasedPhoneNumber.ProtoReflect.Descriptor instead. func (*PurchasedPhoneNumber) Descriptor() ([]byte, []int) { - return file_livekit_phone_number_proto_rawDescGZIP(), []int{10} + return file_livekit_phone_number_proto_rawDescGZIP(), []int{15} +} + +func (x *PurchasedPhoneNumber) GetPurchasedPhoneNumberId() string { + if x != nil { + return x.PurchasedPhoneNumberId + } + return "" } func (x *PurchasedPhoneNumber) GetPhoneNumber() *GlobalPhoneNumber { @@ -834,7 +1114,7 @@ var File_livekit_phone_number_proto protoreflect.FileDescriptor const file_livekit_phone_number_proto_rawDesc = "" + "\n" + - "\x1alivekit_phone_number.proto\x12\alivekit\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x14livekit_models.proto\x1a\x11livekit_sip.proto\"\xb0\x01\n" + + "\x1alivekit_phone_number.proto\x12\alivekit\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x14livekit_models.proto\x1a\x11livekit_sip.proto\"\xb0\x01\n" + "\x1fListPhoneNumberInventoryRequest\x12!\n" + "\fcountry_code\x18\x01 \x01(\tR\vcountryCode\x12\x1b\n" + "\tarea_code\x18\x02 \x01(\tR\bareaCode\x12\x14\n" + @@ -843,22 +1123,38 @@ const file_livekit_phone_number_proto_rawDesc = "" + "page_token\x18\x04 \x01(\v2\x18.livekit.TokenPaginationR\tpageToken\"\x9d\x01\n" + " ListPhoneNumberInventoryResponse\x127\n" + "\x05items\x18\x01 \x03(\v2!.livekit.PhoneNumberInventoryItemR\x05items\x12@\n" + - "\x0fnext_page_token\x18\x02 \x01(\v2\x18.livekit.TokenPaginationR\rnextPageToken\"A\n" + + "\x0fnext_page_token\x18\x02 \x01(\v2\x18.livekit.TokenPaginationR\rnextPageToken\"r\n" + "\x1aPurchasePhoneNumberRequest\x12#\n" + - "\rphone_numbers\x18\x01 \x03(\tR\fphoneNumbers\"a\n" + + "\rphone_numbers\x18\x01 \x03(\tR\fphoneNumbers\x12/\n" + + "\x14sip_dispatch_rule_id\x18\x02 \x01(\tR\x11sipDispatchRuleId\"a\n" + "\x1bPurchasePhoneNumberResponse\x12B\n" + - "\rphone_numbers\x18\x01 \x03(\v2\x1d.livekit.PurchasedPhoneNumberR\fphoneNumbers\"q\n" + + "\rphone_numbers\x18\x01 \x03(\v2\x1d.livekit.PurchasedPhoneNumberR\fphoneNumbers\"\xd6\x01\n" + " ListPurchasedPhoneNumbersRequest\x12\x14\n" + - "\x05limit\x18\x01 \x01(\x05R\x05limit\x127\n" + + "\x05limit\x18\x01 \x01(\x05R\x05limit\x122\n" + + "\x06status\x18\x02 \x01(\x0e2\x1a.livekit.PhoneNumberStatusR\x06status\x127\n" + "\n" + - "page_token\x18\x02 \x01(\v2\x18.livekit.TokenPaginationR\tpageToken\"\xbb\x01\n" + + "page_token\x18\x03 \x01(\v2\x18.livekit.TokenPaginationR\tpageToken\x12/\n" + + "\x14sip_dispatch_rule_id\x18\x04 \x01(\tR\x11sipDispatchRuleId\"\xbb\x01\n" + "!ListPurchasedPhoneNumbersResponse\x123\n" + "\x05items\x18\x01 \x03(\v2\x1d.livekit.PurchasedPhoneNumberR\x05items\x12@\n" + "\x0fnext_page_token\x18\x02 \x01(\v2\x18.livekit.TokenPaginationR\rnextPageToken\x12\x1f\n" + "\vtotal_count\x18\x03 \x01(\x05R\n" + - "totalCount\"@\n" + - "\x19ReleasePhoneNumberRequest\x12#\n" + - "\rphone_numbers\x18\x01 \x03(\tR\fphoneNumbers\"\xee\x02\n" + + "totalCount\"~\n" + + "\x1eGetPurchasedPhoneNumberRequest\x129\n" + + "\x19purchased_phone_number_id\x18\x01 \x01(\tR\x16purchasedPhoneNumberId\x12!\n" + + "\fphone_number\x18\x02 \x01(\tR\vphoneNumber\"c\n" + + "\x1fGetPurchasedPhoneNumberResponse\x12@\n" + + "\fphone_number\x18\x01 \x01(\v2\x1d.livekit.PurchasedPhoneNumberR\vphoneNumber\"\xb2\x01\n" + + "!UpdatePurchasedPhoneNumberRequest\x129\n" + + "\x19purchased_phone_number_id\x18\x01 \x01(\tR\x16purchasedPhoneNumberId\x12!\n" + + "\fphone_number\x18\x02 \x01(\tR\vphoneNumber\x12/\n" + + "\x14sip_dispatch_rule_id\x18\x03 \x01(\tR\x11sipDispatchRuleId\"f\n" + + "\"UpdatePurchasedPhoneNumberResponse\x12@\n" + + "\fphone_number\x18\x01 \x01(\v2\x1d.livekit.PurchasedPhoneNumberR\vphoneNumber\"\x87\x01\n" + + "#ReleasePurchasedPhoneNumbersRequest\x12;\n" + + "\x1apurchased_phone_number_ids\x18\x01 \x03(\tR\x17purchasedPhoneNumberIds\x12#\n" + + "\rphone_numbers\x18\x02 \x03(\tR\fphoneNumbers\"&\n" + + "$ReleasePurchasedPhoneNumbersResponse\"\xee\x02\n" + "\x11GlobalPhoneNumber\x12\x0e\n" + "\x02id\x18\x01 \x01(\tR\x02id\x12\x1f\n" + "\ve164_format\x18\x02 \x01(\tR\n" + @@ -884,15 +1180,16 @@ const file_livekit_phone_number_proto_rawDesc = "" + "\x18PhoneNumberInventoryItem\x12=\n" + "\fphone_number\x18\x01 \x01(\v2\x1a.livekit.GlobalPhoneNumberR\vphoneNumber\x12\"\n" + "\fcapabilities\x18\x02 \x03(\tR\fcapabilities\x12,\n" + - "\x05costs\x18\x03 \x03(\v2\x16.livekit.TelephonyCostR\x05costs\"\xcd\x02\n" + - "\x14PurchasedPhoneNumber\x12=\n" + - "\fphone_number\x18\x01 \x01(\v2\x1a.livekit.GlobalPhoneNumberR\vphoneNumber\x122\n" + - "\x06status\x18\x02 \x01(\x0e2\x1a.livekit.PhoneNumberStatusR\x06status\x12;\n" + - "\vassigned_at\x18\x03 \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "\x05costs\x18\x03 \x03(\v2\x16.livekit.TelephonyCostR\x05costs\"\x88\x03\n" + + "\x14PurchasedPhoneNumber\x129\n" + + "\x19purchased_phone_number_id\x18\x01 \x01(\tR\x16purchasedPhoneNumberId\x12=\n" + + "\fphone_number\x18\x02 \x01(\v2\x1a.livekit.GlobalPhoneNumberR\vphoneNumber\x122\n" + + "\x06status\x18\x03 \x01(\x0e2\x1a.livekit.PhoneNumberStatusR\x06status\x12;\n" + + "\vassigned_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\n" + "assignedAt\x12;\n" + - "\vreleased_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "\vreleased_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\n" + "releasedAt\x12H\n" + - "\x11sip_dispatch_rule\x18\x05 \x01(\v2\x1c.livekit.SIPDispatchRuleInfoR\x0fsipDispatchRule*\xf9\x01\n" + + "\x11sip_dispatch_rule\x18\x06 \x01(\v2\x1c.livekit.SIPDispatchRuleInfoR\x0fsipDispatchRule*\xf9\x01\n" + "\x11TelephonyCostType\x12#\n" + "\x1fTELEPHONY_COST_TYPE_UNSPECIFIED\x10\x00\x12%\n" + "!TELEPHONY_COST_TYPE_NUMBER_RENTAL\x10\x01\x12%\n" + @@ -904,12 +1201,14 @@ const file_livekit_phone_number_proto_rawDesc = "" + "\x1fPHONE_NUMBER_STATUS_UNSPECIFIED\x10\x00\x12\x1e\n" + "\x1aPHONE_NUMBER_STATUS_ACTIVE\x10\x01\x12\x1f\n" + "\x1bPHONE_NUMBER_STATUS_PENDING\x10\x02\x12 \n" + - "\x1cPHONE_NUMBER_STATUS_RELEASED\x10\x032\xb5\x03\n" + + "\x1cPHONE_NUMBER_STATUS_RELEASED\x10\x032\xc8\x05\n" + "\x12PhoneNumberService\x12q\n" + "\x18ListPhoneNumberInventory\x12(.livekit.ListPhoneNumberInventoryRequest\x1a).livekit.ListPhoneNumberInventoryResponse\"\x00\x12b\n" + "\x13PurchasePhoneNumber\x12#.livekit.PurchasePhoneNumberRequest\x1a$.livekit.PurchasePhoneNumberResponse\"\x00\x12t\n" + - "\x19ListPurchasedPhoneNumbers\x12).livekit.ListPurchasedPhoneNumbersRequest\x1a*.livekit.ListPurchasedPhoneNumbersResponse\"\x00\x12R\n" + - "\x12ReleasePhoneNumber\x12\".livekit.ReleasePhoneNumberRequest\x1a\x16.google.protobuf.Empty\"\x00B%Z#github.com/livekit/protocol/livekitb\x06proto3" + "\x19ListPurchasedPhoneNumbers\x12).livekit.ListPurchasedPhoneNumbersRequest\x1a*.livekit.ListPurchasedPhoneNumbersResponse\"\x00\x12n\n" + + "\x17GetPurchasedPhoneNumber\x12'.livekit.GetPurchasedPhoneNumberRequest\x1a(.livekit.GetPurchasedPhoneNumberResponse\"\x00\x12w\n" + + "\x1aUpdatePurchasedPhoneNumber\x12*.livekit.UpdatePurchasedPhoneNumberRequest\x1a+.livekit.UpdatePurchasedPhoneNumberResponse\"\x00\x12|\n" + + "\x1bReleasePurchasedPhoneNumber\x12,.livekit.ReleasePurchasedPhoneNumbersRequest\x1a-.livekit.ReleasePurchasedPhoneNumbersResponse\"\x00B%Z#github.com/livekit/protocol/livekitb\x06proto3" var ( file_livekit_phone_number_proto_rawDescOnce sync.Once @@ -924,57 +1223,68 @@ func file_livekit_phone_number_proto_rawDescGZIP() []byte { } var file_livekit_phone_number_proto_enumTypes = make([]protoimpl.EnumInfo, 2) -var file_livekit_phone_number_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_livekit_phone_number_proto_msgTypes = make([]protoimpl.MessageInfo, 16) var file_livekit_phone_number_proto_goTypes = []any{ - (TelephonyCostType)(0), // 0: livekit.TelephonyCostType - (PhoneNumberStatus)(0), // 1: livekit.PhoneNumberStatus - (*ListPhoneNumberInventoryRequest)(nil), // 2: livekit.ListPhoneNumberInventoryRequest - (*ListPhoneNumberInventoryResponse)(nil), // 3: livekit.ListPhoneNumberInventoryResponse - (*PurchasePhoneNumberRequest)(nil), // 4: livekit.PurchasePhoneNumberRequest - (*PurchasePhoneNumberResponse)(nil), // 5: livekit.PurchasePhoneNumberResponse - (*ListPurchasedPhoneNumbersRequest)(nil), // 6: livekit.ListPurchasedPhoneNumbersRequest - (*ListPurchasedPhoneNumbersResponse)(nil), // 7: livekit.ListPurchasedPhoneNumbersResponse - (*ReleasePhoneNumberRequest)(nil), // 8: livekit.ReleasePhoneNumberRequest - (*GlobalPhoneNumber)(nil), // 9: livekit.GlobalPhoneNumber - (*TelephonyCost)(nil), // 10: livekit.TelephonyCost - (*PhoneNumberInventoryItem)(nil), // 11: livekit.PhoneNumberInventoryItem - (*PurchasedPhoneNumber)(nil), // 12: livekit.PurchasedPhoneNumber - (*TokenPagination)(nil), // 13: livekit.TokenPagination - (*timestamppb.Timestamp)(nil), // 14: google.protobuf.Timestamp - (*SIPDispatchRuleInfo)(nil), // 15: livekit.SIPDispatchRuleInfo - (*emptypb.Empty)(nil), // 16: google.protobuf.Empty + (TelephonyCostType)(0), // 0: livekit.TelephonyCostType + (PhoneNumberStatus)(0), // 1: livekit.PhoneNumberStatus + (*ListPhoneNumberInventoryRequest)(nil), // 2: livekit.ListPhoneNumberInventoryRequest + (*ListPhoneNumberInventoryResponse)(nil), // 3: livekit.ListPhoneNumberInventoryResponse + (*PurchasePhoneNumberRequest)(nil), // 4: livekit.PurchasePhoneNumberRequest + (*PurchasePhoneNumberResponse)(nil), // 5: livekit.PurchasePhoneNumberResponse + (*ListPurchasedPhoneNumbersRequest)(nil), // 6: livekit.ListPurchasedPhoneNumbersRequest + (*ListPurchasedPhoneNumbersResponse)(nil), // 7: livekit.ListPurchasedPhoneNumbersResponse + (*GetPurchasedPhoneNumberRequest)(nil), // 8: livekit.GetPurchasedPhoneNumberRequest + (*GetPurchasedPhoneNumberResponse)(nil), // 9: livekit.GetPurchasedPhoneNumberResponse + (*UpdatePurchasedPhoneNumberRequest)(nil), // 10: livekit.UpdatePurchasedPhoneNumberRequest + (*UpdatePurchasedPhoneNumberResponse)(nil), // 11: livekit.UpdatePurchasedPhoneNumberResponse + (*ReleasePurchasedPhoneNumbersRequest)(nil), // 12: livekit.ReleasePurchasedPhoneNumbersRequest + (*ReleasePurchasedPhoneNumbersResponse)(nil), // 13: livekit.ReleasePurchasedPhoneNumbersResponse + (*GlobalPhoneNumber)(nil), // 14: livekit.GlobalPhoneNumber + (*TelephonyCost)(nil), // 15: livekit.TelephonyCost + (*PhoneNumberInventoryItem)(nil), // 16: livekit.PhoneNumberInventoryItem + (*PurchasedPhoneNumber)(nil), // 17: livekit.PurchasedPhoneNumber + (*TokenPagination)(nil), // 18: livekit.TokenPagination + (*timestamppb.Timestamp)(nil), // 19: google.protobuf.Timestamp + (*SIPDispatchRuleInfo)(nil), // 20: livekit.SIPDispatchRuleInfo } var file_livekit_phone_number_proto_depIdxs = []int32{ - 13, // 0: livekit.ListPhoneNumberInventoryRequest.page_token:type_name -> livekit.TokenPagination - 11, // 1: livekit.ListPhoneNumberInventoryResponse.items:type_name -> livekit.PhoneNumberInventoryItem - 13, // 2: livekit.ListPhoneNumberInventoryResponse.next_page_token:type_name -> livekit.TokenPagination - 12, // 3: livekit.PurchasePhoneNumberResponse.phone_numbers:type_name -> livekit.PurchasedPhoneNumber - 13, // 4: livekit.ListPurchasedPhoneNumbersRequest.page_token:type_name -> livekit.TokenPagination - 12, // 5: livekit.ListPurchasedPhoneNumbersResponse.items:type_name -> livekit.PurchasedPhoneNumber - 13, // 6: livekit.ListPurchasedPhoneNumbersResponse.next_page_token:type_name -> livekit.TokenPagination - 14, // 7: livekit.GlobalPhoneNumber.created_at:type_name -> google.protobuf.Timestamp - 14, // 8: livekit.GlobalPhoneNumber.updated_at:type_name -> google.protobuf.Timestamp - 0, // 9: livekit.TelephonyCost.resource:type_name -> livekit.TelephonyCostType - 9, // 10: livekit.PhoneNumberInventoryItem.phone_number:type_name -> livekit.GlobalPhoneNumber - 10, // 11: livekit.PhoneNumberInventoryItem.costs:type_name -> livekit.TelephonyCost - 9, // 12: livekit.PurchasedPhoneNumber.phone_number:type_name -> livekit.GlobalPhoneNumber - 1, // 13: livekit.PurchasedPhoneNumber.status:type_name -> livekit.PhoneNumberStatus - 14, // 14: livekit.PurchasedPhoneNumber.assigned_at:type_name -> google.protobuf.Timestamp - 14, // 15: livekit.PurchasedPhoneNumber.released_at:type_name -> google.protobuf.Timestamp - 15, // 16: livekit.PurchasedPhoneNumber.sip_dispatch_rule:type_name -> livekit.SIPDispatchRuleInfo - 2, // 17: livekit.PhoneNumberService.ListPhoneNumberInventory:input_type -> livekit.ListPhoneNumberInventoryRequest - 4, // 18: livekit.PhoneNumberService.PurchasePhoneNumber:input_type -> livekit.PurchasePhoneNumberRequest - 6, // 19: livekit.PhoneNumberService.ListPurchasedPhoneNumbers:input_type -> livekit.ListPurchasedPhoneNumbersRequest - 8, // 20: livekit.PhoneNumberService.ReleasePhoneNumber:input_type -> livekit.ReleasePhoneNumberRequest - 3, // 21: livekit.PhoneNumberService.ListPhoneNumberInventory:output_type -> livekit.ListPhoneNumberInventoryResponse - 5, // 22: livekit.PhoneNumberService.PurchasePhoneNumber:output_type -> livekit.PurchasePhoneNumberResponse - 7, // 23: livekit.PhoneNumberService.ListPurchasedPhoneNumbers:output_type -> livekit.ListPurchasedPhoneNumbersResponse - 16, // 24: livekit.PhoneNumberService.ReleasePhoneNumber:output_type -> google.protobuf.Empty - 21, // [21:25] is the sub-list for method output_type - 17, // [17:21] is the sub-list for method input_type - 17, // [17:17] is the sub-list for extension type_name - 17, // [17:17] is the sub-list for extension extendee - 0, // [0:17] is the sub-list for field type_name + 18, // 0: livekit.ListPhoneNumberInventoryRequest.page_token:type_name -> livekit.TokenPagination + 16, // 1: livekit.ListPhoneNumberInventoryResponse.items:type_name -> livekit.PhoneNumberInventoryItem + 18, // 2: livekit.ListPhoneNumberInventoryResponse.next_page_token:type_name -> livekit.TokenPagination + 17, // 3: livekit.PurchasePhoneNumberResponse.phone_numbers:type_name -> livekit.PurchasedPhoneNumber + 1, // 4: livekit.ListPurchasedPhoneNumbersRequest.status:type_name -> livekit.PhoneNumberStatus + 18, // 5: livekit.ListPurchasedPhoneNumbersRequest.page_token:type_name -> livekit.TokenPagination + 17, // 6: livekit.ListPurchasedPhoneNumbersResponse.items:type_name -> livekit.PurchasedPhoneNumber + 18, // 7: livekit.ListPurchasedPhoneNumbersResponse.next_page_token:type_name -> livekit.TokenPagination + 17, // 8: livekit.GetPurchasedPhoneNumberResponse.phone_number:type_name -> livekit.PurchasedPhoneNumber + 17, // 9: livekit.UpdatePurchasedPhoneNumberResponse.phone_number:type_name -> livekit.PurchasedPhoneNumber + 19, // 10: livekit.GlobalPhoneNumber.created_at:type_name -> google.protobuf.Timestamp + 19, // 11: livekit.GlobalPhoneNumber.updated_at:type_name -> google.protobuf.Timestamp + 0, // 12: livekit.TelephonyCost.resource:type_name -> livekit.TelephonyCostType + 14, // 13: livekit.PhoneNumberInventoryItem.phone_number:type_name -> livekit.GlobalPhoneNumber + 15, // 14: livekit.PhoneNumberInventoryItem.costs:type_name -> livekit.TelephonyCost + 14, // 15: livekit.PurchasedPhoneNumber.phone_number:type_name -> livekit.GlobalPhoneNumber + 1, // 16: livekit.PurchasedPhoneNumber.status:type_name -> livekit.PhoneNumberStatus + 19, // 17: livekit.PurchasedPhoneNumber.assigned_at:type_name -> google.protobuf.Timestamp + 19, // 18: livekit.PurchasedPhoneNumber.released_at:type_name -> google.protobuf.Timestamp + 20, // 19: livekit.PurchasedPhoneNumber.sip_dispatch_rule:type_name -> livekit.SIPDispatchRuleInfo + 2, // 20: livekit.PhoneNumberService.ListPhoneNumberInventory:input_type -> livekit.ListPhoneNumberInventoryRequest + 4, // 21: livekit.PhoneNumberService.PurchasePhoneNumber:input_type -> livekit.PurchasePhoneNumberRequest + 6, // 22: livekit.PhoneNumberService.ListPurchasedPhoneNumbers:input_type -> livekit.ListPurchasedPhoneNumbersRequest + 8, // 23: livekit.PhoneNumberService.GetPurchasedPhoneNumber:input_type -> livekit.GetPurchasedPhoneNumberRequest + 10, // 24: livekit.PhoneNumberService.UpdatePurchasedPhoneNumber:input_type -> livekit.UpdatePurchasedPhoneNumberRequest + 12, // 25: livekit.PhoneNumberService.ReleasePurchasedPhoneNumber:input_type -> livekit.ReleasePurchasedPhoneNumbersRequest + 3, // 26: livekit.PhoneNumberService.ListPhoneNumberInventory:output_type -> livekit.ListPhoneNumberInventoryResponse + 5, // 27: livekit.PhoneNumberService.PurchasePhoneNumber:output_type -> livekit.PurchasePhoneNumberResponse + 7, // 28: livekit.PhoneNumberService.ListPurchasedPhoneNumbers:output_type -> livekit.ListPurchasedPhoneNumbersResponse + 9, // 29: livekit.PhoneNumberService.GetPurchasedPhoneNumber:output_type -> livekit.GetPurchasedPhoneNumberResponse + 11, // 30: livekit.PhoneNumberService.UpdatePurchasedPhoneNumber:output_type -> livekit.UpdatePurchasedPhoneNumberResponse + 13, // 31: livekit.PhoneNumberService.ReleasePurchasedPhoneNumber:output_type -> livekit.ReleasePurchasedPhoneNumbersResponse + 26, // [26:32] is the sub-list for method output_type + 20, // [20:26] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name } func init() { file_livekit_phone_number_proto_init() } @@ -990,7 +1300,7 @@ func file_livekit_phone_number_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_livekit_phone_number_proto_rawDesc), len(file_livekit_phone_number_proto_rawDesc)), NumEnums: 2, - NumMessages: 11, + NumMessages: 16, NumExtensions: 0, NumServices: 1, }, diff --git a/livekit/livekit_phone_number.twirp.go b/livekit/livekit_phone_number.twirp.go index 550f68e34..0f9852640 100644 --- a/livekit/livekit_phone_number.twirp.go +++ b/livekit/livekit_phone_number.twirp.go @@ -16,8 +16,6 @@ import proto "google.golang.org/protobuf/proto" import twirp "github.com/twitchtv/twirp" import ctxsetters "github.com/twitchtv/twirp/ctxsetters" -import google_protobuf2 "google.golang.org/protobuf/types/known/emptypb" - // Version compatibility assertion. // If the constant is not defined in the package, that likely means // the package needs to be updated to work with this generated code. @@ -39,8 +37,14 @@ type PhoneNumberService interface { // List purchased phone numbers for a project ListPurchasedPhoneNumbers(context.Context, *ListPurchasedPhoneNumbersRequest) (*ListPurchasedPhoneNumbersResponse, error) + // Get a purchased phone number + GetPurchasedPhoneNumber(context.Context, *GetPurchasedPhoneNumberRequest) (*GetPurchasedPhoneNumberResponse, error) + + // Update a purchased phone number + UpdatePurchasedPhoneNumber(context.Context, *UpdatePurchasedPhoneNumberRequest) (*UpdatePurchasedPhoneNumberResponse, error) + // Release a purchased phone number - ReleasePhoneNumber(context.Context, *ReleasePhoneNumberRequest) (*google_protobuf2.Empty, error) + ReleasePurchasedPhoneNumber(context.Context, *ReleasePurchasedPhoneNumbersRequest) (*ReleasePurchasedPhoneNumbersResponse, error) } // ================================== @@ -49,7 +53,7 @@ type PhoneNumberService interface { type phoneNumberServiceProtobufClient struct { client HTTPClient - urls [4]string + urls [6]string interceptor twirp.Interceptor opts twirp.ClientOptions } @@ -77,11 +81,13 @@ func NewPhoneNumberServiceProtobufClient(baseURL string, client HTTPClient, opts // Build method URLs: []/./ serviceURL := sanitizeBaseURL(baseURL) serviceURL += baseServicePath(pathPrefix, "livekit", "PhoneNumberService") - urls := [4]string{ + urls := [6]string{ serviceURL + "ListPhoneNumberInventory", serviceURL + "PurchasePhoneNumber", serviceURL + "ListPurchasedPhoneNumbers", - serviceURL + "ReleasePhoneNumber", + serviceURL + "GetPurchasedPhoneNumber", + serviceURL + "UpdatePurchasedPhoneNumber", + serviceURL + "ReleasePurchasedPhoneNumber", } return &phoneNumberServiceProtobufClient{ @@ -230,26 +236,26 @@ func (c *phoneNumberServiceProtobufClient) callListPurchasedPhoneNumbers(ctx con return out, nil } -func (c *phoneNumberServiceProtobufClient) ReleasePhoneNumber(ctx context.Context, in *ReleasePhoneNumberRequest) (*google_protobuf2.Empty, error) { +func (c *phoneNumberServiceProtobufClient) GetPurchasedPhoneNumber(ctx context.Context, in *GetPurchasedPhoneNumberRequest) (*GetPurchasedPhoneNumberResponse, error) { ctx = ctxsetters.WithPackageName(ctx, "livekit") ctx = ctxsetters.WithServiceName(ctx, "PhoneNumberService") - ctx = ctxsetters.WithMethodName(ctx, "ReleasePhoneNumber") - caller := c.callReleasePhoneNumber + ctx = ctxsetters.WithMethodName(ctx, "GetPurchasedPhoneNumber") + caller := c.callGetPurchasedPhoneNumber if c.interceptor != nil { - caller = func(ctx context.Context, req *ReleasePhoneNumberRequest) (*google_protobuf2.Empty, error) { + caller = func(ctx context.Context, req *GetPurchasedPhoneNumberRequest) (*GetPurchasedPhoneNumberResponse, error) { resp, err := c.interceptor( func(ctx context.Context, req interface{}) (interface{}, error) { - typedReq, ok := req.(*ReleasePhoneNumberRequest) + typedReq, ok := req.(*GetPurchasedPhoneNumberRequest) if !ok { - return nil, twirp.InternalError("failed type assertion req.(*ReleasePhoneNumberRequest) when calling interceptor") + return nil, twirp.InternalError("failed type assertion req.(*GetPurchasedPhoneNumberRequest) when calling interceptor") } - return c.callReleasePhoneNumber(ctx, typedReq) + return c.callGetPurchasedPhoneNumber(ctx, typedReq) }, )(ctx, req) if resp != nil { - typedResp, ok := resp.(*google_protobuf2.Empty) + typedResp, ok := resp.(*GetPurchasedPhoneNumberResponse) if !ok { - return nil, twirp.InternalError("failed type assertion resp.(*google_protobuf2.Empty) when calling interceptor") + return nil, twirp.InternalError("failed type assertion resp.(*GetPurchasedPhoneNumberResponse) when calling interceptor") } return typedResp, err } @@ -259,8 +265,8 @@ func (c *phoneNumberServiceProtobufClient) ReleasePhoneNumber(ctx context.Contex return caller(ctx, in) } -func (c *phoneNumberServiceProtobufClient) callReleasePhoneNumber(ctx context.Context, in *ReleasePhoneNumberRequest) (*google_protobuf2.Empty, error) { - out := new(google_protobuf2.Empty) +func (c *phoneNumberServiceProtobufClient) callGetPurchasedPhoneNumber(ctx context.Context, in *GetPurchasedPhoneNumberRequest) (*GetPurchasedPhoneNumberResponse, error) { + out := new(GetPurchasedPhoneNumberResponse) ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[3], in, out) if err != nil { twerr, ok := err.(twirp.Error) @@ -276,13 +282,105 @@ func (c *phoneNumberServiceProtobufClient) callReleasePhoneNumber(ctx context.Co return out, nil } +func (c *phoneNumberServiceProtobufClient) UpdatePurchasedPhoneNumber(ctx context.Context, in *UpdatePurchasedPhoneNumberRequest) (*UpdatePurchasedPhoneNumberResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "PhoneNumberService") + ctx = ctxsetters.WithMethodName(ctx, "UpdatePurchasedPhoneNumber") + caller := c.callUpdatePurchasedPhoneNumber + if c.interceptor != nil { + caller = func(ctx context.Context, req *UpdatePurchasedPhoneNumberRequest) (*UpdatePurchasedPhoneNumberResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*UpdatePurchasedPhoneNumberRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*UpdatePurchasedPhoneNumberRequest) when calling interceptor") + } + return c.callUpdatePurchasedPhoneNumber(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*UpdatePurchasedPhoneNumberResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*UpdatePurchasedPhoneNumberResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *phoneNumberServiceProtobufClient) callUpdatePurchasedPhoneNumber(ctx context.Context, in *UpdatePurchasedPhoneNumberRequest) (*UpdatePurchasedPhoneNumberResponse, error) { + out := new(UpdatePurchasedPhoneNumberResponse) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[4], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + +func (c *phoneNumberServiceProtobufClient) ReleasePurchasedPhoneNumber(ctx context.Context, in *ReleasePurchasedPhoneNumbersRequest) (*ReleasePurchasedPhoneNumbersResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "PhoneNumberService") + ctx = ctxsetters.WithMethodName(ctx, "ReleasePurchasedPhoneNumber") + caller := c.callReleasePurchasedPhoneNumber + if c.interceptor != nil { + caller = func(ctx context.Context, req *ReleasePurchasedPhoneNumbersRequest) (*ReleasePurchasedPhoneNumbersResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*ReleasePurchasedPhoneNumbersRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*ReleasePurchasedPhoneNumbersRequest) when calling interceptor") + } + return c.callReleasePurchasedPhoneNumber(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*ReleasePurchasedPhoneNumbersResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*ReleasePurchasedPhoneNumbersResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *phoneNumberServiceProtobufClient) callReleasePurchasedPhoneNumber(ctx context.Context, in *ReleasePurchasedPhoneNumbersRequest) (*ReleasePurchasedPhoneNumbersResponse, error) { + out := new(ReleasePurchasedPhoneNumbersResponse) + ctx, err := doProtobufRequest(ctx, c.client, c.opts.Hooks, c.urls[5], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + // ============================== // PhoneNumberService JSON Client // ============================== type phoneNumberServiceJSONClient struct { client HTTPClient - urls [4]string + urls [6]string interceptor twirp.Interceptor opts twirp.ClientOptions } @@ -310,11 +408,13 @@ func NewPhoneNumberServiceJSONClient(baseURL string, client HTTPClient, opts ... // Build method URLs: []/./ serviceURL := sanitizeBaseURL(baseURL) serviceURL += baseServicePath(pathPrefix, "livekit", "PhoneNumberService") - urls := [4]string{ + urls := [6]string{ serviceURL + "ListPhoneNumberInventory", serviceURL + "PurchasePhoneNumber", serviceURL + "ListPurchasedPhoneNumbers", - serviceURL + "ReleasePhoneNumber", + serviceURL + "GetPurchasedPhoneNumber", + serviceURL + "UpdatePurchasedPhoneNumber", + serviceURL + "ReleasePurchasedPhoneNumber", } return &phoneNumberServiceJSONClient{ @@ -463,26 +563,26 @@ func (c *phoneNumberServiceJSONClient) callListPurchasedPhoneNumbers(ctx context return out, nil } -func (c *phoneNumberServiceJSONClient) ReleasePhoneNumber(ctx context.Context, in *ReleasePhoneNumberRequest) (*google_protobuf2.Empty, error) { +func (c *phoneNumberServiceJSONClient) GetPurchasedPhoneNumber(ctx context.Context, in *GetPurchasedPhoneNumberRequest) (*GetPurchasedPhoneNumberResponse, error) { ctx = ctxsetters.WithPackageName(ctx, "livekit") ctx = ctxsetters.WithServiceName(ctx, "PhoneNumberService") - ctx = ctxsetters.WithMethodName(ctx, "ReleasePhoneNumber") - caller := c.callReleasePhoneNumber + ctx = ctxsetters.WithMethodName(ctx, "GetPurchasedPhoneNumber") + caller := c.callGetPurchasedPhoneNumber if c.interceptor != nil { - caller = func(ctx context.Context, req *ReleasePhoneNumberRequest) (*google_protobuf2.Empty, error) { + caller = func(ctx context.Context, req *GetPurchasedPhoneNumberRequest) (*GetPurchasedPhoneNumberResponse, error) { resp, err := c.interceptor( func(ctx context.Context, req interface{}) (interface{}, error) { - typedReq, ok := req.(*ReleasePhoneNumberRequest) + typedReq, ok := req.(*GetPurchasedPhoneNumberRequest) if !ok { - return nil, twirp.InternalError("failed type assertion req.(*ReleasePhoneNumberRequest) when calling interceptor") + return nil, twirp.InternalError("failed type assertion req.(*GetPurchasedPhoneNumberRequest) when calling interceptor") } - return c.callReleasePhoneNumber(ctx, typedReq) + return c.callGetPurchasedPhoneNumber(ctx, typedReq) }, )(ctx, req) if resp != nil { - typedResp, ok := resp.(*google_protobuf2.Empty) + typedResp, ok := resp.(*GetPurchasedPhoneNumberResponse) if !ok { - return nil, twirp.InternalError("failed type assertion resp.(*google_protobuf2.Empty) when calling interceptor") + return nil, twirp.InternalError("failed type assertion resp.(*GetPurchasedPhoneNumberResponse) when calling interceptor") } return typedResp, err } @@ -492,8 +592,8 @@ func (c *phoneNumberServiceJSONClient) ReleasePhoneNumber(ctx context.Context, i return caller(ctx, in) } -func (c *phoneNumberServiceJSONClient) callReleasePhoneNumber(ctx context.Context, in *ReleasePhoneNumberRequest) (*google_protobuf2.Empty, error) { - out := new(google_protobuf2.Empty) +func (c *phoneNumberServiceJSONClient) callGetPurchasedPhoneNumber(ctx context.Context, in *GetPurchasedPhoneNumberRequest) (*GetPurchasedPhoneNumberResponse, error) { + out := new(GetPurchasedPhoneNumberResponse) ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[3], in, out) if err != nil { twerr, ok := err.(twirp.Error) @@ -509,6 +609,98 @@ func (c *phoneNumberServiceJSONClient) callReleasePhoneNumber(ctx context.Contex return out, nil } +func (c *phoneNumberServiceJSONClient) UpdatePurchasedPhoneNumber(ctx context.Context, in *UpdatePurchasedPhoneNumberRequest) (*UpdatePurchasedPhoneNumberResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "PhoneNumberService") + ctx = ctxsetters.WithMethodName(ctx, "UpdatePurchasedPhoneNumber") + caller := c.callUpdatePurchasedPhoneNumber + if c.interceptor != nil { + caller = func(ctx context.Context, req *UpdatePurchasedPhoneNumberRequest) (*UpdatePurchasedPhoneNumberResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*UpdatePurchasedPhoneNumberRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*UpdatePurchasedPhoneNumberRequest) when calling interceptor") + } + return c.callUpdatePurchasedPhoneNumber(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*UpdatePurchasedPhoneNumberResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*UpdatePurchasedPhoneNumberResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *phoneNumberServiceJSONClient) callUpdatePurchasedPhoneNumber(ctx context.Context, in *UpdatePurchasedPhoneNumberRequest) (*UpdatePurchasedPhoneNumberResponse, error) { + out := new(UpdatePurchasedPhoneNumberResponse) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[4], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + +func (c *phoneNumberServiceJSONClient) ReleasePurchasedPhoneNumber(ctx context.Context, in *ReleasePurchasedPhoneNumbersRequest) (*ReleasePurchasedPhoneNumbersResponse, error) { + ctx = ctxsetters.WithPackageName(ctx, "livekit") + ctx = ctxsetters.WithServiceName(ctx, "PhoneNumberService") + ctx = ctxsetters.WithMethodName(ctx, "ReleasePurchasedPhoneNumber") + caller := c.callReleasePurchasedPhoneNumber + if c.interceptor != nil { + caller = func(ctx context.Context, req *ReleasePurchasedPhoneNumbersRequest) (*ReleasePurchasedPhoneNumbersResponse, error) { + resp, err := c.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*ReleasePurchasedPhoneNumbersRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*ReleasePurchasedPhoneNumbersRequest) when calling interceptor") + } + return c.callReleasePurchasedPhoneNumber(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*ReleasePurchasedPhoneNumbersResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*ReleasePurchasedPhoneNumbersResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + return caller(ctx, in) +} + +func (c *phoneNumberServiceJSONClient) callReleasePurchasedPhoneNumber(ctx context.Context, in *ReleasePurchasedPhoneNumbersRequest) (*ReleasePurchasedPhoneNumbersResponse, error) { + out := new(ReleasePurchasedPhoneNumbersResponse) + ctx, err := doJSONRequest(ctx, c.client, c.opts.Hooks, c.urls[5], in, out) + if err != nil { + twerr, ok := err.(twirp.Error) + if !ok { + twerr = twirp.InternalErrorWith(err) + } + callClientError(ctx, c.opts.Hooks, twerr) + return nil, err + } + + callClientResponseReceived(ctx, c.opts.Hooks) + + return out, nil +} + // ================================= // PhoneNumberService Server Handler // ================================= @@ -615,8 +807,14 @@ func (s *phoneNumberServiceServer) ServeHTTP(resp http.ResponseWriter, req *http case "ListPurchasedPhoneNumbers": s.serveListPurchasedPhoneNumbers(ctx, resp, req) return - case "ReleasePhoneNumber": - s.serveReleasePhoneNumber(ctx, resp, req) + case "GetPurchasedPhoneNumber": + s.serveGetPurchasedPhoneNumber(ctx, resp, req) + return + case "UpdatePurchasedPhoneNumber": + s.serveUpdatePurchasedPhoneNumber(ctx, resp, req) + return + case "ReleasePurchasedPhoneNumber": + s.serveReleasePurchasedPhoneNumber(ctx, resp, req) return default: msg := fmt.Sprintf("no handler for path %q", req.URL.Path) @@ -1165,7 +1363,367 @@ func (s *phoneNumberServiceServer) serveListPurchasedPhoneNumbersProtobuf(ctx co callResponseSent(ctx, s.hooks) } -func (s *phoneNumberServiceServer) serveReleasePhoneNumber(ctx context.Context, resp http.ResponseWriter, req *http.Request) { +func (s *phoneNumberServiceServer) serveGetPurchasedPhoneNumber(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + header := req.Header.Get("Content-Type") + i := strings.Index(header, ";") + if i == -1 { + i = len(header) + } + switch strings.TrimSpace(strings.ToLower(header[:i])) { + case "application/json": + s.serveGetPurchasedPhoneNumberJSON(ctx, resp, req) + case "application/protobuf": + s.serveGetPurchasedPhoneNumberProtobuf(ctx, resp, req) + default: + msg := fmt.Sprintf("unexpected Content-Type: %q", req.Header.Get("Content-Type")) + twerr := badRouteError(msg, req.Method, req.URL.Path) + s.writeError(ctx, resp, twerr) + } +} + +func (s *phoneNumberServiceServer) serveGetPurchasedPhoneNumberJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "GetPurchasedPhoneNumber") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + d := json.NewDecoder(req.Body) + rawReqBody := json.RawMessage{} + if err := d.Decode(&rawReqBody); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + reqContent := new(GetPurchasedPhoneNumberRequest) + unmarshaler := protojson.UnmarshalOptions{DiscardUnknown: true} + if err = unmarshaler.Unmarshal(rawReqBody, reqContent); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + + handler := s.PhoneNumberService.GetPurchasedPhoneNumber + if s.interceptor != nil { + handler = func(ctx context.Context, req *GetPurchasedPhoneNumberRequest) (*GetPurchasedPhoneNumberResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetPurchasedPhoneNumberRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetPurchasedPhoneNumberRequest) when calling interceptor") + } + return s.PhoneNumberService.GetPurchasedPhoneNumber(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetPurchasedPhoneNumberResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetPurchasedPhoneNumberResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *GetPurchasedPhoneNumberResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *GetPurchasedPhoneNumberResponse and nil error while calling GetPurchasedPhoneNumber. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + marshaler := &protojson.MarshalOptions{UseProtoNames: !s.jsonCamelCase, EmitUnpopulated: !s.jsonSkipDefaults} + respBytes, err := marshaler.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal json response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/json") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *phoneNumberServiceServer) serveGetPurchasedPhoneNumberProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "GetPurchasedPhoneNumber") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + buf, err := io.ReadAll(req.Body) + if err != nil { + s.handleRequestBodyError(ctx, resp, "failed to read request body", err) + return + } + reqContent := new(GetPurchasedPhoneNumberRequest) + if err = proto.Unmarshal(buf, reqContent); err != nil { + s.writeError(ctx, resp, malformedRequestError("the protobuf request could not be decoded")) + return + } + + handler := s.PhoneNumberService.GetPurchasedPhoneNumber + if s.interceptor != nil { + handler = func(ctx context.Context, req *GetPurchasedPhoneNumberRequest) (*GetPurchasedPhoneNumberResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*GetPurchasedPhoneNumberRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*GetPurchasedPhoneNumberRequest) when calling interceptor") + } + return s.PhoneNumberService.GetPurchasedPhoneNumber(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*GetPurchasedPhoneNumberResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*GetPurchasedPhoneNumberResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *GetPurchasedPhoneNumberResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *GetPurchasedPhoneNumberResponse and nil error while calling GetPurchasedPhoneNumber. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + respBytes, err := proto.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal proto response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/protobuf") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *phoneNumberServiceServer) serveUpdatePurchasedPhoneNumber(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + header := req.Header.Get("Content-Type") + i := strings.Index(header, ";") + if i == -1 { + i = len(header) + } + switch strings.TrimSpace(strings.ToLower(header[:i])) { + case "application/json": + s.serveUpdatePurchasedPhoneNumberJSON(ctx, resp, req) + case "application/protobuf": + s.serveUpdatePurchasedPhoneNumberProtobuf(ctx, resp, req) + default: + msg := fmt.Sprintf("unexpected Content-Type: %q", req.Header.Get("Content-Type")) + twerr := badRouteError(msg, req.Method, req.URL.Path) + s.writeError(ctx, resp, twerr) + } +} + +func (s *phoneNumberServiceServer) serveUpdatePurchasedPhoneNumberJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "UpdatePurchasedPhoneNumber") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + d := json.NewDecoder(req.Body) + rawReqBody := json.RawMessage{} + if err := d.Decode(&rawReqBody); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + reqContent := new(UpdatePurchasedPhoneNumberRequest) + unmarshaler := protojson.UnmarshalOptions{DiscardUnknown: true} + if err = unmarshaler.Unmarshal(rawReqBody, reqContent); err != nil { + s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) + return + } + + handler := s.PhoneNumberService.UpdatePurchasedPhoneNumber + if s.interceptor != nil { + handler = func(ctx context.Context, req *UpdatePurchasedPhoneNumberRequest) (*UpdatePurchasedPhoneNumberResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*UpdatePurchasedPhoneNumberRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*UpdatePurchasedPhoneNumberRequest) when calling interceptor") + } + return s.PhoneNumberService.UpdatePurchasedPhoneNumber(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*UpdatePurchasedPhoneNumberResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*UpdatePurchasedPhoneNumberResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *UpdatePurchasedPhoneNumberResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *UpdatePurchasedPhoneNumberResponse and nil error while calling UpdatePurchasedPhoneNumber. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + marshaler := &protojson.MarshalOptions{UseProtoNames: !s.jsonCamelCase, EmitUnpopulated: !s.jsonSkipDefaults} + respBytes, err := marshaler.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal json response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/json") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *phoneNumberServiceServer) serveUpdatePurchasedPhoneNumberProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) { + var err error + ctx = ctxsetters.WithMethodName(ctx, "UpdatePurchasedPhoneNumber") + ctx, err = callRequestRouted(ctx, s.hooks) + if err != nil { + s.writeError(ctx, resp, err) + return + } + + buf, err := io.ReadAll(req.Body) + if err != nil { + s.handleRequestBodyError(ctx, resp, "failed to read request body", err) + return + } + reqContent := new(UpdatePurchasedPhoneNumberRequest) + if err = proto.Unmarshal(buf, reqContent); err != nil { + s.writeError(ctx, resp, malformedRequestError("the protobuf request could not be decoded")) + return + } + + handler := s.PhoneNumberService.UpdatePurchasedPhoneNumber + if s.interceptor != nil { + handler = func(ctx context.Context, req *UpdatePurchasedPhoneNumberRequest) (*UpdatePurchasedPhoneNumberResponse, error) { + resp, err := s.interceptor( + func(ctx context.Context, req interface{}) (interface{}, error) { + typedReq, ok := req.(*UpdatePurchasedPhoneNumberRequest) + if !ok { + return nil, twirp.InternalError("failed type assertion req.(*UpdatePurchasedPhoneNumberRequest) when calling interceptor") + } + return s.PhoneNumberService.UpdatePurchasedPhoneNumber(ctx, typedReq) + }, + )(ctx, req) + if resp != nil { + typedResp, ok := resp.(*UpdatePurchasedPhoneNumberResponse) + if !ok { + return nil, twirp.InternalError("failed type assertion resp.(*UpdatePurchasedPhoneNumberResponse) when calling interceptor") + } + return typedResp, err + } + return nil, err + } + } + + // Call service method + var respContent *UpdatePurchasedPhoneNumberResponse + func() { + defer ensurePanicResponses(ctx, resp, s.hooks) + respContent, err = handler(ctx, reqContent) + }() + + if err != nil { + s.writeError(ctx, resp, err) + return + } + if respContent == nil { + s.writeError(ctx, resp, twirp.InternalError("received a nil *UpdatePurchasedPhoneNumberResponse and nil error while calling UpdatePurchasedPhoneNumber. nil responses are not supported")) + return + } + + ctx = callResponsePrepared(ctx, s.hooks) + + respBytes, err := proto.Marshal(respContent) + if err != nil { + s.writeError(ctx, resp, wrapInternal(err, "failed to marshal proto response")) + return + } + + ctx = ctxsetters.WithStatusCode(ctx, http.StatusOK) + resp.Header().Set("Content-Type", "application/protobuf") + resp.Header().Set("Content-Length", strconv.Itoa(len(respBytes))) + resp.WriteHeader(http.StatusOK) + if n, err := resp.Write(respBytes); err != nil { + msg := fmt.Sprintf("failed to write response, %d of %d bytes written: %s", n, len(respBytes), err.Error()) + twerr := twirp.NewError(twirp.Unknown, msg) + ctx = callError(ctx, s.hooks, twerr) + } + callResponseSent(ctx, s.hooks) +} + +func (s *phoneNumberServiceServer) serveReleasePurchasedPhoneNumber(ctx context.Context, resp http.ResponseWriter, req *http.Request) { header := req.Header.Get("Content-Type") i := strings.Index(header, ";") if i == -1 { @@ -1173,9 +1731,9 @@ func (s *phoneNumberServiceServer) serveReleasePhoneNumber(ctx context.Context, } switch strings.TrimSpace(strings.ToLower(header[:i])) { case "application/json": - s.serveReleasePhoneNumberJSON(ctx, resp, req) + s.serveReleasePurchasedPhoneNumberJSON(ctx, resp, req) case "application/protobuf": - s.serveReleasePhoneNumberProtobuf(ctx, resp, req) + s.serveReleasePurchasedPhoneNumberProtobuf(ctx, resp, req) default: msg := fmt.Sprintf("unexpected Content-Type: %q", req.Header.Get("Content-Type")) twerr := badRouteError(msg, req.Method, req.URL.Path) @@ -1183,9 +1741,9 @@ func (s *phoneNumberServiceServer) serveReleasePhoneNumber(ctx context.Context, } } -func (s *phoneNumberServiceServer) serveReleasePhoneNumberJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) { +func (s *phoneNumberServiceServer) serveReleasePurchasedPhoneNumberJSON(ctx context.Context, resp http.ResponseWriter, req *http.Request) { var err error - ctx = ctxsetters.WithMethodName(ctx, "ReleasePhoneNumber") + ctx = ctxsetters.WithMethodName(ctx, "ReleasePurchasedPhoneNumber") ctx, err = callRequestRouted(ctx, s.hooks) if err != nil { s.writeError(ctx, resp, err) @@ -1198,29 +1756,29 @@ func (s *phoneNumberServiceServer) serveReleasePhoneNumberJSON(ctx context.Conte s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) return } - reqContent := new(ReleasePhoneNumberRequest) + reqContent := new(ReleasePurchasedPhoneNumbersRequest) unmarshaler := protojson.UnmarshalOptions{DiscardUnknown: true} if err = unmarshaler.Unmarshal(rawReqBody, reqContent); err != nil { s.handleRequestBodyError(ctx, resp, "the json request could not be decoded", err) return } - handler := s.PhoneNumberService.ReleasePhoneNumber + handler := s.PhoneNumberService.ReleasePurchasedPhoneNumber if s.interceptor != nil { - handler = func(ctx context.Context, req *ReleasePhoneNumberRequest) (*google_protobuf2.Empty, error) { + handler = func(ctx context.Context, req *ReleasePurchasedPhoneNumbersRequest) (*ReleasePurchasedPhoneNumbersResponse, error) { resp, err := s.interceptor( func(ctx context.Context, req interface{}) (interface{}, error) { - typedReq, ok := req.(*ReleasePhoneNumberRequest) + typedReq, ok := req.(*ReleasePurchasedPhoneNumbersRequest) if !ok { - return nil, twirp.InternalError("failed type assertion req.(*ReleasePhoneNumberRequest) when calling interceptor") + return nil, twirp.InternalError("failed type assertion req.(*ReleasePurchasedPhoneNumbersRequest) when calling interceptor") } - return s.PhoneNumberService.ReleasePhoneNumber(ctx, typedReq) + return s.PhoneNumberService.ReleasePurchasedPhoneNumber(ctx, typedReq) }, )(ctx, req) if resp != nil { - typedResp, ok := resp.(*google_protobuf2.Empty) + typedResp, ok := resp.(*ReleasePurchasedPhoneNumbersResponse) if !ok { - return nil, twirp.InternalError("failed type assertion resp.(*google_protobuf2.Empty) when calling interceptor") + return nil, twirp.InternalError("failed type assertion resp.(*ReleasePurchasedPhoneNumbersResponse) when calling interceptor") } return typedResp, err } @@ -1229,7 +1787,7 @@ func (s *phoneNumberServiceServer) serveReleasePhoneNumberJSON(ctx context.Conte } // Call service method - var respContent *google_protobuf2.Empty + var respContent *ReleasePurchasedPhoneNumbersResponse func() { defer ensurePanicResponses(ctx, resp, s.hooks) respContent, err = handler(ctx, reqContent) @@ -1240,7 +1798,7 @@ func (s *phoneNumberServiceServer) serveReleasePhoneNumberJSON(ctx context.Conte return } if respContent == nil { - s.writeError(ctx, resp, twirp.InternalError("received a nil *google_protobuf2.Empty and nil error while calling ReleasePhoneNumber. nil responses are not supported")) + s.writeError(ctx, resp, twirp.InternalError("received a nil *ReleasePurchasedPhoneNumbersResponse and nil error while calling ReleasePurchasedPhoneNumber. nil responses are not supported")) return } @@ -1266,9 +1824,9 @@ func (s *phoneNumberServiceServer) serveReleasePhoneNumberJSON(ctx context.Conte callResponseSent(ctx, s.hooks) } -func (s *phoneNumberServiceServer) serveReleasePhoneNumberProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) { +func (s *phoneNumberServiceServer) serveReleasePurchasedPhoneNumberProtobuf(ctx context.Context, resp http.ResponseWriter, req *http.Request) { var err error - ctx = ctxsetters.WithMethodName(ctx, "ReleasePhoneNumber") + ctx = ctxsetters.WithMethodName(ctx, "ReleasePurchasedPhoneNumber") ctx, err = callRequestRouted(ctx, s.hooks) if err != nil { s.writeError(ctx, resp, err) @@ -1280,28 +1838,28 @@ func (s *phoneNumberServiceServer) serveReleasePhoneNumberProtobuf(ctx context.C s.handleRequestBodyError(ctx, resp, "failed to read request body", err) return } - reqContent := new(ReleasePhoneNumberRequest) + reqContent := new(ReleasePurchasedPhoneNumbersRequest) if err = proto.Unmarshal(buf, reqContent); err != nil { s.writeError(ctx, resp, malformedRequestError("the protobuf request could not be decoded")) return } - handler := s.PhoneNumberService.ReleasePhoneNumber + handler := s.PhoneNumberService.ReleasePurchasedPhoneNumber if s.interceptor != nil { - handler = func(ctx context.Context, req *ReleasePhoneNumberRequest) (*google_protobuf2.Empty, error) { + handler = func(ctx context.Context, req *ReleasePurchasedPhoneNumbersRequest) (*ReleasePurchasedPhoneNumbersResponse, error) { resp, err := s.interceptor( func(ctx context.Context, req interface{}) (interface{}, error) { - typedReq, ok := req.(*ReleasePhoneNumberRequest) + typedReq, ok := req.(*ReleasePurchasedPhoneNumbersRequest) if !ok { - return nil, twirp.InternalError("failed type assertion req.(*ReleasePhoneNumberRequest) when calling interceptor") + return nil, twirp.InternalError("failed type assertion req.(*ReleasePurchasedPhoneNumbersRequest) when calling interceptor") } - return s.PhoneNumberService.ReleasePhoneNumber(ctx, typedReq) + return s.PhoneNumberService.ReleasePurchasedPhoneNumber(ctx, typedReq) }, )(ctx, req) if resp != nil { - typedResp, ok := resp.(*google_protobuf2.Empty) + typedResp, ok := resp.(*ReleasePurchasedPhoneNumbersResponse) if !ok { - return nil, twirp.InternalError("failed type assertion resp.(*google_protobuf2.Empty) when calling interceptor") + return nil, twirp.InternalError("failed type assertion resp.(*ReleasePurchasedPhoneNumbersResponse) when calling interceptor") } return typedResp, err } @@ -1310,7 +1868,7 @@ func (s *phoneNumberServiceServer) serveReleasePhoneNumberProtobuf(ctx context.C } // Call service method - var respContent *google_protobuf2.Empty + var respContent *ReleasePurchasedPhoneNumbersResponse func() { defer ensurePanicResponses(ctx, resp, s.hooks) respContent, err = handler(ctx, reqContent) @@ -1321,7 +1879,7 @@ func (s *phoneNumberServiceServer) serveReleasePhoneNumberProtobuf(ctx context.C return } if respContent == nil { - s.writeError(ctx, resp, twirp.InternalError("received a nil *google_protobuf2.Empty and nil error while calling ReleasePhoneNumber. nil responses are not supported")) + s.writeError(ctx, resp, twirp.InternalError("received a nil *ReleasePurchasedPhoneNumbersResponse and nil error while calling ReleasePurchasedPhoneNumber. nil responses are not supported")) return } @@ -1361,74 +1919,84 @@ func (s *phoneNumberServiceServer) PathPrefix() string { } var twirpFileDescriptor6 = []byte{ - // 1090 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xd1, 0x6e, 0xdb, 0x36, - 0x14, 0xad, 0xec, 0x38, 0x8d, 0xaf, 0x93, 0xd6, 0xe1, 0x82, 0x40, 0x55, 0xda, 0xd9, 0x51, 0xda, - 0xc1, 0x0b, 0x06, 0x07, 0x73, 0x87, 0x16, 0xc3, 0x30, 0xa0, 0x8e, 0xa3, 0xb6, 0x06, 0x52, 0xc7, - 0x90, 0xe5, 0x02, 0xdd, 0x8b, 0x20, 0xcb, 0x8c, 0x43, 0x54, 0x12, 0x15, 0x91, 0x0a, 0xe6, 0x6f, - 0xd9, 0xf6, 0x05, 0x7b, 0xd9, 0xcb, 0x9e, 0xf6, 0x0d, 0xfb, 0x95, 0xbd, 0xef, 0x6d, 0x90, 0x44, - 0x29, 0x6a, 0x2c, 0xc7, 0x01, 0xba, 0x47, 0x1e, 0x9e, 0xcb, 0x7b, 0xc8, 0x73, 0x2f, 0x49, 0x50, - 0x1c, 0x72, 0x85, 0x3f, 0x12, 0x6e, 0xfa, 0x17, 0xd4, 0xc3, 0xa6, 0x17, 0xba, 0x13, 0x1c, 0xb4, - 0xfd, 0x80, 0x72, 0x8a, 0xee, 0x8b, 0x39, 0x65, 0x6f, 0x46, 0xe9, 0xcc, 0xc1, 0x47, 0x31, 0x3c, - 0x09, 0xcf, 0x8f, 0xb0, 0xeb, 0xf3, 0x79, 0xc2, 0x52, 0x1a, 0x37, 0x27, 0x39, 0x71, 0x31, 0xe3, - 0x96, 0xeb, 0x0b, 0xc2, 0x4e, 0x9a, 0xc2, 0xa5, 0x53, 0xec, 0x30, 0x81, 0x6e, 0xa7, 0x28, 0x23, - 0x82, 0xa8, 0xfe, 0x21, 0x41, 0xe3, 0x94, 0x30, 0x3e, 0x8c, 0xa4, 0x0c, 0x62, 0x25, 0x7d, 0xef, - 0x0a, 0x7b, 0x9c, 0x06, 0x73, 0x1d, 0x5f, 0x86, 0x98, 0x71, 0xb4, 0x0f, 0x9b, 0x36, 0x0d, 0x3d, - 0x1e, 0xcc, 0x4d, 0x9b, 0x4e, 0xb1, 0x2c, 0x35, 0xa5, 0x56, 0x55, 0xaf, 0x09, 0xac, 0x47, 0xa7, - 0x18, 0xed, 0x41, 0xd5, 0x0a, 0xb0, 0x95, 0xcc, 0x97, 0xe2, 0xf9, 0x8d, 0x08, 0x88, 0x27, 0x77, - 0xa0, 0xe2, 0x10, 0x97, 0x70, 0xb9, 0xdc, 0x94, 0x5a, 0x15, 0x3d, 0x19, 0xa0, 0x97, 0x00, 0xbe, - 0x35, 0xc3, 0x26, 0xa7, 0x1f, 0xb1, 0x27, 0xaf, 0x35, 0xa5, 0x56, 0xad, 0x23, 0xb7, 0x85, 0xc2, - 0xb6, 0x11, 0xa1, 0x43, 0x6b, 0x46, 0x3c, 0x8b, 0x13, 0xea, 0xe9, 0xd5, 0x88, 0x1b, 0x83, 0xea, - 0x6f, 0x12, 0x34, 0x97, 0x4b, 0x66, 0x3e, 0xf5, 0x18, 0x46, 0x2f, 0xa1, 0x42, 0x38, 0x76, 0x99, - 0x2c, 0x35, 0xcb, 0xad, 0x5a, 0x67, 0x3f, 0x5b, 0xb8, 0x28, 0xaa, 0xcf, 0xb1, 0xab, 0x27, 0x7c, - 0xf4, 0x0a, 0x1e, 0x7a, 0xf8, 0x67, 0x6e, 0xe6, 0xb4, 0x95, 0x56, 0x68, 0xdb, 0x8a, 0x02, 0x86, - 0x99, 0xbe, 0x2e, 0x28, 0xc3, 0x30, 0xb0, 0x2f, 0x2c, 0x86, 0x73, 0xc9, 0xd2, 0xc3, 0x3c, 0x80, - 0xad, 0xbc, 0xed, 0x89, 0xc0, 0xaa, 0xbe, 0xe9, 0x5f, 0x53, 0x99, 0x6a, 0xc1, 0x5e, 0xe1, 0x12, - 0x62, 0x73, 0xc7, 0x45, 0x6b, 0xd4, 0x3a, 0x4f, 0xae, 0x37, 0x29, 0x82, 0xa7, 0xf9, 0xe8, 0x4f, - 0x53, 0x5c, 0x8a, 0x43, 0x2c, 0x60, 0xb2, 0x54, 0x6b, 0x66, 0x9c, 0xb4, 0xdc, 0xb8, 0xd2, 0xdd, - 0x8d, 0xfb, 0x4b, 0x82, 0xfd, 0x5b, 0x72, 0x8a, 0xcd, 0x3d, 0xff, 0xd4, 0xb9, 0x15, 0x9b, 0xfa, - 0xbf, 0x5c, 0x43, 0x0d, 0xa8, 0x71, 0xca, 0x2d, 0xc7, 0x8c, 0xcb, 0x5a, 0x94, 0x2a, 0xc4, 0x50, - 0x2f, 0x42, 0xd4, 0x57, 0xf0, 0x48, 0xc7, 0x0e, 0xfe, 0x0c, 0x57, 0xff, 0x29, 0xc1, 0xf6, 0x1b, - 0x87, 0x4e, 0x2c, 0x27, 0xb7, 0x02, 0x7a, 0x00, 0x25, 0x32, 0x15, 0x3d, 0x55, 0x22, 0xd3, 0x48, - 0x08, 0xfe, 0xf6, 0xc5, 0x77, 0xe6, 0x39, 0x0d, 0x5c, 0x8b, 0x8b, 0x66, 0x82, 0x08, 0x7a, 0x1d, - 0x23, 0x0b, 0xed, 0x58, 0x5e, 0xd1, 0x8e, 0x6b, 0x37, 0xda, 0xb1, 0x01, 0xb5, 0x44, 0xa5, 0xc9, - 0xe7, 0x3e, 0x96, 0x2b, 0x49, 0x82, 0x04, 0x32, 0xe6, 0x3e, 0x46, 0x0a, 0x6c, 0x38, 0xd4, 0xb6, - 0x1c, 0xc2, 0xe7, 0xf2, 0x7a, 0x12, 0x9c, 0x8e, 0xd1, 0x2e, 0xac, 0x07, 0x78, 0x46, 0xa8, 0x27, - 0xdf, 0x8f, 0x67, 0xc4, 0x08, 0x3d, 0x01, 0x60, 0xbe, 0xe5, 0x9a, 0xcc, 0xa6, 0x01, 0x96, 0x37, - 0x9a, 0x52, 0x4b, 0xd2, 0xab, 0x11, 0x32, 0x8a, 0x00, 0xf4, 0x3d, 0x80, 0x1d, 0x60, 0x8b, 0xe3, - 0xa9, 0x69, 0x71, 0xb9, 0x1a, 0x5b, 0xa3, 0xb4, 0x93, 0x5b, 0xac, 0x9d, 0xde, 0x62, 0x6d, 0x23, - 0xbd, 0xc5, 0xf4, 0xaa, 0x60, 0x77, 0x79, 0x14, 0x1a, 0xfa, 0xd3, 0x34, 0x14, 0x56, 0x87, 0x0a, - 0x76, 0x97, 0xab, 0xbf, 0x4a, 0xb0, 0x65, 0x60, 0x07, 0x47, 0x2e, 0xcc, 0x7b, 0x94, 0x71, 0xf4, - 0x02, 0x36, 0x02, 0xcc, 0x68, 0x18, 0xd8, 0xc9, 0x35, 0xf6, 0xa0, 0xa3, 0x5c, 0x17, 0x48, 0x9e, - 0x19, 0x1d, 0x84, 0x9e, 0x71, 0xa3, 0x23, 0xb1, 0xc3, 0x20, 0xc0, 0x9e, 0x3d, 0x4f, 0xaf, 0xb7, - 0x74, 0x1c, 0x75, 0x89, 0x1f, 0x10, 0x3b, 0x31, 0x42, 0xd2, 0x93, 0x41, 0xe4, 0xd2, 0x84, 0x38, - 0x0e, 0xf1, 0x66, 0x66, 0xe8, 0x11, 0x2e, 0x5c, 0xa8, 0x09, 0x6c, 0xec, 0x11, 0xae, 0xfe, 0x2e, - 0x81, 0xbc, 0xec, 0x3a, 0x42, 0x3f, 0xc2, 0x66, 0xbe, 0xa2, 0x62, 0xb5, 0xb5, 0x9c, 0xda, 0x85, - 0x42, 0xd2, 0x6b, 0xb9, 0x62, 0x43, 0x2a, 0x6c, 0xda, 0x96, 0x6f, 0x4d, 0x88, 0x43, 0x38, 0xc1, - 0x4c, 0x2e, 0x25, 0xf5, 0x98, 0xc7, 0xd0, 0x37, 0x50, 0xb1, 0x29, 0xe3, 0x4c, 0x2e, 0xc7, 0x9d, - 0xb6, 0x5b, 0x7c, 0x12, 0x7a, 0x42, 0x52, 0xff, 0x2e, 0xc1, 0x4e, 0x51, 0x0b, 0x7e, 0xae, 0xd2, - 0x0e, 0xac, 0x33, 0x6e, 0xf1, 0x90, 0xc5, 0x07, 0x9b, 0x37, 0x24, 0x17, 0x32, 0x8a, 0x19, 0xba, - 0x60, 0xa2, 0x1f, 0xa0, 0x66, 0x31, 0x46, 0x66, 0x5e, 0x52, 0x14, 0xe5, 0x95, 0x45, 0x01, 0x29, - 0xbd, 0xcb, 0xa3, 0xe0, 0x20, 0x69, 0xe4, 0x38, 0x78, 0x6d, 0x75, 0x70, 0x4a, 0xef, 0x72, 0xf4, - 0x16, 0xb6, 0x19, 0xf1, 0xcd, 0x29, 0x61, 0xbe, 0xc5, 0xed, 0x0b, 0x33, 0x08, 0x9d, 0xa4, 0x85, - 0x6a, 0x9d, 0xc7, 0x99, 0xf0, 0x51, 0x7f, 0x78, 0x22, 0x08, 0x7a, 0xe8, 0xe0, 0xbe, 0x77, 0x4e, - 0xf5, 0x87, 0x8c, 0xf8, 0x79, 0xf0, 0xf0, 0x5f, 0x09, 0xb6, 0x17, 0x4a, 0x0e, 0x1d, 0x40, 0xc3, - 0xd0, 0x4e, 0xb5, 0xe1, 0xdb, 0xb3, 0xc1, 0x07, 0xb3, 0x77, 0x36, 0x32, 0x4c, 0xe3, 0xc3, 0x50, - 0x33, 0xc7, 0x83, 0xd1, 0x50, 0xeb, 0xf5, 0x5f, 0xf7, 0xb5, 0x93, 0xfa, 0x3d, 0xf4, 0x0c, 0xf6, - 0x8b, 0x48, 0x83, 0xf1, 0xbb, 0x63, 0x4d, 0x37, 0x75, 0x6d, 0x60, 0x74, 0x4f, 0xeb, 0xd2, 0x32, - 0xda, 0xfb, 0xb3, 0x7e, 0x4f, 0x33, 0xfb, 0x83, 0xe3, 0xb3, 0xf1, 0xe0, 0xa4, 0x5e, 0x42, 0x5f, - 0x81, 0xba, 0x9c, 0x76, 0x36, 0x36, 0x12, 0x5e, 0x79, 0x99, 0xb4, 0xd1, 0xbb, 0x51, 0xb6, 0xd8, - 0x1a, 0x7a, 0x0a, 0xcd, 0x65, 0xa4, 0x6c, 0xa9, 0xca, 0xe1, 0x2f, 0x12, 0x6c, 0x2f, 0xb8, 0x1b, - 0x25, 0x88, 0xe2, 0xb2, 0x8d, 0x8c, 0x8c, 0xae, 0x31, 0x1e, 0xdd, 0xd8, 0xfb, 0x97, 0xa0, 0x14, - 0x91, 0xba, 0x3d, 0xa3, 0xff, 0x5e, 0xab, 0x4b, 0xa8, 0x01, 0x7b, 0x45, 0xf3, 0x43, 0x6d, 0x70, - 0xd2, 0x1f, 0xbc, 0xa9, 0x97, 0x50, 0x13, 0x1e, 0x17, 0x11, 0x74, 0xed, 0x54, 0xeb, 0x8e, 0xb4, - 0x93, 0x7a, 0xb9, 0xf3, 0x67, 0x19, 0x50, 0x5e, 0x1d, 0x0e, 0xae, 0xa2, 0x8e, 0xbe, 0x04, 0x79, - 0xd9, 0xb7, 0x03, 0xb5, 0x32, 0xef, 0x57, 0x7c, 0xa6, 0x94, 0xaf, 0xef, 0xc0, 0x4c, 0x5e, 0x42, - 0xf5, 0x1e, 0x9a, 0xc0, 0x17, 0x05, 0xff, 0x00, 0x74, 0xb0, 0xf0, 0x26, 0x2e, 0x3e, 0x49, 0xca, - 0xd3, 0xdb, 0x49, 0x59, 0x0e, 0x0e, 0x8f, 0x96, 0x3e, 0xca, 0xe8, 0x86, 0xda, 0x5b, 0x3e, 0x0b, - 0xca, 0xe1, 0x5d, 0xa8, 0x59, 0x56, 0x1d, 0xd0, 0xe2, 0x6b, 0x8a, 0xd4, 0x6c, 0x8d, 0xa5, 0x4f, - 0xad, 0xb2, 0xbb, 0xd0, 0xa9, 0x5a, 0xf4, 0x33, 0x56, 0xef, 0x1d, 0x3f, 0xfb, 0xe9, 0x60, 0x46, - 0xf8, 0x45, 0x38, 0x69, 0xdb, 0xd4, 0x3d, 0x12, 0x2b, 0x25, 0x7f, 0x64, 0x9b, 0x3a, 0x29, 0x30, - 0x59, 0x8f, 0x91, 0xe7, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0xac, 0x20, 0x3a, 0xd1, 0x87, 0x0b, - 0x00, 0x00, + // 1262 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xdd, 0x8e, 0xd3, 0xc6, + 0x17, 0xc7, 0xc9, 0x66, 0xd9, 0x9c, 0xf0, 0xb1, 0x3b, 0xff, 0x15, 0x18, 0x2f, 0x90, 0xac, 0x17, + 0xf8, 0xa7, 0x94, 0x66, 0xd5, 0x50, 0x81, 0x10, 0x42, 0x22, 0x9b, 0x35, 0x10, 0x69, 0xc9, 0x46, + 0x8e, 0x83, 0x44, 0x6f, 0x2c, 0xc7, 0x99, 0xcd, 0x8e, 0x70, 0x3c, 0xc6, 0x33, 0xa6, 0x8d, 0x54, + 0xf5, 0xb6, 0x7d, 0x87, 0xb6, 0x4f, 0xd0, 0x9b, 0xaa, 0xb7, 0x7d, 0x81, 0x3e, 0x41, 0x1f, 0xa3, + 0xf7, 0xbd, 0xab, 0xfc, 0x99, 0x2f, 0x3b, 0x49, 0x55, 0xa4, 0x5e, 0xfa, 0xcc, 0xef, 0xcc, 0x39, + 0xf3, 0x3b, 0x9f, 0x06, 0xc9, 0x22, 0x1f, 0xf0, 0x3b, 0xc2, 0x75, 0xe7, 0x9c, 0xda, 0x58, 0xb7, + 0xbd, 0x51, 0x1f, 0xbb, 0x35, 0xc7, 0xa5, 0x9c, 0xa2, 0x8b, 0xd1, 0x99, 0x54, 0x1e, 0x52, 0x3a, + 0xb4, 0xf0, 0x61, 0x20, 0xee, 0x7b, 0x67, 0x87, 0x9c, 0x8c, 0x30, 0xe3, 0xc6, 0xc8, 0x09, 0x91, + 0xd2, 0x6e, 0x7c, 0xcb, 0x88, 0x0e, 0xb0, 0xc5, 0x22, 0xe9, 0x4e, 0x2c, 0x65, 0x24, 0x02, 0xca, + 0xbf, 0x08, 0x50, 0x3e, 0x21, 0x8c, 0x77, 0x7c, 0x6b, 0xed, 0xc0, 0x58, 0xcb, 0xfe, 0x80, 0x6d, + 0x4e, 0xdd, 0xb1, 0x8a, 0xdf, 0x7b, 0x98, 0x71, 0xb4, 0x0f, 0x97, 0x4c, 0xea, 0xd9, 0xdc, 0x1d, + 0xeb, 0x26, 0x1d, 0x60, 0x51, 0xa8, 0x08, 0xd5, 0xa2, 0x5a, 0x8a, 0x64, 0x4d, 0x3a, 0xc0, 0x68, + 0x0f, 0x8a, 0x86, 0x8b, 0x8d, 0xf0, 0x3c, 0x17, 0x9c, 0x6f, 0xf9, 0x82, 0xe0, 0x70, 0x17, 0x0a, + 0x16, 0x19, 0x11, 0x2e, 0xe6, 0x2b, 0x42, 0xb5, 0xa0, 0x86, 0x1f, 0xe8, 0x31, 0x80, 0x63, 0x0c, + 0xb1, 0xce, 0xe9, 0x3b, 0x6c, 0x8b, 0x1b, 0x15, 0xa1, 0x5a, 0xaa, 0x8b, 0xb5, 0xc8, 0xc3, 0x9a, + 0xe6, 0x4b, 0x3b, 0xc6, 0x90, 0xd8, 0x06, 0x27, 0xd4, 0x56, 0x8b, 0x3e, 0x36, 0x10, 0xca, 0x3f, + 0x09, 0x50, 0xc9, 0x76, 0x99, 0x39, 0xd4, 0x66, 0x18, 0x3d, 0x86, 0x02, 0xe1, 0x78, 0xc4, 0x44, + 0xa1, 0x92, 0xaf, 0x96, 0xea, 0xfb, 0xc9, 0xc5, 0x69, 0x5a, 0x2d, 0x8e, 0x47, 0x6a, 0x88, 0x47, + 0xcf, 0xe1, 0xaa, 0x8d, 0xbf, 0xe6, 0xfa, 0x94, 0x6f, 0xb9, 0x15, 0xbe, 0x5d, 0xf6, 0x15, 0x3a, + 0x89, 0x7f, 0x2e, 0x48, 0x1d, 0xcf, 0x35, 0xcf, 0x0d, 0x86, 0xa7, 0x8c, 0xc5, 0x64, 0x1e, 0xc0, + 0xe5, 0xe9, 0xc8, 0x86, 0x0e, 0x16, 0xd5, 0x4b, 0xce, 0x04, 0xca, 0xd0, 0x21, 0xec, 0x32, 0xe2, + 0xe8, 0x03, 0xc2, 0x1c, 0x83, 0x9b, 0xe7, 0xba, 0xeb, 0x59, 0x58, 0x27, 0x83, 0x88, 0xd9, 0x1d, + 0x46, 0x9c, 0xe3, 0xe8, 0x48, 0xf5, 0x2c, 0xdc, 0x1a, 0xc8, 0x06, 0xec, 0xa5, 0xda, 0x8c, 0xd8, + 0x38, 0x4a, 0x33, 0x5a, 0xaa, 0xdf, 0x9a, 0xb0, 0x12, 0x29, 0x0f, 0xa6, 0xb5, 0x67, 0x7c, 0x92, + 0xff, 0x88, 0x69, 0x4f, 0x81, 0xb2, 0xf8, 0x75, 0x49, 0xa8, 0x85, 0xe9, 0x50, 0xd7, 0x61, 0x93, + 0x71, 0x83, 0x7b, 0x2c, 0x78, 0xc0, 0x95, 0xba, 0x94, 0x16, 0x8d, 0x6e, 0x80, 0x50, 0x23, 0xe4, + 0x5c, 0x7a, 0xe4, 0xd7, 0x4e, 0x8f, 0x4c, 0xee, 0x36, 0xb2, 0xb8, 0xfb, 0x4d, 0x80, 0xfd, 0x25, + 0x0f, 0x8b, 0x28, 0x7c, 0x38, 0x9b, 0x50, 0x2b, 0xa8, 0xfb, 0x58, 0xc9, 0x84, 0xca, 0x50, 0xe2, + 0x94, 0x1b, 0x96, 0x1e, 0x54, 0x5b, 0x54, 0x41, 0x10, 0x88, 0x9a, 0xbe, 0x44, 0xfe, 0x16, 0x6e, + 0xbf, 0xc4, 0xa9, 0xbe, 0xc7, 0x31, 0x79, 0x02, 0x37, 0x9c, 0xf8, 0x78, 0xa6, 0xab, 0xf8, 0xac, + 0x84, 0xb5, 0x7c, 0xcd, 0x49, 0xd1, 0x6f, 0x0d, 0xfc, 0xca, 0x9f, 0x56, 0x88, 0xf2, 0xaf, 0x34, + 0x95, 0x17, 0xb2, 0x09, 0xe5, 0x4c, 0xfb, 0x11, 0x75, 0xcf, 0xe7, 0x6e, 0x11, 0x02, 0x0a, 0x56, + 0x30, 0x38, 0x63, 0xe4, 0x57, 0x01, 0xf6, 0x7b, 0xce, 0xc0, 0xe0, 0xf8, 0x3f, 0x7b, 0x68, 0x66, + 0x5e, 0xe5, 0xb3, 0xf2, 0xea, 0x0c, 0xe4, 0x65, 0x3e, 0x7f, 0x34, 0x72, 0xbe, 0x13, 0xe0, 0x40, + 0xc5, 0x16, 0xf6, 0x6b, 0x7f, 0x59, 0x6d, 0x3e, 0x05, 0x29, 0x93, 0x9e, 0xb8, 0x0d, 0x5d, 0x4f, + 0xe7, 0x87, 0x2d, 0xb6, 0xad, 0xdc, 0x62, 0xdb, 0x92, 0xef, 0xc1, 0x9d, 0xe5, 0x8e, 0x84, 0x6f, + 0x96, 0xff, 0xcc, 0xc1, 0xce, 0x4b, 0x8b, 0xf6, 0x0d, 0x6b, 0xea, 0x18, 0x5d, 0x81, 0x5c, 0x12, + 0xa7, 0x1c, 0x19, 0xf8, 0xa9, 0x8f, 0x3f, 0x7f, 0xf4, 0x85, 0x7e, 0x46, 0xdd, 0x91, 0xc1, 0xa3, + 0x90, 0x80, 0x2f, 0x7a, 0x11, 0x48, 0x16, 0xe6, 0x52, 0x7e, 0xc5, 0x5c, 0xda, 0x98, 0x9b, 0x4b, + 0x65, 0x28, 0x45, 0x04, 0xf0, 0xb1, 0x83, 0xc5, 0x42, 0x68, 0x20, 0x14, 0x69, 0x63, 0x07, 0x23, + 0x09, 0xb6, 0x2c, 0x6a, 0x1a, 0x16, 0xe1, 0x63, 0x71, 0x33, 0x54, 0x8e, 0xbf, 0xd1, 0x35, 0xd8, + 0x74, 0xf1, 0x90, 0x50, 0x5b, 0xbc, 0x18, 0x9c, 0x44, 0x5f, 0xe8, 0x16, 0x00, 0x73, 0x8c, 0x91, + 0xce, 0x4c, 0xea, 0x62, 0x71, 0xab, 0x22, 0x54, 0x05, 0xb5, 0xe8, 0x4b, 0xba, 0xbe, 0x00, 0x3d, + 0x01, 0x30, 0x5d, 0x6c, 0x70, 0x3c, 0xd0, 0x0d, 0x2e, 0x16, 0x83, 0x60, 0x4b, 0xb5, 0x70, 0x9c, + 0xd7, 0xe2, 0x71, 0x5e, 0xd3, 0xe2, 0x71, 0xae, 0x16, 0x23, 0x74, 0xc3, 0x4f, 0x6f, 0xf0, 0x82, + 0x7c, 0x0a, 0x54, 0x61, 0xb5, 0x6a, 0x84, 0x6e, 0x70, 0xf9, 0x47, 0x01, 0x2e, 0x6b, 0xd8, 0xc2, + 0x7e, 0xb4, 0xc6, 0x4d, 0xca, 0x38, 0x7a, 0x04, 0x5b, 0x2e, 0x66, 0xd4, 0x73, 0xcd, 0x70, 0x9e, + 0x4f, 0x37, 0xe5, 0x19, 0xa4, 0x4f, 0x84, 0x9a, 0x60, 0x7d, 0x4a, 0x4c, 0xcf, 0x75, 0xb1, 0x6d, + 0x8e, 0xe3, 0x39, 0x1f, 0x7f, 0xfb, 0xcd, 0xdf, 0x71, 0x89, 0x19, 0x06, 0x42, 0x50, 0xc3, 0x0f, + 0x3f, 0x4a, 0x7d, 0x62, 0x59, 0xc4, 0x1e, 0xea, 0x9e, 0x4d, 0x78, 0x14, 0x85, 0x52, 0x24, 0xeb, + 0xd9, 0x84, 0xcb, 0x3f, 0x0b, 0x20, 0x66, 0xcd, 0x65, 0xf4, 0x2c, 0xb5, 0x40, 0x26, 0xde, 0x2e, + 0x24, 0xd2, 0x6c, 0xd9, 0xca, 0x70, 0xc9, 0x34, 0x1c, 0xa3, 0x4f, 0x2c, 0xc2, 0x09, 0x4e, 0xf2, + 0x76, 0x5a, 0x86, 0x1e, 0x40, 0xc1, 0xa4, 0x8c, 0x33, 0x31, 0x1f, 0xf4, 0xf6, 0x6b, 0xe9, 0x4c, + 0xa8, 0x21, 0x48, 0xfe, 0x3e, 0x0f, 0xbb, 0x69, 0xf9, 0xfd, 0x6f, 0xfa, 0xcf, 0xb3, 0x94, 0xfe, + 0xf3, 0x0f, 0x1e, 0x39, 0x19, 0xb0, 0xf9, 0xb5, 0x07, 0xec, 0x53, 0x28, 0x19, 0x8c, 0x91, 0xa1, + 0x1d, 0xe6, 0xd3, 0xc6, 0xca, 0x7c, 0x82, 0x18, 0xde, 0xf0, 0x7b, 0x49, 0xc9, 0x0d, 0x2b, 0x3d, + 0x50, 0x2e, 0xac, 0x56, 0x8e, 0xe1, 0x0d, 0x8e, 0x5e, 0xc1, 0xce, 0x42, 0x27, 0x0d, 0xea, 0xab, + 0x54, 0xbf, 0x99, 0x38, 0xde, 0x6d, 0x75, 0x66, 0xfa, 0xa9, 0x7d, 0x46, 0xd5, 0xab, 0x73, 0x4d, + 0xf6, 0xfe, 0x5f, 0x02, 0xec, 0x2c, 0x64, 0x2b, 0x3a, 0x80, 0xb2, 0xa6, 0x9c, 0x28, 0x9d, 0x57, + 0xa7, 0xed, 0xb7, 0x7a, 0xf3, 0xb4, 0xab, 0xe9, 0xda, 0xdb, 0x8e, 0xa2, 0xf7, 0xda, 0xdd, 0x8e, + 0xd2, 0x6c, 0xbd, 0x68, 0x29, 0xc7, 0xdb, 0x17, 0xd0, 0x5d, 0xd8, 0x4f, 0x03, 0xb5, 0x7b, 0xaf, + 0x8f, 0x14, 0x55, 0x57, 0x95, 0xb6, 0xd6, 0x38, 0xd9, 0x16, 0xb2, 0x60, 0x6f, 0x4e, 0x5b, 0x4d, + 0x45, 0x6f, 0xb5, 0x8f, 0x4e, 0x7b, 0xed, 0xe3, 0xed, 0x1c, 0xba, 0x07, 0x72, 0x36, 0xec, 0xb4, + 0xa7, 0x85, 0xb8, 0x7c, 0x96, 0x6b, 0xdd, 0xd7, 0xdd, 0xe4, 0xb2, 0x0d, 0x74, 0x07, 0x2a, 0x59, + 0xa0, 0xe4, 0xaa, 0xc2, 0xfd, 0x1f, 0x04, 0xd8, 0x59, 0x88, 0xae, 0x6f, 0xc0, 0xd7, 0x4b, 0x1e, + 0xd2, 0xd5, 0x1a, 0x5a, 0xaf, 0x3b, 0xf7, 0xf6, 0xdb, 0x20, 0xa5, 0x81, 0x1a, 0x4d, 0xad, 0xf5, + 0x46, 0xd9, 0x16, 0x50, 0x19, 0xf6, 0xd2, 0xce, 0x3b, 0x4a, 0xfb, 0xb8, 0xd5, 0x7e, 0xb9, 0x9d, + 0x43, 0x15, 0xb8, 0x99, 0x06, 0x50, 0x95, 0x13, 0xa5, 0xd1, 0x55, 0x8e, 0xb7, 0xf3, 0xf5, 0xdf, + 0x0b, 0x80, 0xa6, 0xbd, 0xc3, 0xee, 0x07, 0xbf, 0x19, 0xbc, 0x07, 0x31, 0x6b, 0x75, 0x47, 0xd5, + 0x24, 0xf6, 0x2b, 0x7e, 0x48, 0xa4, 0x4f, 0xd6, 0x40, 0x46, 0xa3, 0xe6, 0x02, 0xea, 0xc3, 0xff, + 0x52, 0x56, 0x63, 0x74, 0xb0, 0x30, 0x61, 0x17, 0x37, 0x0a, 0xe9, 0xce, 0x72, 0x50, 0x62, 0x83, + 0xc3, 0x8d, 0xcc, 0x0d, 0x12, 0xcd, 0x79, 0xbb, 0x64, 0x44, 0x4b, 0xf7, 0xd7, 0x81, 0x26, 0x56, + 0x6d, 0xb8, 0x9e, 0xb1, 0x7a, 0xa1, 0xff, 0x4f, 0x3a, 0xc7, 0xd2, 0xe5, 0x50, 0xaa, 0xae, 0x06, + 0x26, 0xf6, 0xbe, 0x02, 0x29, 0x7b, 0xa1, 0x41, 0x13, 0xdf, 0x57, 0x6e, 0x6a, 0xd2, 0xa7, 0x6b, + 0x61, 0x13, 0xc3, 0xdf, 0xc0, 0xde, 0x92, 0xbd, 0x02, 0x3d, 0x48, 0x6e, 0x5b, 0x63, 0x0d, 0x92, + 0x3e, 0x5b, 0x13, 0x1d, 0x5b, 0x3f, 0xba, 0xfb, 0xe5, 0xc1, 0x90, 0xf0, 0x73, 0xaf, 0x5f, 0x33, + 0xe9, 0xe8, 0x30, 0x52, 0x0e, 0x7f, 0xbd, 0x4d, 0x6a, 0xc5, 0x82, 0xfe, 0x66, 0x20, 0x79, 0xf8, + 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x93, 0x5f, 0xe3, 0x5b, 0xc1, 0x0f, 0x00, 0x00, } From 042f247a8a935da7a332c9d7381d814c3dbe1d82 Mon Sep 17 00:00:00 2001 From: Nishad Musthafa Date: Tue, 26 Aug 2025 19:47:50 -0700 Subject: [PATCH 3/8] Forcing a recompile --- livekit/livekit_phone_number_grpc.pb.go | 248 ------------------------ 1 file changed, 248 deletions(-) delete mode 100644 livekit/livekit_phone_number_grpc.pb.go diff --git a/livekit/livekit_phone_number_grpc.pb.go b/livekit/livekit_phone_number_grpc.pb.go deleted file mode 100644 index 0864e1609..000000000 --- a/livekit/livekit_phone_number_grpc.pb.go +++ /dev/null @@ -1,248 +0,0 @@ -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.5.1 -// - protoc v4.23.4 -// source: livekit_phone_number.proto - -package livekit - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" - emptypb "google.golang.org/protobuf/types/known/emptypb" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.64.0 or later. -const _ = grpc.SupportPackageIsVersion9 - -const ( - PhoneNumberService_ListPhoneNumberInventory_FullMethodName = "/livekit.PhoneNumberService/ListPhoneNumberInventory" - PhoneNumberService_PurchasePhoneNumber_FullMethodName = "/livekit.PhoneNumberService/PurchasePhoneNumber" - PhoneNumberService_ListPurchasedPhoneNumbers_FullMethodName = "/livekit.PhoneNumberService/ListPurchasedPhoneNumbers" - PhoneNumberService_ReleasePhoneNumber_FullMethodName = "/livekit.PhoneNumberService/ReleasePhoneNumber" -) - -// PhoneNumberServiceClient is the client API for PhoneNumberService service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -// -// Public Phone Number Service - External API for phone number management -type PhoneNumberServiceClient interface { - // List available phone numbers in inventory - ListPhoneNumberInventory(ctx context.Context, in *ListPhoneNumberInventoryRequest, opts ...grpc.CallOption) (*ListPhoneNumberInventoryResponse, error) - // Purchase a phone number from inventory - PurchasePhoneNumber(ctx context.Context, in *PurchasePhoneNumberRequest, opts ...grpc.CallOption) (*PurchasePhoneNumberResponse, error) - // List purchased phone numbers for a project - ListPurchasedPhoneNumbers(ctx context.Context, in *ListPurchasedPhoneNumbersRequest, opts ...grpc.CallOption) (*ListPurchasedPhoneNumbersResponse, error) - // Release a purchased phone number - ReleasePhoneNumber(ctx context.Context, in *ReleasePhoneNumberRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) -} - -type phoneNumberServiceClient struct { - cc grpc.ClientConnInterface -} - -func NewPhoneNumberServiceClient(cc grpc.ClientConnInterface) PhoneNumberServiceClient { - return &phoneNumberServiceClient{cc} -} - -func (c *phoneNumberServiceClient) ListPhoneNumberInventory(ctx context.Context, in *ListPhoneNumberInventoryRequest, opts ...grpc.CallOption) (*ListPhoneNumberInventoryResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(ListPhoneNumberInventoryResponse) - err := c.cc.Invoke(ctx, PhoneNumberService_ListPhoneNumberInventory_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *phoneNumberServiceClient) PurchasePhoneNumber(ctx context.Context, in *PurchasePhoneNumberRequest, opts ...grpc.CallOption) (*PurchasePhoneNumberResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(PurchasePhoneNumberResponse) - err := c.cc.Invoke(ctx, PhoneNumberService_PurchasePhoneNumber_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *phoneNumberServiceClient) ListPurchasedPhoneNumbers(ctx context.Context, in *ListPurchasedPhoneNumbersRequest, opts ...grpc.CallOption) (*ListPurchasedPhoneNumbersResponse, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(ListPurchasedPhoneNumbersResponse) - err := c.cc.Invoke(ctx, PhoneNumberService_ListPurchasedPhoneNumbers_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *phoneNumberServiceClient) ReleasePhoneNumber(ctx context.Context, in *ReleasePhoneNumberRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { - cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) - out := new(emptypb.Empty) - err := c.cc.Invoke(ctx, PhoneNumberService_ReleasePhoneNumber_FullMethodName, in, out, cOpts...) - if err != nil { - return nil, err - } - return out, nil -} - -// PhoneNumberServiceServer is the server API for PhoneNumberService service. -// All implementations must embed UnimplementedPhoneNumberServiceServer -// for forward compatibility. -// -// Public Phone Number Service - External API for phone number management -type PhoneNumberServiceServer interface { - // List available phone numbers in inventory - ListPhoneNumberInventory(context.Context, *ListPhoneNumberInventoryRequest) (*ListPhoneNumberInventoryResponse, error) - // Purchase a phone number from inventory - PurchasePhoneNumber(context.Context, *PurchasePhoneNumberRequest) (*PurchasePhoneNumberResponse, error) - // List purchased phone numbers for a project - ListPurchasedPhoneNumbers(context.Context, *ListPurchasedPhoneNumbersRequest) (*ListPurchasedPhoneNumbersResponse, error) - // Release a purchased phone number - ReleasePhoneNumber(context.Context, *ReleasePhoneNumberRequest) (*emptypb.Empty, error) - mustEmbedUnimplementedPhoneNumberServiceServer() -} - -// UnimplementedPhoneNumberServiceServer must be embedded to have -// forward compatible implementations. -// -// NOTE: this should be embedded by value instead of pointer to avoid a nil -// pointer dereference when methods are called. -type UnimplementedPhoneNumberServiceServer struct{} - -func (UnimplementedPhoneNumberServiceServer) ListPhoneNumberInventory(context.Context, *ListPhoneNumberInventoryRequest) (*ListPhoneNumberInventoryResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListPhoneNumberInventory not implemented") -} -func (UnimplementedPhoneNumberServiceServer) PurchasePhoneNumber(context.Context, *PurchasePhoneNumberRequest) (*PurchasePhoneNumberResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method PurchasePhoneNumber not implemented") -} -func (UnimplementedPhoneNumberServiceServer) ListPurchasedPhoneNumbers(context.Context, *ListPurchasedPhoneNumbersRequest) (*ListPurchasedPhoneNumbersResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method ListPurchasedPhoneNumbers not implemented") -} -func (UnimplementedPhoneNumberServiceServer) ReleasePhoneNumber(context.Context, *ReleasePhoneNumberRequest) (*emptypb.Empty, error) { - return nil, status.Errorf(codes.Unimplemented, "method ReleasePhoneNumber not implemented") -} -func (UnimplementedPhoneNumberServiceServer) mustEmbedUnimplementedPhoneNumberServiceServer() {} -func (UnimplementedPhoneNumberServiceServer) testEmbeddedByValue() {} - -// UnsafePhoneNumberServiceServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to PhoneNumberServiceServer will -// result in compilation errors. -type UnsafePhoneNumberServiceServer interface { - mustEmbedUnimplementedPhoneNumberServiceServer() -} - -func RegisterPhoneNumberServiceServer(s grpc.ServiceRegistrar, srv PhoneNumberServiceServer) { - // If the following call pancis, it indicates UnimplementedPhoneNumberServiceServer was - // embedded by pointer and is nil. This will cause panics if an - // unimplemented method is ever invoked, so we test this at initialization - // time to prevent it from happening at runtime later due to I/O. - if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { - t.testEmbeddedByValue() - } - s.RegisterService(&PhoneNumberService_ServiceDesc, srv) -} - -func _PhoneNumberService_ListPhoneNumberInventory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListPhoneNumberInventoryRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(PhoneNumberServiceServer).ListPhoneNumberInventory(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: PhoneNumberService_ListPhoneNumberInventory_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(PhoneNumberServiceServer).ListPhoneNumberInventory(ctx, req.(*ListPhoneNumberInventoryRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _PhoneNumberService_PurchasePhoneNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PurchasePhoneNumberRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(PhoneNumberServiceServer).PurchasePhoneNumber(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: PhoneNumberService_PurchasePhoneNumber_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(PhoneNumberServiceServer).PurchasePhoneNumber(ctx, req.(*PurchasePhoneNumberRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _PhoneNumberService_ListPurchasedPhoneNumbers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ListPurchasedPhoneNumbersRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(PhoneNumberServiceServer).ListPurchasedPhoneNumbers(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: PhoneNumberService_ListPurchasedPhoneNumbers_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(PhoneNumberServiceServer).ListPurchasedPhoneNumbers(ctx, req.(*ListPurchasedPhoneNumbersRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _PhoneNumberService_ReleasePhoneNumber_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ReleasePhoneNumberRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(PhoneNumberServiceServer).ReleasePhoneNumber(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: PhoneNumberService_ReleasePhoneNumber_FullMethodName, - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(PhoneNumberServiceServer).ReleasePhoneNumber(ctx, req.(*ReleasePhoneNumberRequest)) - } - return interceptor(ctx, in, info, handler) -} - -// PhoneNumberService_ServiceDesc is the grpc.ServiceDesc for PhoneNumberService service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var PhoneNumberService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "livekit.PhoneNumberService", - HandlerType: (*PhoneNumberServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "ListPhoneNumberInventory", - Handler: _PhoneNumberService_ListPhoneNumberInventory_Handler, - }, - { - MethodName: "PurchasePhoneNumber", - Handler: _PhoneNumberService_PurchasePhoneNumber_Handler, - }, - { - MethodName: "ListPurchasedPhoneNumbers", - Handler: _PhoneNumberService_ListPurchasedPhoneNumbers_Handler, - }, - { - MethodName: "ReleasePhoneNumber", - Handler: _PhoneNumberService_ReleasePhoneNumber_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "livekit_phone_number.proto", -} From d5125cc44e452d7814ccc51ff590570eded239a2 Mon Sep 17 00:00:00 2001 From: Nishad Musthafa Date: Tue, 26 Aug 2025 19:52:49 -0700 Subject: [PATCH 4/8] Checking in changeset --- .changeset/heavy-dodos-act.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/heavy-dodos-act.md diff --git a/.changeset/heavy-dodos-act.md b/.changeset/heavy-dodos-act.md new file mode 100644 index 000000000..cb0ac5faa --- /dev/null +++ b/.changeset/heavy-dodos-act.md @@ -0,0 +1,5 @@ +--- +"github.com/livekit/protocol": patch +--- + +Adding get and update apis for livekit phone numbers From 6b3e75fb7c759106bf78bf8fb631c377074cd1f8 Mon Sep 17 00:00:00 2001 From: Nishad Musthafa Date: Wed, 27 Aug 2025 10:47:46 -0700 Subject: [PATCH 5/8] Using rule id instead of dispatchruleinfo struct for PurchasedPhoneNumber --- protobufs/livekit_phone_number.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/protobufs/livekit_phone_number.proto b/protobufs/livekit_phone_number.proto index 62168dc49..3c68470c2 100644 --- a/protobufs/livekit_phone_number.proto +++ b/protobufs/livekit_phone_number.proto @@ -165,5 +165,5 @@ message PurchasedPhoneNumber { PhoneNumberStatus status = 3; // Current status of the phone number google.protobuf.Timestamp assigned_at = 4; // Timestamp when the number was assigned google.protobuf.Timestamp released_at = 5; // Timestamp when the number was released (if applicable) - SIPDispatchRuleInfo sip_dispatch_rule = 6; // Optional: Associated SIP dispatch rule + string sip_dispatch_rule_id = 6; // Optional: Associated SIP dispatch rule } From 4ace51e2357603e5e1de3428686a242b8e3764fe Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 27 Aug 2025 17:49:40 +0000 Subject: [PATCH 6/8] generated protobuf --- livekit/livekit_phone_number.pb.go | 50 ++++---- livekit/livekit_phone_number.twirp.go | 159 +++++++++++++------------- 2 files changed, 103 insertions(+), 106 deletions(-) diff --git a/livekit/livekit_phone_number.pb.go b/livekit/livekit_phone_number.pb.go index 677cce59c..085638957 100644 --- a/livekit/livekit_phone_number.pb.go +++ b/livekit/livekit_phone_number.pb.go @@ -1033,7 +1033,7 @@ type PurchasedPhoneNumber struct { Status PhoneNumberStatus `protobuf:"varint,3,opt,name=status,proto3,enum=livekit.PhoneNumberStatus" json:"status,omitempty"` // Current status of the phone number AssignedAt *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=assigned_at,json=assignedAt,proto3" json:"assigned_at,omitempty"` // Timestamp when the number was assigned ReleasedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=released_at,json=releasedAt,proto3" json:"released_at,omitempty"` // Timestamp when the number was released (if applicable) - SipDispatchRule *SIPDispatchRuleInfo `protobuf:"bytes,6,opt,name=sip_dispatch_rule,json=sipDispatchRule,proto3" json:"sip_dispatch_rule,omitempty"` // Optional: Associated SIP dispatch rule + SipDispatchRuleId string `protobuf:"bytes,6,opt,name=sip_dispatch_rule_id,json=sipDispatchRuleId,proto3" json:"sip_dispatch_rule_id,omitempty"` // Optional: Associated SIP dispatch rule unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -1103,11 +1103,11 @@ func (x *PurchasedPhoneNumber) GetReleasedAt() *timestamppb.Timestamp { return nil } -func (x *PurchasedPhoneNumber) GetSipDispatchRule() *SIPDispatchRuleInfo { +func (x *PurchasedPhoneNumber) GetSipDispatchRuleId() string { if x != nil { - return x.SipDispatchRule + return x.SipDispatchRuleId } - return nil + return "" } var File_livekit_phone_number_proto protoreflect.FileDescriptor @@ -1180,7 +1180,7 @@ const file_livekit_phone_number_proto_rawDesc = "" + "\x18PhoneNumberInventoryItem\x12=\n" + "\fphone_number\x18\x01 \x01(\v2\x1a.livekit.GlobalPhoneNumberR\vphoneNumber\x12\"\n" + "\fcapabilities\x18\x02 \x03(\tR\fcapabilities\x12,\n" + - "\x05costs\x18\x03 \x03(\v2\x16.livekit.TelephonyCostR\x05costs\"\x88\x03\n" + + "\x05costs\x18\x03 \x03(\v2\x16.livekit.TelephonyCostR\x05costs\"\xef\x02\n" + "\x14PurchasedPhoneNumber\x129\n" + "\x19purchased_phone_number_id\x18\x01 \x01(\tR\x16purchasedPhoneNumberId\x12=\n" + "\fphone_number\x18\x02 \x01(\v2\x1a.livekit.GlobalPhoneNumberR\vphoneNumber\x122\n" + @@ -1188,8 +1188,8 @@ const file_livekit_phone_number_proto_rawDesc = "" + "\vassigned_at\x18\x04 \x01(\v2\x1a.google.protobuf.TimestampR\n" + "assignedAt\x12;\n" + "\vreleased_at\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\n" + - "releasedAt\x12H\n" + - "\x11sip_dispatch_rule\x18\x06 \x01(\v2\x1c.livekit.SIPDispatchRuleInfoR\x0fsipDispatchRule*\xf9\x01\n" + + "releasedAt\x12/\n" + + "\x14sip_dispatch_rule_id\x18\x06 \x01(\tR\x11sipDispatchRuleId*\xf9\x01\n" + "\x11TelephonyCostType\x12#\n" + "\x1fTELEPHONY_COST_TYPE_UNSPECIFIED\x10\x00\x12%\n" + "!TELEPHONY_COST_TYPE_NUMBER_RENTAL\x10\x01\x12%\n" + @@ -1245,7 +1245,6 @@ var file_livekit_phone_number_proto_goTypes = []any{ (*PurchasedPhoneNumber)(nil), // 17: livekit.PurchasedPhoneNumber (*TokenPagination)(nil), // 18: livekit.TokenPagination (*timestamppb.Timestamp)(nil), // 19: google.protobuf.Timestamp - (*SIPDispatchRuleInfo)(nil), // 20: livekit.SIPDispatchRuleInfo } var file_livekit_phone_number_proto_depIdxs = []int32{ 18, // 0: livekit.ListPhoneNumberInventoryRequest.page_token:type_name -> livekit.TokenPagination @@ -1267,24 +1266,23 @@ var file_livekit_phone_number_proto_depIdxs = []int32{ 1, // 16: livekit.PurchasedPhoneNumber.status:type_name -> livekit.PhoneNumberStatus 19, // 17: livekit.PurchasedPhoneNumber.assigned_at:type_name -> google.protobuf.Timestamp 19, // 18: livekit.PurchasedPhoneNumber.released_at:type_name -> google.protobuf.Timestamp - 20, // 19: livekit.PurchasedPhoneNumber.sip_dispatch_rule:type_name -> livekit.SIPDispatchRuleInfo - 2, // 20: livekit.PhoneNumberService.ListPhoneNumberInventory:input_type -> livekit.ListPhoneNumberInventoryRequest - 4, // 21: livekit.PhoneNumberService.PurchasePhoneNumber:input_type -> livekit.PurchasePhoneNumberRequest - 6, // 22: livekit.PhoneNumberService.ListPurchasedPhoneNumbers:input_type -> livekit.ListPurchasedPhoneNumbersRequest - 8, // 23: livekit.PhoneNumberService.GetPurchasedPhoneNumber:input_type -> livekit.GetPurchasedPhoneNumberRequest - 10, // 24: livekit.PhoneNumberService.UpdatePurchasedPhoneNumber:input_type -> livekit.UpdatePurchasedPhoneNumberRequest - 12, // 25: livekit.PhoneNumberService.ReleasePurchasedPhoneNumber:input_type -> livekit.ReleasePurchasedPhoneNumbersRequest - 3, // 26: livekit.PhoneNumberService.ListPhoneNumberInventory:output_type -> livekit.ListPhoneNumberInventoryResponse - 5, // 27: livekit.PhoneNumberService.PurchasePhoneNumber:output_type -> livekit.PurchasePhoneNumberResponse - 7, // 28: livekit.PhoneNumberService.ListPurchasedPhoneNumbers:output_type -> livekit.ListPurchasedPhoneNumbersResponse - 9, // 29: livekit.PhoneNumberService.GetPurchasedPhoneNumber:output_type -> livekit.GetPurchasedPhoneNumberResponse - 11, // 30: livekit.PhoneNumberService.UpdatePurchasedPhoneNumber:output_type -> livekit.UpdatePurchasedPhoneNumberResponse - 13, // 31: livekit.PhoneNumberService.ReleasePurchasedPhoneNumber:output_type -> livekit.ReleasePurchasedPhoneNumbersResponse - 26, // [26:32] is the sub-list for method output_type - 20, // [20:26] is the sub-list for method input_type - 20, // [20:20] is the sub-list for extension type_name - 20, // [20:20] is the sub-list for extension extendee - 0, // [0:20] is the sub-list for field type_name + 2, // 19: livekit.PhoneNumberService.ListPhoneNumberInventory:input_type -> livekit.ListPhoneNumberInventoryRequest + 4, // 20: livekit.PhoneNumberService.PurchasePhoneNumber:input_type -> livekit.PurchasePhoneNumberRequest + 6, // 21: livekit.PhoneNumberService.ListPurchasedPhoneNumbers:input_type -> livekit.ListPurchasedPhoneNumbersRequest + 8, // 22: livekit.PhoneNumberService.GetPurchasedPhoneNumber:input_type -> livekit.GetPurchasedPhoneNumberRequest + 10, // 23: livekit.PhoneNumberService.UpdatePurchasedPhoneNumber:input_type -> livekit.UpdatePurchasedPhoneNumberRequest + 12, // 24: livekit.PhoneNumberService.ReleasePurchasedPhoneNumber:input_type -> livekit.ReleasePurchasedPhoneNumbersRequest + 3, // 25: livekit.PhoneNumberService.ListPhoneNumberInventory:output_type -> livekit.ListPhoneNumberInventoryResponse + 5, // 26: livekit.PhoneNumberService.PurchasePhoneNumber:output_type -> livekit.PurchasePhoneNumberResponse + 7, // 27: livekit.PhoneNumberService.ListPurchasedPhoneNumbers:output_type -> livekit.ListPurchasedPhoneNumbersResponse + 9, // 28: livekit.PhoneNumberService.GetPurchasedPhoneNumber:output_type -> livekit.GetPurchasedPhoneNumberResponse + 11, // 29: livekit.PhoneNumberService.UpdatePurchasedPhoneNumber:output_type -> livekit.UpdatePurchasedPhoneNumberResponse + 13, // 30: livekit.PhoneNumberService.ReleasePurchasedPhoneNumber:output_type -> livekit.ReleasePurchasedPhoneNumbersResponse + 25, // [25:31] is the sub-list for method output_type + 19, // [19:25] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name } func init() { file_livekit_phone_number_proto_init() } diff --git a/livekit/livekit_phone_number.twirp.go b/livekit/livekit_phone_number.twirp.go index 0f9852640..c9f9ccc0c 100644 --- a/livekit/livekit_phone_number.twirp.go +++ b/livekit/livekit_phone_number.twirp.go @@ -1919,84 +1919,83 @@ func (s *phoneNumberServiceServer) PathPrefix() string { } var twirpFileDescriptor6 = []byte{ - // 1262 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xdd, 0x8e, 0xd3, 0xc6, - 0x17, 0xc7, 0xc9, 0x66, 0xd9, 0x9c, 0xf0, 0xb1, 0x3b, 0xff, 0x15, 0x18, 0x2f, 0x90, 0xac, 0x17, - 0xf8, 0xa7, 0x94, 0x66, 0xd5, 0x50, 0x81, 0x10, 0x42, 0x22, 0x9b, 0x35, 0x10, 0x69, 0xc9, 0x46, - 0x8e, 0x83, 0x44, 0x6f, 0x2c, 0xc7, 0x99, 0xcd, 0x8e, 0x70, 0x3c, 0xc6, 0x33, 0xa6, 0x8d, 0x54, - 0xf5, 0xb6, 0x7d, 0x87, 0xb6, 0x4f, 0xd0, 0x9b, 0xaa, 0xb7, 0x7d, 0x81, 0x3e, 0x41, 0x1f, 0xa3, - 0xf7, 0xbd, 0xab, 0xfc, 0x99, 0x2f, 0x3b, 0x49, 0x55, 0xa4, 0x5e, 0xfa, 0xcc, 0xef, 0xcc, 0x39, - 0xf3, 0x3b, 0x9f, 0x06, 0xc9, 0x22, 0x1f, 0xf0, 0x3b, 0xc2, 0x75, 0xe7, 0x9c, 0xda, 0x58, 0xb7, - 0xbd, 0x51, 0x1f, 0xbb, 0x35, 0xc7, 0xa5, 0x9c, 0xa2, 0x8b, 0xd1, 0x99, 0x54, 0x1e, 0x52, 0x3a, - 0xb4, 0xf0, 0x61, 0x20, 0xee, 0x7b, 0x67, 0x87, 0x9c, 0x8c, 0x30, 0xe3, 0xc6, 0xc8, 0x09, 0x91, - 0xd2, 0x6e, 0x7c, 0xcb, 0x88, 0x0e, 0xb0, 0xc5, 0x22, 0xe9, 0x4e, 0x2c, 0x65, 0x24, 0x02, 0xca, - 0xbf, 0x08, 0x50, 0x3e, 0x21, 0x8c, 0x77, 0x7c, 0x6b, 0xed, 0xc0, 0x58, 0xcb, 0xfe, 0x80, 0x6d, - 0x4e, 0xdd, 0xb1, 0x8a, 0xdf, 0x7b, 0x98, 0x71, 0xb4, 0x0f, 0x97, 0x4c, 0xea, 0xd9, 0xdc, 0x1d, - 0xeb, 0x26, 0x1d, 0x60, 0x51, 0xa8, 0x08, 0xd5, 0xa2, 0x5a, 0x8a, 0x64, 0x4d, 0x3a, 0xc0, 0x68, - 0x0f, 0x8a, 0x86, 0x8b, 0x8d, 0xf0, 0x3c, 0x17, 0x9c, 0x6f, 0xf9, 0x82, 0xe0, 0x70, 0x17, 0x0a, - 0x16, 0x19, 0x11, 0x2e, 0xe6, 0x2b, 0x42, 0xb5, 0xa0, 0x86, 0x1f, 0xe8, 0x31, 0x80, 0x63, 0x0c, - 0xb1, 0xce, 0xe9, 0x3b, 0x6c, 0x8b, 0x1b, 0x15, 0xa1, 0x5a, 0xaa, 0x8b, 0xb5, 0xc8, 0xc3, 0x9a, - 0xe6, 0x4b, 0x3b, 0xc6, 0x90, 0xd8, 0x06, 0x27, 0xd4, 0x56, 0x8b, 0x3e, 0x36, 0x10, 0xca, 0x3f, - 0x09, 0x50, 0xc9, 0x76, 0x99, 0x39, 0xd4, 0x66, 0x18, 0x3d, 0x86, 0x02, 0xe1, 0x78, 0xc4, 0x44, - 0xa1, 0x92, 0xaf, 0x96, 0xea, 0xfb, 0xc9, 0xc5, 0x69, 0x5a, 0x2d, 0x8e, 0x47, 0x6a, 0x88, 0x47, - 0xcf, 0xe1, 0xaa, 0x8d, 0xbf, 0xe6, 0xfa, 0x94, 0x6f, 0xb9, 0x15, 0xbe, 0x5d, 0xf6, 0x15, 0x3a, - 0x89, 0x7f, 0x2e, 0x48, 0x1d, 0xcf, 0x35, 0xcf, 0x0d, 0x86, 0xa7, 0x8c, 0xc5, 0x64, 0x1e, 0xc0, - 0xe5, 0xe9, 0xc8, 0x86, 0x0e, 0x16, 0xd5, 0x4b, 0xce, 0x04, 0xca, 0xd0, 0x21, 0xec, 0x32, 0xe2, - 0xe8, 0x03, 0xc2, 0x1c, 0x83, 0x9b, 0xe7, 0xba, 0xeb, 0x59, 0x58, 0x27, 0x83, 0x88, 0xd9, 0x1d, - 0x46, 0x9c, 0xe3, 0xe8, 0x48, 0xf5, 0x2c, 0xdc, 0x1a, 0xc8, 0x06, 0xec, 0xa5, 0xda, 0x8c, 0xd8, - 0x38, 0x4a, 0x33, 0x5a, 0xaa, 0xdf, 0x9a, 0xb0, 0x12, 0x29, 0x0f, 0xa6, 0xb5, 0x67, 0x7c, 0x92, - 0xff, 0x88, 0x69, 0x4f, 0x81, 0xb2, 0xf8, 0x75, 0x49, 0xa8, 0x85, 0xe9, 0x50, 0xd7, 0x61, 0x93, - 0x71, 0x83, 0x7b, 0x2c, 0x78, 0xc0, 0x95, 0xba, 0x94, 0x16, 0x8d, 0x6e, 0x80, 0x50, 0x23, 0xe4, - 0x5c, 0x7a, 0xe4, 0xd7, 0x4e, 0x8f, 0x4c, 0xee, 0x36, 0xb2, 0xb8, 0xfb, 0x4d, 0x80, 0xfd, 0x25, - 0x0f, 0x8b, 0x28, 0x7c, 0x38, 0x9b, 0x50, 0x2b, 0xa8, 0xfb, 0x58, 0xc9, 0x84, 0xca, 0x50, 0xe2, - 0x94, 0x1b, 0x96, 0x1e, 0x54, 0x5b, 0x54, 0x41, 0x10, 0x88, 0x9a, 0xbe, 0x44, 0xfe, 0x16, 0x6e, - 0xbf, 0xc4, 0xa9, 0xbe, 0xc7, 0x31, 0x79, 0x02, 0x37, 0x9c, 0xf8, 0x78, 0xa6, 0xab, 0xf8, 0xac, - 0x84, 0xb5, 0x7c, 0xcd, 0x49, 0xd1, 0x6f, 0x0d, 0xfc, 0xca, 0x9f, 0x56, 0x88, 0xf2, 0xaf, 0x34, - 0x95, 0x17, 0xb2, 0x09, 0xe5, 0x4c, 0xfb, 0x11, 0x75, 0xcf, 0xe7, 0x6e, 0x11, 0x02, 0x0a, 0x56, - 0x30, 0x38, 0x63, 0xe4, 0x57, 0x01, 0xf6, 0x7b, 0xce, 0xc0, 0xe0, 0xf8, 0x3f, 0x7b, 0x68, 0x66, - 0x5e, 0xe5, 0xb3, 0xf2, 0xea, 0x0c, 0xe4, 0x65, 0x3e, 0x7f, 0x34, 0x72, 0xbe, 0x13, 0xe0, 0x40, - 0xc5, 0x16, 0xf6, 0x6b, 0x7f, 0x59, 0x6d, 0x3e, 0x05, 0x29, 0x93, 0x9e, 0xb8, 0x0d, 0x5d, 0x4f, - 0xe7, 0x87, 0x2d, 0xb6, 0xad, 0xdc, 0x62, 0xdb, 0x92, 0xef, 0xc1, 0x9d, 0xe5, 0x8e, 0x84, 0x6f, - 0x96, 0xff, 0xcc, 0xc1, 0xce, 0x4b, 0x8b, 0xf6, 0x0d, 0x6b, 0xea, 0x18, 0x5d, 0x81, 0x5c, 0x12, - 0xa7, 0x1c, 0x19, 0xf8, 0xa9, 0x8f, 0x3f, 0x7f, 0xf4, 0x85, 0x7e, 0x46, 0xdd, 0x91, 0xc1, 0xa3, - 0x90, 0x80, 0x2f, 0x7a, 0x11, 0x48, 0x16, 0xe6, 0x52, 0x7e, 0xc5, 0x5c, 0xda, 0x98, 0x9b, 0x4b, - 0x65, 0x28, 0x45, 0x04, 0xf0, 0xb1, 0x83, 0xc5, 0x42, 0x68, 0x20, 0x14, 0x69, 0x63, 0x07, 0x23, - 0x09, 0xb6, 0x2c, 0x6a, 0x1a, 0x16, 0xe1, 0x63, 0x71, 0x33, 0x54, 0x8e, 0xbf, 0xd1, 0x35, 0xd8, - 0x74, 0xf1, 0x90, 0x50, 0x5b, 0xbc, 0x18, 0x9c, 0x44, 0x5f, 0xe8, 0x16, 0x00, 0x73, 0x8c, 0x91, - 0xce, 0x4c, 0xea, 0x62, 0x71, 0xab, 0x22, 0x54, 0x05, 0xb5, 0xe8, 0x4b, 0xba, 0xbe, 0x00, 0x3d, - 0x01, 0x30, 0x5d, 0x6c, 0x70, 0x3c, 0xd0, 0x0d, 0x2e, 0x16, 0x83, 0x60, 0x4b, 0xb5, 0x70, 0x9c, - 0xd7, 0xe2, 0x71, 0x5e, 0xd3, 0xe2, 0x71, 0xae, 0x16, 0x23, 0x74, 0xc3, 0x4f, 0x6f, 0xf0, 0x82, - 0x7c, 0x0a, 0x54, 0x61, 0xb5, 0x6a, 0x84, 0x6e, 0x70, 0xf9, 0x47, 0x01, 0x2e, 0x6b, 0xd8, 0xc2, - 0x7e, 0xb4, 0xc6, 0x4d, 0xca, 0x38, 0x7a, 0x04, 0x5b, 0x2e, 0x66, 0xd4, 0x73, 0xcd, 0x70, 0x9e, - 0x4f, 0x37, 0xe5, 0x19, 0xa4, 0x4f, 0x84, 0x9a, 0x60, 0x7d, 0x4a, 0x4c, 0xcf, 0x75, 0xb1, 0x6d, - 0x8e, 0xe3, 0x39, 0x1f, 0x7f, 0xfb, 0xcd, 0xdf, 0x71, 0x89, 0x19, 0x06, 0x42, 0x50, 0xc3, 0x0f, - 0x3f, 0x4a, 0x7d, 0x62, 0x59, 0xc4, 0x1e, 0xea, 0x9e, 0x4d, 0x78, 0x14, 0x85, 0x52, 0x24, 0xeb, - 0xd9, 0x84, 0xcb, 0x3f, 0x0b, 0x20, 0x66, 0xcd, 0x65, 0xf4, 0x2c, 0xb5, 0x40, 0x26, 0xde, 0x2e, - 0x24, 0xd2, 0x6c, 0xd9, 0xca, 0x70, 0xc9, 0x34, 0x1c, 0xa3, 0x4f, 0x2c, 0xc2, 0x09, 0x4e, 0xf2, - 0x76, 0x5a, 0x86, 0x1e, 0x40, 0xc1, 0xa4, 0x8c, 0x33, 0x31, 0x1f, 0xf4, 0xf6, 0x6b, 0xe9, 0x4c, - 0xa8, 0x21, 0x48, 0xfe, 0x3e, 0x0f, 0xbb, 0x69, 0xf9, 0xfd, 0x6f, 0xfa, 0xcf, 0xb3, 0x94, 0xfe, - 0xf3, 0x0f, 0x1e, 0x39, 0x19, 0xb0, 0xf9, 0xb5, 0x07, 0xec, 0x53, 0x28, 0x19, 0x8c, 0x91, 0xa1, - 0x1d, 0xe6, 0xd3, 0xc6, 0xca, 0x7c, 0x82, 0x18, 0xde, 0xf0, 0x7b, 0x49, 0xc9, 0x0d, 0x2b, 0x3d, - 0x50, 0x2e, 0xac, 0x56, 0x8e, 0xe1, 0x0d, 0x8e, 0x5e, 0xc1, 0xce, 0x42, 0x27, 0x0d, 0xea, 0xab, - 0x54, 0xbf, 0x99, 0x38, 0xde, 0x6d, 0x75, 0x66, 0xfa, 0xa9, 0x7d, 0x46, 0xd5, 0xab, 0x73, 0x4d, - 0xf6, 0xfe, 0x5f, 0x02, 0xec, 0x2c, 0x64, 0x2b, 0x3a, 0x80, 0xb2, 0xa6, 0x9c, 0x28, 0x9d, 0x57, - 0xa7, 0xed, 0xb7, 0x7a, 0xf3, 0xb4, 0xab, 0xe9, 0xda, 0xdb, 0x8e, 0xa2, 0xf7, 0xda, 0xdd, 0x8e, - 0xd2, 0x6c, 0xbd, 0x68, 0x29, 0xc7, 0xdb, 0x17, 0xd0, 0x5d, 0xd8, 0x4f, 0x03, 0xb5, 0x7b, 0xaf, - 0x8f, 0x14, 0x55, 0x57, 0x95, 0xb6, 0xd6, 0x38, 0xd9, 0x16, 0xb2, 0x60, 0x6f, 0x4e, 0x5b, 0x4d, - 0x45, 0x6f, 0xb5, 0x8f, 0x4e, 0x7b, 0xed, 0xe3, 0xed, 0x1c, 0xba, 0x07, 0x72, 0x36, 0xec, 0xb4, - 0xa7, 0x85, 0xb8, 0x7c, 0x96, 0x6b, 0xdd, 0xd7, 0xdd, 0xe4, 0xb2, 0x0d, 0x74, 0x07, 0x2a, 0x59, - 0xa0, 0xe4, 0xaa, 0xc2, 0xfd, 0x1f, 0x04, 0xd8, 0x59, 0x88, 0xae, 0x6f, 0xc0, 0xd7, 0x4b, 0x1e, - 0xd2, 0xd5, 0x1a, 0x5a, 0xaf, 0x3b, 0xf7, 0xf6, 0xdb, 0x20, 0xa5, 0x81, 0x1a, 0x4d, 0xad, 0xf5, - 0x46, 0xd9, 0x16, 0x50, 0x19, 0xf6, 0xd2, 0xce, 0x3b, 0x4a, 0xfb, 0xb8, 0xd5, 0x7e, 0xb9, 0x9d, - 0x43, 0x15, 0xb8, 0x99, 0x06, 0x50, 0x95, 0x13, 0xa5, 0xd1, 0x55, 0x8e, 0xb7, 0xf3, 0xf5, 0xdf, - 0x0b, 0x80, 0xa6, 0xbd, 0xc3, 0xee, 0x07, 0xbf, 0x19, 0xbc, 0x07, 0x31, 0x6b, 0x75, 0x47, 0xd5, - 0x24, 0xf6, 0x2b, 0x7e, 0x48, 0xa4, 0x4f, 0xd6, 0x40, 0x46, 0xa3, 0xe6, 0x02, 0xea, 0xc3, 0xff, - 0x52, 0x56, 0x63, 0x74, 0xb0, 0x30, 0x61, 0x17, 0x37, 0x0a, 0xe9, 0xce, 0x72, 0x50, 0x62, 0x83, - 0xc3, 0x8d, 0xcc, 0x0d, 0x12, 0xcd, 0x79, 0xbb, 0x64, 0x44, 0x4b, 0xf7, 0xd7, 0x81, 0x26, 0x56, - 0x6d, 0xb8, 0x9e, 0xb1, 0x7a, 0xa1, 0xff, 0x4f, 0x3a, 0xc7, 0xd2, 0xe5, 0x50, 0xaa, 0xae, 0x06, - 0x26, 0xf6, 0xbe, 0x02, 0x29, 0x7b, 0xa1, 0x41, 0x13, 0xdf, 0x57, 0x6e, 0x6a, 0xd2, 0xa7, 0x6b, - 0x61, 0x13, 0xc3, 0xdf, 0xc0, 0xde, 0x92, 0xbd, 0x02, 0x3d, 0x48, 0x6e, 0x5b, 0x63, 0x0d, 0x92, - 0x3e, 0x5b, 0x13, 0x1d, 0x5b, 0x3f, 0xba, 0xfb, 0xe5, 0xc1, 0x90, 0xf0, 0x73, 0xaf, 0x5f, 0x33, - 0xe9, 0xe8, 0x30, 0x52, 0x0e, 0x7f, 0xbd, 0x4d, 0x6a, 0xc5, 0x82, 0xfe, 0x66, 0x20, 0x79, 0xf8, - 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x93, 0x5f, 0xe3, 0x5b, 0xc1, 0x0f, 0x00, 0x00, + // 1242 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xdd, 0x8e, 0xdb, 0x44, + 0x14, 0xae, 0x93, 0xcd, 0x76, 0x73, 0xd2, 0x96, 0xec, 0xb0, 0x6a, 0x5d, 0x2f, 0x6d, 0xb2, 0xde, + 0xb6, 0x84, 0x52, 0xb2, 0x22, 0x45, 0xad, 0xaa, 0xaa, 0x52, 0xb3, 0x59, 0xb7, 0x44, 0xda, 0x66, + 0x23, 0xc7, 0xa9, 0x54, 0x6e, 0x2c, 0xc7, 0x99, 0xcd, 0x8e, 0xea, 0x78, 0x5c, 0xcf, 0x78, 0x21, + 0x12, 0xe2, 0x96, 0x87, 0x00, 0x9e, 0x80, 0x1b, 0xc4, 0x2d, 0x2f, 0xc0, 0x13, 0xf0, 0x18, 0x70, + 0xcd, 0x1d, 0xf2, 0x6f, 0x92, 0x8d, 0x9d, 0x04, 0x51, 0x89, 0x4b, 0x9f, 0xf9, 0xce, 0x9c, 0x33, + 0xdf, 0xf9, 0x35, 0x48, 0x16, 0x39, 0xc7, 0x6f, 0x09, 0xd7, 0x9d, 0x33, 0x6a, 0x63, 0xdd, 0xf6, + 0xc6, 0x03, 0xec, 0xd6, 0x1d, 0x97, 0x72, 0x8a, 0x2e, 0x47, 0x67, 0x52, 0x65, 0x44, 0xe9, 0xc8, + 0xc2, 0x07, 0x81, 0x78, 0xe0, 0x9d, 0x1e, 0x70, 0x32, 0xc6, 0x8c, 0x1b, 0x63, 0x27, 0x44, 0x4a, + 0x3b, 0xf1, 0x2d, 0x63, 0x3a, 0xc4, 0x16, 0x8b, 0xa4, 0xdb, 0xb1, 0x94, 0x91, 0x08, 0x28, 0xff, + 0x22, 0x40, 0xe5, 0x98, 0x30, 0xde, 0xf5, 0xad, 0x75, 0x02, 0x63, 0x6d, 0xfb, 0x1c, 0xdb, 0x9c, + 0xba, 0x13, 0x15, 0xbf, 0xf3, 0x30, 0xe3, 0x68, 0x0f, 0xae, 0x98, 0xd4, 0xb3, 0xb9, 0x3b, 0xd1, + 0x4d, 0x3a, 0xc4, 0xa2, 0x50, 0x15, 0x6a, 0x45, 0xb5, 0x14, 0xc9, 0x5a, 0x74, 0x88, 0xd1, 0x2e, + 0x14, 0x0d, 0x17, 0x1b, 0xe1, 0x79, 0x2e, 0x38, 0xdf, 0xf2, 0x05, 0xc1, 0xe1, 0x0e, 0x14, 0x2c, + 0x32, 0x26, 0x5c, 0xcc, 0x57, 0x85, 0x5a, 0x41, 0x0d, 0x3f, 0xd0, 0x63, 0x00, 0xc7, 0x18, 0x61, + 0x9d, 0xd3, 0xb7, 0xd8, 0x16, 0x37, 0xaa, 0x42, 0xad, 0xd4, 0x10, 0xeb, 0x91, 0x87, 0x75, 0xcd, + 0x97, 0x76, 0x8d, 0x11, 0xb1, 0x0d, 0x4e, 0xa8, 0xad, 0x16, 0x7d, 0x6c, 0x20, 0x94, 0x7f, 0x12, + 0xa0, 0x9a, 0xed, 0x32, 0x73, 0xa8, 0xcd, 0x30, 0x7a, 0x0c, 0x05, 0xc2, 0xf1, 0x98, 0x89, 0x42, + 0x35, 0x5f, 0x2b, 0x35, 0xf6, 0x92, 0x8b, 0xd3, 0xb4, 0xda, 0x1c, 0x8f, 0xd5, 0x10, 0x8f, 0x9e, + 0xc3, 0x07, 0x36, 0xfe, 0x86, 0xeb, 0x33, 0xbe, 0xe5, 0x56, 0xf8, 0x76, 0xd5, 0x57, 0xe8, 0x26, + 0xfe, 0xb9, 0x20, 0x75, 0x3d, 0xd7, 0x3c, 0x33, 0x18, 0x9e, 0x31, 0x16, 0x93, 0xb9, 0x0f, 0x57, + 0x67, 0x23, 0x1b, 0x3a, 0x58, 0x54, 0xaf, 0x38, 0x53, 0x28, 0x43, 0x07, 0xb0, 0xc3, 0x88, 0xa3, + 0x0f, 0x09, 0x73, 0x0c, 0x6e, 0x9e, 0xe9, 0xae, 0x67, 0x61, 0x9d, 0x0c, 0x23, 0x66, 0xb7, 0x19, + 0x71, 0x8e, 0xa2, 0x23, 0xd5, 0xb3, 0x70, 0x7b, 0x28, 0x1b, 0xb0, 0x9b, 0x6a, 0x33, 0x62, 0xe3, + 0x30, 0xcd, 0x68, 0xa9, 0x71, 0x6b, 0xca, 0x4a, 0xa4, 0x3c, 0x9c, 0xd5, 0x9e, 0xf3, 0x49, 0xfe, + 0x23, 0xa6, 0x3d, 0x05, 0xca, 0xe2, 0xd7, 0x25, 0xa1, 0x16, 0x66, 0x43, 0xdd, 0x80, 0x4d, 0xc6, + 0x0d, 0xee, 0xb1, 0xe0, 0x01, 0xd7, 0x1a, 0x52, 0x5a, 0x34, 0x7a, 0x01, 0x42, 0x8d, 0x90, 0x17, + 0xd2, 0x23, 0xbf, 0x76, 0x7a, 0x64, 0x72, 0xb7, 0x91, 0xc5, 0xdd, 0x6f, 0x02, 0xec, 0x2d, 0x79, + 0x58, 0x44, 0xe1, 0xc3, 0xf9, 0x84, 0x5a, 0x41, 0xdd, 0xfb, 0x4a, 0x26, 0x54, 0x81, 0x12, 0xa7, + 0xdc, 0xb0, 0xf4, 0xa0, 0xda, 0xa2, 0x0a, 0x82, 0x40, 0xd4, 0xf2, 0x25, 0xf2, 0x77, 0x70, 0xfb, + 0x25, 0x4e, 0xf5, 0x3d, 0x8e, 0xc9, 0x13, 0xb8, 0xe9, 0xc4, 0xc7, 0x73, 0x5d, 0xc5, 0x67, 0x25, + 0xac, 0xe5, 0xeb, 0x4e, 0x8a, 0x7e, 0x7b, 0xe8, 0x57, 0xfe, 0xac, 0x42, 0x94, 0x7f, 0xa5, 0x99, + 0xbc, 0x90, 0x4d, 0xa8, 0x64, 0xda, 0x8f, 0xa8, 0x7b, 0x7e, 0xe1, 0x16, 0x21, 0xa0, 0x60, 0x05, + 0x83, 0x73, 0x46, 0x7e, 0x15, 0x60, 0xaf, 0xef, 0x0c, 0x0d, 0x8e, 0xff, 0xb7, 0x87, 0x66, 0xe6, + 0x55, 0x3e, 0x2b, 0xaf, 0x4e, 0x41, 0x5e, 0xe6, 0xf3, 0x7b, 0x23, 0xe7, 0x7b, 0x01, 0xf6, 0x55, + 0x6c, 0x61, 0xbf, 0xf6, 0x97, 0xd5, 0xe6, 0x53, 0x90, 0x32, 0xe9, 0x89, 0xdb, 0xd0, 0x8d, 0x74, + 0x7e, 0xd8, 0x62, 0xdb, 0xca, 0x2d, 0xb6, 0x2d, 0xf9, 0x1e, 0xdc, 0x59, 0xee, 0x48, 0xf8, 0x66, + 0xf9, 0xcf, 0x1c, 0x6c, 0xbf, 0xb4, 0xe8, 0xc0, 0xb0, 0x66, 0x8e, 0xd1, 0x35, 0xc8, 0x25, 0x71, + 0xca, 0x91, 0xa1, 0x9f, 0xfa, 0xf8, 0xf3, 0x47, 0x5f, 0xe8, 0xa7, 0xd4, 0x1d, 0x1b, 0x3c, 0x0a, + 0x09, 0xf8, 0xa2, 0x17, 0x81, 0x64, 0x61, 0x2e, 0xe5, 0x57, 0xcc, 0xa5, 0x8d, 0x0b, 0x73, 0xa9, + 0x02, 0xa5, 0x88, 0x00, 0x3e, 0x71, 0xb0, 0x58, 0x08, 0x0d, 0x84, 0x22, 0x6d, 0xe2, 0x60, 0x24, + 0xc1, 0x96, 0x45, 0x4d, 0xc3, 0x22, 0x7c, 0x22, 0x6e, 0x86, 0xca, 0xf1, 0x37, 0xba, 0x0e, 0x9b, + 0x2e, 0x1e, 0x11, 0x6a, 0x8b, 0x97, 0x83, 0x93, 0xe8, 0x0b, 0xdd, 0x02, 0x60, 0x8e, 0x31, 0xd6, + 0x99, 0x49, 0x5d, 0x2c, 0x6e, 0x55, 0x85, 0x9a, 0xa0, 0x16, 0x7d, 0x49, 0xcf, 0x17, 0xa0, 0x27, + 0x00, 0xa6, 0x8b, 0x0d, 0x8e, 0x87, 0xba, 0xc1, 0xc5, 0x62, 0x10, 0x6c, 0xa9, 0x1e, 0x8e, 0xf3, + 0x7a, 0x3c, 0xce, 0xeb, 0x5a, 0x3c, 0xce, 0xd5, 0x62, 0x84, 0x6e, 0xfa, 0xe9, 0x0d, 0x5e, 0x90, + 0x4f, 0x81, 0x2a, 0xac, 0x56, 0x8d, 0xd0, 0x4d, 0x2e, 0xff, 0x28, 0xc0, 0x55, 0x0d, 0x5b, 0xd8, + 0x8f, 0xd6, 0xa4, 0x45, 0x19, 0x47, 0x8f, 0x60, 0xcb, 0xc5, 0x8c, 0x7a, 0xae, 0x19, 0xce, 0xf3, + 0xd9, 0xa6, 0x3c, 0x87, 0xf4, 0x89, 0x50, 0x13, 0xac, 0x4f, 0x89, 0xe9, 0xb9, 0x2e, 0xb6, 0xcd, + 0x49, 0x3c, 0xe7, 0xe3, 0x6f, 0xbf, 0xf9, 0x3b, 0x2e, 0x31, 0xc3, 0x40, 0x08, 0x6a, 0xf8, 0xe1, + 0x47, 0x69, 0x40, 0x2c, 0x8b, 0xd8, 0x23, 0xdd, 0xb3, 0x09, 0x8f, 0xa2, 0x50, 0x8a, 0x64, 0x7d, + 0x9b, 0x70, 0xf9, 0x67, 0x01, 0xc4, 0xac, 0xb9, 0x8c, 0x9e, 0xa5, 0x16, 0xc8, 0xd4, 0xdb, 0x85, + 0x44, 0x9a, 0x2f, 0x5b, 0x19, 0xae, 0x98, 0x86, 0x63, 0x0c, 0x88, 0x45, 0x38, 0xc1, 0x49, 0xde, + 0xce, 0xca, 0xd0, 0x03, 0x28, 0x98, 0x94, 0x71, 0x26, 0xe6, 0x83, 0xde, 0x7e, 0x3d, 0x9d, 0x09, + 0x35, 0x04, 0xc9, 0x7f, 0xe5, 0x60, 0x27, 0x2d, 0xbf, 0xff, 0x4b, 0xff, 0x79, 0x96, 0xd2, 0x7f, + 0xfe, 0xc5, 0x23, 0xa7, 0x03, 0x36, 0xbf, 0xf6, 0x80, 0x7d, 0x0a, 0x25, 0x83, 0x31, 0x32, 0xb2, + 0xc3, 0x7c, 0xda, 0x58, 0x99, 0x4f, 0x10, 0xc3, 0x9b, 0x7e, 0x2f, 0x29, 0xb9, 0x61, 0xa5, 0x07, + 0xca, 0x85, 0xd5, 0xca, 0x31, 0xbc, 0xc9, 0x33, 0x3b, 0xe9, 0x66, 0x46, 0x27, 0xbd, 0xff, 0xb7, + 0x00, 0xdb, 0x0b, 0x49, 0x89, 0xf6, 0xa1, 0xa2, 0x29, 0xc7, 0x4a, 0xf7, 0xcb, 0x93, 0xce, 0x1b, + 0xbd, 0x75, 0xd2, 0xd3, 0x74, 0xed, 0x4d, 0x57, 0xd1, 0xfb, 0x9d, 0x5e, 0x57, 0x69, 0xb5, 0x5f, + 0xb4, 0x95, 0xa3, 0xf2, 0x25, 0x74, 0x17, 0xf6, 0xd2, 0x40, 0x9d, 0xfe, 0xab, 0x43, 0x45, 0xd5, + 0x55, 0xa5, 0xa3, 0x35, 0x8f, 0xcb, 0x42, 0x16, 0xec, 0xf5, 0x49, 0xbb, 0xa5, 0xe8, 0xed, 0xce, + 0xe1, 0x49, 0xbf, 0x73, 0x54, 0xce, 0xa1, 0x7b, 0x20, 0x67, 0xc3, 0x4e, 0xfa, 0x5a, 0x88, 0xcb, + 0x67, 0xb9, 0xd6, 0x7b, 0xd5, 0x4b, 0x2e, 0xdb, 0x40, 0x77, 0xa0, 0x9a, 0x05, 0x4a, 0xae, 0x2a, + 0xdc, 0xff, 0x41, 0x80, 0xed, 0x85, 0x20, 0xfa, 0x06, 0x7c, 0xbd, 0xe4, 0x21, 0x3d, 0xad, 0xa9, + 0xf5, 0x7b, 0x17, 0xde, 0x7e, 0x1b, 0xa4, 0x34, 0x50, 0xb3, 0xa5, 0xb5, 0x5f, 0x2b, 0x65, 0x01, + 0x55, 0x60, 0x37, 0xed, 0xbc, 0xab, 0x74, 0x8e, 0xda, 0x9d, 0x97, 0xe5, 0x1c, 0xaa, 0xc2, 0x47, + 0x69, 0x00, 0x55, 0x39, 0x56, 0x9a, 0x3d, 0xe5, 0xa8, 0x9c, 0x6f, 0xfc, 0x5e, 0x00, 0x34, 0xeb, + 0x1d, 0x76, 0xcf, 0xfd, 0x9a, 0x7f, 0x07, 0x62, 0xd6, 0x86, 0x8e, 0x6a, 0x49, 0x6e, 0xae, 0xf8, + 0xef, 0x90, 0x3e, 0x59, 0x03, 0x19, 0x4d, 0x94, 0x4b, 0x68, 0x00, 0x1f, 0xa6, 0x6c, 0xc0, 0x68, + 0x7f, 0x61, 0x90, 0x2e, 0x2e, 0x0e, 0xd2, 0x9d, 0xe5, 0xa0, 0xc4, 0x06, 0x87, 0x9b, 0x99, 0x8b, + 0x22, 0xba, 0xe0, 0xed, 0x92, 0x49, 0x2c, 0xdd, 0x5f, 0x07, 0x9a, 0x58, 0xb5, 0xe1, 0x46, 0xc6, + 0x86, 0x85, 0x3e, 0x9e, 0x36, 0x88, 0xa5, 0x3b, 0xa0, 0x54, 0x5b, 0x0d, 0x4c, 0xec, 0x7d, 0x0d, + 0x52, 0xf6, 0xde, 0x82, 0xa6, 0xbe, 0xaf, 0x5c, 0xc8, 0xa4, 0x4f, 0xd7, 0xc2, 0x26, 0x86, 0xbf, + 0x85, 0xdd, 0x25, 0xeb, 0x03, 0x7a, 0x90, 0xdc, 0xb6, 0xc6, 0xb6, 0x23, 0x7d, 0xb6, 0x26, 0x3a, + 0xb6, 0x7e, 0x78, 0xf7, 0xab, 0xfd, 0x11, 0xe1, 0x67, 0xde, 0xa0, 0x6e, 0xd2, 0xf1, 0x41, 0xa4, + 0x1c, 0xfe, 0x61, 0x9b, 0xd4, 0x8a, 0x05, 0x83, 0xcd, 0x40, 0xf2, 0xf0, 0x9f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x89, 0x28, 0x6f, 0x02, 0xa8, 0x0f, 0x00, 0x00, } From e07002326a2fadded43419ecfc2104c7d793d9c4 Mon Sep 17 00:00:00 2001 From: Nishad Musthafa Date: Wed, 27 Aug 2025 11:31:33 -0700 Subject: [PATCH 7/8] Removing unused import --- protobufs/livekit_phone_number.proto | 1 - 1 file changed, 1 deletion(-) diff --git a/protobufs/livekit_phone_number.proto b/protobufs/livekit_phone_number.proto index 3c68470c2..935fcff80 100644 --- a/protobufs/livekit_phone_number.proto +++ b/protobufs/livekit_phone_number.proto @@ -6,7 +6,6 @@ option go_package = "github.com/livekit/protocol/livekit"; import "google/protobuf/timestamp.proto"; import "livekit_models.proto"; -import "livekit_sip.proto"; // Telephony cost type enumeration enum TelephonyCostType { From 8dd9d4a556202961d514ef25b6205adeddf04b7b Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 27 Aug 2025 18:32:47 +0000 Subject: [PATCH 8/8] generated protobuf --- livekit/livekit_phone_number.pb.go | 3 +- livekit/livekit_phone_number.twirp.go | 140 +++++++++++++------------- 2 files changed, 71 insertions(+), 72 deletions(-) diff --git a/livekit/livekit_phone_number.pb.go b/livekit/livekit_phone_number.pb.go index 085638957..43bcdadd8 100644 --- a/livekit/livekit_phone_number.pb.go +++ b/livekit/livekit_phone_number.pb.go @@ -1114,7 +1114,7 @@ var File_livekit_phone_number_proto protoreflect.FileDescriptor const file_livekit_phone_number_proto_rawDesc = "" + "\n" + - "\x1alivekit_phone_number.proto\x12\alivekit\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x14livekit_models.proto\x1a\x11livekit_sip.proto\"\xb0\x01\n" + + "\x1alivekit_phone_number.proto\x12\alivekit\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x14livekit_models.proto\"\xb0\x01\n" + "\x1fListPhoneNumberInventoryRequest\x12!\n" + "\fcountry_code\x18\x01 \x01(\tR\vcountryCode\x12\x1b\n" + "\tarea_code\x18\x02 \x01(\tR\bareaCode\x12\x14\n" + @@ -1291,7 +1291,6 @@ func file_livekit_phone_number_proto_init() { return } file_livekit_models_proto_init() - file_livekit_sip_proto_init() type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ diff --git a/livekit/livekit_phone_number.twirp.go b/livekit/livekit_phone_number.twirp.go index c9f9ccc0c..1d8b635ab 100644 --- a/livekit/livekit_phone_number.twirp.go +++ b/livekit/livekit_phone_number.twirp.go @@ -1919,7 +1919,7 @@ func (s *phoneNumberServiceServer) PathPrefix() string { } var twirpFileDescriptor6 = []byte{ - // 1242 bytes of a gzipped FileDescriptorProto + // 1236 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xdd, 0x8e, 0xdb, 0x44, 0x14, 0xae, 0x93, 0xcd, 0x76, 0x73, 0xd2, 0x96, 0xec, 0xb0, 0x6a, 0x5d, 0x2f, 0x6d, 0xb2, 0xde, 0xb6, 0x84, 0x52, 0xb2, 0x22, 0x45, 0xad, 0xaa, 0xaa, 0x52, 0xb3, 0x59, 0xb7, 0x44, 0xda, 0x66, @@ -1929,73 +1929,73 @@ var twirpFileDescriptor6 = []byte{ 0xdf, 0xf9, 0x35, 0x48, 0x16, 0x39, 0xc7, 0x6f, 0x09, 0xd7, 0x9d, 0x33, 0x6a, 0x63, 0xdd, 0xf6, 0xc6, 0x03, 0xec, 0xd6, 0x1d, 0x97, 0x72, 0x8a, 0x2e, 0x47, 0x67, 0x52, 0x65, 0x44, 0xe9, 0xc8, 0xc2, 0x07, 0x81, 0x78, 0xe0, 0x9d, 0x1e, 0x70, 0x32, 0xc6, 0x8c, 0x1b, 0x63, 0x27, 0x44, 0x4a, - 0x3b, 0xf1, 0x2d, 0x63, 0x3a, 0xc4, 0x16, 0x8b, 0xa4, 0xdb, 0xb1, 0x94, 0x91, 0x08, 0x28, 0xff, - 0x22, 0x40, 0xe5, 0x98, 0x30, 0xde, 0xf5, 0xad, 0x75, 0x02, 0x63, 0x6d, 0xfb, 0x1c, 0xdb, 0x9c, - 0xba, 0x13, 0x15, 0xbf, 0xf3, 0x30, 0xe3, 0x68, 0x0f, 0xae, 0x98, 0xd4, 0xb3, 0xb9, 0x3b, 0xd1, - 0x4d, 0x3a, 0xc4, 0xa2, 0x50, 0x15, 0x6a, 0x45, 0xb5, 0x14, 0xc9, 0x5a, 0x74, 0x88, 0xd1, 0x2e, - 0x14, 0x0d, 0x17, 0x1b, 0xe1, 0x79, 0x2e, 0x38, 0xdf, 0xf2, 0x05, 0xc1, 0xe1, 0x0e, 0x14, 0x2c, - 0x32, 0x26, 0x5c, 0xcc, 0x57, 0x85, 0x5a, 0x41, 0x0d, 0x3f, 0xd0, 0x63, 0x00, 0xc7, 0x18, 0x61, - 0x9d, 0xd3, 0xb7, 0xd8, 0x16, 0x37, 0xaa, 0x42, 0xad, 0xd4, 0x10, 0xeb, 0x91, 0x87, 0x75, 0xcd, - 0x97, 0x76, 0x8d, 0x11, 0xb1, 0x0d, 0x4e, 0xa8, 0xad, 0x16, 0x7d, 0x6c, 0x20, 0x94, 0x7f, 0x12, - 0xa0, 0x9a, 0xed, 0x32, 0x73, 0xa8, 0xcd, 0x30, 0x7a, 0x0c, 0x05, 0xc2, 0xf1, 0x98, 0x89, 0x42, - 0x35, 0x5f, 0x2b, 0x35, 0xf6, 0x92, 0x8b, 0xd3, 0xb4, 0xda, 0x1c, 0x8f, 0xd5, 0x10, 0x8f, 0x9e, - 0xc3, 0x07, 0x36, 0xfe, 0x86, 0xeb, 0x33, 0xbe, 0xe5, 0x56, 0xf8, 0x76, 0xd5, 0x57, 0xe8, 0x26, - 0xfe, 0xb9, 0x20, 0x75, 0x3d, 0xd7, 0x3c, 0x33, 0x18, 0x9e, 0x31, 0x16, 0x93, 0xb9, 0x0f, 0x57, - 0x67, 0x23, 0x1b, 0x3a, 0x58, 0x54, 0xaf, 0x38, 0x53, 0x28, 0x43, 0x07, 0xb0, 0xc3, 0x88, 0xa3, - 0x0f, 0x09, 0x73, 0x0c, 0x6e, 0x9e, 0xe9, 0xae, 0x67, 0x61, 0x9d, 0x0c, 0x23, 0x66, 0xb7, 0x19, - 0x71, 0x8e, 0xa2, 0x23, 0xd5, 0xb3, 0x70, 0x7b, 0x28, 0x1b, 0xb0, 0x9b, 0x6a, 0x33, 0x62, 0xe3, - 0x30, 0xcd, 0x68, 0xa9, 0x71, 0x6b, 0xca, 0x4a, 0xa4, 0x3c, 0x9c, 0xd5, 0x9e, 0xf3, 0x49, 0xfe, - 0x23, 0xa6, 0x3d, 0x05, 0xca, 0xe2, 0xd7, 0x25, 0xa1, 0x16, 0x66, 0x43, 0xdd, 0x80, 0x4d, 0xc6, - 0x0d, 0xee, 0xb1, 0xe0, 0x01, 0xd7, 0x1a, 0x52, 0x5a, 0x34, 0x7a, 0x01, 0x42, 0x8d, 0x90, 0x17, - 0xd2, 0x23, 0xbf, 0x76, 0x7a, 0x64, 0x72, 0xb7, 0x91, 0xc5, 0xdd, 0x6f, 0x02, 0xec, 0x2d, 0x79, - 0x58, 0x44, 0xe1, 0xc3, 0xf9, 0x84, 0x5a, 0x41, 0xdd, 0xfb, 0x4a, 0x26, 0x54, 0x81, 0x12, 0xa7, - 0xdc, 0xb0, 0xf4, 0xa0, 0xda, 0xa2, 0x0a, 0x82, 0x40, 0xd4, 0xf2, 0x25, 0xf2, 0x77, 0x70, 0xfb, - 0x25, 0x4e, 0xf5, 0x3d, 0x8e, 0xc9, 0x13, 0xb8, 0xe9, 0xc4, 0xc7, 0x73, 0x5d, 0xc5, 0x67, 0x25, - 0xac, 0xe5, 0xeb, 0x4e, 0x8a, 0x7e, 0x7b, 0xe8, 0x57, 0xfe, 0xac, 0x42, 0x94, 0x7f, 0xa5, 0x99, - 0xbc, 0x90, 0x4d, 0xa8, 0x64, 0xda, 0x8f, 0xa8, 0x7b, 0x7e, 0xe1, 0x16, 0x21, 0xa0, 0x60, 0x05, - 0x83, 0x73, 0x46, 0x7e, 0x15, 0x60, 0xaf, 0xef, 0x0c, 0x0d, 0x8e, 0xff, 0xb7, 0x87, 0x66, 0xe6, - 0x55, 0x3e, 0x2b, 0xaf, 0x4e, 0x41, 0x5e, 0xe6, 0xf3, 0x7b, 0x23, 0xe7, 0x7b, 0x01, 0xf6, 0x55, - 0x6c, 0x61, 0xbf, 0xf6, 0x97, 0xd5, 0xe6, 0x53, 0x90, 0x32, 0xe9, 0x89, 0xdb, 0xd0, 0x8d, 0x74, - 0x7e, 0xd8, 0x62, 0xdb, 0xca, 0x2d, 0xb6, 0x2d, 0xf9, 0x1e, 0xdc, 0x59, 0xee, 0x48, 0xf8, 0x66, - 0xf9, 0xcf, 0x1c, 0x6c, 0xbf, 0xb4, 0xe8, 0xc0, 0xb0, 0x66, 0x8e, 0xd1, 0x35, 0xc8, 0x25, 0x71, - 0xca, 0x91, 0xa1, 0x9f, 0xfa, 0xf8, 0xf3, 0x47, 0x5f, 0xe8, 0xa7, 0xd4, 0x1d, 0x1b, 0x3c, 0x0a, - 0x09, 0xf8, 0xa2, 0x17, 0x81, 0x64, 0x61, 0x2e, 0xe5, 0x57, 0xcc, 0xa5, 0x8d, 0x0b, 0x73, 0xa9, - 0x02, 0xa5, 0x88, 0x00, 0x3e, 0x71, 0xb0, 0x58, 0x08, 0x0d, 0x84, 0x22, 0x6d, 0xe2, 0x60, 0x24, - 0xc1, 0x96, 0x45, 0x4d, 0xc3, 0x22, 0x7c, 0x22, 0x6e, 0x86, 0xca, 0xf1, 0x37, 0xba, 0x0e, 0x9b, - 0x2e, 0x1e, 0x11, 0x6a, 0x8b, 0x97, 0x83, 0x93, 0xe8, 0x0b, 0xdd, 0x02, 0x60, 0x8e, 0x31, 0xd6, - 0x99, 0x49, 0x5d, 0x2c, 0x6e, 0x55, 0x85, 0x9a, 0xa0, 0x16, 0x7d, 0x49, 0xcf, 0x17, 0xa0, 0x27, - 0x00, 0xa6, 0x8b, 0x0d, 0x8e, 0x87, 0xba, 0xc1, 0xc5, 0x62, 0x10, 0x6c, 0xa9, 0x1e, 0x8e, 0xf3, - 0x7a, 0x3c, 0xce, 0xeb, 0x5a, 0x3c, 0xce, 0xd5, 0x62, 0x84, 0x6e, 0xfa, 0xe9, 0x0d, 0x5e, 0x90, - 0x4f, 0x81, 0x2a, 0xac, 0x56, 0x8d, 0xd0, 0x4d, 0x2e, 0xff, 0x28, 0xc0, 0x55, 0x0d, 0x5b, 0xd8, - 0x8f, 0xd6, 0xa4, 0x45, 0x19, 0x47, 0x8f, 0x60, 0xcb, 0xc5, 0x8c, 0x7a, 0xae, 0x19, 0xce, 0xf3, - 0xd9, 0xa6, 0x3c, 0x87, 0xf4, 0x89, 0x50, 0x13, 0xac, 0x4f, 0x89, 0xe9, 0xb9, 0x2e, 0xb6, 0xcd, - 0x49, 0x3c, 0xe7, 0xe3, 0x6f, 0xbf, 0xf9, 0x3b, 0x2e, 0x31, 0xc3, 0x40, 0x08, 0x6a, 0xf8, 0xe1, - 0x47, 0x69, 0x40, 0x2c, 0x8b, 0xd8, 0x23, 0xdd, 0xb3, 0x09, 0x8f, 0xa2, 0x50, 0x8a, 0x64, 0x7d, - 0x9b, 0x70, 0xf9, 0x67, 0x01, 0xc4, 0xac, 0xb9, 0x8c, 0x9e, 0xa5, 0x16, 0xc8, 0xd4, 0xdb, 0x85, - 0x44, 0x9a, 0x2f, 0x5b, 0x19, 0xae, 0x98, 0x86, 0x63, 0x0c, 0x88, 0x45, 0x38, 0xc1, 0x49, 0xde, - 0xce, 0xca, 0xd0, 0x03, 0x28, 0x98, 0x94, 0x71, 0x26, 0xe6, 0x83, 0xde, 0x7e, 0x3d, 0x9d, 0x09, - 0x35, 0x04, 0xc9, 0x7f, 0xe5, 0x60, 0x27, 0x2d, 0xbf, 0xff, 0x4b, 0xff, 0x79, 0x96, 0xd2, 0x7f, - 0xfe, 0xc5, 0x23, 0xa7, 0x03, 0x36, 0xbf, 0xf6, 0x80, 0x7d, 0x0a, 0x25, 0x83, 0x31, 0x32, 0xb2, - 0xc3, 0x7c, 0xda, 0x58, 0x99, 0x4f, 0x10, 0xc3, 0x9b, 0x7e, 0x2f, 0x29, 0xb9, 0x61, 0xa5, 0x07, - 0xca, 0x85, 0xd5, 0xca, 0x31, 0xbc, 0xc9, 0x33, 0x3b, 0xe9, 0x66, 0x46, 0x27, 0xbd, 0xff, 0xb7, - 0x00, 0xdb, 0x0b, 0x49, 0x89, 0xf6, 0xa1, 0xa2, 0x29, 0xc7, 0x4a, 0xf7, 0xcb, 0x93, 0xce, 0x1b, - 0xbd, 0x75, 0xd2, 0xd3, 0x74, 0xed, 0x4d, 0x57, 0xd1, 0xfb, 0x9d, 0x5e, 0x57, 0x69, 0xb5, 0x5f, - 0xb4, 0x95, 0xa3, 0xf2, 0x25, 0x74, 0x17, 0xf6, 0xd2, 0x40, 0x9d, 0xfe, 0xab, 0x43, 0x45, 0xd5, - 0x55, 0xa5, 0xa3, 0x35, 0x8f, 0xcb, 0x42, 0x16, 0xec, 0xf5, 0x49, 0xbb, 0xa5, 0xe8, 0xed, 0xce, - 0xe1, 0x49, 0xbf, 0x73, 0x54, 0xce, 0xa1, 0x7b, 0x20, 0x67, 0xc3, 0x4e, 0xfa, 0x5a, 0x88, 0xcb, - 0x67, 0xb9, 0xd6, 0x7b, 0xd5, 0x4b, 0x2e, 0xdb, 0x40, 0x77, 0xa0, 0x9a, 0x05, 0x4a, 0xae, 0x2a, - 0xdc, 0xff, 0x41, 0x80, 0xed, 0x85, 0x20, 0xfa, 0x06, 0x7c, 0xbd, 0xe4, 0x21, 0x3d, 0xad, 0xa9, - 0xf5, 0x7b, 0x17, 0xde, 0x7e, 0x1b, 0xa4, 0x34, 0x50, 0xb3, 0xa5, 0xb5, 0x5f, 0x2b, 0x65, 0x01, - 0x55, 0x60, 0x37, 0xed, 0xbc, 0xab, 0x74, 0x8e, 0xda, 0x9d, 0x97, 0xe5, 0x1c, 0xaa, 0xc2, 0x47, - 0x69, 0x00, 0x55, 0x39, 0x56, 0x9a, 0x3d, 0xe5, 0xa8, 0x9c, 0x6f, 0xfc, 0x5e, 0x00, 0x34, 0xeb, - 0x1d, 0x76, 0xcf, 0xfd, 0x9a, 0x7f, 0x07, 0x62, 0xd6, 0x86, 0x8e, 0x6a, 0x49, 0x6e, 0xae, 0xf8, - 0xef, 0x90, 0x3e, 0x59, 0x03, 0x19, 0x4d, 0x94, 0x4b, 0x68, 0x00, 0x1f, 0xa6, 0x6c, 0xc0, 0x68, - 0x7f, 0x61, 0x90, 0x2e, 0x2e, 0x0e, 0xd2, 0x9d, 0xe5, 0xa0, 0xc4, 0x06, 0x87, 0x9b, 0x99, 0x8b, - 0x22, 0xba, 0xe0, 0xed, 0x92, 0x49, 0x2c, 0xdd, 0x5f, 0x07, 0x9a, 0x58, 0xb5, 0xe1, 0x46, 0xc6, - 0x86, 0x85, 0x3e, 0x9e, 0x36, 0x88, 0xa5, 0x3b, 0xa0, 0x54, 0x5b, 0x0d, 0x4c, 0xec, 0x7d, 0x0d, - 0x52, 0xf6, 0xde, 0x82, 0xa6, 0xbe, 0xaf, 0x5c, 0xc8, 0xa4, 0x4f, 0xd7, 0xc2, 0x26, 0x86, 0xbf, - 0x85, 0xdd, 0x25, 0xeb, 0x03, 0x7a, 0x90, 0xdc, 0xb6, 0xc6, 0xb6, 0x23, 0x7d, 0xb6, 0x26, 0x3a, - 0xb6, 0x7e, 0x78, 0xf7, 0xab, 0xfd, 0x11, 0xe1, 0x67, 0xde, 0xa0, 0x6e, 0xd2, 0xf1, 0x41, 0xa4, - 0x1c, 0xfe, 0x61, 0x9b, 0xd4, 0x8a, 0x05, 0x83, 0xcd, 0x40, 0xf2, 0xf0, 0x9f, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x89, 0x28, 0x6f, 0x02, 0xa8, 0x0f, 0x00, 0x00, + 0x3b, 0xf1, 0x2d, 0x63, 0x3a, 0xc4, 0x16, 0x0b, 0xa5, 0xf2, 0x2f, 0x02, 0x54, 0x8e, 0x09, 0xe3, + 0x5d, 0xff, 0xea, 0x4e, 0x70, 0x73, 0xdb, 0x3e, 0xc7, 0x36, 0xa7, 0xee, 0x44, 0xc5, 0xef, 0x3c, + 0xcc, 0x38, 0xda, 0x83, 0x2b, 0x26, 0xf5, 0x6c, 0xee, 0x4e, 0x74, 0x93, 0x0e, 0xb1, 0x28, 0x54, + 0x85, 0x5a, 0x51, 0x2d, 0x45, 0xb2, 0x16, 0x1d, 0x62, 0xb4, 0x0b, 0x45, 0xc3, 0xc5, 0x46, 0x78, + 0x9e, 0x0b, 0xce, 0xb7, 0x7c, 0x41, 0x70, 0xb8, 0x03, 0x05, 0x8b, 0x8c, 0x09, 0x17, 0xf3, 0x55, + 0xa1, 0x56, 0x50, 0xc3, 0x0f, 0xf4, 0x18, 0xc0, 0x31, 0x46, 0x58, 0xe7, 0xf4, 0x2d, 0xb6, 0xc5, + 0x8d, 0xaa, 0x50, 0x2b, 0x35, 0xc4, 0x7a, 0xe4, 0x64, 0x5d, 0xf3, 0xa5, 0x5d, 0x63, 0x44, 0x6c, + 0x83, 0x13, 0x6a, 0xab, 0x45, 0x1f, 0x1b, 0x08, 0xe5, 0x9f, 0x04, 0xa8, 0x66, 0xbb, 0xcc, 0x1c, + 0x6a, 0x33, 0x8c, 0x1e, 0x43, 0x81, 0x70, 0x3c, 0x66, 0xa2, 0x50, 0xcd, 0xd7, 0x4a, 0x8d, 0xbd, + 0xe4, 0xe2, 0x34, 0xad, 0x36, 0xc7, 0x63, 0x35, 0xc4, 0xa3, 0xe7, 0xf0, 0x81, 0x8d, 0xbf, 0xe1, + 0xfa, 0x8c, 0x6f, 0xb9, 0x15, 0xbe, 0x5d, 0xf5, 0x15, 0xba, 0x89, 0x7f, 0x2e, 0x48, 0x5d, 0xcf, + 0x35, 0xcf, 0x0c, 0x86, 0x67, 0x8c, 0xc5, 0x64, 0xee, 0xc3, 0xd5, 0xd9, 0x30, 0x86, 0x0e, 0x16, + 0xd5, 0x2b, 0xce, 0x14, 0xca, 0xd0, 0x01, 0xec, 0x30, 0xe2, 0xe8, 0x43, 0xc2, 0x1c, 0x83, 0x9b, + 0x67, 0xba, 0xeb, 0x59, 0x58, 0x27, 0xc3, 0x88, 0xd9, 0x6d, 0x46, 0x9c, 0xa3, 0xe8, 0x48, 0xf5, + 0x2c, 0xdc, 0x1e, 0xca, 0x06, 0xec, 0xa6, 0xda, 0x8c, 0xd8, 0x38, 0x4c, 0x33, 0x5a, 0x6a, 0xdc, + 0x9a, 0xb2, 0x12, 0x29, 0x0f, 0x67, 0xb5, 0xe7, 0x7c, 0x92, 0xff, 0x88, 0x69, 0x4f, 0x81, 0xb2, + 0xf8, 0x75, 0x49, 0xa8, 0x85, 0xd9, 0x50, 0x37, 0x60, 0x93, 0x71, 0x83, 0x7b, 0x2c, 0x78, 0xc0, + 0xb5, 0x86, 0x94, 0x16, 0x8d, 0x5e, 0x80, 0x50, 0x23, 0xe4, 0x85, 0xf4, 0xc8, 0xaf, 0x9d, 0x1e, + 0x99, 0xdc, 0x6d, 0x64, 0x71, 0xf7, 0x9b, 0x00, 0x7b, 0x4b, 0x1e, 0x16, 0x51, 0xf8, 0x70, 0x3e, + 0xa1, 0x56, 0x50, 0xf7, 0xbe, 0x92, 0x09, 0x55, 0xa0, 0xc4, 0x29, 0x37, 0x2c, 0x3d, 0xa8, 0xb6, + 0xa8, 0x82, 0x20, 0x10, 0xb5, 0x7c, 0x89, 0xfc, 0x1d, 0xdc, 0x7e, 0x89, 0x53, 0x7d, 0x8f, 0x63, + 0xf2, 0x04, 0x6e, 0x3a, 0xf1, 0xf1, 0x5c, 0x0b, 0xf1, 0x59, 0x09, 0x6b, 0xf9, 0xba, 0x93, 0xa2, + 0xdf, 0x1e, 0xfa, 0x95, 0x3f, 0xab, 0x10, 0xe5, 0x5f, 0x69, 0x26, 0x2f, 0x64, 0x13, 0x2a, 0x99, + 0xf6, 0x23, 0xea, 0x9e, 0x5f, 0xb8, 0x45, 0x08, 0x28, 0x58, 0xc1, 0xe0, 0x9c, 0x91, 0x5f, 0x05, + 0xd8, 0xeb, 0x3b, 0x43, 0x83, 0xe3, 0xff, 0xed, 0xa1, 0x99, 0x79, 0x95, 0xcf, 0xca, 0xab, 0x53, + 0x90, 0x97, 0xf9, 0xfc, 0xde, 0xc8, 0xf9, 0x5e, 0x80, 0x7d, 0x15, 0x5b, 0xd8, 0xaf, 0xfd, 0x65, + 0xb5, 0xf9, 0x14, 0xa4, 0x4c, 0x7a, 0xe2, 0x36, 0x74, 0x23, 0x9d, 0x1f, 0xb6, 0xd8, 0xb6, 0x72, + 0x8b, 0x6d, 0x4b, 0xbe, 0x07, 0x77, 0x96, 0x3b, 0x12, 0xbe, 0x59, 0xfe, 0x33, 0x07, 0xdb, 0x2f, + 0x2d, 0x3a, 0x30, 0xac, 0x99, 0x63, 0x74, 0x0d, 0x72, 0x49, 0x9c, 0x72, 0x64, 0xe8, 0xa7, 0x3e, + 0xfe, 0xfc, 0xd1, 0x17, 0xfa, 0x29, 0x75, 0xc7, 0x06, 0x8f, 0x42, 0x02, 0xbe, 0xe8, 0x45, 0x20, + 0x59, 0x98, 0x4b, 0xf9, 0x15, 0x73, 0x69, 0xe3, 0xc2, 0x5c, 0xaa, 0x40, 0x29, 0x22, 0x80, 0x4f, + 0x1c, 0x2c, 0x16, 0x42, 0x03, 0xa1, 0x48, 0x9b, 0x38, 0x18, 0x49, 0xb0, 0x65, 0x51, 0xd3, 0xb0, + 0x08, 0x9f, 0x88, 0x9b, 0xa1, 0x72, 0xfc, 0x8d, 0xae, 0xc3, 0xa6, 0x8b, 0x47, 0x84, 0xda, 0xe2, + 0xe5, 0xe0, 0x24, 0xfa, 0x42, 0xb7, 0x00, 0x98, 0x63, 0x8c, 0x75, 0x66, 0x52, 0x17, 0x8b, 0x5b, + 0x55, 0xa1, 0x26, 0xa8, 0x45, 0x5f, 0xd2, 0xf3, 0x05, 0xe8, 0x09, 0x80, 0xe9, 0x62, 0x83, 0xe3, + 0xa1, 0x6e, 0x70, 0xb1, 0x18, 0x04, 0x5b, 0xaa, 0x87, 0xb3, 0xbb, 0x1e, 0xcf, 0xee, 0xba, 0x16, + 0xcf, 0x6e, 0xb5, 0x18, 0xa1, 0x9b, 0x7e, 0x7a, 0x83, 0x17, 0xe4, 0x53, 0xa0, 0x0a, 0xab, 0x55, + 0x23, 0x74, 0x93, 0xcb, 0x3f, 0x0a, 0x70, 0x55, 0xc3, 0x16, 0xf6, 0xa3, 0x35, 0x69, 0x51, 0xc6, + 0xd1, 0x23, 0xd8, 0x72, 0x31, 0xa3, 0x9e, 0x6b, 0x86, 0xf3, 0x7c, 0xb6, 0x29, 0xcf, 0x21, 0x7d, + 0x22, 0xd4, 0x04, 0xeb, 0x53, 0x62, 0x7a, 0xae, 0x8b, 0x6d, 0x73, 0x12, 0xcf, 0xf9, 0xf8, 0xdb, + 0x6f, 0xfe, 0x8e, 0x4b, 0xcc, 0x30, 0x10, 0x82, 0x1a, 0x7e, 0xf8, 0x51, 0x1a, 0x10, 0xcb, 0x22, + 0xf6, 0x48, 0xf7, 0x6c, 0xc2, 0xa3, 0x28, 0x94, 0x22, 0x59, 0xdf, 0x26, 0x5c, 0xfe, 0x59, 0x00, + 0x31, 0x6b, 0x2e, 0xa3, 0x67, 0xa9, 0x05, 0x32, 0xf5, 0x76, 0x21, 0x91, 0xe6, 0xcb, 0x56, 0x86, + 0x2b, 0xa6, 0xe1, 0x18, 0x03, 0x62, 0x11, 0x4e, 0x70, 0x92, 0xb7, 0xb3, 0x32, 0xf4, 0x00, 0x0a, + 0x26, 0x65, 0x9c, 0x89, 0xf9, 0xa0, 0xb7, 0x5f, 0x4f, 0x67, 0x42, 0x0d, 0x41, 0xf2, 0x5f, 0x39, + 0xd8, 0x49, 0xcb, 0xef, 0xff, 0xd2, 0x7f, 0x9e, 0xa5, 0xf4, 0x9f, 0x7f, 0xf1, 0xc8, 0xe9, 0x80, + 0xcd, 0xaf, 0x3d, 0x60, 0x9f, 0x42, 0xc9, 0x60, 0x8c, 0x8c, 0xec, 0x30, 0x9f, 0x36, 0x56, 0xe6, + 0x13, 0xc4, 0xf0, 0xa6, 0xdf, 0x4b, 0x4a, 0x6e, 0x58, 0xe9, 0x81, 0x72, 0x61, 0xb5, 0x72, 0x0c, + 0x6f, 0xf2, 0xcc, 0x4e, 0xba, 0x99, 0xd1, 0x49, 0xef, 0xff, 0x2d, 0xc0, 0xf6, 0x42, 0x52, 0xa2, + 0x7d, 0xa8, 0x68, 0xca, 0xb1, 0xd2, 0xfd, 0xf2, 0xa4, 0xf3, 0x46, 0x6f, 0x9d, 0xf4, 0x34, 0x5d, + 0x7b, 0xd3, 0x55, 0xf4, 0x7e, 0xa7, 0xd7, 0x55, 0x5a, 0xed, 0x17, 0x6d, 0xe5, 0xa8, 0x7c, 0x09, + 0xdd, 0x85, 0xbd, 0x34, 0x50, 0xa7, 0xff, 0xea, 0x50, 0x51, 0x75, 0x55, 0xe9, 0x68, 0xcd, 0xe3, + 0xb2, 0x90, 0x05, 0x7b, 0x7d, 0xd2, 0x6e, 0x29, 0x7a, 0xbb, 0x73, 0x78, 0xd2, 0xef, 0x1c, 0x95, + 0x73, 0xe8, 0x1e, 0xc8, 0xd9, 0xb0, 0x93, 0xbe, 0x16, 0xe2, 0xf2, 0x59, 0xae, 0xf5, 0x5e, 0xf5, + 0x92, 0xcb, 0x36, 0xd0, 0x1d, 0xa8, 0x66, 0x81, 0x92, 0xab, 0x0a, 0xf7, 0x7f, 0x10, 0x60, 0x7b, + 0x21, 0x88, 0xbe, 0x01, 0x5f, 0x2f, 0x79, 0x48, 0x4f, 0x6b, 0x6a, 0xfd, 0xde, 0x85, 0xb7, 0xdf, + 0x06, 0x29, 0x0d, 0xd4, 0x6c, 0x69, 0xed, 0xd7, 0x4a, 0x59, 0x40, 0x15, 0xd8, 0x4d, 0x3b, 0xef, + 0x2a, 0x9d, 0xa3, 0x76, 0xe7, 0x65, 0x39, 0x87, 0xaa, 0xf0, 0x51, 0x1a, 0x40, 0x55, 0x8e, 0x95, + 0x66, 0x4f, 0x39, 0x2a, 0xe7, 0x1b, 0xbf, 0x17, 0x00, 0xcd, 0x7a, 0x87, 0xdd, 0x73, 0xbf, 0xe6, + 0xdf, 0x81, 0x98, 0xb5, 0xa1, 0xa3, 0x5a, 0x92, 0x9b, 0x2b, 0xfe, 0x3b, 0xa4, 0x4f, 0xd6, 0x40, + 0x46, 0x13, 0xe5, 0x12, 0x1a, 0xc0, 0x87, 0x29, 0x1b, 0x30, 0xda, 0x5f, 0x18, 0xa4, 0x8b, 0x8b, + 0x83, 0x74, 0x67, 0x39, 0x28, 0xb1, 0xc1, 0xe1, 0x66, 0xe6, 0xa2, 0x88, 0x2e, 0x78, 0xbb, 0x64, + 0x12, 0x4b, 0xf7, 0xd7, 0x81, 0x26, 0x56, 0x6d, 0xb8, 0x91, 0xb1, 0x61, 0xa1, 0x8f, 0xa7, 0x0d, + 0x62, 0xe9, 0x0e, 0x28, 0xd5, 0x56, 0x03, 0x13, 0x7b, 0x5f, 0x83, 0x94, 0xbd, 0xb7, 0xa0, 0xa9, + 0xef, 0x2b, 0x17, 0x32, 0xe9, 0xd3, 0xb5, 0xb0, 0x89, 0xe1, 0x6f, 0x61, 0x77, 0xc9, 0xfa, 0x80, + 0x1e, 0x24, 0xb7, 0xad, 0xb1, 0xed, 0x48, 0x9f, 0xad, 0x89, 0x8e, 0xad, 0x1f, 0xde, 0xfd, 0x6a, + 0x7f, 0x44, 0xf8, 0x99, 0x37, 0xa8, 0x9b, 0x74, 0x7c, 0x10, 0x29, 0x87, 0xbf, 0xd3, 0x26, 0xb5, + 0x62, 0xc1, 0x60, 0x33, 0x90, 0x3c, 0xfc, 0x27, 0x00, 0x00, 0xff, 0xff, 0x82, 0x3a, 0x98, 0x8a, + 0x95, 0x0f, 0x00, 0x00, }