telnyx 5.70.0 → 5.71.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 (105) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +26 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/models/ai/assistant.rb +6 -149
  5. data/lib/telnyx/models/book_appointment_tool.rb +31 -0
  6. data/lib/telnyx/models/book_appointment_tool_params.rb +51 -0
  7. data/lib/telnyx/models/call_assistant_request.rb +176 -0
  8. data/lib/telnyx/models/call_control_bucket_ids.rb +23 -0
  9. data/lib/telnyx/models/call_control_retrieval_tool.rb +31 -0
  10. data/lib/telnyx/models/call_dial_params.rb +11 -1
  11. data/lib/telnyx/models/calls/action_answer_params.rb +11 -1
  12. data/lib/telnyx/models/calls/action_start_ai_assistant_params.rb +6 -39
  13. data/lib/telnyx/models/check_availability_tool.rb +31 -0
  14. data/lib/telnyx/models/check_availability_tool_params.rb +31 -0
  15. data/lib/telnyx/models/pronunciation_dict_alias_item.rb +51 -0
  16. data/lib/telnyx/models/pronunciation_dict_create_params.rb +5 -93
  17. data/lib/telnyx/models/pronunciation_dict_create_response.rb +3 -191
  18. data/lib/telnyx/models/pronunciation_dict_data.rb +101 -0
  19. data/lib/telnyx/models/pronunciation_dict_phoneme_item.rb +71 -0
  20. data/lib/telnyx/models/pronunciation_dict_retrieve_response.rb +3 -191
  21. data/lib/telnyx/models/pronunciation_dict_update_params.rb +5 -93
  22. data/lib/telnyx/models/pronunciation_dict_update_response.rb +3 -191
  23. data/lib/telnyx/models/texml/accounts/call_calls_params.rb +203 -191
  24. data/lib/telnyx/models/voice_clone_create_from_design_params.rb +3 -3
  25. data/lib/telnyx/models/voice_clone_create_from_upload_params.rb +61 -54
  26. data/lib/telnyx/models/voice_clone_create_params.rb +28 -28
  27. data/lib/telnyx/models/whatsapp/phone_numbers/profile/photo_retrieve_params.rb +26 -0
  28. data/lib/telnyx/models/whatsapp/phone_numbers/profile/photo_retrieve_response.rb +54 -0
  29. data/lib/telnyx/models.rb +20 -0
  30. data/lib/telnyx/resources/calls/actions.rb +4 -2
  31. data/lib/telnyx/resources/calls.rb +3 -1
  32. data/lib/telnyx/resources/pronunciation_dicts.rb +4 -4
  33. data/lib/telnyx/resources/texml/accounts/calls.rb +3 -3
  34. data/lib/telnyx/resources/voice_clones.rb +6 -6
  35. data/lib/telnyx/resources/whatsapp/phone_numbers/profile/photo.rb +20 -0
  36. data/lib/telnyx/version.rb +1 -1
  37. data/lib/telnyx.rb +12 -1
  38. data/rbi/telnyx/models/ai/assistant.rbi +15 -329
  39. data/rbi/telnyx/models/book_appointment_tool.rbi +65 -0
  40. data/rbi/telnyx/models/book_appointment_tool_params.rbi +83 -0
  41. data/rbi/telnyx/models/call_assistant_request.rbi +322 -0
  42. data/rbi/telnyx/models/call_control_bucket_ids.rbi +42 -0
  43. data/rbi/telnyx/models/call_control_retrieval_tool.rbi +63 -0
  44. data/rbi/telnyx/models/call_dial_params.rbi +15 -0
  45. data/rbi/telnyx/models/calls/action_answer_params.rbi +15 -0
  46. data/rbi/telnyx/models/calls/action_start_ai_assistant_params.rbi +10 -77
  47. data/rbi/telnyx/models/check_availability_tool.rbi +67 -0
  48. data/rbi/telnyx/models/check_availability_tool_params.rbi +45 -0
  49. data/rbi/telnyx/models/pronunciation_dict_alias_item.rbi +79 -0
  50. data/rbi/telnyx/models/pronunciation_dict_create_params.rbi +8 -154
  51. data/rbi/telnyx/models/pronunciation_dict_create_response.rbi +6 -366
  52. data/rbi/telnyx/models/pronunciation_dict_data.rbi +186 -0
  53. data/rbi/telnyx/models/pronunciation_dict_phoneme_item.rbi +117 -0
  54. data/rbi/telnyx/models/pronunciation_dict_retrieve_response.rbi +6 -366
  55. data/rbi/telnyx/models/pronunciation_dict_update_params.rbi +10 -156
  56. data/rbi/telnyx/models/pronunciation_dict_update_response.rbi +6 -366
  57. data/rbi/telnyx/models/texml/accounts/call_calls_params.rbi +391 -403
  58. data/rbi/telnyx/models/voice_clone_create_from_design_params.rbi +10 -10
  59. data/rbi/telnyx/models/voice_clone_create_from_upload_params.rbi +94 -92
  60. data/rbi/telnyx/models/voice_clone_create_params.rbi +53 -53
  61. data/rbi/telnyx/models/whatsapp/phone_numbers/profile/photo_retrieve_params.rbi +47 -0
  62. data/rbi/telnyx/models/whatsapp/phone_numbers/profile/photo_retrieve_response.rbi +118 -0
  63. data/rbi/telnyx/models.rbi +20 -0
  64. data/rbi/telnyx/resources/calls/actions.rbi +9 -3
  65. data/rbi/telnyx/resources/calls.rbi +5 -0
  66. data/rbi/telnyx/resources/pronunciation_dicts.rbi +5 -7
  67. data/rbi/telnyx/resources/texml/accounts/calls.rbi +5 -5
  68. data/rbi/telnyx/resources/voice_clones.rbi +9 -9
  69. data/rbi/telnyx/resources/whatsapp/phone_numbers/profile/photo.rbi +16 -0
  70. data/sig/telnyx/models/ai/assistant.rbs +3 -142
  71. data/sig/telnyx/models/book_appointment_tool.rbs +35 -0
  72. data/sig/telnyx/models/book_appointment_tool_params.rbs +39 -0
  73. data/sig/telnyx/models/call_assistant_request.rbs +132 -0
  74. data/sig/telnyx/models/call_control_bucket_ids.rbs +21 -0
  75. data/sig/telnyx/models/call_control_retrieval_tool.rbs +35 -0
  76. data/sig/telnyx/models/call_dial_params.rbs +9 -0
  77. data/sig/telnyx/models/calls/action_answer_params.rbs +9 -0
  78. data/sig/telnyx/models/calls/action_start_ai_assistant_params.rbs +6 -35
  79. data/sig/telnyx/models/check_availability_tool.rbs +35 -0
  80. data/sig/telnyx/models/check_availability_tool_params.rbs +16 -0
  81. data/sig/telnyx/models/pronunciation_dict_alias_item.rbs +40 -0
  82. data/sig/telnyx/models/pronunciation_dict_create_params.rbs +2 -58
  83. data/sig/telnyx/models/pronunciation_dict_create_response.rbs +6 -155
  84. data/sig/telnyx/models/pronunciation_dict_data.rbs +88 -0
  85. data/sig/telnyx/models/pronunciation_dict_phoneme_item.rbs +55 -0
  86. data/sig/telnyx/models/pronunciation_dict_retrieve_response.rbs +6 -155
  87. data/sig/telnyx/models/pronunciation_dict_update_params.rbs +2 -58
  88. data/sig/telnyx/models/pronunciation_dict_update_response.rbs +6 -155
  89. data/sig/telnyx/models/texml/accounts/call_calls_params.rbs +317 -325
  90. data/sig/telnyx/models/voice_clone_create_from_design_params.rbs +7 -7
  91. data/sig/telnyx/models/voice_clone_create_from_upload_params.rbs +63 -61
  92. data/sig/telnyx/models/voice_clone_create_params.rbs +35 -35
  93. data/sig/telnyx/models/whatsapp/phone_numbers/profile/photo_retrieve_params.rbs +30 -0
  94. data/sig/telnyx/models/whatsapp/phone_numbers/profile/photo_retrieve_response.rbs +63 -0
  95. data/sig/telnyx/models.rbs +20 -0
  96. data/sig/telnyx/resources/calls/actions.rbs +2 -1
  97. data/sig/telnyx/resources/calls.rbs +1 -0
  98. data/sig/telnyx/resources/pronunciation_dicts.rbs +1 -1
  99. data/sig/telnyx/resources/texml/accounts/calls.rbs +1 -1
  100. data/sig/telnyx/resources/voice_clones.rbs +2 -2
  101. data/sig/telnyx/resources/whatsapp/phone_numbers/profile/photo.rbs +5 -0
  102. metadata +38 -5
  103. data/lib/telnyx/models/pronunciation_dict_list_response.rb +0 -190
  104. data/rbi/telnyx/models/pronunciation_dict_list_response.rbi +0 -353
  105. data/sig/telnyx/models/pronunciation_dict_list_response.rbs +0 -144
