linq-python 0.65.0__py3-none-any.whl → 0.67.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. linq/_client.py +478 -0
  2. linq/_version.py +1 -1
  3. linq/resources/__init__.py +28 -0
  4. linq/resources/available_number.py +26 -0
  5. linq/resources/call_voice.py +306 -0
  6. linq/resources/chats/chats.py +26 -0
  7. linq/resources/chats/messages.py +14 -0
  8. linq/resources/contact_card.py +16 -0
  9. linq/resources/messages/messages.py +66 -30
  10. linq/resources/phone_numbers.py +26 -0
  11. linq/resources/phonenumbers.py +26 -0
  12. linq/resources/sip_profiles.py +749 -0
  13. linq/types/__init__.py +19 -0
  14. linq/types/api_token_activated_webhook_event.py +1 -7
  15. linq/types/api_token_created_webhook_event.py +1 -7
  16. linq/types/api_token_deleted_webhook_event.py +1 -7
  17. linq/types/api_token_expired_webhook_event.py +1 -7
  18. linq/types/api_token_expiry_scheduled_webhook_event.py +1 -7
  19. linq/types/api_token_renamed_webhook_event.py +1 -7
  20. linq/types/call_voice_answered_webhook_event.py +139 -0
  21. linq/types/call_voice_declined_webhook_event.py +139 -0
  22. linq/types/call_voice_ended_webhook_event.py +139 -0
  23. linq/types/call_voice_failed_webhook_event.py +139 -0
  24. linq/types/call_voice_initiated_webhook_event.py +139 -0
  25. linq/types/call_voice_list_params.py +15 -0
  26. linq/types/call_voice_list_response.py +20 -0
  27. linq/types/call_voice_no_answer_webhook_event.py +139 -0
  28. linq/types/call_voice_record.py +38 -0
  29. linq/types/call_voice_ringing_webhook_event.py +139 -0
  30. linq/types/chat_create_params.py +8 -0
  31. linq/types/chat_send_voicememo_params.py +8 -0
  32. linq/types/chats/message_send_params.py +8 -0
  33. linq/types/chats/poll_envelope.py +1 -1
  34. linq/types/connection_created_webhook_event.py +1 -7
  35. linq/types/connection_revoked_webhook_event.py +1 -7
  36. linq/types/contact_card_created_webhook_event.py +1 -7
  37. linq/types/contact_card_deleted_webhook_event.py +1 -7
  38. linq/types/contact_card_updated_webhook_event.py +1 -7
  39. linq/types/environment_created_webhook_event.py +1 -7
  40. linq/types/environment_deleted_webhook_event.py +1 -7
  41. linq/types/environment_line_moved_webhook_event.py +1 -7
  42. linq/types/environment_renamed_webhook_event.py +1 -7
  43. linq/types/location_sharing_started_webhook_event.py +1 -7
  44. linq/types/location_sharing_stopped_webhook_event.py +1 -7
  45. linq/types/message_add_reaction_params.py +17 -10
  46. linq/types/message_create_params.py +8 -0
  47. linq/types/message_event_v2.py +21 -0
  48. linq/types/payment_authorized_webhook_event.py +1 -7
  49. linq/types/payment_canceled_webhook_event.py +1 -7
  50. linq/types/payment_declined_webhook_event.py +1 -7
  51. linq/types/payment_expired_webhook_event.py +1 -7
  52. linq/types/payment_succeeded_webhook_event.py +1 -7
  53. linq/types/phone_number_assigned_webhook_event.py +1 -7
  54. linq/types/phone_number_forwarding_updated_webhook_event.py +1 -7
  55. linq/types/phone_number_line_type_updated_webhook_event.py +126 -0
  56. linq/types/phone_number_list_response.py +7 -0
  57. linq/types/phone_number_released_webhook_event.py +1 -7
  58. linq/types/phone_number_status_updated_webhook_event.py +1 -7
  59. linq/types/reaction_event_base.py +21 -15
  60. linq/types/shared/reaction.py +16 -14
  61. linq/types/sip_profile.py +35 -0
  62. linq/types/sip_profile_assign_params.py +13 -0
  63. linq/types/sip_profile_assign_response.py +15 -0
  64. linq/types/sip_profile_create_params.py +23 -0
  65. linq/types/sip_profile_list_response.py +13 -0
  66. linq/types/sip_profile_update_params.py +16 -0
  67. linq/types/team_member_added_webhook_event.py +1 -7
  68. linq/types/team_member_signed_in_webhook_event.py +1 -7
  69. linq/types/team_member_signed_out_webhook_event.py +1 -7
  70. linq/types/unwrap_webhook_event.py +16 -0
  71. linq/types/webhook_event_type.py +1 -7
  72. linq/types/webhook_subscription_created_webhook_event.py +1 -7
  73. linq/types/webhook_subscription_deleted_webhook_event.py +1 -7
  74. linq/types/webhook_subscription_disabled_webhook_event.py +1 -7
  75. linq/types/webhook_subscription_enabled_webhook_event.py +1 -7
  76. linq/types/webhook_subscription_events_updated_webhook_event.py +1 -7
  77. linq/types/webhook_subscription_phone_numbers_updated_webhook_event.py +1 -7
  78. linq/types/webhook_subscription_routing_headers_cleared_webhook_event.py +1 -7
  79. linq/types/webhook_subscription_routing_headers_set_webhook_event.py +1 -7
  80. linq/types/webhook_subscription_target_url_changed_webhook_event.py +1 -7
  81. linq/types/zero_day_retention_updated_webhook_event.py +1 -7
  82. {linq_python-0.65.0.dist-info → linq_python-0.67.0.dist-info}/METADATA +1 -1
  83. {linq_python-0.65.0.dist-info → linq_python-0.67.0.dist-info}/RECORD +85 -66
  84. {linq_python-0.65.0.dist-info → linq_python-0.67.0.dist-info}/WHEEL +0 -0
  85. {linq_python-0.65.0.dist-info → linq_python-0.67.0.dist-info}/licenses/LICENSE +0 -0
