telnyx 5.60.0 → 5.62.0

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 (171) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +37 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/client.rb +10 -5
  5. data/lib/telnyx/errors.rb +0 -10
  6. data/lib/telnyx/lib/webhook_verification.rb +172 -0
  7. data/lib/telnyx/models/ai/assistants/{tag_delete_params.rb → tag_add_params.rb} +2 -2
  8. data/lib/telnyx/models/ai/assistants/{tag_delete_response.rb → tag_add_response.rb} +2 -2
  9. data/lib/telnyx/models/ai/assistants/{tag_create_params.rb → tag_remove_params.rb} +2 -2
  10. data/lib/telnyx/models/ai/assistants/{tag_create_response.rb → tag_remove_response.rb} +2 -2
  11. data/lib/telnyx/models/call_cost_webhook_event.rb +242 -0
  12. data/lib/telnyx/models/calls/action_start_noise_suppression_params.rb +135 -8
  13. data/lib/telnyx/models/text_to_speech_generate_params.rb +3 -3
  14. data/lib/telnyx/models/unsafe_unwrap_webhook_event.rb +3 -1
  15. data/lib/telnyx/models/unwrap_webhook_event.rb +3 -1
  16. data/lib/telnyx/models/voice_clone_create_from_design_params.rb +27 -6
  17. data/lib/telnyx/models/voice_clone_create_from_upload_params.rb +23 -2
  18. data/lib/telnyx/models/voice_clone_create_params.rb +79 -0
  19. data/lib/telnyx/models/voice_clone_create_response.rb +19 -0
  20. data/lib/telnyx/models/voice_clone_data.rb +41 -1
  21. data/lib/telnyx/models/voice_clone_list_params.rb +22 -1
  22. data/lib/telnyx/models/voice_design_create_params.rb +24 -1
  23. data/lib/telnyx/models/voice_design_data.rb +45 -1
  24. data/lib/telnyx/models/voice_design_list_response.rb +32 -1
  25. data/lib/telnyx/models/{voice_design_update_params.rb → voice_design_rename_params.rb} +2 -2
  26. data/lib/telnyx/models/{voice_design_update_response.rb → voice_design_rename_response.rb} +42 -11
  27. data/lib/telnyx/models/whatsapp/business_accounts/{phone_number_create_verification_params.rb → phone_number_initialize_verification_params.rb} +5 -5
  28. data/lib/telnyx/models/whatsapp/template_create_params.rb +530 -0
  29. data/lib/telnyx/models/whatsapp/{message_template_create_response.rb → template_create_response.rb} +2 -2
  30. data/lib/telnyx/models/whatsapp/{message_template_list_params.rb → template_list_params.rb} +5 -5
  31. data/lib/telnyx/models/whatsapp_message_template_delete_params.rb +20 -0
  32. data/lib/telnyx/models/whatsapp_message_template_retrieve_params.rb +20 -0
  33. data/lib/telnyx/models/whatsapp_message_template_retrieve_response.rb +16 -0
  34. data/lib/telnyx/models/whatsapp_message_template_update_params.rb +504 -0
  35. data/lib/telnyx/models/whatsapp_message_template_update_response.rb +16 -0
  36. data/lib/telnyx/models/whatsapp_template_data.rb +10 -3
  37. data/lib/telnyx/models/x402/{credit_account_create_payment_quote_params.rb → credit_account_create_quote_params.rb} +2 -2
  38. data/lib/telnyx/models/x402/{credit_account_create_payment_quote_response.rb → credit_account_create_quote_response.rb} +31 -32
  39. data/lib/telnyx/models/x402/{credit_account_settle_payment_params.rb → credit_account_settle_params.rb} +3 -3
  40. data/lib/telnyx/models/x402/{credit_account_settle_payment_response.rb → credit_account_settle_response.rb} +14 -15
  41. data/lib/telnyx/models.rb +12 -4
  42. data/lib/telnyx/resources/ai/assistants/tags.rb +28 -28
  43. data/lib/telnyx/resources/calls/actions.rb +1 -1
  44. data/lib/telnyx/resources/voice_clones.rb +38 -31
  45. data/lib/telnyx/resources/voice_designs.rb +27 -25
  46. data/lib/telnyx/resources/webhooks.rb +10 -183
  47. data/lib/telnyx/resources/whatsapp/business_accounts/phone_numbers.rb +5 -5
  48. data/lib/telnyx/resources/whatsapp/phone_numbers/profile.rb +0 -4
  49. data/lib/telnyx/resources/whatsapp/templates.rb +91 -0
  50. data/lib/telnyx/resources/whatsapp.rb +3 -3
  51. data/lib/telnyx/resources/whatsapp_message_templates.rb +81 -0
  52. data/lib/telnyx/resources/x402/credit_account.rb +13 -13
  53. data/lib/telnyx/version.rb +1 -1
  54. data/lib/telnyx.rb +25 -24
  55. data/rbi/telnyx/client.rbi +8 -4
  56. data/rbi/telnyx/models/ai/assistants/{tag_create_params.rbi → tag_add_params.rbi} +2 -2
  57. data/rbi/telnyx/models/ai/assistants/{tag_delete_response.rbi → tag_add_response.rbi} +2 -2
  58. data/rbi/telnyx/models/ai/assistants/{tag_delete_params.rbi → tag_remove_params.rbi} +2 -2
  59. data/rbi/telnyx/models/ai/assistants/{tag_create_response.rbi → tag_remove_response.rbi} +2 -2
  60. data/rbi/telnyx/models/call_cost_webhook_event.rbi +485 -0
  61. data/rbi/telnyx/models/calls/action_start_noise_suppression_params.rbi +338 -12
  62. data/rbi/telnyx/models/text_to_speech_generate_params.rbi +2 -1
  63. data/rbi/telnyx/models/unsafe_unwrap_webhook_event.rbi +1 -0
  64. data/rbi/telnyx/models/unwrap_webhook_event.rbi +1 -0
  65. data/rbi/telnyx/models/voice_clone_create_from_design_params.rbi +51 -0
  66. data/rbi/telnyx/models/voice_clone_create_from_upload_params.rbi +67 -2
  67. data/rbi/telnyx/models/voice_clone_create_params.rbi +142 -0
  68. data/rbi/telnyx/models/voice_clone_create_response.rbi +36 -0
  69. data/rbi/telnyx/models/voice_clone_data.rbi +57 -0
  70. data/rbi/telnyx/models/voice_clone_list_params.rbi +62 -0
  71. data/rbi/telnyx/models/voice_design_create_params.rbi +60 -0
  72. data/rbi/telnyx/models/voice_design_data.rbi +59 -0
  73. data/rbi/telnyx/models/voice_design_list_response.rbi +73 -0
  74. data/rbi/telnyx/models/{voice_design_update_params.rbi → voice_design_rename_params.rbi} +2 -2
  75. data/rbi/telnyx/models/{voice_design_update_response.rbi → voice_design_rename_response.rbi} +90 -14
  76. data/rbi/telnyx/models/whatsapp/business_accounts/{phone_number_create_verification_params.rbi → phone_number_initialize_verification_params.rbi} +10 -10
  77. data/rbi/telnyx/models/whatsapp/template_create_params.rbi +1177 -0
  78. data/rbi/telnyx/models/whatsapp/{message_template_create_response.rbi → template_create_response.rbi} +2 -2
  79. data/rbi/telnyx/models/whatsapp/{message_template_list_params.rbi → template_list_params.rbi} +11 -11
  80. data/rbi/telnyx/models/whatsapp_message_template_delete_params.rbi +38 -0
  81. data/rbi/telnyx/models/whatsapp_message_template_retrieve_params.rbi +38 -0
  82. data/rbi/telnyx/models/whatsapp_message_template_retrieve_response.rbi +33 -0
  83. data/rbi/telnyx/models/whatsapp_message_template_update_params.rbi +1178 -0
  84. data/rbi/telnyx/models/whatsapp_message_template_update_response.rbi +33 -0
  85. data/rbi/telnyx/models/whatsapp_template_data.rbi +10 -2
  86. data/rbi/telnyx/models/x402/{credit_account_create_payment_quote_params.rbi → credit_account_create_quote_params.rbi} +2 -2
  87. data/rbi/telnyx/models/x402/{credit_account_create_payment_quote_response.rbi → credit_account_create_quote_response.rbi} +41 -42
  88. data/rbi/telnyx/models/x402/{credit_account_settle_payment_params.rbi → credit_account_settle_params.rbi} +2 -2
  89. data/rbi/telnyx/models/x402/{credit_account_settle_payment_response.rbi → credit_account_settle_response.rbi} +21 -26
  90. data/rbi/telnyx/models.rbi +29 -3
  91. data/rbi/telnyx/resources/ai/assistants/tags.rbi +13 -13
  92. data/rbi/telnyx/resources/calls/actions.rbi +4 -3
  93. data/rbi/telnyx/resources/voice_clones.rbi +36 -25
  94. data/rbi/telnyx/resources/voice_designs.rbi +21 -17
  95. data/rbi/telnyx/resources/webhooks.rbi +12 -2
  96. data/rbi/telnyx/resources/whatsapp/business_accounts/phone_numbers.rbi +2 -2
  97. data/rbi/telnyx/resources/whatsapp/phone_numbers/profile.rbi +0 -5
  98. data/rbi/telnyx/resources/whatsapp/templates.rbi +85 -0
  99. data/rbi/telnyx/resources/whatsapp.rbi +2 -2
  100. data/rbi/telnyx/resources/whatsapp_message_templates.rbi +67 -0
  101. data/rbi/telnyx/resources/x402/credit_account.rbi +4 -6
  102. data/sig/telnyx/client.rbs +4 -2
  103. data/sig/telnyx/models/ai/assistants/{tag_delete_params.rbs → tag_add_params.rbs} +2 -2
  104. data/sig/telnyx/models/ai/assistants/{tag_delete_response.rbs → tag_add_response.rbs} +2 -2
  105. data/sig/telnyx/models/ai/assistants/{tag_create_params.rbs → tag_remove_params.rbs} +2 -2
  106. data/sig/telnyx/models/ai/assistants/{tag_create_response.rbs → tag_remove_response.rbs} +2 -2
  107. data/sig/telnyx/models/call_cost_webhook_event.rbs +235 -0
  108. data/sig/telnyx/models/calls/action_start_noise_suppression_params.rbs +124 -4
  109. data/sig/telnyx/models/unsafe_unwrap_webhook_event.rbs +1 -0
  110. data/sig/telnyx/models/unwrap_webhook_event.rbs +1 -0
  111. data/sig/telnyx/models/voice_clone_create_from_design_params.rbs +23 -1
  112. data/sig/telnyx/models/voice_clone_create_from_upload_params.rbs +22 -0
  113. data/sig/telnyx/models/voice_clone_create_params.rbs +75 -0
  114. data/sig/telnyx/models/voice_clone_create_response.rbs +15 -0
  115. data/sig/telnyx/models/voice_clone_data.rbs +34 -0
  116. data/sig/telnyx/models/voice_clone_list_params.rbs +22 -0
  117. data/sig/telnyx/models/voice_design_create_params.rbs +22 -0
  118. data/sig/telnyx/models/voice_design_data.rbs +30 -0
  119. data/sig/telnyx/models/voice_design_list_response.rbs +25 -0
  120. data/sig/telnyx/models/{voice_design_update_params.rbs → voice_design_rename_params.rbs} +2 -2
  121. data/sig/telnyx/models/voice_design_rename_response.rbs +104 -0
  122. data/sig/telnyx/models/whatsapp/business_accounts/{phone_number_create_verification_params.rbs → phone_number_initialize_verification_params.rbs} +9 -9
  123. data/sig/telnyx/models/whatsapp/template_create_params.rbs +479 -0
  124. data/sig/telnyx/models/whatsapp/{message_template_update_response.rbs → template_create_response.rbs} +2 -3
  125. data/sig/telnyx/models/whatsapp/{message_template_list_params.rbs → template_list_params.rbs} +9 -9
  126. data/sig/telnyx/models/whatsapp_message_template_delete_params.rbs +20 -0
  127. data/sig/telnyx/models/whatsapp_message_template_retrieve_params.rbs +20 -0
  128. data/sig/telnyx/models/whatsapp_message_template_retrieve_response.rbs +16 -0
  129. data/sig/telnyx/models/whatsapp_message_template_update_params.rbs +473 -0
  130. data/sig/telnyx/models/whatsapp_message_template_update_response.rbs +16 -0
  131. data/sig/telnyx/models/x402/{credit_account_create_payment_quote_params.rbs → credit_account_create_quote_params.rbs} +2 -2
  132. data/sig/telnyx/models/x402/{credit_account_create_payment_quote_response.rbs → credit_account_create_quote_response.rbs} +46 -48
  133. data/sig/telnyx/models/x402/{credit_account_settle_payment_params.rbs → credit_account_settle_params.rbs} +2 -2
  134. data/sig/telnyx/models/x402/{credit_account_settle_payment_response.rbs → credit_account_settle_response.rbs} +22 -22
  135. data/sig/telnyx/models.rbs +12 -4
  136. data/sig/telnyx/resources/ai/assistants/tags.rbs +8 -8
  137. data/sig/telnyx/resources/voice_clones.rbs +11 -8
  138. data/sig/telnyx/resources/voice_designs.rbs +7 -6
  139. data/sig/telnyx/resources/webhooks.rbs +5 -1
  140. data/sig/telnyx/resources/whatsapp/business_accounts/phone_numbers.rbs +2 -2
  141. data/sig/telnyx/resources/whatsapp/phone_numbers/profile.rbs +0 -2
  142. data/sig/telnyx/resources/whatsapp/templates.rbs +28 -0
  143. data/sig/telnyx/resources/whatsapp.rbs +1 -1
  144. data/sig/telnyx/resources/whatsapp_message_templates.rbs +21 -0
  145. data/sig/telnyx/resources/x402/credit_account.rbs +4 -4
  146. metadata +75 -65
  147. data/lib/telnyx/models/whatsapp/message_template_create_params.rb +0 -58
  148. data/lib/telnyx/models/whatsapp/message_template_delete_params.rb +0 -22
  149. data/lib/telnyx/models/whatsapp/message_template_retrieve_params.rb +0 -22
  150. data/lib/telnyx/models/whatsapp/message_template_retrieve_response.rb +0 -18
  151. data/lib/telnyx/models/whatsapp/message_template_update_params.rb +0 -46
  152. data/lib/telnyx/models/whatsapp/message_template_update_response.rb +0 -18
  153. data/lib/telnyx/resources/whatsapp/message_templates.rb +0 -149
  154. data/lib/telnyx/resources/whatsapp/phone_numbers/profile/models.rb +0 -20
  155. data/rbi/telnyx/models/whatsapp/message_template_create_params.rbi +0 -115
  156. data/rbi/telnyx/models/whatsapp/message_template_delete_params.rbi +0 -40
  157. data/rbi/telnyx/models/whatsapp/message_template_retrieve_params.rbi +0 -40
  158. data/rbi/telnyx/models/whatsapp/message_template_retrieve_response.rbi +0 -35
  159. data/rbi/telnyx/models/whatsapp/message_template_update_params.rbi +0 -111
  160. data/rbi/telnyx/models/whatsapp/message_template_update_response.rbi +0 -35
  161. data/rbi/telnyx/resources/whatsapp/message_templates.rbi +0 -116
  162. data/rbi/telnyx/resources/whatsapp/phone_numbers/profile/models.rbi +0 -18
  163. data/sig/telnyx/models/voice_design_update_response.rbs +0 -79
  164. data/sig/telnyx/models/whatsapp/message_template_create_params.rbs +0 -60
  165. data/sig/telnyx/models/whatsapp/message_template_create_response.rbs +0 -20
  166. data/sig/telnyx/models/whatsapp/message_template_delete_params.rbs +0 -22
  167. data/sig/telnyx/models/whatsapp/message_template_retrieve_params.rbs +0 -22
  168. data/sig/telnyx/models/whatsapp/message_template_retrieve_response.rbs +0 -20
  169. data/sig/telnyx/models/whatsapp/message_template_update_params.rbs +0 -58
  170. data/sig/telnyx/resources/whatsapp/message_templates.rbs +0 -42
  171. data/sig/telnyx/resources/whatsapp/phone_numbers/profile/models.rbs +0 -13
