structifyai 1.158.0__py3-none-any.whl → 1.176.1__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 (364) hide show
  1. structify/_base_client.py +140 -11
  2. structify/_client.py +1116 -253
  3. structify/_models.py +16 -1
  4. structify/_streaming.py +12 -10
  5. structify/_types.py +12 -2
  6. structify/_version.py +1 -1
  7. structify/lib/__init__.py +5 -0
  8. structify/lib/cost_confirmation.py +63 -0
  9. structify/pagination.py +63 -1
  10. structify/resources/__init__.py +57 -27
  11. structify/resources/admin/__init__.py +26 -40
  12. structify/resources/admin/admin.py +39 -71
  13. structify/resources/admin/chat_templates.py +382 -0
  14. structify/resources/admin/jobs.py +76 -3
  15. structify/resources/admin/sandbox.py +184 -0
  16. structify/resources/admin/teams.py +88 -0
  17. structify/resources/admin/users.py +28 -238
  18. structify/resources/chat.py +232 -0
  19. structify/resources/connector_catalog/__init__.py +33 -0
  20. structify/resources/connector_catalog/admin.py +1510 -0
  21. structify/resources/connector_catalog/connector_catalog.py +394 -0
  22. structify/resources/connectors/__init__.py +33 -0
  23. structify/resources/{connectors.py → connectors/connectors.py} +1155 -325
  24. structify/resources/connectors/type_snippets.py +169 -0
  25. structify/resources/datasets/datasets.py +0 -4
  26. structify/resources/documents.py +1 -123
  27. structify/resources/external.py +35 -2
  28. structify/resources/jobs.py +19 -336
  29. structify/resources/nango.py +234 -0
  30. structify/resources/polars.py +225 -103
  31. structify/resources/sandbox.py +13 -110
  32. structify/resources/scrape.py +0 -16
  33. structify/resources/sessions.py +241 -153
  34. structify/resources/slack.py +1 -151
  35. structify/resources/structure.py +120 -48
  36. structify/resources/teams.py +96 -0
  37. structify/resources/user/__init__.py +14 -0
  38. structify/resources/user/api_keys.py +380 -0
  39. structify/resources/user/user.py +209 -2
  40. structify/resources/whitelabel.py +294 -187
  41. structify/resources/whitelabel_service.py +222 -0
  42. structify/resources/{report.py → wiki.py} +237 -210
  43. structify/resources/workflow_schedule.py +4 -5
  44. structify/types/__init__.py +67 -36
  45. structify/types/add_member_response.py +35 -4
  46. structify/types/admin/__init__.py +13 -88
  47. structify/types/admin/admin_dataset_return.py +6 -0
  48. structify/types/admin/{user_get_credits_response.py → admin_delete_jobs_response.py} +3 -3
  49. structify/types/admin/admin_list_jobs_response.py +35 -1
  50. structify/types/admin/admin_sandbox.py +38 -0
  51. structify/types/admin/chat_template_create_params.py +21 -0
  52. structify/types/admin/{human_llm_start_next_job_params.py → chat_template_list_params.py} +3 -3
  53. structify/types/admin/{human_llm_get_jobs_response.py → chat_template_list_response.py} +3 -3
  54. structify/types/admin/chat_template_update_params.py +22 -0
  55. structify/types/admin/{user_add_credits_response.py → expire_grants_response.py} +5 -3
  56. structify/types/admin/impersonate_response.py +17 -0
  57. structify/types/admin/{next_action_get_batched_training_data_params.py → job_delete_params.py} +2 -2
  58. structify/types/admin/{user_get_credits_params.py → sandbox_list_params.py} +4 -4
  59. structify/types/admin/sandbox_type.py +7 -0
  60. structify/types/admin/{user_set_credits_params.py → team_expire_grants_params.py} +4 -4
  61. structify/types/admin/user.py +16 -0
  62. structify/types/admin/user_create_params.py +1 -0
  63. structify/types/admin/{training_dataset_delete_params.py → user_impersonate_params.py} +3 -3
  64. structify/types/admin/user_list_response.py +14 -4
  65. structify/types/admin_grant_access_response.py +2 -0
  66. structify/types/{slack_user_mapping_response.py → admin_issue_found_response.py} +3 -5
  67. structify/types/chat_add_git_commit_response.py +2 -0
  68. structify/types/{admin/human_llm_get_next_step_params.py → chat_admin_issue_found_params.py} +4 -4
  69. structify/types/chat_create_session_params.py +7 -0
  70. structify/types/chat_dependency.py +17 -0
  71. structify/types/chat_event.py +51 -239
  72. structify/types/chat_get_git_commit_response.py +2 -0
  73. structify/types/chat_get_session_timeline_response.py +31 -1
  74. structify/types/{job_get_steps_response.py → chat_list_templates_response.py} +3 -3
  75. structify/types/chat_prompt.py +2 -0
  76. structify/types/chat_revert_to_commit_response.py +2 -0
  77. structify/types/chat_session.py +14 -0
  78. structify/types/chat_session_with_messages.py +33 -1
  79. structify/types/chat_template.py +31 -0
  80. structify/types/chat_update_session_params.py +2 -0
  81. structify/types/code_generate_code_params.py +7 -0
  82. structify/types/connector.py +16 -25
  83. structify/types/connector_auth_method.py +29 -0
  84. structify/types/connector_auth_method_with_fields.py +15 -0
  85. structify/types/connector_catalog/__init__.py +32 -0
  86. structify/types/connector_catalog/admin_batch_create_credential_fields_params.py +14 -0
  87. structify/types/connector_catalog/admin_batch_create_credential_fields_response.py +10 -0
  88. structify/types/connector_catalog/admin_batch_create_scopes_params.py +14 -0
  89. structify/types/connector_catalog/admin_create_auth_method_params.py +22 -0
  90. structify/types/connector_catalog/admin_create_catalog_params.py +22 -0
  91. structify/types/connector_catalog/admin_create_credential_field_params.py +28 -0
  92. structify/types/connector_catalog/admin_create_scope_params.py +19 -0
  93. structify/types/connector_catalog/admin_list_nango_pending_response.py +10 -0
  94. structify/types/{admin/training_dataset_get_datum_info_params.py → connector_catalog/admin_list_scopes_params.py} +3 -3
  95. structify/types/connector_catalog/admin_update_auth_method_params.py +16 -0
  96. structify/types/connector_catalog/admin_update_catalog_params.py +20 -0
  97. structify/types/connector_catalog/admin_update_credential_field_params.py +26 -0
  98. structify/types/connector_catalog/admin_update_scope_params.py +18 -0
  99. structify/types/connector_catalog/admin_upload_logo_params.py +13 -0
  100. structify/types/connector_catalog/batch_create_scopes_response.py +12 -0
  101. structify/types/connector_catalog/connector_auth_method_scope.py +25 -0
  102. structify/types/connector_catalog/connector_catalog.py +26 -0
  103. structify/types/connector_catalog/create_credential_field_request_param.py +28 -0
  104. structify/types/connector_catalog/create_scope_request_param.py +19 -0
  105. structify/types/connector_catalog/list_scopes_response.py +12 -0
  106. structify/types/connector_catalog/pending_nango_integration.py +17 -0
  107. structify/types/{admin/user_set_credits_response.py → connector_catalog/upload_logo_response.py} +3 -3
  108. structify/types/connector_catalog_list_params.py +20 -0
  109. structify/types/connector_catalog_list_response.py +22 -0
  110. structify/types/connector_catalog_with_methods.py +15 -0
  111. structify/types/connector_category.py +7 -0
  112. structify/types/connector_create_params.py +11 -25
  113. structify/types/connector_credential_field.py +34 -0
  114. structify/types/connector_delete_schema_object_params.py +35 -0
  115. structify/types/connector_explore_params.py +19 -0
  116. structify/types/connector_explorer_chat.py +9 -84
  117. structify/types/connector_get_clarification_requests_response.py +36 -0
  118. structify/types/connector_get_response.py +2 -0
  119. structify/types/connector_list_with_snippets_params.py +12 -0
  120. structify/types/connector_list_with_snippets_response.py +10 -0
  121. structify/types/connector_search_tables_params.py +15 -0
  122. structify/types/connector_search_tables_response.py +160 -0
  123. structify/types/connector_store_response.py +21 -0
  124. structify/types/connector_summaries_params.py +15 -0
  125. structify/types/connector_summaries_response.py +10 -0
  126. structify/types/connector_summary.py +16 -0
  127. structify/types/connector_table_info.py +15 -0
  128. structify/types/connector_update_column_params.py +12 -0
  129. structify/types/connector_update_params.py +4 -25
  130. structify/types/connector_update_table_params.py +14 -0
  131. structify/types/connector_with_secrets.py +2 -0
  132. structify/types/connector_with_snippets.py +11 -0
  133. structify/types/connectors/__init__.py +6 -0
  134. structify/types/connectors/snippet.py +20 -0
  135. structify/types/connectors/type_snippet_upsert_params.py +12 -0
  136. structify/types/create_chat_session_response.py +2 -0
  137. structify/types/dataset_create_params.py +0 -2
  138. structify/types/dataset_descriptor.py +6 -0
  139. structify/types/dataset_descriptor_param.py +6 -0
  140. structify/types/dataset_get_response.py +6 -0
  141. structify/types/dataset_list_response.py +6 -0
  142. structify/types/dataset_view_table_response.py +3 -1
  143. structify/types/delete_chat_session_response.py +2 -0
  144. structify/types/delete_schema_object_request_param.py +35 -0
  145. structify/types/delete_schema_object_response.py +13 -0
  146. structify/types/edge_spec_param.py +13 -0
  147. structify/types/entity_get_source_entities_response.py +0 -2
  148. structify/types/entity_list_jobs_response.py +3 -3
  149. structify/types/entity_view_response.py +0 -2
  150. structify/types/estimate_cost_response.py +9 -0
  151. structify/types/exploration_phase_id.py +79 -0
  152. structify/types/finalize_dag_response.py +11 -0
  153. structify/types/get_chat_session_response.py +14 -6
  154. structify/types/get_dependencies_response.py +15 -0
  155. structify/types/get_job_events_response.py +20 -0
  156. structify/types/get_node_response.py +10 -0
  157. structify/types/job_cancel_response.py +3 -3
  158. structify/types/job_event_body.py +108 -1
  159. structify/types/job_get_source_entities_response.py +0 -2
  160. structify/types/job_list_params.py +1 -1
  161. structify/types/job_list_response.py +35 -1
  162. structify/types/knowledge_graph.py +6 -0
  163. structify/types/knowledge_graph_param.py +6 -0
  164. structify/types/list_chat_sessions_response.py +2 -0
  165. structify/types/list_collaborators_response.py +4 -0
  166. structify/types/list_tables_response.py +12 -0
  167. structify/types/llm_information_store.py +62 -28
  168. structify/types/merge_config.py +2 -0
  169. structify/types/merge_config_param.py +2 -0
  170. structify/types/message.py +2 -0
  171. structify/types/nango_create_session_params.py +21 -0
  172. structify/types/nango_create_session_response.py +15 -0
  173. structify/types/nango_list_integrations_response.py +28 -0
  174. structify/types/{session_create_node_params.py → node_spec_param.py} +4 -4
  175. structify/types/refresh_session_response.py +15 -0
  176. structify/types/sandbox.py +8 -2
  177. structify/types/sandbox_get_params.py +2 -1
  178. structify/types/scrape_list_params.py +1 -22
  179. structify/types/scrape_list_response.py +2 -0
  180. structify/types/scrape_scrape_params.py +1 -14
  181. structify/types/scrape_scrape_response.py +2 -0
  182. structify/types/select_team_response.py +3 -1
  183. structify/types/{connector_approve_version_params.py → session_confirm_node_params.py} +3 -3
  184. structify/types/session_finalize_dag_params.py +20 -0
  185. structify/types/session_get_events_response.py +2 -0
  186. structify/types/session_request_confirmation_params.py +13 -0
  187. structify/types/session_upload_node_output_data_params.py +3 -0
  188. structify/types/slack_event_payload_param.py +18 -2
  189. structify/types/slack_events_params.py +18 -2
  190. structify/types/source_list_response.py +0 -2
  191. structify/types/structure_enhance_property_params.py +2 -17
  192. structify/types/structure_enhance_relationship_params.py +2 -17
  193. structify/types/structure_find_relationship_params.py +2 -18
  194. structify/types/structure_pdf_params.py +22 -0
  195. structify/types/structure_pdf_response.py +11 -0
  196. structify/types/structure_run_async_params.py +10 -17
  197. structify/types/table.py +2 -0
  198. structify/types/table_param.py +2 -0
  199. structify/types/team.py +14 -0
  200. structify/types/{admin/training_dataset_remove_datum_params.py → team_create_link_code_params.py} +3 -3
  201. structify/types/team_update_params.py +10 -0
  202. structify/types/team_wiki_page.py +28 -0
  203. structify/types/teams_link_code_response.py +13 -0
  204. structify/types/token_response.py +6 -2
  205. structify/types/tool_invocation.py +468 -0
  206. structify/types/tool_result.py +99 -0
  207. structify/types/update_table_response.py +46 -0
  208. structify/types/usage_group_key.py +14 -1
  209. structify/types/user/__init__.py +4 -0
  210. structify/types/{admin/training_dataset_size_params.py → user/api_key_create_params.py} +5 -5
  211. structify/types/user/api_key_info.py +24 -0
  212. structify/types/user/create_api_key_response.py +12 -0
  213. structify/types/user/list_api_keys_response.py +12 -0
  214. structify/types/user_enrich_params.py +11 -0
  215. structify/types/user_info.py +22 -0
  216. structify/types/user_refresh_params.py +13 -0
  217. structify/types/user_transactions_response.py +5 -5
  218. structify/types/user_update_params.py +32 -12
  219. structify/types/user_usage_response.py +0 -2
  220. structify/types/wiki_connector_reference.py +63 -0
  221. structify/types/wiki_create_params.py +16 -0
  222. structify/types/{admin/training_dataset_list_response.py → wiki_list_response.py} +4 -2
  223. structify/types/wiki_page_with_references.py +12 -0
  224. structify/types/wiki_update_params.py +16 -0
  225. structify/types/workflow_dag.py +2 -0
  226. structify/types/workflow_node_execution_status.py +3 -1
  227. structify/types/workflow_schedule_info.py +2 -2
  228. structify/types/workflow_session_node.py +10 -0
  229. {structifyai-1.158.0.dist-info → structifyai-1.176.1.dist-info}/METADATA +67 -4
  230. structifyai-1.176.1.dist-info/RECORD +496 -0
  231. {structifyai-1.158.0.dist-info → structifyai-1.176.1.dist-info}/licenses/LICENSE +1 -1
  232. structify/resources/admin/human_llm.py +0 -819
  233. structify/resources/admin/next_action.py +0 -656
  234. structify/resources/admin/training_datasets.py +0 -2028
  235. structify/resources/external/__init__.py +0 -61
  236. structify/resources/external/external.py +0 -166
  237. structify/resources/external/news.py +0 -519
  238. structify/resources/external/people.py +0 -998
  239. structify/resources/external/search_api.py +0 -1525
  240. structify/types/active_version_data.py +0 -21
  241. structify/types/active_version_response.py +0 -13
  242. structify/types/admin/action_training_data_entry.py +0 -219
  243. structify/types/admin/action_training_data_response.py +0 -12
  244. structify/types/admin/datum_status.py +0 -19
  245. structify/types/admin/delete_action_training_data_response.py +0 -9
  246. structify/types/admin/human_llm_add_search_for_job_params.py +0 -13
  247. structify/types/admin/human_llm_add_to_dataset_params.py +0 -186
  248. structify/types/admin/human_llm_finish_job_params.py +0 -13
  249. structify/types/admin/human_llm_get_jobs_params.py +0 -12
  250. structify/types/admin/human_llm_get_next_step_response.py +0 -196
  251. structify/types/admin/human_llm_job.py +0 -73
  252. structify/types/admin/human_llm_prelabel_step_response.py +0 -184
  253. structify/types/admin/human_llm_update_step_params.py +0 -186
  254. structify/types/admin/labeling_stats.py +0 -24
  255. structify/types/admin/next_action_add_training_datum_params.py +0 -203
  256. structify/types/admin/next_action_delete_training_data_params.py +0 -12
  257. structify/types/admin/next_action_get_training_data_params.py +0 -25
  258. structify/types/admin/next_action_get_training_datum_params.py +0 -12
  259. structify/types/admin/next_action_label_training_datum_params.py +0 -90
  260. structify/types/admin/step_choices.py +0 -32
  261. structify/types/admin/training_dataset_add_datum_params.py +0 -13
  262. structify/types/admin/training_dataset_add_params.py +0 -12
  263. structify/types/admin/training_dataset_download_datum_params.py +0 -13
  264. structify/types/admin/training_dataset_get_labeller_stats_params.py +0 -23
  265. structify/types/admin/training_dataset_get_labeller_stats_response.py +0 -10
  266. structify/types/admin/training_dataset_get_next_for_labeling_params.py +0 -15
  267. structify/types/admin/training_dataset_get_next_for_qa_params.py +0 -18
  268. structify/types/admin/training_dataset_get_next_suspicious_params.py +0 -23
  269. structify/types/admin/training_dataset_label_datum_params.py +0 -188
  270. structify/types/admin/training_dataset_list_datums_params.py +0 -17
  271. structify/types/admin/training_dataset_list_datums_response.py +0 -33
  272. structify/types/admin/training_dataset_mark_datum_suspicious_params.py +0 -19
  273. structify/types/admin/training_dataset_size_response.py +0 -37
  274. structify/types/admin/training_dataset_suspicious_count_params.py +0 -23
  275. structify/types/admin/training_dataset_suspicious_count_response.py +0 -9
  276. structify/types/admin/training_dataset_switch_dataset_params.py +0 -13
  277. structify/types/admin/training_dataset_update_datum_status_params.py +0 -18
  278. structify/types/admin/training_dataset_upload_labeled_step_params.py +0 -15
  279. structify/types/admin/training_dataset_verify_datum_params.py +0 -17
  280. structify/types/admin/training_datum_response.py +0 -405
  281. structify/types/admin/user_add_credits_params.py +0 -18
  282. structify/types/chat_prompt_param.py +0 -255
  283. structify/types/connector_column_descriptor.py +0 -21
  284. structify/types/connector_relational_database_descriptor.py +0 -13
  285. structify/types/connector_table_descriptor.py +0 -22
  286. structify/types/document_structure_params.py +0 -21
  287. structify/types/document_structure_response.py +0 -8
  288. structify/types/execution_step.py +0 -198
  289. structify/types/external/__init__.py +0 -96
  290. structify/types/external/companies_search_response.py +0 -28
  291. structify/types/external/company_search_result.py +0 -69
  292. structify/types/external/enriched_organization.py +0 -69
  293. structify/types/external/everything_response.py +0 -19
  294. structify/types/external/google_maps_result.py +0 -38
  295. structify/types/external/google_search_response.py +0 -19
  296. structify/types/external/google_search_result.py +0 -21
  297. structify/types/external/job_posting.py +0 -54
  298. structify/types/external/job_postings_response.py +0 -19
  299. structify/types/external/location_coordinates.py +0 -13
  300. structify/types/external/location_response.py +0 -16
  301. structify/types/external/location_result.py +0 -24
  302. structify/types/external/news_article.py +0 -33
  303. structify/types/external/news_everything_params.py +0 -45
  304. structify/types/external/news_source.py +0 -15
  305. structify/types/external/news_source_detail.py +0 -28
  306. structify/types/external/news_sources_params.py +0 -19
  307. structify/types/external/news_top_headlines_params.py +0 -28
  308. structify/types/external/organization_detail.py +0 -87
  309. structify/types/external/people_match_response.py +0 -18
  310. structify/types/external/people_search_response.py +0 -28
  311. structify/types/external/person_companies_search_params.py +0 -63
  312. structify/types/external/person_match.py +0 -60
  313. structify/types/external/person_organization_job_postings_params.py +0 -16
  314. structify/types/external/person_organizations_enrich_params.py +0 -16
  315. structify/types/external/person_people_match_params.py +0 -49
  316. structify/types/external/person_people_search_params.py +0 -57
  317. structify/types/external/person_search_result.py +0 -48
  318. structify/types/external/search_api_google_flights_calendar_params.py +0 -28
  319. structify/types/external/search_api_google_flights_calendar_response.py +0 -8
  320. structify/types/external/search_api_google_flights_location_search_params.py +0 -16
  321. structify/types/external/search_api_google_flights_location_search_response.py +0 -8
  322. structify/types/external/search_api_google_flights_search_params.py +0 -43
  323. structify/types/external/search_api_google_flights_search_response.py +0 -8
  324. structify/types/external/search_api_google_maps_place_details_params.py +0 -16
  325. structify/types/external/search_api_google_maps_place_details_response.py +0 -8
  326. structify/types/external/search_api_google_maps_place_photos_params.py +0 -16
  327. structify/types/external/search_api_google_maps_place_photos_response.py +0 -8
  328. structify/types/external/search_api_google_maps_place_reviews_params.py +0 -19
  329. structify/types/external/search_api_google_maps_place_reviews_response.py +0 -8
  330. structify/types/external/search_api_google_maps_search_params.py +0 -22
  331. structify/types/external/search_api_google_maps_search_response.py +0 -10
  332. structify/types/external/search_api_google_scholar_author_search_params.py +0 -22
  333. structify/types/external/search_api_google_scholar_author_search_response.py +0 -8
  334. structify/types/external/search_api_google_scholar_citations_params.py +0 -22
  335. structify/types/external/search_api_google_scholar_citations_response.py +0 -8
  336. structify/types/external/search_api_google_scholar_search_params.py +0 -28
  337. structify/types/external/search_api_google_scholar_search_response.py +0 -8
  338. structify/types/external/search_api_google_search_params.py +0 -25
  339. structify/types/external/search_api_location_search_params.py +0 -22
  340. structify/types/external/sources_response.py +0 -16
  341. structify/types/external/top_headlines_response.py +0 -19
  342. structify/types/job_delete_response.py +0 -7
  343. structify/types/job_get_response.py +0 -62
  344. structify/types/job_get_step_graph_response.py +0 -233
  345. structify/types/job_get_step_response.py +0 -196
  346. structify/types/message_param.py +0 -35
  347. structify/types/pending_version_response.py +0 -21
  348. structify/types/report_missing_params.py +0 -18
  349. structify/types/report_missing_response.py +0 -7
  350. structify/types/report_relationship_params.py +0 -18
  351. structify/types/report_relationship_response.py +0 -7
  352. structify/types/report_step_params.py +0 -15
  353. structify/types/report_step_response.py +0 -7
  354. structify/types/report_wrong_params.py +0 -18
  355. structify/types/report_wrong_response.py +0 -7
  356. structify/types/sandbox_create_params.py +0 -20
  357. structify/types/session_create_edge_params.py +0 -13
  358. structify/types/slack_connection_status.py +0 -15
  359. structify/types/slack_user_mapping_params.py +0 -18
  360. structify/types/tool_metadata_param.py +0 -17
  361. structify/types/user_team.py +0 -35
  362. structify/types/workflow_schedule_get_response.py +0 -10
  363. structifyai-1.158.0.dist-info/RECORD +0 -530
  364. {structifyai-1.158.0.dist-info → structifyai-1.176.1.dist-info}/WHEEL +0 -0
