telnyx 5.118.0 → 5.120.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 (47) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +21 -0
  3. data/README.md +1 -1
  4. data/lib/telnyx/client.rb +6 -0
  5. data/lib/telnyx/models/ai/telephony_settings.rb +11 -1
  6. data/lib/telnyx/models/calls/action_gather_using_speak_params.rb +2 -2
  7. data/lib/telnyx/models/calls/action_speak_params.rb +2 -2
  8. data/lib/telnyx/models/conferences/action_speak_params.rb +2 -2
  9. data/lib/telnyx/models/inbound_message_payload.rb +9 -1
  10. data/lib/telnyx/models/message_cancel_scheduled_response.rb +9 -1
  11. data/lib/telnyx/models/outbound_message_payload.rb +9 -1
  12. data/lib/telnyx/models/voice_sdk_call_report_list_params.rb +56 -0
  13. data/lib/telnyx/models/voice_sdk_call_report_list_response.rb +385 -0
  14. data/lib/telnyx/models/voice_sdk_call_report_retrieve_params.rb +20 -0
  15. data/lib/telnyx/models/voice_sdk_call_report_retrieve_response.rb +390 -0
  16. data/lib/telnyx/models.rb +4 -0
  17. data/lib/telnyx/resources/voice_sdk_call_reports.rb +71 -0
  18. data/lib/telnyx/version.rb +1 -1
  19. data/lib/telnyx.rb +5 -0
  20. data/rbi/telnyx/client.rbi +5 -0
  21. data/rbi/telnyx/models/ai/telephony_settings.rbi +18 -3
  22. data/rbi/telnyx/models/calls/action_gather_using_speak_params.rbi +4 -4
  23. data/rbi/telnyx/models/calls/action_speak_params.rbi +4 -4
  24. data/rbi/telnyx/models/conferences/action_speak_params.rbi +4 -4
  25. data/rbi/telnyx/models/inbound_message_payload.rbi +11 -0
  26. data/rbi/telnyx/models/message_cancel_scheduled_response.rbi +11 -0
  27. data/rbi/telnyx/models/outbound_message_payload.rbi +11 -0
  28. data/rbi/telnyx/models/voice_sdk_call_report_list_params.rbi +108 -0
  29. data/rbi/telnyx/models/voice_sdk_call_report_list_response.rbi +774 -0
  30. data/rbi/telnyx/models/voice_sdk_call_report_retrieve_params.rbi +38 -0
  31. data/rbi/telnyx/models/voice_sdk_call_report_retrieve_response.rbi +782 -0
  32. data/rbi/telnyx/models.rbi +5 -0
  33. data/rbi/telnyx/resources/calls/actions.rbi +4 -4
  34. data/rbi/telnyx/resources/conferences/actions.rbi +2 -2
  35. data/rbi/telnyx/resources/voice_sdk_call_reports.rbi +58 -0
  36. data/sig/telnyx/client.rbs +2 -0
  37. data/sig/telnyx/models/ai/telephony_settings.rbs +10 -3
  38. data/sig/telnyx/models/inbound_message_payload.rbs +7 -0
  39. data/sig/telnyx/models/message_cancel_scheduled_response.rbs +7 -0
  40. data/sig/telnyx/models/outbound_message_payload.rbs +7 -0
  41. data/sig/telnyx/models/voice_sdk_call_report_list_params.rbs +57 -0
  42. data/sig/telnyx/models/voice_sdk_call_report_list_response.rbs +340 -0
  43. data/sig/telnyx/models/voice_sdk_call_report_retrieve_params.rbs +23 -0
  44. data/sig/telnyx/models/voice_sdk_call_report_retrieve_response.rbs +345 -0
  45. data/sig/telnyx/models.rbs +4 -0
  46. data/sig/telnyx/resources/voice_sdk_call_reports.rbs +19 -0
  47. metadata +17 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6f714336df7942dbd4bc8eea5ddeb82d990b9301b707f0cf2bd4d1722fe7bc62
4
- data.tar.gz: 98fbe10db719704fc24b6cc1bf8e87bab5587e92fa80b13435dd00197202520d
3
+ metadata.gz: 7a656a53fa4d6d7859952723e3f213ba6ba97617e54f963077e93c1aae0c30bb
4
+ data.tar.gz: de70b45c695607e3081f869b92eb07a78e4ebefd8c51d54ac2fe9e8022342542
5
5
  SHA512:
6
- metadata.gz: ec89bc2ff72804269668cead90a7e9ae942478d94e86aec25773617091db165ea4b673feda8f39f2f79b0e558baaa23cceeca063d3f615c869149602b855d401
7
- data.tar.gz: 9e372a81a5c437f0cde9306e2c32de19b4f605b6a350141cef28cb1e546eff81f07daf53af5ec1ea2181966a845486d01df63d23355611d18f08eacf5f88a6d7
6
+ metadata.gz: 53bd897ac7b5648db78ef3cdcec615d3e84604fd39abd0cf76814f6ca533ac3039eb1cb3af6070e78d114b4ae285675f7961daf7edf6e69adf81609cadaf5176
7
+ data.tar.gz: e49688c8d1737b05c6782ab0082eb89e0aa2da83a4615e532e19db298a9c8361001b71179b431c5894f007f2135ac5c9dba4debaaeb1564678477b7e3ecce71d
data/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # Changelog
2
2
 