@@ -6,17 +6,6 @@ module Telnyx
6
6
  class Assistants
7
7
  # Configure AI assistant specifications
8
8
  class Tags
9
- # Add Assistant Tag
10
- sig do
11
- params(
12
- assistant_id: String,
13
- tag: String,
14
- request_options: Telnyx::RequestOptions::OrHash
15
- ).returns(Telnyx::Models::AI::Assistants::TagCreateResponse)
16
- end
17
- def create(assistant_id, tag:, request_options: {})
18
- end
19
-
20
9
  # Get All Tags
21
10
  sig do
22
11
  params(request_options: Telnyx::RequestOptions::OrHash).returns(
@@ -26,15 +15,26 @@ module Telnyx
26
15
  def list(request_options: {})
27
16
  end
28
17
 
18
+ # Add Assistant Tag
19
+ sig do
20
+ params(
21
+ assistant_id: String,
22
+ tag: String,
23
+ request_options: Telnyx::RequestOptions::OrHash
24
+ ).returns(Telnyx::Models::AI::Assistants::TagAddResponse)
25
+ end
26
+ def add(assistant_id, tag:, request_options: {})
27
+ end
28
+
29
29
  # Remove Assistant Tag
30
30
  sig do
31
31
  params(
32
32
  tag: String,
33
33
  assistant_id: String,
34
34
  request_options: Telnyx::RequestOptions::OrHash
35
- ).returns(Telnyx::Models::AI::Assistants::TagDeleteResponse)
35
+ ).returns(Telnyx::Models::AI::Assistants::TagRemoveResponse)
36
36
  end