structify/_client.py CHANGED
@@ -3,7 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  import os
6
- from typing import Any, Dict, Mapping, cast
6
+ from typing import TYPE_CHECKING, Any, Dict, Mapping, cast
7
7
  from typing_extensions import Self, Literal, override
8
8
 
9
9
  import httpx
@@ -12,6 +12,7 @@ from . import _exceptions
12
12
  from ._qs import Querystring
13
13
  from ._types import (
14
14
  Omit,
15
+ Headers,
15
16
  Timeout,
16
17
  NotGiven,
17
18
  Transport,
@@ -20,41 +21,73 @@ from ._types import (
20
21
  not_given,
21
22
  )
22
23
  from ._utils import is_given, get_async_library
24
+ from ._compat import cached_property
23
25
  from ._version import __version__
24
- from .resources import (
25
- chat,
26
- code,
27
- jobs,
28
- match,
29
- slack,
30
- teams,
31
- polars,
32
- report,
33
- scrape,
34
- server,
35
- sandbox,
36
- sources,
37
- entities,
38
- external,
39
- projects,
40
- sessions,
41
- workflow,
42
- documents,
43
- structure,
44
- connectors,
45
- public_sessions,
46
- workflow_schedule,
47
- )
48
26
  from ._streaming import Stream as Stream, AsyncStream as AsyncStream
49
- from ._exceptions import APIStatusError, StructifyError
27
+ from ._exceptions import APIStatusError
50
28
  from ._base_client import (
51
29
  DEFAULT_MAX_RETRIES,
52
30
  SyncAPIClient,
53
31
  AsyncAPIClient,
54
32
  )
55
- from .resources.user import user
56
- from .resources.admin import admin
57
- from .resources.datasets import datasets
33
+
34
+ if TYPE_CHECKING:
35
+ from .resources import (
36
+ chat,
37
+ code,
38
+ jobs,
39
+ user,
40
+ wiki,
41
+ admin,
42
+ match,
43
+ nango,
44
+ slack,
45
+ teams,
46
+ polars,
47
+ scrape,
48
+ server,
49
+ sandbox,
50
+ sources,
51
+ datasets,
52
+ entities,
53
+ projects,
54
+ sessions,
55
+ workflow,
56
+ documents,
57
+ structure,
58
+ connectors,
59
+ whitelabel,
60
+ public_sessions,
61
+ connector_catalog,
62
+ workflow_schedule,
63
+ )
64
+ from .resources.chat import ChatResource, AsyncChatResource
65
+ from .resources.code import CodeResource, AsyncCodeResource
66
+ from .resources.jobs import JobsResource, AsyncJobsResource
67
+ from .resources.wiki import WikiResource, AsyncWikiResource
68
+ from .resources.match import MatchResource, AsyncMatchResource
69
+ from .resources.nango import NangoResource, AsyncNangoResource
70
+ from .resources.slack import SlackResource, AsyncSlackResource
71
+ from .resources.teams import TeamsResource, AsyncTeamsResource
72
+ from .resources.polars import PolarsResource
73
+ from .resources.scrape import ScrapeResource, AsyncScrapeResource
74
+ from .resources.server import ServerResource, AsyncServerResource
75
+ from .resources.sandbox import SandboxResource, AsyncSandboxResource
76
+ from .resources.sources import SourcesResource, AsyncSourcesResource
77
+ from .resources.datasets import DatasetsResource, AsyncDatasetsResource
78
+ from .resources.entities import EntitiesResource, AsyncEntitiesResource
79
+ from .resources.projects import ProjectsResource, AsyncProjectsResource
80
+ from .resources.sessions import SessionsResource, AsyncSessionsResource
81
+ from .resources.workflow import WorkflowResource, AsyncWorkflowResource
82
+ from .resources.documents import DocumentsResource, AsyncDocumentsResource
83
+ from .resources.structure import StructureResource, AsyncStructureResource
84
+ from .resources.user.user import UserResource, AsyncUserResource
85
+ from .resources.whitelabel import WhitelabelResource, AsyncWhitelabelResource
86
+ from .resources.admin.admin import AdminResource, AsyncAdminResource
87
+ from .resources.public_sessions import PublicSessionsResource, AsyncPublicSessionsResource
88
+ from .resources.workflow_schedule import WorkflowScheduleResource, AsyncWorkflowScheduleResource
89
+ from .resources.connectors.connectors import ConnectorsResource, AsyncConnectorsResource
90
+ from .resources.connector_catalog.connector_catalog import ConnectorCatalogResource, AsyncConnectorCatalogResource
58
91
 
59
92
  __all__ = [
60
93
  "ENVIRONMENTS",
@@ -75,36 +108,9 @@ ENVIRONMENTS: Dict[str, str] = {
75
108
 
76
109
 
77
110
  class Structify(SyncAPIClient):
78
- user: user.UserResource
79
- chat: chat.ChatResource
80
- teams: teams.TeamsResource
81
- projects: projects.ProjectsResource
82
- admin: admin.AdminResource
83
- datasets: datasets.DatasetsResource
84
- documents: documents.DocumentsResource
85
- jobs: jobs.JobsResource
86
- match: match.MatchResource
87
- sessions: sessions.SessionsResource
88
- workflow_schedule: workflow_schedule.WorkflowScheduleResource
89
- workflow: workflow.WorkflowResource
90
- connectors: connectors.ConnectorsResource
91
- server: server.ServerResource
92
- sources: sources.SourcesResource
93
- entities: entities.EntitiesResource
94
- report: report.ReportResource
95
- sandbox: sandbox.SandboxResource
96
- scrape: scrape.ScrapeResource
97
- code: code.CodeResource
98
- structure: structure.StructureResource
99
- public_sessions: public_sessions.PublicSessionsResource
100
- polars: polars.PolarsResource
101
- external: external.ExternalResource
102
- slack: slack.SlackResource
103
- with_raw_response: StructifyWithRawResponse
104
- with_streaming_response: StructifyWithStreamedResponse
105
-
106
111
  # client options
107
- api_key: str
112
+ api_key: str | None
113
+ session_token: str | None
108
114
 
109
115
  _environment: Literal["production", "development"] | NotGiven
110
116
 
@@ -112,6 +118,7 @@ class Structify(SyncAPIClient):
112
118
  self,
113
119
  *,
114
120
  api_key: str | None = None,
121
+ session_token: str | None = None,
115
122
  environment: Literal["production", "development"] | NotGiven = not_given,
116
123
  base_url: str | httpx.URL | None | NotGiven = not_given,
117
124
  timeout: float | Timeout | None | NotGiven = not_given,
@@ -134,16 +141,18 @@ class Structify(SyncAPIClient):
134
141
  ) -> None:
135
142
  """Construct a new synchronous Structify client instance.
136
143
 
137
- This automatically infers the `api_key` argument from the `STRUCTIFY_API_TOKEN` environment variable if it is not provided.
144
+ This automatically infers the following arguments from their corresponding environment variables if they are not provided:
145
+ - `api_key` from `STRUCTIFY_API_TOKEN`
146
+ - `session_token` from `STRUCTIFY_SESSION_TOKEN`
138
147
  """
139
148
  if api_key is None:
140
149
  api_key = os.environ.get("STRUCTIFY_API_TOKEN")
141
- if api_key is None:
142
- raise StructifyError(
143
- "The api_key client option must be set either by passing api_key to the client or by setting the STRUCTIFY_API_TOKEN environment variable"
144
- )
145
150
  self.api_key = api_key
146
151
 
152
+ if session_token is None:
153
+ session_token = os.environ.get("STRUCTIFY_SESSION_TOKEN")
154
+ self.session_token = session_token
155
+
147
156
  self._environment = environment
148
157
 
149
158
  base_url_env = os.environ.get("STRUCTIFY_BASE_URL")
@@ -181,33 +190,175 @@ class Structify(SyncAPIClient):
181
190
  _strict_response_validation=_strict_response_validation,
182
191
  )
183
192
 
184
- self.user = user.UserResource(self)
185
- self.chat = chat.ChatResource(self)
186
- self.teams = teams.TeamsResource(self)
187
- self.projects = projects.ProjectsResource(self)
188
- self.admin = admin.AdminResource(self)
189
- self.datasets = datasets.DatasetsResource(self)
190
- self.documents = documents.DocumentsResource(self)
191
- self.jobs = jobs.JobsResource(self)
192
- self.match = match.MatchResource(self)
193
- self.sessions = sessions.SessionsResource(self)
194
- self.workflow_schedule = workflow_schedule.WorkflowScheduleResource(self)
195
- self.workflow = workflow.WorkflowResource(self)
196
- self.connectors = connectors.ConnectorsResource(self)
197
- self.server = server.ServerResource(self)
198
- self.sources = sources.SourcesResource(self)
199
- self.entities = entities.EntitiesResource(self)
200
- self.report = report.ReportResource(self)
201
- self.sandbox = sandbox.SandboxResource(self)
202
- self.scrape = scrape.ScrapeResource(self)
203
- self.code = code.CodeResource(self)
204
- self.structure = structure.StructureResource(self)
205
- self.public_sessions = public_sessions.PublicSessionsResource(self)
206
- self.polars = polars.PolarsResource(self)
207
- self.external = external.ExternalResource(self)
208
- self.slack = slack.SlackResource(self)
209
- self.with_raw_response = StructifyWithRawResponse(self)
210
- self.with_streaming_response = StructifyWithStreamedResponse(self)
193
+ @cached_property
194
+ def whitelabel(self) -> WhitelabelResource:
195
+ from .resources.whitelabel import WhitelabelResource
196
+
197
+ return WhitelabelResource(self)
198
+
199
+ @cached_property
200
+ def user(self) -> UserResource:
201
+ from .resources.user import UserResource
202
+
203
+ return UserResource(self)
204
+
205
+ @cached_property
206
+ def chat(self) -> ChatResource:
207
+ from .resources.chat import ChatResource
208
+
209
+ return ChatResource(self)
210
+
211
+ @cached_property
212
+ def teams(self) -> TeamsResource:
213
+ from .resources.teams import TeamsResource
214
+
215
+ return TeamsResource(self)
216
+
217
+ @cached_property
218
+ def wiki(self) -> WikiResource:
219
+ from .resources.wiki import WikiResource
220
+
221
+ return WikiResource(self)
222
+
223
+ @cached_property
224
+ def polars(self) -> PolarsResource:
225
+ from .resources.polars import PolarsResource
226
+
227
+ return PolarsResource(self)
228
+
229
+ @cached_property
230
+ def projects(self) -> ProjectsResource:
231
+ from .resources.projects import ProjectsResource
232
+
233
+ return ProjectsResource(self)
234
+
235
+ @cached_property
236
+ def admin(self) -> AdminResource:
237
+ from .resources.admin import AdminResource
238
+
239
+ return AdminResource(self)
240
+
241
+ @cached_property
242
+ def datasets(self) -> DatasetsResource:
243
+ from .resources.datasets import DatasetsResource
244
+
245
+ return DatasetsResource(self)
246
+
247
+ @cached_property
248
+ def documents(self) -> DocumentsResource:
249
+ from .resources.documents import DocumentsResource
250
+
251
+ return DocumentsResource(self)
252
+
253
+ @cached_property
254
+ def jobs(self) -> JobsResource:
255
+ from .resources.jobs import JobsResource
256
+
257
+ return JobsResource(self)
258
+
259
+ @cached_property
260
+ def match(self) -> MatchResource:
261
+ from .resources.match import MatchResource
262
+
263
+ return MatchResource(self)
264
+
265
+ @cached_property
266
+ def sessions(self) -> SessionsResource:
267
+ from .resources.sessions import SessionsResource
268
+
269
+ return SessionsResource(self)
270
+
271
+ @cached_property
272
+ def workflow_schedule(self) -> WorkflowScheduleResource:
273
+ from .resources.workflow_schedule import WorkflowScheduleResource
274
+
275
+ return WorkflowScheduleResource(self)
276
+
277
+ @cached_property
278
+ def workflow(self) -> WorkflowResource:
279
+ from .resources.workflow import WorkflowResource
280
+
281
+ return WorkflowResource(self)
282
+
283
+ @cached_property
284
+ def connectors(self) -> ConnectorsResource:
285
+ from .resources.connectors import ConnectorsResource
286
+
287
+ return ConnectorsResource(self)
288
+
289
+ @cached_property
290
+ def connector_catalog(self) -> ConnectorCatalogResource:
291
+ from .resources.connector_catalog import ConnectorCatalogResource
292
+
293
+ return ConnectorCatalogResource(self)
294
+
295
+ @cached_property
296
+ def server(self) -> ServerResource:
297
+ from .resources.server import ServerResource
298
+
299
+ return ServerResource(self)
300
+
301
+ @cached_property
302
+ def sources(self) -> SourcesResource:
303
+ from .resources.sources import SourcesResource
304
+
305
+ return SourcesResource(self)
306
+
307
+ @cached_property
308
+ def entities(self) -> EntitiesResource:
309
+ from .resources.entities import EntitiesResource
310
+
311
+ return EntitiesResource(self)
312
+
313
+ @cached_property
314
+ def sandbox(self) -> SandboxResource:
315
+ from .resources.sandbox import SandboxResource
316
+
317
+ return SandboxResource(self)
318
+
319
+ @cached_property
320
+ def scrape(self) -> ScrapeResource:
321
+ from .resources.scrape import ScrapeResource
322
+
323
+ return ScrapeResource(self)
324
+
325
+ @cached_property
326
+ def code(self) -> CodeResource:
327
+ from .resources.code import CodeResource
328
+
329
+ return CodeResource(self)
330
+
331
+ @cached_property
332
+ def structure(self) -> StructureResource:
333
+ from .resources.structure import StructureResource
334
+
335
+ return StructureResource(self)
336
+
337
+ @cached_property
338
+ def public_sessions(self) -> PublicSessionsResource:
339
+ from .resources.public_sessions import PublicSessionsResource
340
+
341
+ return PublicSessionsResource(self)
342
+
343
+ @cached_property
344
+ def slack(self) -> SlackResource:
345
+ from .resources.slack import SlackResource
346
+
347
+ return SlackResource(self)
348
+
349
+ @cached_property
350
+ def nango(self) -> NangoResource:
351
+ from .resources.nango import NangoResource
352
+
353
+ return NangoResource(self)
354
+
355
+ @cached_property
356
+ def with_raw_response(self) -> StructifyWithRawResponse:
357
+ return StructifyWithRawResponse(self)
358
+
359
+ @cached_property
360
+ def with_streaming_response(self) -> StructifyWithStreamedResponse:
361
+ return StructifyWithStreamedResponse(self)
211
362
 
212
363
  @property
213
364
  @override
@@ -217,9 +368,22 @@ class Structify(SyncAPIClient):
217
368
  @property
218
369
  @override
219
370
  def auth_headers(self) -> dict[str, str]:
371
+ return {**self._api_key, **self._session_token}
372
+
373
+ @property
374
+ def _api_key(self) -> dict[str, str]:
220
375
  api_key = self.api_key
376
+ if api_key is None:
377
+ return {}
221
378
  return {"api_key": api_key}
222
379
 
380
+ @property
381
+ def _session_token(self) -> dict[str, str]:
382
+ session_token = self.session_token
383
+ if session_token is None:
384
+ return {}
385
+ return {"Authorization": f"Bearer {session_token}"}
386
+
223
387
  @property
224
388
  @override
225
389
  def default_headers(self) -> dict[str, str | Omit]:
@@ -229,10 +393,23 @@ class Structify(SyncAPIClient):
229
393
  **self._custom_headers,
230
394
  }