linq/_client.py CHANGED
@@ -41,11 +41,13 @@ if TYPE_CHECKING:
41
41
  chats,
42
42
  messages,
43
43
  payments,
44
+ call_voice,
44
45
  capability,
45
46
  attachments,
46
47
  experiences,
47
48
  contact_card,
48
49
  phonenumbers,
50
+ sip_profiles,
49
51
  phone_numbers,
50
52
  webhook_events,
51
53
  blocked_handles,
@@ -57,12 +59,14 @@ if TYPE_CHECKING:
57
59
  )
58
60
  from .resources.payments import PaymentsResource, AsyncPaymentsResource
59
61
  from .resources.webhooks import WebhooksResource, AsyncWebhooksResource
62
+ from .resources.call_voice import CallVoiceResource, AsyncCallVoiceResource
60
63
  from .resources.capability import CapabilityResource, AsyncCapabilityResource
61
64
  from .resources.attachments import AttachmentsResource, AsyncAttachmentsResource
62
65
  from .resources.chats.chats import ChatsResource, AsyncChatsResource
63
66
  from .resources.experiences import ExperiencesResource, AsyncExperiencesResource
64
67
  from .resources.contact_card import ContactCardResource, AsyncContactCardResource
65
68
  from .resources.phonenumbers import PhonenumbersResource, AsyncPhonenumbersResource
69
+ from .resources.sip_profiles import SipProfilesResource, AsyncSipProfilesResource
66
70
  from .resources.phone_numbers import PhoneNumbersResource, AsyncPhoneNumbersResource
67
71
  from .resources.webhook_events import WebhookEventsResource, AsyncWebhookEventsResource
68
72
  from .resources.blocked_handles import BlockedHandlesResource, AsyncBlockedHandlesResource
@@ -460,6 +464,19 @@ class LinqAPIV3(SyncAPIClient):
460
464
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
461
465
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
462
466
  specific number to blame with a `403`).
467
+
468
+ **Published vs unpublished.** A *published* number is available for your account to use.
469
+ Only published numbers appear in `GET /v3/phone_numbers`.
470
+
471
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
472
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
473
+
474
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
475
+ status alone does not block reads, blocked-handle management, or deletion
476
+ of your data. Existing authorization, retention, and endpoint rules still apply.
477
+
478
+ Webhook events are suppressed for affected numbers when their publication status is known to
479
+ be unpublished.
463
480
  """
464
481
  from .resources.phonenumbers import PhonenumbersResource
465
482
 
@@ -483,6 +500,19 @@ class LinqAPIV3(SyncAPIClient):
483
500
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
484
501
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
485
502
  specific number to blame with a `403`).
503
+
504
+ **Published vs unpublished.** A *published* number is available for your account to use.
505
+ Only published numbers appear in `GET /v3/phone_numbers`.
506
+
507
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
508
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
509
+
510
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
511
+ status alone does not block reads, blocked-handle management, or deletion
512
+ of your data. Existing authorization, retention, and endpoint rules still apply.
513
+
514
+ Webhook events are suppressed for affected numbers when their publication status is known to
515
+ be unpublished.
486
516
  """