37
- def delete(tag, assistant_id:, request_options: {})
37
+ def remove(tag, assistant_id:, request_options: {})
38
38
  end
39
39
 
40
40
  # @api private
@@ -1313,10 +1313,11 @@ module Telnyx
1313
1313
  # The direction of the audio stream to be noise suppressed.
1314
1314
  direction: nil,
1315
1315
  # The engine to use for noise suppression. For backward compatibility, engines A,
1316
- # B, and C are also supported, but are deprecated: A - Denoiser B - DeepFilterNet
1317
- # C - Krisp
1316
+ # B, C, and D are also supported, but are deprecated: A - Denoiser B -
1317
+ # DeepFilterNet C - Krisp D - AiCoustics
1318
1318
  noise_suppression_engine: nil,
1319
- # Configuration parameters for noise suppression engines.
1319
+ # Configuration parameters for noise suppression engines. Different engines
1320
+ # support different parameters.
1320
1321
  noise_suppression_engine_config: nil,
1321
1322
  request_options: {}
1322
1323
  )
@@ -5,6 +5,33 @@ module Telnyx
5
5
  # Capture and manage voice identities as clones for use in text-to-speech
6
6
  # synthesis.
7
7
  class VoiceClones
8
+ # Creates a new voice clone by capturing the voice identity of an existing voice
9
+ # design. The clone can then be used for text-to-speech synthesis.
10
+ sig do
11
+ params(
12
+ gender: Telnyx::VoiceCloneCreateParams::Gender::OrSymbol,
13
+ language: String,
14
+ name: String,
15
+ voice_design_id: String,
16
+ provider: Telnyx::VoiceCloneCreateParams::Provider::OrSymbol,
17
+ request_options: Telnyx::RequestOptions::OrHash
18
+ ).returns(Telnyx::Models::VoiceCloneCreateResponse)
19
+ end
20
+ def create(
21
+ # Gender of the voice clone.
22
+ gender:,
23
+ # ISO 639-1 language code for the clone (e.g. `en`, `fr`, `de`).
24
+ language:,
25
+ # Name for the voice clone.
26
+ name:,
27
+ # UUID of the source voice design to clone.
28
+ voice_design_id:,
29
+ # Voice synthesis provider. Case-insensitive. Defaults to `telnyx`.
30
+ provider: nil,
31
+ request_options: {}
32
+ )
33
+ end
34
+
8
35
  # Updates the name, language, or gender of a voice clone.