231
395
 
396
+ @override
397
+ def _validate_headers(self, headers: Headers, custom_headers: Headers) -> None:
398
+ if headers.get("api_key") or isinstance(custom_headers.get("api_key"), Omit):
399
+ return
400
+
401
+ if headers.get("Authorization") or isinstance(custom_headers.get("Authorization"), Omit):
402
+ return
403
+
404
+ raise TypeError(
405
+ '"Could not resolve authentication method. Expected either api_key or session_token to be set. Or for one of the `api_key` or `Authorization` headers to be explicitly omitted"'
406
+ )
407
+
232
408
  def copy(
233
409
  self,
234
410
  *,
235
411
  api_key: str | None = None,
412
+ session_token: str | None = None,
236
413
  environment: Literal["production", "development"] | None = None,
237
414
  base_url: str | httpx.URL | None = None,
238
415
  timeout: float | Timeout | None | NotGiven = not_given,
@@ -268,6 +445,7 @@ class Structify(SyncAPIClient):
268
445
  http_client = http_client or self._client
269
446
  return self.__class__(
270
447
  api_key=api_key or self.api_key,
448
+ session_token=session_token or self.session_token,
271
449
  base_url=base_url or self.base_url,
272
450
  environment=environment or self._environment,
273
451
  timeout=self.timeout if isinstance(timeout, NotGiven) else timeout,
@@ -317,35 +495,9 @@ class Structify(SyncAPIClient):
317
495
 
318
496
 
319
497
  class AsyncStructify(AsyncAPIClient):
320
- user: user.AsyncUserResource
321
- chat: chat.AsyncChatResource
322
- teams: teams.AsyncTeamsResource
323
- projects: projects.AsyncProjectsResource
324
- admin: admin.AsyncAdminResource
325
- datasets: datasets.AsyncDatasetsResource
326
- documents: documents.AsyncDocumentsResource
327
- jobs: jobs.AsyncJobsResource
328
- match: match.AsyncMatchResource
329
- sessions: sessions.AsyncSessionsResource
330
- workflow_schedule: workflow_schedule.AsyncWorkflowScheduleResource
331
- workflow: workflow.AsyncWorkflowResource
332
- connectors: connectors.AsyncConnectorsResource
333
- server: server.AsyncServerResource
334
- sources: sources.AsyncSourcesResource
335
- entities: entities.AsyncEntitiesResource
336
- report: report.AsyncReportResource
337
- sandbox: sandbox.AsyncSandboxResource
338
- scrape: scrape.AsyncScrapeResource
339
- code: code.AsyncCodeResource
340
- structure: structure.AsyncStructureResource
341
- public_sessions: public_sessions.AsyncPublicSessionsResource
342
- external: external.AsyncExternalResource
343
- slack: slack.AsyncSlackResource
344
- with_raw_response: AsyncStructifyWithRawResponse
345
- with_streaming_response: AsyncStructifyWithStreamedResponse
346
-
347
498
  # client options
348
- api_key: str
499
+ api_key: str | None
500
+ session_token: str | None
349
501
 
350
502
  _environment: Literal["production", "development"] | NotGiven
351
503
 
@@ -353,6 +505,7 @@ class AsyncStructify(AsyncAPIClient):
353
505
  self,
354
506
  *,
355
507
  api_key: str | None = None,
508
+ session_token: str | None = None,
356
509
  environment: Literal["production", "development"] | NotGiven = not_given,
357
510
  base_url: str | httpx.URL | None | NotGiven = not_given,
358
511
  timeout: float | Timeout | None | NotGiven = not_given,
@@ -375,16 +528,18 @@ class AsyncStructify(AsyncAPIClient):
375
528
  ) -> None:
376
529
  """Construct a new async AsyncStructify client instance.
377
530
 
378
- This automatically infers the `api_key` argument from the `STRUCTIFY_API_TOKEN` environment variable if it is not provided.
531
+ This automatically infers the following arguments from their corresponding environment variables if they are not provided:
532
+ - `api_key` from `STRUCTIFY_API_TOKEN`
533
+ - `session_token` from `STRUCTIFY_SESSION_TOKEN`
379
534
  """
380
535
  if api_key is None:
381
536
  api_key = os.environ.get("STRUCTIFY_API_TOKEN")
382
- if api_key is None:
383
- raise StructifyError(
384
- "The api_key client option must be set either by passing api_key to the client or by setting the STRUCTIFY_API_TOKEN environment variable"
385
- )
386
537
  self.api_key = api_key
387
538
 
539
+ if session_token is None:
540
+ session_token = os.environ.get("STRUCTIFY_SESSION_TOKEN")
541
+ self.session_token = session_token
542
+
388
543
  self._environment = environment
389
544
 
390
545
  base_url_env = os.environ.get("STRUCTIFY_BASE_URL")
@@ -422,32 +577,169 @@ class AsyncStructify(AsyncAPIClient):
422
577
  _strict_response_validation=_strict_response_validation,
423
578
  )