@@ -34,8 +34,8 @@ module Telnyx
34
34
  # @!attribute provider
35
35
  # Voice synthesis provider. Case-insensitive. Defaults to `telnyx`.
36
36
  #
37
- # @return [Symbol, Telnyx::Models::VoiceCloneCreateParams::Provider, nil]
38
- optional :provider, enum: -> { Telnyx::VoiceCloneCreateParams::Provider }
37
+ # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromDesignParams::Provider, nil]
38
+ optional :provider, enum: -> { Telnyx::VoiceCloneCreateFromDesignParams::Provider }
39
39
 
40
40
  # @!method initialize(gender:, language:, name:, voice_design_id:, provider: nil, request_options: {})
41
41
  # @param gender [Symbol, Telnyx::Models::VoiceCloneCreateParams::Gender] Gender of the voice clone.
@@ -46,7 +46,7 @@ module Telnyx
46
46
  #
47
47
  # @param voice_design_id [String] UUID of the source voice design to clone.
48
48
  #
49
- # @param provider [Symbol, Telnyx::Models::VoiceCloneCreateParams::Provider] Voice synthesis provider. Case-insensitive. Defaults to `telnyx`.
49
+ # @param provider [Symbol, Telnyx::Models::VoiceCloneCreateFromDesignParams::Provider] Voice synthesis provider. Case-insensitive. Defaults to `telnyx`.
50
50
  #
51
51
  # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}]
52
52
 
@@ -7,34 +7,34 @@ module Telnyx
7
7
  extend Telnyx::Internal::Type::RequestParameters::Converter
8
8
  include Telnyx::Internal::Type::RequestParameters