9
36
  sig do
10
37
  params(
@@ -32,6 +59,8 @@ module Telnyx
32
59
  sig do
33
60
  params(
34
61
  filter_name: String,
62
+ filter_provider:
63
+ Telnyx::VoiceCloneListParams::FilterProvider::OrSymbol,
35
64
  page_number: Integer,
36
65
  page_size: Integer,
37
66
  sort: Telnyx::VoiceCloneListParams::Sort::OrSymbol,
@@ -43,6 +72,8 @@ module Telnyx
43
72
  def list(
44
73
  # Case-insensitive substring filter on the name field.
45
74
  filter_name: nil,
75
+ # Filter by voice synthesis provider. Case-insensitive.
76
+ filter_provider: nil,
46
77
  # Page number for pagination (1-based).
47
78
  page_number: nil,
48
79
  # Number of results per page.
@@ -64,30 +95,6 @@ module Telnyx
64
95
  )
65
96
  end
66
97
 
67
- # Creates a new voice clone by capturing the voice identity of an existing voice
68
- # design. The clone can then be used for text-to-speech synthesis.
69
- sig do
70
- params(
71
- gender: Telnyx::VoiceCloneCreateFromDesignParams::Gender::OrSymbol,
72
- language: String,
73
- name: String,
74
- voice_design_id: String,
75
- request_options: Telnyx::RequestOptions::OrHash
76
- ).returns(Telnyx::Models::VoiceCloneCreateFromDesignResponse)
77
- end
78
- def create_from_design(
79
- # Gender of the voice clone.
80
- gender:,
81
- # ISO 639-1 language code for the clone (e.g. `en`, `fr`, `de`).
82
- language:,
83
- # Name for the voice clone.
84
- name:,
85
- # UUID of the source voice design to clone.
86
- voice_design_id:,
87
- request_options: {}
88
- )
89
- end
90
-
91
98
  # Creates a new voice clone by uploading an audio file directly. Supported
92
99
  # formats: WAV, MP3, FLAC, OGG, M4A. For best results, provide 5–10 seconds of
93
100
  # clear speech. Maximum file size: 2MB.
@@ -98,6 +105,8 @@ module Telnyx
98
105
  name: String,
99
106
  gender: Telnyx::VoiceCloneCreateFromUploadParams::Gender::OrSymbol,
100
107
  label: String,
108
+ provider:
109
+ Telnyx::VoiceCloneCreateFromUploadParams::Provider::OrSymbol,
101
110
  ref_text: String,
102
111
  request_options: Telnyx::RequestOptions::OrHash
103
112
  ).returns(Telnyx::Models::VoiceCloneCreateFromUploadResponse)
@@ -105,7 +114,7 @@ module Telnyx
105
114
  def create_from_upload(
106
115
  # Audio file to clone the voice from. Supported formats: WAV, MP3, FLAC, OGG, M4A.
107
116
  # For best quality, provide 5–10 seconds of clear, uninterrupted speech. Maximum
108
- # size: 2MB.
117
+ # size: 5MB for Telnyx, 20MB for Minimax.
109
118
  audio_file:,
110
119
  # ISO 639-1 language code (e.g. `en`, `fr`) or `auto` for automatic detection.
111
120
  language:,
@@ -116,6 +125,8 @@ module Telnyx
116
125
  # Optional custom label describing the voice style. If omitted, falls back to the
117
126
  # source design's prompt text.
118
127
  label: nil,
128
+ # Voice synthesis provider. Case-insensitive. Defaults to `telnyx`.
129
+ provider: nil,
119
130
  # Optional transcript of the audio file. Providing this improves clone quality.
120
131
  ref_text: nil,
121
132
  request_options: {}
@@ -14,6 +14,7 @@ module Telnyx
14
14
  language: String,
15
15
  max_new_tokens: Integer,
16
16
  name: String,
17
+ provider: Telnyx::VoiceDesignCreateParams::Provider::OrSymbol,
17
18
  repetition_penalty: Float,
18
19
  temperature: Float,
19
20
  top_k: Integer,
@@ -37,6 +38,9 @@ module Telnyx
37
38
  # (`voice_design_id` is not provided); ignored when adding a version. Cannot be a
38
39
  # UUID.
39
40
  name: nil,
41
+ # Voice synthesis provider. `telnyx` uses the Qwen3TTS model; `minimax` uses the
42
+ # Minimax speech models. Case-insensitive. Defaults to `telnyx`.
43
+ provider: nil,
40
44
  # Repetition penalty to reduce repeated patterns in generated audio. Default:
41
45
  # 1.05.
42
46
  repetition_penalty: nil,
@@ -75,23 +79,6 @@ module Telnyx
75
79
  )
76
80
  end
77
81
 
78
- # Updates the name of a voice design. All versions retain their other properties.
79
- sig do
80
- params(
81
- id: String,
82
- name: String,
83
- request_options: Telnyx::RequestOptions::OrHash
84
- ).returns(Telnyx::Models::VoiceDesignUpdateResponse)
85
- end
86
- def update(
87
- # The voice design UUID or name.
88
- id,
89
- # New name for the voice design.
90
- name:,
91
- request_options: {}
92
- )
93
- end
94
-
95
82
  # Returns a paginated list of voice designs belonging to the authenticated
96
83
  # account.
97
84
  sig do
@@ -170,6 +157,23 @@ module Telnyx
170
157
  )
