vapi_server_sdk 0.3.0 → 0.5.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 (208) hide show
  1. checksums.yaml +4 -4
  2. data/lib/requests.rb +2 -2
  3. data/lib/types_export.rb +83 -12
  4. data/lib/vapi_server_sdk/analytics/client.rb +41 -26
  5. data/lib/vapi_server_sdk/assistants/client.rb +84 -84
  6. data/lib/vapi_server_sdk/assistants/types/update_assistant_dto_server_messages_item.rb +1 -0
  7. data/lib/vapi_server_sdk/blocks/client.rb +0 -70
  8. data/lib/vapi_server_sdk/calls/client.rb +110 -76
  9. data/lib/vapi_server_sdk/files/client.rb +0 -70
  10. data/lib/vapi_server_sdk/knowledge_bases/client.rb +0 -70
  11. data/lib/vapi_server_sdk/logs/client.rb +15 -46
  12. data/lib/vapi_server_sdk/logs/types/logging_controller_logs_delete_query_request_type.rb +12 -0
  13. data/lib/vapi_server_sdk/phone_numbers/client.rb +0 -70
  14. data/lib/vapi_server_sdk/squads/client.rb +136 -78
  15. data/lib/vapi_server_sdk/test_suite_runs/client.rb +328 -0
  16. data/lib/vapi_server_sdk/test_suite_runs/types/test_suite_run_controller_find_all_paginated_request_sort_order.rb +10 -0
  17. data/lib/vapi_server_sdk/test_suite_tests/client.rb +331 -0
  18. data/lib/vapi_server_sdk/test_suite_tests/types/test_suite_test_controller_create_request.rb +81 -0
  19. data/lib/vapi_server_sdk/test_suite_tests/types/test_suite_test_controller_find_all_paginated_request_sort_order.rb +10 -0
  20. data/lib/vapi_server_sdk/test_suite_tests/types/test_suite_test_controller_remove_response.rb +82 -0
  21. data/lib/vapi_server_sdk/test_suite_tests/types/test_suite_test_controller_update_request.rb +81 -0
  22. data/lib/vapi_server_sdk/test_suites/client.rb +338 -0
  23. data/lib/vapi_server_sdk/test_suites/types/test_suite_controller_find_all_paginated_request_sort_order.rb +10 -0
  24. data/lib/vapi_server_sdk/tools/client.rb +0 -70
  25. data/lib/vapi_server_sdk/types/ai_edge_condition.rb +55 -0
  26. data/lib/vapi_server_sdk/types/analytics_operation_column.rb +1 -0
  27. data/lib/vapi_server_sdk/types/analytics_operation_operation.rb +1 -0
  28. data/lib/vapi_server_sdk/types/analytics_query.rb +4 -3
  29. data/lib/vapi_server_sdk/types/analytics_query_table.rb +9 -0
  30. data/lib/vapi_server_sdk/types/api_request.rb +165 -0
  31. data/lib/vapi_server_sdk/types/api_request_method.rb +8 -0
  32. data/lib/vapi_server_sdk/types/api_request_mode.rb +10 -0
  33. data/lib/vapi_server_sdk/types/artifact.rb +12 -2
  34. data/lib/vapi_server_sdk/types/artifact_plan.rb +56 -8
  35. data/lib/vapi_server_sdk/types/assistant.rb +27 -13
  36. data/lib/vapi_server_sdk/types/assistant_hook_action_base.rb +47 -0
  37. data/lib/vapi_server_sdk/types/assistant_hook_filter.rb +72 -0
  38. data/lib/vapi_server_sdk/types/assistant_hooks.rb +82 -0
  39. data/lib/vapi_server_sdk/types/assistant_overrides.rb +28 -14
  40. data/lib/vapi_server_sdk/types/assistant_overrides_server_messages_item.rb +1 -0
  41. data/lib/vapi_server_sdk/types/assistant_server_messages_item.rb +1 -0
  42. data/lib/vapi_server_sdk/types/azure_credential_region.rb +4 -2
  43. data/lib/vapi_server_sdk/types/azure_open_ai_credential_models_item.rb +1 -0
  44. data/lib/vapi_server_sdk/types/azure_open_ai_credential_region.rb +4 -2
  45. data/lib/vapi_server_sdk/types/backoff_plan.rb +80 -0
  46. data/lib/vapi_server_sdk/types/bash_tool_with_tool_call.rb +175 -0
  47. data/lib/vapi_server_sdk/types/bash_tool_with_tool_call_messages_item.rb +120 -0
  48. data/lib/vapi_server_sdk/types/byo_phone_number.rb +10 -1
  49. data/lib/vapi_server_sdk/types/byo_phone_number_status.rb +10 -0
  50. data/lib/vapi_server_sdk/types/call_ended_reason.rb +10 -1
  51. data/lib/vapi_server_sdk/types/cartesia_experimental_controls.rb +69 -0
  52. data/lib/vapi_server_sdk/types/cartesia_experimental_controls_emotion.rb +26 -0
  53. data/lib/vapi_server_sdk/types/cartesia_experimental_controls_speed.rb +11 -0
  54. data/lib/vapi_server_sdk/types/cartesia_voice.rb +24 -10
  55. data/lib/vapi_server_sdk/types/chat_completion_message.rb +80 -0
  56. data/lib/vapi_server_sdk/types/chat_completion_message_metadata.rb +94 -0
  57. data/lib/vapi_server_sdk/types/chat_completions_dto.rb +84 -0
  58. data/lib/vapi_server_sdk/types/client_inbound_message_end_call.rb +47 -0
  59. data/lib/vapi_server_sdk/types/client_inbound_message_message.rb +13 -0
  60. data/lib/vapi_server_sdk/types/client_inbound_message_transfer.rb +13 -3
  61. data/lib/vapi_server_sdk/types/client_message_conversation_update.rb +15 -2
  62. data/lib/vapi_server_sdk/types/client_message_hang.rb +22 -4
  63. data/lib/vapi_server_sdk/types/client_message_language_change_detected.rb +15 -3
  64. data/lib/vapi_server_sdk/types/client_message_message.rb +165 -181
  65. data/lib/vapi_server_sdk/types/client_message_metadata.rb +15 -3
  66. data/lib/vapi_server_sdk/types/client_message_model_output.rb +15 -3
  67. data/lib/vapi_server_sdk/types/client_message_speech_update.rb +11 -2
  68. data/lib/vapi_server_sdk/types/client_message_tool_calls.rb +15 -2
  69. data/lib/vapi_server_sdk/types/client_message_tool_calls_result.rb +15 -3
  70. data/lib/vapi_server_sdk/types/client_message_tool_calls_tool_with_tool_call_list_item.rb +116 -77
  71. data/lib/vapi_server_sdk/types/client_message_transcript.rb +12 -2
  72. data/lib/vapi_server_sdk/types/client_message_transcript_type.rb +10 -0
  73. data/lib/vapi_server_sdk/types/client_message_transfer_update.rb +11 -1
  74. data/lib/vapi_server_sdk/types/client_message_user_interrupted.rb +14 -4
  75. data/lib/vapi_server_sdk/types/client_message_voice_input.rb +15 -3
  76. data/lib/vapi_server_sdk/types/client_message_workflow_node_started.rb +67 -0
  77. data/lib/vapi_server_sdk/types/compliance_plan.rb +77 -0
  78. data/lib/vapi_server_sdk/types/computer_tool_with_tool_call.rb +199 -0
  79. data/lib/vapi_server_sdk/types/computer_tool_with_tool_call_messages_item.rb +120 -0
  80. data/lib/vapi_server_sdk/types/create_assistant_dto.rb +28 -14
  81. data/lib/vapi_server_sdk/types/create_assistant_dto_server_messages_item.rb +1 -0
  82. data/lib/vapi_server_sdk/types/create_azure_credential_dto_region.rb +4 -2
  83. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_models_item.rb +1 -0
  84. data/lib/vapi_server_sdk/types/create_azure_open_ai_credential_dto_region.rb +4 -2
  85. data/lib/vapi_server_sdk/types/create_custom_knowledge_base_dto.rb +2 -4
  86. data/lib/vapi_server_sdk/types/create_test_suite_test_voice_dto.rb +90 -0
  87. data/lib/vapi_server_sdk/types/create_trieve_knowledge_base_dto.rb +34 -47
  88. data/lib/vapi_server_sdk/types/create_trieve_knowledge_base_dto_create_plan.rb +97 -0
  89. data/lib/vapi_server_sdk/types/create_vapi_phone_number_dto.rb +12 -4
  90. data/lib/vapi_server_sdk/types/create_workflow_dto.rb +80 -0
  91. data/lib/vapi_server_sdk/types/create_workflow_dto_nodes_item.rb +133 -0
  92. data/lib/vapi_server_sdk/types/custom_knowledge_base.rb +2 -4
  93. data/lib/vapi_server_sdk/types/deep_seek_model.rb +4 -3
  94. data/lib/vapi_server_sdk/types/deep_seek_model_model.rb +9 -0
  95. data/lib/vapi_server_sdk/types/deepgram_transcriber.rb +28 -2
  96. data/lib/vapi_server_sdk/types/deepgram_voice.rb +22 -2
  97. data/lib/vapi_server_sdk/types/edge.rb +87 -0
  98. data/lib/vapi_server_sdk/types/edge_condition.rb +107 -0
  99. data/lib/vapi_server_sdk/types/failed_edge_condition.rb +47 -0
  100. data/lib/vapi_server_sdk/types/fallback_cartesia_voice.rb +24 -9
  101. data/lib/vapi_server_sdk/types/fallback_deepgram_voice.rb +17 -2
  102. data/lib/vapi_server_sdk/types/fallback_play_ht_voice_model.rb +1 -0
  103. data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_id_enum.rb +22 -20
  104. data/lib/vapi_server_sdk/types/fallback_rime_ai_voice_model.rb +1 -0
  105. data/lib/vapi_server_sdk/types/format_plan.rb +22 -2
  106. data/lib/vapi_server_sdk/types/format_plan_formatters_enabled_item.rb +22 -0
  107. data/lib/vapi_server_sdk/types/function_tool_with_tool_call.rb +1 -10
  108. data/lib/vapi_server_sdk/types/gather.rb +143 -0
  109. data/lib/vapi_server_sdk/types/ghl_tool_with_tool_call.rb +1 -9
  110. data/lib/vapi_server_sdk/types/google_model_model.rb +4 -0
  111. data/lib/vapi_server_sdk/types/groq_model_model.rb +1 -0
  112. data/lib/vapi_server_sdk/types/hangup.rb +67 -0
  113. data/lib/vapi_server_sdk/types/hook.rb +70 -0
  114. data/lib/vapi_server_sdk/types/hook_on.rb +9 -0
  115. data/lib/vapi_server_sdk/types/invite_user_dto.rb +11 -2
  116. data/lib/vapi_server_sdk/types/json_schema.rb +37 -2
  117. data/lib/vapi_server_sdk/types/log.rb +18 -18
  118. data/lib/vapi_server_sdk/types/logic_edge_condition.rb +55 -0
  119. data/lib/vapi_server_sdk/types/make_tool_with_tool_call.rb +1 -9
  120. data/lib/vapi_server_sdk/types/message_plan.rb +12 -2
  121. data/lib/vapi_server_sdk/types/open_ai_model.rb +1 -9
  122. data/lib/vapi_server_sdk/types/open_ai_model_fallback_models_item.rb +2 -0
  123. data/lib/vapi_server_sdk/types/open_ai_model_model.rb +2 -0
  124. data/lib/vapi_server_sdk/types/play_ht_voice_model.rb +1 -0
  125. data/lib/vapi_server_sdk/types/rime_ai_voice_id_enum.rb +22 -20
  126. data/lib/vapi_server_sdk/types/rime_ai_voice_model.rb +1 -0
  127. data/lib/vapi_server_sdk/types/say.rb +81 -0
  128. data/lib/vapi_server_sdk/types/say_hook.rb +81 -0
  129. data/lib/vapi_server_sdk/types/server.rb +17 -2
  130. data/lib/vapi_server_sdk/types/server_message_assistant_request.rb +12 -2
  131. data/lib/vapi_server_sdk/types/server_message_conversation_update.rb +12 -2
  132. data/lib/vapi_server_sdk/types/server_message_end_of_call_report.rb +11 -1
  133. data/lib/vapi_server_sdk/types/server_message_end_of_call_report_ended_reason.rb +10 -1
  134. data/lib/vapi_server_sdk/types/server_message_hang.rb +20 -2
  135. data/lib/vapi_server_sdk/types/server_message_knowledge_base_request.rb +14 -2
  136. data/lib/vapi_server_sdk/types/server_message_language_change_detected.rb +11 -1
  137. data/lib/vapi_server_sdk/types/server_message_message.rb +212 -237
  138. data/lib/vapi_server_sdk/types/server_message_model_output.rb +11 -1
  139. data/lib/vapi_server_sdk/types/server_message_phone_call_control.rb +18 -2
  140. data/lib/vapi_server_sdk/types/server_message_speech_update.rb +11 -1
  141. data/lib/vapi_server_sdk/types/server_message_status_update.rb +12 -2
  142. data/lib/vapi_server_sdk/types/server_message_status_update_ended_reason.rb +10 -1
  143. data/lib/vapi_server_sdk/types/server_message_tool_calls.rb +10 -2
  144. data/lib/vapi_server_sdk/types/server_message_tool_calls_tool_with_tool_call_list_item.rb +116 -77
  145. data/lib/vapi_server_sdk/types/server_message_transcript.rb +13 -2
  146. data/lib/vapi_server_sdk/types/server_message_transcript_type.rb +10 -0
  147. data/lib/vapi_server_sdk/types/server_message_transfer_destination_request.rb +12 -2
  148. data/lib/vapi_server_sdk/types/server_message_transfer_update.rb +11 -1
  149. data/lib/vapi_server_sdk/types/server_message_user_interrupted.rb +12 -2
  150. data/lib/vapi_server_sdk/types/server_message_voice_input.rb +11 -1
  151. data/lib/vapi_server_sdk/types/server_message_voice_request.rb +50 -2
  152. data/lib/vapi_server_sdk/types/stop_speaking_plan.rb +27 -2
  153. data/lib/vapi_server_sdk/types/subscription.rb +44 -14
  154. data/lib/vapi_server_sdk/types/sync_voice_library_dto_providers_item.rb +1 -0
  155. data/lib/vapi_server_sdk/types/test_suite.rb +104 -0
  156. data/lib/vapi_server_sdk/types/test_suite_run.rb +127 -0
  157. data/lib/vapi_server_sdk/types/test_suite_run_scorer_ai.rb +80 -0
  158. data/lib/vapi_server_sdk/types/test_suite_run_scorer_ai_result.rb +9 -0
  159. data/lib/vapi_server_sdk/types/test_suite_run_status.rb +10 -0
  160. data/lib/vapi_server_sdk/types/test_suite_run_test_attempt.rb +75 -0
  161. data/lib/vapi_server_sdk/types/{analytics_query_dto.rb → test_suite_run_test_attempt_call.rb} +19 -17
  162. data/lib/vapi_server_sdk/types/test_suite_run_test_result.rb +75 -0
  163. data/lib/vapi_server_sdk/types/test_suite_runs_paginated_response.rb +75 -0
  164. data/lib/vapi_server_sdk/types/test_suite_test_scorer_ai.rb +65 -0
  165. data/lib/vapi_server_sdk/types/test_suite_test_voice.rb +132 -0
  166. data/lib/vapi_server_sdk/types/test_suite_tests_paginated_response.rb +75 -0
  167. data/lib/vapi_server_sdk/types/test_suites_paginated_response.rb +75 -0
  168. data/lib/vapi_server_sdk/types/text_editor_tool_with_tool_call.rb +175 -0
  169. data/lib/vapi_server_sdk/types/text_editor_tool_with_tool_call_messages_item.rb +121 -0
  170. data/lib/vapi_server_sdk/types/time_range_step.rb +1 -0
  171. data/lib/vapi_server_sdk/types/tool_message_start.rb +18 -2
  172. data/lib/vapi_server_sdk/types/transfer.rb +74 -0
  173. data/lib/vapi_server_sdk/types/transfer_assistant_hook_action.rb +75 -0
  174. data/lib/vapi_server_sdk/types/{buy_phone_number_dto_fallback_destination.rb → transfer_assistant_hook_action_destination.rb} +9 -12
  175. data/lib/vapi_server_sdk/types/transfer_destination_assistant.rb +46 -0
  176. data/lib/vapi_server_sdk/types/transfer_plan.rb +37 -1
  177. data/lib/vapi_server_sdk/types/transfer_plan_mode.rb +4 -0
  178. data/lib/vapi_server_sdk/types/trieve_knowledge_base.rb +35 -44
  179. data/lib/vapi_server_sdk/types/{trieve_knowledge_base_vector_store_create_plan.rb → trieve_knowledge_base_chunk_plan.rb} +17 -11
  180. data/lib/vapi_server_sdk/types/trieve_knowledge_base_create.rb +59 -0
  181. data/lib/vapi_server_sdk/types/trieve_knowledge_base_create_plan.rb +96 -0
  182. data/lib/vapi_server_sdk/types/trieve_knowledge_base_import.rb +55 -0
  183. data/lib/vapi_server_sdk/types/{trieve_knowledge_base_vector_store_search_plan.rb → trieve_knowledge_base_search_plan.rb} +21 -12
  184. data/lib/vapi_server_sdk/types/{trieve_knowledge_base_vector_store_search_plan_search_type.rb → trieve_knowledge_base_search_plan_search_type.rb} +1 -1
  185. data/lib/vapi_server_sdk/types/twilio_phone_number.rb +11 -2
  186. data/lib/vapi_server_sdk/types/twilio_phone_number_status.rb +10 -0
  187. data/lib/vapi_server_sdk/types/update_azure_credential_dto_region.rb +4 -2
  188. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_models_item.rb +1 -0
  189. data/lib/vapi_server_sdk/types/update_azure_open_ai_credential_dto_region.rb +4 -2
  190. data/lib/vapi_server_sdk/types/update_custom_knowledge_base_dto.rb +2 -4
  191. data/lib/vapi_server_sdk/types/update_test_suite_test_voice_dto.rb +90 -0
  192. data/lib/vapi_server_sdk/types/update_trieve_knowledge_base_dto.rb +34 -47
  193. data/lib/vapi_server_sdk/types/update_trieve_knowledge_base_dto_create_plan.rb +97 -0
  194. data/lib/vapi_server_sdk/types/vapi_model.rb +27 -1
  195. data/lib/vapi_server_sdk/types/vapi_phone_number.rb +29 -4
  196. data/lib/vapi_server_sdk/types/vapi_phone_number_status.rb +10 -0
  197. data/lib/vapi_server_sdk/types/vonage_phone_number.rb +11 -2
  198. data/lib/vapi_server_sdk/types/vonage_phone_number_status.rb +10 -0
  199. data/lib/vapi_server_sdk/types/workflow.rb +117 -0
  200. data/lib/vapi_server_sdk/types/workflow_nodes_item.rb +133 -0
  201. data/lib/vapi_server_sdk/types/xai_model.rb +4 -3
  202. data/lib/vapi_server_sdk/types/xai_model_model.rb +10 -0
  203. data/lib/vapi_server_sdk.rb +21 -0
  204. metadata +85 -11
  205. data/lib/vapi_server_sdk/types/buy_phone_number_dto.rb +0 -147
  206. data/lib/vapi_server_sdk/types/org_with_org_user.rb +0 -262
  207. data/lib/vapi_server_sdk/types/org_with_org_user_channel.rb +0 -10
  208. data/lib/vapi_server_sdk/types/org_with_org_user_role.rb +0 -9
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "../../types/create_test_suite_test_voice_dto"
5
+
6
+ module Vapi
7
+ class TestSuiteTests
8
+ class TestSuiteTestControllerCreateRequest
9
+ # @return [Object]
10
+ attr_reader :member
11
+ # @return [String]
12
+ attr_reader :discriminant
13
+
14
+ private_class_method :new
15
+ alias kind_of? is_a?
16
+
17
+ # @param member [Object]
18
+ # @param discriminant [String]
19
+ # @return [Vapi::TestSuiteTests::TestSuiteTestControllerCreateRequest]
20
+ def initialize(member:, discriminant:)
21
+ @member = member
22
+ @discriminant = discriminant
23
+ end
24
+
25
+ # Deserialize a JSON object to an instance of TestSuiteTestControllerCreateRequest
26
+ #
27
+ # @param json_object [String]
28
+ # @return [Vapi::TestSuiteTests::TestSuiteTestControllerCreateRequest]
29
+ def self.from_json(json_object:)
30
+ struct = JSON.parse(json_object, object_class: OpenStruct)
31
+ member = case struct.type
32
+ when "voice"
33
+ end
34
+ Vapi::CreateTestSuiteTestVoiceDto.from_json(json_object: json_object)
35
+ new(member: member, discriminant: struct.type)
36
+ end
37
+
38
+ # For Union Types, to_json functionality is delegated to the wrapped member.
39
+ #
40
+ # @return [String]
41
+ def to_json(*_args)
42
+ case @discriminant
43
+ when "voice"
44
+ { **@member.to_json, type: @discriminant }.to_json
45
+ else
46
+ { "type": @discriminant, value: @member }.to_json
47
+ end
48
+ @member.to_json
49
+ end
50
+
51
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
52
+ # hash and check each fields type against the current object's property
53
+ # definitions.
54
+ #
55
+ # @param obj [Object]
56
+ # @return [Void]
57
+ def self.validate_raw(obj:)
58
+ case obj.type
59
+ when "voice"
60
+ Vapi::CreateTestSuiteTestVoiceDto.validate_raw(obj: obj)
61
+ else
62
+ raise("Passed value matched no type within the union, validation failed.")
63
+ end
64
+ end
65
+
66
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
67
+ #
68
+ # @param obj [Object]
69
+ # @return [Boolean]
70
+ def is_a?(obj)
71
+ @member.is_a?(obj)
72
+ end
73
+
74
+ # @param member [Vapi::CreateTestSuiteTestVoiceDto]
75
+ # @return [Vapi::TestSuiteTests::TestSuiteTestControllerCreateRequest]
76
+ def self.voice(member:)
77
+ new(member: member, discriminant: "voice")
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vapi
4
+ class TestSuiteTests
5
+ class TestSuiteTestControllerFindAllPaginatedRequestSortOrder
6
+ ASC = "ASC"
7
+ DESC = "DESC"
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,82 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "../../types/test_suite_test_voice"
5
+
6
+ module Vapi
7
+ class TestSuiteTests
8
+ class TestSuiteTestControllerRemoveResponse
9
+ # @return [Object]
10
+ attr_reader :member
11
+ # @return [String]
12
+ attr_reader :discriminant
13
+
14
+ private_class_method :new
15
+ alias kind_of? is_a?
16
+
17
+ # @param member [Object]
18
+ # @param discriminant [String]
19
+ # @return [Vapi::TestSuiteTests::TestSuiteTestControllerRemoveResponse]
20
+ def initialize(member:, discriminant:)
21
+ @member = member
22
+ @discriminant = discriminant
23
+ end
24
+
25
+ # Deserialize a JSON object to an instance of
26
+ # TestSuiteTestControllerRemoveResponse
27
+ #
28
+ # @param json_object [String]
29
+ # @return [Vapi::TestSuiteTests::TestSuiteTestControllerRemoveResponse]
30
+ def self.from_json(json_object:)
31
+ struct = JSON.parse(json_object, object_class: OpenStruct)
32
+ member = case struct.type
33
+ when "voice"
34
+ end
35
+ Vapi::TestSuiteTestVoice.from_json(json_object: json_object)
36
+ new(member: member, discriminant: struct.type)
37
+ end
38
+
39
+ # For Union Types, to_json functionality is delegated to the wrapped member.
40
+ #
41
+ # @return [String]
42
+ def to_json(*_args)
43
+ case @discriminant
44
+ when "voice"
45
+ { **@member.to_json, type: @discriminant }.to_json
46
+ else
47
+ { "type": @discriminant, value: @member }.to_json
48
+ end
49
+ @member.to_json
50
+ end
51
+
52
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
53
+ # hash and check each fields type against the current object's property
54
+ # definitions.
55
+ #
56
+ # @param obj [Object]
57
+ # @return [Void]
58
+ def self.validate_raw(obj:)
59
+ case obj.type
60
+ when "voice"
61
+ Vapi::TestSuiteTestVoice.validate_raw(obj: obj)
62
+ else
63
+ raise("Passed value matched no type within the union, validation failed.")
64
+ end
65
+ end
66
+
67
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
68
+ #
69
+ # @param obj [Object]
70
+ # @return [Boolean]
71
+ def is_a?(obj)
72
+ @member.is_a?(obj)
73
+ end
74
+
75
+ # @param member [Vapi::TestSuiteTestVoice]
76
+ # @return [Vapi::TestSuiteTests::TestSuiteTestControllerRemoveResponse]
77
+ def self.voice(member:)
78
+ new(member: member, discriminant: "voice")
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,81 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "json"
4
+ require_relative "../../types/update_test_suite_test_voice_dto"
5
+
6
+ module Vapi
7
+ class TestSuiteTests
8
+ class TestSuiteTestControllerUpdateRequest
9
+ # @return [Object]
10
+ attr_reader :member
11
+ # @return [String]
12
+ attr_reader :discriminant
13
+
14
+ private_class_method :new
15
+ alias kind_of? is_a?
16
+
17
+ # @param member [Object]
18
+ # @param discriminant [String]
19
+ # @return [Vapi::TestSuiteTests::TestSuiteTestControllerUpdateRequest]
20
+ def initialize(member:, discriminant:)
21
+ @member = member
22
+ @discriminant = discriminant
23
+ end
24
+
25
+ # Deserialize a JSON object to an instance of TestSuiteTestControllerUpdateRequest
26
+ #
27
+ # @param json_object [String]
28
+ # @return [Vapi::TestSuiteTests::TestSuiteTestControllerUpdateRequest]
29
+ def self.from_json(json_object:)
30
+ struct = JSON.parse(json_object, object_class: OpenStruct)
31
+ member = case struct.type
32
+ when "voice"
33
+ end
34
+ Vapi::UpdateTestSuiteTestVoiceDto.from_json(json_object: json_object)
35
+ new(member: member, discriminant: struct.type)
36
+ end
37
+
38
+ # For Union Types, to_json functionality is delegated to the wrapped member.
39
+ #
40
+ # @return [String]
41
+ def to_json(*_args)
42
+ case @discriminant
43
+ when "voice"
44
+ { **@member.to_json, type: @discriminant }.to_json
45
+ else
46
+ { "type": @discriminant, value: @member }.to_json
47
+ end
48
+ @member.to_json
49
+ end
50
+
51
+ # Leveraged for Union-type generation, validate_raw attempts to parse the given
52
+ # hash and check each fields type against the current object's property
53
+ # definitions.
54
+ #
55
+ # @param obj [Object]
56
+ # @return [Void]
57
+ def self.validate_raw(obj:)
58
+ case obj.type
59
+ when "voice"
60
+ Vapi::UpdateTestSuiteTestVoiceDto.validate_raw(obj: obj)
61
+ else
62
+ raise("Passed value matched no type within the union, validation failed.")
63
+ end
64
+ end
65
+
66
+ # For Union Types, is_a? functionality is delegated to the wrapped member.
67
+ #
68
+ # @param obj [Object]
69
+ # @return [Boolean]
70
+ def is_a?(obj)
71
+ @member.is_a?(obj)
72
+ end
73
+
74
+ # @param member [Vapi::UpdateTestSuiteTestVoiceDto]
75
+ # @return [Vapi::TestSuiteTests::TestSuiteTestControllerUpdateRequest]
76
+ def self.voice(member:)
77
+ new(member: member, discriminant: "voice")
78
+ end
79
+ end
80
+ end
81
+ end
@@ -0,0 +1,338 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../../requests"
4
+ require_relative "types/test_suite_controller_find_all_paginated_request_sort_order"
5
+ require "date"
6
+ require_relative "../types/test_suites_paginated_response"
7
+ require_relative "../types/test_suite"
8
+ require "async"
9
+
10
+ module Vapi
11
+ class TestSuitesClient
12
+ # @return [Vapi::RequestClient]
13
+ attr_reader :request_client
14
+
15
+ # @param request_client [Vapi::RequestClient]
16
+ # @return [Vapi::TestSuitesClient]
17
+ def initialize(request_client:)
18
+ @request_client = request_client
19
+ end
20
+
21
+ # @param page [Float] This is the page number to return. Defaults to 1.
22
+ # @param sort_order [Vapi::TestSuites::TestSuiteControllerFindAllPaginatedRequestSortOrder] This is the sort order for pagination. Defaults to 'DESC'.
23
+ # @param limit [Float] This is the maximum number of items to return. Defaults to 100.
24
+ # @param created_at_gt [DateTime] This will return items where the createdAt is greater than the specified value.
25
+ # @param created_at_lt [DateTime] This will return items where the createdAt is less than the specified value.
26
+ # @param created_at_ge [DateTime] This will return items where the createdAt is greater than or equal to the
27
+ # specified value.
28
+ # @param created_at_le [DateTime] This will return items where the createdAt is less than or equal to the
29
+ # specified value.
30
+ # @param updated_at_gt [DateTime] This will return items where the updatedAt is greater than the specified value.
31
+ # @param updated_at_lt [DateTime] This will return items where the updatedAt is less than the specified value.
32
+ # @param updated_at_ge [DateTime] This will return items where the updatedAt is greater than or equal to the
33
+ # specified value.
34
+ # @param updated_at_le [DateTime] This will return items where the updatedAt is less than or equal to the
35
+ # specified value.
36
+ # @param request_options [Vapi::RequestOptions]
37
+ # @return [Vapi::TestSuitesPaginatedResponse]
38
+ def test_suite_controller_find_all_paginated(page: nil, sort_order: nil, limit: nil, created_at_gt: nil,
39
+ created_at_lt: nil, created_at_ge: nil, created_at_le: nil, updated_at_gt: nil, updated_at_lt: nil, updated_at_ge: nil, updated_at_le: nil, request_options: nil)
40
+ response = @request_client.conn.get do |req|
41
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
42
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
43
+ req.headers = {
44
+ **(req.headers || {}),
45
+ **@request_client.get_headers,
46
+ **(request_options&.additional_headers || {})
47
+ }.compact
48
+ req.params = {
49
+ **(request_options&.additional_query_parameters || {}),
50
+ "page": page,
51
+ "sortOrder": sort_order,
52
+ "limit": limit,
53
+ "createdAtGt": created_at_gt,
54
+ "createdAtLt": created_at_lt,
55
+ "createdAtGe": created_at_ge,
56
+ "createdAtLe": created_at_le,
57
+ "updatedAtGt": updated_at_gt,
58
+ "updatedAtLt": updated_at_lt,
59
+ "updatedAtGe": updated_at_ge,
60
+ "updatedAtLe": updated_at_le
61
+ }.compact
62
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
63
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
64
+ end
65
+ req.url "#{@request_client.get_url(request_options: request_options)}/test-suite"
66
+ end
67
+ Vapi::TestSuitesPaginatedResponse.from_json(json_object: response.body)
68
+ end
69
+
70
+ # @param name [String] This is the name of the test suite.
71
+ # @param phone_number_id [String] This is the phone number ID associated with this test suite.
72
+ # @param request_options [Vapi::RequestOptions]
73
+ # @return [Vapi::TestSuite]
74
+ def test_suite_controller_create(name: nil, phone_number_id: nil, request_options: nil)
75
+ response = @request_client.conn.post do |req|
76
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
77
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
78
+ req.headers = {
79
+ **(req.headers || {}),
80
+ **@request_client.get_headers,
81
+ **(request_options&.additional_headers || {})
82
+ }.compact
83
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
84
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
85
+ end
86
+ req.body = {
87
+ **(request_options&.additional_body_parameters || {}),
88
+ name: name,
89
+ phoneNumberId: phone_number_id
90
+ }.compact
91
+ req.url "#{@request_client.get_url(request_options: request_options)}/test-suite"
92
+ end
93
+ Vapi::TestSuite.from_json(json_object: response.body)
94
+ end
95
+
96
+ # @param id [String]
97
+ # @param request_options [Vapi::RequestOptions]
98
+ # @return [Vapi::TestSuite]
99
+ def test_suite_controller_find_one(id:, request_options: nil)
100
+ response = @request_client.conn.get do |req|
101
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
102
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
103
+ req.headers = {
104
+ **(req.headers || {}),
105
+ **@request_client.get_headers,
106
+ **(request_options&.additional_headers || {})
107
+ }.compact
108
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
109
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
110
+ end
111
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
112
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
113
+ end
114
+ req.url "#{@request_client.get_url(request_options: request_options)}/test-suite/#{id}"
115
+ end
116
+ Vapi::TestSuite.from_json(json_object: response.body)
117
+ end
118
+
119
+ # @param id [String]
120
+ # @param request_options [Vapi::RequestOptions]
121
+ # @return [Vapi::TestSuite]
122
+ def test_suite_controller_remove(id:, request_options: nil)
123
+ response = @request_client.conn.delete do |req|
124
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
125
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
126
+ req.headers = {
127
+ **(req.headers || {}),
128
+ **@request_client.get_headers,
129
+ **(request_options&.additional_headers || {})
130
+ }.compact
131
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
132
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
133
+ end
134
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
135
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
136
+ end
137
+ req.url "#{@request_client.get_url(request_options: request_options)}/test-suite/#{id}"
138
+ end
139
+ Vapi::TestSuite.from_json(json_object: response.body)
140
+ end
141
+
142
+ # @param id [String]
143
+ # @param name [String] This is the name of the test suite.
144
+ # @param phone_number_id [String] This is the phone number ID associated with this test suite.
145
+ # @param request_options [Vapi::RequestOptions]
146
+ # @return [Vapi::TestSuite]
147
+ def test_suite_controller_update(id:, name: nil, phone_number_id: nil, request_options: nil)
148
+ response = @request_client.conn.patch do |req|
149
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
150
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
151
+ req.headers = {
152
+ **(req.headers || {}),
153
+ **@request_client.get_headers,
154
+ **(request_options&.additional_headers || {})
155
+ }.compact
156
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
157
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
158
+ end
159
+ req.body = {
160
+ **(request_options&.additional_body_parameters || {}),
161
+ name: name,
162
+ phoneNumberId: phone_number_id
163
+ }.compact
164
+ req.url "#{@request_client.get_url(request_options: request_options)}/test-suite/#{id}"
165
+ end
166
+ Vapi::TestSuite.from_json(json_object: response.body)
167
+ end
168
+ end
169
+
170
+ class AsyncTestSuitesClient
171
+ # @return [Vapi::AsyncRequestClient]
172
+ attr_reader :request_client
173
+
174
+ # @param request_client [Vapi::AsyncRequestClient]
175
+ # @return [Vapi::AsyncTestSuitesClient]
176
+ def initialize(request_client:)
177
+ @request_client = request_client
178
+ end
179
+
180
+ # @param page [Float] This is the page number to return. Defaults to 1.
181
+ # @param sort_order [Vapi::TestSuites::TestSuiteControllerFindAllPaginatedRequestSortOrder] This is the sort order for pagination. Defaults to 'DESC'.
182
+ # @param limit [Float] This is the maximum number of items to return. Defaults to 100.
183
+ # @param created_at_gt [DateTime] This will return items where the createdAt is greater than the specified value.
184
+ # @param created_at_lt [DateTime] This will return items where the createdAt is less than the specified value.
185
+ # @param created_at_ge [DateTime] This will return items where the createdAt is greater than or equal to the
186
+ # specified value.
187
+ # @param created_at_le [DateTime] This will return items where the createdAt is less than or equal to the
188
+ # specified value.
189
+ # @param updated_at_gt [DateTime] This will return items where the updatedAt is greater than the specified value.
190
+ # @param updated_at_lt [DateTime] This will return items where the updatedAt is less than the specified value.
191
+ # @param updated_at_ge [DateTime] This will return items where the updatedAt is greater than or equal to the
192
+ # specified value.
193
+ # @param updated_at_le [DateTime] This will return items where the updatedAt is less than or equal to the
194
+ # specified value.
195
+ # @param request_options [Vapi::RequestOptions]
196
+ # @return [Vapi::TestSuitesPaginatedResponse]
197
+ def test_suite_controller_find_all_paginated(page: nil, sort_order: nil, limit: nil, created_at_gt: nil,
198
+ created_at_lt: nil, created_at_ge: nil, created_at_le: nil, updated_at_gt: nil, updated_at_lt: nil, updated_at_ge: nil, updated_at_le: nil, request_options: nil)
199
+ Async do
200
+ response = @request_client.conn.get do |req|
201
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
202
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
203
+ req.headers = {
204
+ **(req.headers || {}),
205
+ **@request_client.get_headers,
206
+ **(request_options&.additional_headers || {})
207
+ }.compact
208
+ req.params = {
209
+ **(request_options&.additional_query_parameters || {}),
210
+ "page": page,
211
+ "sortOrder": sort_order,
212
+ "limit": limit,
213
+ "createdAtGt": created_at_gt,
214
+ "createdAtLt": created_at_lt,
215
+ "createdAtGe": created_at_ge,
216
+ "createdAtLe": created_at_le,
217
+ "updatedAtGt": updated_at_gt,
218
+ "updatedAtLt": updated_at_lt,
219
+ "updatedAtGe": updated_at_ge,
220
+ "updatedAtLe": updated_at_le
221
+ }.compact
222
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
223
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
224
+ end
225
+ req.url "#{@request_client.get_url(request_options: request_options)}/test-suite"
226
+ end
227
+ Vapi::TestSuitesPaginatedResponse.from_json(json_object: response.body)
228
+ end
229
+ end
230
+
231
+ # @param name [String] This is the name of the test suite.
232
+ # @param phone_number_id [String] This is the phone number ID associated with this test suite.
233
+ # @param request_options [Vapi::RequestOptions]
234
+ # @return [Vapi::TestSuite]
235
+ def test_suite_controller_create(name: nil, phone_number_id: nil, request_options: nil)
236
+ Async do
237
+ response = @request_client.conn.post do |req|
238
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
239
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
240
+ req.headers = {
241
+ **(req.headers || {}),
242
+ **@request_client.get_headers,
243
+ **(request_options&.additional_headers || {})
244
+ }.compact
245
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
246
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
247
+ end
248
+ req.body = {
249
+ **(request_options&.additional_body_parameters || {}),
250
+ name: name,
251
+ phoneNumberId: phone_number_id
252
+ }.compact
253
+ req.url "#{@request_client.get_url(request_options: request_options)}/test-suite"
254
+ end
255
+ Vapi::TestSuite.from_json(json_object: response.body)
256
+ end
257
+ end
258
+
259
+ # @param id [String]
260
+ # @param request_options [Vapi::RequestOptions]
261
+ # @return [Vapi::TestSuite]
262
+ def test_suite_controller_find_one(id:, request_options: nil)
263
+ Async do
264
+ response = @request_client.conn.get do |req|
265
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
266
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
267
+ req.headers = {
268
+ **(req.headers || {}),
269
+ **@request_client.get_headers,
270
+ **(request_options&.additional_headers || {})
271
+ }.compact
272
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
273
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
274
+ end
275
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
276
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
277
+ end
278
+ req.url "#{@request_client.get_url(request_options: request_options)}/test-suite/#{id}"
279
+ end
280
+ Vapi::TestSuite.from_json(json_object: response.body)
281
+ end
282
+ end
283
+
284
+ # @param id [String]
285
+ # @param request_options [Vapi::RequestOptions]
286
+ # @return [Vapi::TestSuite]
287
+ def test_suite_controller_remove(id:, request_options: nil)
288
+ Async do
289
+ response = @request_client.conn.delete do |req|
290
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
291
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
292
+ req.headers = {
293
+ **(req.headers || {}),
294
+ **@request_client.get_headers,
295
+ **(request_options&.additional_headers || {})
296
+ }.compact
297
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
298
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
299
+ end
300
+ unless request_options.nil? || request_options&.additional_body_parameters.nil?
301
+ req.body = { **(request_options&.additional_body_parameters || {}) }.compact
302
+ end
303
+ req.url "#{@request_client.get_url(request_options: request_options)}/test-suite/#{id}"
304
+ end
305
+ Vapi::TestSuite.from_json(json_object: response.body)
306
+ end
307
+ end
308
+
309
+ # @param id [String]
310
+ # @param name [String] This is the name of the test suite.
311
+ # @param phone_number_id [String] This is the phone number ID associated with this test suite.
312
+ # @param request_options [Vapi::RequestOptions]
313
+ # @return [Vapi::TestSuite]
314
+ def test_suite_controller_update(id:, name: nil, phone_number_id: nil, request_options: nil)
315
+ Async do
316
+ response = @request_client.conn.patch do |req|
317
+ req.options.timeout = request_options.timeout_in_seconds unless request_options&.timeout_in_seconds.nil?
318
+ req.headers["Authorization"] = request_options.token unless request_options&.token.nil?
319
+ req.headers = {
320
+ **(req.headers || {}),
321
+ **@request_client.get_headers,
322
+ **(request_options&.additional_headers || {})
323
+ }.compact
324
+ unless request_options.nil? || request_options&.additional_query_parameters.nil?
325
+ req.params = { **(request_options&.additional_query_parameters || {}) }.compact
326
+ end
327
+ req.body = {
328
+ **(request_options&.additional_body_parameters || {}),
329
+ name: name,
330
+ phoneNumberId: phone_number_id
331
+ }.compact
332
+ req.url "#{@request_client.get_url(request_options: request_options)}/test-suite/#{id}"
333
+ end
334
+ Vapi::TestSuite.from_json(json_object: response.body)
335
+ end
336
+ end
337
+ end
338
+ end
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Vapi
4
+ class TestSuites
5
+ class TestSuiteControllerFindAllPaginatedRequestSortOrder
6
+ ASC = "ASC"
7
+ DESC = "DESC"
8
+ end
9
+ end
10
+ end