pingram 1.0.16 → 1.0.18

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 (179) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +2 -2
  3. data/lib/pingram/api/account_api.rb +95 -26
  4. data/lib/pingram/api/members_api.rb +10 -10
  5. data/lib/pingram/api/numbers_api.rb +2 -2
  6. data/lib/pingram/api/profile_api.rb +66 -0
  7. data/lib/pingram/api/voice_api.rb +733 -0
  8. data/lib/pingram/api_client.rb +1 -1
  9. data/lib/pingram/client_wrapper.rb +10 -10
  10. data/lib/pingram/models/account_get_response.rb +216 -29
  11. data/lib/pingram/models/api_error_body.rb +4 -24
  12. data/lib/pingram/models/auto_join_get_response.rb +16 -16
  13. data/lib/pingram/models/auto_join_post_response.rb +16 -16
  14. data/lib/pingram/models/billing_post_request_body.rb +2 -12
  15. data/lib/pingram/models/billing_post_response_body.rb +56 -68
  16. data/lib/pingram/models/bind_number_request.rb +164 -0
  17. data/lib/pingram/models/bind_number_response.rb +164 -0
  18. data/lib/pingram/models/bind_number_response_agent.rb +342 -0
  19. data/lib/pingram/models/bind_number_response_agent_spec.rb +376 -0
  20. data/lib/pingram/models/bind_number_response_agent_spec_compliance.rb +164 -0
  21. data/lib/pingram/models/bind_number_response_agent_spec_conversation.rb +328 -0
  22. data/lib/pingram/models/bind_number_response_agent_spec_inbound.rb +214 -0
  23. data/lib/pingram/models/bind_number_response_agent_spec_model.rb +105 -0
  24. data/lib/pingram/models/bind_number_response_agent_spec_outbound.rb +251 -0
  25. data/lib/pingram/models/bind_number_response_agent_spec_tools_inner.rb +107 -0
  26. data/lib/pingram/models/bind_number_response_agent_spec_variables_inner.rb +182 -0
  27. data/lib/pingram/models/brand_webhook_response.rb +165 -0
  28. data/lib/pingram/models/chained.rb +401 -0
  29. data/lib/pingram/models/channels_enum.rb +2 -1
  30. data/lib/pingram/models/create_voice_agent_request.rb +164 -0
  31. data/lib/pingram/models/create_voice_agent_response.rb +164 -0
  32. data/lib/pingram/models/custom.rb +278 -0
  33. data/lib/pingram/models/delete_account_request.rb +147 -0
  34. data/lib/pingram/models/delete_voice_agent_response.rb +164 -0
  35. data/lib/pingram/models/dtmf.rb +188 -0
  36. data/lib/pingram/models/get_members_response_inner.rb +1 -27
  37. data/lib/pingram/models/get_notifications_response_inner_options.rb +10 -1
  38. data/lib/pingram/models/get_senders_response_inner.rb +13 -4
  39. data/lib/pingram/models/get_senders_response_inner_verification_records.rb +184 -0
  40. data/lib/pingram/models/get_senders_response_inner_verification_records_dkim.rb +287 -0
  41. data/lib/pingram/models/get_usage_history_query.rb +1 -1
  42. data/lib/pingram/models/{organization_usage_history.rb → get_usage_history_response.rb} +5 -5
  43. data/lib/pingram/models/get_usage_history_response_items_inner.rb +192 -0
  44. data/lib/pingram/models/get_usage_history_response_items_inner_counts.rb +346 -0
  45. data/lib/pingram/models/{organization_usage.rb → get_usage_response.rb} +17 -163
  46. data/lib/pingram/models/get_usage_response_costs.rb +148 -0
  47. data/lib/pingram/models/get_usage_response_counts.rb +347 -0
  48. data/lib/pingram/models/get_voice_agent_response.rb +164 -0
  49. data/lib/pingram/models/get_voice_call_response.rb +164 -0
  50. data/lib/pingram/models/get_voice_call_response_call.rb +521 -0
  51. data/lib/pingram/models/{a2p_registration_update_request.rb → get_voice_call_response_call_cost.rb} +53 -80
  52. data/lib/pingram/models/get_voice_call_response_call_cost_lines_inner.rb +245 -0
  53. data/lib/pingram/models/get_voice_call_response_call_timeline_inner.rb +247 -0
  54. data/lib/pingram/models/get_voice_call_response_call_timeline_inner_latency.rb +191 -0
  55. data/lib/pingram/models/inbound_response_body_results_inner.rb +4 -4
  56. data/lib/pingram/models/knowledge.rb +216 -0
  57. data/lib/pingram/models/{create_organization_response.rb → knowledge_documents_inner.rb} +50 -49
  58. data/lib/pingram/models/list_phone_numbers_response_numbers_inner.rb +14 -4
  59. data/lib/pingram/models/list_voice_agents_response.rb +166 -0
  60. data/lib/pingram/models/list_voice_calls_response.rb +176 -0
  61. data/lib/pingram/models/list_voice_calls_response_calls_inner.rb +463 -0
  62. data/lib/pingram/models/logs_get_response_logs_inner.rb +4 -4
  63. data/lib/pingram/models/mcp.rb +223 -0
  64. data/lib/pingram/models/phone_verify_confirm_request.rb +16 -4
  65. data/lib/pingram/models/s2s.rb +295 -0
  66. data/lib/pingram/models/send_email_api_response_any_of1_error.rb +4 -24
  67. data/lib/pingram/models/send_email_request.rb +1 -1
  68. data/lib/pingram/models/send_sms_response_any_of1_error.rb +4 -24
  69. data/lib/pingram/models/sender_post_body_options_email.rb +5 -15
  70. data/lib/pingram/models/{a2p_registration_create_request.rb → ten_dlc_brand_create_request.rb} +56 -28
  71. data/lib/pingram/models/{a2p_registration.rb → ten_dlc_brand_registration.rb} +72 -22
  72. data/lib/pingram/models/ten_dlc_brand_registration_details.rb +599 -0
  73. data/lib/pingram/models/ten_dlc_brand_update_request.rb +338 -0
  74. data/lib/pingram/models/transfer.rb +251 -0
  75. data/lib/pingram/models/unbind_number_response.rb +164 -0
  76. data/lib/pingram/models/update_voice_agent_request.rb +164 -0
  77. data/lib/pingram/models/update_voice_agent_response.rb +164 -0
  78. data/lib/pingram/models/voice_browser_call_request.rb +186 -0
  79. data/lib/pingram/models/voice_browser_call_response.rb +216 -0
  80. data/lib/pingram/models/voice_call_request.rb +212 -0
  81. data/lib/pingram/models/voice_call_response.rb +217 -0
  82. data/lib/pingram/models/webhook_event.rb +2 -2
  83. data/lib/pingram/version.rb +1 -1
  84. data/lib/pingram.rb +54 -9
  85. data/vendor/bundle/ruby/3.2.0/cache/parser-3.3.12.0.gem +0 -0
  86. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/byebug-13.0.0/gem_make.out +5 -5
  87. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/date-3.5.1/gem_make.out +5 -5
  88. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/io-console-0.8.2/gem_make.out +5 -5
  89. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/io-console-0.8.2/mkmf.log +3 -3
  90. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/jaro_winkler-1.5.6/gem_make.out +5 -5
  91. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/psych-5.4.0/gem_make.out +5 -5
  92. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/racc-1.8.1/gem_make.out +5 -5
  93. data/vendor/bundle/ruby/3.2.0/extensions/x86_64-linux/3.2.0/stringio-3.2.0/gem_make.out +5 -5
  94. data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/current.rb +1 -1
  95. data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/version.rb +1 -1
  96. data/vendor/bundle/ruby/3.2.0/specifications/{parser-3.3.11.1.gemspec → parser-3.3.12.0.gemspec} +4 -4
  97. metadata +138 -93
  98. data/lib/pingram/api/organization_api.rb +0 -201
  99. data/lib/pingram/models/organization.rb +0 -442
  100. data/lib/pingram/models/organization_usage_history_items_inner.rb +0 -330
  101. data/vendor/bundle/ruby/3.2.0/cache/parser-3.3.11.1.gem +0 -0
  102. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/LICENSE.txt +0 -0
  103. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/bin/ruby-parse +0 -0
  104. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/bin/ruby-rewrite +0 -0
  105. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/gauntlet_parser.rb +0 -0
  106. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/all.rb +0 -0
  107. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ast/node.rb +0 -0
  108. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ast/processor.rb +0 -0
  109. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/base.rb +0 -0
  110. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/builders/default.rb +0 -0
  111. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/clobbering_error.rb +0 -0
  112. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/color.rb +0 -0
  113. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/context.rb +0 -0
  114. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/current_arg_stack.rb +0 -0
  115. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/deprecation.rb +0 -0
  116. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/diagnostic/engine.rb +0 -0
  117. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/diagnostic.rb +0 -0
  118. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/lexer/dedenter.rb +0 -0
  119. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/lexer/explanation.rb +0 -0
  120. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/lexer/literal.rb +0 -0
  121. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/lexer/stack_state.rb +0 -0
  122. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/lexer-F0.rb +0 -0
  123. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/lexer-F1.rb +0 -0
  124. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/lexer-strings.rb +0 -0
  125. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/macruby.rb +0 -0
  126. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/max_numparam_stack.rb +0 -0
  127. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/messages.rb +0 -0
  128. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/meta.rb +0 -0
  129. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/rewriter.rb +0 -0
  130. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby18.rb +0 -0
  131. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby19.rb +0 -0
  132. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby20.rb +0 -0
  133. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby21.rb +0 -0
  134. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby22.rb +0 -0
  135. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby23.rb +0 -0
  136. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby24.rb +0 -0
  137. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby25.rb +0 -0
  138. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby26.rb +0 -0
  139. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby27.rb +0 -0
  140. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby30.rb +0 -0
  141. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby31.rb +0 -0
  142. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby32.rb +0 -0
  143. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby33.rb +0 -0
  144. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/ruby34.rb +0 -0
  145. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/rubymotion.rb +0 -0
  146. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/runner/ruby_parse.rb +0 -0
  147. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/runner/ruby_rewrite.rb +0 -0
  148. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/runner.rb +0 -0
  149. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/buffer.rb +0 -0
  150. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/comment/associator.rb +0 -0
  151. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/comment.rb +0 -0
  152. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/collection.rb +0 -0
  153. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/condition.rb +0 -0
  154. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/constant.rb +0 -0
  155. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/definition.rb +0 -0
  156. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/for.rb +0 -0
  157. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/heredoc.rb +0 -0
  158. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/index.rb +0 -0
  159. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/keyword.rb +0 -0
  160. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/method_definition.rb +0 -0
  161. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/objc_kwarg.rb +0 -0
  162. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/operator.rb +0 -0
  163. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/rescue_body.rb +0 -0
  164. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/send.rb +0 -0
  165. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/ternary.rb +0 -0
  166. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map/variable.rb +0 -0
  167. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/map.rb +0 -0
  168. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/range.rb +0 -0
  169. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/rewriter/action.rb +0 -0
  170. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/rewriter.rb +0 -0
  171. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/tree_rewriter/action.rb +0 -0
  172. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/source/tree_rewriter.rb +0 -0
  173. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/static_environment.rb +0 -0
  174. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/syntax_error.rb +0 -0
  175. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/tree_rewriter.rb +0 -0
  176. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/unknown_encoding_in_magic_comment_error.rb +0 -0
  177. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser/variables_stack.rb +0 -0
  178. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/lib/parser.rb +0 -0
  179. /data/vendor/bundle/ruby/3.2.0/gems/{parser-3.3.11.1 → parser-3.3.12.0}/parser.gemspec +0 -0