487
517
  from .resources.phone_numbers import PhoneNumbersResource
488
518
 
@@ -506,6 +536,19 @@ class LinqAPIV3(SyncAPIClient):
506
536
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
507
537
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
508
538
  specific number to blame with a `403`).
539
+
540
+ **Published vs unpublished.** A *published* number is available for your account to use.
541
+ Only published numbers appear in `GET /v3/phone_numbers`.
542
+
543
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
544
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
545
+
546
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
547
+ status alone does not block reads, blocked-handle management, or deletion
548
+ of your data. Existing authorization, retention, and endpoint rules still apply.
549
+
550
+ Webhook events are suppressed for affected numbers when their publication status is known to
551
+ be unpublished.
509
552
  """
510
553
  from .resources.available_number import AvailableNumberResource
511
554
 
@@ -809,6 +852,46 @@ class LinqAPIV3(SyncAPIClient):
809
852
 
810
853
  return ExperiencesResource(self)
811
854
 
855
+ @cached_property
856
+ def sip_profiles(self) -> SipProfilesResource:
857
+ """## SIP configuration
858
+
859
+ Add these IP ranges to your SIP endpoint's allowlist:
860
+
861
+ ```
862
+ 54.172.60.0/30
863
+ 54.244.51.0/30
864
+ 168.86.128.0/18
865
+ ```
866
+
867
+ Set `primary_uri` to your endpoint as scheme + host — `sips:` for TLS or
868
+ `sip:` for UDP, with no user part (we add it). Each call arrives at your
869
+ endpoint as:
870
+
871
+ ```
872
+ sip:<called-number>@<your-host>
873
+ ```
874
+
875
+ so you can route on the dialed number. The caller's number is in the
876
+ `From` header in E.164. Media (RTP) uses UDP ports 10000–60000.
877
+ """
878
+ from .resources.sip_profiles import SipProfilesResource
879
+
880
+ return SipProfilesResource(self)
881
+
882
+ @cached_property
883
+ def call_voice(self) -> CallVoiceResource:
884
+ """Read the carrier (BYOC) voice calls received on your phone numbers.
885
+
886
+ Each
887
+ record is the durable form of the `call_voice.*` webhooks for that call and
888
+ shares the same `id`, so you can look a call up by the id a webhook
889
+ delivered. See SIP Profiles for routing inbound calls to your endpoint.
890
+ """
891
+ from .resources.call_voice import CallVoiceResource
892
+
893
+ return CallVoiceResource(self)
894
+
812
895
  @cached_property
813
896
  def webhook_events(self) -> WebhookEventsResource:
814
897
  """
@@ -1603,6 +1686,19 @@ class AsyncLinqAPIV3(AsyncAPIClient):
1603
1686
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
1604
1687
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
1605
1688
  specific number to blame with a `403`).
1689
+
1690
+ **Published vs unpublished.** A *published* number is available for your account to use.
1691
+ Only published numbers appear in `GET /v3/phone_numbers`.
1692
+
1693
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
1694
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
1695
+
1696
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
1697
+ status alone does not block reads, blocked-handle management, or deletion
1698
+ of your data. Existing authorization, retention, and endpoint rules still apply.
1699
+
1700
+ Webhook events are suppressed for affected numbers when their publication status is known to
1701
+ be unpublished.
1606
1702
  """
1607
1703
  from .resources.phonenumbers import AsyncPhonenumbersResource
1608
1704
 
@@ -1626,6 +1722,19 @@ class AsyncLinqAPIV3(AsyncAPIClient):
1626
1722
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
1627
1723
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
1628
1724
  specific number to blame with a `403`).
1725
+
1726
+ **Published vs unpublished.** A *published* number is available for your account to use.
1727
+ Only published numbers appear in `GET /v3/phone_numbers`.
1728
+
1729
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
1730
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
1731
+
1732
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
1733
+ status alone does not block reads, blocked-handle management, or deletion
1734
+ of your data. Existing authorization, retention, and endpoint rules still apply.
1735
+
1736
+ Webhook events are suppressed for affected numbers when their publication status is known to
1737
+ be unpublished.
1629
1738
  """
1630
1739
  from .resources.phone_numbers import AsyncPhoneNumbersResource
