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.
- structify/_base_client.py +140 -11
- structify/_client.py +1116 -253
- structify/_models.py +16 -1
- structify/_streaming.py +12 -10
- structify/_types.py +12 -2
- structify/_version.py +1 -1
- structify/lib/__init__.py +5 -0
- structify/lib/cost_confirmation.py +63 -0
- structify/pagination.py +63 -1
- structify/resources/__init__.py +57 -27
- structify/resources/admin/__init__.py +26 -40
- structify/resources/admin/admin.py +39 -71
- structify/resources/admin/chat_templates.py +382 -0
- structify/resources/admin/jobs.py +76 -3
- structify/resources/admin/sandbox.py +184 -0
- structify/resources/admin/teams.py +88 -0
- structify/resources/admin/users.py +28 -238
- structify/resources/chat.py +232 -0
- structify/resources/connector_catalog/__init__.py +33 -0
- structify/resources/connector_catalog/admin.py +1510 -0
- structify/resources/connector_catalog/connector_catalog.py +394 -0
- structify/resources/connectors/__init__.py +33 -0
- structify/resources/{connectors.py → connectors/connectors.py} +1155 -325
- structify/resources/connectors/type_snippets.py +169 -0
- structify/resources/datasets/datasets.py +0 -4
- structify/resources/documents.py +1 -123
- structify/resources/external.py +35 -2
- structify/resources/jobs.py +19 -336
- structify/resources/nango.py +234 -0
- structify/resources/polars.py +225 -103
- structify/resources/sandbox.py +13 -110
- structify/resources/scrape.py +0 -16
- structify/resources/sessions.py +241 -153
- structify/resources/slack.py +1 -151
- structify/resources/structure.py +120 -48
- structify/resources/teams.py +96 -0
- structify/resources/user/__init__.py +14 -0
- structify/resources/user/api_keys.py +380 -0
- structify/resources/user/user.py +209 -2
- structify/resources/whitelabel.py +294 -187
- structify/resources/whitelabel_service.py +222 -0
- structify/resources/{report.py → wiki.py} +237 -210
- structify/resources/workflow_schedule.py +4 -5
- structify/types/__init__.py +67 -36
- structify/types/add_member_response.py +35 -4
- structify/types/admin/__init__.py +13 -88
- structify/types/admin/admin_dataset_return.py +6 -0
- structify/types/admin/{user_get_credits_response.py → admin_delete_jobs_response.py} +3 -3
- structify/types/admin/admin_list_jobs_response.py +35 -1
- structify/types/admin/admin_sandbox.py +38 -0
- structify/types/admin/chat_template_create_params.py +21 -0
- structify/types/admin/{human_llm_start_next_job_params.py → chat_template_list_params.py} +3 -3
- structify/types/admin/{human_llm_get_jobs_response.py → chat_template_list_response.py} +3 -3
- structify/types/admin/chat_template_update_params.py +22 -0
- structify/types/admin/{user_add_credits_response.py → expire_grants_response.py} +5 -3
- structify/types/admin/impersonate_response.py +17 -0
- structify/types/admin/{next_action_get_batched_training_data_params.py → job_delete_params.py} +2 -2
- structify/types/admin/{user_get_credits_params.py → sandbox_list_params.py} +4 -4
- structify/types/admin/sandbox_type.py +7 -0
- structify/types/admin/{user_set_credits_params.py → team_expire_grants_params.py} +4 -4
- structify/types/admin/user.py +16 -0
- structify/types/admin/user_create_params.py +1 -0
- structify/types/admin/{training_dataset_delete_params.py → user_impersonate_params.py} +3 -3
- structify/types/admin/user_list_response.py +14 -4
- structify/types/admin_grant_access_response.py +2 -0
- structify/types/{slack_user_mapping_response.py → admin_issue_found_response.py} +3 -5
- structify/types/chat_add_git_commit_response.py +2 -0
- structify/types/{admin/human_llm_get_next_step_params.py → chat_admin_issue_found_params.py} +4 -4
- structify/types/chat_create_session_params.py +7 -0
- structify/types/chat_dependency.py +17 -0
- structify/types/chat_event.py +51 -239
- structify/types/chat_get_git_commit_response.py +2 -0
- structify/types/chat_get_session_timeline_response.py +31 -1
- structify/types/{job_get_steps_response.py → chat_list_templates_response.py} +3 -3
- structify/types/chat_prompt.py +2 -0
- structify/types/chat_revert_to_commit_response.py +2 -0
- structify/types/chat_session.py +14 -0
- structify/types/chat_session_with_messages.py +33 -1
- structify/types/chat_template.py +31 -0
- structify/types/chat_update_session_params.py +2 -0
- structify/types/code_generate_code_params.py +7 -0
- structify/types/connector.py +16 -25
- structify/types/connector_auth_method.py +29 -0
- structify/types/connector_auth_method_with_fields.py +15 -0
- structify/types/connector_catalog/__init__.py +32 -0
- structify/types/connector_catalog/admin_batch_create_credential_fields_params.py +14 -0
- structify/types/connector_catalog/admin_batch_create_credential_fields_response.py +10 -0
- structify/types/connector_catalog/admin_batch_create_scopes_params.py +14 -0
- structify/types/connector_catalog/admin_create_auth_method_params.py +22 -0
- structify/types/connector_catalog/admin_create_catalog_params.py +22 -0
- structify/types/connector_catalog/admin_create_credential_field_params.py +28 -0
- structify/types/connector_catalog/admin_create_scope_params.py +19 -0
- structify/types/connector_catalog/admin_list_nango_pending_response.py +10 -0
- structify/types/{admin/training_dataset_get_datum_info_params.py → connector_catalog/admin_list_scopes_params.py} +3 -3
- structify/types/connector_catalog/admin_update_auth_method_params.py +16 -0
- structify/types/connector_catalog/admin_update_catalog_params.py +20 -0
- structify/types/connector_catalog/admin_update_credential_field_params.py +26 -0
- structify/types/connector_catalog/admin_update_scope_params.py +18 -0
- structify/types/connector_catalog/admin_upload_logo_params.py +13 -0
- structify/types/connector_catalog/batch_create_scopes_response.py +12 -0
- structify/types/connector_catalog/connector_auth_method_scope.py +25 -0
- structify/types/connector_catalog/connector_catalog.py +26 -0
- structify/types/connector_catalog/create_credential_field_request_param.py +28 -0
- structify/types/connector_catalog/create_scope_request_param.py +19 -0
- structify/types/connector_catalog/list_scopes_response.py +12 -0
- structify/types/connector_catalog/pending_nango_integration.py +17 -0
- structify/types/{admin/user_set_credits_response.py → connector_catalog/upload_logo_response.py} +3 -3
- structify/types/connector_catalog_list_params.py +20 -0
- structify/types/connector_catalog_list_response.py +22 -0
- structify/types/connector_catalog_with_methods.py +15 -0
- structify/types/connector_category.py +7 -0
- structify/types/connector_create_params.py +11 -25
- structify/types/connector_credential_field.py +34 -0
- structify/types/connector_delete_schema_object_params.py +35 -0
- structify/types/connector_explore_params.py +19 -0
- structify/types/connector_explorer_chat.py +9 -84
- structify/types/connector_get_clarification_requests_response.py +36 -0
- structify/types/connector_get_response.py +2 -0
- structify/types/connector_list_with_snippets_params.py +12 -0
- structify/types/connector_list_with_snippets_response.py +10 -0
- structify/types/connector_search_tables_params.py +15 -0
- structify/types/connector_search_tables_response.py +160 -0
- structify/types/connector_store_response.py +21 -0
- structify/types/connector_summaries_params.py +15 -0
- structify/types/connector_summaries_response.py +10 -0
- structify/types/connector_summary.py +16 -0
- structify/types/connector_table_info.py +15 -0
- structify/types/connector_update_column_params.py +12 -0
- structify/types/connector_update_params.py +4 -25
- structify/types/connector_update_table_params.py +14 -0
- structify/types/connector_with_secrets.py +2 -0
- structify/types/connector_with_snippets.py +11 -0
- structify/types/connectors/__init__.py +6 -0
- structify/types/connectors/snippet.py +20 -0
- structify/types/connectors/type_snippet_upsert_params.py +12 -0
- structify/types/create_chat_session_response.py +2 -0
- structify/types/dataset_create_params.py +0 -2
- structify/types/dataset_descriptor.py +6 -0
- structify/types/dataset_descriptor_param.py +6 -0
- structify/types/dataset_get_response.py +6 -0
- structify/types/dataset_list_response.py +6 -0
- structify/types/dataset_view_table_response.py +3 -1
- structify/types/delete_chat_session_response.py +2 -0
- structify/types/delete_schema_object_request_param.py +35 -0
- structify/types/delete_schema_object_response.py +13 -0
- structify/types/edge_spec_param.py +13 -0
- structify/types/entity_get_source_entities_response.py +0 -2
- structify/types/entity_list_jobs_response.py +3 -3
- structify/types/entity_view_response.py +0 -2
- structify/types/estimate_cost_response.py +9 -0
- structify/types/exploration_phase_id.py +79 -0
- structify/types/finalize_dag_response.py +11 -0
- structify/types/get_chat_session_response.py +14 -6
- structify/types/get_dependencies_response.py +15 -0
- structify/types/get_job_events_response.py +20 -0
- structify/types/get_node_response.py +10 -0
- structify/types/job_cancel_response.py +3 -3
- structify/types/job_event_body.py +108 -1
- structify/types/job_get_source_entities_response.py +0 -2
- structify/types/job_list_params.py +1 -1
- structify/types/job_list_response.py +35 -1
- structify/types/knowledge_graph.py +6 -0
- structify/types/knowledge_graph_param.py +6 -0
- structify/types/list_chat_sessions_response.py +2 -0
- structify/types/list_collaborators_response.py +4 -0
- structify/types/list_tables_response.py +12 -0
- structify/types/llm_information_store.py +62 -28
- structify/types/merge_config.py +2 -0
- structify/types/merge_config_param.py +2 -0
- structify/types/message.py +2 -0
- structify/types/nango_create_session_params.py +21 -0
- structify/types/nango_create_session_response.py +15 -0
- structify/types/nango_list_integrations_response.py +28 -0
- structify/types/{session_create_node_params.py → node_spec_param.py} +4 -4
- structify/types/refresh_session_response.py +15 -0
- structify/types/sandbox.py +8 -2
- structify/types/sandbox_get_params.py +2 -1
- structify/types/scrape_list_params.py +1 -22
- structify/types/scrape_list_response.py +2 -0
- structify/types/scrape_scrape_params.py +1 -14
- structify/types/scrape_scrape_response.py +2 -0
- structify/types/select_team_response.py +3 -1
- structify/types/{connector_approve_version_params.py → session_confirm_node_params.py} +3 -3
- structify/types/session_finalize_dag_params.py +20 -0
- structify/types/session_get_events_response.py +2 -0
- structify/types/session_request_confirmation_params.py +13 -0
- structify/types/session_upload_node_output_data_params.py +3 -0
- structify/types/slack_event_payload_param.py +18 -2
- structify/types/slack_events_params.py +18 -2
- structify/types/source_list_response.py +0 -2
- structify/types/structure_enhance_property_params.py +2 -17
- structify/types/structure_enhance_relationship_params.py +2 -17
- structify/types/structure_find_relationship_params.py +2 -18
- structify/types/structure_pdf_params.py +22 -0
- structify/types/structure_pdf_response.py +11 -0
- structify/types/structure_run_async_params.py +10 -17
- structify/types/table.py +2 -0
- structify/types/table_param.py +2 -0
- structify/types/team.py +14 -0
- structify/types/{admin/training_dataset_remove_datum_params.py → team_create_link_code_params.py} +3 -3
- structify/types/team_update_params.py +10 -0
- structify/types/team_wiki_page.py +28 -0
- structify/types/teams_link_code_response.py +13 -0
- structify/types/token_response.py +6 -2
- structify/types/tool_invocation.py +468 -0
- structify/types/tool_result.py +99 -0
- structify/types/update_table_response.py +46 -0
- structify/types/usage_group_key.py +14 -1
- structify/types/user/__init__.py +4 -0
- structify/types/{admin/training_dataset_size_params.py → user/api_key_create_params.py} +5 -5
- structify/types/user/api_key_info.py +24 -0
- structify/types/user/create_api_key_response.py +12 -0
- structify/types/user/list_api_keys_response.py +12 -0
- structify/types/user_enrich_params.py +11 -0
- structify/types/user_info.py +22 -0
- structify/types/user_refresh_params.py +13 -0
- structify/types/user_transactions_response.py +5 -5
- structify/types/user_update_params.py +32 -12
- structify/types/user_usage_response.py +0 -2
- structify/types/wiki_connector_reference.py +63 -0
- structify/types/wiki_create_params.py +16 -0
- structify/types/{admin/training_dataset_list_response.py → wiki_list_response.py} +4 -2
- structify/types/wiki_page_with_references.py +12 -0
- structify/types/wiki_update_params.py +16 -0
- structify/types/workflow_dag.py +2 -0
- structify/types/workflow_node_execution_status.py +3 -1
- structify/types/workflow_schedule_info.py +2 -2
- structify/types/workflow_session_node.py +10 -0
- {structifyai-1.158.0.dist-info → structifyai-1.176.1.dist-info}/METADATA +67 -4
- structifyai-1.176.1.dist-info/RECORD +496 -0
- {structifyai-1.158.0.dist-info → structifyai-1.176.1.dist-info}/licenses/LICENSE +1 -1
- structify/resources/admin/human_llm.py +0 -819
- structify/resources/admin/next_action.py +0 -656
- structify/resources/admin/training_datasets.py +0 -2028
- structify/resources/external/__init__.py +0 -61
- structify/resources/external/external.py +0 -166
- structify/resources/external/news.py +0 -519
- structify/resources/external/people.py +0 -998
- structify/resources/external/search_api.py +0 -1525
- structify/types/active_version_data.py +0 -21
- structify/types/active_version_response.py +0 -13
- structify/types/admin/action_training_data_entry.py +0 -219
- structify/types/admin/action_training_data_response.py +0 -12
- structify/types/admin/datum_status.py +0 -19
- structify/types/admin/delete_action_training_data_response.py +0 -9
- structify/types/admin/human_llm_add_search_for_job_params.py +0 -13
- structify/types/admin/human_llm_add_to_dataset_params.py +0 -186
- structify/types/admin/human_llm_finish_job_params.py +0 -13
- structify/types/admin/human_llm_get_jobs_params.py +0 -12
- structify/types/admin/human_llm_get_next_step_response.py +0 -196
- structify/types/admin/human_llm_job.py +0 -73
- structify/types/admin/human_llm_prelabel_step_response.py +0 -184
- structify/types/admin/human_llm_update_step_params.py +0 -186
- structify/types/admin/labeling_stats.py +0 -24
- structify/types/admin/next_action_add_training_datum_params.py +0 -203
- structify/types/admin/next_action_delete_training_data_params.py +0 -12
- structify/types/admin/next_action_get_training_data_params.py +0 -25
- structify/types/admin/next_action_get_training_datum_params.py +0 -12
- structify/types/admin/next_action_label_training_datum_params.py +0 -90
- structify/types/admin/step_choices.py +0 -32
- structify/types/admin/training_dataset_add_datum_params.py +0 -13
- structify/types/admin/training_dataset_add_params.py +0 -12
- structify/types/admin/training_dataset_download_datum_params.py +0 -13
- structify/types/admin/training_dataset_get_labeller_stats_params.py +0 -23
- structify/types/admin/training_dataset_get_labeller_stats_response.py +0 -10
- structify/types/admin/training_dataset_get_next_for_labeling_params.py +0 -15
- structify/types/admin/training_dataset_get_next_for_qa_params.py +0 -18
- structify/types/admin/training_dataset_get_next_suspicious_params.py +0 -23
- structify/types/admin/training_dataset_label_datum_params.py +0 -188
- structify/types/admin/training_dataset_list_datums_params.py +0 -17
- structify/types/admin/training_dataset_list_datums_response.py +0 -33
- structify/types/admin/training_dataset_mark_datum_suspicious_params.py +0 -19
- structify/types/admin/training_dataset_size_response.py +0 -37
- structify/types/admin/training_dataset_suspicious_count_params.py +0 -23
- structify/types/admin/training_dataset_suspicious_count_response.py +0 -9
- structify/types/admin/training_dataset_switch_dataset_params.py +0 -13
- structify/types/admin/training_dataset_update_datum_status_params.py +0 -18
- structify/types/admin/training_dataset_upload_labeled_step_params.py +0 -15
- structify/types/admin/training_dataset_verify_datum_params.py +0 -17
- structify/types/admin/training_datum_response.py +0 -405
- structify/types/admin/user_add_credits_params.py +0 -18
- structify/types/chat_prompt_param.py +0 -255
- structify/types/connector_column_descriptor.py +0 -21
- structify/types/connector_relational_database_descriptor.py +0 -13
- structify/types/connector_table_descriptor.py +0 -22
- structify/types/document_structure_params.py +0 -21
- structify/types/document_structure_response.py +0 -8
- structify/types/execution_step.py +0 -198
- structify/types/external/__init__.py +0 -96
- structify/types/external/companies_search_response.py +0 -28
- structify/types/external/company_search_result.py +0 -69
- structify/types/external/enriched_organization.py +0 -69
- structify/types/external/everything_response.py +0 -19
- structify/types/external/google_maps_result.py +0 -38
- structify/types/external/google_search_response.py +0 -19
- structify/types/external/google_search_result.py +0 -21
- structify/types/external/job_posting.py +0 -54
- structify/types/external/job_postings_response.py +0 -19
- structify/types/external/location_coordinates.py +0 -13
- structify/types/external/location_response.py +0 -16
- structify/types/external/location_result.py +0 -24
- structify/types/external/news_article.py +0 -33
- structify/types/external/news_everything_params.py +0 -45
- structify/types/external/news_source.py +0 -15
- structify/types/external/news_source_detail.py +0 -28
- structify/types/external/news_sources_params.py +0 -19
- structify/types/external/news_top_headlines_params.py +0 -28
- structify/types/external/organization_detail.py +0 -87
- structify/types/external/people_match_response.py +0 -18
- structify/types/external/people_search_response.py +0 -28
- structify/types/external/person_companies_search_params.py +0 -63
- structify/types/external/person_match.py +0 -60
- structify/types/external/person_organization_job_postings_params.py +0 -16
- structify/types/external/person_organizations_enrich_params.py +0 -16
- structify/types/external/person_people_match_params.py +0 -49
- structify/types/external/person_people_search_params.py +0 -57
- structify/types/external/person_search_result.py +0 -48
- structify/types/external/search_api_google_flights_calendar_params.py +0 -28
- structify/types/external/search_api_google_flights_calendar_response.py +0 -8
- structify/types/external/search_api_google_flights_location_search_params.py +0 -16
- structify/types/external/search_api_google_flights_location_search_response.py +0 -8
- structify/types/external/search_api_google_flights_search_params.py +0 -43
- structify/types/external/search_api_google_flights_search_response.py +0 -8
- structify/types/external/search_api_google_maps_place_details_params.py +0 -16
- structify/types/external/search_api_google_maps_place_details_response.py +0 -8
- structify/types/external/search_api_google_maps_place_photos_params.py +0 -16
- structify/types/external/search_api_google_maps_place_photos_response.py +0 -8
- structify/types/external/search_api_google_maps_place_reviews_params.py +0 -19
- structify/types/external/search_api_google_maps_place_reviews_response.py +0 -8
- structify/types/external/search_api_google_maps_search_params.py +0 -22
- structify/types/external/search_api_google_maps_search_response.py +0 -10
- structify/types/external/search_api_google_scholar_author_search_params.py +0 -22
- structify/types/external/search_api_google_scholar_author_search_response.py +0 -8
- structify/types/external/search_api_google_scholar_citations_params.py +0 -22
- structify/types/external/search_api_google_scholar_citations_response.py +0 -8
- structify/types/external/search_api_google_scholar_search_params.py +0 -28
- structify/types/external/search_api_google_scholar_search_response.py +0 -8
- structify/types/external/search_api_google_search_params.py +0 -25
- structify/types/external/search_api_location_search_params.py +0 -22
- structify/types/external/sources_response.py +0 -16
- structify/types/external/top_headlines_response.py +0 -19
- structify/types/job_delete_response.py +0 -7
- structify/types/job_get_response.py +0 -62
- structify/types/job_get_step_graph_response.py +0 -233
- structify/types/job_get_step_response.py +0 -196
- structify/types/message_param.py +0 -35
- structify/types/pending_version_response.py +0 -21
- structify/types/report_missing_params.py +0 -18
- structify/types/report_missing_response.py +0 -7
- structify/types/report_relationship_params.py +0 -18
- structify/types/report_relationship_response.py +0 -7
- structify/types/report_step_params.py +0 -15
- structify/types/report_step_response.py +0 -7
- structify/types/report_wrong_params.py +0 -18
- structify/types/report_wrong_response.py +0 -7
- structify/types/sandbox_create_params.py +0 -20
- structify/types/session_create_edge_params.py +0 -13
- structify/types/slack_connection_status.py +0 -15
- structify/types/slack_user_mapping_params.py +0 -18
- structify/types/tool_metadata_param.py +0 -17
- structify/types/user_team.py +0 -35
- structify/types/workflow_schedule_get_response.py +0 -10
- structifyai-1.158.0.dist-info/RECORD +0 -530
- {structifyai-1.158.0.dist-info → structifyai-1.176.1.dist-info}/WHEEL +0 -0
structify/_models.py
CHANGED
|
@@ -3,7 +3,20 @@ from __future__ import annotations
|
|
|
3
3
|
import os
|
|
4
4
|
import inspect
|
|
5
5
|
import weakref
|
|
6
|
-
from typing import
|
|
6
|
+
from typing import (
|
|
7
|
+
IO,
|
|
8
|
+
TYPE_CHECKING,
|
|
9
|
+
Any,
|
|
10
|
+
Type,
|
|
11
|
+
Union,
|
|
12
|
+
Generic,
|
|
13
|
+
TypeVar,
|
|
14
|
+
Callable,
|
|
15
|
+
Iterable,
|
|
16
|
+
Optional,
|
|
17
|
+
AsyncIterable,
|
|
18
|
+
cast,
|
|
19
|
+
)
|
|
7
20
|
from datetime import date, datetime
|
|
8
21
|
from typing_extensions import (
|
|
9
22
|
List,
|
|
@@ -787,6 +800,7 @@ class FinalRequestOptionsInput(TypedDict, total=False):
|
|
|
787
800
|
timeout: float | Timeout | None
|
|
788
801
|
files: HttpxRequestFiles | None
|
|
789
802
|
idempotency_key: str
|
|
803
|
+
content: Union[bytes, bytearray, IO[bytes], Iterable[bytes], AsyncIterable[bytes], None]
|
|
790
804
|
json_data: Body
|
|
791
805
|
extra_json: AnyMapping
|
|
792
806
|
follow_redirects: bool
|
|
@@ -805,6 +819,7 @@ class FinalRequestOptions(pydantic.BaseModel):
|
|
|
805
819
|
post_parser: Union[Callable[[Any], Any], NotGiven] = NotGiven()
|
|
806
820
|
follow_redirects: Union[bool, None] = None
|
|
807
821
|
|
|
822
|
+
content: Union[bytes, bytearray, IO[bytes], Iterable[bytes], AsyncIterable[bytes], None] = None
|
|
808
823
|
# It should be noted that we cannot use `json` here as that would override
|
|
809
824
|
# a BaseModel method in an incompatible fashion.
|
|
810
825
|
json_data: Union[Body, None] = None
|
structify/_streaming.py
CHANGED
|
@@ -54,11 +54,12 @@ class Stream(Generic[_T]):
|
|
|
54
54
|
process_data = self._client._process_response_data
|
|
55
55
|
iterator = self._iter_events()
|
|
56
56
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
try:
|
|
58
|
+
for sse in iterator:
|
|
59
|
+
yield process_data(data=sse.json(), cast_to=cast_to, response=response)
|
|
60
|
+
finally:
|
|
61
|
+
# Ensure the response is closed even if the consumer doesn't read all data
|
|
62
|
+
response.close()
|
|
62
63
|
|
|
63
64
|
def __enter__(self) -> Self:
|
|
64
65
|
return self
|
|
@@ -117,11 +118,12 @@ class AsyncStream(Generic[_T]):
|
|
|
117
118
|
process_data = self._client._process_response_data
|
|
118
119
|
iterator = self._iter_events()
|
|
119
120
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
121
|
+
try:
|
|
122
|
+
async for sse in iterator:
|
|
123
|
+
yield process_data(data=sse.json(), cast_to=cast_to, response=response)
|
|
124
|
+
finally:
|
|
125
|
+
# Ensure the response is closed even if the consumer doesn't read all data
|
|
126
|
+
await response.aclose()
|
|
125
127
|
|
|
126
128
|
async def __aenter__(self) -> Self:
|
|
127
129
|
return self
|
structify/_types.py
CHANGED
|
@@ -13,9 +13,11 @@ from typing import (
|
|
|
13
13
|
Mapping,
|
|
14
14
|
TypeVar,
|
|
15
15
|
Callable,
|
|
16
|
+
Iterable,
|
|
16
17
|
Iterator,
|
|
17
18
|
Optional,
|
|
18
19
|
Sequence,
|
|
20
|
+
AsyncIterable,
|
|
19
21
|
)
|
|
20
22
|
from typing_extensions import (
|
|
21
23
|
Set,
|
|
@@ -56,6 +58,13 @@ if TYPE_CHECKING:
|
|
|
56
58
|
else:
|
|
57
59
|
Base64FileInput = Union[IO[bytes], PathLike]
|
|
58
60
|
FileContent = Union[IO[bytes], bytes, PathLike] # PathLike is not subscriptable in Python 3.8.
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
# Used for sending raw binary data / streaming data in request bodies
|
|
64
|
+
# e.g. for file uploads without multipart encoding
|
|
65
|
+
BinaryTypes = Union[bytes, bytearray, IO[bytes], Iterable[bytes]]
|
|
66
|
+
AsyncBinaryTypes = Union[bytes, bytearray, IO[bytes], AsyncIterable[bytes]]
|
|
67
|
+
|
|
59
68
|
FileTypes = Union[
|
|
60
69
|
# file (or bytes)
|
|
61
70
|
FileContent,
|
|
@@ -243,6 +252,9 @@ _T_co = TypeVar("_T_co", covariant=True)
|
|
|
243
252
|
if TYPE_CHECKING:
|
|
244
253
|
# This works because str.__contains__ does not accept object (either in typeshed or at runtime)
|
|
245
254
|
# https://github.com/hauntsaninja/useful_types/blob/5e9710f3875107d068e7679fd7fec9cfab0eff3b/useful_types/__init__.py#L285
|
|
255
|
+
#
|
|
256
|
+
# Note: index() and count() methods are intentionally omitted to allow pyright to properly
|
|
257
|
+
# infer TypedDict types when dict literals are used in lists assigned to SequenceNotStr.
|
|
246
258
|
class SequenceNotStr(Protocol[_T_co]):
|
|
247
259
|
@overload
|
|
248
260
|
def __getitem__(self, index: SupportsIndex, /) -> _T_co: ...
|
|
@@ -251,8 +263,6 @@ if TYPE_CHECKING:
|
|
|
251
263
|
def __contains__(self, value: object, /) -> bool: ...
|
|
252
264
|
def __len__(self) -> int: ...
|
|
253
265
|
def __iter__(self) -> Iterator[_T_co]: ...
|
|
254
|
-
def index(self, value: Any, start: int = 0, stop: int = ..., /) -> int: ...
|
|
255
|
-
def count(self, value: Any, /) -> int: ...
|
|
256
266
|
def __reversed__(self) -> Iterator[_T_co]: ...
|
|
257
267
|
else:
|
|
258
268
|
# just point this to a normal `Sequence` at runtime to avoid having to special case
|
structify/_version.py
CHANGED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"""Cost confirmation utilities for workflow execution.
|
|
2
|
+
|
|
3
|
+
This module provides helpers to request user confirmation before executing
|
|
4
|
+
costly operations (web scraping, PDF extraction, etc.) when running within
|
|
5
|
+
a workflow context.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import os
|
|
11
|
+
import time
|
|
12
|
+
from typing import TYPE_CHECKING, Literal
|
|
13
|
+
|
|
14
|
+
if TYPE_CHECKING:
|
|
15
|
+
from structify import Structify
|
|
16
|
+
|
|
17
|
+
CONFIRMATION_TIMEOUT_SECONDS = 3600
|
|
18
|
+
CONFIRMATION_POLL_INTERVAL_SECONDS = 0.5
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def request_cost_confirmation_if_needed(
|
|
22
|
+
client: Structify, row_count: int, operation: Literal["tag", "pdf", "web", "match"]
|
|
23
|
+
) -> bool:
|
|
24
|
+
"""Request cost confirmation if running in workflow context with confirmation enabled.
|
|
25
|
+
|
|
26
|
+
When STRUCTIFY_REQUIRES_CONFIRMATION=true and STRUCTIFY_NODE_ID is set,
|
|
27
|
+
this function requests user confirmation before proceeding with costly
|
|
28
|
+
operations like web scraping or PDF extraction.
|
|
29
|
+
|
|
30
|
+
Args:
|
|
31
|
+
client: The Structify client instance
|
|
32
|
+
row_count: Number of rows to be processed (used for cost estimation)
|
|
33
|
+
|
|
34
|
+
Returns:
|
|
35
|
+
True if confirmed, confirmation not required, or not in workflow context.
|
|
36
|
+
False if user rejected the operation.
|
|
37
|
+
|
|
38
|
+
Raises:
|
|
39
|
+
TimeoutError: If confirmation times out after CONFIRMATION_TIMEOUT_SECONDS
|
|
40
|
+
"""
|
|
41
|
+
if os.environ.get("STRUCTIFY_REQUIRES_CONFIRMATION", "").lower() != "true":
|
|
42
|
+
return True
|
|
43
|
+
|
|
44
|
+
node_id = os.environ.get("STRUCTIFY_NODE_ID")
|
|
45
|
+
if not node_id:
|
|
46
|
+
return True
|
|
47
|
+
|
|
48
|
+
if row_count <= 0:
|
|
49
|
+
return True
|
|
50
|
+
|
|
51
|
+
client.sessions.request_confirmation(node_id=node_id, row_count=row_count, operation=operation)
|
|
52
|
+
|
|
53
|
+
start_time = time.time()
|
|
54
|
+
while time.time() - start_time < CONFIRMATION_TIMEOUT_SECONDS:
|
|
55
|
+
time.sleep(CONFIRMATION_POLL_INTERVAL_SECONDS)
|
|
56
|
+
node = client.sessions.get_node(node_id=node_id).node
|
|
57
|
+
|
|
58
|
+
if node.confirmation_status == "confirmed":
|
|
59
|
+
return True
|
|
60
|
+
if node.confirmation_status == "rejected":
|
|
61
|
+
return False
|
|
62
|
+
|
|
63
|
+
raise TimeoutError(f"Timeout waiting for cost confirmation for node {node_id}")
|
structify/pagination.py
CHANGED
|
@@ -9,7 +9,7 @@ from ._utils import is_mapping
|
|
|
9
9
|
from ._models import BaseModel
|
|
10
10
|
from ._base_client import BasePage, PageInfo, BaseSyncPage, BaseAsyncPage
|
|
11
11
|
|
|
12
|
-
__all__ = ["SyncJobsList", "AsyncJobsList"]
|
|
12
|
+
__all__ = ["SyncJobsList", "AsyncJobsList", "SyncListConnectorCatalog", "AsyncListConnectorCatalog"]
|
|
13
13
|
|
|
14
14
|
_BaseModelT = TypeVar("_BaseModelT", bound=BaseModel)
|
|
15
15
|
|
|
@@ -76,3 +76,65 @@ class AsyncJobsList(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
|
|
|
76
76
|
**(cast(Mapping[str, Any], data) if is_mapping(data) else {"items": data}),
|
|
77
77
|
},
|
|
78
78
|
)
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
class SyncListConnectorCatalog(BaseSyncPage[_T], BasePage[_T], Generic[_T]):
|
|
82
|
+
items: List[_T]
|
|
83
|
+
|
|
84
|
+
@override
|
|
85
|
+
def _get_page_items(self) -> List[_T]:
|
|
86
|
+
items = self.items
|
|
87
|
+
if not items:
|
|
88
|
+
return []
|
|
89
|
+
return items
|
|
90
|
+
|
|
91
|
+
@override
|
|
92
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
93
|
+
offset = self._options.params.get("offset") or 0
|
|
94
|
+
if not isinstance(offset, int):
|
|
95
|
+
raise ValueError(f'Expected "offset" param to be an integer but got {offset}')
|
|
96
|
+
|
|
97
|
+
length = len(self._get_page_items())
|
|
98
|
+
current_count = offset + length
|
|
99
|
+
|
|
100
|
+
return PageInfo(params={"offset": current_count})
|
|
101
|
+
|
|
102
|
+
@classmethod
|
|
103
|
+
def build(cls: Type[_BaseModelT], *, response: Response, data: object) -> _BaseModelT: # noqa: ARG003
|
|
104
|
+
return cls.construct(
|
|
105
|
+
None,
|
|
106
|
+
**{
|
|
107
|
+
**(cast(Mapping[str, Any], data) if is_mapping(data) else {"items": data}),
|
|
108
|
+
},
|
|
109
|
+
)
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
class AsyncListConnectorCatalog(BaseAsyncPage[_T], BasePage[_T], Generic[_T]):
|
|
113
|
+
items: List[_T]
|
|
114
|
+
|
|
115
|
+
@override
|
|
116
|
+
def _get_page_items(self) -> List[_T]:
|
|
117
|
+
items = self.items
|
|
118
|
+
if not items:
|
|
119
|
+
return []
|
|
120
|
+
return items
|
|
121
|
+
|
|
122
|
+
@override
|
|
123
|
+
def next_page_info(self) -> Optional[PageInfo]:
|
|
124
|
+
offset = self._options.params.get("offset") or 0
|
|
125
|
+
if not isinstance(offset, int):
|
|
126
|
+
raise ValueError(f'Expected "offset" param to be an integer but got {offset}')
|
|
127
|
+
|
|
128
|
+
length = len(self._get_page_items())
|
|
129
|
+
current_count = offset + length
|
|
130
|
+
|
|
131
|
+
return PageInfo(params={"offset": current_count})
|
|
132
|
+
|
|
133
|
+
@classmethod
|
|
134
|
+
def build(cls: Type[_BaseModelT], *, response: Response, data: object) -> _BaseModelT: # noqa: ARG003
|
|
135
|
+
return cls.construct(
|
|
136
|
+
None,
|
|
137
|
+
**{
|
|
138
|
+
**(cast(Mapping[str, Any], data) if is_mapping(data) else {"items": data}),
|
|
139
|
+
},
|
|
140
|
+
)
|
structify/resources/__init__.py
CHANGED
|
@@ -32,6 +32,14 @@ from .user import (
|
|
|
32
32
|
UserResourceWithStreamingResponse,
|
|
33
33
|
AsyncUserResourceWithStreamingResponse,
|
|
34
34
|
)
|
|
35
|
+
from .wiki import (
|
|
36
|
+
WikiResource,
|
|
37
|
+
AsyncWikiResource,
|
|
38
|
+
WikiResourceWithRawResponse,
|
|
39
|
+
AsyncWikiResourceWithRawResponse,
|
|
40
|
+
WikiResourceWithStreamingResponse,
|
|
41
|
+
AsyncWikiResourceWithStreamingResponse,
|
|
42
|
+
)
|
|
35
43
|
from .admin import (
|
|
36
44
|
AdminResource,
|
|
37
45
|
AsyncAdminResource,
|
|
@@ -48,6 +56,14 @@ from .match import (
|
|
|
48
56
|
MatchResourceWithStreamingResponse,
|
|
49
57
|
AsyncMatchResourceWithStreamingResponse,
|
|
50
58
|
)
|
|
59
|
+
from .nango import (
|
|
60
|
+
NangoResource,
|
|
61
|
+
AsyncNangoResource,
|
|
62
|
+
NangoResourceWithRawResponse,
|
|
63
|
+
AsyncNangoResourceWithRawResponse,
|
|
64
|
+
NangoResourceWithStreamingResponse,
|
|
65
|
+
AsyncNangoResourceWithStreamingResponse,
|
|
66
|
+
)
|
|
51
67
|
from .slack import (
|
|
52
68
|
SlackResource,
|
|
53
69
|
AsyncSlackResource,
|
|
@@ -69,14 +85,6 @@ from .polars import (
|
|
|
69
85
|
PolarsResourceWithRawResponse,
|
|
70
86
|
PolarsResourceWithStreamingResponse,
|
|
71
87
|
)
|
|
72
|
-
from .report import (
|
|
73
|
-
ReportResource,
|
|
74
|
-
AsyncReportResource,
|
|
75
|
-
ReportResourceWithRawResponse,
|
|
76
|
-
AsyncReportResourceWithRawResponse,
|
|
77
|
-
ReportResourceWithStreamingResponse,
|
|
78
|
-
AsyncReportResourceWithStreamingResponse,
|
|
79
|
-
)
|
|
80
88
|
from .scrape import (
|
|
81
89
|
ScrapeResource,
|
|
82
90
|
AsyncScrapeResource,
|
|
@@ -125,14 +133,7 @@ from .entities import (
|
|
|
125
133
|
EntitiesResourceWithStreamingResponse,
|
|
126
134
|
AsyncEntitiesResourceWithStreamingResponse,
|
|
127
135
|
)
|
|
128
|
-
from .external import
|
|
129
|
-
ExternalResource,
|
|
130
|
-
AsyncExternalResource,
|
|
131
|
-
ExternalResourceWithRawResponse,
|
|
132
|
-
AsyncExternalResourceWithRawResponse,
|
|
133
|
-
ExternalResourceWithStreamingResponse,
|
|
134
|
-
AsyncExternalResourceWithStreamingResponse,
|
|
135
|
-
)
|
|
136
|
+
from .external import ExternalResource
|
|
136
137
|
from .projects import (
|
|
137
138
|
ProjectsResource,
|
|
138
139
|
AsyncProjectsResource,
|
|
@@ -181,6 +182,14 @@ from .connectors import (
|
|
|
181
182
|
ConnectorsResourceWithStreamingResponse,
|
|
182
183
|
AsyncConnectorsResourceWithStreamingResponse,
|
|
183
184
|
)
|
|
185
|
+
from .whitelabel import (
|
|
186
|
+
WhitelabelResource,
|
|
187
|
+
AsyncWhitelabelResource,
|
|
188
|
+
WhitelabelResourceWithRawResponse,
|
|
189
|
+
AsyncWhitelabelResourceWithRawResponse,
|
|
190
|
+
WhitelabelResourceWithStreamingResponse,
|
|
191
|
+
AsyncWhitelabelResourceWithStreamingResponse,
|
|
192
|
+
)
|
|
184
193
|
from .public_sessions import (
|
|
185
194
|
PublicSessionsResource,
|
|
186
195
|
AsyncPublicSessionsResource,
|
|
@@ -189,6 +198,14 @@ from .public_sessions import (
|
|
|
189
198
|
PublicSessionsResourceWithStreamingResponse,
|
|
190
199
|
AsyncPublicSessionsResourceWithStreamingResponse,
|
|
191
200
|
)
|
|
201
|
+
from .connector_catalog import (
|
|
202
|
+
ConnectorCatalogResource,
|
|
203
|
+
AsyncConnectorCatalogResource,
|
|
204
|
+
ConnectorCatalogResourceWithRawResponse,
|
|
205
|
+
AsyncConnectorCatalogResourceWithRawResponse,
|
|
206
|
+
ConnectorCatalogResourceWithStreamingResponse,
|
|
207
|
+
AsyncConnectorCatalogResourceWithStreamingResponse,
|
|
208
|
+
)
|
|
192
209
|
from .workflow_schedule import (
|
|
193
210
|
WorkflowScheduleResource,
|
|
194
211
|
AsyncWorkflowScheduleResource,
|
|
@@ -199,6 +216,12 @@ from .workflow_schedule import (
|
|
|
199
216
|
)
|
|
200
217
|
|
|
201
218
|
__all__ = [
|
|
219
|
+
"WhitelabelResource",
|
|
220
|
+
"AsyncWhitelabelResource",
|
|
221
|
+
"WhitelabelResourceWithRawResponse",
|
|
222
|
+
"AsyncWhitelabelResourceWithRawResponse",
|
|
223
|
+
"WhitelabelResourceWithStreamingResponse",
|
|
224
|
+
"AsyncWhitelabelResourceWithStreamingResponse",
|
|
202
225
|
"UserResource",
|
|
203
226
|
"AsyncUserResource",
|
|
204
227
|
"UserResourceWithRawResponse",
|
|
@@ -217,6 +240,12 @@ __all__ = [
|
|
|
217
240
|
"AsyncTeamsResourceWithRawResponse",
|
|
218
241
|
"TeamsResourceWithStreamingResponse",
|
|
219
242
|
"AsyncTeamsResourceWithStreamingResponse",
|
|
243
|
+
"WikiResource",
|
|
244
|
+
"AsyncWikiResource",
|
|
245
|
+
"WikiResourceWithRawResponse",
|
|
246
|
+
"AsyncWikiResourceWithRawResponse",
|
|
247
|
+
"WikiResourceWithStreamingResponse",
|
|
248
|
+
"AsyncWikiResourceWithStreamingResponse",
|
|
220
249
|
"ProjectsResource",
|
|
221
250
|
"AsyncProjectsResource",
|
|
222
251
|
"ProjectsResourceWithRawResponse",
|
|
@@ -277,6 +306,12 @@ __all__ = [
|
|
|
277
306
|
"AsyncConnectorsResourceWithRawResponse",
|
|
278
307
|
"ConnectorsResourceWithStreamingResponse",
|
|
279
308
|
"AsyncConnectorsResourceWithStreamingResponse",
|
|
309
|
+
"ConnectorCatalogResource",
|
|
310
|
+
"AsyncConnectorCatalogResource",
|
|
311
|
+
"ConnectorCatalogResourceWithRawResponse",
|
|
312
|
+
"AsyncConnectorCatalogResourceWithRawResponse",
|
|
313
|
+
"ConnectorCatalogResourceWithStreamingResponse",
|
|
314
|
+
"AsyncConnectorCatalogResourceWithStreamingResponse",
|
|
280
315
|
"ServerResource",
|
|
281
316
|
"AsyncServerResource",
|
|
282
317
|
"ServerResourceWithRawResponse",
|
|
@@ -295,12 +330,6 @@ __all__ = [
|
|
|
295
330
|
"AsyncEntitiesResourceWithRawResponse",
|
|
296
331
|
"EntitiesResourceWithStreamingResponse",
|
|
297
332
|
"AsyncEntitiesResourceWithStreamingResponse",
|
|
298
|
-
"ReportResource",
|
|
299
|
-
"AsyncReportResource",
|
|
300
|
-
"ReportResourceWithRawResponse",
|
|
301
|
-
"AsyncReportResourceWithRawResponse",
|
|
302
|
-
"ReportResourceWithStreamingResponse",
|
|
303
|
-
"AsyncReportResourceWithStreamingResponse",
|
|
304
333
|
"SandboxResource",
|
|
305
334
|
"AsyncSandboxResource",
|
|
306
335
|
"SandboxResourceWithRawResponse",
|
|
@@ -329,11 +358,6 @@ __all__ = [
|
|
|
329
358
|
"PolarsResourceWithRawResponse",
|
|
330
359
|
"PolarsResourceWithStreamingResponse",
|
|
331
360
|
"ExternalResource",
|
|
332
|
-
"AsyncExternalResource",
|
|
333
|
-
"ExternalResourceWithRawResponse",
|
|
334
|
-
"AsyncExternalResourceWithRawResponse",
|
|
335
|
-
"ExternalResourceWithStreamingResponse",
|
|
336
|
-
"AsyncExternalResourceWithStreamingResponse",
|
|
337
361
|
"PublicSessionsResource",
|
|
338
362
|
"AsyncPublicSessionsResource",
|
|
339
363
|
"PublicSessionsResourceWithRawResponse",
|
|
@@ -346,4 +370,10 @@ __all__ = [
|
|
|
346
370
|
"AsyncSlackResourceWithRawResponse",
|
|
347
371
|
"SlackResourceWithStreamingResponse",
|
|
348
372
|
"AsyncSlackResourceWithStreamingResponse",
|
|
373
|
+
"NangoResource",
|
|
374
|
+
"AsyncNangoResource",
|
|
375
|
+
"NangoResourceWithRawResponse",
|
|
376
|
+
"AsyncNangoResourceWithRawResponse",
|
|
377
|
+
"NangoResourceWithStreamingResponse",
|
|
378
|
+
"AsyncNangoResourceWithStreamingResponse",
|
|
349
379
|
]
|
|
@@ -40,21 +40,21 @@ from .dataset import (
|
|
|
40
40
|
DatasetResourceWithStreamingResponse,
|
|
41
41
|
AsyncDatasetResourceWithStreamingResponse,
|
|
42
42
|
)
|
|
43
|
-
from .
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
43
|
+
from .sandbox import (
|
|
44
|
+
SandboxResource,
|
|
45
|
+
AsyncSandboxResource,
|
|
46
|
+
SandboxResourceWithRawResponse,
|
|
47
|
+
AsyncSandboxResourceWithRawResponse,
|
|
48
|
+
SandboxResourceWithStreamingResponse,
|
|
49
|
+
AsyncSandboxResourceWithStreamingResponse,
|
|
50
50
|
)
|
|
51
|
-
from .
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
51
|
+
from .chat_templates import (
|
|
52
|
+
ChatTemplatesResource,
|
|
53
|
+
AsyncChatTemplatesResource,
|
|
54
|
+
ChatTemplatesResourceWithRawResponse,
|
|
55
|
+
AsyncChatTemplatesResourceWithRawResponse,
|
|
56
|
+
ChatTemplatesResourceWithStreamingResponse,
|
|
57
|
+
AsyncChatTemplatesResourceWithStreamingResponse,
|
|
58
58
|
)
|
|
59
59
|
from .functional_tests import (
|
|
60
60
|
FunctionalTestsResource,
|
|
@@ -64,14 +64,6 @@ from .functional_tests import (
|
|
|
64
64
|
FunctionalTestsResourceWithStreamingResponse,
|
|
65
65
|
AsyncFunctionalTestsResourceWithStreamingResponse,
|
|
66
66
|
)
|
|
67
|
-
from .training_datasets import (
|
|
68
|
-
TrainingDatasetsResource,
|
|
69
|
-
AsyncTrainingDatasetsResource,
|
|
70
|
-
TrainingDatasetsResourceWithRawResponse,
|
|
71
|
-
AsyncTrainingDatasetsResourceWithRawResponse,
|
|
72
|
-
TrainingDatasetsResourceWithStreamingResponse,
|
|
73
|
-
AsyncTrainingDatasetsResourceWithStreamingResponse,
|
|
74
|
-
)
|
|
75
67
|
|
|
76
68
|
__all__ = [
|
|
77
69
|
"TeamsResource",
|
|
@@ -92,36 +84,30 @@ __all__ = [
|
|
|
92
84
|
"AsyncJobsResourceWithRawResponse",
|
|
93
85
|
"JobsResourceWithStreamingResponse",
|
|
94
86
|
"AsyncJobsResourceWithStreamingResponse",
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
"
|
|
98
|
-
"
|
|
99
|
-
"
|
|
100
|
-
"
|
|
87
|
+
"SandboxResource",
|
|
88
|
+
"AsyncSandboxResource",
|
|
89
|
+
"SandboxResourceWithRawResponse",
|
|
90
|
+
"AsyncSandboxResourceWithRawResponse",
|
|
91
|
+
"SandboxResourceWithStreamingResponse",
|
|
92
|
+
"AsyncSandboxResourceWithStreamingResponse",
|
|
101
93
|
"FunctionalTestsResource",
|
|
102
94
|
"AsyncFunctionalTestsResource",
|
|
103
95
|
"FunctionalTestsResourceWithRawResponse",
|
|
104
96
|
"AsyncFunctionalTestsResourceWithRawResponse",
|
|
105
97
|
"FunctionalTestsResourceWithStreamingResponse",
|
|
106
98
|
"AsyncFunctionalTestsResourceWithStreamingResponse",
|
|
107
|
-
"NextActionResource",
|
|
108
|
-
"AsyncNextActionResource",
|
|
109
|
-
"NextActionResourceWithRawResponse",
|
|
110
|
-
"AsyncNextActionResourceWithRawResponse",
|
|
111
|
-
"NextActionResourceWithStreamingResponse",
|
|
112
|
-
"AsyncNextActionResourceWithStreamingResponse",
|
|
113
99
|
"UsersResource",
|
|
114
100
|
"AsyncUsersResource",
|
|
115
101
|
"UsersResourceWithRawResponse",
|
|
116
102
|
"AsyncUsersResourceWithRawResponse",
|
|
117
103
|
"UsersResourceWithStreamingResponse",
|
|
118
104
|
"AsyncUsersResourceWithStreamingResponse",
|
|
119
|
-
"
|
|
120
|
-
"
|
|
121
|
-
"
|
|
122
|
-
"
|
|
123
|
-
"
|
|
124
|
-
"
|
|
105
|
+
"ChatTemplatesResource",
|
|
106
|
+
"AsyncChatTemplatesResource",
|
|
107
|
+
"ChatTemplatesResourceWithRawResponse",
|
|
108
|
+
"AsyncChatTemplatesResourceWithRawResponse",
|
|
109
|
+
"ChatTemplatesResourceWithStreamingResponse",
|
|
110
|
+
"AsyncChatTemplatesResourceWithStreamingResponse",
|
|
125
111
|
"AdminResource",
|
|
126
112
|
"AsyncAdminResource",
|
|
127
113
|
"AdminResourceWithRawResponse",
|