3
+ ## 5.120.0 (2026-05-27)
4
+
5
+ Full Changelog: [v5.119.0...v5.120.0](https://github.com/team-telnyx/telnyx-ruby/compare/v5.119.0...v5.120.0)
6
+
7
+ ### Features
8
+
9
+ * TELAPPS-531: document Rime ArcanaV3 and Coda voice models ([c8a9586](https://github.com/team-telnyx/telnyx-ruby/commit/c8a9586fc5b5692dc63cdc1aea10e9791da41438))
10
+
11
+
12
+ ### Documentation
13
+
14
+ * add voice sdk debug call report spec ([bceac1a](https://github.com/team-telnyx/telnyx-ruby/commit/bceac1a1fbb0aeaf687d2b31b56013c8d08077d6))
15
+
16
+ ## 5.119.0 (2026-05-26)
17
+
18
+ Full Changelog: [v5.118.0...v5.119.0](https://github.com/team-telnyx/telnyx-ruby/compare/v5.118.0...v5.119.0)
19
+
20
+ ### Features
21
+
22
+ * TELAPPS-523: document stop_on_conversation_end on assistant recording_settings ([f4731b7](https://github.com/team-telnyx/telnyx-ruby/commit/f4731b7ed76a54314a06c738fe2f3f10f3b5a9ac))
23
+
3
24
  ## 5.118.0 (2026-05-22)
4
25
 
5
26
  Full Changelog: [v5.117.0...v5.118.0](https://github.com/team-telnyx/telnyx-ruby/compare/v5.117.0...v5.118.0)
data/README.md CHANGED
@@ -24,7 +24,7 @@ To use this gem, install via Bundler by adding the following to your application
24
24
  <!-- x-release-please-start-version -->
25
25
 
26
26
  ```ruby
27
- gem "telnyx", "~> 5.118.0"
27
+ gem "telnyx", "~> 5.120.0"
28
28
  ```
29
29
 
30
30
  <!-- x-release-please-end -->
data/lib/telnyx/client.rb CHANGED
@@ -663,6 +663,11 @@ module Telnyx
663
663
  # @return [Telnyx::Resources::UacConnections]
664
664
  attr_reader :uac_connections
665
665
 
666
+ # Retrieve raw Voice SDK call report stats payloads for WebRTC call
667
+ # troubleshooting.
668
+ # @return [Telnyx::Resources::VoiceSDKCallReports]
669
+ attr_reader :voice_sdk_call_reports
670
+
666
671
  # @api private
667
672
  #
668
673
  # @return [Hash{String=>String}]
@@ -936,6 +941,7 @@ module Telnyx
936
941
  @terms_of_service = Telnyx::Resources::TermsOfService.new(client: self)
937
942
  @pronunciation_dicts = Telnyx::Resources::PronunciationDicts.new(client: self)
938
943
  @uac_connections = Telnyx::Resources::UacConnections.new(client: self)
944
+ @voice_sdk_call_reports = Telnyx::Resources::VoiceSDKCallReports.new(client: self)
939
945
  end
940
946
  end
941
947
  end
@@ -171,7 +171,15 @@ module Telnyx
171
171
  enum: -> { Telnyx::AI::TelephonySettings::RecordingSettings::Format },
172
172
  api_name: :format
173
173
 
174
- # @!method initialize(channels: nil, enabled: nil, file_format: nil)
174
+ # @!attribute stop_on_conversation_end
175
+ # When enabled, the call recording will stop when the conversation ends (for
176
+ # example, when the assistant hangs up or the call is transferred). When disabled,
177
+ # recording continues until the call itself ends.
178
+ #
179
+ # @return [Boolean, nil]
180
+ optional :stop_on_conversation_end, Telnyx::Internal::Type::Boolean
181
+
182
+ # @!method initialize(channels: nil, enabled: nil, file_format: nil, stop_on_conversation_end: nil)
175
183
  # Some parameter documentations has been truncated, see
176
184
  # {Telnyx::Models::AI::TelephonySettings::RecordingSettings} for more details.
177
185
  #
@@ -182,6 +190,8 @@ module Telnyx
182
190
  # @param enabled [Boolean] Whether call recording is enabled. When set to false, calls will not be recorded
183
191
  #
184
192
  # @param file_format [Symbol, Telnyx::Models::AI::TelephonySettings::RecordingSettings::Format] The format of the recording file.
193
+ #
194
+ # @param stop_on_conversation_end [Boolean] When enabled, the call recording will stop when the conversation ends (for examp
185
195
 
186
196
  # The number of channels for the recording. 'single' for mono, 'dual' for stereo.
187
197
  #
@@ -52,8 +52,8 @@ module Telnyx
52
52
  # `speech-02-hd`, `speech-2.6-turbo`, `speech-2.8-turbo`. Use `voice_settings`
53
53
  # to configure speed, volume, pitch, and language_boost.
54
54
  # - **Rime:** Use `Rime.<model_id>.<voice_id>` (e.g., `Rime.Arcana.cove`).
55
- # Supported model_ids: `Arcana`, `Mist`. Use `voice_settings` to configure
56
- # voice_speed.
55
+ # Supported model_ids: `Arcana`, `Mist`, `ArcanaV3`, `Coda`. Use
56
+ # `voice_settings` to configure voice_speed.
57
57
  # - **Resemble:** Use `Resemble.Turbo.<voice_id>` (e.g.,
58
58
  # `Resemble.Turbo.my_voice`). Only `Turbo` model is supported. Use
59
59
  # `voice_settings` to configure precision, sample_rate, and format.
@@ -52,8 +52,8 @@ module Telnyx
52
52
  # `speech-02-hd`, `speech-2.6-turbo`, `speech-2.8-turbo`. Use `voice_settings`
53
53
  # to configure speed, volume, pitch, and language_boost.
54
54
  # - **Rime:** Use `Rime.<model_id>.<voice_id>` (e.g., `Rime.Arcana.cove`).
55
- # Supported model_ids: `Arcana`, `Mist`. Use `voice_settings` to configure
56
- # voice_speed.
55
+ # Supported model_ids: `Arcana`, `Mist`, `ArcanaV3`, `Coda`. Use
56
+ # `voice_settings` to configure voice_speed.
57
57
  # - **Resemble:** Use `Resemble.Turbo.<voice_id>` (e.g.,
58
58
  # `Resemble.Turbo.my_voice`). Only `Turbo` model is supported. Use
59
59
  # `voice_settings` to configure precision, sample_rate, and format.
@@ -52,8 +52,8 @@ module Telnyx
52
52
  # `speech-02-hd`, `speech-2.6-turbo`, `speech-2.8-turbo`. Use `voice_settings`
53
53
  # to configure speed, volume, pitch, and language_boost.
54
54
  # - **Rime:** Use `Rime.<model_id>.<voice_id>` (e.g., `Rime.Arcana.cove`).
55
- # Supported model_ids: `Arcana`, `Mist`. Use `voice_settings` to configure
56
- # voice_speed.
55
+ # Supported model_ids: `Arcana`, `Mist`, `ArcanaV3`, `Coda`. Use
56
+ # `voice_settings` to configure voice_speed.
57
57
  # - **Resemble:** Use `Resemble.Turbo.<voice_id>` (e.g.,
58
58
  # `Resemble.Turbo.my_voice`). Only `Turbo` model is supported. Use
59
59
  # `voice_settings` to configure precision, sample_rate, and format.
@@ -67,6 +67,12 @@ module Telnyx
67
67
  # @return [String, nil]
68
68
  optional :messaging_profile_id, String
69
69
 
70
+ # @!attribute num_chars
71
+ # The number of characters in the message text
72
+ #
73
+ # @return [Integer, nil]
74
+ optional :num_chars, Integer
75
+
70
76
  # @!attribute organization_id
71
77
  # Unique identifier for a messaging profile.
72
78
  #
@@ -165,7 +171,7 @@ module Telnyx
165
171
  # @return [String, nil]
166
172
  optional :webhook_url, String, nil?: true
167
173
 
168
- # @!method initialize(id: nil, cc: nil, completed_at: nil, cost: nil, cost_breakdown: nil, direction: nil, encoding: nil, errors: nil, from: nil, media: nil, messaging_profile_id: nil, organization_id: nil, parts: nil, received_at: nil, record_type: nil, sent_at: nil, subject: nil, tags: nil, tcr_campaign_billable: nil, tcr_campaign_id: nil, tcr_campaign_registered: nil, text: nil, to: nil, type: nil, valid_until: nil, webhook_failover_url: nil, webhook_url: nil)
174
+ # @!method initialize(id: nil, cc: nil, completed_at: nil, cost: nil, cost_breakdown: nil, direction: nil, encoding: nil, errors: nil, from: nil, media: nil, messaging_profile_id: nil, num_chars: nil, organization_id: nil, parts: nil, received_at: nil, record_type: nil, sent_at: nil, subject: nil, tags: nil, tcr_campaign_billable: nil, tcr_campaign_id: nil, tcr_campaign_registered: nil, text: nil, to: nil, type: nil, valid_until: nil, webhook_failover_url: nil, webhook_url: nil)
169
175
  # Some parameter documentations has been truncated, see
170
176
  # {Telnyx::Models::InboundMessagePayload} for more details.
171
177
  #
@@ -191,6 +197,8 @@ module Telnyx
191
197
  #
192
198
  # @param messaging_profile_id [String] Unique identifier for a messaging profile.
193
199
  #
200
+ # @param num_chars [Integer] The number of characters in the message text
201
+ #
194
202
  # @param organization_id [String] Unique identifier for a messaging profile.
195
203
  #
196
204
  # @param parts [Integer] Number of parts into which the message's body must be split.
@@ -69,6 +69,12 @@ module Telnyx
69
69
  # @return [String, nil]
70
70
  optional :messaging_profile_id, String
71
71
 
72
+ # @!attribute num_chars
73
+ # The number of characters in the message text
74
+ #
75
+ # @return [Integer, nil]
76
+ optional :num_chars, Integer
77
+
72
78
  # @!attribute organization_id
73
79
  # The id of the organization the messaging profile belongs to.
74
80
  #
@@ -178,7 +184,7 @@ module Telnyx
178
184
  # @return [String, nil]
179
185
  optional :webhook_url, String, nil?: true
180
186
 
181
- # @!method initialize(id: nil, cc: nil, completed_at: nil, cost: nil, cost_breakdown: nil, direction: nil, encoding: nil, errors: nil, from: nil, media: nil, messaging_profile_id: nil, organization_id: nil, parts: nil, received_at: nil, record_type: nil, sent_at: nil, smart_encoding_applied: nil, subject: nil, tags: nil, tcr_campaign_billable: nil, tcr_campaign_id: nil, tcr_campaign_registered: nil, text: nil, to: nil, type: nil, valid_until: nil, webhook_failover_url: nil, webhook_url: nil)
187
+ # @!method initialize(id: nil, cc: nil, completed_at: nil, cost: nil, cost_breakdown: nil, direction: nil, encoding: nil, errors: nil, from: nil, media: nil, messaging_profile_id: nil, num_chars: nil, organization_id: nil, parts: nil, received_at: nil, record_type: nil, sent_at: nil, smart_encoding_applied: nil, subject: nil, tags: nil, tcr_campaign_billable: nil, tcr_campaign_id: nil, tcr_campaign_registered: nil, text: nil, to: nil, type: nil, valid_until: nil, webhook_failover_url: nil, webhook_url: nil)
182
188
  # Some parameter documentations has been truncated, see
183
189
  # {Telnyx::Models::MessageCancelScheduledResponse} for more details.
184
190
  #
@@ -204,6 +210,8 @@ module Telnyx
204
210
  #
205
211
  # @param messaging_profile_id [String] Unique identifier for a messaging profile.
206
212
  #
213
+ # @param num_chars [Integer] The number of characters in the message text
214
+ #
207
215
  # @param organization_id [String] The id of the organization the messaging profile belongs to.
208
216
  #
209
217
  # @param parts [Integer] Number of parts into which the message's body must be split.
@@ -67,6 +67,12 @@ module Telnyx
67
67
  # @return [String, nil]
68
68
  optional :messaging_profile_id, String
69
69
 
70
+ # @!attribute num_chars
71
+ # The number of characters in the message text
72
+ #
73
+ # @return [Integer, nil]
74
+ optional :num_chars, Integer
75
+
70
76
  # @!attribute organization_id
71
77
  # The id of the organization the messaging profile belongs to.
72
78
  #
@@ -184,7 +190,7 @@ module Telnyx
184
190
  # @return [String, nil]
185
191
  optional :webhook_url, String, nil?: true
186
192
 
187
- # @!method initialize(id: nil, cc: nil, completed_at: nil, cost: nil, cost_breakdown: nil, direction: nil, encoding: nil, errors: nil, from: nil, media: nil, messaging_profile_id: nil, organization_id: nil, parts: nil, received_at: nil, record_type: nil, sent_at: nil, smart_encoding_applied: nil, subject: nil, tags: nil, tcr_campaign_billable: nil, tcr_campaign_id: nil, tcr_campaign_registered: nil, text: nil, to: nil, type: nil, valid_until: nil, wait_seconds: nil, webhook_failover_url: nil, webhook_url: nil)
193
+ # @!method initialize(id: nil, cc: nil, completed_at: nil, cost: nil, cost_breakdown: nil, direction: nil, encoding: nil, errors: nil, from: nil, media: nil, messaging_profile_id: nil, num_chars: nil, organization_id: nil, parts: nil, received_at: nil, record_type: nil, sent_at: nil, smart_encoding_applied: nil, subject: nil, tags: nil, tcr_campaign_billable: nil, tcr_campaign_id: nil, tcr_campaign_registered: nil, text: nil, to: nil, type: nil, valid_until: nil, wait_seconds: nil, webhook_failover_url: nil, webhook_url: nil)
188
194
  # Some parameter documentations has been truncated, see
189
195
  # {Telnyx::Models::OutboundMessagePayload} for more details.
190
196
  #
@@ -210,6 +216,8 @@ module Telnyx
210
216
  #
211
217
  # @param messaging_profile_id [String] Unique identifier for a messaging profile.
212
218
  #
219
+ # @param num_chars [Integer] The number of characters in the message text
220
+ #
213
221
  # @param organization_id [String] The id of the organization the messaging profile belongs to.
214
222
  #
215
223
  # @param parts [Integer] Number of parts into which the message's body must be split.
@@ -0,0 +1,56 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Models
5
+ # @see Telnyx::Resources::VoiceSDKCallReports#list
6
+ class VoiceSDKCallReportListParams < Telnyx::Internal::Type::BaseModel
7
+ extend Telnyx::Internal::Type::RequestParameters::Converter
8
+ include Telnyx::Internal::Type::RequestParameters
9
+
10
+ # @!attribute page_number
11
+ #
12
+ # @return [Integer, nil]
13
+ optional :page_number, Integer
14
+
15
+ # @!attribute page_size
16
+ #
17
+ # @return [Integer, nil]
18
+ optional :page_size, Integer
19
+
20
+ # @!attribute sort
21
+ # Set the order of the results by creation date. `asc` and `created_at` sort
22
+ # oldest reports first; `desc` and `-created_at` sort newest reports first. If not
23
+ # given, results are sorted by creation date in descending order.
24
+ #
25
+ # @return [Symbol, Telnyx::Models::VoiceSDKCallReportListParams::Sort, nil]
26
+ optional :sort, enum: -> { Telnyx::VoiceSDKCallReportListParams::Sort }
27
+
28
+ # @!method initialize(page_number: nil, page_size: nil, sort: nil, request_options: {})
29
+ # Some parameter documentations has been truncated, see
30
+ # {Telnyx::Models::VoiceSDKCallReportListParams} for more details.
31
+ #
32
+ # @param page_number [Integer]
33
+ #
34
+ # @param page_size [Integer]
35
+ #
36
+ # @param sort [Symbol, Telnyx::Models::VoiceSDKCallReportListParams::Sort] Set the order of the results by creation date. `asc` and `created_at` sort oldes
37
+ #
38
+ # @param request_options [Telnyx::RequestOptions, Hash{Symbol=>Object}]
39
+
40
+ # Set the order of the results by creation date. `asc` and `created_at` sort
41
+ # oldest reports first; `desc` and `-created_at` sort newest reports first. If not
42
+ # given, results are sorted by creation date in descending order.
43
+ module Sort
44
+ extend Telnyx::Internal::Type::Enum
45
+
46
+ ASC = :asc
47
+ DESC = :desc
48
+ CREATED_AT = :created_at
49
+ CREATED_AT_DESC = :"-created_at"
50
+
51
+ # @!method self.values
52
+ # @return [Array<Symbol>]
53
+ end
54
+ end
55
+ end
56
+ end
@@ -0,0 +1,385 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Telnyx
4
+ module Models
5
+ # @see Telnyx::Resources::VoiceSDKCallReports#list
6
+ class VoiceSDKCallReportListResponse < Telnyx::Internal::Type::BaseModel
7
+ # @!attribute call_id
8
+ # Unique call identifier.
9
+ #
10
+ # @return [String, nil]
11
+ optional :call_id, String
12
+
13
+ # @!attribute call_report_id
14
+ # User-scoped storage grouping identifier derived from the authenticated user.
15
+ # This is not a unique per-call report identifier and may be shared by multiple
16
+ # calls for the same user.
17
+ #
18
+ # @return [String, nil]
19
+ optional :call_report_id, String
20
+
21
+ # @!attribute created_at
22
+ # Creation timestamp when present.
23
+ #
24
+ # @return [Time, nil]
25
+ optional :created_at, Time
26
+
27
+ # @!attribute flush_reason
28
+ # Reason the SDK flushed this stats report segment, for example an intermediate
29
+ # socket-close flush.
30
+ #
31
+ # @return [Hash{Symbol=>Object}, nil]
32
+ optional :flush_reason,
33
+ Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown],
34
+ api_name: :flushReason
35
+
36
+ # @!attribute logs
37
+ # Raw logs payload emitted by the Voice SDK and stored without normalization. Live
38
+ # responses commonly return an array of log entries, but object-shaped log
39
+ # payloads are also allowed for compatibility.
40
+ #
41
+ # @return [Array<Telnyx::Models::VoiceSDKCallReportListResponse::Logs::UnionMember0>, Telnyx::Models::VoiceSDKCallReportListResponse::Logs::Entries, nil]
42
+ optional :logs, union: -> { Telnyx::Models::VoiceSDKCallReportListResponse::Logs }
43
+
44
+ # @!attribute organization_id
45
+ # Organization associated with the stored call report when provided by the Voice
46
+ # SDK reporting path.
47
+ #
48
+ # @return [String, nil]
49
+ optional :organization_id, String
50
+
51
+ # @!attribute segment
52
+ # Zero-based stats segment index when the SDK sends segmented or intermediate
53
+ # reports.
54
+ #
55
+ # @return [Integer, nil]
56
+ optional :segment, Integer
57
+
58
+ # @!attribute stats
59
+ # Raw stats payload emitted by the Voice SDK and stored without normalization. The
60
+ # exact shape can vary by SDK platform and version. Live responses commonly return
61
+ # an array of interval snapshots, but object-shaped stats payloads are also
62
+ # allowed for compatibility.
63
+ #
64
+ # @return [Array<Hash{Symbol=>Object}>, Telnyx::Models::VoiceSDKCallReportListResponse::Stats::UnionMember1, nil]
65
+ optional :stats, union: -> { Telnyx::Models::VoiceSDKCallReportListResponse::Stats }
66
+
67
+ # @!attribute stored_at
68
+ # Time when the call report was stored.
69
+ #
70
+ # @return [Time, nil]
71
+ optional :stored_at, Time
72
+
73
+ # @!attribute summary
74
+ # High-level call metadata.
75
+ #
76
+ # @return [Hash{Symbol=>Object}, nil]
77
+ optional :summary, Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]
78
+
79
+ # @!attribute telnyx_leg_id
80
+ # Telnyx call leg identifier for correlating the report with call-control, SIP,
81
+ # and media troubleshooting data.
82
+ #
83
+ # @return [String, nil]
84
+ optional :telnyx_leg_id, String
85
+
86
+ # @!attribute telnyx_session_id
87
+ # Telnyx RTC session identifier for correlating the report with Voice SDK
88
+ # signaling and media-session logs.
89
+ #
90
+ # @return [String, nil]
91
+ optional :telnyx_session_id, String
92
+
93
+ # @!attribute user_agent
94
+ # Voice SDK user agent string reported by the client. This is the preferred
95
+ # SDK/platform/version dimension when present.
96
+ #
97
+ # @return [String, nil]
98
+ optional :user_agent, String
99
+
100
+ # @!attribute user_id
101
+ # Authenticated user that owns the call report.
102
+ #
103
+ # @return [String, nil]
104
+ optional :user_id, String
105
+
106
+ # @!attribute version
107
+ # Legacy SDK version value when the client reports one separately from the user
108
+ # agent.
109
+ #
110
+ # @return [String, nil]
111
+ optional :version, String
112
+
113
+ # @!attribute voice_sdk_id
114
+ # Voice SDK instance identifier.
115
+ #
116
+ # @return [String, nil]
117
+ optional :voice_sdk_id, String
118
+
119
+ # @!attribute voice_sdk_id_decoded
120
+ # Decoded Voice SDK identifier metadata emitted by voice-sdk-proxy when available.
121
+ #
122
+ # @return [Hash{Symbol=>Object}, nil]
123
+ optional :voice_sdk_id_decoded, Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]
124
+
125
+ # @!attribute voice_sdk_session_id
126
+ # Voice SDK session correlation identifier used to group stats segments for the
127
+ # same SDK session.
128
+ #
129
+ # @return [String, nil]
130
+ optional :voice_sdk_session_id, String
131
+
132
+ # @!method initialize(call_id: nil, call_report_id: nil, created_at: nil, flush_reason: nil, logs: nil, organization_id: nil, segment: nil, stats: nil, stored_at: nil, summary: nil, telnyx_leg_id: nil, telnyx_session_id: nil, user_agent: nil, user_id: nil, version: nil, voice_sdk_id: nil, voice_sdk_id_decoded: nil, voice_sdk_session_id: nil)
133
+ # Some parameter documentations has been truncated, see
134
+ # {Telnyx::Models::VoiceSDKCallReportListResponse} for more details.
135
+ #
136
+ # A raw call report stats JSON payload. The schema is intentionally permissive
137
+ # because Voice SDK clients can add fields over time.
138
+ #
139
+ # @param call_id [String] Unique call identifier.
140
+ #
141
+ # @param call_report_id [String] User-scoped storage grouping identifier derived from the authenticated user. Thi
142
+ #
143
+ # @param created_at [Time] Creation timestamp when present.
144
+ #
145
+ # @param flush_reason [Hash{Symbol=>Object}] Reason the SDK flushed this stats report segment, for example an intermediate so
146
+ #
147
+ # @param logs [Array<Telnyx::Models::VoiceSDKCallReportListResponse::Logs::UnionMember0>, Telnyx::Models::VoiceSDKCallReportListResponse::Logs::Entries] Raw logs payload emitted by the Voice SDK and stored without normalization. Live
148
+ #
149
+ # @param organization_id [String] Organization associated with the stored call report when provided by the Voice S
150
+ #
151
+ # @param segment [Integer] Zero-based stats segment index when the SDK sends segmented or intermediate repo
152
+ #
153
+ # @param stats [Array<Hash{Symbol=>Object}>, Telnyx::Models::VoiceSDKCallReportListResponse::Stats::UnionMember1] Raw stats payload emitted by the Voice SDK and stored without normalization. The
154
+ #
155
+ # @param stored_at [Time] Time when the call report was stored.
156
+ #
157
+ # @param summary [Hash{Symbol=>Object}] High-level call metadata.
158
+ #
159
+ # @param telnyx_leg_id [String] Telnyx call leg identifier for correlating the report with call-control, SIP, an
160
+ #
161
+ # @param telnyx_session_id [String] Telnyx RTC session identifier for correlating the report with Voice SDK signalin
162
+ #
163
+ # @param user_agent [String] Voice SDK user agent string reported by the client. This is the preferred SDK/pl
164
+ #
165
+ # @param user_id [String] Authenticated user that owns the call report.
166
+ #
167
+ # @param version [String] Legacy SDK version value when the client reports one separately from the user ag
168
+ #
169
+ # @param voice_sdk_id [String] Voice SDK instance identifier.
170
+ #
171
+ # @param voice_sdk_id_decoded [Hash{Symbol=>Object}] Decoded Voice SDK identifier metadata emitted by voice-sdk-proxy when available.
172
+ #
173
+ # @param voice_sdk_session_id [String] Voice SDK session correlation identifier used to group stats segments for the sa
174
+
175
+ # Raw logs payload emitted by the Voice SDK and stored without normalization. Live
176
+ # responses commonly return an array of log entries, but object-shaped log
177
+ # payloads are also allowed for compatibility.
178
+ #
179
+ # @see Telnyx::Models::VoiceSDKCallReportListResponse#logs
180
+ module Logs
181
+ extend Telnyx::Internal::Type::Union
182
+
183
+ # Raw log entries emitted by the Voice SDK.
184
+ variant -> { Telnyx::Models::VoiceSDKCallReportListResponse::Logs::UnionMember0Array }
185
+
186
+ # Raw logs object emitted by the Voice SDK when logs are grouped under an entries field.
187
+ variant -> { Telnyx::Models::VoiceSDKCallReportListResponse::Logs::Entries }
188
+
189
+ class UnionMember0 < Telnyx::Internal::Type::BaseModel
190
+ # @!attribute context
191
+ # Raw structured context attached to the log entry.
192
+ #
193
+ # @return [Hash{Symbol=>Object}, nil]
194
+ optional :context, Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]
195
+
196
+ # @!attribute level
197
+ # Log level emitted by the SDK.
198
+ #
199
+ # @return [Symbol, Telnyx::Models::VoiceSDKCallReportListResponse::Logs::UnionMember0::Level, nil]
200
+ optional :level, enum: -> { Telnyx::Models::VoiceSDKCallReportListResponse::Logs::UnionMember0::Level }
201
+
202
+ # @!attribute message
203
+ # Log message.
204
+ #
205
+ # @return [String, nil]
206
+ optional :message, String
207
+
208
+ # @!attribute timestamp
209
+ # Time when the log entry was emitted.
210
+ #
211
+ # @return [Time, nil]
212
+ optional :timestamp, Time
213
+
214
+ # @!method initialize(context: nil, level: nil, message: nil, timestamp: nil)
215
+ # A raw Voice SDK log entry. Additional SDK-specific fields may be present.
216
+ #
217
+ # @param context [Hash{Symbol=>Object}] Raw structured context attached to the log entry.
218
+ #
219
+ # @param level [Symbol, Telnyx::Models::VoiceSDKCallReportListResponse::Logs::UnionMember0::Level] Log level emitted by the SDK.
220
+ #
221
+ # @param message [String] Log message.
222
+ #
223
+ # @param timestamp [Time] Time when the log entry was emitted.
224
+
225
+ # Log level emitted by the SDK.
226
+ #
227
+ # @see Telnyx::Models::VoiceSDKCallReportListResponse::Logs::UnionMember0#level
228
+ module Level
229
+ extend Telnyx::Internal::Type::Enum
230
+
231
+ DEBUG = :debug
232
+ INFO = :info
233
+ WARN = :warn
234
+ ERROR = :error
235
+
236
+ # @!method self.values
237
+ # @return [Array<Symbol>]
238
+ end
239
+ end
240
+
241
+ class Entries < Telnyx::Internal::Type::BaseModel
242
+ # @!attribute entries
243
+ # Raw log entries when the SDK groups logs under an entries field.
244
+ #
245
+ # @return [Array<Telnyx::Models::VoiceSDKCallReportListResponse::Logs::Entries::Entry>, nil]
246
+ optional :entries,
247
+ -> { Telnyx::Internal::Type::ArrayOf[Telnyx::Models::VoiceSDKCallReportListResponse::Logs::Entries::Entry] }
248
+
249
+ # @!method initialize(entries: nil)
250
+ # Raw logs object emitted by the Voice SDK when logs are grouped under an entries
251
+ # field.
252
+ #
253
+ # @param entries [Array<Telnyx::Models::VoiceSDKCallReportListResponse::Logs::Entries::Entry>] Raw log entries when the SDK groups logs under an entries field.
254
+
255
+ class Entry < Telnyx::Internal::Type::BaseModel
256
+ # @!attribute context
257
+ # Raw structured context attached to the log entry.
258
+ #
259
+ # @return [Hash{Symbol=>Object}, nil]
260
+ optional :context, Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]
261
+
262
+ # @!attribute level
263
+ # Log level emitted by the SDK.
264
+ #
265
+ # @return [Symbol, Telnyx::Models::VoiceSDKCallReportListResponse::Logs::Entries::Entry::Level, nil]
266
+ optional :level, enum: -> { Telnyx::Models::VoiceSDKCallReportListResponse::Logs::Entries::Entry::Level }
267
+
268
+ # @!attribute message
269
+ # Log message.
270
+ #
271
+ # @return [String, nil]
272
+ optional :message, String
273
+
274
+ # @!attribute timestamp
275
+ # Time when the log entry was emitted.
276
+ #
277
+ # @return [Time, nil]
278
+ optional :timestamp, Time
279
+
280
+ # @!method initialize(context: nil, level: nil, message: nil, timestamp: nil)
281
+ # A raw Voice SDK log entry. Additional SDK-specific fields may be present.
282
+ #
283
+ # @param context [Hash{Symbol=>Object}] Raw structured context attached to the log entry.
284
+ #
285
+ # @param level [Symbol, Telnyx::Models::VoiceSDKCallReportListResponse::Logs::Entries::Entry::Level] Log level emitted by the SDK.
286
+ #
287
+ # @param message [String] Log message.
288
+ #
289
+ # @param timestamp [Time] Time when the log entry was emitted.
290
+
291
+ # Log level emitted by the SDK.
292
+ #
293
+ # @see Telnyx::Models::VoiceSDKCallReportListResponse::Logs::Entries::Entry#level
294
+ module Level
295
+ extend Telnyx::Internal::Type::Enum
296
+
297
+ DEBUG = :debug
298
+ INFO = :info
299
+ WARN = :warn
300
+ ERROR = :error
301
+
302
+ # @!method self.values
303
+ # @return [Array<Symbol>]
304
+ end
305
+ end
306
+ end
307
+
308
+ # @!method self.variants
309
+ # @return [Array(Array<Telnyx::Models::VoiceSDKCallReportListResponse::Logs::UnionMember0>, Telnyx::Models::VoiceSDKCallReportListResponse::Logs::Entries)]
310
+
311
+ # @type [Telnyx::Internal::Type::Converter]
312
+ UnionMember0Array =
313
+ Telnyx::Internal::Type::ArrayOf[-> { Telnyx::Models::VoiceSDKCallReportListResponse::Logs::UnionMember0 }]
314
+ end
315
+
316
+ # Raw stats payload emitted by the Voice SDK and stored without normalization. The
317
+ # exact shape can vary by SDK platform and version. Live responses commonly return
318
+ # an array of interval snapshots, but object-shaped stats payloads are also
319
+ # allowed for compatibility.
320
+ #
321
+ # @see Telnyx::Models::VoiceSDKCallReportListResponse#stats
322
+ module Stats
323
+ extend Telnyx::Internal::Type::Union
324
+
325
+ # Raw interval stats snapshots emitted by the Voice SDK.
326
+ variant -> { Telnyx::Models::VoiceSDKCallReportListResponse::Stats::UnionMember0Array }
327
+
328
+ # Raw stats object emitted by the Voice SDK.
329
+ variant -> { Telnyx::Models::VoiceSDKCallReportListResponse::Stats::UnionMember1 }
330
+
331
+ class UnionMember1 < Telnyx::Internal::Type::BaseModel
332
+ # @!attribute audio
333
+ # Raw audio stats such as inbound/outbound packet, byte, jitter, packet-loss,
334
+ # bitrate, and audio-level metrics.
335
+ #
336
+ # @return [Hash{Symbol=>Object}, nil]
337
+ optional :audio, Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]
338
+
339
+ # @!attribute connection
340
+ # Raw connection stats such as round-trip time, packets, and bytes sent or
341
+ # received.
342
+ #
343
+ # @return [Hash{Symbol=>Object}, nil]
344
+ optional :connection, Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]
345
+
346
+ # @!attribute ice
347
+ # Raw ICE candidate-pair information, including selected pair, local/remote
348
+ # candidates, state, and nomination data when provided by the SDK.
349
+ #
350
+ # @return [Hash{Symbol=>Object}, nil]
351
+ optional :ice, Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]
352
+
353
+ # @!attribute transport
354
+ # Raw transport stats such as ICE state, DTLS state, SRTP cipher, TLS version, and
355
+ # selected-candidate-pair changes.
356
+ #
357
+ # @return [Hash{Symbol=>Object}, nil]
358
+ optional :transport, Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]
359
+
360
+ # @!method initialize(audio: nil, connection: nil, ice: nil, transport: nil)
361
+ # Some parameter documentations has been truncated, see
362
+ # {Telnyx::Models::VoiceSDKCallReportListResponse::Stats::UnionMember1} for more
363
+ # details.
364
+ #
365
+ # Raw stats object emitted by the Voice SDK.
366
+ #
367
+ # @param audio [Hash{Symbol=>Object}] Raw audio stats such as inbound/outbound packet, byte, jitter, packet-loss, bitr
368
+ #
369
+ # @param connection [Hash{Symbol=>Object}] Raw connection stats such as round-trip time, packets, and bytes sent or receive
370
+ #
371
+ # @param ice [Hash{Symbol=>Object}] Raw ICE candidate-pair information, including selected pair, local/remote candid
372
+ #
373
+ # @param transport [Hash{Symbol=>Object}] Raw transport stats such as ICE state, DTLS state, SRTP cipher, TLS version, and
374
+ end
375
+
376
+ # @!method self.variants
377
+ # @return [Array(Array<Hash{Symbol=>Object}>, Telnyx::Models::VoiceSDKCallReportListResponse::Stats::UnionMember1)]
378
+
379
+ # @type [Telnyx::Internal::Type::Converter]
380
+ UnionMember0Array =
381
+ Telnyx::Internal::Type::ArrayOf[Telnyx::Internal::Type::HashOf[Telnyx::Internal::Type::Unknown]]
382
+ end
383
+ end
384
+ end
385
+ end