1631
1740
 
@@ -1649,6 +1758,19 @@ class AsyncLinqAPIV3(AsyncAPIClient):
1649
1758
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
1650
1759
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
1651
1760
  specific number to blame with a `403`).
1761
+
1762
+ **Published vs unpublished.** A *published* number is available for your account to use.
1763
+ Only published numbers appear in `GET /v3/phone_numbers`.
1764
+
1765
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
1766
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
1767
+
1768
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
1769
+ status alone does not block reads, blocked-handle management, or deletion
1770
+ of your data. Existing authorization, retention, and endpoint rules still apply.
1771
+
1772
+ Webhook events are suppressed for affected numbers when their publication status is known to
1773
+ be unpublished.
1652
1774
  """
1653
1775
  from .resources.available_number import AsyncAvailableNumberResource
1654
1776
 
@@ -1952,6 +2074,46 @@ class AsyncLinqAPIV3(AsyncAPIClient):
1952
2074
 
1953
2075
  return AsyncExperiencesResource(self)
1954
2076
 
2077
+ @cached_property
2078
+ def sip_profiles(self) -> AsyncSipProfilesResource:
2079
+ """## SIP configuration
2080
+
2081
+ Add these IP ranges to your SIP endpoint's allowlist:
2082
+
2083
+ ```
2084
+ 54.172.60.0/30
2085
+ 54.244.51.0/30
2086
+ 168.86.128.0/18
2087
+ ```
2088
+
2089
+ Set `primary_uri` to your endpoint as scheme + host — `sips:` for TLS or
2090
+ `sip:` for UDP, with no user part (we add it). Each call arrives at your
2091
+ endpoint as:
2092
+
2093
+ ```
2094
+ sip:<called-number>@<your-host>
2095
+ ```
2096
+
2097
+ so you can route on the dialed number. The caller's number is in the
2098
+ `From` header in E.164. Media (RTP) uses UDP ports 10000–60000.
2099
+ """
2100
+ from .resources.sip_profiles import AsyncSipProfilesResource
2101
+
2102
+ return AsyncSipProfilesResource(self)
2103
+
2104
+ @cached_property
2105
+ def call_voice(self) -> AsyncCallVoiceResource:
2106
+ """Read the carrier (BYOC) voice calls received on your phone numbers.
2107
+
2108
+ Each
2109
+ record is the durable form of the `call_voice.*` webhooks for that call and
2110
+ shares the same `id`, so you can look a call up by the id a webhook
2111
+ delivered. See SIP Profiles for routing inbound calls to your endpoint.
2112
+ """
2113
+ from .resources.call_voice import AsyncCallVoiceResource
2114
+
2115
+ return AsyncCallVoiceResource(self)
2116
+
1955
2117
  @cached_property
1956
2118
  def webhook_events(self) -> AsyncWebhookEventsResource:
1957
2119
  """
@@ -2680,6 +2842,19 @@ class LinqAPIV3WithRawResponse:
2680
2842
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
2681
2843
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
2682
2844
  specific number to blame with a `403`).
2845
+
2846
+ **Published vs unpublished.** A *published* number is available for your account to use.
2847
+ Only published numbers appear in `GET /v3/phone_numbers`.
2848
+
2849
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
2850
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
2851
+
2852
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
2853
+ status alone does not block reads, blocked-handle management, or deletion
2854
+ of your data. Existing authorization, retention, and endpoint rules still apply.
2855
+
2856
+ Webhook events are suppressed for affected numbers when their publication status is known to
2857
+ be unpublished.
2683
2858
  """
2684
2859
  from .resources.phonenumbers import PhonenumbersResourceWithRawResponse
2685
2860
 
@@ -2703,6 +2878,19 @@ class LinqAPIV3WithRawResponse:
2703
2878
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
2704
2879
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
2705
2880
  specific number to blame with a `403`).
2881
+
2882
+ **Published vs unpublished.** A *published* number is available for your account to use.
2883
+ Only published numbers appear in `GET /v3/phone_numbers`.
2884
+
2885
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
2886
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
2887
+
2888
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
2889
+ status alone does not block reads, blocked-handle management, or deletion
2890
+ of your data. Existing authorization, retention, and endpoint rules still apply.
2891
+
2892
+ Webhook events are suppressed for affected numbers when their publication status is known to
2893
+ be unpublished.
2706
2894
  """
2707
2895
  from .resources.phone_numbers import PhoneNumbersResourceWithRawResponse
