hotdata 0.7.0__tar.gz → 0.8.0__tar.gz
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.
- {hotdata-0.7.0 → hotdata-0.8.0}/PKG-INFO +1 -1
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/__init__.py +2 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/databases_api.py +300 -3
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/__init__.py +1 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_database_request.py +9 -2
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_database_response.py +3 -1
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/database_detail_response.py +3 -1
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/database_summary.py +3 -1
- hotdata-0.8.0/hotdata/models/fork_database_request.py +100 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/load_managed_table_request.py +8 -1
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/workspace_usage_response.py +1 -1
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata.egg-info/PKG-INFO +1 -1
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata.egg-info/SOURCES.txt +2 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/pyproject.toml +1 -1
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_database_request.py +1 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_database_response.py +2 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_database_detail_response.py +2 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_database_summary.py +2 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_databases_api.py +7 -0
- hotdata-0.8.0/test/test_fork_database_request.py +53 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_databases_response.py +2 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_load_managed_table_request.py +3 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/README.md +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/_auth.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/_retry.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/_upload_watchdog.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/__init__.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/connection_types_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/connections_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/database_context_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/embedding_providers_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/indexes_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/information_schema_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/jobs_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/query_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/query_runs_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/refresh_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/results_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/saved_queries_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/secrets_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/uploads_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/usage_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/workspaces_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api_client.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/arrow.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/configuration.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/exceptions.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/add_managed_schema_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/add_managed_table_decl.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/add_managed_table_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/api_error_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/api_error_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/async_query_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/attach_database_catalog_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/batch_create_upload_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/batch_create_upload_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/boolean_profile_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/categorical_profile_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/category_value_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/column_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail_one_of.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail_one_of1.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail_one_of2.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail_one_of3.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail_one_of4.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/column_profile_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/connection_health_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/connection_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/connection_refresh_result.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/connection_schema_error.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/connection_type_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/connection_type_summary.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_connection_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_connection_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_embedding_provider_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_embedding_provider_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_index_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_saved_query_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_secret_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_secret_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_upload_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_workspace_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_workspace_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/database_attachment_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/database_context_entry.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/database_default_schema_decl.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/database_default_table_decl.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/discovery_status.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/embedding_provider_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/error.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/execute_saved_query_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/finalize_upload_part.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/finalize_upload_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/finalize_upload_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/get_connection_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/get_database_context_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/get_result_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/get_secret_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/index_entry_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/index_info_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/index_status.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/information_schema_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/job_result.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/job_status.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/job_status_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/job_type.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_connection_types_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_connections_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_database_contexts_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_databases_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_embedding_providers_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_indexes_page_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_indexes_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_jobs_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_query_runs_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_results_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_saved_queries_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_saved_query_versions_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_secrets_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_uploads_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_workspaces_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/load_managed_table_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/managed_schema_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/managed_table_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/mint_upload_parts_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/mint_upload_parts_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/minted_upload_part_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/numeric_profile_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/query_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/query_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/query_run_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/refresh_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/refresh_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/refresh_warning.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/result_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/results_format_query.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/saved_query_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/saved_query_summary.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/saved_query_version_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/schema_refresh_result.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/secret_metadata_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/submit_job_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/table_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/table_profile_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/table_refresh_error.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/table_refresh_result.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/temporal_profile_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/text_profile_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/update_embedding_provider_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/update_embedding_provider_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/update_saved_query_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/update_secret_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/update_secret_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/upload_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/upload_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/upload_session_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/upsert_database_context_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/upsert_database_context_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/workspace_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/workspace_list_item.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/py.typed +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/query.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/rest.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/uploads.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata.egg-info/dependency_links.txt +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata.egg-info/requires.txt +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/hotdata.egg-info/top_level.txt +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/setup.cfg +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_add_managed_schema_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_add_managed_table_decl.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_add_managed_table_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_api_client_close.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_api_error_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_api_error_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_async_query_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_attach_database_catalog_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_batch_create_upload_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_batch_create_upload_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_boolean_profile_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_categorical_profile_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_category_value_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_column_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_column_profile_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_column_profile_detail_one_of.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_column_profile_detail_one_of1.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_column_profile_detail_one_of2.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_column_profile_detail_one_of3.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_column_profile_detail_one_of4.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_column_profile_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_connection_health_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_connection_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_connection_refresh_result.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_connection_schema_error.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_connection_type_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_connection_type_summary.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_connection_types_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_connections_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_connection_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_connection_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_embedding_provider_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_embedding_provider_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_index_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_saved_query_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_secret_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_secret_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_upload_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_workspace_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_workspace_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_database_attachment_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_database_context_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_database_context_entry.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_database_default_schema_decl.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_database_default_table_decl.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_discovery_status.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_embedding_provider_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_embedding_providers_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_error.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_execute_saved_query_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_finalize_upload_part.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_finalize_upload_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_finalize_upload_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_get_connection_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_get_database_context_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_get_result_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_get_secret_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_index_entry_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_index_info_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_index_status.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_indexes_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_information_schema_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_information_schema_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_job_result.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_job_status.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_job_status_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_job_type.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_jobs_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_connection_types_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_connections_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_database_contexts_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_embedding_providers_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_indexes_page_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_indexes_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_jobs_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_query_runs_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_results_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_saved_queries_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_saved_query_versions_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_secrets_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_uploads_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_workspaces_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_load_managed_table_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_managed_schema_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_managed_table_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_mint_upload_parts_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_mint_upload_parts_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_minted_upload_part_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_numeric_profile_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_query_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_query_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_query_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_query_run_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_query_runs_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_refresh_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_refresh_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_refresh_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_refresh_warning.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_result_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_results_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_results_format_query.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_saved_queries_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_saved_query_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_saved_query_summary.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_saved_query_version_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_schema_refresh_result.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_secret_metadata_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_secrets_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_submit_job_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_table_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_table_profile_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_table_refresh_error.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_table_refresh_result.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_temporal_profile_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_text_profile_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_update_embedding_provider_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_update_embedding_provider_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_update_saved_query_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_update_secret_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_update_secret_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_upload_info.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_upload_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_upload_session_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_uploads_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_upsert_database_context_request.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_upsert_database_context_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_usage_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_workspace_detail.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_workspace_list_item.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_workspace_usage_response.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/test/test_workspaces_api.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_arrow.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_auth.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_query.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_retry.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_update_changelog.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_upload_codex_fixes.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_upload_multipart_resilient.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_upload_parity_fixes.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_upload_resilient.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_upload_retry_policy.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_upload_watchdog.py +0 -0
- {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_uploads.py +0 -0
|
@@ -102,6 +102,7 @@ __all__ = [
|
|
|
102
102
|
"FinalizeUploadPart",
|
|
103
103
|
"FinalizeUploadRequest",
|
|
104
104
|
"FinalizeUploadResponse",
|
|
105
|
+
"ForkDatabaseRequest",
|
|
105
106
|
"GetConnectionResponse",
|
|
106
107
|
"GetDatabaseContextResponse",
|
|
107
108
|
"GetResultResponse",
|
|
@@ -255,6 +256,7 @@ from hotdata.models.execute_saved_query_request import ExecuteSavedQueryRequest
|
|
|
255
256
|
from hotdata.models.finalize_upload_part import FinalizeUploadPart as FinalizeUploadPart
|
|
256
257
|
from hotdata.models.finalize_upload_request import FinalizeUploadRequest as FinalizeUploadRequest
|
|
257
258
|
from hotdata.models.finalize_upload_response import FinalizeUploadResponse as FinalizeUploadResponse
|
|
259
|
+
from hotdata.models.fork_database_request import ForkDatabaseRequest as ForkDatabaseRequest
|
|
258
260
|
from hotdata.models.get_connection_response import GetConnectionResponse as GetConnectionResponse
|
|
259
261
|
from hotdata.models.get_database_context_response import GetDatabaseContextResponse as GetDatabaseContextResponse
|
|
260
262
|
from hotdata.models.get_result_response import GetResultResponse as GetResultResponse
|
|
@@ -24,6 +24,7 @@ from hotdata.models.attach_database_catalog_request import AttachDatabaseCatalog
|
|
|
24
24
|
from hotdata.models.create_database_request import CreateDatabaseRequest
|
|
25
25
|
from hotdata.models.create_database_response import CreateDatabaseResponse
|
|
26
26
|
from hotdata.models.database_detail_response import DatabaseDetailResponse
|
|
27
|
+
from hotdata.models.fork_database_request import ForkDatabaseRequest
|
|
27
28
|
from hotdata.models.list_databases_response import ListDatabasesResponse
|
|
28
29
|
from hotdata.models.load_managed_table_request import LoadManagedTableRequest
|
|
29
30
|
from hotdata.models.load_managed_table_response import LoadManagedTableResponse
|
|
@@ -979,7 +980,7 @@ class DatabasesApi:
|
|
|
979
980
|
) -> CreateDatabaseResponse:
|
|
980
981
|
"""Create database
|
|
981
982
|
|
|
982
|
-
Create a new database (a metadata-only grouping). A managed default catalog is auto-created and addressable inside the database as `default` (or the optional `default_catalog` name), with a `main` schema pre-declared so `default.main.<table>` works out of the box. The optional `name` is a free-form display label and is not required to be unique. Optional `default_catalog` overrides the name the default catalog answers to; it must be a valid SQL identifier and may not collide with the reserved catalog names `hotdata
|
|
983
|
+
Create a new database (a metadata-only grouping). A managed default catalog is auto-created and addressable inside the database as `default` (or the optional `default_catalog` name), with a `main` schema pre-declared so `default.main.<table>` works out of the box. The optional `name` is a free-form display label and is not required to be unique. Optional `default_catalog` overrides the name the default catalog answers to; it must be a valid SQL identifier and may not collide with the reserved catalog names `hotdata` or `information_schema`. Optional `schemas` declares additional schemas/tables on the default catalog at create time; declared tables can be loaded via the standard managed-tables-load endpoint targeting `default_connection_id`. Optional `expires_at` sets when the database expires — accepts either an RFC 3339 timestamp or a relative duration suffixed with `h` (hours), `m` (minutes), or `d` (days), e.g. `24h`, `48h`, `90m`, `7d`. When omitted, the database never expires. Expiry is best-effort: the database will not be deleted before `expires_at`, but cleanup may run later than the exact timestamp.
|
|
983
984
|
|
|
984
985
|
:param create_database_request: (required)
|
|
985
986
|
:type create_database_request: CreateDatabaseRequest
|
|
@@ -1048,7 +1049,7 @@ class DatabasesApi:
|
|
|
1048
1049
|
) -> ApiResponse[CreateDatabaseResponse]:
|
|
1049
1050
|
"""Create database
|
|
1050
1051
|
|
|
1051
|
-
Create a new database (a metadata-only grouping). A managed default catalog is auto-created and addressable inside the database as `default` (or the optional `default_catalog` name), with a `main` schema pre-declared so `default.main.<table>` works out of the box. The optional `name` is a free-form display label and is not required to be unique. Optional `default_catalog` overrides the name the default catalog answers to; it must be a valid SQL identifier and may not collide with the reserved catalog names `hotdata
|
|
1052
|
+
Create a new database (a metadata-only grouping). A managed default catalog is auto-created and addressable inside the database as `default` (or the optional `default_catalog` name), with a `main` schema pre-declared so `default.main.<table>` works out of the box. The optional `name` is a free-form display label and is not required to be unique. Optional `default_catalog` overrides the name the default catalog answers to; it must be a valid SQL identifier and may not collide with the reserved catalog names `hotdata` or `information_schema`. Optional `schemas` declares additional schemas/tables on the default catalog at create time; declared tables can be loaded via the standard managed-tables-load endpoint targeting `default_connection_id`. Optional `expires_at` sets when the database expires — accepts either an RFC 3339 timestamp or a relative duration suffixed with `h` (hours), `m` (minutes), or `d` (days), e.g. `24h`, `48h`, `90m`, `7d`. When omitted, the database never expires. Expiry is best-effort: the database will not be deleted before `expires_at`, but cleanup may run later than the exact timestamp.
|
|
1052
1053
|
|
|
1053
1054
|
:param create_database_request: (required)
|
|
1054
1055
|
:type create_database_request: CreateDatabaseRequest
|
|
@@ -1117,7 +1118,7 @@ class DatabasesApi:
|
|
|
1117
1118
|
) -> RESTResponseType:
|
|
1118
1119
|
"""Create database
|
|
1119
1120
|
|
|
1120
|
-
Create a new database (a metadata-only grouping). A managed default catalog is auto-created and addressable inside the database as `default` (or the optional `default_catalog` name), with a `main` schema pre-declared so `default.main.<table>` works out of the box. The optional `name` is a free-form display label and is not required to be unique. Optional `default_catalog` overrides the name the default catalog answers to; it must be a valid SQL identifier and may not collide with the reserved catalog names `hotdata
|
|
1121
|
+
Create a new database (a metadata-only grouping). A managed default catalog is auto-created and addressable inside the database as `default` (or the optional `default_catalog` name), with a `main` schema pre-declared so `default.main.<table>` works out of the box. The optional `name` is a free-form display label and is not required to be unique. Optional `default_catalog` overrides the name the default catalog answers to; it must be a valid SQL identifier and may not collide with the reserved catalog names `hotdata` or `information_schema`. Optional `schemas` declares additional schemas/tables on the default catalog at create time; declared tables can be loaded via the standard managed-tables-load endpoint targeting `default_connection_id`. Optional `expires_at` sets when the database expires — accepts either an RFC 3339 timestamp or a relative duration suffixed with `h` (hours), `m` (minutes), or `d` (days), e.g. `24h`, `48h`, `90m`, `7d`. When omitted, the database never expires. Expiry is best-effort: the database will not be deleted before `expires_at`, but cleanup may run later than the exact timestamp.
|
|
1121
1122
|
|
|
1122
1123
|
:param create_database_request: (required)
|
|
1123
1124
|
:type create_database_request: CreateDatabaseRequest
|
|
@@ -1786,6 +1787,302 @@ class DatabasesApi:
|
|
|
1786
1787
|
|
|
1787
1788
|
|
|
1788
1789
|
|
|
1790
|
+
@validate_call
|
|
1791
|
+
def fork_database(
|
|
1792
|
+
self,
|
|
1793
|
+
database_id: Annotated[StrictStr, Field(description="Source database ID")],
|
|
1794
|
+
fork_database_request: ForkDatabaseRequest,
|
|
1795
|
+
_request_timeout: Union[
|
|
1796
|
+
None,
|
|
1797
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1798
|
+
Tuple[
|
|
1799
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1800
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1801
|
+
]
|
|
1802
|
+
] = None,
|
|
1803
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1804
|
+
_content_type: Optional[StrictStr] = None,
|
|
1805
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1806
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1807
|
+
) -> CreateDatabaseResponse:
|
|
1808
|
+
"""Fork database
|
|
1809
|
+
|
|
1810
|
+
Create a new database that is an independent fork of an existing one. The fork has its own default catalog and contains the same schemas, tables, and data as the source; the source is left unchanged. External catalogs attached to the source are re-attached to the fork. Optional `name` sets the fork's display label (defaults to the source's). Optional `expires_at` sets when the fork expires — accepts an RFC 3339 timestamp or a relative duration suffixed with `h` (hours), `m` (minutes), or `d` (days), e.g. `24h`, `90m`, `7d`. When omitted, a still-future expiry on the source is carried over; otherwise the fork never expires. Any indexes on the source's tables are not carried over.
|
|
1811
|
+
|
|
1812
|
+
:param database_id: Source database ID (required)
|
|
1813
|
+
:type database_id: str
|
|
1814
|
+
:param fork_database_request: (required)
|
|
1815
|
+
:type fork_database_request: ForkDatabaseRequest
|
|
1816
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1817
|
+
number provided, it will be total request
|
|
1818
|
+
timeout. It can also be a pair (tuple) of
|
|
1819
|
+
(connection, read) timeouts.
|
|
1820
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1821
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1822
|
+
request; this effectively ignores the
|
|
1823
|
+
authentication in the spec for a single request.
|
|
1824
|
+
:type _request_auth: dict, optional
|
|
1825
|
+
:param _content_type: force content-type for the request.
|
|
1826
|
+
:type _content_type: str, Optional
|
|
1827
|
+
:param _headers: set to override the headers for a single
|
|
1828
|
+
request; this effectively ignores the headers
|
|
1829
|
+
in the spec for a single request.
|
|
1830
|
+
:type _headers: dict, optional
|
|
1831
|
+
:param _host_index: set to override the host_index for a single
|
|
1832
|
+
request; this effectively ignores the host_index
|
|
1833
|
+
in the spec for a single request.
|
|
1834
|
+
:type _host_index: int, optional
|
|
1835
|
+
:return: Returns the result object.
|
|
1836
|
+
""" # noqa: E501
|
|
1837
|
+
|
|
1838
|
+
_param = self._fork_database_serialize(
|
|
1839
|
+
database_id=database_id,
|
|
1840
|
+
fork_database_request=fork_database_request,
|
|
1841
|
+
_request_auth=_request_auth,
|
|
1842
|
+
_content_type=_content_type,
|
|
1843
|
+
_headers=_headers,
|
|
1844
|
+
_host_index=_host_index
|
|
1845
|
+
)
|
|
1846
|
+
|
|
1847
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1848
|
+
'201': "CreateDatabaseResponse",
|
|
1849
|
+
'400': "ApiErrorResponse",
|
|
1850
|
+
'404': "ApiErrorResponse",
|
|
1851
|
+
}
|
|
1852
|
+
response_data = self.api_client.call_api(
|
|
1853
|
+
*_param,
|
|
1854
|
+
_request_timeout=_request_timeout
|
|
1855
|
+
)
|
|
1856
|
+
response_data.read()
|
|
1857
|
+
return self.api_client.response_deserialize(
|
|
1858
|
+
response_data=response_data,
|
|
1859
|
+
response_types_map=_response_types_map,
|
|
1860
|
+
).data
|
|
1861
|
+
|
|
1862
|
+
|
|
1863
|
+
@validate_call
|
|
1864
|
+
def fork_database_with_http_info(
|
|
1865
|
+
self,
|
|
1866
|
+
database_id: Annotated[StrictStr, Field(description="Source database ID")],
|
|
1867
|
+
fork_database_request: ForkDatabaseRequest,
|
|
1868
|
+
_request_timeout: Union[
|
|
1869
|
+
None,
|
|
1870
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1871
|
+
Tuple[
|
|
1872
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1873
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1874
|
+
]
|
|
1875
|
+
] = None,
|
|
1876
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1877
|
+
_content_type: Optional[StrictStr] = None,
|
|
1878
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1879
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1880
|
+
) -> ApiResponse[CreateDatabaseResponse]:
|
|
1881
|
+
"""Fork database
|
|
1882
|
+
|
|
1883
|
+
Create a new database that is an independent fork of an existing one. The fork has its own default catalog and contains the same schemas, tables, and data as the source; the source is left unchanged. External catalogs attached to the source are re-attached to the fork. Optional `name` sets the fork's display label (defaults to the source's). Optional `expires_at` sets when the fork expires — accepts an RFC 3339 timestamp or a relative duration suffixed with `h` (hours), `m` (minutes), or `d` (days), e.g. `24h`, `90m`, `7d`. When omitted, a still-future expiry on the source is carried over; otherwise the fork never expires. Any indexes on the source's tables are not carried over.
|
|
1884
|
+
|
|
1885
|
+
:param database_id: Source database ID (required)
|
|
1886
|
+
:type database_id: str
|
|
1887
|
+
:param fork_database_request: (required)
|
|
1888
|
+
:type fork_database_request: ForkDatabaseRequest
|
|
1889
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1890
|
+
number provided, it will be total request
|
|
1891
|
+
timeout. It can also be a pair (tuple) of
|
|
1892
|
+
(connection, read) timeouts.
|
|
1893
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1894
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1895
|
+
request; this effectively ignores the
|
|
1896
|
+
authentication in the spec for a single request.
|
|
1897
|
+
:type _request_auth: dict, optional
|
|
1898
|
+
:param _content_type: force content-type for the request.
|
|
1899
|
+
:type _content_type: str, Optional
|
|
1900
|
+
:param _headers: set to override the headers for a single
|
|
1901
|
+
request; this effectively ignores the headers
|
|
1902
|
+
in the spec for a single request.
|
|
1903
|
+
:type _headers: dict, optional
|
|
1904
|
+
:param _host_index: set to override the host_index for a single
|
|
1905
|
+
request; this effectively ignores the host_index
|
|
1906
|
+
in the spec for a single request.
|
|
1907
|
+
:type _host_index: int, optional
|
|
1908
|
+
:return: Returns the result object.
|
|
1909
|
+
""" # noqa: E501
|
|
1910
|
+
|
|
1911
|
+
_param = self._fork_database_serialize(
|
|
1912
|
+
database_id=database_id,
|
|
1913
|
+
fork_database_request=fork_database_request,
|
|
1914
|
+
_request_auth=_request_auth,
|
|
1915
|
+
_content_type=_content_type,
|
|
1916
|
+
_headers=_headers,
|
|
1917
|
+
_host_index=_host_index
|
|
1918
|
+
)
|
|
1919
|
+
|
|
1920
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1921
|
+
'201': "CreateDatabaseResponse",
|
|
1922
|
+
'400': "ApiErrorResponse",
|
|
1923
|
+
'404': "ApiErrorResponse",
|
|
1924
|
+
}
|
|
1925
|
+
response_data = self.api_client.call_api(
|
|
1926
|
+
*_param,
|
|
1927
|
+
_request_timeout=_request_timeout
|
|
1928
|
+
)
|
|
1929
|
+
response_data.read()
|
|
1930
|
+
return self.api_client.response_deserialize(
|
|
1931
|
+
response_data=response_data,
|
|
1932
|
+
response_types_map=_response_types_map,
|
|
1933
|
+
)
|
|
1934
|
+
|
|
1935
|
+
|
|
1936
|
+
@validate_call
|
|
1937
|
+
def fork_database_without_preload_content(
|
|
1938
|
+
self,
|
|
1939
|
+
database_id: Annotated[StrictStr, Field(description="Source database ID")],
|
|
1940
|
+
fork_database_request: ForkDatabaseRequest,
|
|
1941
|
+
_request_timeout: Union[
|
|
1942
|
+
None,
|
|
1943
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1944
|
+
Tuple[
|
|
1945
|
+
Annotated[StrictFloat, Field(gt=0)],
|
|
1946
|
+
Annotated[StrictFloat, Field(gt=0)]
|
|
1947
|
+
]
|
|
1948
|
+
] = None,
|
|
1949
|
+
_request_auth: Optional[Dict[StrictStr, Any]] = None,
|
|
1950
|
+
_content_type: Optional[StrictStr] = None,
|
|
1951
|
+
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
1952
|
+
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
1953
|
+
) -> RESTResponseType:
|
|
1954
|
+
"""Fork database
|
|
1955
|
+
|
|
1956
|
+
Create a new database that is an independent fork of an existing one. The fork has its own default catalog and contains the same schemas, tables, and data as the source; the source is left unchanged. External catalogs attached to the source are re-attached to the fork. Optional `name` sets the fork's display label (defaults to the source's). Optional `expires_at` sets when the fork expires — accepts an RFC 3339 timestamp or a relative duration suffixed with `h` (hours), `m` (minutes), or `d` (days), e.g. `24h`, `90m`, `7d`. When omitted, a still-future expiry on the source is carried over; otherwise the fork never expires. Any indexes on the source's tables are not carried over.
|
|
1957
|
+
|
|
1958
|
+
:param database_id: Source database ID (required)
|
|
1959
|
+
:type database_id: str
|
|
1960
|
+
:param fork_database_request: (required)
|
|
1961
|
+
:type fork_database_request: ForkDatabaseRequest
|
|
1962
|
+
:param _request_timeout: timeout setting for this request. If one
|
|
1963
|
+
number provided, it will be total request
|
|
1964
|
+
timeout. It can also be a pair (tuple) of
|
|
1965
|
+
(connection, read) timeouts.
|
|
1966
|
+
:type _request_timeout: int, tuple(int, int), optional
|
|
1967
|
+
:param _request_auth: set to override the auth_settings for an a single
|
|
1968
|
+
request; this effectively ignores the
|
|
1969
|
+
authentication in the spec for a single request.
|
|
1970
|
+
:type _request_auth: dict, optional
|
|
1971
|
+
:param _content_type: force content-type for the request.
|
|
1972
|
+
:type _content_type: str, Optional
|
|
1973
|
+
:param _headers: set to override the headers for a single
|
|
1974
|
+
request; this effectively ignores the headers
|
|
1975
|
+
in the spec for a single request.
|
|
1976
|
+
:type _headers: dict, optional
|
|
1977
|
+
:param _host_index: set to override the host_index for a single
|
|
1978
|
+
request; this effectively ignores the host_index
|
|
1979
|
+
in the spec for a single request.
|
|
1980
|
+
:type _host_index: int, optional
|
|
1981
|
+
:return: Returns the result object.
|
|
1982
|
+
""" # noqa: E501
|
|
1983
|
+
|
|
1984
|
+
_param = self._fork_database_serialize(
|
|
1985
|
+
database_id=database_id,
|
|
1986
|
+
fork_database_request=fork_database_request,
|
|
1987
|
+
_request_auth=_request_auth,
|
|
1988
|
+
_content_type=_content_type,
|
|
1989
|
+
_headers=_headers,
|
|
1990
|
+
_host_index=_host_index
|
|
1991
|
+
)
|
|
1992
|
+
|
|
1993
|
+
_response_types_map: Dict[str, Optional[str]] = {
|
|
1994
|
+
'201': "CreateDatabaseResponse",
|
|
1995
|
+
'400': "ApiErrorResponse",
|
|
1996
|
+
'404': "ApiErrorResponse",
|
|
1997
|
+
}
|
|
1998
|
+
response_data = self.api_client.call_api(
|
|
1999
|
+
*_param,
|
|
2000
|
+
_request_timeout=_request_timeout
|
|
2001
|
+
)
|
|
2002
|
+
return response_data.response
|
|
2003
|
+
|
|
2004
|
+
|
|
2005
|
+
def _fork_database_serialize(
|
|
2006
|
+
self,
|
|
2007
|
+
database_id,
|
|
2008
|
+
fork_database_request,
|
|
2009
|
+
_request_auth,
|
|
2010
|
+
_content_type,
|
|
2011
|
+
_headers,
|
|
2012
|
+
_host_index,
|
|
2013
|
+
) -> RequestSerialized:
|
|
2014
|
+
|
|
2015
|
+
_host = None
|
|
2016
|
+
|
|
2017
|
+
_collection_formats: Dict[str, str] = {
|
|
2018
|
+
}
|
|
2019
|
+
|
|
2020
|
+
_path_params: Dict[str, str] = {}
|
|
2021
|
+
_query_params: List[Tuple[str, str]] = []
|
|
2022
|
+
_header_params: Dict[str, Optional[str]] = _headers or {}
|
|
2023
|
+
_form_params: List[Tuple[str, str]] = []
|
|
2024
|
+
_files: Dict[
|
|
2025
|
+
str, Union[str, bytes, List[str], List[bytes], List[Tuple[str, bytes]]]
|
|
2026
|
+
] = {}
|
|
2027
|
+
_body_params: Optional[bytes] = None
|
|
2028
|
+
|
|
2029
|
+
# process the path parameters
|
|
2030
|
+
if database_id is not None:
|
|
2031
|
+
_path_params['database_id'] = database_id
|
|
2032
|
+
# process the query parameters
|
|
2033
|
+
# process the header parameters
|
|
2034
|
+
# process the form parameters
|
|
2035
|
+
# process the body parameter
|
|
2036
|
+
if fork_database_request is not None:
|
|
2037
|
+
_body_params = fork_database_request
|
|
2038
|
+
|
|
2039
|
+
|
|
2040
|
+
# set the HTTP header `Accept`
|
|
2041
|
+
if 'Accept' not in _header_params:
|
|
2042
|
+
_header_params['Accept'] = self.api_client.select_header_accept(
|
|
2043
|
+
[
|
|
2044
|
+
'application/json'
|
|
2045
|
+
]
|
|
2046
|
+
)
|
|
2047
|
+
|
|
2048
|
+
# set the HTTP header `Content-Type`
|
|
2049
|
+
if _content_type:
|
|
2050
|
+
_header_params['Content-Type'] = _content_type
|
|
2051
|
+
else:
|
|
2052
|
+
_default_content_type = (
|
|
2053
|
+
self.api_client.select_header_content_type(
|
|
2054
|
+
[
|
|
2055
|
+
'application/json'
|
|
2056
|
+
]
|
|
2057
|
+
)
|
|
2058
|
+
)
|
|
2059
|
+
if _default_content_type is not None:
|
|
2060
|
+
_header_params['Content-Type'] = _default_content_type
|
|
2061
|
+
|
|
2062
|
+
# authentication setting
|
|
2063
|
+
_auth_settings: List[str] = [
|
|
2064
|
+
'WorkspaceId',
|
|
2065
|
+
'BearerAuth'
|
|
2066
|
+
]
|
|
2067
|
+
|
|
2068
|
+
return self.api_client.param_serialize(
|
|
2069
|
+
method='POST',
|
|
2070
|
+
resource_path='/v1/databases/{database_id}/fork',
|
|
2071
|
+
path_params=_path_params,
|
|
2072
|
+
query_params=_query_params,
|
|
2073
|
+
header_params=_header_params,
|
|
2074
|
+
body=_body_params,
|
|
2075
|
+
post_params=_form_params,
|
|
2076
|
+
files=_files,
|
|
2077
|
+
auth_settings=_auth_settings,
|
|
2078
|
+
collection_formats=_collection_formats,
|
|
2079
|
+
_host=_host,
|
|
2080
|
+
_request_auth=_request_auth
|
|
2081
|
+
)
|
|
2082
|
+
|
|
2083
|
+
|
|
2084
|
+
|
|
2085
|
+
|
|
1789
2086
|
@validate_call
|
|
1790
2087
|
def get_database(
|
|
1791
2088
|
self,
|
|
@@ -66,6 +66,7 @@ from hotdata.models.execute_saved_query_request import ExecuteSavedQueryRequest
|
|
|
66
66
|
from hotdata.models.finalize_upload_part import FinalizeUploadPart
|
|
67
67
|
from hotdata.models.finalize_upload_request import FinalizeUploadRequest
|
|
68
68
|
from hotdata.models.finalize_upload_response import FinalizeUploadResponse
|
|
69
|
+
from hotdata.models.fork_database_request import ForkDatabaseRequest
|
|
69
70
|
from hotdata.models.get_connection_response import GetConnectionResponse
|
|
70
71
|
from hotdata.models.get_database_context_response import GetDatabaseContextResponse
|
|
71
72
|
from hotdata.models.get_result_response import GetResultResponse
|
|
@@ -28,11 +28,12 @@ class CreateDatabaseRequest(BaseModel):
|
|
|
28
28
|
"""
|
|
29
29
|
Request body for POST /databases
|
|
30
30
|
""" # noqa: E501
|
|
31
|
-
default_catalog: Optional[StrictStr] = Field(default=None, description="Optional name the database's auto-created default catalog answers to inside its query scope. Must be a valid SQL identifier (`[a-z0-9_]`, not starting with a digit) and may not collide with the reserved catalog names `hotdata
|
|
31
|
+
default_catalog: Optional[StrictStr] = Field(default=None, description="Optional name the database's auto-created default catalog answers to inside its query scope. Must be a valid SQL identifier (`[a-z0-9_]`, not starting with a digit) and may not collide with the reserved catalog names `hotdata` or `information_schema`. Defaults to `default` when omitted, so `default.main.<table>` keeps working.")
|
|
32
|
+
default_schema: Optional[StrictStr] = Field(default=None, description="Optional schema that unqualified table names resolve to inside this database's query scope. Must be a valid SQL identifier (`[a-z0-9_]`, not starting with a digit). When omitted, a database that declares exactly one schema adopts that schema as its default; otherwise unqualified names resolve to `main`. Fully-qualified names (`<catalog>.<schema>.<table>`) are unaffected, and a per-query `default_schema` still takes precedence.")
|
|
32
33
|
expires_at: Optional[StrictStr] = Field(default=None, description="When this database expires. Accepts either an RFC 3339 timestamp (e.g. `\"2026-06-01T00:00:00Z\"`) or a relative duration suffixed with `h` (hours), `m` (minutes), or `d` (days) — for example `\"24h\"`, `\"48h\"`, or `\"7d\"`. Omitted (or empty) means the database never expires. Expiry is best-effort: the database will not be deleted before `expires_at`, but cleanup may run later than the exact timestamp.")
|
|
33
34
|
name: Optional[StrictStr] = Field(default=None, description="Optional free-form display label (for UIs/CLIs). Not unique. Not an identifier — databases are always addressed by `id`. Accepts the legacy `description` key as an alias so clients that predate the rename keep populating this field.")
|
|
34
35
|
schemas: Optional[List[DatabaseDefaultSchemaDecl]] = Field(default=None, description="Optional schemas/tables to declare on the database's auto-created default catalog. Tables declared here can be loaded via the standard managed-table load endpoint targeting `default_connection_id`. Omitted or empty means the default catalog starts empty.")
|
|
35
|
-
__properties: ClassVar[List[str]] = ["default_catalog", "expires_at", "name", "schemas"]
|
|
36
|
+
__properties: ClassVar[List[str]] = ["default_catalog", "default_schema", "expires_at", "name", "schemas"]
|
|
36
37
|
|
|
37
38
|
model_config = ConfigDict(
|
|
38
39
|
populate_by_name=True,
|
|
@@ -85,6 +86,11 @@ class CreateDatabaseRequest(BaseModel):
|
|
|
85
86
|
if self.default_catalog is None and "default_catalog" in self.model_fields_set:
|
|
86
87
|
_dict['default_catalog'] = None
|
|
87
88
|
|
|
89
|
+
# set to None if default_schema (nullable) is None
|
|
90
|
+
# and model_fields_set contains the field
|
|
91
|
+
if self.default_schema is None and "default_schema" in self.model_fields_set:
|
|
92
|
+
_dict['default_schema'] = None
|
|
93
|
+
|
|
88
94
|
# set to None if expires_at (nullable) is None
|
|
89
95
|
# and model_fields_set contains the field
|
|
90
96
|
if self.expires_at is None and "expires_at" in self.model_fields_set:
|
|
@@ -108,6 +114,7 @@ class CreateDatabaseRequest(BaseModel):
|
|
|
108
114
|
|
|
109
115
|
_obj = cls.model_validate({
|
|
110
116
|
"default_catalog": obj.get("default_catalog"),
|
|
117
|
+
"default_schema": obj.get("default_schema"),
|
|
111
118
|
"expires_at": obj.get("expires_at"),
|
|
112
119
|
"name": obj.get("name"),
|
|
113
120
|
"schemas": [DatabaseDefaultSchemaDecl.from_dict(_item) for _item in obj["schemas"]] if obj.get("schemas") is not None else None
|
|
@@ -30,10 +30,11 @@ class CreateDatabaseResponse(BaseModel):
|
|
|
30
30
|
""" # noqa: E501
|
|
31
31
|
default_catalog: StrictStr = Field(description="Name the database's default catalog answers to inside its query scope (`default` unless overridden at create time).")
|
|
32
32
|
default_connection_id: StrictStr = Field(description="Internal id of the connection that backs this database's `default` catalog. Workspace-level connection endpoints (list, get, health, delete, cache purge) refuse to act on this id — it is exposed only for the managed-tables load endpoint (`POST /v1/connections/{id}/schemas/{s}/tables/{t}/loads`) so callers can publish parquet into tables declared at database-create time. Addressing it directly in SQL is not the recommended path — use `default` inside an `X-Database-Id` scope instead.")
|
|
33
|
+
default_schema: StrictStr = Field(description="Schema that unqualified table names resolve to inside this database's query scope. `main` unless the database declares a single schema or a `default_schema` was set at create time.")
|
|
33
34
|
expires_at: Optional[datetime] = Field(default=None, description="When this database expires.")
|
|
34
35
|
id: StrictStr
|
|
35
36
|
name: Optional[StrictStr] = None
|
|
36
|
-
__properties: ClassVar[List[str]] = ["default_catalog", "default_connection_id", "expires_at", "id", "name"]
|
|
37
|
+
__properties: ClassVar[List[str]] = ["default_catalog", "default_connection_id", "default_schema", "expires_at", "id", "name"]
|
|
37
38
|
|
|
38
39
|
model_config = ConfigDict(
|
|
39
40
|
populate_by_name=True,
|
|
@@ -98,6 +99,7 @@ class CreateDatabaseResponse(BaseModel):
|
|
|
98
99
|
_obj = cls.model_validate({
|
|
99
100
|
"default_catalog": obj.get("default_catalog"),
|
|
100
101
|
"default_connection_id": obj.get("default_connection_id"),
|
|
102
|
+
"default_schema": obj.get("default_schema"),
|
|
101
103
|
"expires_at": obj.get("expires_at"),
|
|
102
104
|
"id": obj.get("id"),
|
|
103
105
|
"name": obj.get("name")
|
|
@@ -33,10 +33,11 @@ class DatabaseDetailResponse(BaseModel):
|
|
|
33
33
|
created_at: Optional[datetime] = Field(default=None, description="When the database was created.")
|
|
34
34
|
default_catalog: StrictStr = Field(description="Name the database's default catalog answers to inside its query scope (`default` unless overridden at create time).")
|
|
35
35
|
default_connection_id: StrictStr
|
|
36
|
+
default_schema: StrictStr = Field(description="Schema that unqualified table names resolve to inside this database's query scope. `main` unless the database declares a single schema or a `default_schema` was set at create time.")
|
|
36
37
|
expires_at: Optional[datetime] = Field(default=None, description="When this database expires.")
|
|
37
38
|
id: StrictStr
|
|
38
39
|
name: Optional[StrictStr] = None
|
|
39
|
-
__properties: ClassVar[List[str]] = ["attachments", "created_at", "default_catalog", "default_connection_id", "expires_at", "id", "name"]
|
|
40
|
+
__properties: ClassVar[List[str]] = ["attachments", "created_at", "default_catalog", "default_connection_id", "default_schema", "expires_at", "id", "name"]
|
|
40
41
|
|
|
41
42
|
model_config = ConfigDict(
|
|
42
43
|
populate_by_name=True,
|
|
@@ -115,6 +116,7 @@ class DatabaseDetailResponse(BaseModel):
|
|
|
115
116
|
"created_at": obj.get("created_at"),
|
|
116
117
|
"default_catalog": obj.get("default_catalog"),
|
|
117
118
|
"default_connection_id": obj.get("default_connection_id"),
|
|
119
|
+
"default_schema": obj.get("default_schema"),
|
|
118
120
|
"expires_at": obj.get("expires_at"),
|
|
119
121
|
"id": obj.get("id"),
|
|
120
122
|
"name": obj.get("name")
|
|
@@ -30,10 +30,11 @@ class DatabaseSummary(BaseModel):
|
|
|
30
30
|
""" # noqa: E501
|
|
31
31
|
created_at: Optional[datetime] = Field(default=None, description="When the database was created.")
|
|
32
32
|
default_catalog: StrictStr = Field(description="Name the database's default catalog answers to inside its query scope.")
|
|
33
|
+
default_schema: StrictStr = Field(description="Schema that unqualified table names resolve to inside this database's query scope. `main` unless the database declares a single schema or a `default_schema` was set at create time.")
|
|
33
34
|
expires_at: Optional[datetime] = None
|
|
34
35
|
id: StrictStr
|
|
35
36
|
name: Optional[StrictStr] = None
|
|
36
|
-
__properties: ClassVar[List[str]] = ["created_at", "default_catalog", "expires_at", "id", "name"]
|
|
37
|
+
__properties: ClassVar[List[str]] = ["created_at", "default_catalog", "default_schema", "expires_at", "id", "name"]
|
|
37
38
|
|
|
38
39
|
model_config = ConfigDict(
|
|
39
40
|
populate_by_name=True,
|
|
@@ -103,6 +104,7 @@ class DatabaseSummary(BaseModel):
|
|
|
103
104
|
_obj = cls.model_validate({
|
|
104
105
|
"created_at": obj.get("created_at"),
|
|
105
106
|
"default_catalog": obj.get("default_catalog"),
|
|
107
|
+
"default_schema": obj.get("default_schema"),
|
|
106
108
|
"expires_at": obj.get("expires_at"),
|
|
107
109
|
"id": obj.get("id"),
|
|
108
110
|
"name": obj.get("name")
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
Hotdata API
|
|
5
|
+
|
|
6
|
+
Powerful data platform API for managed databases, queries, and analytics.
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1.0.0
|
|
9
|
+
Contact: developers@hotdata.dev
|
|
10
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
11
|
+
|
|
12
|
+
Do not edit the class manually.
|
|
13
|
+
""" # noqa: E501
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
import pprint
|
|
18
|
+
import re # noqa: F401
|
|
19
|
+
import json
|
|
20
|
+
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
|
+
from typing import Optional, Set
|
|
24
|
+
from typing_extensions import Self
|
|
25
|
+
|
|
26
|
+
class ForkDatabaseRequest(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
Request body for POST /databases/{database_id}/fork
|
|
29
|
+
""" # noqa: E501
|
|
30
|
+
expires_at: Optional[StrictStr] = Field(default=None, description="When the fork expires. Accepts either an RFC 3339 timestamp (e.g. `\"2026-06-01T00:00:00Z\"`) or a relative duration suffixed with `h` (hours), `m` (minutes), or `d` (days) — for example `\"24h\"` or `\"7d\"`. When omitted, a still-future expiry on the source is carried over; otherwise the fork never expires.")
|
|
31
|
+
name: Optional[StrictStr] = Field(default=None, description="Optional display label for the fork. When omitted, the source database's name (if any) is carried over.")
|
|
32
|
+
__properties: ClassVar[List[str]] = ["expires_at", "name"]
|
|
33
|
+
|
|
34
|
+
model_config = ConfigDict(
|
|
35
|
+
populate_by_name=True,
|
|
36
|
+
validate_assignment=True,
|
|
37
|
+
protected_namespaces=(),
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def to_str(self) -> str:
|
|
42
|
+
"""Returns the string representation of the model using alias"""
|
|
43
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
44
|
+
|
|
45
|
+
def to_json(self) -> str:
|
|
46
|
+
"""Returns the JSON representation of the model using alias"""
|
|
47
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
48
|
+
return json.dumps(self.to_dict())
|
|
49
|
+
|
|
50
|
+
@classmethod
|
|
51
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
52
|
+
"""Create an instance of ForkDatabaseRequest from a JSON string"""
|
|
53
|
+
return cls.from_dict(json.loads(json_str))
|
|
54
|
+
|
|
55
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
56
|
+
"""Return the dictionary representation of the model using alias.
|
|
57
|
+
|
|
58
|
+
This has the following differences from calling pydantic's
|
|
59
|
+
`self.model_dump(by_alias=True)`:
|
|
60
|
+
|
|
61
|
+
* `None` is only added to the output dict for nullable fields that
|
|
62
|
+
were set at model initialization. Other fields with value `None`
|
|
63
|
+
are ignored.
|
|
64
|
+
"""
|
|
65
|
+
excluded_fields: Set[str] = set([
|
|
66
|
+
])
|
|
67
|
+
|
|
68
|
+
_dict = self.model_dump(
|
|
69
|
+
by_alias=True,
|
|
70
|
+
exclude=excluded_fields,
|
|
71
|
+
exclude_none=True,
|
|
72
|
+
)
|
|
73
|
+
# set to None if expires_at (nullable) is None
|
|
74
|
+
# and model_fields_set contains the field
|
|
75
|
+
if self.expires_at is None and "expires_at" in self.model_fields_set:
|
|
76
|
+
_dict['expires_at'] = None
|
|
77
|
+
|
|
78
|
+
# set to None if name (nullable) is None
|
|
79
|
+
# and model_fields_set contains the field
|
|
80
|
+
if self.name is None and "name" in self.model_fields_set:
|
|
81
|
+
_dict['name'] = None
|
|
82
|
+
|
|
83
|
+
return _dict
|
|
84
|
+
|
|
85
|
+
@classmethod
|
|
86
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
87
|
+
"""Create an instance of ForkDatabaseRequest from a dict"""
|
|
88
|
+
if obj is None:
|
|
89
|
+
return None
|
|
90
|
+
|
|
91
|
+
if not isinstance(obj, dict):
|
|
92
|
+
return cls.model_validate(obj)
|
|
93
|
+
|
|
94
|
+
_obj = cls.model_validate({
|
|
95
|
+
"expires_at": obj.get("expires_at"),
|
|
96
|
+
"name": obj.get("name")
|
|
97
|
+
})
|
|
98
|
+
return _obj
|
|
99
|
+
|
|
100
|
+
|
|
@@ -31,10 +31,11 @@ class LoadManagedTableRequest(BaseModel):
|
|
|
31
31
|
var_async: Optional[StrictBool] = Field(default=None, description="When true, run the load as a background job and return a job ID to poll instead of blocking until it finishes. Recommended for large uploads, which can take longer than an HTTP request should stay open.", alias="async")
|
|
32
32
|
async_after_ms: Optional[Annotated[int, Field(strict=True, ge=1000)]] = Field(default=None, description="If set (requires `async` = true), wait up to this many milliseconds for the load to finish: if it completes in time the full result is returned (200), otherwise a 202 with a job ID to poll. Must be between 1000 and the server maximum; a value out of that range, or set without `async` = true, is rejected with 400.")
|
|
33
33
|
format: Optional[StrictStr] = Field(default=None, description="File format of the upload: `\"csv\"`, `\"json\"`, or `\"parquet\"`. Optional — when omitted, the format is auto-detected from the upload's `Content-Type` and, failing that, from the file contents. Provide it explicitly to override detection or when the contents are ambiguous. `\"json\"` expects newline-delimited JSON (one object per line), not a JSON array. Only applies to `upload_id`; query results are always parquet.")
|
|
34
|
+
key: Optional[List[StrictStr]] = Field(default=None, description="Key columns identifying rows for `\"delete\"`, `\"update\"`, and `\"upsert\"` loads — the columns whose values decide which existing row an incoming row removes, updates, or replaces. Omit to use the key the table was created with. Keep the key consistent across loads of the same table: changing it re-targets which rows are matched. Ignored for `\"replace\"` and `\"append\"`.")
|
|
34
35
|
mode: StrictStr = Field(description="How the data is applied: `\"replace\"` overwrites the table's contents, `\"append\"` inserts the new rows on top of the existing data.")
|
|
35
36
|
result_id: Optional[StrictStr] = Field(default=None, description="ID of a persisted query result (see `GET /v1/results/{result_id}`) to publish as the table's contents. The result is copied into the table, so the table keeps its data even after the result expires. A result can be loaded into any number of tables. Provide either this or `upload_id`, not both.")
|
|
36
37
|
upload_id: Optional[StrictStr] = Field(default=None, description="ID of a previously-staged upload (see `POST /v1/files`). The upload is claimed atomically; concurrent loads against the same `upload_id` return 409. Provide either this or `result_id`, not both.")
|
|
37
|
-
__properties: ClassVar[List[str]] = ["async", "async_after_ms", "format", "mode", "result_id", "upload_id"]
|
|
38
|
+
__properties: ClassVar[List[str]] = ["async", "async_after_ms", "format", "key", "mode", "result_id", "upload_id"]
|
|
38
39
|
|
|
39
40
|
model_config = ConfigDict(
|
|
40
41
|
populate_by_name=True,
|
|
@@ -85,6 +86,11 @@ class LoadManagedTableRequest(BaseModel):
|
|
|
85
86
|
if self.format is None and "format" in self.model_fields_set:
|
|
86
87
|
_dict['format'] = None
|
|
87
88
|
|
|
89
|
+
# set to None if key (nullable) is None
|
|
90
|
+
# and model_fields_set contains the field
|
|
91
|
+
if self.key is None and "key" in self.model_fields_set:
|
|
92
|
+
_dict['key'] = None
|
|
93
|
+
|
|
88
94
|
# set to None if result_id (nullable) is None
|
|
89
95
|
# and model_fields_set contains the field
|
|
90
96
|
if self.result_id is None and "result_id" in self.model_fields_set:
|
|
@@ -110,6 +116,7 @@ class LoadManagedTableRequest(BaseModel):
|
|
|
110
116
|
"async": obj.get("async"),
|
|
111
117
|
"async_after_ms": obj.get("async_after_ms"),
|
|
112
118
|
"format": obj.get("format"),
|
|
119
|
+
"key": obj.get("key"),
|
|
113
120
|
"mode": obj.get("mode"),
|
|
114
121
|
"result_id": obj.get("result_id"),
|
|
115
122
|
"upload_id": obj.get("upload_id")
|
|
@@ -31,7 +31,7 @@ class WorkspaceUsageResponse(BaseModel):
|
|
|
31
31
|
bytes_scanned: StrictInt = Field(description="Sum of `bytes_scanned` across all completed/failed query runs since `since`. Null bytes (queries that touched no row data) contribute 0.")
|
|
32
32
|
query_count: StrictInt = Field(description="Number of query runs (succeeded + failed) since `since`.")
|
|
33
33
|
since: datetime = Field(description="The period start used for this response (echoed back for the caller to verify).")
|
|
34
|
-
storage_bytes: StrictInt = Field(description="The workspace's current stored-data footprint in bytes, measured at request time: managed-database
|
|
34
|
+
storage_bytes: StrictInt = Field(description="The workspace's current stored-data footprint in bytes, measured at request time: managed-database data, plus un-consumed uploads, connection caches, and search-index artifacts.")
|
|
35
35
|
storage_captured_at: Optional[datetime] = Field(default=None, description="When `storage_bytes` was measured (the time this response was produced).")
|
|
36
36
|
__properties: ClassVar[List[str]] = ["bytes_scanned", "query_count", "since", "storage_bytes", "storage_captured_at"]
|
|
37
37
|
|