@@ -14,38 +14,17 @@ require 'date'
14
14
  require 'time'
15
15
 
16
16
  module Pingram
17
- # Request body for PUT /registrations/a2p
18
- class A2pRegistrationUpdateRequest < ApiModelBase
19
- attr_accessor :scenario_id
17
+ # Customer-facing call cost on GET /voice/calls/{trackingId} (SDK: GetVoiceCallResponseCallCost).
18
+ class GetVoiceCallResponseCallCost < ApiModelBase
19
+ attr_accessor :total_usd
20
20
 
21
- attr_accessor :business_type
22
-
23
- attr_accessor :legal_name
24
-
25
- attr_accessor :tax_id
26
-
27
- attr_accessor :website
28
-
29
- attr_accessor :country
30
-
31
- attr_accessor :full_address
32
-
33
- attr_accessor :compliance_contact_email
34
-
35
- attr_accessor :compliance_contact_phone
21
+ attr_accessor :lines
36
22
 
37
23
  # Attribute mapping from ruby-style variable name to JSON key.
38
24
  def self.attribute_map
39
25
  {
40
- :'scenario_id' => :'scenarioId',
41
- :'business_type' => :'businessType',
42
- :'legal_name' => :'legalName',
43
- :'tax_id' => :'taxId',
44
- :'website' => :'website',
45
- :'country' => :'country',
46
- :'full_address' => :'fullAddress',
47
- :'compliance_contact_email' => :'complianceContactEmail',
48
- :'compliance_contact_phone' => :'complianceContactPhone'
26
+ :'total_usd' => :'totalUsd',
27
+ :'lines' => :'lines'
49
28
  }
