quantcdn-client 4.8.0__py3-none-any.whl

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 (323) hide show
  1. quantcdn/__init__.py +341 -0
  2. quantcdn/__version__.py +2 -0
  3. quantcdn/api/__init__.py +32 -0
  4. quantcdn/api/ai_agents_api.py +1831 -0
  5. quantcdn/api/ai_custom_tools_api.py +894 -0
  6. quantcdn/api/ai_inference_api.py +1224 -0
  7. quantcdn/api/ai_models_api.py +600 -0
  8. quantcdn/api/ai_monitoring_api.py +317 -0
  9. quantcdn/api/ai_sessions_api.py +1875 -0
  10. quantcdn/api/ai_tools_api.py +1165 -0
  11. quantcdn/api/ai_vector_database_api.py +1816 -0
  12. quantcdn/api/applications_api.py +1394 -0
  13. quantcdn/api/backup_management_api.py +1440 -0
  14. quantcdn/api/commands_api.py +901 -0
  15. quantcdn/api/compose_api.py +968 -0
  16. quantcdn/api/containers_api.py +649 -0
  17. quantcdn/api/crawler_schedules_api.py +1611 -0
  18. quantcdn/api/crawlers_api.py +2479 -0
  19. quantcdn/api/cron_api.py +2212 -0
  20. quantcdn/api/domains_api.py +1508 -0
  21. quantcdn/api/environments_api.py +3256 -0
  22. quantcdn/api/headers_api.py +932 -0
  23. quantcdn/api/kv_api.py +2868 -0
  24. quantcdn/api/organizations_api.py +556 -0
  25. quantcdn/api/projects_api.py +1478 -0
  26. quantcdn/api/purge_api.py +345 -0
  27. quantcdn/api/rules_api.py +13520 -0
  28. quantcdn/api/scaling_policy_api.py +924 -0
  29. quantcdn/api/ssh_access_api.py +335 -0
  30. quantcdn/api/variables_api.py +1255 -0
  31. quantcdn/api/volumes_api.py +1254 -0
  32. quantcdn/api_client.py +797 -0
  33. quantcdn/api_response.py +21 -0
  34. quantcdn/configuration.py +586 -0
  35. quantcdn/exceptions.py +216 -0
  36. quantcdn/models/__init__.py +297 -0
  37. quantcdn/models/application.py +200 -0
  38. quantcdn/models/application_database.py +103 -0
  39. quantcdn/models/application_deployment_information_inner.py +96 -0
  40. quantcdn/models/application_environments_inner.py +93 -0
  41. quantcdn/models/application_filesystem.py +89 -0
  42. quantcdn/models/application_image_reference.py +99 -0
  43. quantcdn/models/bulk_set_environment_variables_request.py +95 -0
  44. quantcdn/models/bulk_set_environment_variables_request_environment_inner.py +89 -0
  45. quantcdn/models/chat_inference200_response.py +113 -0
  46. quantcdn/models/chat_inference200_response_response.py +105 -0
  47. quantcdn/models/chat_inference200_response_response_tool_use.py +141 -0
  48. quantcdn/models/chat_inference200_response_response_tool_use_one_of.py +101 -0
  49. quantcdn/models/chat_inference200_response_response_tool_use_one_of1_inner.py +97 -0
  50. quantcdn/models/chat_inference200_response_response_tool_use_one_of_result.py +89 -0
  51. quantcdn/models/chat_inference200_response_usage.py +91 -0
  52. quantcdn/models/chat_inference_request.py +122 -0
  53. quantcdn/models/chat_inference_request_messages_inner.py +100 -0
  54. quantcdn/models/chat_inference_request_messages_inner_content.py +144 -0
  55. quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner.py +165 -0
  56. quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of.py +87 -0
  57. quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of1.py +91 -0
  58. quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of1_image.py +100 -0
  59. quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of1_image_source.py +87 -0
  60. quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of2.py +91 -0
  61. quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of2_video.py +100 -0
  62. quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of2_video_source.py +87 -0
  63. quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of3.py +91 -0
  64. quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of3_document.py +102 -0
  65. quantcdn/models/chat_inference_request_messages_inner_content_one_of_inner_one_of3_document_source.py +87 -0
  66. quantcdn/models/chat_inference_request_response_format.py +99 -0
  67. quantcdn/models/chat_inference_request_tool_config.py +99 -0
  68. quantcdn/models/chat_inference_request_tool_config_tools_inner.py +91 -0
  69. quantcdn/models/chat_inference_request_tool_config_tools_inner_tool_spec.py +95 -0
  70. quantcdn/models/chat_inference_request_tool_config_tools_inner_tool_spec_input_schema.py +87 -0
  71. quantcdn/models/chat_inference_stream_request.py +120 -0
  72. quantcdn/models/chat_inference_stream_request_messages_inner.py +100 -0
  73. quantcdn/models/chat_inference_stream_request_messages_inner_content.py +143 -0
  74. quantcdn/models/chat_with_ai_agent200_response.py +93 -0
  75. quantcdn/models/chat_with_ai_agent200_response_response.py +97 -0
  76. quantcdn/models/chat_with_ai_agent200_response_response_usage.py +89 -0
  77. quantcdn/models/chat_with_ai_agent_request.py +93 -0
  78. quantcdn/models/command.py +105 -0
  79. quantcdn/models/compose.py +125 -0
  80. quantcdn/models/container.py +260 -0
  81. quantcdn/models/container_depends_on_inner.py +99 -0
  82. quantcdn/models/container_environment_inner.py +89 -0
  83. quantcdn/models/container_health_check.py +101 -0
  84. quantcdn/models/container_image_reference.py +96 -0
  85. quantcdn/models/container_mount_points_inner.py +91 -0
  86. quantcdn/models/container_origin_protection_config.py +94 -0
  87. quantcdn/models/container_secrets_inner.py +89 -0
  88. quantcdn/models/crawlers_run200_response.py +87 -0
  89. quantcdn/models/crawlers_run_request.py +87 -0
  90. quantcdn/models/create_ai_agent201_response.py +91 -0
  91. quantcdn/models/create_ai_agent_request.py +106 -0
  92. quantcdn/models/create_ai_session201_response.py +104 -0
  93. quantcdn/models/create_ai_session_request.py +104 -0
  94. quantcdn/models/create_ai_session_request_initial_messages_inner.py +99 -0
  95. quantcdn/models/create_application403_response.py +89 -0
  96. quantcdn/models/create_application_request.py +144 -0
  97. quantcdn/models/create_application_request_database.py +103 -0
  98. quantcdn/models/create_application_request_environment_inner.py +89 -0
  99. quantcdn/models/create_application_request_filesystem.py +89 -0
  100. quantcdn/models/create_backup202_response.py +91 -0
  101. quantcdn/models/create_backup_request.py +87 -0
  102. quantcdn/models/create_command_request.py +87 -0
  103. quantcdn/models/create_cron_job_request.py +112 -0
  104. quantcdn/models/create_custom_tool201_response.py +91 -0
  105. quantcdn/models/create_custom_tool_request.py +98 -0
  106. quantcdn/models/create_environment403_response.py +89 -0
  107. quantcdn/models/create_environment_request.py +130 -0
  108. quantcdn/models/create_environment_request_environment_inner.py +89 -0
  109. quantcdn/models/create_vector_collection201_response.py +95 -0
  110. quantcdn/models/create_vector_collection201_response_collection.py +95 -0
  111. quantcdn/models/create_vector_collection_request.py +93 -0
  112. quantcdn/models/create_volume_request.py +101 -0
  113. quantcdn/models/cron.py +91 -0
  114. quantcdn/models/cron_run.py +156 -0
  115. quantcdn/models/delete_ai_agent200_response.py +89 -0
  116. quantcdn/models/delete_ai_session200_response.py +87 -0
  117. quantcdn/models/delete_backup200_response.py +89 -0
  118. quantcdn/models/delete_custom_tool200_response.py +89 -0
  119. quantcdn/models/delete_vector_collection200_response.py +89 -0
  120. quantcdn/models/download_backup200_response.py +92 -0
  121. quantcdn/models/embeddings200_response.py +101 -0
  122. quantcdn/models/embeddings200_response_embeddings.py +143 -0
  123. quantcdn/models/embeddings200_response_usage.py +89 -0
  124. quantcdn/models/embeddings_request.py +107 -0
  125. quantcdn/models/embeddings_request_input.py +143 -0
  126. quantcdn/models/environment.py +108 -0
  127. quantcdn/models/environment_response.py +171 -0
  128. quantcdn/models/environment_summary.py +109 -0
  129. quantcdn/models/extend_ai_session200_response.py +92 -0
  130. quantcdn/models/extend_ai_session_request.py +88 -0
  131. quantcdn/models/get_ai_agent200_response.py +91 -0
  132. quantcdn/models/get_ai_agent200_response_agent.py +112 -0
  133. quantcdn/models/get_ai_model200_response.py +116 -0
  134. quantcdn/models/get_ai_model200_response_capabilities.py +95 -0
  135. quantcdn/models/get_ai_model200_response_pricing.py +91 -0
  136. quantcdn/models/get_ai_model404_response.py +89 -0
  137. quantcdn/models/get_ai_session200_response.py +96 -0
  138. quantcdn/models/get_ai_tool_execution_status200_response.py +107 -0
  139. quantcdn/models/get_ai_tool_execution_status200_response_result.py +89 -0
  140. quantcdn/models/get_ai_tool_execution_status404_response.py +89 -0
  141. quantcdn/models/get_ai_usage_stats200_response.py +104 -0
  142. quantcdn/models/get_ai_usage_stats200_response_by_model_value.py +89 -0
  143. quantcdn/models/get_ecr_login_credentials200_response.py +93 -0
  144. quantcdn/models/get_environment_logs200_response.py +102 -0
  145. quantcdn/models/get_environment_logs200_response_log_events_inner.py +89 -0
  146. quantcdn/models/get_ssh_access_credentials200_response.py +107 -0
  147. quantcdn/models/get_ssh_access_credentials200_response_credentials.py +94 -0
  148. quantcdn/models/get_vector_collection200_response.py +91 -0
  149. quantcdn/models/get_vector_collection200_response_collection.py +102 -0
  150. quantcdn/models/image_generation200_response.py +91 -0
  151. quantcdn/models/image_generation_request.py +152 -0
  152. quantcdn/models/image_generation_request_background_removal_params.py +87 -0
  153. quantcdn/models/image_generation_request_color_guided_generation_params.py +94 -0
  154. quantcdn/models/image_generation_request_image_generation_config.py +108 -0
  155. quantcdn/models/image_generation_request_image_variation_params.py +94 -0
  156. quantcdn/models/image_generation_request_in_painting_params.py +96 -0
  157. quantcdn/models/image_generation_request_out_painting_params.py +107 -0
  158. quantcdn/models/image_generation_request_text_to_image_params.py +118 -0
  159. quantcdn/models/kv_items_create200_response.py +91 -0
  160. quantcdn/models/kv_items_delete200_response.py +89 -0
  161. quantcdn/models/kv_items_show200_response.py +93 -0
  162. quantcdn/models/kv_items_show200_response_value.py +143 -0
  163. quantcdn/models/list_ai_agents200_response.py +95 -0
  164. quantcdn/models/list_ai_agents200_response_agents_inner.py +106 -0
  165. quantcdn/models/list_ai_models200_response.py +97 -0
  166. quantcdn/models/list_ai_models200_response_models_inner.py +97 -0
  167. quantcdn/models/list_ai_models200_response_models_inner_capabilities.py +95 -0
  168. quantcdn/models/list_ai_sessions200_response_inner.py +96 -0
  169. quantcdn/models/list_ai_tool_executions200_response.py +101 -0
  170. quantcdn/models/list_ai_tool_executions200_response_executions_inner.py +96 -0
  171. quantcdn/models/list_ai_tool_names200_response.py +89 -0
  172. quantcdn/models/list_ai_tools200_response.py +97 -0
  173. quantcdn/models/list_ai_tools200_response_tools_inner.py +91 -0
  174. quantcdn/models/list_ai_tools200_response_tools_inner_tool_spec.py +95 -0
  175. quantcdn/models/list_ai_tools200_response_tools_inner_tool_spec_input_schema.py +87 -0
  176. quantcdn/models/list_backups200_response.py +106 -0
  177. quantcdn/models/list_backups200_response_backups_inner.py +112 -0
  178. quantcdn/models/list_backups422_response.py +87 -0
  179. quantcdn/models/list_custom_tools200_response.py +97 -0
  180. quantcdn/models/list_custom_tools200_response_tools_inner.py +98 -0
  181. quantcdn/models/list_vector_collections200_response.py +97 -0
  182. quantcdn/models/list_vector_collections200_response_collections_inner.py +98 -0
  183. quantcdn/models/organizations_list200_response_inner.py +89 -0
  184. quantcdn/models/patch_environment_compose202_response.py +107 -0
  185. quantcdn/models/patch_environment_compose202_response_spot_configuration.py +89 -0
  186. quantcdn/models/patch_environment_compose400_response.py +89 -0
  187. quantcdn/models/patch_environment_compose_request.py +153 -0
  188. quantcdn/models/patch_environment_compose_request_spot_configuration.py +97 -0
  189. quantcdn/models/purge_create_request.py +93 -0
  190. quantcdn/models/query_vector_collection200_response.py +101 -0
  191. quantcdn/models/query_vector_collection200_response_results_inner.py +95 -0
  192. quantcdn/models/query_vector_collection200_response_results_inner_metadata.py +91 -0
  193. quantcdn/models/query_vector_collection_request.py +90 -0
  194. quantcdn/models/scaling_policy.py +103 -0
  195. quantcdn/models/spot_configuration.py +94 -0
  196. quantcdn/models/sync_operation.py +99 -0
  197. quantcdn/models/sync_to_environment_request.py +87 -0
  198. quantcdn/models/update_ai_agent200_response.py +91 -0
  199. quantcdn/models/update_ai_agent_request.py +104 -0
  200. quantcdn/models/update_ai_session200_response.py +96 -0
  201. quantcdn/models/update_ai_session_request.py +111 -0
  202. quantcdn/models/update_ai_session_request_new_messages_inner.py +99 -0
  203. quantcdn/models/update_cron_job_request.py +120 -0
  204. quantcdn/models/update_environment_request.py +106 -0
  205. quantcdn/models/update_environment_state_request.py +89 -0
  206. quantcdn/models/update_environment_variable_request.py +87 -0
  207. quantcdn/models/upload_vector_documents200_response.py +93 -0
  208. quantcdn/models/upload_vector_documents_request.py +95 -0
  209. quantcdn/models/upload_vector_documents_request_documents_inner.py +93 -0
  210. quantcdn/models/upload_vector_documents_request_documents_inner_metadata.py +93 -0
  211. quantcdn/models/v1_content_item.py +97 -0
  212. quantcdn/models/v1_content_list_response.py +101 -0
  213. quantcdn/models/v1_content_request.py +110 -0
  214. quantcdn/models/v1_delete_response.py +99 -0
  215. quantcdn/models/v1_error.py +89 -0
  216. quantcdn/models/v1_form_submission_item.py +97 -0
  217. quantcdn/models/v1_form_submission_list_response.py +101 -0
  218. quantcdn/models/v1_get_metric_series_response.py +93 -0
  219. quantcdn/models/v1_get_metric_series_response_data.py +162 -0
  220. quantcdn/models/v1_get_metrics_response.py +93 -0
  221. quantcdn/models/v1_get_metrics_response_data.py +163 -0
  222. quantcdn/models/v1_global_meta_response.py +101 -0
  223. quantcdn/models/v1_global_meta_response_global_meta.py +87 -0
  224. quantcdn/models/v1_info.py +99 -0
  225. quantcdn/models/v1_meta.py +113 -0
  226. quantcdn/models/v1_metric_day_stats.py +93 -0
  227. quantcdn/models/v1_metric_minute_stats.py +93 -0
  228. quantcdn/models/v1_metric_month_stats.py +93 -0
  229. quantcdn/models/v1_ping_response.py +89 -0
  230. quantcdn/models/v1_proxy_item.py +95 -0
  231. quantcdn/models/v1_proxy_list_response.py +101 -0
  232. quantcdn/models/v1_redirect_item.py +97 -0
  233. quantcdn/models/v1_redirect_list_response.py +101 -0
  234. quantcdn/models/v1_redirect_request.py +111 -0
  235. quantcdn/models/v1_redirect_response.py +121 -0
  236. quantcdn/models/v1_revision.py +115 -0
  237. quantcdn/models/v1_revisions_response.py +107 -0
  238. quantcdn/models/v1_search_hit.py +97 -0
  239. quantcdn/models/v1_search_items_response.py +97 -0
  240. quantcdn/models/v1_search_mutation_response.py +91 -0
  241. quantcdn/models/v1_search_record.py +93 -0
  242. quantcdn/models/v1_search_response.py +89 -0
  243. quantcdn/models/v1_series_point_day.py +89 -0
  244. quantcdn/models/v1_series_point_month.py +89 -0
  245. quantcdn/models/v1_transition.py +99 -0
  246. quantcdn/models/v1_upload_response.py +89 -0
  247. quantcdn/models/v1_url_meta_request.py +87 -0
  248. quantcdn/models/v1_url_meta_response.py +91 -0
  249. quantcdn/models/v1_waf_log_item.py +107 -0
  250. quantcdn/models/v1_waf_log_list_response.py +101 -0
  251. quantcdn/models/v2_crawler.py +165 -0
  252. quantcdn/models/v2_crawler_assets.py +97 -0
  253. quantcdn/models/v2_crawler_assets_network_intercept.py +91 -0
  254. quantcdn/models/v2_crawler_assets_parser.py +87 -0
  255. quantcdn/models/v2_crawler_request.py +142 -0
  256. quantcdn/models/v2_crawler_run.py +114 -0
  257. quantcdn/models/v2_crawler_schedule.py +104 -0
  258. quantcdn/models/v2_crawler_schedule_request.py +89 -0
  259. quantcdn/models/v2_crawler_sitemap_inner.py +89 -0
  260. quantcdn/models/v2_custom_header_request.py +87 -0
  261. quantcdn/models/v2_domain.py +121 -0
  262. quantcdn/models/v2_domain_dns_go_live_records_inner.py +98 -0
  263. quantcdn/models/v2_domain_dns_validation_records_inner.py +91 -0
  264. quantcdn/models/v2_domain_request.py +87 -0
  265. quantcdn/models/v2_error.py +89 -0
  266. quantcdn/models/v2_organization.py +100 -0
  267. quantcdn/models/v2_organization_request.py +89 -0
  268. quantcdn/models/v2_project.py +95 -0
  269. quantcdn/models/v2_project_request.py +101 -0
  270. quantcdn/models/v2_rule.py +121 -0
  271. quantcdn/models/v2_rule_auth.py +127 -0
  272. quantcdn/models/v2_rule_auth_action.py +89 -0
  273. quantcdn/models/v2_rule_auth_request.py +119 -0
  274. quantcdn/models/v2_rule_bot_challenge.py +127 -0
  275. quantcdn/models/v2_rule_bot_challenge_action.py +91 -0
  276. quantcdn/models/v2_rule_bot_challenge_request.py +121 -0
  277. quantcdn/models/v2_rule_content_filter.py +127 -0
  278. quantcdn/models/v2_rule_content_filter_action.py +87 -0
  279. quantcdn/models/v2_rule_content_filter_request.py +117 -0
  280. quantcdn/models/v2_rule_custom_response.py +127 -0
  281. quantcdn/models/v2_rule_custom_response_action.py +89 -0
  282. quantcdn/models/v2_rule_custom_response_request.py +123 -0
  283. quantcdn/models/v2_rule_function.py +127 -0
  284. quantcdn/models/v2_rule_function_action.py +87 -0
  285. quantcdn/models/v2_rule_function_request.py +117 -0
  286. quantcdn/models/v2_rule_header.py +127 -0
  287. quantcdn/models/v2_rule_header_action.py +87 -0
  288. quantcdn/models/v2_rule_header_request.py +117 -0
  289. quantcdn/models/v2_rule_proxy.py +127 -0
  290. quantcdn/models/v2_rule_proxy_action.py +195 -0
  291. quantcdn/models/v2_rule_proxy_action_notify_config.py +87 -0
  292. quantcdn/models/v2_rule_proxy_action_quant_cloud_selection.py +93 -0
  293. quantcdn/models/v2_rule_proxy_request.py +189 -0
  294. quantcdn/models/v2_rule_redirect.py +127 -0
  295. quantcdn/models/v2_rule_redirect_action.py +89 -0
  296. quantcdn/models/v2_rule_redirect_request.py +119 -0
  297. quantcdn/models/v2_rule_request.py +115 -0
  298. quantcdn/models/v2_rule_serve_static.py +127 -0
  299. quantcdn/models/v2_rule_serve_static_action.py +87 -0
  300. quantcdn/models/v2_rule_serve_static_request.py +117 -0
  301. quantcdn/models/v2_secret_store.py +89 -0
  302. quantcdn/models/v2_secret_store_request.py +87 -0
  303. quantcdn/models/v2_store.py +89 -0
  304. quantcdn/models/v2_store_item.py +89 -0
  305. quantcdn/models/v2_store_item_request.py +91 -0
  306. quantcdn/models/v2_store_item_update_request.py +89 -0
  307. quantcdn/models/v2_store_items_list_response.py +94 -0
  308. quantcdn/models/v2_store_request.py +87 -0
  309. quantcdn/models/validate_compose200_response.py +96 -0
  310. quantcdn/models/validate_compose422_response.py +87 -0
  311. quantcdn/models/validate_compose_request.py +102 -0
  312. quantcdn/models/variable.py +89 -0
  313. quantcdn/models/volume.py +101 -0
  314. quantcdn/models/waf_config.py +140 -0
  315. quantcdn/models/waf_config_block_lists.py +93 -0
  316. quantcdn/models/waf_config_httpbl.py +97 -0
  317. quantcdn/models/waf_config_thresholds_inner.py +131 -0
  318. quantcdn/py.typed +0 -0
  319. quantcdn/rest.py +258 -0
  320. quantcdn_client-4.8.0.dist-info/METADATA +23 -0
  321. quantcdn_client-4.8.0.dist-info/RECORD +323 -0
  322. quantcdn_client-4.8.0.dist-info/WHEEL +5 -0
  323. quantcdn_client-4.8.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,1875 @@