2708
2896
 
@@ -2726,6 +2914,19 @@ class LinqAPIV3WithRawResponse:
2726
2914
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
2727
2915
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
2728
2916
  specific number to blame with a `403`).
2917
+
2918
+ **Published vs unpublished.** A *published* number is available for your account to use.
2919
+ Only published numbers appear in `GET /v3/phone_numbers`.
2920
+
2921
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
2922
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
2923
+
2924
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
2925
+ status alone does not block reads, blocked-handle management, or deletion
2926
+ of your data. Existing authorization, retention, and endpoint rules still apply.
2927
+
2928
+ Webhook events are suppressed for affected numbers when their publication status is known to
2929
+ be unpublished.
2729
2930
  """
2730
2931
  from .resources.available_number import AvailableNumberResourceWithRawResponse
2731
2932
 
@@ -3029,6 +3230,46 @@ class LinqAPIV3WithRawResponse:
3029
3230
 
3030
3231
  return ExperiencesResourceWithRawResponse(self._client.experiences)
3031
3232
 
3233
+ @cached_property
3234
+ def sip_profiles(self) -> sip_profiles.SipProfilesResourceWithRawResponse:
3235
+ """## SIP configuration
3236
+
3237
+ Add these IP ranges to your SIP endpoint's allowlist:
3238
+
3239
+ ```
3240
+ 54.172.60.0/30
3241
+ 54.244.51.0/30
3242
+ 168.86.128.0/18
3243
+ ```
3244
+
3245
+ Set `primary_uri` to your endpoint as scheme + host — `sips:` for TLS or
3246
+ `sip:` for UDP, with no user part (we add it). Each call arrives at your
3247
+ endpoint as:
3248
+
3249
+ ```
3250
+ sip:<called-number>@<your-host>
3251
+ ```
3252
+
3253
+ so you can route on the dialed number. The caller's number is in the
3254
+ `From` header in E.164. Media (RTP) uses UDP ports 10000–60000.
3255
+ """
3256
+ from .resources.sip_profiles import SipProfilesResourceWithRawResponse
3257
+
3258
+ return SipProfilesResourceWithRawResponse(self._client.sip_profiles)
3259
+
3260
+ @cached_property
3261
+ def call_voice(self) -> call_voice.CallVoiceResourceWithRawResponse:
3262
+ """Read the carrier (BYOC) voice calls received on your phone numbers.
3263
+
3264
+ Each
3265
+ record is the durable form of the `call_voice.*` webhooks for that call and
3266
+ shares the same `id`, so you can look a call up by the id a webhook
3267
+ delivered. See SIP Profiles for routing inbound calls to your endpoint.
3268
+ """
3269
+ from .resources.call_voice import CallVoiceResourceWithRawResponse
3270
+
3271
+ return CallVoiceResourceWithRawResponse(self._client.call_voice)
3272
+
3032
3273
  @cached_property
3033
3274
  def webhook_events(self) -> webhook_events.WebhookEventsResourceWithRawResponse:
3034
3275
  """
@@ -3629,6 +3870,19 @@ class AsyncLinqAPIV3WithRawResponse:
3629
3870
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
3630
3871
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
3631
3872
  specific number to blame with a `403`).
3873
+
3874
+ **Published vs unpublished.** A *published* number is available for your account to use.
3875
+ Only published numbers appear in `GET /v3/phone_numbers`.
3876
+
3877
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
3878
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
3879
+
3880
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
3881
+ status alone does not block reads, blocked-handle management, or deletion
3882
+ of your data. Existing authorization, retention, and endpoint rules still apply.
3883
+
3884
+ Webhook events are suppressed for affected numbers when their publication status is known to
3885
+ be unpublished.
3632
3886
  """
3633
3887
  from .resources.phonenumbers import AsyncPhonenumbersResourceWithRawResponse
3634
3888
 
@@ -3652,6 +3906,19 @@ class AsyncLinqAPIV3WithRawResponse:
3652
3906
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
3653
3907
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
3654
3908
  specific number to blame with a `403`).
3909
+
3910
+ **Published vs unpublished.** A *published* number is available for your account to use.
3911
+ Only published numbers appear in `GET /v3/phone_numbers`.
3912
+
3913
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
3914
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
3915
+
3916
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
3917
+ status alone does not block reads, blocked-handle management, or deletion
3918
+ of your data. Existing authorization, retention, and endpoint rules still apply.
3919
+
3920
+ Webhook events are suppressed for affected numbers when their publication status is known to
3921
+ be unpublished.
3655
3922
  """