9
9
 
10
- # @!attribute body
10
+ # @!attribute upload_params
11
11
  # Multipart form data for creating a voice clone from a direct audio upload.
12
12
  # Maximum file size: 5MB for Telnyx, 20MB for Minimax.
13
13
  #
14
- # @return [Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxQwen3TtsClone, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxUltraClone, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::MinimaxClone]
15
- required :body, union: -> { Telnyx::VoiceCloneCreateFromUploadParams::Body }
14
+ # @return [Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxQwen3TtsClone, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxUltraClone, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::MinimaxClone]
15
+ required :upload_params, union: -> { Telnyx::VoiceCloneCreateFromUploadParams::UploadParams }
16
16
 
17
- # @!method initialize(body:, request_options: {})
17
+ # @!method initialize(upload_params:, request_options: {})
18
18
  # Some parameter documentations has been truncated, see
19
19
  # {Telnyx::Models::VoiceCloneCreateFromUploadParams} for more details.
20
20
  #
21
- # @param body [Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxQwen3TtsClone, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxUltraClone, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::MinimaxClone] Multipart form data for creating a voice clone from a direct audio upload. Maxim
21
+ # @param upload_params [Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxQwen3TtsClone, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxUltraClone, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::MinimaxClone] Multipart form data for creating a voice clone from a direct audio upload. Maxim
22
22
  #
23
23
  # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}]
24
24
 
25
25
  # Multipart form data for creating a voice clone from a direct audio upload.
26
26
  # Maximum file size: 5MB for Telnyx, 20MB for Minimax.
27
- module Body
27
+ module UploadParams
28
28
  extend Telnyx::Internal::Type::Union
29
29
 
30
30
  # Upload-based voice clone using the Telnyx Qwen3TTS model (default).
31
- variant -> { Telnyx::VoiceCloneCreateFromUploadParams::Body::TelnyxQwen3TtsClone }
31
+ variant -> { Telnyx::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxQwen3TtsClone }
32
32
 
33
33
  # Upload-based voice clone using the Telnyx Ultra model.
34
- variant -> { Telnyx::VoiceCloneCreateFromUploadParams::Body::TelnyxUltraClone }
34
+ variant -> { Telnyx::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxUltraClone }
35
35
 
36
36
  # Upload-based voice clone using the Minimax provider.
37
- variant -> { Telnyx::VoiceCloneCreateFromUploadParams::Body::MinimaxClone }
37
+ variant -> { Telnyx::VoiceCloneCreateFromUploadParams::UploadParams::MinimaxClone }
38
38
 
39
39
  class TelnyxQwen3TtsClone < Telnyx::Internal::Type::BaseModel
40
40
  # @!attribute audio_file
@@ -48,8 +48,9 @@ module Telnyx
48
48
  # @!attribute gender
49
49
  # Gender of the voice clone.
50
50
  #
51
- # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxQwen3TtsClone::Gender]
52
- required :gender, enum: -> { Telnyx::VoiceCloneCreateFromUploadParams::Body::TelnyxQwen3TtsClone::Gender }
51
+ # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxQwen3TtsClone::Gender]
52
+ required :gender,
53
+ enum: -> { Telnyx::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxQwen3TtsClone::Gender }
53
54
 
54
55
  # @!attribute language
55
56
  # ISO 639-1 language code from the Qwen language set.
@@ -66,9 +67,9 @@ module Telnyx
66
67
  # @!attribute provider
67
68
  # Voice synthesis provider. Must be `telnyx`.
68
69
  #
69
- # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxQwen3TtsClone::Provider]
70
+ # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxQwen3TtsClone::Provider]
70
71
  required :provider,
71
- enum: -> { Telnyx::VoiceCloneCreateFromUploadParams::Body::TelnyxQwen3TtsClone::Provider }
72
+ enum: -> { Telnyx::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxQwen3TtsClone::Provider }
72
73
 
73
74
  # @!attribute label
74
75
  # Optional custom label describing the voice style.
@@ -79,9 +80,11 @@ module Telnyx
79
80
  # @!attribute model_id
80
81
  # TTS model identifier. Nullable/omittable — defaults to Qwen3TTS.
81
82
  #
82
- # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxQwen3TtsClone::ModelID, nil]
83
+ # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxQwen3TtsClone::ModelID, nil]
83
84
  optional :model_id,
84
- enum: -> { Telnyx::VoiceCloneCreateFromUploadParams::Body::TelnyxQwen3TtsClone::ModelID },
85
+ enum: -> {
86
+ Telnyx::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxQwen3TtsClone::ModelID
87
+ },
85
88
  nil?: true
86
89
 
87
90
  # @!attribute ref_text
@@ -92,30 +95,30 @@ module Telnyx
92
95
 
93
96
  # @!method initialize(audio_file:, gender:, language:, name:, provider:, label: nil, model_id: nil, ref_text: nil)
94
97
  # Some parameter documentations has been truncated, see
95
- # {Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxQwen3TtsClone}
98
+ # {Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxQwen3TtsClone}
96
99
  # for more details.
97
100
  #
98
101
  # Upload-based voice clone using the Telnyx Qwen3TTS model (default).
99
102
  #
100
103
  # @param audio_file [Pathname, StringIO, IO, String, Telnyx::FilePart] Audio file to clone the voice from. Supported formats: WAV, MP3, FLAC, OGG, M4A.