1
+ # coding: utf-8
2
+
3
+ """
4
+ QuantCDN API
5
+
6
+ Unified API for QuantCDN Admin and QuantCloud Platform services
7
+
8
+ The version of the OpenAPI document: 4.8.0
9
+ Generated by OpenAPI Generator (https://openapi-generator.tech)
10
+
11
+ Do not edit the class manually.
12
+ """ # noqa: E501
13
+
14
+ import warnings
15
+ from pydantic import validate_call, Field, StrictFloat, StrictStr, StrictInt
16
+ from typing import Any, Dict, List, Optional, Tuple, Union
17
+ from typing_extensions import Annotated
18
+
19
+ from pydantic import Field, StrictInt, StrictStr
20
+ from typing import List, Optional
21
+ from typing_extensions import Annotated
22
+ from quantcdn.models.create_ai_session201_response import CreateAISession201Response
23
+ from quantcdn.models.create_ai_session_request import CreateAISessionRequest
24
+ from quantcdn.models.delete_ai_session200_response import DeleteAISession200Response
25
+ from quantcdn.models.extend_ai_session200_response import ExtendAISession200Response
26
+ from quantcdn.models.extend_ai_session_request import ExtendAISessionRequest
27
+ from quantcdn.models.get_ai_session200_response import GetAISession200Response
28
+ from quantcdn.models.list_ai_sessions200_response_inner import ListAISessions200ResponseInner
29
+ from quantcdn.models.update_ai_session200_response import UpdateAISession200Response
30
+ from quantcdn.models.update_ai_session_request import UpdateAISessionRequest
31
+
32
+ from quantcdn.api_client import ApiClient, RequestSerialized
33
+ from quantcdn.api_response import ApiResponse
34
+ from quantcdn.rest import RESTResponseType
35
+
36
+
37
+ class AISessionsApi:
38
+ """NOTE: This class is auto generated by OpenAPI Generator
39
+ Ref: https://openapi-generator.tech
40
+
41
+ Do not edit the class manually.
42
+ """
43
+
44
+ def __init__(self, api_client=None) -> None:
45
+ if api_client is None:
46
+ api_client = ApiClient.get_default()
47
+ self.api_client = api_client
48
+
49
+
50
+ @validate_call
51
+ def create_ai_session(
52
+ self,
53
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
54
+ create_ai_session_request: CreateAISessionRequest,
55
+ _request_timeout: Union[
56
+ None,
57
+ Annotated[StrictFloat, Field(gt=0)],
58
+ Tuple[
59
+ Annotated[StrictFloat, Field(gt=0)],
60
+ Annotated[StrictFloat, Field(gt=0)]
61
+ ]
62
+ ] = None,
63
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
64
+ _content_type: Optional[StrictStr] = None,
65
+ _headers: Optional[Dict[StrictStr, Any]] = None,
66
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
67
+ ) -> CreateAISession201Response:
68
+ """Create a new chat session with multi-tenant isolation
69
+
70
+ Creates an AI session with automatic expiration (60 min default, 24h max). Sessions are isolated by organization. Use userId to identify the user creating the session. Use sessionGroup for logical grouping. Use metadata for additional custom data. Filter sessions by userId or sessionGroup when listing.
71
+
72
+ :param organisation: The organisation ID (required)
73
+ :type organisation: str
74
+ :param create_ai_session_request: (required)
75
+ :type create_ai_session_request: CreateAISessionRequest
76
+ :param _request_timeout: timeout setting for this request. If one
77
+ number provided, it will be total request
78
+ timeout. It can also be a pair (tuple) of
79
+ (connection, read) timeouts.
80
+ :type _request_timeout: int, tuple(int, int), optional
81
+ :param _request_auth: set to override the auth_settings for an a single
82
+ request; this effectively ignores the
83
+ authentication in the spec for a single request.
84
+ :type _request_auth: dict, optional
85
+ :param _content_type: force content-type for the request.
86
+ :type _content_type: str, Optional
87
+ :param _headers: set to override the headers for a single
88
+ request; this effectively ignores the headers
89
+ in the spec for a single request.
90
+ :type _headers: dict, optional
91
+ :param _host_index: set to override the host_index for a single
92
+ request; this effectively ignores the host_index
93
+ in the spec for a single request.
94
+ :type _host_index: int, optional
95
+ :return: Returns the result object.
96
+ """ # noqa: E501
97
+
98
+ _param = self._create_ai_session_serialize(
99
+ organisation=organisation,
100
+ create_ai_session_request=create_ai_session_request,
101
+ _request_auth=_request_auth,
102
+ _content_type=_content_type,
103
+ _headers=_headers,
104
+ _host_index=_host_index
105
+ )
106
+
107
+ _response_types_map: Dict[str, Optional[str]] = {
108
+ '201': "CreateAISession201Response",
109
+ '400': None,
110
+ '500': None,
111
+ }
112
+ response_data = self.api_client.call_api(
113
+ *_param,
114
+ _request_timeout=_request_timeout
115
+ )
116
+ response_data.read()
117
+ return self.api_client.response_deserialize(
118
+ response_data=response_data,
119
+ response_types_map=_response_types_map,
120
+ ).data
121
+
122
+
123
+ @validate_call
124
+ def create_ai_session_with_http_info(
125
+ self,
126
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
127
+ create_ai_session_request: CreateAISessionRequest,
128
+ _request_timeout: Union[
129
+ None,
130
+ Annotated[StrictFloat, Field(gt=0)],
131
+ Tuple[
132
+ Annotated[StrictFloat, Field(gt=0)],
133
+ Annotated[StrictFloat, Field(gt=0)]
134
+ ]
135
+ ] = None,
136
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
137
+ _content_type: Optional[StrictStr] = None,
138
+ _headers: Optional[Dict[StrictStr, Any]] = None,
139
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
140
+ ) -> ApiResponse[CreateAISession201Response]:
141
+ """Create a new chat session with multi-tenant isolation
142
+
143
+ Creates an AI session with automatic expiration (60 min default, 24h max). Sessions are isolated by organization. Use userId to identify the user creating the session. Use sessionGroup for logical grouping. Use metadata for additional custom data. Filter sessions by userId or sessionGroup when listing.
144
+
145
+ :param organisation: The organisation ID (required)
146
+ :type organisation: str
147
+ :param create_ai_session_request: (required)
148
+ :type create_ai_session_request: CreateAISessionRequest
149
+ :param _request_timeout: timeout setting for this request. If one
150
+ number provided, it will be total request
151
+ timeout. It can also be a pair (tuple) of
152
+ (connection, read) timeouts.
153
+ :type _request_timeout: int, tuple(int, int), optional
154
+ :param _request_auth: set to override the auth_settings for an a single
155
+ request; this effectively ignores the
156
+ authentication in the spec for a single request.
157
+ :type _request_auth: dict, optional
158
+ :param _content_type: force content-type for the request.
159
+ :type _content_type: str, Optional
160
+ :param _headers: set to override the headers for a single
161
+ request; this effectively ignores the headers
162
+ in the spec for a single request.
163
+ :type _headers: dict, optional
164
+ :param _host_index: set to override the host_index for a single
165
+ request; this effectively ignores the host_index
166
+ in the spec for a single request.
167
+ :type _host_index: int, optional
168
+ :return: Returns the result object.
169
+ """ # noqa: E501
170
+
171
+ _param = self._create_ai_session_serialize(
172
+ organisation=organisation,
173
+ create_ai_session_request=create_ai_session_request,
174
+ _request_auth=_request_auth,
175
+ _content_type=_content_type,
176
+ _headers=_headers,
177
+ _host_index=_host_index
178
+ )
179
+
180
+ _response_types_map: Dict[str, Optional[str]] = {
181
+ '201': "CreateAISession201Response",
182
+ '400': None,
183
+ '500': None,
184
+ }
185
+ response_data = self.api_client.call_api(
186
+ *_param,
187
+ _request_timeout=_request_timeout
188
+ )
189
+ response_data.read()
190
+ return self.api_client.response_deserialize(
191
+ response_data=response_data,
192
+ response_types_map=_response_types_map,
193
+ )
194
+
195
+
196
+ @validate_call
197
+ def create_ai_session_without_preload_content(
198
+ self,
199
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
200
+ create_ai_session_request: CreateAISessionRequest,
201
+ _request_timeout: Union[
202
+ None,
203
+ Annotated[StrictFloat, Field(gt=0)],
204
+ Tuple[
205
+ Annotated[StrictFloat, Field(gt=0)],
206
+ Annotated[StrictFloat, Field(gt=0)]
207
+ ]
208
+ ] = None,
209
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
210
+ _content_type: Optional[StrictStr] = None,
211
+ _headers: Optional[Dict[StrictStr, Any]] = None,
212
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
213
+ ) -> RESTResponseType:
214
+ """Create a new chat session with multi-tenant isolation
215
+
216
+ Creates an AI session with automatic expiration (60 min default, 24h max). Sessions are isolated by organization. Use userId to identify the user creating the session. Use sessionGroup for logical grouping. Use metadata for additional custom data. Filter sessions by userId or sessionGroup when listing.
217
+
218
+ :param organisation: The organisation ID (required)
219
+ :type organisation: str
220
+ :param create_ai_session_request: (required)
221
+ :type create_ai_session_request: CreateAISessionRequest
222
+ :param _request_timeout: timeout setting for this request. If one
223
+ number provided, it will be total request
224
+ timeout. It can also be a pair (tuple) of
225
+ (connection, read) timeouts.
226
+ :type _request_timeout: int, tuple(int, int), optional
227
+ :param _request_auth: set to override the auth_settings for an a single
228
+ request; this effectively ignores the
229
+ authentication in the spec for a single request.
230
+ :type _request_auth: dict, optional
231
+ :param _content_type: force content-type for the request.
232
+ :type _content_type: str, Optional
233
+ :param _headers: set to override the headers for a single
234
+ request; this effectively ignores the headers
235
+ in the spec for a single request.
236
+ :type _headers: dict, optional
237
+ :param _host_index: set to override the host_index for a single
238
+ request; this effectively ignores the host_index
239
+ in the spec for a single request.
240
+ :type _host_index: int, optional
241
+ :return: Returns the result object.
242
+ """ # noqa: E501
243
+
244
+ _param = self._create_ai_session_serialize(
245
+ organisation=organisation,
246
+ create_ai_session_request=create_ai_session_request,
247
+ _request_auth=_request_auth,
248
+ _content_type=_content_type,
249
+ _headers=_headers,
250
+ _host_index=_host_index
251
+ )
252
+
253
+ _response_types_map: Dict[str, Optional[str]] = {
254
+ '201': "CreateAISession201Response",
255
+ '400': None,
256
+ '500': None,
257
+ }
258
+ response_data = self.api_client.call_api(
259
+ *_param,
260
+ _request_timeout=_request_timeout
261
+ )
262
+ return response_data.response
263
+
264
+
265
+ def _create_ai_session_serialize(
266
+ self,
267
+ organisation,
268
+ create_ai_session_request,
269
+ _request_auth,
270
+ _content_type,
271
+ _headers,
272
+ _host_index,
273
+ ) -> RequestSerialized:
274
+
275
+ _host = None
276
+
277
+ _collection_formats: Dict[str, str] = {
278
+ }
279
+
280
+ _path_params: Dict[str, str] = {}
281
+ _query_params: List[Tuple[str, str]] = []
282
+ _header_params: Dict[str, Optional[str]] = _headers or {}
283
+ _form_params: List[Tuple[str, str]] = []
284
+ _files: Dict[
285
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
286
+ ] = {}
287
+ _body_params: Optional[bytes] = None
288
+
289
+ # process the path parameters
290
+ if organisation is not None:
291
+ _path_params['organisation'] = organisation
292
+ # process the query parameters
293
+ # process the header parameters
294
+ # process the form parameters
295
+ # process the body parameter
296
+ if create_ai_session_request is not None:
297
+ _body_params = create_ai_session_request
298
+
299
+
300
+ # set the HTTP header `Accept`
301
+ if 'Accept' not in _header_params:
302
+ _header_params['Accept'] = self.api_client.select_header_accept(
303
+ [
304
+ 'application/json'
305
+ ]
306
+ )
307
+
308
+ # set the HTTP header `Content-Type`
309
+ if _content_type:
310
+ _header_params['Content-Type'] = _content_type
311
+ else:
312
+ _default_content_type = (
313
+ self.api_client.select_header_content_type(
314
+ [
315
+ 'application/json'
316
+ ]
317
+ )
318
+ )
319
+ if _default_content_type is not None:
320
+ _header_params['Content-Type'] = _default_content_type
321
+
322
+ # authentication setting
323
+ _auth_settings: List[str] = [
324
+ 'BearerAuth'
325
+ ]
326
+
327
+ return self.api_client.param_serialize(
328
+ method='POST',
329
+ resource_path='/api/v3/organizations/{organisation}/ai/sessions',
330
+ path_params=_path_params,
331
+ query_params=_query_params,
332
+ header_params=_header_params,
333
+ body=_body_params,
334
+ post_params=_form_params,
335
+ files=_files,
336
+ auth_settings=_auth_settings,
337
+ collection_formats=_collection_formats,
338
+ _host=_host,
339
+ _request_auth=_request_auth
340
+ )
341
+
342
+
343
+
344
+
345
+ @validate_call
346
+ def delete_ai_session(
347
+ self,
348
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
349
+ session_id: Annotated[StrictStr, Field(description="The session ID")],
350
+ _request_timeout: Union[
351
+ None,
352
+ Annotated[StrictFloat, Field(gt=0)],
353
+ Tuple[
354
+ Annotated[StrictFloat, Field(gt=0)],
355
+ Annotated[StrictFloat, Field(gt=0)]
356
+ ]
357
+ ] = None,
358
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
359
+ _content_type: Optional[StrictStr] = None,
360
+ _headers: Optional[Dict[StrictStr, Any]] = None,
361
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
362
+ ) -> DeleteAISession200Response:
363
+ """Delete a chat session
364
+
365
+
366
+ :param organisation: The organisation ID (required)
367
+ :type organisation: str
368
+ :param session_id: The session ID (required)
369
+ :type session_id: str
370
+ :param _request_timeout: timeout setting for this request. If one
371
+ number provided, it will be total request
372
+ timeout. It can also be a pair (tuple) of
373
+ (connection, read) timeouts.
374
+ :type _request_timeout: int, tuple(int, int), optional
375
+ :param _request_auth: set to override the auth_settings for an a single
376
+ request; this effectively ignores the
377
+ authentication in the spec for a single request.
378
+ :type _request_auth: dict, optional
379
+ :param _content_type: force content-type for the request.
380
+ :type _content_type: str, Optional
381
+ :param _headers: set to override the headers for a single
382
+ request; this effectively ignores the headers
383
+ in the spec for a single request.
384
+ :type _headers: dict, optional
385
+ :param _host_index: set to override the host_index for a single
386
+ request; this effectively ignores the host_index
387
+ in the spec for a single request.
388
+ :type _host_index: int, optional
389
+ :return: Returns the result object.
390
+ """ # noqa: E501
391
+
392
+ _param = self._delete_ai_session_serialize(
393
+ organisation=organisation,
394
+ session_id=session_id,
395
+ _request_auth=_request_auth,
396
+ _content_type=_content_type,
397
+ _headers=_headers,
398
+ _host_index=_host_index
399
+ )
400
+
401
+ _response_types_map: Dict[str, Optional[str]] = {
402
+ '200': "DeleteAISession200Response",
403
+ '500': None,
404
+ }
405
+ response_data = self.api_client.call_api(
406
+ *_param,
407
+ _request_timeout=_request_timeout
408
+ )
409
+ response_data.read()
410
+ return self.api_client.response_deserialize(
411
+ response_data=response_data,
412
+ response_types_map=_response_types_map,
413
+ ).data
414
+
415
+
416
+ @validate_call
417
+ def delete_ai_session_with_http_info(
418
+ self,
419
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
420
+ session_id: Annotated[StrictStr, Field(description="The session ID")],
421
+ _request_timeout: Union[
422
+ None,
423
+ Annotated[StrictFloat, Field(gt=0)],
424
+ Tuple[
425
+ Annotated[StrictFloat, Field(gt=0)],
426
+ Annotated[StrictFloat, Field(gt=0)]
427
+ ]
428
+ ] = None,
429
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
430
+ _content_type: Optional[StrictStr] = None,
431
+ _headers: Optional[Dict[StrictStr, Any]] = None,
432
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
433
+ ) -> ApiResponse[DeleteAISession200Response]:
434
+ """Delete a chat session
435
+
436
+
437
+ :param organisation: The organisation ID (required)
438
+ :type organisation: str
439
+ :param session_id: The session ID (required)
440
+ :type session_id: str
441
+ :param _request_timeout: timeout setting for this request. If one
442
+ number provided, it will be total request
443
+ timeout. It can also be a pair (tuple) of
444
+ (connection, read) timeouts.
445
+ :type _request_timeout: int, tuple(int, int), optional
446
+ :param _request_auth: set to override the auth_settings for an a single
447
+ request; this effectively ignores the
448
+ authentication in the spec for a single request.
449
+ :type _request_auth: dict, optional
450
+ :param _content_type: force content-type for the request.
451
+ :type _content_type: str, Optional
452
+ :param _headers: set to override the headers for a single
453
+ request; this effectively ignores the headers
454
+ in the spec for a single request.
455
+ :type _headers: dict, optional
456
+ :param _host_index: set to override the host_index for a single
457
+ request; this effectively ignores the host_index
458
+ in the spec for a single request.
459
+ :type _host_index: int, optional
460
+ :return: Returns the result object.
461
+ """ # noqa: E501
462
+
463
+ _param = self._delete_ai_session_serialize(
464
+ organisation=organisation,
465
+ session_id=session_id,
466
+ _request_auth=_request_auth,
467
+ _content_type=_content_type,
468
+ _headers=_headers,
469
+ _host_index=_host_index
470
+ )
471
+
472
+ _response_types_map: Dict[str, Optional[str]] = {
473
+ '200': "DeleteAISession200Response",
474
+ '500': None,
475
+ }
476
+ response_data = self.api_client.call_api(
477
+ *_param,
478
+ _request_timeout=_request_timeout
479
+ )
480
+ response_data.read()
481
+ return self.api_client.response_deserialize(
482
+ response_data=response_data,
483
+ response_types_map=_response_types_map,
484
+ )
485
+
486
+
487
+ @validate_call
488
+ def delete_ai_session_without_preload_content(
489
+ self,
490
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
491
+ session_id: Annotated[StrictStr, Field(description="The session ID")],
492
+ _request_timeout: Union[
493
+ None,
494
+ Annotated[StrictFloat, Field(gt=0)],
495
+ Tuple[
496
+ Annotated[StrictFloat, Field(gt=0)],
497
+ Annotated[StrictFloat, Field(gt=0)]
498
+ ]
499
+ ] = None,
500
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
501
+ _content_type: Optional[StrictStr] = None,
502
+ _headers: Optional[Dict[StrictStr, Any]] = None,
503
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
504
+ ) -> RESTResponseType:
505
+ """Delete a chat session
506
+
507
+
508
+ :param organisation: The organisation ID (required)
509
+ :type organisation: str
510
+ :param session_id: The session ID (required)
511
+ :type session_id: str
512
+ :param _request_timeout: timeout setting for this request. If one
513
+ number provided, it will be total request
514
+ timeout. It can also be a pair (tuple) of
515
+ (connection, read) timeouts.
516
+ :type _request_timeout: int, tuple(int, int), optional
517
+ :param _request_auth: set to override the auth_settings for an a single
518
+ request; this effectively ignores the
519
+ authentication in the spec for a single request.
520
+ :type _request_auth: dict, optional
521
+ :param _content_type: force content-type for the request.
522
+ :type _content_type: str, Optional
523
+ :param _headers: set to override the headers for a single
524
+ request; this effectively ignores the headers
525
+ in the spec for a single request.
526
+ :type _headers: dict, optional
527
+ :param _host_index: set to override the host_index for a single
528
+ request; this effectively ignores the host_index
529
+ in the spec for a single request.
530
+ :type _host_index: int, optional
531
+ :return: Returns the result object.
532
+ """ # noqa: E501
533
+
534
+ _param = self._delete_ai_session_serialize(
535
+ organisation=organisation,
536
+ session_id=session_id,
537
+ _request_auth=_request_auth,
538
+ _content_type=_content_type,
539
+ _headers=_headers,
540
+ _host_index=_host_index
541
+ )
542
+
543
+ _response_types_map: Dict[str, Optional[str]] = {
544
+ '200': "DeleteAISession200Response",
545
+ '500': None,
546
+ }
547
+ response_data = self.api_client.call_api(
548
+ *_param,
549
+ _request_timeout=_request_timeout
550
+ )
551
+ return response_data.response
552
+
553
+
554
+ def _delete_ai_session_serialize(
555
+ self,
556
+ organisation,
557
+ session_id,
558
+ _request_auth,
559
+ _content_type,
560
+ _headers,
561
+ _host_index,
562
+ ) -> RequestSerialized:
563
+
564
+ _host = None
565
+
566
+ _collection_formats: Dict[str, str] = {
567
+ }
568
+
569
+ _path_params: Dict[str, str] = {}
570
+ _query_params: List[Tuple[str, str]] = []
571
+ _header_params: Dict[str, Optional[str]] = _headers or {}
572
+ _form_params: List[Tuple[str, str]] = []
573
+ _files: Dict[
574
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
575
+ ] = {}
576
+ _body_params: Optional[bytes] = None
577
+
578
+ # process the path parameters
579
+ if organisation is not None:
580
+ _path_params['organisation'] = organisation
581
+ if session_id is not None:
582
+ _path_params['sessionId'] = session_id
583
+ # process the query parameters
584
+ # process the header parameters
585
+ # process the form parameters
586
+ # process the body parameter
587
+
588
+
589
+ # set the HTTP header `Accept`
590
+ if 'Accept' not in _header_params:
591
+ _header_params['Accept'] = self.api_client.select_header_accept(
592
+ [
593
+ 'application/json'
594
+ ]
595
+ )
596
+
597
+
598
+ # authentication setting
599
+ _auth_settings: List[str] = [
600
+ 'BearerAuth'
601
+ ]
602
+
603
+ return self.api_client.param_serialize(
604
+ method='DELETE',
605
+ resource_path='/api/v3/organizations/{organisation}/ai/sessions/{sessionId}',
606
+ path_params=_path_params,
607
+ query_params=_query_params,
608
+ header_params=_header_params,
609
+ body=_body_params,
610
+ post_params=_form_params,
611
+ files=_files,
612
+ auth_settings=_auth_settings,
613
+ collection_formats=_collection_formats,
614
+ _host=_host,
615
+ _request_auth=_request_auth
616
+ )
617
+
618
+
619
+
620
+
621
+ @validate_call
622
+ def extend_ai_session(
623
+ self,
624
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
625
+ session_id: Annotated[StrictStr, Field(description="The session ID")],
626
+ extend_ai_session_request: Optional[ExtendAISessionRequest] = None,
627
+ _request_timeout: Union[
628
+ None,
629
+ Annotated[StrictFloat, Field(gt=0)],
630
+ Tuple[
631
+ Annotated[StrictFloat, Field(gt=0)],
632
+ Annotated[StrictFloat, Field(gt=0)]
633
+ ]
634
+ ] = None,
635
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
636
+ _content_type: Optional[StrictStr] = None,
637
+ _headers: Optional[Dict[StrictStr, Any]] = None,
638
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
639
+ ) -> ExtendAISession200Response:
640
+ """Extend Session Expiration
641
+
642
+ Extends the expiration time of an active session. Useful for keeping long-running conversations alive.
643
+
644
+ :param organisation: The organisation ID (required)
645
+ :type organisation: str
646
+ :param session_id: The session ID (required)
647
+ :type session_id: str
648
+ :param extend_ai_session_request:
649
+ :type extend_ai_session_request: ExtendAISessionRequest
650
+ :param _request_timeout: timeout setting for this request. If one
651
+ number provided, it will be total request
652
+ timeout. It can also be a pair (tuple) of
653
+ (connection, read) timeouts.
654
+ :type _request_timeout: int, tuple(int, int), optional
655
+ :param _request_auth: set to override the auth_settings for an a single
656
+ request; this effectively ignores the
657
+ authentication in the spec for a single request.
658
+ :type _request_auth: dict, optional
659
+ :param _content_type: force content-type for the request.
660
+ :type _content_type: str, Optional
661
+ :param _headers: set to override the headers for a single
662
+ request; this effectively ignores the headers
663
+ in the spec for a single request.
664
+ :type _headers: dict, optional
665
+ :param _host_index: set to override the host_index for a single
666
+ request; this effectively ignores the host_index
667
+ in the spec for a single request.
668
+ :type _host_index: int, optional
669
+ :return: Returns the result object.
670
+ """ # noqa: E501
671
+
672
+ _param = self._extend_ai_session_serialize(
673
+ organisation=organisation,
674
+ session_id=session_id,
675
+ extend_ai_session_request=extend_ai_session_request,
676
+ _request_auth=_request_auth,
677
+ _content_type=_content_type,
678
+ _headers=_headers,
679
+ _host_index=_host_index
680
+ )
681
+
682
+ _response_types_map: Dict[str, Optional[str]] = {
683
+ '200': "ExtendAISession200Response",
684
+ '400': None,
685
+ '403': None,
686
+ '404': None,
687
+ '500': None,
688
+ }
689
+ response_data = self.api_client.call_api(
690
+ *_param,
691
+ _request_timeout=_request_timeout
692
+ )
693
+ response_data.read()
694
+ return self.api_client.response_deserialize(
695
+ response_data=response_data,
696
+ response_types_map=_response_types_map,
697
+ ).data
698
+
699
+
700
+ @validate_call
701
+ def extend_ai_session_with_http_info(
702
+ self,
703
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
704
+ session_id: Annotated[StrictStr, Field(description="The session ID")],
705
+ extend_ai_session_request: Optional[ExtendAISessionRequest] = None,
706
+ _request_timeout: Union[
707
+ None,
708
+ Annotated[StrictFloat, Field(gt=0)],
709
+ Tuple[
710
+ Annotated[StrictFloat, Field(gt=0)],
711
+ Annotated[StrictFloat, Field(gt=0)]
712
+ ]
713
+ ] = None,
714
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
715
+ _content_type: Optional[StrictStr] = None,
716
+ _headers: Optional[Dict[StrictStr, Any]] = None,
717
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
718
+ ) -> ApiResponse[ExtendAISession200Response]:
719
+ """Extend Session Expiration
720
+
721
+ Extends the expiration time of an active session. Useful for keeping long-running conversations alive.
722
+
723
+ :param organisation: The organisation ID (required)
724
+ :type organisation: str
725
+ :param session_id: The session ID (required)
726
+ :type session_id: str
727
+ :param extend_ai_session_request:
728
+ :type extend_ai_session_request: ExtendAISessionRequest
729
+ :param _request_timeout: timeout setting for this request. If one
730
+ number provided, it will be total request
731
+ timeout. It can also be a pair (tuple) of
732
+ (connection, read) timeouts.
733
+ :type _request_timeout: int, tuple(int, int), optional
734
+ :param _request_auth: set to override the auth_settings for an a single
735
+ request; this effectively ignores the
736
+ authentication in the spec for a single request.
737
+ :type _request_auth: dict, optional
738
+ :param _content_type: force content-type for the request.
739
+ :type _content_type: str, Optional
740
+ :param _headers: set to override the headers for a single
741
+ request; this effectively ignores the headers
742
+ in the spec for a single request.
743
+ :type _headers: dict, optional
744
+ :param _host_index: set to override the host_index for a single
745
+ request; this effectively ignores the host_index
746
+ in the spec for a single request.
747
+ :type _host_index: int, optional
748
+ :return: Returns the result object.
749
+ """ # noqa: E501
750
+
751
+ _param = self._extend_ai_session_serialize(
752
+ organisation=organisation,
753
+ session_id=session_id,
754
+ extend_ai_session_request=extend_ai_session_request,
755
+ _request_auth=_request_auth,
756
+ _content_type=_content_type,
757
+ _headers=_headers,
758
+ _host_index=_host_index
759
+ )
760
+
761
+ _response_types_map: Dict[str, Optional[str]] = {
762
+ '200': "ExtendAISession200Response",
763
+ '400': None,
764
+ '403': None,
765
+ '404': None,
766
+ '500': None,
767
+ }
768
+ response_data = self.api_client.call_api(
769
+ *_param,
770
+ _request_timeout=_request_timeout
771
+ )
772
+ response_data.read()
773
+ return self.api_client.response_deserialize(
774
+ response_data=response_data,
775
+ response_types_map=_response_types_map,
776
+ )
777
+
778
+
779
+ @validate_call
780
+ def extend_ai_session_without_preload_content(
781
+ self,
782
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
783
+ session_id: Annotated[StrictStr, Field(description="The session ID")],
784
+ extend_ai_session_request: Optional[ExtendAISessionRequest] = None,
785
+ _request_timeout: Union[
786
+ None,
787
+ Annotated[StrictFloat, Field(gt=0)],
788
+ Tuple[
789
+ Annotated[StrictFloat, Field(gt=0)],
790
+ Annotated[StrictFloat, Field(gt=0)]
791
+ ]
792
+ ] = None,
793
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
794
+ _content_type: Optional[StrictStr] = None,
795
+ _headers: Optional[Dict[StrictStr, Any]] = None,
796
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
797
+ ) -> RESTResponseType:
798
+ """Extend Session Expiration
799
+
800
+ Extends the expiration time of an active session. Useful for keeping long-running conversations alive.
801
+
802
+ :param organisation: The organisation ID (required)
803
+ :type organisation: str
804
+ :param session_id: The session ID (required)
805
+ :type session_id: str
806
+ :param extend_ai_session_request:
807
+ :type extend_ai_session_request: ExtendAISessionRequest
808
+ :param _request_timeout: timeout setting for this request. If one
809
+ number provided, it will be total request
810
+ timeout. It can also be a pair (tuple) of
811
+ (connection, read) timeouts.
812
+ :type _request_timeout: int, tuple(int, int), optional
813
+ :param _request_auth: set to override the auth_settings for an a single
814
+ request; this effectively ignores the
815
+ authentication in the spec for a single request.
816
+ :type _request_auth: dict, optional
817
+ :param _content_type: force content-type for the request.
818
+ :type _content_type: str, Optional
819
+ :param _headers: set to override the headers for a single
820
+ request; this effectively ignores the headers
821
+ in the spec for a single request.
822
+ :type _headers: dict, optional
823
+ :param _host_index: set to override the host_index for a single
824
+ request; this effectively ignores the host_index
825
+ in the spec for a single request.
826
+ :type _host_index: int, optional
827
+ :return: Returns the result object.
828
+ """ # noqa: E501
829
+
830
+ _param = self._extend_ai_session_serialize(
831
+ organisation=organisation,
832
+ session_id=session_id,
833
+ extend_ai_session_request=extend_ai_session_request,
834
+ _request_auth=_request_auth,
835
+ _content_type=_content_type,
836
+ _headers=_headers,
837
+ _host_index=_host_index
838
+ )
839
+
840
+ _response_types_map: Dict[str, Optional[str]] = {
841
+ '200': "ExtendAISession200Response",
842
+ '400': None,
843
+ '403': None,
844
+ '404': None,
845
+ '500': None,
846
+ }
847
+ response_data = self.api_client.call_api(
848
+ *_param,
849
+ _request_timeout=_request_timeout
850
+ )
851
+ return response_data.response
852
+
853
+
854
+ def _extend_ai_session_serialize(
855
+ self,
856
+ organisation,
857
+ session_id,
858
+ extend_ai_session_request,
859
+ _request_auth,
860
+ _content_type,
861
+ _headers,
862
+ _host_index,
863
+ ) -> RequestSerialized:
864
+
865
+ _host = None
866
+
867
+ _collection_formats: Dict[str, str] = {
868
+ }
869
+
870
+ _path_params: Dict[str, str] = {}
871
+ _query_params: List[Tuple[str, str]] = []
872
+ _header_params: Dict[str, Optional[str]] = _headers or {}
873
+ _form_params: List[Tuple[str, str]] = []
874
+ _files: Dict[
875
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
876
+ ] = {}
877
+ _body_params: Optional[bytes] = None
878
+
879
+ # process the path parameters
880
+ if organisation is not None:
881
+ _path_params['organisation'] = organisation
882
+ if session_id is not None:
883
+ _path_params['sessionId'] = session_id
884
+ # process the query parameters
885
+ # process the header parameters
886
+ # process the form parameters
887
+ # process the body parameter
888
+ if extend_ai_session_request is not None:
889
+ _body_params = extend_ai_session_request
890
+
891
+
892
+ # set the HTTP header `Accept`
893
+ if 'Accept' not in _header_params:
894
+ _header_params['Accept'] = self.api_client.select_header_accept(
895
+ [
896
+ 'application/json'
897
+ ]
898
+ )
899
+
900
+ # set the HTTP header `Content-Type`
901
+ if _content_type:
902
+ _header_params['Content-Type'] = _content_type
903
+ else:
904
+ _default_content_type = (
905
+ self.api_client.select_header_content_type(
906
+ [
907
+ 'application/json'
908
+ ]
909
+ )
910
+ )
911
+ if _default_content_type is not None:
912
+ _header_params['Content-Type'] = _default_content_type
913
+
914
+ # authentication setting
915
+ _auth_settings: List[str] = [
916
+ 'BearerAuth'
917
+ ]
918
+
919
+ return self.api_client.param_serialize(
920
+ method='PUT',
921
+ resource_path='/api/v3/organizations/{organisation}/ai/sessions/{sessionId}/extend',
922
+ path_params=_path_params,
923
+ query_params=_query_params,
924
+ header_params=_header_params,
925
+ body=_body_params,
926
+ post_params=_form_params,
927
+ files=_files,
928
+ auth_settings=_auth_settings,
929
+ collection_formats=_collection_formats,
930
+ _host=_host,
931
+ _request_auth=_request_auth
932
+ )
933
+
934
+
935
+
936
+
937
+ @validate_call
938
+ def get_ai_session(
939
+ self,
940
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
941
+ session_id: Annotated[StrictStr, Field(description="The session ID")],
942
+ _request_timeout: Union[
943
+ None,
944
+ Annotated[StrictFloat, Field(gt=0)],
945
+ Tuple[
946
+ Annotated[StrictFloat, Field(gt=0)],
947
+ Annotated[StrictFloat, Field(gt=0)]
948
+ ]
949
+ ] = None,
950
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
951
+ _content_type: Optional[StrictStr] = None,
952
+ _headers: Optional[Dict[StrictStr, Any]] = None,
953
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
954
+ ) -> GetAISession200Response:
955
+ """Get a specific chat session
956
+
957
+
958
+ :param organisation: The organisation ID (required)
959
+ :type organisation: str
960
+ :param session_id: The session ID (required)
961
+ :type session_id: str
962
+ :param _request_timeout: timeout setting for this request. If one
963
+ number provided, it will be total request
964
+ timeout. It can also be a pair (tuple) of
965
+ (connection, read) timeouts.
966
+ :type _request_timeout: int, tuple(int, int), optional
967
+ :param _request_auth: set to override the auth_settings for an a single
968
+ request; this effectively ignores the
969
+ authentication in the spec for a single request.
970
+ :type _request_auth: dict, optional
971
+ :param _content_type: force content-type for the request.
972
+ :type _content_type: str, Optional
973
+ :param _headers: set to override the headers for a single
974
+ request; this effectively ignores the headers
975
+ in the spec for a single request.
976
+ :type _headers: dict, optional
977
+ :param _host_index: set to override the host_index for a single
978
+ request; this effectively ignores the host_index
979
+ in the spec for a single request.
980
+ :type _host_index: int, optional
981
+ :return: Returns the result object.
982
+ """ # noqa: E501
983
+
984
+ _param = self._get_ai_session_serialize(
985
+ organisation=organisation,
986
+ session_id=session_id,
987
+ _request_auth=_request_auth,
988
+ _content_type=_content_type,
989
+ _headers=_headers,
990
+ _host_index=_host_index
991
+ )
992
+
993
+ _response_types_map: Dict[str, Optional[str]] = {
994
+ '200': "GetAISession200Response",
995
+ '404': None,
996
+ }
997
+ response_data = self.api_client.call_api(
998
+ *_param,
999
+ _request_timeout=_request_timeout
1000
+ )
1001
+ response_data.read()
1002
+ return self.api_client.response_deserialize(
1003
+ response_data=response_data,
1004
+ response_types_map=_response_types_map,
1005
+ ).data
1006
+
1007
+
1008
+ @validate_call
1009
+ def get_ai_session_with_http_info(
1010
+ self,
1011
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
1012
+ session_id: Annotated[StrictStr, Field(description="The session ID")],
1013
+ _request_timeout: Union[
1014
+ None,
1015
+ Annotated[StrictFloat, Field(gt=0)],
1016
+ Tuple[
1017
+ Annotated[StrictFloat, Field(gt=0)],
1018
+ Annotated[StrictFloat, Field(gt=0)]
1019
+ ]
1020
+ ] = None,
1021
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1022
+ _content_type: Optional[StrictStr] = None,
1023
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1024
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1025
+ ) -> ApiResponse[GetAISession200Response]:
1026
+ """Get a specific chat session
1027
+
1028
+
1029
+ :param organisation: The organisation ID (required)
1030
+ :type organisation: str
1031
+ :param session_id: The session ID (required)
1032
+ :type session_id: str
1033
+ :param _request_timeout: timeout setting for this request. If one
1034
+ number provided, it will be total request
1035
+ timeout. It can also be a pair (tuple) of
1036
+ (connection, read) timeouts.
1037
+ :type _request_timeout: int, tuple(int, int), optional
1038
+ :param _request_auth: set to override the auth_settings for an a single
1039
+ request; this effectively ignores the
1040
+ authentication in the spec for a single request.
1041
+ :type _request_auth: dict, optional
1042
+ :param _content_type: force content-type for the request.
1043
+ :type _content_type: str, Optional
1044
+ :param _headers: set to override the headers for a single
1045
+ request; this effectively ignores the headers
1046
+ in the spec for a single request.
1047
+ :type _headers: dict, optional
1048
+ :param _host_index: set to override the host_index for a single
1049
+ request; this effectively ignores the host_index
1050
+ in the spec for a single request.
1051
+ :type _host_index: int, optional
1052
+ :return: Returns the result object.
1053
+ """ # noqa: E501
1054
+
1055
+ _param = self._get_ai_session_serialize(
1056
+ organisation=organisation,
1057
+ session_id=session_id,
1058
+ _request_auth=_request_auth,
1059
+ _content_type=_content_type,
1060
+ _headers=_headers,
1061
+ _host_index=_host_index
1062
+ )
1063
+
1064
+ _response_types_map: Dict[str, Optional[str]] = {
1065
+ '200': "GetAISession200Response",
1066
+ '404': None,
1067
+ }
1068
+ response_data = self.api_client.call_api(
1069
+ *_param,
1070
+ _request_timeout=_request_timeout
1071
+ )
1072
+ response_data.read()
1073
+ return self.api_client.response_deserialize(
1074
+ response_data=response_data,
1075
+ response_types_map=_response_types_map,
1076
+ )
1077
+
1078
+
1079
+ @validate_call
1080
+ def get_ai_session_without_preload_content(
1081
+ self,
1082
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
1083
+ session_id: Annotated[StrictStr, Field(description="The session ID")],
1084
+ _request_timeout: Union[
1085
+ None,
1086
+ Annotated[StrictFloat, Field(gt=0)],
1087
+ Tuple[
1088
+ Annotated[StrictFloat, Field(gt=0)],
1089
+ Annotated[StrictFloat, Field(gt=0)]
1090
+ ]
1091
+ ] = None,
1092
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1093
+ _content_type: Optional[StrictStr] = None,
1094
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1095
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1096
+ ) -> RESTResponseType:
1097
+ """Get a specific chat session
1098
+
1099
+
1100
+ :param organisation: The organisation ID (required)
1101
+ :type organisation: str
1102
+ :param session_id: The session ID (required)
1103
+ :type session_id: str
1104
+ :param _request_timeout: timeout setting for this request. If one
1105
+ number provided, it will be total request
1106
+ timeout. It can also be a pair (tuple) of
1107
+ (connection, read) timeouts.
1108
+ :type _request_timeout: int, tuple(int, int), optional
1109
+ :param _request_auth: set to override the auth_settings for an a single
1110
+ request; this effectively ignores the
1111
+ authentication in the spec for a single request.
1112
+ :type _request_auth: dict, optional
1113
+ :param _content_type: force content-type for the request.
1114
+ :type _content_type: str, Optional
1115
+ :param _headers: set to override the headers for a single
1116
+ request; this effectively ignores the headers
1117
+ in the spec for a single request.
1118
+ :type _headers: dict, optional
1119
+ :param _host_index: set to override the host_index for a single
1120
+ request; this effectively ignores the host_index
1121
+ in the spec for a single request.
1122
+ :type _host_index: int, optional
1123
+ :return: Returns the result object.
1124
+ """ # noqa: E501
1125
+
1126
+ _param = self._get_ai_session_serialize(
1127
+ organisation=organisation,
1128
+ session_id=session_id,
1129
+ _request_auth=_request_auth,
1130
+ _content_type=_content_type,
1131
+ _headers=_headers,
1132
+ _host_index=_host_index
1133
+ )
1134
+
1135
+ _response_types_map: Dict[str, Optional[str]] = {
1136
+ '200': "GetAISession200Response",
1137
+ '404': None,
1138
+ }
1139
+ response_data = self.api_client.call_api(
1140
+ *_param,
1141
+ _request_timeout=_request_timeout
1142
+ )
1143
+ return response_data.response
1144
+
1145
+
1146
+ def _get_ai_session_serialize(
1147
+ self,
1148
+ organisation,
1149
+ session_id,
1150
+ _request_auth,
1151
+ _content_type,
1152
+ _headers,
1153
+ _host_index,
1154
+ ) -> RequestSerialized:
1155
+
1156
+ _host = None
1157
+
1158
+ _collection_formats: Dict[str, str] = {
1159
+ }
1160
+
1161
+ _path_params: Dict[str, str] = {}
1162
+ _query_params: List[Tuple[str, str]] = []
1163
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1164
+ _form_params: List[Tuple[str, str]] = []
1165
+ _files: Dict[
1166
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1167
+ ] = {}
1168
+ _body_params: Optional[bytes] = None
1169
+
1170
+ # process the path parameters
1171
+ if organisation is not None:
1172
+ _path_params['organisation'] = organisation
1173
+ if session_id is not None:
1174
+ _path_params['sessionId'] = session_id
1175
+ # process the query parameters
1176
+ # process the header parameters
1177
+ # process the form parameters
1178
+ # process the body parameter
1179
+
1180
+
1181
+ # set the HTTP header `Accept`
1182
+ if 'Accept' not in _header_params:
1183
+ _header_params['Accept'] = self.api_client.select_header_accept(
1184
+ [
1185
+ 'application/json'
1186
+ ]
1187
+ )
1188
+
1189
+
1190
+ # authentication setting
1191
+ _auth_settings: List[str] = [
1192
+ 'BearerAuth'
1193
+ ]
1194
+
1195
+ return self.api_client.param_serialize(
1196
+ method='GET',
1197
+ resource_path='/api/v3/organizations/{organisation}/ai/sessions/{sessionId}',
1198
+ path_params=_path_params,
1199
+ query_params=_query_params,
1200
+ header_params=_header_params,
1201
+ body=_body_params,
1202
+ post_params=_form_params,
1203
+ files=_files,
1204
+ auth_settings=_auth_settings,
1205
+ collection_formats=_collection_formats,
1206
+ _host=_host,
1207
+ _request_auth=_request_auth
1208
+ )
1209
+
1210
+
1211
+
1212
+
1213
+ @validate_call
1214
+ def list_ai_sessions(
1215
+ self,
1216
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
1217
+ user_id: Annotated[Optional[StrictStr], Field(description="Filter sessions by user ID")] = None,
1218
+ session_group: Annotated[Optional[StrictStr], Field(description="Filter by session group. Returns only sessions matching the specified group.")] = None,
1219
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of sessions to return (default 50, max 100)")] = None,
1220
+ offset: Annotated[Optional[StrictInt], Field(description="Offset for pagination")] = None,
1221
+ model: Annotated[Optional[StrictStr], Field(description="Filter by model ID")] = None,
1222
+ _request_timeout: Union[
1223
+ None,
1224
+ Annotated[StrictFloat, Field(gt=0)],
1225
+ Tuple[
1226
+ Annotated[StrictFloat, Field(gt=0)],
1227
+ Annotated[StrictFloat, Field(gt=0)]
1228
+ ]
1229
+ ] = None,
1230
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1231
+ _content_type: Optional[StrictStr] = None,
1232
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1233
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1234
+ ) -> List[ListAISessions200ResponseInner]:
1235
+ """List chat sessions with multi-tenant filtering
1236
+
1237
+ Lists active sessions for an organization with flexible filtering options. * * **Query Combinations:** * 1. By Organization (default): Returns all sessions in the organization * 2. By Organization + Group: `?sessionGroup=drupal-prod` - Sessions in a specific group * 3. By User: `?userId=user-123` - All sessions for a user * 4. By User + Group: `?userId=user-123&sessionGroup=drupal-prod` - User's sessions in a specific group * * **Use Cases:** * - List user's conversations in a specific app/environment * - Admin view of all sessions in a customer/tenant group * - User profile showing all AI conversations across apps
1238
+
1239
+ :param organisation: The organisation ID (required)
1240
+ :type organisation: str
1241
+ :param user_id: Filter sessions by user ID
1242
+ :type user_id: str
1243
+ :param session_group: Filter by session group. Returns only sessions matching the specified group.
1244
+ :type session_group: str
1245
+ :param limit: Maximum number of sessions to return (default 50, max 100)
1246
+ :type limit: int
1247
+ :param offset: Offset for pagination
1248
+ :type offset: int
1249
+ :param model: Filter by model ID
1250
+ :type model: str
1251
+ :param _request_timeout: timeout setting for this request. If one
1252
+ number provided, it will be total request
1253
+ timeout. It can also be a pair (tuple) of
1254
+ (connection, read) timeouts.
1255
+ :type _request_timeout: int, tuple(int, int), optional
1256
+ :param _request_auth: set to override the auth_settings for an a single
1257
+ request; this effectively ignores the
1258
+ authentication in the spec for a single request.
1259
+ :type _request_auth: dict, optional
1260
+ :param _content_type: force content-type for the request.
1261
+ :type _content_type: str, Optional
1262
+ :param _headers: set to override the headers for a single
1263
+ request; this effectively ignores the headers
1264
+ in the spec for a single request.
1265
+ :type _headers: dict, optional
1266
+ :param _host_index: set to override the host_index for a single
1267
+ request; this effectively ignores the host_index
1268
+ in the spec for a single request.
1269
+ :type _host_index: int, optional
1270
+ :return: Returns the result object.
1271
+ """ # noqa: E501
1272
+
1273
+ _param = self._list_ai_sessions_serialize(
1274
+ organisation=organisation,
1275
+ user_id=user_id,
1276
+ session_group=session_group,
1277
+ limit=limit,
1278
+ offset=offset,
1279
+ model=model,
1280
+ _request_auth=_request_auth,
1281
+ _content_type=_content_type,
1282
+ _headers=_headers,
1283
+ _host_index=_host_index
1284
+ )
1285
+
1286
+ _response_types_map: Dict[str, Optional[str]] = {
1287
+ '200': "List[ListAISessions200ResponseInner]",
1288
+ '500': None,
1289
+ }
1290
+ response_data = self.api_client.call_api(
1291
+ *_param,
1292
+ _request_timeout=_request_timeout
1293
+ )
1294
+ response_data.read()
1295
+ return self.api_client.response_deserialize(
1296
+ response_data=response_data,
1297
+ response_types_map=_response_types_map,
1298
+ ).data
1299
+
1300
+
1301
+ @validate_call
1302
+ def list_ai_sessions_with_http_info(
1303
+ self,
1304
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
1305
+ user_id: Annotated[Optional[StrictStr], Field(description="Filter sessions by user ID")] = None,
1306
+ session_group: Annotated[Optional[StrictStr], Field(description="Filter by session group. Returns only sessions matching the specified group.")] = None,
1307
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of sessions to return (default 50, max 100)")] = None,
1308
+ offset: Annotated[Optional[StrictInt], Field(description="Offset for pagination")] = None,
1309
+ model: Annotated[Optional[StrictStr], Field(description="Filter by model ID")] = None,
1310
+ _request_timeout: Union[
1311
+ None,
1312
+ Annotated[StrictFloat, Field(gt=0)],
1313
+ Tuple[
1314
+ Annotated[StrictFloat, Field(gt=0)],
1315
+ Annotated[StrictFloat, Field(gt=0)]
1316
+ ]
1317
+ ] = None,
1318
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1319
+ _content_type: Optional[StrictStr] = None,
1320
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1321
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1322
+ ) -> ApiResponse[List[ListAISessions200ResponseInner]]:
1323
+ """List chat sessions with multi-tenant filtering
1324
+
1325
+ Lists active sessions for an organization with flexible filtering options. * * **Query Combinations:** * 1. By Organization (default): Returns all sessions in the organization * 2. By Organization + Group: `?sessionGroup=drupal-prod` - Sessions in a specific group * 3. By User: `?userId=user-123` - All sessions for a user * 4. By User + Group: `?userId=user-123&sessionGroup=drupal-prod` - User's sessions in a specific group * * **Use Cases:** * - List user's conversations in a specific app/environment * - Admin view of all sessions in a customer/tenant group * - User profile showing all AI conversations across apps
1326
+
1327
+ :param organisation: The organisation ID (required)
1328
+ :type organisation: str
1329
+ :param user_id: Filter sessions by user ID
1330
+ :type user_id: str
1331
+ :param session_group: Filter by session group. Returns only sessions matching the specified group.
1332
+ :type session_group: str
1333
+ :param limit: Maximum number of sessions to return (default 50, max 100)
1334
+ :type limit: int
1335
+ :param offset: Offset for pagination
1336
+ :type offset: int
1337
+ :param model: Filter by model ID
1338
+ :type model: str
1339
+ :param _request_timeout: timeout setting for this request. If one
1340
+ number provided, it will be total request
1341
+ timeout. It can also be a pair (tuple) of
1342
+ (connection, read) timeouts.
1343
+ :type _request_timeout: int, tuple(int, int), optional
1344
+ :param _request_auth: set to override the auth_settings for an a single
1345
+ request; this effectively ignores the
1346
+ authentication in the spec for a single request.
1347
+ :type _request_auth: dict, optional
1348
+ :param _content_type: force content-type for the request.
1349
+ :type _content_type: str, Optional
1350
+ :param _headers: set to override the headers for a single
1351
+ request; this effectively ignores the headers
1352
+ in the spec for a single request.
1353
+ :type _headers: dict, optional
1354
+ :param _host_index: set to override the host_index for a single
1355
+ request; this effectively ignores the host_index
1356
+ in the spec for a single request.
1357
+ :type _host_index: int, optional
1358
+ :return: Returns the result object.
1359
+ """ # noqa: E501
1360
+
1361
+ _param = self._list_ai_sessions_serialize(
1362
+ organisation=organisation,
1363
+ user_id=user_id,
1364
+ session_group=session_group,
1365
+ limit=limit,
1366
+ offset=offset,
1367
+ model=model,
1368
+ _request_auth=_request_auth,
1369
+ _content_type=_content_type,
1370
+ _headers=_headers,
1371
+ _host_index=_host_index
1372
+ )
1373
+
1374
+ _response_types_map: Dict[str, Optional[str]] = {
1375
+ '200': "List[ListAISessions200ResponseInner]",
1376
+ '500': None,
1377
+ }
1378
+ response_data = self.api_client.call_api(
1379
+ *_param,
1380
+ _request_timeout=_request_timeout
1381
+ )
1382
+ response_data.read()
1383
+ return self.api_client.response_deserialize(
1384
+ response_data=response_data,
1385
+ response_types_map=_response_types_map,
1386
+ )
1387
+
1388
+
1389
+ @validate_call
1390
+ def list_ai_sessions_without_preload_content(
1391
+ self,
1392
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
1393
+ user_id: Annotated[Optional[StrictStr], Field(description="Filter sessions by user ID")] = None,
1394
+ session_group: Annotated[Optional[StrictStr], Field(description="Filter by session group. Returns only sessions matching the specified group.")] = None,
1395
+ limit: Annotated[Optional[Annotated[int, Field(le=100, strict=True, ge=1)]], Field(description="Maximum number of sessions to return (default 50, max 100)")] = None,
1396
+ offset: Annotated[Optional[StrictInt], Field(description="Offset for pagination")] = None,
1397
+ model: Annotated[Optional[StrictStr], Field(description="Filter by model ID")] = None,
1398
+ _request_timeout: Union[
1399
+ None,
1400
+ Annotated[StrictFloat, Field(gt=0)],
1401
+ Tuple[
1402
+ Annotated[StrictFloat, Field(gt=0)],
1403
+ Annotated[StrictFloat, Field(gt=0)]
1404
+ ]
1405
+ ] = None,
1406
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1407
+ _content_type: Optional[StrictStr] = None,
1408
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1409
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1410
+ ) -> RESTResponseType:
1411
+ """List chat sessions with multi-tenant filtering
1412
+
1413
+ Lists active sessions for an organization with flexible filtering options. * * **Query Combinations:** * 1. By Organization (default): Returns all sessions in the organization * 2. By Organization + Group: `?sessionGroup=drupal-prod` - Sessions in a specific group * 3. By User: `?userId=user-123` - All sessions for a user * 4. By User + Group: `?userId=user-123&sessionGroup=drupal-prod` - User's sessions in a specific group * * **Use Cases:** * - List user's conversations in a specific app/environment * - Admin view of all sessions in a customer/tenant group * - User profile showing all AI conversations across apps
1414
+
1415
+ :param organisation: The organisation ID (required)
1416
+ :type organisation: str
1417
+ :param user_id: Filter sessions by user ID
1418
+ :type user_id: str
1419
+ :param session_group: Filter by session group. Returns only sessions matching the specified group.
1420
+ :type session_group: str
1421
+ :param limit: Maximum number of sessions to return (default 50, max 100)
1422
+ :type limit: int
1423
+ :param offset: Offset for pagination
1424
+ :type offset: int
1425
+ :param model: Filter by model ID
1426
+ :type model: str
1427
+ :param _request_timeout: timeout setting for this request. If one
1428
+ number provided, it will be total request
1429
+ timeout. It can also be a pair (tuple) of
1430
+ (connection, read) timeouts.
1431
+ :type _request_timeout: int, tuple(int, int), optional
1432
+ :param _request_auth: set to override the auth_settings for an a single
1433
+ request; this effectively ignores the
1434
+ authentication in the spec for a single request.
1435
+ :type _request_auth: dict, optional
1436
+ :param _content_type: force content-type for the request.
1437
+ :type _content_type: str, Optional
1438
+ :param _headers: set to override the headers for a single
1439
+ request; this effectively ignores the headers
1440
+ in the spec for a single request.
1441
+ :type _headers: dict, optional
1442
+ :param _host_index: set to override the host_index for a single
1443
+ request; this effectively ignores the host_index
1444
+ in the spec for a single request.
1445
+ :type _host_index: int, optional
1446
+ :return: Returns the result object.
1447
+ """ # noqa: E501
1448
+
1449
+ _param = self._list_ai_sessions_serialize(
1450
+ organisation=organisation,
1451
+ user_id=user_id,
1452
+ session_group=session_group,
1453
+ limit=limit,
1454
+ offset=offset,
1455
+ model=model,
1456
+ _request_auth=_request_auth,
1457
+ _content_type=_content_type,
1458
+ _headers=_headers,
1459
+ _host_index=_host_index
1460
+ )
1461
+
1462
+ _response_types_map: Dict[str, Optional[str]] = {
1463
+ '200': "List[ListAISessions200ResponseInner]",
1464
+ '500': None,
1465
+ }
1466
+ response_data = self.api_client.call_api(
1467
+ *_param,
1468
+ _request_timeout=_request_timeout
1469
+ )
1470
+ return response_data.response
1471
+
1472
+
1473
+ def _list_ai_sessions_serialize(
1474
+ self,
1475
+ organisation,
1476
+ user_id,
1477
+ session_group,
1478
+ limit,
1479
+ offset,
1480
+ model,
1481
+ _request_auth,
1482
+ _content_type,
1483
+ _headers,
1484
+ _host_index,
1485
+ ) -> RequestSerialized:
1486
+
1487
+ _host = None
1488
+
1489
+ _collection_formats: Dict[str, str] = {
1490
+ }
1491
+
1492
+ _path_params: Dict[str, str] = {}
1493
+ _query_params: List[Tuple[str, str]] = []
1494
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1495
+ _form_params: List[Tuple[str, str]] = []
1496
+ _files: Dict[
1497
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1498
+ ] = {}
1499
+ _body_params: Optional[bytes] = None
1500
+
1501
+ # process the path parameters
1502
+ if organisation is not None:
1503
+ _path_params['organisation'] = organisation
1504
+ # process the query parameters
1505
+ if user_id is not None:
1506
+
1507
+ _query_params.append(('userId', user_id))
1508
+
1509
+ if session_group is not None:
1510
+
1511
+ _query_params.append(('sessionGroup', session_group))
1512
+
1513
+ if limit is not None:
1514
+
1515
+ _query_params.append(('limit', limit))
1516
+
1517
+ if offset is not None:
1518
+
1519
+ _query_params.append(('offset', offset))
1520
+
1521
+ if model is not None:
1522
+
1523
+ _query_params.append(('model', model))
1524
+
1525
+ # process the header parameters
1526
+ # process the form parameters
1527
+ # process the body parameter
1528
+
1529
+
1530
+ # set the HTTP header `Accept`
1531
+ if 'Accept' not in _header_params:
1532
+ _header_params['Accept'] = self.api_client.select_header_accept(
1533
+ [
1534
+ 'application/json'
1535
+ ]
1536
+ )
1537
+
1538
+
1539
+ # authentication setting
1540
+ _auth_settings: List[str] = [
1541
+ 'BearerAuth'
1542
+ ]
1543
+
1544
+ return self.api_client.param_serialize(
1545
+ method='GET',
1546
+ resource_path='/api/v3/organizations/{organisation}/ai/sessions',
1547
+ path_params=_path_params,
1548
+ query_params=_query_params,
1549
+ header_params=_header_params,
1550
+ body=_body_params,
1551
+ post_params=_form_params,
1552
+ files=_files,
1553
+ auth_settings=_auth_settings,
1554
+ collection_formats=_collection_formats,
1555
+ _host=_host,
1556
+ _request_auth=_request_auth
1557
+ )
1558
+
1559
+
1560
+
1561
+
1562
+ @validate_call
1563
+ def update_ai_session(
1564
+ self,
1565
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
1566
+ session_id: Annotated[StrictStr, Field(description="The session ID")],
1567
+ update_ai_session_request: UpdateAISessionRequest,
1568
+ _request_timeout: Union[
1569
+ None,
1570
+ Annotated[StrictFloat, Field(gt=0)],
1571
+ Tuple[
1572
+ Annotated[StrictFloat, Field(gt=0)],
1573
+ Annotated[StrictFloat, Field(gt=0)]
1574
+ ]
1575
+ ] = None,
1576
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1577
+ _content_type: Optional[StrictStr] = None,
1578
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1579
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1580
+ ) -> UpdateAISession200Response:
1581
+ """Update Session
1582
+
1583
+ Updates session with new conversation messages and tracks token usage. Appends new messages to conversation history and updates session stats. * * **Typical Flow:** * 1. Get session to retrieve conversation history * 2. Call AI inference with full message history * 3. Update session with new user + assistant messages
1584
+
1585
+ :param organisation: The organisation ID (required)
1586
+ :type organisation: str
1587
+ :param session_id: The session ID (required)
1588
+ :type session_id: str
1589
+ :param update_ai_session_request: (required)
1590
+ :type update_ai_session_request: UpdateAISessionRequest
1591
+ :param _request_timeout: timeout setting for this request. If one
1592
+ number provided, it will be total request
1593
+ timeout. It can also be a pair (tuple) of
1594
+ (connection, read) timeouts.
1595
+ :type _request_timeout: int, tuple(int, int), optional
1596
+ :param _request_auth: set to override the auth_settings for an a single
1597
+ request; this effectively ignores the
1598
+ authentication in the spec for a single request.
1599
+ :type _request_auth: dict, optional
1600
+ :param _content_type: force content-type for the request.
1601
+ :type _content_type: str, Optional
1602
+ :param _headers: set to override the headers for a single
1603
+ request; this effectively ignores the headers
1604
+ in the spec for a single request.
1605
+ :type _headers: dict, optional
1606
+ :param _host_index: set to override the host_index for a single
1607
+ request; this effectively ignores the host_index
1608
+ in the spec for a single request.
1609
+ :type _host_index: int, optional
1610
+ :return: Returns the result object.
1611
+ """ # noqa: E501
1612
+
1613
+ _param = self._update_ai_session_serialize(
1614
+ organisation=organisation,
1615
+ session_id=session_id,
1616
+ update_ai_session_request=update_ai_session_request,
1617
+ _request_auth=_request_auth,
1618
+ _content_type=_content_type,
1619
+ _headers=_headers,
1620
+ _host_index=_host_index
1621
+ )
1622
+
1623
+ _response_types_map: Dict[str, Optional[str]] = {
1624
+ '200': "UpdateAISession200Response",
1625
+ '400': None,
1626
+ '403': None,
1627
+ '404': None,
1628
+ '500': None,
1629
+ }
1630
+ response_data = self.api_client.call_api(
1631
+ *_param,
1632
+ _request_timeout=_request_timeout
1633
+ )
1634
+ response_data.read()
1635
+ return self.api_client.response_deserialize(
1636
+ response_data=response_data,
1637
+ response_types_map=_response_types_map,
1638
+ ).data
1639
+
1640
+
1641
+ @validate_call
1642
+ def update_ai_session_with_http_info(
1643
+ self,
1644
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
1645
+ session_id: Annotated[StrictStr, Field(description="The session ID")],
1646
+ update_ai_session_request: UpdateAISessionRequest,
1647
+ _request_timeout: Union[
1648
+ None,
1649
+ Annotated[StrictFloat, Field(gt=0)],
1650
+ Tuple[
1651
+ Annotated[StrictFloat, Field(gt=0)],
1652
+ Annotated[StrictFloat, Field(gt=0)]
1653
+ ]
1654
+ ] = None,
1655
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1656
+ _content_type: Optional[StrictStr] = None,
1657
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1658
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1659
+ ) -> ApiResponse[UpdateAISession200Response]:
1660
+ """Update Session
1661
+
1662
+ Updates session with new conversation messages and tracks token usage. Appends new messages to conversation history and updates session stats. * * **Typical Flow:** * 1. Get session to retrieve conversation history * 2. Call AI inference with full message history * 3. Update session with new user + assistant messages
1663
+
1664
+ :param organisation: The organisation ID (required)
1665
+ :type organisation: str
1666
+ :param session_id: The session ID (required)
1667
+ :type session_id: str
1668
+ :param update_ai_session_request: (required)
1669
+ :type update_ai_session_request: UpdateAISessionRequest
1670
+ :param _request_timeout: timeout setting for this request. If one
1671
+ number provided, it will be total request
1672
+ timeout. It can also be a pair (tuple) of
1673
+ (connection, read) timeouts.
1674
+ :type _request_timeout: int, tuple(int, int), optional
1675
+ :param _request_auth: set to override the auth_settings for an a single
1676
+ request; this effectively ignores the
1677
+ authentication in the spec for a single request.
1678
+ :type _request_auth: dict, optional
1679
+ :param _content_type: force content-type for the request.
1680
+ :type _content_type: str, Optional
1681
+ :param _headers: set to override the headers for a single
1682
+ request; this effectively ignores the headers
1683
+ in the spec for a single request.
1684
+ :type _headers: dict, optional
1685
+ :param _host_index: set to override the host_index for a single
1686
+ request; this effectively ignores the host_index
1687
+ in the spec for a single request.
1688
+ :type _host_index: int, optional
1689
+ :return: Returns the result object.
1690
+ """ # noqa: E501
1691
+
1692
+ _param = self._update_ai_session_serialize(
1693
+ organisation=organisation,
1694
+ session_id=session_id,
1695
+ update_ai_session_request=update_ai_session_request,
1696
+ _request_auth=_request_auth,
1697
+ _content_type=_content_type,
1698
+ _headers=_headers,
1699
+ _host_index=_host_index
1700
+ )
1701
+
1702
+ _response_types_map: Dict[str, Optional[str]] = {
1703
+ '200': "UpdateAISession200Response",
1704
+ '400': None,
1705
+ '403': None,
1706
+ '404': None,
1707
+ '500': None,
1708
+ }
1709
+ response_data = self.api_client.call_api(
1710
+ *_param,
1711
+ _request_timeout=_request_timeout
1712
+ )
1713
+ response_data.read()
1714
+ return self.api_client.response_deserialize(
1715
+ response_data=response_data,
1716
+ response_types_map=_response_types_map,
1717
+ )
1718
+
1719
+
1720
+ @validate_call
1721
+ def update_ai_session_without_preload_content(
1722
+ self,
1723
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
1724
+ session_id: Annotated[StrictStr, Field(description="The session ID")],
1725
+ update_ai_session_request: UpdateAISessionRequest,
1726
+ _request_timeout: Union[
1727
+ None,
1728
+ Annotated[StrictFloat, Field(gt=0)],
1729
+ Tuple[
1730
+ Annotated[StrictFloat, Field(gt=0)],
1731
+ Annotated[StrictFloat, Field(gt=0)]
1732
+ ]
1733
+ ] = None,
1734
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1735
+ _content_type: Optional[StrictStr] = None,
1736
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1737
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1738
+ ) -> RESTResponseType:
1739
+ """Update Session
1740
+
1741
+ Updates session with new conversation messages and tracks token usage. Appends new messages to conversation history and updates session stats. * * **Typical Flow:** * 1. Get session to retrieve conversation history * 2. Call AI inference with full message history * 3. Update session with new user + assistant messages
1742
+
1743
+ :param organisation: The organisation ID (required)
1744
+ :type organisation: str
1745
+ :param session_id: The session ID (required)
1746
+ :type session_id: str
1747
+ :param update_ai_session_request: (required)
1748
+ :type update_ai_session_request: UpdateAISessionRequest
1749
+ :param _request_timeout: timeout setting for this request. If one
1750
+ number provided, it will be total request
1751
+ timeout. It can also be a pair (tuple) of
1752
+ (connection, read) timeouts.
1753
+ :type _request_timeout: int, tuple(int, int), optional
1754
+ :param _request_auth: set to override the auth_settings for an a single
1755
+ request; this effectively ignores the
1756
+ authentication in the spec for a single request.
1757
+ :type _request_auth: dict, optional
1758
+ :param _content_type: force content-type for the request.
1759
+ :type _content_type: str, Optional
1760
+ :param _headers: set to override the headers for a single
1761
+ request; this effectively ignores the headers
1762
+ in the spec for a single request.
1763
+ :type _headers: dict, optional
1764
+ :param _host_index: set to override the host_index for a single
1765
+ request; this effectively ignores the host_index
1766
+ in the spec for a single request.
1767
+ :type _host_index: int, optional
1768
+ :return: Returns the result object.
1769
+ """ # noqa: E501
1770
+
1771
+ _param = self._update_ai_session_serialize(
1772
+ organisation=organisation,
1773
+ session_id=session_id,
1774
+ update_ai_session_request=update_ai_session_request,
1775
+ _request_auth=_request_auth,
1776
+ _content_type=_content_type,
1777
+ _headers=_headers,
1778
+ _host_index=_host_index
1779
+ )
1780
+
1781
+ _response_types_map: Dict[str, Optional[str]] = {
1782
+ '200': "UpdateAISession200Response",
1783
+ '400': None,
1784
+ '403': None,
1785
+ '404': None,
1786
+ '500': None,
1787
+ }
1788
+ response_data = self.api_client.call_api(
1789
+ *_param,
1790
+ _request_timeout=_request_timeout
1791
+ )
1792
+ return response_data.response
1793
+
1794
+
1795
+ def _update_ai_session_serialize(
1796
+ self,
1797
+ organisation,
1798
+ session_id,
1799
+ update_ai_session_request,
1800
+ _request_auth,
1801
+ _content_type,
1802
+ _headers,
1803
+ _host_index,
1804
+ ) -> RequestSerialized:
1805
+
1806
+ _host = None
1807
+
1808
+ _collection_formats: Dict[str, str] = {
1809
+ }
1810
+
1811
+ _path_params: Dict[str, str] = {}
1812
+ _query_params: List[Tuple[str, str]] = []
1813
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1814
+ _form_params: List[Tuple[str, str]] = []
1815
+ _files: Dict[
1816
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1817
+ ] = {}
1818
+ _body_params: Optional[bytes] = None
1819
+
1820
+ # process the path parameters
1821
+ if organisation is not None:
1822
+ _path_params['organisation'] = organisation
1823
+ if session_id is not None:
1824
+ _path_params['sessionId'] = session_id
1825
+ # process the query parameters
1826
+ # process the header parameters
1827
+ # process the form parameters
1828
+ # process the body parameter
1829
+ if update_ai_session_request is not None:
1830
+ _body_params = update_ai_session_request
1831
+
1832
+
1833
+ # set the HTTP header `Accept`
1834
+ if 'Accept' not in _header_params:
1835
+ _header_params['Accept'] = self.api_client.select_header_accept(
1836
+ [
1837
+ 'application/json'
1838
+ ]
1839
+ )
1840
+
1841
+ # set the HTTP header `Content-Type`
1842
+ if _content_type:
1843
+ _header_params['Content-Type'] = _content_type
1844
+ else:
1845
+ _default_content_type = (
1846
+ self.api_client.select_header_content_type(
1847
+ [
1848
+ 'application/json'
1849
+ ]
1850
+ )
1851
+ )
1852
+ if _default_content_type is not None:
1853
+ _header_params['Content-Type'] = _default_content_type
1854
+
1855
+ # authentication setting
1856
+ _auth_settings: List[str] = [
1857
+ 'BearerAuth'
1858
+ ]
1859
+
1860
+ return self.api_client.param_serialize(
1861
+ method='PUT',
1862
+ resource_path='/api/v3/organizations/{organisation}/ai/sessions/{sessionId}',
1863
+ path_params=_path_params,
1864
+ query_params=_query_params,
1865
+ header_params=_header_params,
1866
+ body=_body_params,
1867
+ post_params=_form_params,
1868
+ files=_files,
1869
+ auth_settings=_auth_settings,
1870
+ collection_formats=_collection_formats,
1871
+ _host=_host,
1872
+ _request_auth=_request_auth
1873
+ )
1874
+
1875
+