3656
3923
  from .resources.phone_numbers import AsyncPhoneNumbersResourceWithRawResponse
3657
3924
 
@@ -3675,6 +3942,19 @@ class AsyncLinqAPIV3WithRawResponse:
3675
3942
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
3676
3943
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
3677
3944
  specific number to blame with a `403`).
3945
+
3946
+ **Published vs unpublished.** A *published* number is available for your account to use.
3947
+ Only published numbers appear in `GET /v3/phone_numbers`.
3948
+
3949
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
3950
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
3951
+
3952
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
3953
+ status alone does not block reads, blocked-handle management, or deletion
3954
+ of your data. Existing authorization, retention, and endpoint rules still apply.
3955
+
3956
+ Webhook events are suppressed for affected numbers when their publication status is known to
3957
+ be unpublished.
3678
3958
  """
3679
3959
  from .resources.available_number import AsyncAvailableNumberResourceWithRawResponse
3680
3960
 
@@ -3978,6 +4258,46 @@ class AsyncLinqAPIV3WithRawResponse:
3978
4258
 
3979
4259
  return AsyncExperiencesResourceWithRawResponse(self._client.experiences)
3980
4260
 
4261
+ @cached_property
4262
+ def sip_profiles(self) -> sip_profiles.AsyncSipProfilesResourceWithRawResponse:
4263
+ """## SIP configuration
4264
+
4265
+ Add these IP ranges to your SIP endpoint's allowlist:
4266
+
4267
+ ```
4268
+ 54.172.60.0/30
4269
+ 54.244.51.0/30
4270
+ 168.86.128.0/18
4271
+ ```
4272
+
4273
+ Set `primary_uri` to your endpoint as scheme + host — `sips:` for TLS or
4274
+ `sip:` for UDP, with no user part (we add it). Each call arrives at your
4275
+ endpoint as:
4276
+
4277
+ ```
4278
+ sip:<called-number>@<your-host>
4279
+ ```
4280
+
4281
+ so you can route on the dialed number. The caller's number is in the
4282
+ `From` header in E.164. Media (RTP) uses UDP ports 10000–60000.
4283
+ """
4284
+ from .resources.sip_profiles import AsyncSipProfilesResourceWithRawResponse
4285
+
4286
+ return AsyncSipProfilesResourceWithRawResponse(self._client.sip_profiles)
4287
+
4288
+ @cached_property
4289
+ def call_voice(self) -> call_voice.AsyncCallVoiceResourceWithRawResponse:
4290
+ """Read the carrier (BYOC) voice calls received on your phone numbers.
4291
+
4292
+ Each
4293
+ record is the durable form of the `call_voice.*` webhooks for that call and
4294
+ shares the same `id`, so you can look a call up by the id a webhook
4295
+ delivered. See SIP Profiles for routing inbound calls to your endpoint.
4296
+ """
4297
+ from .resources.call_voice import AsyncCallVoiceResourceWithRawResponse
4298
+
4299
+ return AsyncCallVoiceResourceWithRawResponse(self._client.call_voice)
4300
+
3981
4301
  @cached_property
3982
4302
  def webhook_events(self) -> webhook_events.AsyncWebhookEventsResourceWithRawResponse:
3983
4303
  """
@@ -4578,6 +4898,19 @@ class LinqAPIV3WithStreamedResponse:
4578
4898
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
4579
4899
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
4580
4900
  specific number to blame with a `403`).
4901
+
4902
+ **Published vs unpublished.** A *published* number is available for your account to use.
4903
+ Only published numbers appear in `GET /v3/phone_numbers`.
4904
+
4905
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
4906
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
4907
+
4908
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
4909
+ status alone does not block reads, blocked-handle management, or deletion
4910
+ of your data. Existing authorization, retention, and endpoint rules still apply.
4911
+
4912
+ Webhook events are suppressed for affected numbers when their publication status is known to
4913
+ be unpublished.
4581
4914
  """
4582
4915
  from .resources.phonenumbers import PhonenumbersResourceWithStreamingResponse
4583
4916
 
@@ -4601,6 +4934,19 @@ class LinqAPIV3WithStreamedResponse:
4601
4934
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
4602
4935
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
4603
4936
  specific number to blame with a `403`).
4937
+
4938
+ **Published vs unpublished.** A *published* number is available for your account to use.
4939
+ Only published numbers appear in `GET /v3/phone_numbers`.
4940
+
4941
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
4942
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
4943
+
4944
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
4945
+ status alone does not block reads, blocked-handle management, or deletion
4946
+ of your data. Existing authorization, retention, and endpoint rules still apply.
4947
+
4948
+ Webhook events are suppressed for affected numbers when their publication status is known to
4949
+ be unpublished.
4604
4950
  """