101
104
  #
102
- # @param gender [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxQwen3TtsClone::Gender] Gender of the voice clone.
105
+ # @param gender [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxQwen3TtsClone::Gender] Gender of the voice clone.
103
106
  #
104
107
  # @param language [String] ISO 639-1 language code from the Qwen language set.
105
108
  #
106
109
  # @param name [String] Name for the voice clone.
107
110
  #
108
- # @param provider [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxQwen3TtsClone::Provider] Voice synthesis provider. Must be `telnyx`.
111
+ # @param provider [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxQwen3TtsClone::Provider] Voice synthesis provider. Must be `telnyx`.
109
112
  #
110
113
  # @param label [String] Optional custom label describing the voice style.
111
114
  #
112
- # @param model_id [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxQwen3TtsClone::ModelID, nil] TTS model identifier. Nullable/omittable — defaults to Qwen3TTS.
115
+ # @param model_id [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxQwen3TtsClone::ModelID, nil] TTS model identifier. Nullable/omittable — defaults to Qwen3TTS.
113
116
  #
114
117
  # @param ref_text [String] Optional transcript of the audio file. Providing this improves clone quality.
115
118
 
116
119
  # Gender of the voice clone.
117
120
  #
118
- # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxQwen3TtsClone#gender
121
+ # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxQwen3TtsClone#gender
119
122
  module Gender
120
123
  extend Telnyx::Internal::Type::Enum
121
124
 
@@ -129,12 +132,12 @@ module Telnyx
129
132
 
130
133
  # Voice synthesis provider. Must be `telnyx`.
131
134
  #
132
- # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxQwen3TtsClone#provider
135
+ # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxQwen3TtsClone#provider
133
136
  module Provider
134
137
  extend Telnyx::Internal::Type::Enum
135
138
 
136
139
  TELNYX = :telnyx
137
- TELNYX_2 = :Telnyx
140
+ MINIMAX = :minimax
138
141
 
139
142
  # @!method self.values
140
143
  # @return [Array<Symbol>]
@@ -142,7 +145,7 @@ module Telnyx
142
145
 
143
146
  # TTS model identifier. Nullable/omittable — defaults to Qwen3TTS.
144
147
  #
145
- # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxQwen3TtsClone#model_id
148
+ # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxQwen3TtsClone#model_id
146
149
  module ModelID
147
150
  extend Telnyx::Internal::Type::Enum
148
151
 
@@ -165,8 +168,9 @@ module Telnyx
165
168
  # @!attribute gender
166
169
  # Gender of the voice clone.
167
170
  #
168
- # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxUltraClone::Gender]
169
- required :gender, enum: -> { Telnyx::VoiceCloneCreateFromUploadParams::Body::TelnyxUltraClone::Gender }
171
+ # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxUltraClone::Gender]
172
+ required :gender,
173
+ enum: -> { Telnyx::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxUltraClone::Gender }
170
174
 
171
175
  # @!attribute language
172
176
  # ISO 639-1 language code from the Ultra language set (40 languages).
@@ -177,8 +181,9 @@ module Telnyx
177
181
  # @!attribute model_id
178
182
  # TTS model identifier. Must be `Ultra`.
179
183
  #
180
- # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxUltraClone::ModelID]
181
- required :model_id, enum: -> { Telnyx::VoiceCloneCreateFromUploadParams::Body::TelnyxUltraClone::ModelID }
184
+ # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxUltraClone::ModelID]
185
+ required :model_id,
186
+ enum: -> { Telnyx::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxUltraClone::ModelID }
182
187
 
183
188
  # @!attribute name
184
189
  # Name for the voice clone.
@@ -189,9 +194,9 @@ module Telnyx
189
194
  # @!attribute provider
190
195
  # Voice synthesis provider. Must be `telnyx`.
191
196
  #
192
- # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxUltraClone::Provider]
197
+ # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxUltraClone::Provider]
193
198
  required :provider,
194
- enum: -> { Telnyx::VoiceCloneCreateFromUploadParams::Body::TelnyxUltraClone::Provider }
199
+ enum: -> { Telnyx::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxUltraClone::Provider }
195
200
 
196
201
  # @!attribute label
197
202
  # Optional custom label describing the voice style.
@@ -207,22 +212,22 @@ module Telnyx
207
212
 
208
213
  # @!method initialize(audio_file:, gender:, language:, model_id:, name:, provider:, label: nil, ref_text: nil)
209
214
  # Some parameter documentations has been truncated, see
210
- # {Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxUltraClone} for
211
- # more details.
215
+ # {Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxUltraClone}
216
+ # for more details.
212
217
  #
213
218
  # Upload-based voice clone using the Telnyx Ultra model.
214
219
  #
215
220
  # @param audio_file [Pathname, StringIO, IO, String, Telnyx::FilePart] Audio file to clone the voice from. Supported formats: WAV, MP3, FLAC, OGG, M4A.
216
221
  #
217
- # @param gender [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxUltraClone::Gender] Gender of the voice clone.
222
+ # @param gender [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxUltraClone::Gender] Gender of the voice clone.
218
223
  #
219
224
  # @param language [String] ISO 639-1 language code from the Ultra language set (40 languages).
220
225
  #
221
- # @param model_id [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxUltraClone::ModelID] TTS model identifier. Must be `Ultra`.
226
+ # @param model_id [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxUltraClone::ModelID] TTS model identifier. Must be `Ultra`.
222
227
  #