424
579
 
425
- self.user = user.AsyncUserResource(self)
426
- self.chat = chat.AsyncChatResource(self)
427
- self.teams = teams.AsyncTeamsResource(self)
428
- self.projects = projects.AsyncProjectsResource(self)
429
- self.admin = admin.AsyncAdminResource(self)
430
- self.datasets = datasets.AsyncDatasetsResource(self)
431
- self.documents = documents.AsyncDocumentsResource(self)
432
- self.jobs = jobs.AsyncJobsResource(self)
433
- self.match = match.AsyncMatchResource(self)
434
- self.sessions = sessions.AsyncSessionsResource(self)
435
- self.workflow_schedule = workflow_schedule.AsyncWorkflowScheduleResource(self)
436
- self.workflow = workflow.AsyncWorkflowResource(self)
437
- self.connectors = connectors.AsyncConnectorsResource(self)
438
- self.server = server.AsyncServerResource(self)
439
- self.sources = sources.AsyncSourcesResource(self)
440
- self.entities = entities.AsyncEntitiesResource(self)
441
- self.report = report.AsyncReportResource(self)
442
- self.sandbox = sandbox.AsyncSandboxResource(self)
443
- self.scrape = scrape.AsyncScrapeResource(self)
444
- self.code = code.AsyncCodeResource(self)
445
- self.structure = structure.AsyncStructureResource(self)
446
- self.public_sessions = public_sessions.AsyncPublicSessionsResource(self)
447
- self.external = external.AsyncExternalResource(self)
448
- self.slack = slack.AsyncSlackResource(self)
449
- self.with_raw_response = AsyncStructifyWithRawResponse(self)
450
- self.with_streaming_response = AsyncStructifyWithStreamedResponse(self)
580
+ @cached_property
581
+ def whitelabel(self) -> AsyncWhitelabelResource:
582
+ from .resources.whitelabel import AsyncWhitelabelResource
583
+
584
+ return AsyncWhitelabelResource(self)
585
+
586
+ @cached_property
587
+ def user(self) -> AsyncUserResource:
588
+ from .resources.user import AsyncUserResource
589
+
590
+ return AsyncUserResource(self)
591
+
592
+ @cached_property
593
+ def chat(self) -> AsyncChatResource:
594
+ from .resources.chat import AsyncChatResource
595
+
596
+ return AsyncChatResource(self)
597
+
598
+ @cached_property
599
+ def teams(self) -> AsyncTeamsResource:
600
+ from .resources.teams import AsyncTeamsResource
601
+
602
+ return AsyncTeamsResource(self)
603
+
604
+ @cached_property
605
+ def wiki(self) -> AsyncWikiResource:
606
+ from .resources.wiki import AsyncWikiResource
607
+
608
+ return AsyncWikiResource(self)
609
+
610
+ @cached_property
611
+ def projects(self) -> AsyncProjectsResource:
612
+ from .resources.projects import AsyncProjectsResource
613
+
614
+ return AsyncProjectsResource(self)
615
+
616
+ @cached_property
617
+ def admin(self) -> AsyncAdminResource:
618
+ from .resources.admin import AsyncAdminResource
619
+
620
+ return AsyncAdminResource(self)
621
+
622
+ @cached_property
623
+ def datasets(self) -> AsyncDatasetsResource:
624
+ from .resources.datasets import AsyncDatasetsResource
625
+
626
+ return AsyncDatasetsResource(self)
627
+
628
+ @cached_property
629
+ def documents(self) -> AsyncDocumentsResource:
630
+ from .resources.documents import AsyncDocumentsResource
631
+
632
+ return AsyncDocumentsResource(self)
633
+
634
+ @cached_property
635
+ def jobs(self) -> AsyncJobsResource:
636
+ from .resources.jobs import AsyncJobsResource
637
+
638
+ return AsyncJobsResource(self)
639
+
640
+ @cached_property
641
+ def match(self) -> AsyncMatchResource:
642
+ from .resources.match import AsyncMatchResource
643
+
644
+ return AsyncMatchResource(self)
645
+
646
+ @cached_property
647
+ def sessions(self) -> AsyncSessionsResource:
648
+ from .resources.sessions import AsyncSessionsResource
649
+
650
+ return AsyncSessionsResource(self)
651
+
652
+ @cached_property
653
+ def workflow_schedule(self) -> AsyncWorkflowScheduleResource:
654
+ from .resources.workflow_schedule import AsyncWorkflowScheduleResource
655
+
656
+ return AsyncWorkflowScheduleResource(self)
657
+
658
+ @cached_property
659
+ def workflow(self) -> AsyncWorkflowResource:
660
+ from .resources.workflow import AsyncWorkflowResource
661
+
662
+ return AsyncWorkflowResource(self)
663
+
664
+ @cached_property
665
+ def connectors(self) -> AsyncConnectorsResource:
666
+ from .resources.connectors import AsyncConnectorsResource
667
+
668
+ return AsyncConnectorsResource(self)
669
+
670
+ @cached_property
671
+ def connector_catalog(self) -> AsyncConnectorCatalogResource:
672
+ from .resources.connector_catalog import AsyncConnectorCatalogResource
673
+
674
+ return AsyncConnectorCatalogResource(self)
675
+
676
+ @cached_property
677
+ def server(self) -> AsyncServerResource:
678
+ from .resources.server import AsyncServerResource
679
+
680
+ return AsyncServerResource(self)
681
+
682
+ @cached_property
683
+ def sources(self) -> AsyncSourcesResource:
684
+ from .resources.sources import AsyncSourcesResource
685
+
686
+ return AsyncSourcesResource(self)
687
+
688
+ @cached_property
689
+ def entities(self) -> AsyncEntitiesResource:
690
+ from .resources.entities import AsyncEntitiesResource
691
+
692
+ return AsyncEntitiesResource(self)
693
+
694
+ @cached_property
695
+ def sandbox(self) -> AsyncSandboxResource:
696
+ from .resources.sandbox import AsyncSandboxResource
697
+
698
+ return AsyncSandboxResource(self)
699
+
700
+ @cached_property
701
+ def scrape(self) -> AsyncScrapeResource:
702
+ from .resources.scrape import AsyncScrapeResource
703
+
704
+ return AsyncScrapeResource(self)
705
+
706
+ @cached_property
707
+ def code(self) -> AsyncCodeResource:
708
+ from .resources.code import AsyncCodeResource
709
+
710
+ return AsyncCodeResource(self)
711
+
712
+ @cached_property
713
+ def structure(self) -> AsyncStructureResource:
714
+ from .resources.structure import AsyncStructureResource
715
+
716
+ return AsyncStructureResource(self)
717
+
718
+ @cached_property
719
+ def public_sessions(self) -> AsyncPublicSessionsResource:
720
+ from .resources.public_sessions import AsyncPublicSessionsResource
721
+
722
+ return AsyncPublicSessionsResource(self)
723
+
724
+ @cached_property
725
+ def slack(self) -> AsyncSlackResource:
726
+ from .resources.slack import AsyncSlackResource
727
+
728
+ return AsyncSlackResource(self)
729
+
730
+ @cached_property
731
+ def nango(self) -> AsyncNangoResource:
732
+ from .resources.nango import AsyncNangoResource
733
+
734
+ return AsyncNangoResource(self)
735
+
736
+ @cached_property
737
+ def with_raw_response(self) -> AsyncStructifyWithRawResponse:
738
+ return AsyncStructifyWithRawResponse(self)
739
+
740
+ @cached_property
741
+ def with_streaming_response(self) -> AsyncStructifyWithStreamedResponse:
742
+ return AsyncStructifyWithStreamedResponse(self)
451
743
 