171
158
  end
172
159
 
160
+ # Updates the name of a voice design. All versions retain their other properties.
161
+ sig do
162
+ params(
163
+ id: String,
164
+ name: String,
165
+ request_options: Telnyx::RequestOptions::OrHash
166
+ ).returns(Telnyx::Models::VoiceDesignRenameResponse)
167
+ end
168
+ def rename(
169
+ # The voice design UUID or name.
170
+ id,
171
+ # New name for the voice design.
172
+ name:,
173
+ request_options: {}
174
+ )
175
+ end
176
+
173
177
  # @api private
174
178
  sig { params(client: Telnyx::Client).returns(T.attached_class) }
175
179
  def self.new(client:)
@@ -13,6 +13,7 @@ module Telnyx
13
13
  Telnyx::CallBridgedWebhookEvent,
14
14
  Telnyx::CallConversationEndedWebhookEvent,
15
15
  Telnyx::CallConversationInsightsGeneratedWebhookEvent,
16
+ Telnyx::CallCostWebhookEvent,
16
17
  Telnyx::CallDtmfReceivedWebhookEvent,
17
18
  Telnyx::CallEnqueuedWebhookEvent,
18
19
  Telnyx::CallForkStartedWebhookEvent,
@@ -76,7 +77,11 @@ module Telnyx
76
77
  end