223
228
  # @param name [String] Name for the voice clone.
224
229
  #
225
- # @param provider [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxUltraClone::Provider] Voice synthesis provider. Must be `telnyx`.
230
+ # @param provider [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxUltraClone::Provider] Voice synthesis provider. Must be `telnyx`.
226
231
  #
227
232
  # @param label [String] Optional custom label describing the voice style.
228
233
  #
@@ -230,7 +235,7 @@ module Telnyx
230
235
 
231
236
  # Gender of the voice clone.
232
237
  #
233
- # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxUltraClone#gender
238
+ # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxUltraClone#gender
234
239
  module Gender
235
240
  extend Telnyx::Internal::Type::Enum
236
241
 
@@ -244,7 +249,7 @@ module Telnyx
244
249
 
245
250
  # TTS model identifier. Must be `Ultra`.
246
251
  #
247
- # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxUltraClone#model_id
252
+ # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxUltraClone#model_id
248
253
  module ModelID
249
254
  extend Telnyx::Internal::Type::Enum
250
255
 
@@ -256,12 +261,12 @@ module Telnyx
256
261
 
257
262
  # Voice synthesis provider. Must be `telnyx`.
258
263
  #
259
- # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxUltraClone#provider
264
+ # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxUltraClone#provider
260
265
  module Provider
261
266
  extend Telnyx::Internal::Type::Enum
262
267
 
263
268
  TELNYX = :telnyx
264
- TELNYX_2 = :Telnyx
269
+ MINIMAX = :minimax
265
270
 
266
271
  # @!method self.values
267
272
  # @return [Array<Symbol>]
@@ -280,8 +285,9 @@ module Telnyx
280
285
  # @!attribute gender
281
286
  # Gender of the voice clone.
282
287
  #
283
- # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::MinimaxClone::Gender]
284
- required :gender, enum: -> { Telnyx::VoiceCloneCreateFromUploadParams::Body::MinimaxClone::Gender }
288
+ # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::MinimaxClone::Gender]
289
+ required :gender,
290
+ enum: -> { Telnyx::VoiceCloneCreateFromUploadParams::UploadParams::MinimaxClone::Gender }
285
291
 
286
292
  # @!attribute language
287
293
  # ISO 639-1 language code from the Minimax language set.
@@ -298,8 +304,9 @@ module Telnyx
298
304
  # @!attribute provider
299
305
  # Voice synthesis provider. Must be `minimax`.
300
306
  #
301
- # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::MinimaxClone::Provider]
302
- required :provider, enum: -> { Telnyx::VoiceCloneCreateFromUploadParams::Body::MinimaxClone::Provider }
307
+ # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::MinimaxClone::Provider]
308
+ required :provider,
309
+ enum: -> { Telnyx::VoiceCloneCreateFromUploadParams::UploadParams::MinimaxClone::Provider }
303
310
 
304
311
  # @!attribute label
305
312
  # Optional custom label describing the voice style.
@@ -310,9 +317,9 @@ module Telnyx
310
317
  # @!attribute model_id
311
318
  # TTS model identifier. Nullable — defaults to speech-2.8-turbo.
312
319
  #
313
- # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::MinimaxClone::ModelID, nil]
320
+ # @return [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::MinimaxClone::ModelID, nil]
314
321
  optional :model_id,
315
- enum: -> { Telnyx::VoiceCloneCreateFromUploadParams::Body::MinimaxClone::ModelID },
322
+ enum: -> { Telnyx::VoiceCloneCreateFromUploadParams::UploadParams::MinimaxClone::ModelID },
316
323
  nil?: true
317
324
 
318
325
  # @!attribute ref_text
@@ -323,30 +330,30 @@ module Telnyx
323
330
 
324
331
  # @!method initialize(audio_file:, gender:, language:, name:, provider:, label: nil, model_id: nil, ref_text: nil)
325
332
  # Some parameter documentations has been truncated, see
326
- # {Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::MinimaxClone} for more
327
- # details.
333
+ # {Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::MinimaxClone}
334
+ # for more details.
328
335
  #
329
336
  # Upload-based voice clone using the Minimax provider.
330
337
  #
331
338
  # @param audio_file [Pathname, StringIO, IO, String, Telnyx::FilePart] Audio file to clone the voice from. Supported formats: WAV, MP3, FLAC, OGG, M4A.
332
339
  #
333
- # @param gender [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::MinimaxClone::Gender] Gender of the voice clone.
340
+ # @param gender [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::MinimaxClone::Gender] Gender of the voice clone.
334
341
  #
335
342
  # @param language [String] ISO 639-1 language code from the Minimax language set.
336
343
  #
337
344
  # @param name [String] Name for the voice clone.
338
345
  #
339
- # @param provider [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::MinimaxClone::Provider] Voice synthesis provider. Must be `minimax`.
346
+ # @param provider [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::MinimaxClone::Provider] Voice synthesis provider. Must be `minimax`.
340
347
  #
341
348
  # @param label [String] Optional custom label describing the voice style.
342
349
  #
343
- # @param model_id [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::MinimaxClone::ModelID, nil] TTS model identifier. Nullable — defaults to speech-2.8-turbo.
350
+ # @param model_id [Symbol, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::MinimaxClone::ModelID, nil] TTS model identifier. Nullable — defaults to speech-2.8-turbo.
344
351
  #