50
29
  end
51
30
 
@@ -62,15 +41,8 @@ module Pingram
62
41
  # Attribute type mapping.
63
42
  def self.openapi_types
64
43
  {
65
- :'scenario_id' => :'String',
66
- :'business_type' => :'String',
67
- :'legal_name' => :'String',
68
- :'tax_id' => :'String',
69
- :'website' => :'String',
70
- :'country' => :'String',
71
- :'full_address' => :'String',
72
- :'compliance_contact_email' => :'String',
73
- :'compliance_contact_phone' => :'String'
44
+ :'total_usd' => :'Float',
45
+ :'lines' => :'Array<GetVoiceCallResponseCallCostLinesInner>'
74
46
  }
75
47
  end
76
48
 
@@ -84,52 +56,30 @@ module Pingram
84
56
  # @param [Hash] attributes Model attributes in the form of hash
85
57
  def initialize(attributes = {})
86
58
  if (!attributes.is_a?(Hash))
87
- fail ArgumentError, "The input argument (attributes) must be a hash in `Pingram::A2pRegistrationUpdateRequest` initialize method"
59
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Pingram::GetVoiceCallResponseCallCost` initialize method"
88
60
  end
89
61
 
90
62
  # check to see if the attribute exists and convert string to symbol for hash key
91
63
  acceptable_attribute_map = self.class.acceptable_attribute_map
92
64
  attributes = attributes.each_with_object({}) { |(k, v), h|
93
65
  if (!acceptable_attribute_map.key?(k.to_sym))
94
- fail ArgumentError, "`#{k}` is not a valid attribute in `Pingram::A2pRegistrationUpdateRequest`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
66
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Pingram::GetVoiceCallResponseCallCost`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
95
67
  end
96
68
  h[k.to_sym] = v
97
69
  }
98
70
 
99
- if attributes.key?(:'scenario_id')
100
- self.scenario_id = attributes[:'scenario_id']
101
- end
102
-
103
- if attributes.key?(:'business_type')
104
- self.business_type = attributes[:'business_type']
105
- end
106
-
107
- if attributes.key?(:'legal_name')
108
- self.legal_name = attributes[:'legal_name']
109
- end
110
-
111
- if attributes.key?(:'tax_id')
112
- self.tax_id = attributes[:'tax_id']
113
- end
114
-
115
- if attributes.key?(:'website')
116
- self.website = attributes[:'website']
117
- end
118
-
119
- if attributes.key?(:'country')
120
- self.country = attributes[:'country']
71
+ if attributes.key?(:'total_usd')
72
+ self.total_usd = attributes[:'total_usd']
73
+ else
74
+ self.total_usd = nil
121
75
  end
122
76
 
123
- if attributes.key?(:'full_address')
124
- self.full_address = attributes[:'full_address']
125
- end
126
-
127
- if attributes.key?(:'compliance_contact_email')
128
- self.compliance_contact_email = attributes[:'compliance_contact_email']
129
- end
130
-
131
- if attributes.key?(:'compliance_contact_phone')
132
- self.compliance_contact_phone = attributes[:'compliance_contact_phone']
77
+ if attributes.key?(:'lines')
78
+ if (value = attributes[:'lines']).is_a?(Array)
79
+ self.lines = value
80
+ end
81
+ else
82
+ self.lines = nil
133
83
  end
134
84
  end
135
85
 
@@ -138,6 +88,14 @@ module Pingram
138
88
  def list_invalid_properties
139
89
  warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
140
90
  invalid_properties = Array.new
91
+ if @total_usd.nil?
92
+ invalid_properties.push('invalid value for "total_usd", total_usd cannot be nil.')
93
+ end
94
+
95
+ if @lines.nil?
96
+ invalid_properties.push('invalid value for "lines", lines cannot be nil.')
97
+ end
98
+
141
99
  invalid_properties
142
100
  end
143
101
 
@@ -145,23 +103,38 @@ module Pingram
145
103
  # @return true if the model is valid
146
104
  def valid?
147
105
  warn '[DEPRECATED] the `valid?` method is obsolete'
106
+ return false if @total_usd.nil?
107
+ return false if @lines.nil?
148
108
  true
149
109
  end
150
110
 
111
+ # Custom attribute writer method with validation
112
+ # @param [Object] total_usd Value to be assigned
113
+ def total_usd=(total_usd)
114
+ if total_usd.nil?
115
+ fail ArgumentError, 'total_usd cannot be nil'
116
+ end
117
+
118
+ @total_usd = total_usd
119
+ end
120
+
121
+ # Custom attribute writer method with validation
122
+ # @param [Object] lines Value to be assigned
123
+ def lines=(lines)
124
+ if lines.nil?
125
+ fail ArgumentError, 'lines cannot be nil'
126
+ end
127
+
128
+ @lines = lines
129
+ end
130
+
151
131
  # Checks equality by comparing each attribute.
152
132
  # @param [Object] Object to be compared
153
133
  def ==(o)
154
134
  return true if self.equal?(o)
155
135
  self.class == o.class &&
156
- scenario_id == o.scenario_id &&
157
- business_type == o.business_type &&
158
- legal_name == o.legal_name &&
159
- tax_id == o.tax_id &&
160
- website == o.website &&
161
- country == o.country &&
162
- full_address == o.full_address &&
163
- compliance_contact_email == o.compliance_contact_email &&
164
- compliance_contact_phone == o.compliance_contact_phone
136
+ total_usd == o.total_usd &&
137
+ lines == o.lines
165
138
  end
166
139
 
167
140
  # @see the `==` method
@@ -173,7 +146,7 @@ module Pingram
173
146
  # Calculates hash code according to all attributes.
174
147
  # @return [Integer] Hash code
175
148
  def hash
176
- [scenario_id, business_type, legal_name, tax_id, website, country, full_address, compliance_contact_email, compliance_contact_phone].hash
149
+ [total_usd, lines].hash
177
150
  end
178
151
 
179
152
  # Builds the object from hash
@@ -0,0 +1,245 @@
1
+ =begin
2
+ #Pingram
3
+
4
+ #Internal API for notification delivery and management
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Pingram
17
+ # One line item in a call cost breakdown (API / SDK).
18
+ class GetVoiceCallResponseCallCostLinesInner < ApiModelBase
19
+ attr_accessor :role
20
+
21
+ attr_accessor :label
22
+
23
+ # AI model vendor when applicable; omitted for phone-line charges.
24
+ attr_accessor :provider
25
+
26
+ attr_accessor :model
27
+
28
+ attr_accessor :amount_usd
29
+
30
+ attr_accessor :detail
31
+
32
+ # Attribute mapping from ruby-style variable name to JSON key.
33
+ def self.attribute_map
34
+ {
35
+ :'role' => :'role',
36
+ :'label' => :'label',
37
+ :'provider' => :'provider',
38
+ :'model' => :'model',
39
+ :'amount_usd' => :'amountUsd',
40
+ :'detail' => :'detail'
41
+ }
42
+ end
43
+
44
+ # Returns attribute mapping this model knows about
45
+ def self.acceptable_attribute_map
46
+ attribute_map
47
+ end
48
+
49
+ # Returns all the JSON keys this model knows about
50
+ def self.acceptable_attributes
51
+ acceptable_attribute_map.values
52
+ end
53
+
54
+ # Attribute type mapping.
55
+ def self.openapi_types
56
+ {
57
+ :'role' => :'String',
58
+ :'label' => :'String',
59
+ :'provider' => :'String',
60
+ :'model' => :'String',
61
+ :'amount_usd' => :'Float',
62
+ :'detail' => :'String'
63
+ }
64
+ end
65
+
66
+ # List of attributes with nullable: true
67
+ def self.openapi_nullable
68
+ Set.new([
69
+ ])
70
+ end
71
+
72
+ # Initializes the object
73
+ # @param [Hash] attributes Model attributes in the form of hash
74
+ def initialize(attributes = {})
75
+ if (!attributes.is_a?(Hash))
76
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Pingram::GetVoiceCallResponseCallCostLinesInner` initialize method"
77
+ end
78
+
79
+ # check to see if the attribute exists and convert string to symbol for hash key
80
+ acceptable_attribute_map = self.class.acceptable_attribute_map
81
+ attributes = attributes.each_with_object({}) { |(k, v), h|
82
+ if (!acceptable_attribute_map.key?(k.to_sym))
83
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Pingram::GetVoiceCallResponseCallCostLinesInner`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
84
+ end
85
+ h[k.to_sym] = v
86
+ }
87
+
88
+ if attributes.key?(:'role')
89
+ self.role = attributes[:'role']
90
+ else
91
+ self.role = nil
92
+ end
93
+
94
+ if attributes.key?(:'label')
95
+ self.label = attributes[:'label']
96
+ else
97
+ self.label = nil
98
+ end
99
+
100
+ if attributes.key?(:'provider')
101
+ self.provider = attributes[:'provider']
102
+ end
103
+
104
+ if attributes.key?(:'model')
105
+ self.model = attributes[:'model']
106
+ end
107
+
108
+ if attributes.key?(:'amount_usd')
109
+ self.amount_usd = attributes[:'amount_usd']
110
+ else
111
+ self.amount_usd = nil
112
+ end
113
+
114
+ if attributes.key?(:'detail')
115
+ self.detail = attributes[:'detail']
116
+ end
117
+ end
118
+
119
+ # Show invalid properties with the reasons. Usually used together with valid?
120
+ # @return Array for valid properties with the reasons
121
+ def list_invalid_properties
122
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
123
+ invalid_properties = Array.new
124
+ if @role.nil?
125
+ invalid_properties.push('invalid value for "role", role cannot be nil.')
126
+ end
127
+
128
+ if @label.nil?
129
+ invalid_properties.push('invalid value for "label", label cannot be nil.')
130
+ end
131
+
132
+ if @amount_usd.nil?
133
+ invalid_properties.push('invalid value for "amount_usd", amount_usd cannot be nil.')
134
+ end
135
+
136
+ invalid_properties
137
+ end
138
+
139
+ # Check to see if the all the properties in the model are valid
140
+ # @return true if the model is valid
141
+ def valid?
142
+ warn '[DEPRECATED] the `valid?` method is obsolete'
143
+ return false if @role.nil?
144
+ return false if @label.nil?
145
+ return false if @amount_usd.nil?
146
+ true
147
+ end
148
+
149
+ # Custom attribute writer method with validation
150
+ # @param [Object] role Value to be assigned
151
+ def role=(role)
152
+ if role.nil?
153
+ fail ArgumentError, 'role cannot be nil'
154
+ end
155
+
156
+ @role = role
157
+ end
158
+
159
+ # Custom attribute writer method with validation
160
+ # @param [Object] label Value to be assigned
161
+ def label=(label)
162
+ if label.nil?
163
+ fail ArgumentError, 'label cannot be nil'
164
+ end
165
+
166
+ @label = label
167
+ end
168
+
169
+ # Custom attribute writer method with validation
170
+ # @param [Object] amount_usd Value to be assigned
171
+ def amount_usd=(amount_usd)
172
+ if amount_usd.nil?
173
+ fail ArgumentError, 'amount_usd cannot be nil'
174
+ end
175
+
176
+ @amount_usd = amount_usd
177
+ end
178
+
179
+ # Checks equality by comparing each attribute.
180
+ # @param [Object] Object to be compared
181
+ def ==(o)
182
+ return true if self.equal?(o)
183
+ self.class == o.class &&
184
+ role == o.role &&
185
+ label == o.label &&
186
+ provider == o.provider &&
187
+ model == o.model &&
188
+ amount_usd == o.amount_usd &&
189
+ detail == o.detail
190
+ end
191
+
192
+ # @see the `==` method
193
+ # @param [Object] Object to be compared
194
+ def eql?(o)
195
+ self == o
196
+ end
197
+
198
+ # Calculates hash code according to all attributes.
199
+ # @return [Integer] Hash code
200
+ def hash
201
+ [role, label, provider, model, amount_usd, detail].hash
202
+ end
203
+
204
+ # Builds the object from hash
205
+ # @param [Hash] attributes Model attributes in the form of hash
206
+ # @return [Object] Returns the model itself
207
+ def self.build_from_hash(attributes)
208
+ return nil unless attributes.is_a?(Hash)
209
+ attributes = attributes.transform_keys(&:to_sym)
210
+ transformed_hash = {}
211
+ openapi_types.each_pair do |key, type|
212
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
213
+ transformed_hash["#{key}"] = nil
214
+ elsif type =~ /\AArray<(.*)>/i
215
+ # check to ensure the input is an array given that the attribute
216
+ # is documented as an array but the input is not
217
+ if attributes[attribute_map[key]].is_a?(Array)
218
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
219
+ end
220
+ elsif !attributes[attribute_map[key]].nil?
221
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
222
+ end
223
+ end
224
+ new(transformed_hash)
225
+ end
226
+
227
+ # Returns the object in the form of hash
228
+ # @return [Hash] Returns the object in the form of hash
229
+ def to_hash
230
+ hash = {}
231
+ self.class.attribute_map.each_pair do |attr, param|
232
+ value = self.send(attr)
233
+ if value.nil?
234
+ is_nullable = self.class.openapi_nullable.include?(attr)
235
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
236
+ end
237
+
238
+ hash[param] = _to_hash(value)
239
+ end
240
+ hash
241
+ end
242
+
243
+ end
244
+
245
+ end
@@ -0,0 +1,247 @@
1
+ =begin
2
+ #Pingram
3
+
4
+ #Internal API for notification delivery and management
5
+
6
+ The version of the OpenAPI document: 1.0.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.19.0
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Pingram
17
+ # Chronological call timeline entry — transcript turns and operational events share one stream, sorted by offsetMs. Speech: type is 'user' | 'assistant' | 'tool' with text. Ops: type is an event name (session_created, barge_in_cancel, …) with optional detail.
18
+ class GetVoiceCallResponseCallTimelineInner < ApiModelBase
19
+ attr_accessor :offset_ms
20
+
21
+ attr_accessor :type
22
+
23
+ attr_accessor :text
24
+
25
+ attr_accessor :detail
26
+
27
+ attr_accessor :latency
28
+
29
+ attr_accessor :tool_name
30
+
31
+ attr_accessor :tool_args
32
+
33
+ attr_accessor :tool_result
34
+
35
+ # Attribute mapping from ruby-style variable name to JSON key.
36
+ def self.attribute_map
37
+ {
38
+ :'offset_ms' => :'offsetMs',
39
+ :'type' => :'type',
40
+ :'text' => :'text',
41
+ :'detail' => :'detail',
42
+ :'latency' => :'latency',
43
+ :'tool_name' => :'toolName',
44
+ :'tool_args' => :'toolArgs',
45
+ :'tool_result' => :'toolResult'
46
+ }
47
+ end
48
+
49
+ # Returns attribute mapping this model knows about
50
+ def self.acceptable_attribute_map
51
+ attribute_map
52
+ end
53
+
54
+ # Returns all the JSON keys this model knows about
55
+ def self.acceptable_attributes
56
+ acceptable_attribute_map.values
57
+ end
58
+
59
+ # Attribute type mapping.
60
+ def self.openapi_types
61
+ {
62
+ :'offset_ms' => :'Float',
63
+ :'type' => :'String',
64
+ :'text' => :'String',
65
+ :'detail' => :'String',
66
+ :'latency' => :'GetVoiceCallResponseCallTimelineInnerLatency',
67
+ :'tool_name' => :'String',
68
+ :'tool_args' => :'Hash<String, Object>',
69
+ :'tool_result' => :'String'
70
+ }
71
+ end
72
+
73
+ # List of attributes with nullable: true
74
+ def self.openapi_nullable
75
+ Set.new([
76
+ ])
77
+ end
78
+
79
+ # Initializes the object
80
+ # @param [Hash] attributes Model attributes in the form of hash
81
+ def initialize(attributes = {})
82
+ if (!attributes.is_a?(Hash))
83
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Pingram::GetVoiceCallResponseCallTimelineInner` initialize method"
84
+ end
85
+
86
+ # check to see if the attribute exists and convert string to symbol for hash key
87
+ acceptable_attribute_map = self.class.acceptable_attribute_map
88
+ attributes = attributes.each_with_object({}) { |(k, v), h|
89
+ if (!acceptable_attribute_map.key?(k.to_sym))
90
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Pingram::GetVoiceCallResponseCallTimelineInner`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
91
+ end
92
+ h[k.to_sym] = v
93
+ }
94
+
95
+ if attributes.key?(:'offset_ms')
96
+ self.offset_ms = attributes[:'offset_ms']
97
+ else
98
+ self.offset_ms = nil
99
+ end
100
+
101
+ if attributes.key?(:'type')
102
+ self.type = attributes[:'type']
103
+ else
104
+ self.type = nil
105
+ end
106
+
107
+ if attributes.key?(:'text')
108
+ self.text = attributes[:'text']
109
+ end
110
+
111
+ if attributes.key?(:'detail')
112
+ self.detail = attributes[:'detail']
113
+ end
114
+
115
+ if attributes.key?(:'latency')
116
+ self.latency = attributes[:'latency']
117
+ end
118
+
119
+ if attributes.key?(:'tool_name')
120
+ self.tool_name = attributes[:'tool_name']
121
+ end
122
+
123
+ if attributes.key?(:'tool_args')
124
+ if (value = attributes[:'tool_args']).is_a?(Hash)
125
+ self.tool_args = value
126
+ end
127
+ end
128
+
129
+ if attributes.key?(:'tool_result')
130
+ self.tool_result = attributes[:'tool_result']
131
+ end
132
+ end
133
+
134
+ # Show invalid properties with the reasons. Usually used together with valid?
135
+ # @return Array for valid properties with the reasons
136
+ def list_invalid_properties
137
+ warn '[DEPRECATED] the `list_invalid_properties` method is obsolete'
138
+ invalid_properties = Array.new
139
+ if @offset_ms.nil?
140
+ invalid_properties.push('invalid value for "offset_ms", offset_ms cannot be nil.')
141
+ end
142
+
143
+ if @type.nil?
144
+ invalid_properties.push('invalid value for "type", type cannot be nil.')
145
+ end
146
+
147
+ invalid_properties
148
+ end
149
+
150
+ # Check to see if the all the properties in the model are valid
151
+ # @return true if the model is valid
152
+ def valid?
153
+ warn '[DEPRECATED] the `valid?` method is obsolete'
154
+ return false if @offset_ms.nil?
155
+ return false if @type.nil?
156
+ true
157
+ end
158
+
159
+ # Custom attribute writer method with validation
160
+ # @param [Object] offset_ms Value to be assigned
161
+ def offset_ms=(offset_ms)
162
+ if offset_ms.nil?
163
+ fail ArgumentError, 'offset_ms cannot be nil'
164
+ end
165
+
166
+ @offset_ms = offset_ms
167
+ end
168
+
169
+ # Custom attribute writer method with validation
170
+ # @param [Object] type Value to be assigned
171
+ def type=(type)
172
+ if type.nil?
173
+ fail ArgumentError, 'type cannot be nil'
174
+ end
175
+
176
+ @type = type
177
+ end
178
+
179
+ # Checks equality by comparing each attribute.
180
+ # @param [Object] Object to be compared
181
+ def ==(o)
182
+ return true if self.equal?(o)
183
+ self.class == o.class &&
184
+ offset_ms == o.offset_ms &&
185
+ type == o.type &&
186
+ text == o.text &&
187
+ detail == o.detail &&
188
+ latency == o.latency &&
189
+ tool_name == o.tool_name &&
190
+ tool_args == o.tool_args &&
191
+ tool_result == o.tool_result
192
+ end
193
+
194
+ # @see the `==` method
195
+ # @param [Object] Object to be compared
196
+ def eql?(o)
197
+ self == o
198
+ end
199
+
200
+ # Calculates hash code according to all attributes.
201
+ # @return [Integer] Hash code
202
+ def hash
203
+ [offset_ms, type, text, detail, latency, tool_name, tool_args, tool_result].hash
204
+ end
205
+
206
+ # Builds the object from hash
207
+ # @param [Hash] attributes Model attributes in the form of hash
208
+ # @return [Object] Returns the model itself
209
+ def self.build_from_hash(attributes)
210
+ return nil unless attributes.is_a?(Hash)
211
+ attributes = attributes.transform_keys(&:to_sym)
212
+ transformed_hash = {}
213
+ openapi_types.each_pair do |key, type|
214
+ if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
215
+ transformed_hash["#{key}"] = nil
216
+ elsif type =~ /\AArray<(.*)>/i
217
+ # check to ensure the input is an array given that the attribute
218
+ # is documented as an array but the input is not
219
+ if attributes[attribute_map[key]].is_a?(Array)
220
+ transformed_hash["#{key}"] = attributes[attribute_map[key]].map { |v| _deserialize($1, v) }
221
+ end
222
+ elsif !attributes[attribute_map[key]].nil?
223
+ transformed_hash["#{key}"] = _deserialize(type, attributes[attribute_map[key]])
224
+ end
225
+ end
226
+ new(transformed_hash)
227
+ end
228
+
229
+ # Returns the object in the form of hash
230
+ # @return [Hash] Returns the object in the form of hash
231
+ def to_hash
232
+ hash = {}
233
+ self.class.attribute_map.each_pair do |attr, param|
234
+ value = self.send(attr)
235
+ if value.nil?
236
+ is_nullable = self.class.openapi_nullable.include?(attr)
237
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
238
+ end
239
+
240
+ hash[param] = _to_hash(value)
241
+ end
242
+ hash
243
+ end
244
+
245
+ end
246
+
247
+ end