452
744
  @property
453
745
  @override
@@ -457,9 +749,22 @@ class AsyncStructify(AsyncAPIClient):
457
749
  @property
458
750
  @override
459
751
  def auth_headers(self) -> dict[str, str]:
752
+ return {**self._api_key, **self._session_token}
753
+
754
+ @property
755
+ def _api_key(self) -> dict[str, str]:
460
756
  api_key = self.api_key
757
+ if api_key is None:
758
+ return {}
461
759
  return {"api_key": api_key}
462
760
 
761
+ @property
762
+ def _session_token(self) -> dict[str, str]:
763
+ session_token = self.session_token
764
+ if session_token is None:
765
+ return {}
766
+ return {"Authorization": f"Bearer {session_token}"}
767
+
463
768
  @property
464
769
  @override
465
770
  def default_headers(self) -> dict[str, str | Omit]:
@@ -469,10 +774,23 @@ class AsyncStructify(AsyncAPIClient):
469
774
  **self._custom_headers,
470
775
  }
471
776
 
777
+ @override
778
+ def _validate_headers(self, headers: Headers, custom_headers: Headers) -> None:
779
+ if headers.get("api_key") or isinstance(custom_headers.get("api_key"), Omit):
780
+ return
781
+
782
+ if headers.get("Authorization") or isinstance(custom_headers.get("Authorization"), Omit):
783
+ return
784
+
785
+ raise TypeError(
786
+ '"Could not resolve authentication method. Expected either api_key or session_token to be set. Or for one of the `api_key` or `Authorization` headers to be explicitly omitted"'
787
+ )
788
+
472
789
  def copy(
473
790
  self,
474
791
  *,
475
792
  api_key: str | None = None,
793
+ session_token: str | None = None,
476
794
  environment: Literal["production", "development"] | None = None,
477
795
  base_url: str | httpx.URL | None = None,
478
796
  timeout: float | Timeout | None | NotGiven = not_given,
@@ -508,6 +826,7 @@ class AsyncStructify(AsyncAPIClient):
508
826
  http_client = http_client or self._client
509
827
  return self.__class__(
510
828
  api_key=api_key or self.api_key,
829
+ session_token=session_token or self.session_token,
511
830
  base_url=base_url or self.base_url,
512
831
  environment=environment or self._environment,
513
832
  timeout=self.timeout if isinstance(timeout, NotGiven) else timeout,
@@ -557,123 +876,667 @@ class AsyncStructify(AsyncAPIClient):
557
876
 
558
877
 
559
878
  class StructifyWithRawResponse:
879
+ _client: Structify
880
+
560
881
  def __init__(self, client: Structify) -> None:
561
- self.user = user.UserResourceWithRawResponse(client.user)
562
- self.chat = chat.ChatResourceWithRawResponse(client.chat)
563
- self.teams = teams.TeamsResourceWithRawResponse(client.teams)
564
- self.projects = projects.ProjectsResourceWithRawResponse(client.projects)
565
- self.admin = admin.AdminResourceWithRawResponse(client.admin)
566
- self.datasets = datasets.DatasetsResourceWithRawResponse(client.datasets)
567
- self.documents = documents.DocumentsResourceWithRawResponse(client.documents)
568
- self.jobs = jobs.JobsResourceWithRawResponse(client.jobs)
569
- self.match = match.MatchResourceWithRawResponse(client.match)
570
- self.sessions = sessions.SessionsResourceWithRawResponse(client.sessions)
571
- self.workflow_schedule = workflow_schedule.WorkflowScheduleResourceWithRawResponse(client.workflow_schedule)
572
- self.workflow = workflow.WorkflowResourceWithRawResponse(client.workflow)
573
- self.connectors = connectors.ConnectorsResourceWithRawResponse(client.connectors)
574
- self.server = server.ServerResourceWithRawResponse(client.server)
575
- self.sources = sources.SourcesResourceWithRawResponse(client.sources)
576
- self.entities = entities.EntitiesResourceWithRawResponse(client.entities)
577
- self.report = report.ReportResourceWithRawResponse(client.report)
578
- self.sandbox = sandbox.SandboxResourceWithRawResponse(client.sandbox)
579
- self.scrape = scrape.ScrapeResourceWithRawResponse(client.scrape)
580
- self.code = code.CodeResourceWithRawResponse(client.code)
581
- self.structure = structure.StructureResourceWithRawResponse(client.structure)
582
- self.public_sessions = public_sessions.PublicSessionsResourceWithRawResponse(client.public_sessions)
583
- self.polars = polars.PolarsResourceWithRawResponse(client.polars)
584
- self.external = external.ExternalResourceWithRawResponse(client.external)
585
- self.slack = slack.SlackResourceWithRawResponse(client.slack)
882
+ self._client = client
883
+
884
+ @cached_property
885
+ def whitelabel(self) -> whitelabel.WhitelabelResourceWithRawResponse:
886
+ from .resources.whitelabel import WhitelabelResourceWithRawResponse
887
+
888
+ return WhitelabelResourceWithRawResponse(self._client.whitelabel)
889
+
890
+ @cached_property
891
+ def user(self) -> user.UserResourceWithRawResponse:
892
+ from .resources.user import UserResourceWithRawResponse
893
+
894
+ return UserResourceWithRawResponse(self._client.user)
895
+
896
+ @cached_property
897
+ def chat(self) -> chat.ChatResourceWithRawResponse:
898
+ from .resources.chat import ChatResourceWithRawResponse
899
+
900
+ return ChatResourceWithRawResponse(self._client.chat)
901
+
902
+ @cached_property
903
+ def teams(self) -> teams.TeamsResourceWithRawResponse:
904
+ from .resources.teams import TeamsResourceWithRawResponse
905
+
906
+ return TeamsResourceWithRawResponse(self._client.teams)
907
+
908
+ @cached_property
909
+ def wiki(self) -> wiki.WikiResourceWithRawResponse:
910
+ from .resources.wiki import WikiResourceWithRawResponse
911
+
912
+ return WikiResourceWithRawResponse(self._client.wiki)
913
+
914
+ @cached_property
915
+ def projects(self) -> projects.ProjectsResourceWithRawResponse:
916
+ from .resources.projects import ProjectsResourceWithRawResponse
917
+
918
+ return ProjectsResourceWithRawResponse(self._client.projects)
919
+
920
+ @cached_property
921
+ def polars(self) -> polars.PolarsResourceWithRawResponse:
922
+ from .resources.polars import PolarsResourceWithRawResponse
923
+
924
+ return PolarsResourceWithRawResponse(self._client.polars)
925
+
926
+ @cached_property
927
+ def admin(self) -> admin.AdminResourceWithRawResponse:
928
+ from .resources.admin import AdminResourceWithRawResponse
929
+
930
+ return AdminResourceWithRawResponse(self._client.admin)
931
+
932
+ @cached_property
933
+ def datasets(self) -> datasets.DatasetsResourceWithRawResponse:
934
+ from .resources.datasets import DatasetsResourceWithRawResponse
935
+
936
+ return DatasetsResourceWithRawResponse(self._client.datasets)
937
+
938
+ @cached_property
939
+ def documents(self) -> documents.DocumentsResourceWithRawResponse:
940
+ from .resources.documents import DocumentsResourceWithRawResponse
941
+
942
+ return DocumentsResourceWithRawResponse(self._client.documents)
943
+
944
+ @cached_property
945
+ def jobs(self) -> jobs.JobsResourceWithRawResponse:
946
+ from .resources.jobs import JobsResourceWithRawResponse
947
+
948
+ return JobsResourceWithRawResponse(self._client.jobs)
949
+
950
+ @cached_property
951
+ def match(self) -> match.MatchResourceWithRawResponse:
952
+ from .resources.match import MatchResourceWithRawResponse
953
+
954
+ return MatchResourceWithRawResponse(self._client.match)
955
+
956
+ @cached_property
957
+ def sessions(self) -> sessions.SessionsResourceWithRawResponse:
958
+ from .resources.sessions import SessionsResourceWithRawResponse
959
+
960
+ return SessionsResourceWithRawResponse(self._client.sessions)
961
+
962
+ @cached_property
963
+ def workflow_schedule(self) -> workflow_schedule.WorkflowScheduleResourceWithRawResponse:
964
+ from .resources.workflow_schedule import WorkflowScheduleResourceWithRawResponse
965
+
966
+ return WorkflowScheduleResourceWithRawResponse(self._client.workflow_schedule)
967
+
968
+ @cached_property
969
+ def workflow(self) -> workflow.WorkflowResourceWithRawResponse:
970
+ from .resources.workflow import WorkflowResourceWithRawResponse
971
+
972
+ return WorkflowResourceWithRawResponse(self._client.workflow)
973
+
974
+ @cached_property
975
+ def connectors(self) -> connectors.ConnectorsResourceWithRawResponse:
976
+ from .resources.connectors import ConnectorsResourceWithRawResponse
977
+
978
+ return ConnectorsResourceWithRawResponse(self._client.connectors)
979
+
980
+ @cached_property
981
+ def connector_catalog(self) -> connector_catalog.ConnectorCatalogResourceWithRawResponse:
982
+ from .resources.connector_catalog import ConnectorCatalogResourceWithRawResponse
983
+
984
+ return ConnectorCatalogResourceWithRawResponse(self._client.connector_catalog)
985
+
986
+ @cached_property
987
+ def server(self) -> server.ServerResourceWithRawResponse:
988
+ from .resources.server import ServerResourceWithRawResponse
989
+
990
+ return ServerResourceWithRawResponse(self._client.server)
991
+
992
+ @cached_property
993
+ def sources(self) -> sources.SourcesResourceWithRawResponse:
994
+ from .resources.sources import SourcesResourceWithRawResponse
995
+
996
+ return SourcesResourceWithRawResponse(self._client.sources)
997
+
998
+ @cached_property
999
+ def entities(self) -> entities.EntitiesResourceWithRawResponse:
1000
+ from .resources.entities import EntitiesResourceWithRawResponse
1001
+
1002
+ return EntitiesResourceWithRawResponse(self._client.entities)
1003
+
1004
+ @cached_property
1005
+ def sandbox(self) -> sandbox.SandboxResourceWithRawResponse:
1006
+ from .resources.sandbox import SandboxResourceWithRawResponse
1007
+
1008
+ return SandboxResourceWithRawResponse(self._client.sandbox)
1009
+
1010
+ @cached_property
1011
+ def scrape(self) -> scrape.ScrapeResourceWithRawResponse:
1012
+ from .resources.scrape import ScrapeResourceWithRawResponse
1013
+
1014
+ return ScrapeResourceWithRawResponse(self._client.scrape)
1015
+
1016
+ @cached_property
1017
+ def code(self) -> code.CodeResourceWithRawResponse:
1018
+ from .resources.code import CodeResourceWithRawResponse
1019
+
1020
+ return CodeResourceWithRawResponse(self._client.code)
1021
+
1022
+ @cached_property
1023
+ def structure(self) -> structure.StructureResourceWithRawResponse:
1024
+ from .resources.structure import StructureResourceWithRawResponse
1025
+
1026
+ return StructureResourceWithRawResponse(self._client.structure)
1027
+
1028
+ @cached_property
1029
+ def public_sessions(self) -> public_sessions.PublicSessionsResourceWithRawResponse:
1030
+ from .resources.public_sessions import PublicSessionsResourceWithRawResponse
1031
+
1032
+ return PublicSessionsResourceWithRawResponse(self._client.public_sessions)
1033
+
1034
+ @cached_property
1035
+ def slack(self) -> slack.SlackResourceWithRawResponse:
1036
+ from .resources.slack import SlackResourceWithRawResponse
1037
+
1038
+ return SlackResourceWithRawResponse(self._client.slack)
1039
+
1040
+ @cached_property
1041
+ def nango(self) -> nango.NangoResourceWithRawResponse:
1042
+ from .resources.nango import NangoResourceWithRawResponse
1043
+
1044
+ return NangoResourceWithRawResponse(self._client.nango)
586
1045
 
587
1046
 
588
1047
  class AsyncStructifyWithRawResponse:
1048
+ _client: AsyncStructify
1049
+
589
1050
  def __init__(self, client: AsyncStructify) -> None:
590
- self.user = user.AsyncUserResourceWithRawResponse(client.user)
591
- self.chat = chat.AsyncChatResourceWithRawResponse(client.chat)
592
- self.teams = teams.AsyncTeamsResourceWithRawResponse(client.teams)
593
- self.projects = projects.AsyncProjectsResourceWithRawResponse(client.projects)
594
- self.admin = admin.AsyncAdminResourceWithRawResponse(client.admin)
595
- self.datasets = datasets.AsyncDatasetsResourceWithRawResponse(client.datasets)
596
- self.documents = documents.AsyncDocumentsResourceWithRawResponse(client.documents)
597
- self.jobs = jobs.AsyncJobsResourceWithRawResponse(client.jobs)
598
- self.match = match.AsyncMatchResourceWithRawResponse(client.match)
599
- self.sessions = sessions.AsyncSessionsResourceWithRawResponse(client.sessions)
600
- self.workflow_schedule = workflow_schedule.AsyncWorkflowScheduleResourceWithRawResponse(
601
- client.workflow_schedule
602
- )
603
- self.workflow = workflow.AsyncWorkflowResourceWithRawResponse(client.workflow)
604
- self.connectors = connectors.AsyncConnectorsResourceWithRawResponse(client.connectors)
605
- self.server = server.AsyncServerResourceWithRawResponse(client.server)
606
- self.sources = sources.AsyncSourcesResourceWithRawResponse(client.sources)
607
- self.entities = entities.AsyncEntitiesResourceWithRawResponse(client.entities)
608
- self.report = report.AsyncReportResourceWithRawResponse(client.report)
609
- self.sandbox = sandbox.AsyncSandboxResourceWithRawResponse(client.sandbox)
610
- self.scrape = scrape.AsyncScrapeResourceWithRawResponse(client.scrape)
611
- self.code = code.AsyncCodeResourceWithRawResponse(client.code)
612
- self.structure = structure.AsyncStructureResourceWithRawResponse(client.structure)
613
- self.public_sessions = public_sessions.AsyncPublicSessionsResourceWithRawResponse(client.public_sessions)
614
- self.external = external.AsyncExternalResourceWithRawResponse(client.external)
615
- self.slack = slack.AsyncSlackResourceWithRawResponse(client.slack)
1051
+ self._client = client
1052
+
1053
+ @cached_property
1054
+ def whitelabel(self) -> whitelabel.AsyncWhitelabelResourceWithRawResponse:
1055
+ from .resources.whitelabel import AsyncWhitelabelResourceWithRawResponse
1056
+
1057
+ return AsyncWhitelabelResourceWithRawResponse(self._client.whitelabel)
1058
+
1059
+ @cached_property
1060
+ def user(self) -> user.AsyncUserResourceWithRawResponse:
1061
+ from .resources.user import AsyncUserResourceWithRawResponse
1062
+
1063
+ return AsyncUserResourceWithRawResponse(self._client.user)
1064
+
1065
+ @cached_property
1066
+ def chat(self) -> chat.AsyncChatResourceWithRawResponse:
1067
+ from .resources.chat import AsyncChatResourceWithRawResponse
1068
+
1069
+ return AsyncChatResourceWithRawResponse(self._client.chat)
1070
+
1071
+ @cached_property
1072
+ def teams(self) -> teams.AsyncTeamsResourceWithRawResponse:
1073
+ from .resources.teams import AsyncTeamsResourceWithRawResponse
1074
+
1075
+ return AsyncTeamsResourceWithRawResponse(self._client.teams)
1076
+
1077
+ @cached_property
1078
+ def wiki(self) -> wiki.AsyncWikiResourceWithRawResponse:
1079
+ from .resources.wiki import AsyncWikiResourceWithRawResponse
1080
+
1081
+ return AsyncWikiResourceWithRawResponse(self._client.wiki)
1082
+
1083
+ @cached_property
1084
+ def projects(self) -> projects.AsyncProjectsResourceWithRawResponse:
1085
+ from .resources.projects import AsyncProjectsResourceWithRawResponse
1086
+
1087
+ return AsyncProjectsResourceWithRawResponse(self._client.projects)
1088
+
1089
+ @cached_property
1090
+ def admin(self) -> admin.AsyncAdminResourceWithRawResponse:
1091
+ from .resources.admin import AsyncAdminResourceWithRawResponse
1092
+
1093
+ return AsyncAdminResourceWithRawResponse(self._client.admin)
1094
+
1095
+ @cached_property
1096
+ def datasets(self) -> datasets.AsyncDatasetsResourceWithRawResponse:
1097
+ from .resources.datasets import AsyncDatasetsResourceWithRawResponse
1098
+
1099
+ return AsyncDatasetsResourceWithRawResponse(self._client.datasets)
1100
+
1101
+ @cached_property
1102
+ def documents(self) -> documents.AsyncDocumentsResourceWithRawResponse:
1103
+ from .resources.documents import AsyncDocumentsResourceWithRawResponse
1104
+
1105
+ return AsyncDocumentsResourceWithRawResponse(self._client.documents)
1106
+
1107
+ @cached_property
1108
+ def jobs(self) -> jobs.AsyncJobsResourceWithRawResponse:
1109
+ from .resources.jobs import AsyncJobsResourceWithRawResponse
1110
+
1111
+ return AsyncJobsResourceWithRawResponse(self._client.jobs)
1112
+
1113
+ @cached_property
1114
+ def match(self) -> match.AsyncMatchResourceWithRawResponse:
1115
+ from .resources.match import AsyncMatchResourceWithRawResponse
1116
+
1117
+ return AsyncMatchResourceWithRawResponse(self._client.match)
1118
+
1119
+ @cached_property
1120
+ def sessions(self) -> sessions.AsyncSessionsResourceWithRawResponse:
1121
+ from .resources.sessions import AsyncSessionsResourceWithRawResponse
1122
+
1123
+ return AsyncSessionsResourceWithRawResponse(self._client.sessions)
1124
+
1125
+ @cached_property
1126
+ def workflow_schedule(self) -> workflow_schedule.AsyncWorkflowScheduleResourceWithRawResponse:
1127
+ from .resources.workflow_schedule import AsyncWorkflowScheduleResourceWithRawResponse
1128
+
1129
+ return AsyncWorkflowScheduleResourceWithRawResponse(self._client.workflow_schedule)
1130
+
1131
+ @cached_property
1132
+ def workflow(self) -> workflow.AsyncWorkflowResourceWithRawResponse:
1133
+ from .resources.workflow import AsyncWorkflowResourceWithRawResponse
1134
+
1135
+ return AsyncWorkflowResourceWithRawResponse(self._client.workflow)
1136
+
1137
+ @cached_property
1138
+ def connectors(self) -> connectors.AsyncConnectorsResourceWithRawResponse:
1139
+ from .resources.connectors import AsyncConnectorsResourceWithRawResponse
1140
+
1141
+ return AsyncConnectorsResourceWithRawResponse(self._client.connectors)
1142
+
1143
+ @cached_property
1144
+ def connector_catalog(self) -> connector_catalog.AsyncConnectorCatalogResourceWithRawResponse:
1145
+ from .resources.connector_catalog import AsyncConnectorCatalogResourceWithRawResponse
1146
+
1147
+ return AsyncConnectorCatalogResourceWithRawResponse(self._client.connector_catalog)
1148
+
1149
+ @cached_property
1150
+ def server(self) -> server.AsyncServerResourceWithRawResponse:
1151
+ from .resources.server import AsyncServerResourceWithRawResponse
1152
+
1153
+ return AsyncServerResourceWithRawResponse(self._client.server)
1154
+
1155
+ @cached_property
1156
+ def sources(self) -> sources.AsyncSourcesResourceWithRawResponse:
1157
+ from .resources.sources import AsyncSourcesResourceWithRawResponse
1158
+
1159
+ return AsyncSourcesResourceWithRawResponse(self._client.sources)
1160
+
1161
+ @cached_property
1162
+ def entities(self) -> entities.AsyncEntitiesResourceWithRawResponse:
1163
+ from .resources.entities import AsyncEntitiesResourceWithRawResponse
1164
+
1165
+ return AsyncEntitiesResourceWithRawResponse(self._client.entities)
1166
+
1167
+ @cached_property
1168
+ def sandbox(self) -> sandbox.AsyncSandboxResourceWithRawResponse:
1169
+ from .resources.sandbox import AsyncSandboxResourceWithRawResponse
1170
+
1171
+ return AsyncSandboxResourceWithRawResponse(self._client.sandbox)
1172
+
1173
+ @cached_property
1174
+ def scrape(self) -> scrape.AsyncScrapeResourceWithRawResponse:
1175
+ from .resources.scrape import AsyncScrapeResourceWithRawResponse
1176
+
1177
+ return AsyncScrapeResourceWithRawResponse(self._client.scrape)
1178
+
1179
+ @cached_property
1180
+ def code(self) -> code.AsyncCodeResourceWithRawResponse:
1181
+ from .resources.code import AsyncCodeResourceWithRawResponse
1182
+
1183
+ return AsyncCodeResourceWithRawResponse(self._client.code)
1184
+
1185
+ @cached_property
1186
+ def structure(self) -> structure.AsyncStructureResourceWithRawResponse:
1187
+ from .resources.structure import AsyncStructureResourceWithRawResponse
1188
+
1189
+ return AsyncStructureResourceWithRawResponse(self._client.structure)
1190
+
1191
+ @cached_property
1192
+ def public_sessions(self) -> public_sessions.AsyncPublicSessionsResourceWithRawResponse:
1193
+ from .resources.public_sessions import AsyncPublicSessionsResourceWithRawResponse
1194
+
1195
+ return AsyncPublicSessionsResourceWithRawResponse(self._client.public_sessions)
1196
+
1197
+ @cached_property
1198
+ def slack(self) -> slack.AsyncSlackResourceWithRawResponse:
1199
+ from .resources.slack import AsyncSlackResourceWithRawResponse
1200
+
1201
+ return AsyncSlackResourceWithRawResponse(self._client.slack)
1202
+
1203
+ @cached_property
1204
+ def nango(self) -> nango.AsyncNangoResourceWithRawResponse:
1205
+ from .resources.nango import AsyncNangoResourceWithRawResponse
1206
+
1207
+ return AsyncNangoResourceWithRawResponse(self._client.nango)
616
1208
 
617
1209
 
618
1210
  class StructifyWithStreamedResponse:
1211
+ _client: Structify
1212
+
619
1213
  def __init__(self, client: Structify) -> None:
620
- self.user = user.UserResourceWithStreamingResponse(client.user)
621
- self.chat = chat.ChatResourceWithStreamingResponse(client.chat)
622
- self.teams = teams.TeamsResourceWithStreamingResponse(client.teams)
623
- self.projects = projects.ProjectsResourceWithStreamingResponse(client.projects)
624
- self.admin = admin.AdminResourceWithStreamingResponse(client.admin)
625
- self.datasets = datasets.DatasetsResourceWithStreamingResponse(client.datasets)
626
- self.documents = documents.DocumentsResourceWithStreamingResponse(client.documents)
627
- self.jobs = jobs.JobsResourceWithStreamingResponse(client.jobs)
628
- self.match = match.MatchResourceWithStreamingResponse(client.match)
629
- self.sessions = sessions.SessionsResourceWithStreamingResponse(client.sessions)
630
- self.workflow_schedule = workflow_schedule.WorkflowScheduleResourceWithStreamingResponse(
631
- client.workflow_schedule
632
- )
633
- self.workflow = workflow.WorkflowResourceWithStreamingResponse(client.workflow)
634
- self.connectors = connectors.ConnectorsResourceWithStreamingResponse(client.connectors)
635
- self.server = server.ServerResourceWithStreamingResponse(client.server)
636
- self.sources = sources.SourcesResourceWithStreamingResponse(client.sources)
637
- self.entities = entities.EntitiesResourceWithStreamingResponse(client.entities)
638
- self.report = report.ReportResourceWithStreamingResponse(client.report)
639
- self.sandbox = sandbox.SandboxResourceWithStreamingResponse(client.sandbox)
640
- self.scrape = scrape.ScrapeResourceWithStreamingResponse(client.scrape)
641
- self.code = code.CodeResourceWithStreamingResponse(client.code)
642
- self.structure = structure.StructureResourceWithStreamingResponse(client.structure)
643
- self.public_sessions = public_sessions.PublicSessionsResourceWithStreamingResponse(client.public_sessions)
644
- self.polars = polars.PolarsResourceWithStreamingResponse(client.polars)
645
- self.external = external.ExternalResourceWithStreamingResponse(client.external)
646
- self.slack = slack.SlackResourceWithStreamingResponse(client.slack)
1214
+ self._client = client
1215
+
1216
+ @cached_property
1217
+ def whitelabel(self) -> whitelabel.WhitelabelResourceWithStreamingResponse:
1218
+ from .resources.whitelabel import WhitelabelResourceWithStreamingResponse
1219
+
1220
+ return WhitelabelResourceWithStreamingResponse(self._client.whitelabel)
1221
+
1222
+ @cached_property
1223
+ def user(self) -> user.UserResourceWithStreamingResponse:
1224
+ from .resources.user import UserResourceWithStreamingResponse
1225
+
1226
+ return UserResourceWithStreamingResponse(self._client.user)
1227
+
1228
+ @cached_property
1229
+ def chat(self) -> chat.ChatResourceWithStreamingResponse:
1230
+ from .resources.chat import ChatResourceWithStreamingResponse
1231
+
1232
+ return ChatResourceWithStreamingResponse(self._client.chat)
1233
+
1234
+ @cached_property
1235
+ def teams(self) -> teams.TeamsResourceWithStreamingResponse:
1236
+ from .resources.teams import TeamsResourceWithStreamingResponse
1237
+
1238
+ return TeamsResourceWithStreamingResponse(self._client.teams)
1239
+
1240
+ @cached_property
1241
+ def wiki(self) -> wiki.WikiResourceWithStreamingResponse:
1242
+ from .resources.wiki import WikiResourceWithStreamingResponse
1243
+
1244
+ return WikiResourceWithStreamingResponse(self._client.wiki)
1245
+
1246
+ @cached_property
1247
+ def projects(self) -> projects.ProjectsResourceWithStreamingResponse:
1248
+ from .resources.projects import ProjectsResourceWithStreamingResponse
1249
+
1250
+ return ProjectsResourceWithStreamingResponse(self._client.projects)
1251
+
1252
+ @cached_property
1253
+ def polars(self) -> polars.PolarsResourceWithStreamingResponse:
1254
+ from .resources.polars import PolarsResourceWithStreamingResponse
1255
+
1256
+ return PolarsResourceWithStreamingResponse(self._client.polars)
1257
+
1258
+ @cached_property
1259
+ def admin(self) -> admin.AdminResourceWithStreamingResponse:
1260
+ from .resources.admin import AdminResourceWithStreamingResponse
1261
+
1262
+ return AdminResourceWithStreamingResponse(self._client.admin)
1263
+
1264
+ @cached_property
1265
+ def datasets(self) -> datasets.DatasetsResourceWithStreamingResponse:
1266
+ from .resources.datasets import DatasetsResourceWithStreamingResponse
1267
+
1268
+ return DatasetsResourceWithStreamingResponse(self._client.datasets)
1269
+
1270
+ @cached_property
1271
+ def documents(self) -> documents.DocumentsResourceWithStreamingResponse:
1272
+ from .resources.documents import DocumentsResourceWithStreamingResponse
1273
+
1274
+ return DocumentsResourceWithStreamingResponse(self._client.documents)
1275
+
1276
+ @cached_property
1277
+ def jobs(self) -> jobs.JobsResourceWithStreamingResponse:
1278
+ from .resources.jobs import JobsResourceWithStreamingResponse
1279
+
1280
+ return JobsResourceWithStreamingResponse(self._client.jobs)
1281
+
1282
+ @cached_property
1283
+ def match(self) -> match.MatchResourceWithStreamingResponse:
1284
+ from .resources.match import MatchResourceWithStreamingResponse
1285
+
1286
+ return MatchResourceWithStreamingResponse(self._client.match)
1287
+
1288
+ @cached_property
1289
+ def sessions(self) -> sessions.SessionsResourceWithStreamingResponse:
1290
+ from .resources.sessions import SessionsResourceWithStreamingResponse
1291
+
1292
+ return SessionsResourceWithStreamingResponse(self._client.sessions)
1293
+
1294
+ @cached_property
1295
+ def workflow_schedule(self) -> workflow_schedule.WorkflowScheduleResourceWithStreamingResponse:
1296
+ from .resources.workflow_schedule import WorkflowScheduleResourceWithStreamingResponse
1297
+
1298
+ return WorkflowScheduleResourceWithStreamingResponse(self._client.workflow_schedule)
1299
+
1300
+ @cached_property
1301
+ def workflow(self) -> workflow.WorkflowResourceWithStreamingResponse:
1302
+ from .resources.workflow import WorkflowResourceWithStreamingResponse
1303
+
1304
+ return WorkflowResourceWithStreamingResponse(self._client.workflow)
1305
+
1306
+ @cached_property
1307
+ def connectors(self) -> connectors.ConnectorsResourceWithStreamingResponse:
1308
+ from .resources.connectors import ConnectorsResourceWithStreamingResponse
1309
+
1310
+ return ConnectorsResourceWithStreamingResponse(self._client.connectors)
1311
+
1312
+ @cached_property
1313
+ def connector_catalog(self) -> connector_catalog.ConnectorCatalogResourceWithStreamingResponse:
1314
+ from .resources.connector_catalog import ConnectorCatalogResourceWithStreamingResponse
1315
+
1316
+ return ConnectorCatalogResourceWithStreamingResponse(self._client.connector_catalog)
1317
+
1318
+ @cached_property
1319
+ def server(self) -> server.ServerResourceWithStreamingResponse:
1320
+ from .resources.server import ServerResourceWithStreamingResponse
1321
+
1322
+ return ServerResourceWithStreamingResponse(self._client.server)
1323
+
1324
+ @cached_property
1325
+ def sources(self) -> sources.SourcesResourceWithStreamingResponse:
1326
+ from .resources.sources import SourcesResourceWithStreamingResponse
1327
+
1328
+ return SourcesResourceWithStreamingResponse(self._client.sources)
1329
+
1330
+ @cached_property
1331
+ def entities(self) -> entities.EntitiesResourceWithStreamingResponse:
1332
+ from .resources.entities import EntitiesResourceWithStreamingResponse
1333
+
1334
+ return EntitiesResourceWithStreamingResponse(self._client.entities)
1335
+
1336
+ @cached_property
1337
+ def sandbox(self) -> sandbox.SandboxResourceWithStreamingResponse:
1338
+ from .resources.sandbox import SandboxResourceWithStreamingResponse
1339
+
1340
+ return SandboxResourceWithStreamingResponse(self._client.sandbox)
1341
+
1342
+ @cached_property
1343
+ def scrape(self) -> scrape.ScrapeResourceWithStreamingResponse:
1344
+ from .resources.scrape import ScrapeResourceWithStreamingResponse
1345
+
1346
+ return ScrapeResourceWithStreamingResponse(self._client.scrape)
1347
+
1348
+ @cached_property
1349
+ def code(self) -> code.CodeResourceWithStreamingResponse:
1350
+ from .resources.code import CodeResourceWithStreamingResponse
1351
+
1352
+ return CodeResourceWithStreamingResponse(self._client.code)
1353
+
1354
+ @cached_property
1355
+ def structure(self) -> structure.StructureResourceWithStreamingResponse:
1356
+ from .resources.structure import StructureResourceWithStreamingResponse
1357
+
1358
+ return StructureResourceWithStreamingResponse(self._client.structure)
1359
+
1360
+ @cached_property
1361
+ def public_sessions(self) -> public_sessions.PublicSessionsResourceWithStreamingResponse:
1362
+ from .resources.public_sessions import PublicSessionsResourceWithStreamingResponse
1363
+
1364
+ return PublicSessionsResourceWithStreamingResponse(self._client.public_sessions)
1365
+
1366
+ @cached_property
1367
+ def slack(self) -> slack.SlackResourceWithStreamingResponse:
1368
+ from .resources.slack import SlackResourceWithStreamingResponse
1369
+
1370
+ return SlackResourceWithStreamingResponse(self._client.slack)
1371
+
1372
+ @cached_property
1373
+ def nango(self) -> nango.NangoResourceWithStreamingResponse:
1374
+ from .resources.nango import NangoResourceWithStreamingResponse
1375
+
1376
+ return NangoResourceWithStreamingResponse(self._client.nango)
647
1377
 
648
1378
 
649
1379
  class AsyncStructifyWithStreamedResponse:
1380
+ _client: AsyncStructify
1381
+
650
1382
  def __init__(self, client: AsyncStructify) -> None:
651
- self.user = user.AsyncUserResourceWithStreamingResponse(client.user)
652
- self.chat = chat.AsyncChatResourceWithStreamingResponse(client.chat)
653
- self.teams = teams.AsyncTeamsResourceWithStreamingResponse(client.teams)
654
- self.projects = projects.AsyncProjectsResourceWithStreamingResponse(client.projects)
655
- self.admin = admin.AsyncAdminResourceWithStreamingResponse(client.admin)
656
- self.datasets = datasets.AsyncDatasetsResourceWithStreamingResponse(client.datasets)
657
- self.documents = documents.AsyncDocumentsResourceWithStreamingResponse(client.documents)
658
- self.jobs = jobs.AsyncJobsResourceWithStreamingResponse(client.jobs)
659
- self.match = match.AsyncMatchResourceWithStreamingResponse(client.match)
660
- self.sessions = sessions.AsyncSessionsResourceWithStreamingResponse(client.sessions)
661
- self.workflow_schedule = workflow_schedule.AsyncWorkflowScheduleResourceWithStreamingResponse(
662
- client.workflow_schedule
663
- )
664
- self.workflow = workflow.AsyncWorkflowResourceWithStreamingResponse(client.workflow)
665
- self.connectors = connectors.AsyncConnectorsResourceWithStreamingResponse(client.connectors)
666
- self.server = server.AsyncServerResourceWithStreamingResponse(client.server)
667
- self.sources = sources.AsyncSourcesResourceWithStreamingResponse(client.sources)
668
- self.entities = entities.AsyncEntitiesResourceWithStreamingResponse(client.entities)
669
- self.report = report.AsyncReportResourceWithStreamingResponse(client.report)
670
- self.sandbox = sandbox.AsyncSandboxResourceWithStreamingResponse(client.sandbox)
671
- self.scrape = scrape.AsyncScrapeResourceWithStreamingResponse(client.scrape)
672
- self.code = code.AsyncCodeResourceWithStreamingResponse(client.code)
673
- self.structure = structure.AsyncStructureResourceWithStreamingResponse(client.structure)
674
- self.public_sessions = public_sessions.AsyncPublicSessionsResourceWithStreamingResponse(client.public_sessions)
675
- self.external = external.AsyncExternalResourceWithStreamingResponse(client.external)
676
- self.slack = slack.AsyncSlackResourceWithStreamingResponse(client.slack)
1383
+ self._client = client
1384
+
1385
+ @cached_property
1386
+ def whitelabel(self) -> whitelabel.AsyncWhitelabelResourceWithStreamingResponse:
1387
+ from .resources.whitelabel import AsyncWhitelabelResourceWithStreamingResponse
1388
+
1389
+ return AsyncWhitelabelResourceWithStreamingResponse(self._client.whitelabel)
1390
+
1391
+ @cached_property
1392
+ def user(self) -> user.AsyncUserResourceWithStreamingResponse:
1393
+ from .resources.user import AsyncUserResourceWithStreamingResponse
1394
+
1395
+ return AsyncUserResourceWithStreamingResponse(self._client.user)
1396
+
1397
+ @cached_property
1398
+ def chat(self) -> chat.AsyncChatResourceWithStreamingResponse:
1399
+ from .resources.chat import AsyncChatResourceWithStreamingResponse
1400
+
1401
+ return AsyncChatResourceWithStreamingResponse(self._client.chat)
1402
+
1403
+ @cached_property
1404
+ def teams(self) -> teams.AsyncTeamsResourceWithStreamingResponse:
1405
+ from .resources.teams import AsyncTeamsResourceWithStreamingResponse
1406
+
1407
+ return AsyncTeamsResourceWithStreamingResponse(self._client.teams)
1408
+
1409
+ @cached_property
1410
+ def wiki(self) -> wiki.AsyncWikiResourceWithStreamingResponse:
1411
+ from .resources.wiki import AsyncWikiResourceWithStreamingResponse
1412
+
1413
+ return AsyncWikiResourceWithStreamingResponse(self._client.wiki)
1414
+
1415
+ @cached_property
1416
+ def projects(self) -> projects.AsyncProjectsResourceWithStreamingResponse:
1417
+ from .resources.projects import AsyncProjectsResourceWithStreamingResponse
1418
+
1419
+ return AsyncProjectsResourceWithStreamingResponse(self._client.projects)
1420
+
1421
+ @cached_property
1422
+ def admin(self) -> admin.AsyncAdminResourceWithStreamingResponse:
1423
+ from .resources.admin import AsyncAdminResourceWithStreamingResponse
1424
+
1425
+ return AsyncAdminResourceWithStreamingResponse(self._client.admin)
1426
+
1427
+ @cached_property
1428
+ def datasets(self) -> datasets.AsyncDatasetsResourceWithStreamingResponse:
1429
+ from .resources.datasets import AsyncDatasetsResourceWithStreamingResponse
1430
+
1431
+ return AsyncDatasetsResourceWithStreamingResponse(self._client.datasets)
1432
+
1433
+ @cached_property
1434
+ def documents(self) -> documents.AsyncDocumentsResourceWithStreamingResponse:
1435
+ from .resources.documents import AsyncDocumentsResourceWithStreamingResponse
1436
+
1437
+ return AsyncDocumentsResourceWithStreamingResponse(self._client.documents)
1438
+
1439
+ @cached_property
1440
+ def jobs(self) -> jobs.AsyncJobsResourceWithStreamingResponse:
1441
+ from .resources.jobs import AsyncJobsResourceWithStreamingResponse
1442
+
1443
+ return AsyncJobsResourceWithStreamingResponse(self._client.jobs)
1444
+
1445
+ @cached_property
1446
+ def match(self) -> match.AsyncMatchResourceWithStreamingResponse:
1447
+ from .resources.match import AsyncMatchResourceWithStreamingResponse
1448
+
1449
+ return AsyncMatchResourceWithStreamingResponse(self._client.match)
1450
+
1451
+ @cached_property
1452
+ def sessions(self) -> sessions.AsyncSessionsResourceWithStreamingResponse:
1453
+ from .resources.sessions import AsyncSessionsResourceWithStreamingResponse
1454
+
1455
+ return AsyncSessionsResourceWithStreamingResponse(self._client.sessions)
1456
+
1457
+ @cached_property
1458
+ def workflow_schedule(self) -> workflow_schedule.AsyncWorkflowScheduleResourceWithStreamingResponse:
1459
+ from .resources.workflow_schedule import AsyncWorkflowScheduleResourceWithStreamingResponse
1460
+
1461
+ return AsyncWorkflowScheduleResourceWithStreamingResponse(self._client.workflow_schedule)
1462
+
1463
+ @cached_property
1464
+ def workflow(self) -> workflow.AsyncWorkflowResourceWithStreamingResponse:
1465
+ from .resources.workflow import AsyncWorkflowResourceWithStreamingResponse
1466
+
1467
+ return AsyncWorkflowResourceWithStreamingResponse(self._client.workflow)
1468
+
1469
+ @cached_property
1470
+ def connectors(self) -> connectors.AsyncConnectorsResourceWithStreamingResponse:
1471
+ from .resources.connectors import AsyncConnectorsResourceWithStreamingResponse
1472
+
1473
+ return AsyncConnectorsResourceWithStreamingResponse(self._client.connectors)
1474
+
1475
+ @cached_property
1476
+ def connector_catalog(self) -> connector_catalog.AsyncConnectorCatalogResourceWithStreamingResponse:
1477
+ from .resources.connector_catalog import AsyncConnectorCatalogResourceWithStreamingResponse
1478
+
1479
+ return AsyncConnectorCatalogResourceWithStreamingResponse(self._client.connector_catalog)
1480
+
1481
+ @cached_property
1482
+ def server(self) -> server.AsyncServerResourceWithStreamingResponse:
1483
+ from .resources.server import AsyncServerResourceWithStreamingResponse
1484
+
1485
+ return AsyncServerResourceWithStreamingResponse(self._client.server)
1486
+
1487
+ @cached_property
1488
+ def sources(self) -> sources.AsyncSourcesResourceWithStreamingResponse:
1489
+ from .resources.sources import AsyncSourcesResourceWithStreamingResponse
1490
+
1491
+ return AsyncSourcesResourceWithStreamingResponse(self._client.sources)
1492
+
1493
+ @cached_property
1494
+ def entities(self) -> entities.AsyncEntitiesResourceWithStreamingResponse:
1495
+ from .resources.entities import AsyncEntitiesResourceWithStreamingResponse
1496
+
1497
+ return AsyncEntitiesResourceWithStreamingResponse(self._client.entities)
1498
+
1499
+ @cached_property
1500
+ def sandbox(self) -> sandbox.AsyncSandboxResourceWithStreamingResponse:
1501
+ from .resources.sandbox import AsyncSandboxResourceWithStreamingResponse
1502
+
1503
+ return AsyncSandboxResourceWithStreamingResponse(self._client.sandbox)
1504
+
1505
+ @cached_property
1506
+ def scrape(self) -> scrape.AsyncScrapeResourceWithStreamingResponse:
1507
+ from .resources.scrape import AsyncScrapeResourceWithStreamingResponse
1508
+
1509
+ return AsyncScrapeResourceWithStreamingResponse(self._client.scrape)
1510
+
1511
+ @cached_property
1512
+ def code(self) -> code.AsyncCodeResourceWithStreamingResponse:
1513
+ from .resources.code import AsyncCodeResourceWithStreamingResponse
1514
+
1515
+ return AsyncCodeResourceWithStreamingResponse(self._client.code)
1516
+
1517
+ @cached_property
1518
+ def structure(self) -> structure.AsyncStructureResourceWithStreamingResponse:
1519
+ from .resources.structure import AsyncStructureResourceWithStreamingResponse
1520
+
1521
+ return AsyncStructureResourceWithStreamingResponse(self._client.structure)
1522
+
1523
+ @cached_property
1524
+ def public_sessions(self) -> public_sessions.AsyncPublicSessionsResourceWithStreamingResponse:
1525
+ from .resources.public_sessions import AsyncPublicSessionsResourceWithStreamingResponse
1526
+
1527
+ return AsyncPublicSessionsResourceWithStreamingResponse(self._client.public_sessions)
1528
+
1529
+ @cached_property
1530
+ def slack(self) -> slack.AsyncSlackResourceWithStreamingResponse:
1531
+ from .resources.slack import AsyncSlackResourceWithStreamingResponse
1532
+
1533
+ return AsyncSlackResourceWithStreamingResponse(self._client.slack)
1534
+
1535
+ @cached_property
1536
+ def nango(self) -> nango.AsyncNangoResourceWithStreamingResponse:
1537
+ from .resources.nango import AsyncNangoResourceWithStreamingResponse
1538
+
1539
+ return AsyncNangoResourceWithStreamingResponse(self._client.nango)
677
1540
 
678
1541
 
679
1542
  Client = Structify