345
352
  # @param ref_text [String] Optional transcript of the audio file. Providing this improves clone quality.
346
353
 
347
354
  # Gender of the voice clone.
348
355
  #
349
- # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::MinimaxClone#gender
356
+ # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::MinimaxClone#gender
350
357
  module Gender
351
358
  extend Telnyx::Internal::Type::Enum
352
359
 
@@ -360,12 +367,12 @@ module Telnyx
360
367
 
361
368
  # Voice synthesis provider. Must be `minimax`.
362
369
  #
363
- # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::MinimaxClone#provider
370
+ # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::MinimaxClone#provider
364
371
  module Provider
365
372
  extend Telnyx::Internal::Type::Enum
366
373
 
374
+ TELNYX = :telnyx
367
375
  MINIMAX = :minimax
368
- MINIMAX_2 = :Minimax
369
376
 
370
377
  # @!method self.values
371
378
  # @return [Array<Symbol>]
@@ -373,7 +380,7 @@ module Telnyx
373
380
 
374
381
  # TTS model identifier. Nullable — defaults to speech-2.8-turbo.
375
382
  #
376
- # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::MinimaxClone#model_id
383
+ # @see Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::MinimaxClone#model_id
377
384
  module ModelID
378
385
  extend Telnyx::Internal::Type::Enum
379
386
 
@@ -385,7 +392,7 @@ module Telnyx
385
392
  end
386
393
 
387
394
  # @!method self.variants
388
- # @return [Array(Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxQwen3TtsClone, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::TelnyxUltraClone, Telnyx::Models::VoiceCloneCreateFromUploadParams::Body::MinimaxClone)]
395
+ # @return [Array(Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxQwen3TtsClone, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::TelnyxUltraClone, Telnyx::Models::VoiceCloneCreateFromUploadParams::UploadParams::MinimaxClone)]
389
396
  end
390
397
  end
391
398
  end
@@ -7,35 +7,35 @@ module Telnyx
7
7
  extend Telnyx::Internal::Type::RequestParameters::Converter
8
8
  include Telnyx::Internal::Type::RequestParameters
9
9
 
10
- # @!attribute body
10
+ # @!attribute params
11
11
  # Request body for creating a voice clone from an existing voice design.
12
12
  #
13
- # @return [Telnyx::Models::VoiceCloneCreateParams::Body::TelnyxDesignClone, Telnyx::Models::VoiceCloneCreateParams::Body::MinimaxDesignClone]
14
- required :body, union: -> { Telnyx::VoiceCloneCreateParams::Body }
13
+ # @return [Telnyx::Models::VoiceCloneCreateParams::Params::TelnyxDesignClone, Telnyx::Models::VoiceCloneCreateParams::Params::MinimaxDesignClone]
14
+ required :params, union: -> { Telnyx::VoiceCloneCreateParams::Params }
15
15
 
16
- # @!method initialize(body:, request_options: {})
17
- # @param body [Telnyx::Models::VoiceCloneCreateParams::Body::TelnyxDesignClone, Telnyx::Models::VoiceCloneCreateParams::Body::MinimaxDesignClone] Request body for creating a voice clone from an existing voice design.
16
+ # @!method initialize(params:, request_options: {})
17
+ # @param params [Telnyx::Models::VoiceCloneCreateParams::Params::TelnyxDesignClone, Telnyx::Models::VoiceCloneCreateParams::Params::MinimaxDesignClone] Request body for creating a voice clone from an existing voice design.
18
18
  #
19
19
  # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}]
20
20
 
21
21
  # Request body for creating a voice clone from an existing voice design.
22
- module Body
22
+ module Params
23
23
  extend Telnyx::Internal::Type::Union
24
24
 
25
25
  discriminator :provider
26
26
 
27
27
  # Create a voice clone from a voice design using the Telnyx provider.
28
- variant -> { Telnyx::VoiceCloneCreateParams::Body::TelnyxDesignClone }
28
+ variant -> { Telnyx::VoiceCloneCreateParams::Params::TelnyxDesignClone }
29
29
 
30
30
  # Create a voice clone from a voice design using the Minimax provider.
31
- variant -> { Telnyx::VoiceCloneCreateParams::Body::MinimaxDesignClone }
31
+ variant -> { Telnyx::VoiceCloneCreateParams::Params::MinimaxDesignClone }
32
32
 
33
33
  class TelnyxDesignClone < Telnyx::Internal::Type::BaseModel
34
34
  # @!attribute gender
35
35
  # Gender of the voice clone.
36
36
  #
37
- # @return [Symbol, Telnyx::Models::VoiceCloneCreateParams::Body::TelnyxDesignClone::Gender]
38
- required :gender, enum: -> { Telnyx::VoiceCloneCreateParams::Body::TelnyxDesignClone::Gender }
37
+ # @return [Symbol, Telnyx::Models::VoiceCloneCreateParams::Params::TelnyxDesignClone::Gender]
38
+ required :gender, enum: -> { Telnyx::VoiceCloneCreateParams::Params::TelnyxDesignClone::Gender }
39
39
 
40
40
  # @!attribute language
41
41
  # ISO 639-1 language code for the clone. Supports the combined Telnyx language
@@ -59,17 +59,17 @@ module Telnyx
59
59
  # @!attribute provider
60
60
  # Voice synthesis provider. Defaults to `telnyx`.