4605
4951
  from .resources.phone_numbers import PhoneNumbersResourceWithStreamingResponse
4606
4952
 
@@ -4624,6 +4970,19 @@ class LinqAPIV3WithStreamedResponse:
4624
4970
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
4625
4971
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
4626
4972
  specific number to blame with a `403`).
4973
+
4974
+ **Published vs unpublished.** A *published* number is available for your account to use.
4975
+ Only published numbers appear in `GET /v3/phone_numbers`.
4976
+
4977
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
4978
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
4979
+
4980
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
4981
+ status alone does not block reads, blocked-handle management, or deletion
4982
+ of your data. Existing authorization, retention, and endpoint rules still apply.
4983
+
4984
+ Webhook events are suppressed for affected numbers when their publication status is known to
4985
+ be unpublished.
4627
4986
  """
4628
4987
  from .resources.available_number import AvailableNumberResourceWithStreamingResponse
4629
4988
 
@@ -4927,6 +5286,46 @@ class LinqAPIV3WithStreamedResponse:
4927
5286
 
4928
5287
  return ExperiencesResourceWithStreamingResponse(self._client.experiences)
4929
5288
 
5289
+ @cached_property
5290
+ def sip_profiles(self) -> sip_profiles.SipProfilesResourceWithStreamingResponse:
5291
+ """## SIP configuration
5292
+
5293
+ Add these IP ranges to your SIP endpoint's allowlist:
5294
+
5295
+ ```
5296
+ 54.172.60.0/30
5297
+ 54.244.51.0/30
5298
+ 168.86.128.0/18
5299
+ ```
5300
+
5301
+ Set `primary_uri` to your endpoint as scheme + host — `sips:` for TLS or
5302
+ `sip:` for UDP, with no user part (we add it). Each call arrives at your
5303
+ endpoint as:
5304
+
5305
+ ```
5306
+ sip:<called-number>@<your-host>
5307
+ ```
5308
+
5309
+ so you can route on the dialed number. The caller's number is in the
5310
+ `From` header in E.164. Media (RTP) uses UDP ports 10000–60000.
5311
+ """
5312
+ from .resources.sip_profiles import SipProfilesResourceWithStreamingResponse
5313
+
5314
+ return SipProfilesResourceWithStreamingResponse(self._client.sip_profiles)
5315
+
5316
+ @cached_property
5317
+ def call_voice(self) -> call_voice.CallVoiceResourceWithStreamingResponse:
5318
+ """Read the carrier (BYOC) voice calls received on your phone numbers.
5319
+
5320
+ Each
5321
+ record is the durable form of the `call_voice.*` webhooks for that call and
5322
+ shares the same `id`, so you can look a call up by the id a webhook
5323
+ delivered. See SIP Profiles for routing inbound calls to your endpoint.
5324
+ """
5325
+ from .resources.call_voice import CallVoiceResourceWithStreamingResponse
5326
+
5327
+ return CallVoiceResourceWithStreamingResponse(self._client.call_voice)
5328
+
4930
5329
  @cached_property
4931
5330
  def webhook_events(self) -> webhook_events.WebhookEventsResourceWithStreamingResponse:
4932
5331
  """
@@ -5527,6 +5926,19 @@ class AsyncLinqAPIV3WithStreamedResponse:
5527
5926
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
5528
5927
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
5529
5928
  specific number to blame with a `403`).
5929
+
5930
+ **Published vs unpublished.** A *published* number is available for your account to use.
5931
+ Only published numbers appear in `GET /v3/phone_numbers`.
5932
+
5933
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
5934
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
5935
+
5936
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
5937
+ status alone does not block reads, blocked-handle management, or deletion
5938
+ of your data. Existing authorization, retention, and endpoint rules still apply.
5939
+
5940
+ Webhook events are suppressed for affected numbers when their publication status is known to
5941
+ be unpublished.
5530
5942
  """
5531
5943
  from .resources.phonenumbers import AsyncPhonenumbersResourceWithStreamingResponse
5532
5944
 
@@ -5550,6 +5962,19 @@ class AsyncLinqAPIV3WithStreamedResponse:
5550
5962
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
5551
5963
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
5552
5964
  specific number to blame with a `403`).
5965
+
5966
+ **Published vs unpublished.** A *published* number is available for your account to use.
5967
+ Only published numbers appear in `GET /v3/phone_numbers`.
5968
+
5969
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
5970
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
5971
+
5972
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
5973
+ status alone does not block reads, blocked-handle management, or deletion
5974
+ of your data. Existing authorization, retention, and endpoint rules still apply.
5975
+
5976
+ Webhook events are suppressed for affected numbers when their publication status is known to
5977
+ be unpublished.
5553
5978
  """