77
78
 
78
79
  sig do
79
- params(payload: String).returns(
80
+ params(
81
+ payload: String,
82
+ headers: T::Hash[String, String],
83
+ key: T.nilable(String)
84
+ ).returns(
80
85
  T.any(
81
86
  Telnyx::CallAIGatherEndedWebhookEvent,
82
87
  Telnyx::CallAIGatherMessageHistoryUpdatedWebhookEvent,
@@ -85,6 +90,7 @@ module Telnyx
85
90
  Telnyx::CallBridgedWebhookEvent,
86
91
  Telnyx::CallConversationEndedWebhookEvent,
87
92
  Telnyx::CallConversationInsightsGeneratedWebhookEvent,
93
+ Telnyx::CallCostWebhookEvent,
88
94
  Telnyx::CallDtmfReceivedWebhookEvent,
89
95
  Telnyx::CallEnqueuedWebhookEvent,
90
96
  Telnyx::CallForkStartedWebhookEvent,
@@ -143,7 +149,11 @@ module Telnyx
143
149
  end
144
150
  def unwrap(
145
151
  # The raw webhook payload as a string
146
- payload
152
+ payload,
153
+ # The raw HTTP headers that came with the payload
154
+ headers:,
155
+ # The webhook signing key
156
+ key: @client.public_key
147
157
  )
148
158
  end
149
159
 
@@ -35,11 +35,11 @@ module Telnyx
35
35
  phone_number: String,
36
36
  language: String,
37
37
  verification_method:
38
- Telnyx::Whatsapp::BusinessAccounts::PhoneNumberCreateVerificationParams::VerificationMethod::OrSymbol,
38
+ Telnyx::Whatsapp::BusinessAccounts::PhoneNumberInitializeVerificationParams::VerificationMethod::OrSymbol,
39
39
  request_options: Telnyx::RequestOptions::OrHash
40
40
  ).void
41
41
  end
42
- def create_verification(
42
+ def initialize_verification(
43
43
  # Whatsapp Business Account ID
44
44
  id,
45
45
  display_name:,
@@ -12,11 +12,6 @@ module Telnyx
12
12
  end
13
13
  attr_reader :photo
14
14
 
15
- sig do
16
- returns(Telnyx::Resources::Whatsapp::PhoneNumbers::Profile::Models)
17
- end
18
- attr_reader :models
19
-
20
15
  # Get phone number business profile
21
16
  sig do
22
17
  params(
@@ -0,0 +1,85 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Resources
5
+ class Whatsapp
6
+ # Manage Whatsapp message templates
7
+ class Templates
8
+ # Create a Whatsapp message template
9
+ sig do
10
+ params(
11
+ category:
12
+ Telnyx::Whatsapp::TemplateCreateParams::Category::OrSymbol,
13
+ components:
14
+ T::Array[
15
+ T.any(
16
+ Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateHeaderComponent::OrHash,
17
+ Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateBodyComponent::OrHash,
18
+ Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateFooterComponent::OrHash,
19
+ Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateButtonsComponent::OrHash,
20
+ Telnyx::Whatsapp::TemplateCreateParams::Component::WhatsappTemplateCarouselComponent::OrHash
21
+ )
22
+ ],
23
+ language: String,
24
+ name: String,
25
+ waba_id: String,
26
+ request_options: Telnyx::RequestOptions::OrHash
27
+ ).returns(Telnyx::Models::Whatsapp::TemplateCreateResponse)
28
+ end
29
+ def create(
30
+ # Template category: AUTHENTICATION, UTILITY, or MARKETING.
31
+ category:,
32
+ # Template components defining message structure. Passed through to Meta Graph
33
+ # API. Templates with variables must include example values. Supports HEADER,
34
+ # BODY, FOOTER, BUTTONS, CAROUSEL and any future Meta component types.
35
+ components:,
36
+ # Template language code (e.g. en_US, es, pt_BR).
37
+ language:,
38
+ # Template name. Lowercase letters, numbers, and underscores only.
39
+ name:,
40
+ # The WhatsApp Business Account ID.
41
+ waba_id:,
42
+ request_options: {}
43
+ )
44
+ end
45
+
46
+ # List Whatsapp message templates
47
+ sig do
48
+ params(
49
+ filter_category:
50
+ Telnyx::Whatsapp::TemplateListParams::FilterCategory::OrSymbol,
51
+ filter_search: String,
52
+ filter_status: String,
53
+ filter_waba_id: String,
54
+ page_number: Integer,
55
+ page_size: Integer,
56
+ request_options: Telnyx::RequestOptions::OrHash
57
+ ).returns(
58
+ Telnyx::Internal::DefaultFlatPagination[
59
+ Telnyx::WhatsappTemplateData
60
+ ]
61
+ )
62
+ end
63
+ def list(
64
+ # Filter by category
65
+ filter_category: nil,
66
+ # Search templates by name
67
+ filter_search: nil,
68
+ # Filter by template status
69
+ filter_status: nil,
70
+ # Filter by WABA ID
71
+ filter_waba_id: nil,
72
+ page_number: nil,
73
+ page_size: nil,
74
+ request_options: {}
75
+ )
76
+ end
77
+
78
+ # @api private
79
+ sig { params(client: Telnyx::Client).returns(T.attached_class) }
80
+ def self.new(client:)
81
+ end
82
+ end
83
+ end
84
+ end
85
+ end
@@ -8,8 +8,8 @@ module Telnyx
8
8
  attr_reader :business_accounts
9
9
 
10
10
  # Manage Whatsapp message templates
11
- sig { returns(Telnyx::Resources::Whatsapp::MessageTemplates) }
12
- attr_reader :message_templates
11
+ sig { returns(Telnyx::Resources::Whatsapp::Templates) }
12
+ attr_reader :templates
13
13
 
14
14
  # Manage Whatsapp phone numbers
15
15
  sig { returns(Telnyx::Resources::Whatsapp::PhoneNumbers) }
@@ -0,0 +1,67 @@
1
+ # typed: strong
2
+
3
+ module Telnyx
4
+ module Resources
5
+ # Manage Whatsapp message templates
6
+ class WhatsappMessageTemplates
7
+ # Get a Whatsapp message template by ID
8
+ sig do
9
+ params(
10
+ id: String,
11
+ request_options: Telnyx::RequestOptions::OrHash
12
+ ).returns(Telnyx::Models::WhatsappMessageTemplateRetrieveResponse)
13
+ end
14
+ def retrieve(
15
+ # Whatsapp message template ID
16
+ id,
17
+ request_options: {}
18
+ )
19
+ end
20
+
21
+ # Update a Whatsapp message template
22
+ sig do
23
+ params(
24
+ id: String,
25
+ category:
26
+ Telnyx::WhatsappMessageTemplateUpdateParams::Category::OrSymbol,
27
+ components:
28
+ T::Array[
29
+ T.any(
30
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateHeaderComponent::OrHash,
31
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateBodyComponent::OrHash,
32
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateFooterComponent::OrHash,
33
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateButtonsComponent::OrHash,
34
+ Telnyx::WhatsappMessageTemplateUpdateParams::Component::WhatsappTemplateCarouselComponent::OrHash
35
+ )
36
+ ],
37
+ request_options: Telnyx::RequestOptions::OrHash
38
+ ).returns(Telnyx::Models::WhatsappMessageTemplateUpdateResponse)
39
+ end
40
+ def update(
41
+ # Whatsapp message template ID
42
+ id,
43
+ category: nil,
44
+ # Updated template components. Same structure as the create request.
45
+ components: nil,
46
+ request_options: {}
47
+ )
48
+ end
49
+
50
+ # Delete a Whatsapp message template
51
+ sig do
52
+ params(id: String, request_options: Telnyx::RequestOptions::OrHash).void
53
+ end
54
+ def delete(
55
+ # Whatsapp message template ID
56
+ id,
57
+ request_options: {}
58
+ )
59
+ end
60
+
61
+ # @api private
62
+ sig { params(client: Telnyx::Client).returns(T.attached_class) }
63
+ def self.new(client:)
64
+ end
65
+ end
66
+ end
67
+ end
@@ -13,11 +13,9 @@ module Telnyx
13
13
  params(
14
14
  amount_usd: String,
15
15
  request_options: Telnyx::RequestOptions::OrHash
16
- ).returns(
17
- Telnyx::Models::X402::CreditAccountCreatePaymentQuoteResponse
18
- )
16
+ ).returns(Telnyx::Models::X402::CreditAccountCreateQuoteResponse)
19
17
  end
20
- def create_payment_quote(
18
+ def create_quote(
21
19
  # Amount in USD to fund (minimum 5.00, maximum 10000.00).
22
20
  amount_usd:,
23
21
  request_options: {}
@@ -34,9 +32,9 @@ module Telnyx
34
32
  body_payment_signature: String,
35
33
  header_payment_signature: String,
36
34
  request_options: Telnyx::RequestOptions::OrHash
37
- ).returns(Telnyx::Models::X402::CreditAccountSettlePaymentResponse)
35
+ ).returns(Telnyx::Models::X402::CreditAccountSettleResponse)
38
36
  end
39
- def settle_payment(
37
+ def settle(
40
38
  # Body param: The quote ID to settle.
41
39
  id:,
42
40
  # Body param: Base64-encoded signed payment authorization (x402 PaymentPayload).
@@ -322,16 +322,18 @@ module Telnyx
322
322
 
323
323
  attr_reader session_analysis: Telnyx::Resources::SessionAnalysis
324
324
 
325
- attr_reader traffic_policy_profiles: Telnyx::Resources::TrafficPolicyProfiles
326
-
327
325
  attr_reader whatsapp: Telnyx::Resources::Whatsapp
328
326
 
327
+ attr_reader whatsapp_message_templates: Telnyx::Resources::WhatsappMessageTemplates
328
+
329
329
  attr_reader x402: Telnyx::Resources::X402
330
330
 
331
331
  attr_reader voice_clones: Telnyx::Resources::VoiceClones
332
332
 
333
333
  attr_reader voice_designs: Telnyx::Resources::VoiceDesigns
334
334
 
335
+ attr_reader traffic_policy_profiles: Telnyx::Resources::TrafficPolicyProfiles
336
+
335
337
  private def auth_headers: -> ::Hash[String, String]
336
338
 
337
339
  private def bearer_auth: -> ::Hash[String, String]
@@ -2,11 +2,11 @@ module Telnyx
2
2
  module Models
3
3
  module AI
4
4
  module Assistants
5
- type tag_delete_params =
5
+ type tag_add_params =
6
6
  { assistant_id: String, tag: String }
7
7
  & Telnyx::Internal::Type::request_parameters
8
8
 
9
- class TagDeleteParams < Telnyx::Internal::Type::BaseModel
9
+ class TagAddParams < Telnyx::Internal::Type::BaseModel
10
10
  extend Telnyx::Internal::Type::RequestParameters::Converter
11
11
  include Telnyx::Internal::Type::RequestParameters
12
12
 
@@ -2,9 +2,9 @@ module Telnyx
2
2
  module Models
3
3
  module AI
4
4
  module Assistants
5
- type tag_delete_response = { tags: ::Array[String] }
5
+ type tag_add_response = { tags: ::Array[String] }
6
6
 
7
- class TagDeleteResponse < Telnyx::Internal::Type::BaseModel
7
+ class TagAddResponse < Telnyx::Internal::Type::BaseModel
8
8
  attr_accessor tags: ::Array[String]
9
9
 
10
10
  def initialize: (tags: ::Array[String]) -> void
@@ -2,11 +2,11 @@ module Telnyx
2
2
  module Models
3
3
  module AI
4
4
  module Assistants
5
- type tag_create_params =
5
+ type tag_remove_params =
6
6
  { assistant_id: String, tag: String }
7
7
  & Telnyx::Internal::Type::request_parameters
8
8
 
9
- class TagCreateParams < Telnyx::Internal::Type::BaseModel
9
+ class TagRemoveParams < Telnyx::Internal::Type::BaseModel
10
10
  extend Telnyx::Internal::Type::RequestParameters::Converter
11
11
  include Telnyx::Internal::Type::RequestParameters
12
12
 
@@ -2,9 +2,9 @@ module Telnyx
2
2
  module Models
3
3
  module AI
4
4
  module Assistants
5
- type tag_create_response = { tags: ::Array[String] }
5
+ type tag_remove_response = { tags: ::Array[String] }
6
6
 
7
- class TagCreateResponse < Telnyx::Internal::Type::BaseModel
7
+ class TagRemoveResponse < Telnyx::Internal::Type::BaseModel
8
8
  attr_accessor tags: ::Array[String]
9
9
 
10
10
  def initialize: (tags: ::Array[String]) -> void