61
61
  #
62
- # @return [Symbol, Telnyx::Models::VoiceCloneCreateParams::Body::TelnyxDesignClone::Provider, nil]
63
- optional :provider, enum: -> { Telnyx::VoiceCloneCreateParams::Body::TelnyxDesignClone::Provider }
62
+ # @return [Symbol, Telnyx::Models::VoiceCloneCreateParams::Params::TelnyxDesignClone::Provider, nil]
63
+ optional :provider, enum: -> { Telnyx::VoiceCloneCreateParams::Params::TelnyxDesignClone::Provider }
64
64
 
65
65
  # @!method initialize(gender:, language:, name:, voice_design_id:, provider: nil)
66
66
  # Some parameter documentations has been truncated, see
67
- # {Telnyx::Models::VoiceCloneCreateParams::Body::TelnyxDesignClone} for more
67
+ # {Telnyx::Models::VoiceCloneCreateParams::Params::TelnyxDesignClone} for more
68
68
  # details.
69
69
  #
70
70
  # Create a voice clone from a voice design using the Telnyx provider.
71
71
  #
72
- # @param gender [Symbol, Telnyx::Models::VoiceCloneCreateParams::Body::TelnyxDesignClone::Gender] Gender of the voice clone.
72
+ # @param gender [Symbol, Telnyx::Models::VoiceCloneCreateParams::Params::TelnyxDesignClone::Gender] Gender of the voice clone.
73
73
  #
74
74
  # @param language [String] ISO 639-1 language code for the clone. Supports the combined Telnyx language set
75
75
  #
@@ -77,11 +77,11 @@ module Telnyx
77
77
  #
78
78
  # @param voice_design_id [String] UUID of the source voice design to clone.
79
79
  #
80
- # @param provider [Symbol, Telnyx::Models::VoiceCloneCreateParams::Body::TelnyxDesignClone::Provider] Voice synthesis provider. Defaults to `telnyx`.
80
+ # @param provider [Symbol, Telnyx::Models::VoiceCloneCreateParams::Params::TelnyxDesignClone::Provider] Voice synthesis provider. Defaults to `telnyx`.
81
81
 
82
82
  # Gender of the voice clone.
83
83
  #
84
- # @see Telnyx::Models::VoiceCloneCreateParams::Body::TelnyxDesignClone#gender
84
+ # @see Telnyx::Models::VoiceCloneCreateParams::Params::TelnyxDesignClone#gender
85
85
  module Gender
86
86
  extend Telnyx::Internal::Type::Enum
87
87
 
@@ -95,12 +95,12 @@ module Telnyx
95
95
 
96
96
  # Voice synthesis provider. Defaults to `telnyx`.
97
97
  #
98
- # @see Telnyx::Models::VoiceCloneCreateParams::Body::TelnyxDesignClone#provider
98
+ # @see Telnyx::Models::VoiceCloneCreateParams::Params::TelnyxDesignClone#provider
99
99
  module Provider
100
100
  extend Telnyx::Internal::Type::Enum
101
101
 
102
102
  TELNYX = :telnyx
103
- TELNYX_2 = :Telnyx
103
+ MINIMAX = :minimax
104
104
 
105
105
  # @!method self.values
106
106
  # @return [Array<Symbol>]
@@ -111,8 +111,8 @@ module Telnyx
111
111
  # @!attribute gender
112
112
  # Gender of the voice clone.
113
113
  #
114
- # @return [Symbol, Telnyx::Models::VoiceCloneCreateParams::Body::MinimaxDesignClone::Gender]
115
- required :gender, enum: -> { Telnyx::VoiceCloneCreateParams::Body::MinimaxDesignClone::Gender }
114
+ # @return [Symbol, Telnyx::Models::VoiceCloneCreateParams::Params::MinimaxDesignClone::Gender]
115
+ required :gender, enum: -> { Telnyx::VoiceCloneCreateParams::Params::MinimaxDesignClone::Gender }
116
116
 
117
117
  # @!attribute language
118
118
  # ISO 639-1 language code for the clone. Supports the Minimax language set.
@@ -129,8 +129,8 @@ module Telnyx
129
129
  # @!attribute provider
130
130
  # Voice synthesis provider. Must be `minimax`.
131
131
  #
132
- # @return [Symbol, Telnyx::Models::VoiceCloneCreateParams::Body::MinimaxDesignClone::Provider]
133
- required :provider, enum: -> { Telnyx::VoiceCloneCreateParams::Body::MinimaxDesignClone::Provider }
132
+ # @return [Symbol, Telnyx::Models::VoiceCloneCreateParams::Params::MinimaxDesignClone::Provider]
133
+ required :provider, enum: -> { Telnyx::VoiceCloneCreateParams::Params::MinimaxDesignClone::Provider }
134
134
 
135
135
  # @!attribute voice_design_id
136
136
  # UUID of the source voice design to clone.
@@ -141,19 +141,19 @@ module Telnyx
141
141
  # @!method initialize(gender:, language:, name:, provider:, voice_design_id:)
142
142
  # Create a voice clone from a voice design using the Minimax provider.
143
143
  #
144
- # @param gender [Symbol, Telnyx::Models::VoiceCloneCreateParams::Body::MinimaxDesignClone::Gender] Gender of the voice clone.
144
+ # @param gender [Symbol, Telnyx::Models::VoiceCloneCreateParams::Params::MinimaxDesignClone::Gender] Gender of the voice clone.
145
145
  #