5554
5979
  from .resources.phone_numbers import AsyncPhoneNumbersResourceWithStreamingResponse
5555
5980
 
@@ -5573,6 +5998,19 @@ class AsyncLinqAPIV3WithStreamedResponse:
5573
5998
  pick an eligible number for you, skipping ineligible ones; if none of your assigned
5574
5999
  numbers are eligible, you get `409` (no `from` number was ever chosen, so there's no
5575
6000
  specific number to blame with a `403`).
6001
+
6002
+ **Published vs unpublished.** A *published* number is available for your account to use.
6003
+ Only published numbers appear in `GET /v3/phone_numbers`.
6004
+
6005
+ Unpublished numbers allow `GET` requests. `POST`, `PUT`, `PATCH`, and `DELETE` requests that
6006
+ change a chat return `403` with error code `2033` (`Phone number is unpublished`).
6007
+
6008
+ A number's existing data is preserved when its status changes to unpublished. Unpublished
6009
+ status alone does not block reads, blocked-handle management, or deletion
6010
+ of your data. Existing authorization, retention, and endpoint rules still apply.
6011
+
6012
+ Webhook events are suppressed for affected numbers when their publication status is known to
6013
+ be unpublished.
5576
6014
  """
5577
6015
  from .resources.available_number import AsyncAvailableNumberResourceWithStreamingResponse
5578
6016
 
@@ -5876,6 +6314,46 @@ class AsyncLinqAPIV3WithStreamedResponse:
5876
6314
 
5877
6315
  return AsyncExperiencesResourceWithStreamingResponse(self._client.experiences)
5878
6316
 
6317
+ @cached_property
6318
+ def sip_profiles(self) -> sip_profiles.AsyncSipProfilesResourceWithStreamingResponse:
6319
+ """## SIP configuration
6320
+
6321
+ Add these IP ranges to your SIP endpoint's allowlist:
6322
+
6323
+ ```
6324
+ 54.172.60.0/30
6325
+ 54.244.51.0/30
6326
+ 168.86.128.0/18
6327
+ ```
6328
+
6329
+ Set `primary_uri` to your endpoint as scheme + host — `sips:` for TLS or
6330
+ `sip:` for UDP, with no user part (we add it). Each call arrives at your
6331
+ endpoint as:
6332
+
6333
+ ```
6334
+ sip:<called-number>@<your-host>
6335
+ ```
6336
+
6337
+ so you can route on the dialed number. The caller's number is in the
6338
+ `From` header in E.164. Media (RTP) uses UDP ports 10000–60000.
6339
+ """
6340
+ from .resources.sip_profiles import AsyncSipProfilesResourceWithStreamingResponse
6341
+
6342
+ return AsyncSipProfilesResourceWithStreamingResponse(self._client.sip_profiles)
6343
+
6344
+ @cached_property
6345
+ def call_voice(self) -> call_voice.AsyncCallVoiceResourceWithStreamingResponse:
6346
+ """Read the carrier (BYOC) voice calls received on your phone numbers.
6347
+
6348
+ Each
6349
+ record is the durable form of the `call_voice.*` webhooks for that call and
6350
+ shares the same `id`, so you can look a call up by the id a webhook
6351
+ delivered. See SIP Profiles for routing inbound calls to your endpoint.
6352
+ """
6353
+ from .resources.call_voice import AsyncCallVoiceResourceWithStreamingResponse
6354
+
6355
+ return AsyncCallVoiceResourceWithStreamingResponse(self._client.call_voice)
6356
+
5879
6357
  @cached_property
5880
6358
  def webhook_events(self) -> webhook_events.AsyncWebhookEventsResourceWithStreamingResponse:
5881
6359
  """
linq/_version.py CHANGED
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "linq"
4
- __version__ = "0.65.0" # x-release-please-version
4
+ __version__ = "0.67.0" # x-release-please-version