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,1831 @@
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, StrictStr
20
+ from typing import Optional
21
+ from typing_extensions import Annotated
22
+ from quantcdn.models.chat_with_ai_agent200_response import ChatWithAIAgent200Response
23
+ from quantcdn.models.chat_with_ai_agent_request import ChatWithAIAgentRequest
24
+ from quantcdn.models.create_ai_agent201_response import CreateAIAgent201Response
25
+ from quantcdn.models.create_ai_agent_request import CreateAIAgentRequest
26
+ from quantcdn.models.delete_ai_agent200_response import DeleteAIAgent200Response
27
+ from quantcdn.models.get_ai_agent200_response import GetAIAgent200Response
28
+ from quantcdn.models.list_ai_agents200_response import ListAIAgents200Response
29
+ from quantcdn.models.update_ai_agent200_response import UpdateAIAgent200Response
30
+ from quantcdn.models.update_ai_agent_request import UpdateAIAgentRequest
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 AIAgentsApi:
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 chat_with_ai_agent(
52
+ self,
53
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
54
+ agent_id: Annotated[StrictStr, Field(description="The agent ID")],
55
+ chat_with_ai_agent_request: ChatWithAIAgentRequest,
56
+ _request_timeout: Union[
57
+ None,
58
+ Annotated[StrictFloat, Field(gt=0)],
59
+ Tuple[
60
+ Annotated[StrictFloat, Field(gt=0)],
61
+ Annotated[StrictFloat, Field(gt=0)]
62
+ ]
63
+ ] = None,
64
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
65
+ _content_type: Optional[StrictStr] = None,
66
+ _headers: Optional[Dict[StrictStr, Any]] = None,
67
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
68
+ ) -> ChatWithAIAgent200Response:
69
+ """Chat with AI Agent
70
+
71
+ Initiates a chat session with a specific AI agent. The agent's configuration (system prompt, temperature, model, allowed tools) is automatically applied. * * **Key Features:** * - **Session Management**: Automatic session creation and state tracking * - **Multi-turn Conversations**: Full conversation history maintained server-side * - Agent's system prompt is prepended to conversation * - Only agent's allowed tools are available * - All tools are auto-executed (no client confirmation) * - Temperature and model from agent config * * **Session Support:** * - Omit `sessionId` to create a new session automatically * - Include `sessionId` to continue an existing conversation * - Sessions expire after 60 minutes of inactivity * - Use `/sessions/{sessionId}` to retrieve full conversation history
72
+
73
+ :param organisation: The organisation ID (required)
74
+ :type organisation: str
75
+ :param agent_id: The agent ID (required)
76
+ :type agent_id: str
77
+ :param chat_with_ai_agent_request: (required)
78
+ :type chat_with_ai_agent_request: ChatWithAIAgentRequest
79
+ :param _request_timeout: timeout setting for this request. If one
80
+ number provided, it will be total request
81
+ timeout. It can also be a pair (tuple) of
82
+ (connection, read) timeouts.
83
+ :type _request_timeout: int, tuple(int, int), optional
84
+ :param _request_auth: set to override the auth_settings for an a single
85
+ request; this effectively ignores the
86
+ authentication in the spec for a single request.
87
+ :type _request_auth: dict, optional
88
+ :param _content_type: force content-type for the request.
89
+ :type _content_type: str, Optional
90
+ :param _headers: set to override the headers for a single
91
+ request; this effectively ignores the headers
92
+ in the spec for a single request.
93
+ :type _headers: dict, optional
94
+ :param _host_index: set to override the host_index for a single
95
+ request; this effectively ignores the host_index
96
+ in the spec for a single request.
97
+ :type _host_index: int, optional
98
+ :return: Returns the result object.
99
+ """ # noqa: E501
100
+
101
+ _param = self._chat_with_ai_agent_serialize(
102
+ organisation=organisation,
103
+ agent_id=agent_id,
104
+ chat_with_ai_agent_request=chat_with_ai_agent_request,
105
+ _request_auth=_request_auth,
106
+ _content_type=_content_type,
107
+ _headers=_headers,
108
+ _host_index=_host_index
109
+ )
110
+
111
+ _response_types_map: Dict[str, Optional[str]] = {
112
+ '200': "ChatWithAIAgent200Response",
113
+ '400': None,
114
+ '403': None,
115
+ '404': None,
116
+ '500': None,
117
+ }
118
+ response_data = self.api_client.call_api(
119
+ *_param,
120
+ _request_timeout=_request_timeout
121
+ )
122
+ response_data.read()
123
+ return self.api_client.response_deserialize(
124
+ response_data=response_data,
125
+ response_types_map=_response_types_map,
126
+ ).data
127
+
128
+
129
+ @validate_call
130
+ def chat_with_ai_agent_with_http_info(
131
+ self,
132
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
133
+ agent_id: Annotated[StrictStr, Field(description="The agent ID")],
134
+ chat_with_ai_agent_request: ChatWithAIAgentRequest,
135
+ _request_timeout: Union[
136
+ None,
137
+ Annotated[StrictFloat, Field(gt=0)],
138
+ Tuple[
139
+ Annotated[StrictFloat, Field(gt=0)],
140
+ Annotated[StrictFloat, Field(gt=0)]
141
+ ]
142
+ ] = None,
143
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
144
+ _content_type: Optional[StrictStr] = None,
145
+ _headers: Optional[Dict[StrictStr, Any]] = None,
146
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
147
+ ) -> ApiResponse[ChatWithAIAgent200Response]:
148
+ """Chat with AI Agent
149
+
150
+ Initiates a chat session with a specific AI agent. The agent's configuration (system prompt, temperature, model, allowed tools) is automatically applied. * * **Key Features:** * - **Session Management**: Automatic session creation and state tracking * - **Multi-turn Conversations**: Full conversation history maintained server-side * - Agent's system prompt is prepended to conversation * - Only agent's allowed tools are available * - All tools are auto-executed (no client confirmation) * - Temperature and model from agent config * * **Session Support:** * - Omit `sessionId` to create a new session automatically * - Include `sessionId` to continue an existing conversation * - Sessions expire after 60 minutes of inactivity * - Use `/sessions/{sessionId}` to retrieve full conversation history
151
+
152
+ :param organisation: The organisation ID (required)
153
+ :type organisation: str
154
+ :param agent_id: The agent ID (required)
155
+ :type agent_id: str
156
+ :param chat_with_ai_agent_request: (required)
157
+ :type chat_with_ai_agent_request: ChatWithAIAgentRequest
158
+ :param _request_timeout: timeout setting for this request. If one
159
+ number provided, it will be total request
160
+ timeout. It can also be a pair (tuple) of
161
+ (connection, read) timeouts.
162
+ :type _request_timeout: int, tuple(int, int), optional
163
+ :param _request_auth: set to override the auth_settings for an a single
164
+ request; this effectively ignores the
165
+ authentication in the spec for a single request.
166
+ :type _request_auth: dict, optional
167
+ :param _content_type: force content-type for the request.
168
+ :type _content_type: str, Optional
169
+ :param _headers: set to override the headers for a single
170
+ request; this effectively ignores the headers
171
+ in the spec for a single request.
172
+ :type _headers: dict, optional
173
+ :param _host_index: set to override the host_index for a single
174
+ request; this effectively ignores the host_index
175
+ in the spec for a single request.
176
+ :type _host_index: int, optional
177
+ :return: Returns the result object.
178
+ """ # noqa: E501
179
+
180
+ _param = self._chat_with_ai_agent_serialize(
181
+ organisation=organisation,
182
+ agent_id=agent_id,
183
+ chat_with_ai_agent_request=chat_with_ai_agent_request,
184
+ _request_auth=_request_auth,
185
+ _content_type=_content_type,
186
+ _headers=_headers,
187
+ _host_index=_host_index
188
+ )
189
+
190
+ _response_types_map: Dict[str, Optional[str]] = {
191
+ '200': "ChatWithAIAgent200Response",
192
+ '400': None,
193
+ '403': None,
194
+ '404': None,
195
+ '500': None,
196
+ }
197
+ response_data = self.api_client.call_api(
198
+ *_param,
199
+ _request_timeout=_request_timeout
200
+ )
201
+ response_data.read()
202
+ return self.api_client.response_deserialize(
203
+ response_data=response_data,
204
+ response_types_map=_response_types_map,
205
+ )
206
+
207
+
208
+ @validate_call
209
+ def chat_with_ai_agent_without_preload_content(
210
+ self,
211
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
212
+ agent_id: Annotated[StrictStr, Field(description="The agent ID")],
213
+ chat_with_ai_agent_request: ChatWithAIAgentRequest,
214
+ _request_timeout: Union[
215
+ None,
216
+ Annotated[StrictFloat, Field(gt=0)],
217
+ Tuple[
218
+ Annotated[StrictFloat, Field(gt=0)],
219
+ Annotated[StrictFloat, Field(gt=0)]
220
+ ]
221
+ ] = None,
222
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
223
+ _content_type: Optional[StrictStr] = None,
224
+ _headers: Optional[Dict[StrictStr, Any]] = None,
225
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
226
+ ) -> RESTResponseType:
227
+ """Chat with AI Agent
228
+
229
+ Initiates a chat session with a specific AI agent. The agent's configuration (system prompt, temperature, model, allowed tools) is automatically applied. * * **Key Features:** * - **Session Management**: Automatic session creation and state tracking * - **Multi-turn Conversations**: Full conversation history maintained server-side * - Agent's system prompt is prepended to conversation * - Only agent's allowed tools are available * - All tools are auto-executed (no client confirmation) * - Temperature and model from agent config * * **Session Support:** * - Omit `sessionId` to create a new session automatically * - Include `sessionId` to continue an existing conversation * - Sessions expire after 60 minutes of inactivity * - Use `/sessions/{sessionId}` to retrieve full conversation history
230
+
231
+ :param organisation: The organisation ID (required)
232
+ :type organisation: str
233
+ :param agent_id: The agent ID (required)
234
+ :type agent_id: str
235
+ :param chat_with_ai_agent_request: (required)
236
+ :type chat_with_ai_agent_request: ChatWithAIAgentRequest
237
+ :param _request_timeout: timeout setting for this request. If one
238
+ number provided, it will be total request
239
+ timeout. It can also be a pair (tuple) of
240
+ (connection, read) timeouts.
241
+ :type _request_timeout: int, tuple(int, int), optional
242
+ :param _request_auth: set to override the auth_settings for an a single
243
+ request; this effectively ignores the
244
+ authentication in the spec for a single request.
245
+ :type _request_auth: dict, optional
246
+ :param _content_type: force content-type for the request.
247
+ :type _content_type: str, Optional
248
+ :param _headers: set to override the headers for a single
249
+ request; this effectively ignores the headers
250
+ in the spec for a single request.
251
+ :type _headers: dict, optional
252
+ :param _host_index: set to override the host_index for a single
253
+ request; this effectively ignores the host_index
254
+ in the spec for a single request.
255
+ :type _host_index: int, optional
256
+ :return: Returns the result object.
257
+ """ # noqa: E501
258
+
259
+ _param = self._chat_with_ai_agent_serialize(
260
+ organisation=organisation,
261
+ agent_id=agent_id,
262
+ chat_with_ai_agent_request=chat_with_ai_agent_request,
263
+ _request_auth=_request_auth,
264
+ _content_type=_content_type,
265
+ _headers=_headers,
266
+ _host_index=_host_index
267
+ )
268
+
269
+ _response_types_map: Dict[str, Optional[str]] = {
270
+ '200': "ChatWithAIAgent200Response",
271
+ '400': None,
272
+ '403': None,
273
+ '404': None,
274
+ '500': None,
275
+ }
276
+ response_data = self.api_client.call_api(
277
+ *_param,
278
+ _request_timeout=_request_timeout
279
+ )
280
+ return response_data.response
281
+
282
+
283
+ def _chat_with_ai_agent_serialize(
284
+ self,
285
+ organisation,
286
+ agent_id,
287
+ chat_with_ai_agent_request,
288
+ _request_auth,
289
+ _content_type,
290
+ _headers,
291
+ _host_index,
292
+ ) -> RequestSerialized:
293
+
294
+ _host = None
295
+
296
+ _collection_formats: Dict[str, str] = {
297
+ }
298
+
299
+ _path_params: Dict[str, str] = {}
300
+ _query_params: List[Tuple[str, str]] = []
301
+ _header_params: Dict[str, Optional[str]] = _headers or {}
302
+ _form_params: List[Tuple[str, str]] = []
303
+ _files: Dict[
304
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
305
+ ] = {}
306
+ _body_params: Optional[bytes] = None
307
+
308
+ # process the path parameters
309
+ if organisation is not None:
310
+ _path_params['organisation'] = organisation
311
+ if agent_id is not None:
312
+ _path_params['agentId'] = agent_id
313
+ # process the query parameters
314
+ # process the header parameters
315
+ # process the form parameters
316
+ # process the body parameter
317
+ if chat_with_ai_agent_request is not None:
318
+ _body_params = chat_with_ai_agent_request
319
+
320
+
321
+ # set the HTTP header `Accept`
322
+ if 'Accept' not in _header_params:
323
+ _header_params['Accept'] = self.api_client.select_header_accept(
324
+ [
325
+ 'application/json'
326
+ ]
327
+ )
328
+
329
+ # set the HTTP header `Content-Type`
330
+ if _content_type:
331
+ _header_params['Content-Type'] = _content_type
332
+ else:
333
+ _default_content_type = (
334
+ self.api_client.select_header_content_type(
335
+ [
336
+ 'application/json'
337
+ ]
338
+ )
339
+ )
340
+ if _default_content_type is not None:
341
+ _header_params['Content-Type'] = _default_content_type
342
+
343
+ # authentication setting
344
+ _auth_settings: List[str] = [
345
+ 'BearerAuth'
346
+ ]
347
+
348
+ return self.api_client.param_serialize(
349
+ method='POST',
350
+ resource_path='/api/v3/organizations/{organisation}/ai/agents/{agentId}/chat',
351
+ path_params=_path_params,
352
+ query_params=_query_params,
353
+ header_params=_header_params,
354
+ body=_body_params,
355
+ post_params=_form_params,
356
+ files=_files,
357
+ auth_settings=_auth_settings,
358
+ collection_formats=_collection_formats,
359
+ _host=_host,
360
+ _request_auth=_request_auth
361
+ )
362
+
363
+
364
+
365
+
366
+ @validate_call
367
+ def create_ai_agent(
368
+ self,
369
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
370
+ create_ai_agent_request: CreateAIAgentRequest,
371
+ _request_timeout: Union[
372
+ None,
373
+ Annotated[StrictFloat, Field(gt=0)],
374
+ Tuple[
375
+ Annotated[StrictFloat, Field(gt=0)],
376
+ Annotated[StrictFloat, Field(gt=0)]
377
+ ]
378
+ ] = None,
379
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
380
+ _content_type: Optional[StrictStr] = None,
381
+ _headers: Optional[Dict[StrictStr, Any]] = None,
382
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
383
+ ) -> CreateAIAgent201Response:
384
+ """Create AI Agent
385
+
386
+ Creates a new AI agent with specific configuration, system prompt, and tool permissions. * * **Agent Configuration:** * - **System Prompt**: Instructions that guide the agent's behavior * - **Model**: Which foundation model to use (e.g., 'amazon.nova-pro-v1:0') * - **Temperature**: Creativity level (0-1) * - **Allowed Tools**: Which tools the agent can auto-execute * - **Allowed Collections**: Vector DB collections for RAG * - **Group**: Optional categorization (e.g., 'development', 'compliance') * * **Auto-Execution:** * All tools are automatically executed when an agent requests them (no client confirmation needed).
387
+
388
+ :param organisation: The organisation ID (required)
389
+ :type organisation: str
390
+ :param create_ai_agent_request: (required)
391
+ :type create_ai_agent_request: CreateAIAgentRequest
392
+ :param _request_timeout: timeout setting for this request. If one
393
+ number provided, it will be total request
394
+ timeout. It can also be a pair (tuple) of
395
+ (connection, read) timeouts.
396
+ :type _request_timeout: int, tuple(int, int), optional
397
+ :param _request_auth: set to override the auth_settings for an a single
398
+ request; this effectively ignores the
399
+ authentication in the spec for a single request.
400
+ :type _request_auth: dict, optional
401
+ :param _content_type: force content-type for the request.
402
+ :type _content_type: str, Optional
403
+ :param _headers: set to override the headers for a single
404
+ request; this effectively ignores the headers
405
+ in the spec for a single request.
406
+ :type _headers: dict, optional
407
+ :param _host_index: set to override the host_index for a single
408
+ request; this effectively ignores the host_index
409
+ in the spec for a single request.
410
+ :type _host_index: int, optional
411
+ :return: Returns the result object.
412
+ """ # noqa: E501
413
+
414
+ _param = self._create_ai_agent_serialize(
415
+ organisation=organisation,
416
+ create_ai_agent_request=create_ai_agent_request,
417
+ _request_auth=_request_auth,
418
+ _content_type=_content_type,
419
+ _headers=_headers,
420
+ _host_index=_host_index
421
+ )
422
+
423
+ _response_types_map: Dict[str, Optional[str]] = {
424
+ '201': "CreateAIAgent201Response",
425
+ '400': None,
426
+ '403': None,
427
+ '500': None,
428
+ }
429
+ response_data = self.api_client.call_api(
430
+ *_param,
431
+ _request_timeout=_request_timeout
432
+ )
433
+ response_data.read()
434
+ return self.api_client.response_deserialize(
435
+ response_data=response_data,
436
+ response_types_map=_response_types_map,
437
+ ).data
438
+
439
+
440
+ @validate_call
441
+ def create_ai_agent_with_http_info(
442
+ self,
443
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
444
+ create_ai_agent_request: CreateAIAgentRequest,
445
+ _request_timeout: Union[
446
+ None,
447
+ Annotated[StrictFloat, Field(gt=0)],
448
+ Tuple[
449
+ Annotated[StrictFloat, Field(gt=0)],
450
+ Annotated[StrictFloat, Field(gt=0)]
451
+ ]
452
+ ] = None,
453
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
454
+ _content_type: Optional[StrictStr] = None,
455
+ _headers: Optional[Dict[StrictStr, Any]] = None,
456
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
457
+ ) -> ApiResponse[CreateAIAgent201Response]:
458
+ """Create AI Agent
459
+
460
+ Creates a new AI agent with specific configuration, system prompt, and tool permissions. * * **Agent Configuration:** * - **System Prompt**: Instructions that guide the agent's behavior * - **Model**: Which foundation model to use (e.g., 'amazon.nova-pro-v1:0') * - **Temperature**: Creativity level (0-1) * - **Allowed Tools**: Which tools the agent can auto-execute * - **Allowed Collections**: Vector DB collections for RAG * - **Group**: Optional categorization (e.g., 'development', 'compliance') * * **Auto-Execution:** * All tools are automatically executed when an agent requests them (no client confirmation needed).
461
+
462
+ :param organisation: The organisation ID (required)
463
+ :type organisation: str
464
+ :param create_ai_agent_request: (required)
465
+ :type create_ai_agent_request: CreateAIAgentRequest
466
+ :param _request_timeout: timeout setting for this request. If one
467
+ number provided, it will be total request
468
+ timeout. It can also be a pair (tuple) of
469
+ (connection, read) timeouts.
470
+ :type _request_timeout: int, tuple(int, int), optional
471
+ :param _request_auth: set to override the auth_settings for an a single
472
+ request; this effectively ignores the
473
+ authentication in the spec for a single request.
474
+ :type _request_auth: dict, optional
475
+ :param _content_type: force content-type for the request.
476
+ :type _content_type: str, Optional
477
+ :param _headers: set to override the headers for a single
478
+ request; this effectively ignores the headers
479
+ in the spec for a single request.
480
+ :type _headers: dict, optional
481
+ :param _host_index: set to override the host_index for a single
482
+ request; this effectively ignores the host_index
483
+ in the spec for a single request.
484
+ :type _host_index: int, optional
485
+ :return: Returns the result object.
486
+ """ # noqa: E501
487
+
488
+ _param = self._create_ai_agent_serialize(
489
+ organisation=organisation,
490
+ create_ai_agent_request=create_ai_agent_request,
491
+ _request_auth=_request_auth,
492
+ _content_type=_content_type,
493
+ _headers=_headers,
494
+ _host_index=_host_index
495
+ )
496
+
497
+ _response_types_map: Dict[str, Optional[str]] = {
498
+ '201': "CreateAIAgent201Response",
499
+ '400': None,
500
+ '403': None,
501
+ '500': None,
502
+ }
503
+ response_data = self.api_client.call_api(
504
+ *_param,
505
+ _request_timeout=_request_timeout
506
+ )
507
+ response_data.read()
508
+ return self.api_client.response_deserialize(
509
+ response_data=response_data,
510
+ response_types_map=_response_types_map,
511
+ )
512
+
513
+
514
+ @validate_call
515
+ def create_ai_agent_without_preload_content(
516
+ self,
517
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
518
+ create_ai_agent_request: CreateAIAgentRequest,
519
+ _request_timeout: Union[
520
+ None,
521
+ Annotated[StrictFloat, Field(gt=0)],
522
+ Tuple[
523
+ Annotated[StrictFloat, Field(gt=0)],
524
+ Annotated[StrictFloat, Field(gt=0)]
525
+ ]
526
+ ] = None,
527
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
528
+ _content_type: Optional[StrictStr] = None,
529
+ _headers: Optional[Dict[StrictStr, Any]] = None,
530
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
531
+ ) -> RESTResponseType:
532
+ """Create AI Agent
533
+
534
+ Creates a new AI agent with specific configuration, system prompt, and tool permissions. * * **Agent Configuration:** * - **System Prompt**: Instructions that guide the agent's behavior * - **Model**: Which foundation model to use (e.g., 'amazon.nova-pro-v1:0') * - **Temperature**: Creativity level (0-1) * - **Allowed Tools**: Which tools the agent can auto-execute * - **Allowed Collections**: Vector DB collections for RAG * - **Group**: Optional categorization (e.g., 'development', 'compliance') * * **Auto-Execution:** * All tools are automatically executed when an agent requests them (no client confirmation needed).
535
+
536
+ :param organisation: The organisation ID (required)
537
+ :type organisation: str
538
+ :param create_ai_agent_request: (required)
539
+ :type create_ai_agent_request: CreateAIAgentRequest
540
+ :param _request_timeout: timeout setting for this request. If one
541
+ number provided, it will be total request
542
+ timeout. It can also be a pair (tuple) of
543
+ (connection, read) timeouts.
544
+ :type _request_timeout: int, tuple(int, int), optional
545
+ :param _request_auth: set to override the auth_settings for an a single
546
+ request; this effectively ignores the
547
+ authentication in the spec for a single request.
548
+ :type _request_auth: dict, optional
549
+ :param _content_type: force content-type for the request.
550
+ :type _content_type: str, Optional
551
+ :param _headers: set to override the headers for a single
552
+ request; this effectively ignores the headers
553
+ in the spec for a single request.
554
+ :type _headers: dict, optional
555
+ :param _host_index: set to override the host_index for a single
556
+ request; this effectively ignores the host_index
557
+ in the spec for a single request.
558
+ :type _host_index: int, optional
559
+ :return: Returns the result object.
560
+ """ # noqa: E501
561
+
562
+ _param = self._create_ai_agent_serialize(
563
+ organisation=organisation,
564
+ create_ai_agent_request=create_ai_agent_request,
565
+ _request_auth=_request_auth,
566
+ _content_type=_content_type,
567
+ _headers=_headers,
568
+ _host_index=_host_index
569
+ )
570
+
571
+ _response_types_map: Dict[str, Optional[str]] = {
572
+ '201': "CreateAIAgent201Response",
573
+ '400': None,
574
+ '403': None,
575
+ '500': None,
576
+ }
577
+ response_data = self.api_client.call_api(
578
+ *_param,
579
+ _request_timeout=_request_timeout
580
+ )
581
+ return response_data.response
582
+
583
+
584
+ def _create_ai_agent_serialize(
585
+ self,
586
+ organisation,
587
+ create_ai_agent_request,
588
+ _request_auth,
589
+ _content_type,
590
+ _headers,
591
+ _host_index,
592
+ ) -> RequestSerialized:
593
+
594
+ _host = None
595
+
596
+ _collection_formats: Dict[str, str] = {
597
+ }
598
+
599
+ _path_params: Dict[str, str] = {}
600
+ _query_params: List[Tuple[str, str]] = []
601
+ _header_params: Dict[str, Optional[str]] = _headers or {}
602
+ _form_params: List[Tuple[str, str]] = []
603
+ _files: Dict[
604
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
605
+ ] = {}
606
+ _body_params: Optional[bytes] = None
607
+
608
+ # process the path parameters
609
+ if organisation is not None:
610
+ _path_params['organisation'] = organisation
611
+ # process the query parameters
612
+ # process the header parameters
613
+ # process the form parameters
614
+ # process the body parameter
615
+ if create_ai_agent_request is not None:
616
+ _body_params = create_ai_agent_request
617
+
618
+
619
+ # set the HTTP header `Accept`
620
+ if 'Accept' not in _header_params:
621
+ _header_params['Accept'] = self.api_client.select_header_accept(
622
+ [
623
+ 'application/json'
624
+ ]
625
+ )
626
+
627
+ # set the HTTP header `Content-Type`
628
+ if _content_type:
629
+ _header_params['Content-Type'] = _content_type
630
+ else:
631
+ _default_content_type = (
632
+ self.api_client.select_header_content_type(
633
+ [
634
+ 'application/json'
635
+ ]
636
+ )
637
+ )
638
+ if _default_content_type is not None:
639
+ _header_params['Content-Type'] = _default_content_type
640
+
641
+ # authentication setting
642
+ _auth_settings: List[str] = [
643
+ 'BearerAuth'
644
+ ]
645
+
646
+ return self.api_client.param_serialize(
647
+ method='POST',
648
+ resource_path='/api/v3/organizations/{organisation}/ai/agents',
649
+ path_params=_path_params,
650
+ query_params=_query_params,
651
+ header_params=_header_params,
652
+ body=_body_params,
653
+ post_params=_form_params,
654
+ files=_files,
655
+ auth_settings=_auth_settings,
656
+ collection_formats=_collection_formats,
657
+ _host=_host,
658
+ _request_auth=_request_auth
659
+ )
660
+
661
+
662
+
663
+
664
+ @validate_call
665
+ def delete_ai_agent(
666
+ self,
667
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
668
+ agent_id: Annotated[StrictStr, Field(description="The agent ID")],
669
+ _request_timeout: Union[
670
+ None,
671
+ Annotated[StrictFloat, Field(gt=0)],
672
+ Tuple[
673
+ Annotated[StrictFloat, Field(gt=0)],
674
+ Annotated[StrictFloat, Field(gt=0)]
675
+ ]
676
+ ] = None,
677
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
678
+ _content_type: Optional[StrictStr] = None,
679
+ _headers: Optional[Dict[StrictStr, Any]] = None,
680
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
681
+ ) -> DeleteAIAgent200Response:
682
+ """Delete Agent
683
+
684
+ Permanently deletes an AI agent. This action cannot be undone.
685
+
686
+ :param organisation: The organisation ID (required)
687
+ :type organisation: str
688
+ :param agent_id: The agent ID (required)
689
+ :type agent_id: str
690
+ :param _request_timeout: timeout setting for this request. If one
691
+ number provided, it will be total request
692
+ timeout. It can also be a pair (tuple) of
693
+ (connection, read) timeouts.
694
+ :type _request_timeout: int, tuple(int, int), optional
695
+ :param _request_auth: set to override the auth_settings for an a single
696
+ request; this effectively ignores the
697
+ authentication in the spec for a single request.
698
+ :type _request_auth: dict, optional
699
+ :param _content_type: force content-type for the request.
700
+ :type _content_type: str, Optional
701
+ :param _headers: set to override the headers for a single
702
+ request; this effectively ignores the headers
703
+ in the spec for a single request.
704
+ :type _headers: dict, optional
705
+ :param _host_index: set to override the host_index for a single
706
+ request; this effectively ignores the host_index
707
+ in the spec for a single request.
708
+ :type _host_index: int, optional
709
+ :return: Returns the result object.
710
+ """ # noqa: E501
711
+
712
+ _param = self._delete_ai_agent_serialize(
713
+ organisation=organisation,
714
+ agent_id=agent_id,
715
+ _request_auth=_request_auth,
716
+ _content_type=_content_type,
717
+ _headers=_headers,
718
+ _host_index=_host_index
719
+ )
720
+
721
+ _response_types_map: Dict[str, Optional[str]] = {
722
+ '200': "DeleteAIAgent200Response",
723
+ '403': None,
724
+ '404': None,
725
+ '500': None,
726
+ }
727
+ response_data = self.api_client.call_api(
728
+ *_param,
729
+ _request_timeout=_request_timeout
730
+ )
731
+ response_data.read()
732
+ return self.api_client.response_deserialize(
733
+ response_data=response_data,
734
+ response_types_map=_response_types_map,
735
+ ).data
736
+
737
+
738
+ @validate_call
739
+ def delete_ai_agent_with_http_info(
740
+ self,
741
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
742
+ agent_id: Annotated[StrictStr, Field(description="The agent ID")],
743
+ _request_timeout: Union[
744
+ None,
745
+ Annotated[StrictFloat, Field(gt=0)],
746
+ Tuple[
747
+ Annotated[StrictFloat, Field(gt=0)],
748
+ Annotated[StrictFloat, Field(gt=0)]
749
+ ]
750
+ ] = None,
751
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
752
+ _content_type: Optional[StrictStr] = None,
753
+ _headers: Optional[Dict[StrictStr, Any]] = None,
754
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
755
+ ) -> ApiResponse[DeleteAIAgent200Response]:
756
+ """Delete Agent
757
+
758
+ Permanently deletes an AI agent. This action cannot be undone.
759
+
760
+ :param organisation: The organisation ID (required)
761
+ :type organisation: str
762
+ :param agent_id: The agent ID (required)
763
+ :type agent_id: str
764
+ :param _request_timeout: timeout setting for this request. If one
765
+ number provided, it will be total request
766
+ timeout. It can also be a pair (tuple) of
767
+ (connection, read) timeouts.
768
+ :type _request_timeout: int, tuple(int, int), optional
769
+ :param _request_auth: set to override the auth_settings for an a single
770
+ request; this effectively ignores the
771
+ authentication in the spec for a single request.
772
+ :type _request_auth: dict, optional
773
+ :param _content_type: force content-type for the request.
774
+ :type _content_type: str, Optional
775
+ :param _headers: set to override the headers for a single
776
+ request; this effectively ignores the headers
777
+ in the spec for a single request.
778
+ :type _headers: dict, optional
779
+ :param _host_index: set to override the host_index for a single
780
+ request; this effectively ignores the host_index
781
+ in the spec for a single request.
782
+ :type _host_index: int, optional
783
+ :return: Returns the result object.
784
+ """ # noqa: E501
785
+
786
+ _param = self._delete_ai_agent_serialize(
787
+ organisation=organisation,
788
+ agent_id=agent_id,
789
+ _request_auth=_request_auth,
790
+ _content_type=_content_type,
791
+ _headers=_headers,
792
+ _host_index=_host_index
793
+ )
794
+
795
+ _response_types_map: Dict[str, Optional[str]] = {
796
+ '200': "DeleteAIAgent200Response",
797
+ '403': None,
798
+ '404': None,
799
+ '500': None,
800
+ }
801
+ response_data = self.api_client.call_api(
802
+ *_param,
803
+ _request_timeout=_request_timeout
804
+ )
805
+ response_data.read()
806
+ return self.api_client.response_deserialize(
807
+ response_data=response_data,
808
+ response_types_map=_response_types_map,
809
+ )
810
+
811
+
812
+ @validate_call
813
+ def delete_ai_agent_without_preload_content(
814
+ self,
815
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
816
+ agent_id: Annotated[StrictStr, Field(description="The agent ID")],
817
+ _request_timeout: Union[
818
+ None,
819
+ Annotated[StrictFloat, Field(gt=0)],
820
+ Tuple[
821
+ Annotated[StrictFloat, Field(gt=0)],
822
+ Annotated[StrictFloat, Field(gt=0)]
823
+ ]
824
+ ] = None,
825
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
826
+ _content_type: Optional[StrictStr] = None,
827
+ _headers: Optional[Dict[StrictStr, Any]] = None,
828
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
829
+ ) -> RESTResponseType:
830
+ """Delete Agent
831
+
832
+ Permanently deletes an AI agent. This action cannot be undone.
833
+
834
+ :param organisation: The organisation ID (required)
835
+ :type organisation: str
836
+ :param agent_id: The agent ID (required)
837
+ :type agent_id: str
838
+ :param _request_timeout: timeout setting for this request. If one
839
+ number provided, it will be total request
840
+ timeout. It can also be a pair (tuple) of
841
+ (connection, read) timeouts.
842
+ :type _request_timeout: int, tuple(int, int), optional
843
+ :param _request_auth: set to override the auth_settings for an a single
844
+ request; this effectively ignores the
845
+ authentication in the spec for a single request.
846
+ :type _request_auth: dict, optional
847
+ :param _content_type: force content-type for the request.
848
+ :type _content_type: str, Optional
849
+ :param _headers: set to override the headers for a single
850
+ request; this effectively ignores the headers
851
+ in the spec for a single request.
852
+ :type _headers: dict, optional
853
+ :param _host_index: set to override the host_index for a single
854
+ request; this effectively ignores the host_index
855
+ in the spec for a single request.
856
+ :type _host_index: int, optional
857
+ :return: Returns the result object.
858
+ """ # noqa: E501
859
+
860
+ _param = self._delete_ai_agent_serialize(
861
+ organisation=organisation,
862
+ agent_id=agent_id,
863
+ _request_auth=_request_auth,
864
+ _content_type=_content_type,
865
+ _headers=_headers,
866
+ _host_index=_host_index
867
+ )
868
+
869
+ _response_types_map: Dict[str, Optional[str]] = {
870
+ '200': "DeleteAIAgent200Response",
871
+ '403': None,
872
+ '404': None,
873
+ '500': None,
874
+ }
875
+ response_data = self.api_client.call_api(
876
+ *_param,
877
+ _request_timeout=_request_timeout
878
+ )
879
+ return response_data.response
880
+
881
+
882
+ def _delete_ai_agent_serialize(
883
+ self,
884
+ organisation,
885
+ agent_id,
886
+ _request_auth,
887
+ _content_type,
888
+ _headers,
889
+ _host_index,
890
+ ) -> RequestSerialized:
891
+
892
+ _host = None
893
+
894
+ _collection_formats: Dict[str, str] = {
895
+ }
896
+
897
+ _path_params: Dict[str, str] = {}
898
+ _query_params: List[Tuple[str, str]] = []
899
+ _header_params: Dict[str, Optional[str]] = _headers or {}
900
+ _form_params: List[Tuple[str, str]] = []
901
+ _files: Dict[
902
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
903
+ ] = {}
904
+ _body_params: Optional[bytes] = None
905
+
906
+ # process the path parameters
907
+ if organisation is not None:
908
+ _path_params['organisation'] = organisation
909
+ if agent_id is not None:
910
+ _path_params['agentId'] = agent_id
911
+ # process the query parameters
912
+ # process the header parameters
913
+ # process the form parameters
914
+ # process the body parameter
915
+
916
+
917
+ # set the HTTP header `Accept`
918
+ if 'Accept' not in _header_params:
919
+ _header_params['Accept'] = self.api_client.select_header_accept(
920
+ [
921
+ 'application/json'
922
+ ]
923
+ )
924
+
925
+
926
+ # authentication setting
927
+ _auth_settings: List[str] = [
928
+ 'BearerAuth'
929
+ ]
930
+
931
+ return self.api_client.param_serialize(
932
+ method='DELETE',
933
+ resource_path='/api/v3/organizations/{organisation}/ai/agents/{agentId}',
934
+ path_params=_path_params,
935
+ query_params=_query_params,
936
+ header_params=_header_params,
937
+ body=_body_params,
938
+ post_params=_form_params,
939
+ files=_files,
940
+ auth_settings=_auth_settings,
941
+ collection_formats=_collection_formats,
942
+ _host=_host,
943
+ _request_auth=_request_auth
944
+ )
945
+
946
+
947
+
948
+
949
+ @validate_call
950
+ def get_ai_agent(
951
+ self,
952
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
953
+ agent_id: Annotated[StrictStr, Field(description="The agent ID")],
954
+ _request_timeout: Union[
955
+ None,
956
+ Annotated[StrictFloat, Field(gt=0)],
957
+ Tuple[
958
+ Annotated[StrictFloat, Field(gt=0)],
959
+ Annotated[StrictFloat, Field(gt=0)]
960
+ ]
961
+ ] = None,
962
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
963
+ _content_type: Optional[StrictStr] = None,
964
+ _headers: Optional[Dict[StrictStr, Any]] = None,
965
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
966
+ ) -> GetAIAgent200Response:
967
+ """Get Agent Details
968
+
969
+ Retrieves detailed configuration for a specific AI agent.
970
+
971
+ :param organisation: The organisation ID (required)
972
+ :type organisation: str
973
+ :param agent_id: The agent ID (required)
974
+ :type agent_id: str
975
+ :param _request_timeout: timeout setting for this request. If one
976
+ number provided, it will be total request
977
+ timeout. It can also be a pair (tuple) of
978
+ (connection, read) timeouts.
979
+ :type _request_timeout: int, tuple(int, int), optional
980
+ :param _request_auth: set to override the auth_settings for an a single
981
+ request; this effectively ignores the
982
+ authentication in the spec for a single request.
983
+ :type _request_auth: dict, optional
984
+ :param _content_type: force content-type for the request.
985
+ :type _content_type: str, Optional
986
+ :param _headers: set to override the headers for a single
987
+ request; this effectively ignores the headers
988
+ in the spec for a single request.
989
+ :type _headers: dict, optional
990
+ :param _host_index: set to override the host_index for a single
991
+ request; this effectively ignores the host_index
992
+ in the spec for a single request.
993
+ :type _host_index: int, optional
994
+ :return: Returns the result object.
995
+ """ # noqa: E501
996
+
997
+ _param = self._get_ai_agent_serialize(
998
+ organisation=organisation,
999
+ agent_id=agent_id,
1000
+ _request_auth=_request_auth,
1001
+ _content_type=_content_type,
1002
+ _headers=_headers,
1003
+ _host_index=_host_index
1004
+ )
1005
+
1006
+ _response_types_map: Dict[str, Optional[str]] = {
1007
+ '200': "GetAIAgent200Response",
1008
+ '403': None,
1009
+ '404': None,
1010
+ '500': None,
1011
+ }
1012
+ response_data = self.api_client.call_api(
1013
+ *_param,
1014
+ _request_timeout=_request_timeout
1015
+ )
1016
+ response_data.read()
1017
+ return self.api_client.response_deserialize(
1018
+ response_data=response_data,
1019
+ response_types_map=_response_types_map,
1020
+ ).data
1021
+
1022
+
1023
+ @validate_call
1024
+ def get_ai_agent_with_http_info(
1025
+ self,
1026
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
1027
+ agent_id: Annotated[StrictStr, Field(description="The agent ID")],
1028
+ _request_timeout: Union[
1029
+ None,
1030
+ Annotated[StrictFloat, Field(gt=0)],
1031
+ Tuple[
1032
+ Annotated[StrictFloat, Field(gt=0)],
1033
+ Annotated[StrictFloat, Field(gt=0)]
1034
+ ]
1035
+ ] = None,
1036
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1037
+ _content_type: Optional[StrictStr] = None,
1038
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1039
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1040
+ ) -> ApiResponse[GetAIAgent200Response]:
1041
+ """Get Agent Details
1042
+
1043
+ Retrieves detailed configuration for a specific AI agent.
1044
+
1045
+ :param organisation: The organisation ID (required)
1046
+ :type organisation: str
1047
+ :param agent_id: The agent ID (required)
1048
+ :type agent_id: str
1049
+ :param _request_timeout: timeout setting for this request. If one
1050
+ number provided, it will be total request
1051
+ timeout. It can also be a pair (tuple) of
1052
+ (connection, read) timeouts.
1053
+ :type _request_timeout: int, tuple(int, int), optional
1054
+ :param _request_auth: set to override the auth_settings for an a single
1055
+ request; this effectively ignores the
1056
+ authentication in the spec for a single request.
1057
+ :type _request_auth: dict, optional
1058
+ :param _content_type: force content-type for the request.
1059
+ :type _content_type: str, Optional
1060
+ :param _headers: set to override the headers for a single
1061
+ request; this effectively ignores the headers
1062
+ in the spec for a single request.
1063
+ :type _headers: dict, optional
1064
+ :param _host_index: set to override the host_index for a single
1065
+ request; this effectively ignores the host_index
1066
+ in the spec for a single request.
1067
+ :type _host_index: int, optional
1068
+ :return: Returns the result object.
1069
+ """ # noqa: E501
1070
+
1071
+ _param = self._get_ai_agent_serialize(
1072
+ organisation=organisation,
1073
+ agent_id=agent_id,
1074
+ _request_auth=_request_auth,
1075
+ _content_type=_content_type,
1076
+ _headers=_headers,
1077
+ _host_index=_host_index
1078
+ )
1079
+
1080
+ _response_types_map: Dict[str, Optional[str]] = {
1081
+ '200': "GetAIAgent200Response",
1082
+ '403': None,
1083
+ '404': None,
1084
+ '500': None,
1085
+ }
1086
+ response_data = self.api_client.call_api(
1087
+ *_param,
1088
+ _request_timeout=_request_timeout
1089
+ )
1090
+ response_data.read()
1091
+ return self.api_client.response_deserialize(
1092
+ response_data=response_data,
1093
+ response_types_map=_response_types_map,
1094
+ )
1095
+
1096
+
1097
+ @validate_call
1098
+ def get_ai_agent_without_preload_content(
1099
+ self,
1100
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
1101
+ agent_id: Annotated[StrictStr, Field(description="The agent ID")],
1102
+ _request_timeout: Union[
1103
+ None,
1104
+ Annotated[StrictFloat, Field(gt=0)],
1105
+ Tuple[
1106
+ Annotated[StrictFloat, Field(gt=0)],
1107
+ Annotated[StrictFloat, Field(gt=0)]
1108
+ ]
1109
+ ] = None,
1110
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1111
+ _content_type: Optional[StrictStr] = None,
1112
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1113
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1114
+ ) -> RESTResponseType:
1115
+ """Get Agent Details
1116
+
1117
+ Retrieves detailed configuration for a specific AI agent.
1118
+
1119
+ :param organisation: The organisation ID (required)
1120
+ :type organisation: str
1121
+ :param agent_id: The agent ID (required)
1122
+ :type agent_id: str
1123
+ :param _request_timeout: timeout setting for this request. If one
1124
+ number provided, it will be total request
1125
+ timeout. It can also be a pair (tuple) of
1126
+ (connection, read) timeouts.
1127
+ :type _request_timeout: int, tuple(int, int), optional
1128
+ :param _request_auth: set to override the auth_settings for an a single
1129
+ request; this effectively ignores the
1130
+ authentication in the spec for a single request.
1131
+ :type _request_auth: dict, optional
1132
+ :param _content_type: force content-type for the request.
1133
+ :type _content_type: str, Optional
1134
+ :param _headers: set to override the headers for a single
1135
+ request; this effectively ignores the headers
1136
+ in the spec for a single request.
1137
+ :type _headers: dict, optional
1138
+ :param _host_index: set to override the host_index for a single
1139
+ request; this effectively ignores the host_index
1140
+ in the spec for a single request.
1141
+ :type _host_index: int, optional
1142
+ :return: Returns the result object.
1143
+ """ # noqa: E501
1144
+
1145
+ _param = self._get_ai_agent_serialize(
1146
+ organisation=organisation,
1147
+ agent_id=agent_id,
1148
+ _request_auth=_request_auth,
1149
+ _content_type=_content_type,
1150
+ _headers=_headers,
1151
+ _host_index=_host_index
1152
+ )
1153
+
1154
+ _response_types_map: Dict[str, Optional[str]] = {
1155
+ '200': "GetAIAgent200Response",
1156
+ '403': None,
1157
+ '404': None,
1158
+ '500': None,
1159
+ }
1160
+ response_data = self.api_client.call_api(
1161
+ *_param,
1162
+ _request_timeout=_request_timeout
1163
+ )
1164
+ return response_data.response
1165
+
1166
+
1167
+ def _get_ai_agent_serialize(
1168
+ self,
1169
+ organisation,
1170
+ agent_id,
1171
+ _request_auth,
1172
+ _content_type,
1173
+ _headers,
1174
+ _host_index,
1175
+ ) -> RequestSerialized:
1176
+
1177
+ _host = None
1178
+
1179
+ _collection_formats: Dict[str, str] = {
1180
+ }
1181
+
1182
+ _path_params: Dict[str, str] = {}
1183
+ _query_params: List[Tuple[str, str]] = []
1184
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1185
+ _form_params: List[Tuple[str, str]] = []
1186
+ _files: Dict[
1187
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1188
+ ] = {}
1189
+ _body_params: Optional[bytes] = None
1190
+
1191
+ # process the path parameters
1192
+ if organisation is not None:
1193
+ _path_params['organisation'] = organisation
1194
+ if agent_id is not None:
1195
+ _path_params['agentId'] = agent_id
1196
+ # process the query parameters
1197
+ # process the header parameters
1198
+ # process the form parameters
1199
+ # process the body parameter
1200
+
1201
+
1202
+ # set the HTTP header `Accept`
1203
+ if 'Accept' not in _header_params:
1204
+ _header_params['Accept'] = self.api_client.select_header_accept(
1205
+ [
1206
+ 'application/json'
1207
+ ]
1208
+ )
1209
+
1210
+
1211
+ # authentication setting
1212
+ _auth_settings: List[str] = [
1213
+ 'BearerAuth'
1214
+ ]
1215
+
1216
+ return self.api_client.param_serialize(
1217
+ method='GET',
1218
+ resource_path='/api/v3/organizations/{organisation}/ai/agents/{agentId}',
1219
+ path_params=_path_params,
1220
+ query_params=_query_params,
1221
+ header_params=_header_params,
1222
+ body=_body_params,
1223
+ post_params=_form_params,
1224
+ files=_files,
1225
+ auth_settings=_auth_settings,
1226
+ collection_formats=_collection_formats,
1227
+ _host=_host,
1228
+ _request_auth=_request_auth
1229
+ )
1230
+
1231
+
1232
+
1233
+
1234
+ @validate_call
1235
+ def list_ai_agents(
1236
+ self,
1237
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
1238
+ group: Annotated[Optional[StrictStr], Field(description="Optional group filter (e.g., 'development', 'compliance')")] = None,
1239
+ _request_timeout: Union[
1240
+ None,
1241
+ Annotated[StrictFloat, Field(gt=0)],
1242
+ Tuple[
1243
+ Annotated[StrictFloat, Field(gt=0)],
1244
+ Annotated[StrictFloat, Field(gt=0)]
1245
+ ]
1246
+ ] = None,
1247
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1248
+ _content_type: Optional[StrictStr] = None,
1249
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1250
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1251
+ ) -> ListAIAgents200Response:
1252
+ """List AI Agents
1253
+
1254
+ Lists all AI agents for an organization. Agents are pre-configured AI assistants with specific system prompts, model settings, and tool permissions. * * **Features:** * - Filter by group (e.g., 'development', 'compliance') * - Organization-scoped * - Returns agent configurations without execution history
1255
+
1256
+ :param organisation: The organisation ID (required)
1257
+ :type organisation: str
1258
+ :param group: Optional group filter (e.g., 'development', 'compliance')
1259
+ :type group: str
1260
+ :param _request_timeout: timeout setting for this request. If one
1261
+ number provided, it will be total request
1262
+ timeout. It can also be a pair (tuple) of
1263
+ (connection, read) timeouts.
1264
+ :type _request_timeout: int, tuple(int, int), optional
1265
+ :param _request_auth: set to override the auth_settings for an a single
1266
+ request; this effectively ignores the
1267
+ authentication in the spec for a single request.
1268
+ :type _request_auth: dict, optional
1269
+ :param _content_type: force content-type for the request.
1270
+ :type _content_type: str, Optional
1271
+ :param _headers: set to override the headers for a single
1272
+ request; this effectively ignores the headers
1273
+ in the spec for a single request.
1274
+ :type _headers: dict, optional
1275
+ :param _host_index: set to override the host_index for a single
1276
+ request; this effectively ignores the host_index
1277
+ in the spec for a single request.
1278
+ :type _host_index: int, optional
1279
+ :return: Returns the result object.
1280
+ """ # noqa: E501
1281
+
1282
+ _param = self._list_ai_agents_serialize(
1283
+ organisation=organisation,
1284
+ group=group,
1285
+ _request_auth=_request_auth,
1286
+ _content_type=_content_type,
1287
+ _headers=_headers,
1288
+ _host_index=_host_index
1289
+ )
1290
+
1291
+ _response_types_map: Dict[str, Optional[str]] = {
1292
+ '200': "ListAIAgents200Response",
1293
+ '403': None,
1294
+ '500': None,
1295
+ }
1296
+ response_data = self.api_client.call_api(
1297
+ *_param,
1298
+ _request_timeout=_request_timeout
1299
+ )
1300
+ response_data.read()
1301
+ return self.api_client.response_deserialize(
1302
+ response_data=response_data,
1303
+ response_types_map=_response_types_map,
1304
+ ).data
1305
+
1306
+
1307
+ @validate_call
1308
+ def list_ai_agents_with_http_info(
1309
+ self,
1310
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
1311
+ group: Annotated[Optional[StrictStr], Field(description="Optional group filter (e.g., 'development', 'compliance')")] = None,
1312
+ _request_timeout: Union[
1313
+ None,
1314
+ Annotated[StrictFloat, Field(gt=0)],
1315
+ Tuple[
1316
+ Annotated[StrictFloat, Field(gt=0)],
1317
+ Annotated[StrictFloat, Field(gt=0)]
1318
+ ]
1319
+ ] = None,
1320
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1321
+ _content_type: Optional[StrictStr] = None,
1322
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1323
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1324
+ ) -> ApiResponse[ListAIAgents200Response]:
1325
+ """List AI Agents
1326
+
1327
+ Lists all AI agents for an organization. Agents are pre-configured AI assistants with specific system prompts, model settings, and tool permissions. * * **Features:** * - Filter by group (e.g., 'development', 'compliance') * - Organization-scoped * - Returns agent configurations without execution history
1328
+
1329
+ :param organisation: The organisation ID (required)
1330
+ :type organisation: str
1331
+ :param group: Optional group filter (e.g., 'development', 'compliance')
1332
+ :type group: str
1333
+ :param _request_timeout: timeout setting for this request. If one
1334
+ number provided, it will be total request
1335
+ timeout. It can also be a pair (tuple) of
1336
+ (connection, read) timeouts.
1337
+ :type _request_timeout: int, tuple(int, int), optional
1338
+ :param _request_auth: set to override the auth_settings for an a single
1339
+ request; this effectively ignores the
1340
+ authentication in the spec for a single request.
1341
+ :type _request_auth: dict, optional
1342
+ :param _content_type: force content-type for the request.
1343
+ :type _content_type: str, Optional
1344
+ :param _headers: set to override the headers for a single
1345
+ request; this effectively ignores the headers
1346
+ in the spec for a single request.
1347
+ :type _headers: dict, optional
1348
+ :param _host_index: set to override the host_index for a single
1349
+ request; this effectively ignores the host_index
1350
+ in the spec for a single request.
1351
+ :type _host_index: int, optional
1352
+ :return: Returns the result object.
1353
+ """ # noqa: E501
1354
+
1355
+ _param = self._list_ai_agents_serialize(
1356
+ organisation=organisation,
1357
+ group=group,
1358
+ _request_auth=_request_auth,
1359
+ _content_type=_content_type,
1360
+ _headers=_headers,
1361
+ _host_index=_host_index
1362
+ )
1363
+
1364
+ _response_types_map: Dict[str, Optional[str]] = {
1365
+ '200': "ListAIAgents200Response",
1366
+ '403': None,
1367
+ '500': None,
1368
+ }
1369
+ response_data = self.api_client.call_api(
1370
+ *_param,
1371
+ _request_timeout=_request_timeout
1372
+ )
1373
+ response_data.read()
1374
+ return self.api_client.response_deserialize(
1375
+ response_data=response_data,
1376
+ response_types_map=_response_types_map,
1377
+ )
1378
+
1379
+
1380
+ @validate_call
1381
+ def list_ai_agents_without_preload_content(
1382
+ self,
1383
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
1384
+ group: Annotated[Optional[StrictStr], Field(description="Optional group filter (e.g., 'development', 'compliance')")] = None,
1385
+ _request_timeout: Union[
1386
+ None,
1387
+ Annotated[StrictFloat, Field(gt=0)],
1388
+ Tuple[
1389
+ Annotated[StrictFloat, Field(gt=0)],
1390
+ Annotated[StrictFloat, Field(gt=0)]
1391
+ ]
1392
+ ] = None,
1393
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1394
+ _content_type: Optional[StrictStr] = None,
1395
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1396
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1397
+ ) -> RESTResponseType:
1398
+ """List AI Agents
1399
+
1400
+ Lists all AI agents for an organization. Agents are pre-configured AI assistants with specific system prompts, model settings, and tool permissions. * * **Features:** * - Filter by group (e.g., 'development', 'compliance') * - Organization-scoped * - Returns agent configurations without execution history
1401
+
1402
+ :param organisation: The organisation ID (required)
1403
+ :type organisation: str
1404
+ :param group: Optional group filter (e.g., 'development', 'compliance')
1405
+ :type group: str
1406
+ :param _request_timeout: timeout setting for this request. If one
1407
+ number provided, it will be total request
1408
+ timeout. It can also be a pair (tuple) of
1409
+ (connection, read) timeouts.
1410
+ :type _request_timeout: int, tuple(int, int), optional
1411
+ :param _request_auth: set to override the auth_settings for an a single
1412
+ request; this effectively ignores the
1413
+ authentication in the spec for a single request.
1414
+ :type _request_auth: dict, optional
1415
+ :param _content_type: force content-type for the request.
1416
+ :type _content_type: str, Optional
1417
+ :param _headers: set to override the headers for a single
1418
+ request; this effectively ignores the headers
1419
+ in the spec for a single request.
1420
+ :type _headers: dict, optional
1421
+ :param _host_index: set to override the host_index for a single
1422
+ request; this effectively ignores the host_index
1423
+ in the spec for a single request.
1424
+ :type _host_index: int, optional
1425
+ :return: Returns the result object.
1426
+ """ # noqa: E501
1427
+
1428
+ _param = self._list_ai_agents_serialize(
1429
+ organisation=organisation,
1430
+ group=group,
1431
+ _request_auth=_request_auth,
1432
+ _content_type=_content_type,
1433
+ _headers=_headers,
1434
+ _host_index=_host_index
1435
+ )
1436
+
1437
+ _response_types_map: Dict[str, Optional[str]] = {
1438
+ '200': "ListAIAgents200Response",
1439
+ '403': None,
1440
+ '500': None,
1441
+ }
1442
+ response_data = self.api_client.call_api(
1443
+ *_param,
1444
+ _request_timeout=_request_timeout
1445
+ )
1446
+ return response_data.response
1447
+
1448
+
1449
+ def _list_ai_agents_serialize(
1450
+ self,
1451
+ organisation,
1452
+ group,
1453
+ _request_auth,
1454
+ _content_type,
1455
+ _headers,
1456
+ _host_index,
1457
+ ) -> RequestSerialized:
1458
+
1459
+ _host = None
1460
+
1461
+ _collection_formats: Dict[str, str] = {
1462
+ }
1463
+
1464
+ _path_params: Dict[str, str] = {}
1465
+ _query_params: List[Tuple[str, str]] = []
1466
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1467
+ _form_params: List[Tuple[str, str]] = []
1468
+ _files: Dict[
1469
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1470
+ ] = {}
1471
+ _body_params: Optional[bytes] = None
1472
+
1473
+ # process the path parameters
1474
+ if organisation is not None:
1475
+ _path_params['organisation'] = organisation
1476
+ # process the query parameters
1477
+ if group is not None:
1478
+
1479
+ _query_params.append(('group', group))
1480
+
1481
+ # process the header parameters
1482
+ # process the form parameters
1483
+ # process the body parameter
1484
+
1485
+
1486
+ # set the HTTP header `Accept`
1487
+ if 'Accept' not in _header_params:
1488
+ _header_params['Accept'] = self.api_client.select_header_accept(
1489
+ [
1490
+ 'application/json'
1491
+ ]
1492
+ )
1493
+
1494
+
1495
+ # authentication setting
1496
+ _auth_settings: List[str] = [
1497
+ 'BearerAuth'
1498
+ ]
1499
+
1500
+ return self.api_client.param_serialize(
1501
+ method='GET',
1502
+ resource_path='/api/v3/organizations/{organisation}/ai/agents',
1503
+ path_params=_path_params,
1504
+ query_params=_query_params,
1505
+ header_params=_header_params,
1506
+ body=_body_params,
1507
+ post_params=_form_params,
1508
+ files=_files,
1509
+ auth_settings=_auth_settings,
1510
+ collection_formats=_collection_formats,
1511
+ _host=_host,
1512
+ _request_auth=_request_auth
1513
+ )
1514
+
1515
+
1516
+
1517
+
1518
+ @validate_call
1519
+ def update_ai_agent(
1520
+ self,
1521
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
1522
+ agent_id: Annotated[StrictStr, Field(description="The agent ID")],
1523
+ update_ai_agent_request: UpdateAIAgentRequest,
1524
+ _request_timeout: Union[
1525
+ None,
1526
+ Annotated[StrictFloat, Field(gt=0)],
1527
+ Tuple[
1528
+ Annotated[StrictFloat, Field(gt=0)],
1529
+ Annotated[StrictFloat, Field(gt=0)]
1530
+ ]
1531
+ ] = None,
1532
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1533
+ _content_type: Optional[StrictStr] = None,
1534
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1535
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1536
+ ) -> UpdateAIAgent200Response:
1537
+ """Update Agent
1538
+
1539
+ Updates an existing AI agent configuration. All fields except agentId, organizationId, createdAt, and createdBy can be updated.
1540
+
1541
+ :param organisation: The organisation ID (required)
1542
+ :type organisation: str
1543
+ :param agent_id: The agent ID (required)
1544
+ :type agent_id: str
1545
+ :param update_ai_agent_request: (required)
1546
+ :type update_ai_agent_request: UpdateAIAgentRequest
1547
+ :param _request_timeout: timeout setting for this request. If one
1548
+ number provided, it will be total request
1549
+ timeout. It can also be a pair (tuple) of
1550
+ (connection, read) timeouts.
1551
+ :type _request_timeout: int, tuple(int, int), optional
1552
+ :param _request_auth: set to override the auth_settings for an a single
1553
+ request; this effectively ignores the
1554
+ authentication in the spec for a single request.
1555
+ :type _request_auth: dict, optional
1556
+ :param _content_type: force content-type for the request.
1557
+ :type _content_type: str, Optional
1558
+ :param _headers: set to override the headers for a single
1559
+ request; this effectively ignores the headers
1560
+ in the spec for a single request.
1561
+ :type _headers: dict, optional
1562
+ :param _host_index: set to override the host_index for a single
1563
+ request; this effectively ignores the host_index
1564
+ in the spec for a single request.
1565
+ :type _host_index: int, optional
1566
+ :return: Returns the result object.
1567
+ """ # noqa: E501
1568
+
1569
+ _param = self._update_ai_agent_serialize(
1570
+ organisation=organisation,
1571
+ agent_id=agent_id,
1572
+ update_ai_agent_request=update_ai_agent_request,
1573
+ _request_auth=_request_auth,
1574
+ _content_type=_content_type,
1575
+ _headers=_headers,
1576
+ _host_index=_host_index
1577
+ )
1578
+
1579
+ _response_types_map: Dict[str, Optional[str]] = {
1580
+ '200': "UpdateAIAgent200Response",
1581
+ '400': None,
1582
+ '403': None,
1583
+ '404': None,
1584
+ '500': None,
1585
+ }
1586
+ response_data = self.api_client.call_api(
1587
+ *_param,
1588
+ _request_timeout=_request_timeout
1589
+ )
1590
+ response_data.read()
1591
+ return self.api_client.response_deserialize(
1592
+ response_data=response_data,
1593
+ response_types_map=_response_types_map,
1594
+ ).data
1595
+
1596
+
1597
+ @validate_call
1598
+ def update_ai_agent_with_http_info(
1599
+ self,
1600
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
1601
+ agent_id: Annotated[StrictStr, Field(description="The agent ID")],
1602
+ update_ai_agent_request: UpdateAIAgentRequest,
1603
+ _request_timeout: Union[
1604
+ None,
1605
+ Annotated[StrictFloat, Field(gt=0)],
1606
+ Tuple[
1607
+ Annotated[StrictFloat, Field(gt=0)],
1608
+ Annotated[StrictFloat, Field(gt=0)]
1609
+ ]
1610
+ ] = None,
1611
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1612
+ _content_type: Optional[StrictStr] = None,
1613
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1614
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1615
+ ) -> ApiResponse[UpdateAIAgent200Response]:
1616
+ """Update Agent
1617
+
1618
+ Updates an existing AI agent configuration. All fields except agentId, organizationId, createdAt, and createdBy can be updated.
1619
+
1620
+ :param organisation: The organisation ID (required)
1621
+ :type organisation: str
1622
+ :param agent_id: The agent ID (required)
1623
+ :type agent_id: str
1624
+ :param update_ai_agent_request: (required)
1625
+ :type update_ai_agent_request: UpdateAIAgentRequest
1626
+ :param _request_timeout: timeout setting for this request. If one
1627
+ number provided, it will be total request
1628
+ timeout. It can also be a pair (tuple) of
1629
+ (connection, read) timeouts.
1630
+ :type _request_timeout: int, tuple(int, int), optional
1631
+ :param _request_auth: set to override the auth_settings for an a single
1632
+ request; this effectively ignores the
1633
+ authentication in the spec for a single request.
1634
+ :type _request_auth: dict, optional
1635
+ :param _content_type: force content-type for the request.
1636
+ :type _content_type: str, Optional
1637
+ :param _headers: set to override the headers for a single
1638
+ request; this effectively ignores the headers
1639
+ in the spec for a single request.
1640
+ :type _headers: dict, optional
1641
+ :param _host_index: set to override the host_index for a single
1642
+ request; this effectively ignores the host_index
1643
+ in the spec for a single request.
1644
+ :type _host_index: int, optional
1645
+ :return: Returns the result object.
1646
+ """ # noqa: E501
1647
+
1648
+ _param = self._update_ai_agent_serialize(
1649
+ organisation=organisation,
1650
+ agent_id=agent_id,
1651
+ update_ai_agent_request=update_ai_agent_request,
1652
+ _request_auth=_request_auth,
1653
+ _content_type=_content_type,
1654
+ _headers=_headers,
1655
+ _host_index=_host_index
1656
+ )
1657
+
1658
+ _response_types_map: Dict[str, Optional[str]] = {
1659
+ '200': "UpdateAIAgent200Response",
1660
+ '400': None,
1661
+ '403': None,
1662
+ '404': None,
1663
+ '500': None,
1664
+ }
1665
+ response_data = self.api_client.call_api(
1666
+ *_param,
1667
+ _request_timeout=_request_timeout
1668
+ )
1669
+ response_data.read()
1670
+ return self.api_client.response_deserialize(
1671
+ response_data=response_data,
1672
+ response_types_map=_response_types_map,
1673
+ )
1674
+
1675
+
1676
+ @validate_call
1677
+ def update_ai_agent_without_preload_content(
1678
+ self,
1679
+ organisation: Annotated[StrictStr, Field(description="The organisation ID")],
1680
+ agent_id: Annotated[StrictStr, Field(description="The agent ID")],
1681
+ update_ai_agent_request: UpdateAIAgentRequest,
1682
+ _request_timeout: Union[
1683
+ None,
1684
+ Annotated[StrictFloat, Field(gt=0)],
1685
+ Tuple[
1686
+ Annotated[StrictFloat, Field(gt=0)],
1687
+ Annotated[StrictFloat, Field(gt=0)]
1688
+ ]
1689
+ ] = None,
1690
+ _request_auth: Optional[Dict[StrictStr, Any]] = None,
1691
+ _content_type: Optional[StrictStr] = None,
1692
+ _headers: Optional[Dict[StrictStr, Any]] = None,
1693
+ _host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
1694
+ ) -> RESTResponseType:
1695
+ """Update Agent
1696
+
1697
+ Updates an existing AI agent configuration. All fields except agentId, organizationId, createdAt, and createdBy can be updated.
1698
+
1699
+ :param organisation: The organisation ID (required)
1700
+ :type organisation: str
1701
+ :param agent_id: The agent ID (required)
1702
+ :type agent_id: str
1703
+ :param update_ai_agent_request: (required)
1704
+ :type update_ai_agent_request: UpdateAIAgentRequest
1705
+ :param _request_timeout: timeout setting for this request. If one
1706
+ number provided, it will be total request
1707
+ timeout. It can also be a pair (tuple) of
1708
+ (connection, read) timeouts.
1709
+ :type _request_timeout: int, tuple(int, int), optional
1710
+ :param _request_auth: set to override the auth_settings for an a single
1711
+ request; this effectively ignores the
1712
+ authentication in the spec for a single request.
1713
+ :type _request_auth: dict, optional
1714
+ :param _content_type: force content-type for the request.
1715
+ :type _content_type: str, Optional
1716
+ :param _headers: set to override the headers for a single
1717
+ request; this effectively ignores the headers
1718
+ in the spec for a single request.
1719
+ :type _headers: dict, optional
1720
+ :param _host_index: set to override the host_index for a single
1721
+ request; this effectively ignores the host_index
1722
+ in the spec for a single request.
1723
+ :type _host_index: int, optional
1724
+ :return: Returns the result object.
1725
+ """ # noqa: E501
1726
+
1727
+ _param = self._update_ai_agent_serialize(
1728
+ organisation=organisation,
1729
+ agent_id=agent_id,
1730
+ update_ai_agent_request=update_ai_agent_request,
1731
+ _request_auth=_request_auth,
1732
+ _content_type=_content_type,
1733
+ _headers=_headers,
1734
+ _host_index=_host_index
1735
+ )
1736
+
1737
+ _response_types_map: Dict[str, Optional[str]] = {
1738
+ '200': "UpdateAIAgent200Response",
1739
+ '400': None,
1740
+ '403': None,
1741
+ '404': None,
1742
+ '500': None,
1743
+ }
1744
+ response_data = self.api_client.call_api(
1745
+ *_param,
1746
+ _request_timeout=_request_timeout
1747
+ )
1748
+ return response_data.response
1749
+
1750
+
1751
+ def _update_ai_agent_serialize(
1752
+ self,
1753
+ organisation,
1754
+ agent_id,
1755
+ update_ai_agent_request,
1756
+ _request_auth,
1757
+ _content_type,
1758
+ _headers,
1759
+ _host_index,
1760
+ ) -> RequestSerialized:
1761
+
1762
+ _host = None
1763
+
1764
+ _collection_formats: Dict[str, str] = {
1765
+ }
1766
+
1767
+ _path_params: Dict[str, str] = {}
1768
+ _query_params: List[Tuple[str, str]] = []
1769
+ _header_params: Dict[str, Optional[str]] = _headers or {}
1770
+ _form_params: List[Tuple[str, str]] = []
1771
+ _files: Dict[
1772
+ str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
1773
+ ] = {}
1774
+ _body_params: Optional[bytes] = None
1775
+
1776
+ # process the path parameters
1777
+ if organisation is not None:
1778
+ _path_params['organisation'] = organisation
1779
+ if agent_id is not None:
1780
+ _path_params['agentId'] = agent_id
1781
+ # process the query parameters
1782
+ # process the header parameters
1783
+ # process the form parameters
1784
+ # process the body parameter
1785
+ if update_ai_agent_request is not None:
1786
+ _body_params = update_ai_agent_request
1787
+
1788
+
1789
+ # set the HTTP header `Accept`
1790
+ if 'Accept' not in _header_params:
1791
+ _header_params['Accept'] = self.api_client.select_header_accept(
1792
+ [
1793
+ 'application/json'
1794
+ ]
1795
+ )
1796
+
1797
+ # set the HTTP header `Content-Type`
1798
+ if _content_type:
1799
+ _header_params['Content-Type'] = _content_type
1800
+ else:
1801
+ _default_content_type = (
1802
+ self.api_client.select_header_content_type(
1803
+ [
1804
+ 'application/json'
1805
+ ]
1806
+ )
1807
+ )
1808
+ if _default_content_type is not None:
1809
+ _header_params['Content-Type'] = _default_content_type
1810
+
1811
+ # authentication setting
1812
+ _auth_settings: List[str] = [
1813
+ 'BearerAuth'
1814
+ ]
1815
+
1816
+ return self.api_client.param_serialize(
1817
+ method='PUT',
1818
+ resource_path='/api/v3/organizations/{organisation}/ai/agents/{agentId}',
1819
+ path_params=_path_params,
1820
+ query_params=_query_params,
1821
+ header_params=_header_params,
1822
+ body=_body_params,
1823
+ post_params=_form_params,
1824
+ files=_files,
1825
+ auth_settings=_auth_settings,
1826
+ collection_formats=_collection_formats,
1827
+ _host=_host,
1828
+ _request_auth=_request_auth
1829
+ )
1830
+
1831
+