146
146
  # @param language [String] ISO 639-1 language code for the clone. Supports the Minimax language set.
147
147
  #
148
148
  # @param name [String] Name for the voice clone.
149
149
  #
150
- # @param provider [Symbol, Telnyx::Models::VoiceCloneCreateParams::Body::MinimaxDesignClone::Provider] Voice synthesis provider. Must be `minimax`.
150
+ # @param provider [Symbol, Telnyx::Models::VoiceCloneCreateParams::Params::MinimaxDesignClone::Provider] Voice synthesis provider. Must be `minimax`.
151
151
  #
152
152
  # @param voice_design_id [String] UUID of the source voice design to clone.
153
153
 
154
154
  # Gender of the voice clone.
155
155
  #
156
- # @see Telnyx::Models::VoiceCloneCreateParams::Body::MinimaxDesignClone#gender
156
+ # @see Telnyx::Models::VoiceCloneCreateParams::Params::MinimaxDesignClone#gender
157
157
  module Gender
158
158
  extend Telnyx::Internal::Type::Enum
159
159
 
@@ -167,12 +167,12 @@ module Telnyx
167
167
 
168
168
  # Voice synthesis provider. Must be `minimax`.
169
169
  #
170
- # @see Telnyx::Models::VoiceCloneCreateParams::Body::MinimaxDesignClone#provider
170
+ # @see Telnyx::Models::VoiceCloneCreateParams::Params::MinimaxDesignClone#provider
171
171
  module Provider
172
172
  extend Telnyx::Internal::Type::Enum
173
173
 
174
+ TELNYX = :telnyx
174
175
  MINIMAX = :minimax
175
- MINIMAX_2 = :Minimax
176
176
 
177
177
  # @!method self.values
178
178
  # @return [Array<Symbol>]
@@ -180,7 +180,7 @@ module Telnyx
180
180
  end
181
181
 
182
182
  # @!method self.variants
183
- # @return [Array(Telnyx::Models::VoiceCloneCreateParams::Body::TelnyxDesignClone, Telnyx::Models::VoiceCloneCreateParams::Body::MinimaxDesignClone)]
183
+ # @return [Array(Telnyx::Models::VoiceCloneCreateParams::Params::TelnyxDesignClone, Telnyx::Models::VoiceCloneCreateParams::Params::MinimaxDesignClone)]
184
184
  end
185
185
  end
186
186
  end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Models
5
+ module Whatsapp
6
+ module PhoneNumbers
7
+ module Profile
8
+ # @see Telnyx::Resources::Whatsapp::PhoneNumbers::Profile::Photo#retrieve
9
+ class PhotoRetrieveParams < Telnyx::Internal::Type::BaseModel
10
+ extend Telnyx::Internal::Type::RequestParameters::Converter
11
+ include Telnyx::Internal::Type::RequestParameters
12
+
13
+ # @!attribute phone_number
14
+ #
15
+ # @return [String]
16
+ required :phone_number, String
17
+
18
+ # @!method initialize(phone_number:, request_options: {})
19
+ # @param phone_number [String]
20
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}]
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Models
5
+ module Whatsapp
6
+ module PhoneNumbers
7
+ module Profile
8
+ # @see Telnyx::Resources::Whatsapp::PhoneNumbers::Profile::Photo#retrieve
9
+ class PhotoRetrieveResponse < Telnyx::Internal::Type::BaseModel
10
+ # @!attribute data
11
+ #
12
+ # @return [Telnyx::Models::Whatsapp::PhoneNumbers::Profile::PhotoRetrieveResponse::Data, nil]
13
+ optional :data, -> { Telnyx::Models::Whatsapp::PhoneNumbers::Profile::PhotoRetrieveResponse::Data }
14
+
15
+ # @!method initialize(data: nil)
16
+ # @param data [Telnyx::Models::Whatsapp::PhoneNumbers::Profile::PhotoRetrieveResponse::Data]
17
+
18
+ # @see Telnyx::Models::Whatsapp::PhoneNumbers::Profile::PhotoRetrieveResponse#data
19
+ class Data < Telnyx::Internal::Type::BaseModel
20
+ # @!attribute phone_number_id
21
+ # Meta phone number ID
22
+ #
23
+ # @return [String, nil]
24
+ optional :phone_number_id, String
25
+
26
+ # @!attribute profile_photo_url
27
+ # URL of the business profile photo (served by Meta's CDN). May be empty if no
28
+ # photo is set.
29
+ #
30
+ # @return [String, nil]
31
+ optional :profile_photo_url, String
32
+
33
+ # @!attribute record_type
34
+ #
35
+ # @return [String, nil]
36
+ optional :record_type, String
37
+
38
+ # @!method initialize(phone_number_id: nil, profile_photo_url: nil, record_type: nil)
39
+ # Some parameter documentations has been truncated, see
40
+ # {Telnyx::Models::Whatsapp::PhoneNumbers::Profile::PhotoRetrieveResponse::Data}
41
+ # for more details.
42
+ #
43
+ # @param phone_number_id [String] Meta phone number ID
44
+ #
45
+ # @param profile_photo_url [String] URL of the business profile photo (served by Meta's CDN). May be empty if no pho
46
+ #
47
+ # @param record_type [String]
48
+ end
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end