hotdata 0.6.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.6.0 → hotdata-0.8.0}/PKG-INFO +1 -1
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/__init__.py +2 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/connections_api.py +6 -6
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/databases_api.py +306 -9
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/__init__.py +1 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/add_managed_table_decl.py +5 -3
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/add_managed_table_request.py +5 -3
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/create_database_request.py +9 -2
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/create_database_response.py +3 -1
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/database_default_table_decl.py +5 -3
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/database_detail_response.py +10 -1
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/database_summary.py +10 -1
- hotdata-0.8.0/hotdata/models/fork_database_request.py +100 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/load_managed_table_request.py +24 -5
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/workspace_usage_response.py +1 -1
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata.egg-info/PKG-INFO +1 -1
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata.egg-info/SOURCES.txt +2 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/pyproject.toml +1 -1
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_add_managed_schema_request.py +3 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_add_managed_table_decl.py +3 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_add_managed_table_request.py +3 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_connections_api.py +1 -1
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_create_database_request.py +4 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_create_database_response.py +2 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_database_default_schema_decl.py +3 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_database_default_table_decl.py +3 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_database_detail_response.py +3 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_database_summary.py +3 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_databases_api.py +8 -1
- hotdata-0.8.0/test/test_fork_database_request.py +53 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_list_databases_response.py +4 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_load_managed_table_request.py +4 -1
- {hotdata-0.6.0 → hotdata-0.8.0}/README.md +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/_auth.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/_retry.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/_upload_watchdog.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/__init__.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/connection_types_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/database_context_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/embedding_providers_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/indexes_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/information_schema_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/jobs_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/query_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/query_runs_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/refresh_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/results_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/saved_queries_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/secrets_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/uploads_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/usage_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api/workspaces_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api_client.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/api_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/arrow.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/configuration.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/exceptions.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/add_managed_schema_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/api_error_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/api_error_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/async_query_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/attach_database_catalog_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/batch_create_upload_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/batch_create_upload_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/boolean_profile_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/categorical_profile_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/category_value_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/column_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail_one_of.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail_one_of1.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail_one_of2.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail_one_of3.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail_one_of4.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/column_profile_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/connection_health_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/connection_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/connection_refresh_result.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/connection_schema_error.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/connection_type_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/connection_type_summary.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/create_connection_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/create_connection_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/create_embedding_provider_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/create_embedding_provider_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/create_index_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/create_saved_query_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/create_secret_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/create_secret_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/create_upload_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/create_workspace_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/create_workspace_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/database_attachment_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/database_context_entry.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/database_default_schema_decl.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/discovery_status.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/embedding_provider_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/error.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/execute_saved_query_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/finalize_upload_part.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/finalize_upload_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/finalize_upload_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/get_connection_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/get_database_context_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/get_result_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/get_secret_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/index_entry_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/index_info_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/index_status.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/information_schema_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/job_result.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/job_status.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/job_status_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/job_type.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/list_connection_types_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/list_connections_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/list_database_contexts_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/list_databases_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/list_embedding_providers_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/list_indexes_page_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/list_indexes_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/list_jobs_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/list_query_runs_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/list_results_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/list_saved_queries_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/list_saved_query_versions_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/list_secrets_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/list_uploads_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/list_workspaces_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/load_managed_table_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/managed_schema_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/managed_table_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/mint_upload_parts_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/mint_upload_parts_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/minted_upload_part_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/numeric_profile_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/query_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/query_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/query_run_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/refresh_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/refresh_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/refresh_warning.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/result_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/results_format_query.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/saved_query_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/saved_query_summary.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/saved_query_version_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/schema_refresh_result.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/secret_metadata_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/submit_job_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/table_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/table_profile_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/table_refresh_error.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/table_refresh_result.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/temporal_profile_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/text_profile_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/update_embedding_provider_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/update_embedding_provider_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/update_saved_query_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/update_secret_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/update_secret_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/upload_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/upload_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/upload_session_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/upsert_database_context_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/upsert_database_context_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/workspace_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/models/workspace_list_item.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/py.typed +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/query.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/rest.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata/uploads.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata.egg-info/dependency_links.txt +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata.egg-info/requires.txt +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/hotdata.egg-info/top_level.txt +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/setup.cfg +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_api_client_close.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_api_error_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_api_error_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_async_query_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_attach_database_catalog_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_batch_create_upload_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_batch_create_upload_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_boolean_profile_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_categorical_profile_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_category_value_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_column_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_column_profile_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_column_profile_detail_one_of.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_column_profile_detail_one_of1.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_column_profile_detail_one_of2.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_column_profile_detail_one_of3.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_column_profile_detail_one_of4.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_column_profile_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_connection_health_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_connection_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_connection_refresh_result.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_connection_schema_error.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_connection_type_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_connection_type_summary.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_connection_types_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_create_connection_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_create_connection_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_create_embedding_provider_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_create_embedding_provider_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_create_index_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_create_saved_query_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_create_secret_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_create_secret_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_create_upload_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_create_workspace_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_create_workspace_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_database_attachment_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_database_context_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_database_context_entry.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_discovery_status.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_embedding_provider_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_embedding_providers_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_error.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_execute_saved_query_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_finalize_upload_part.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_finalize_upload_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_finalize_upload_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_get_connection_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_get_database_context_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_get_result_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_get_secret_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_index_entry_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_index_info_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_index_status.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_indexes_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_information_schema_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_information_schema_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_job_result.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_job_status.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_job_status_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_job_type.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_jobs_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_list_connection_types_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_list_connections_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_list_database_contexts_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_list_embedding_providers_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_list_indexes_page_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_list_indexes_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_list_jobs_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_list_query_runs_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_list_results_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_list_saved_queries_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_list_saved_query_versions_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_list_secrets_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_list_uploads_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_list_workspaces_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_load_managed_table_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_managed_schema_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_managed_table_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_mint_upload_parts_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_mint_upload_parts_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_minted_upload_part_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_numeric_profile_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_query_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_query_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_query_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_query_run_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_query_runs_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_refresh_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_refresh_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_refresh_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_refresh_warning.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_result_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_results_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_results_format_query.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_saved_queries_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_saved_query_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_saved_query_summary.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_saved_query_version_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_schema_refresh_result.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_secret_metadata_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_secrets_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_submit_job_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_table_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_table_profile_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_table_refresh_error.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_table_refresh_result.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_temporal_profile_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_text_profile_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_update_embedding_provider_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_update_embedding_provider_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_update_saved_query_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_update_secret_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_update_secret_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_upload_info.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_upload_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_upload_session_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_uploads_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_upsert_database_context_request.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_upsert_database_context_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_usage_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_workspace_detail.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_workspace_list_item.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_workspace_usage_response.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/test/test_workspaces_api.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/tests/test_arrow.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/tests/test_auth.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/tests/test_query.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/tests/test_retry.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/tests/test_update_changelog.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/tests/test_upload_codex_fixes.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/tests/test_upload_multipart_resilient.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/tests/test_upload_parity_fixes.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/tests/test_upload_resilient.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/tests/test_upload_retry_policy.py +0 -0
- {hotdata-0.6.0 → hotdata-0.8.0}/tests/test_upload_watchdog.py +0 -0
- {hotdata-0.6.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
|
|
@@ -2601,9 +2601,9 @@ class ConnectionsApi:
|
|
|
2601
2601
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2602
2602
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2603
2603
|
) -> LoadManagedTableResponse:
|
|
2604
|
-
"""Load managed table from upload
|
|
2604
|
+
"""Load managed table from upload or query result
|
|
2605
2605
|
|
|
2606
|
-
Publish
|
|
2606
|
+
Publish data as the new contents of a managed table from one of two sources — provide exactly one. With `upload_id`, a previously-uploaded file is published: CSV, JSON, and Parquet are supported; the format is auto-detected from the upload's `Content-Type` and file contents, or set explicitly via the `format` field. With `result_id`, a persisted query 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. If the target table (or its schema) has not been declared yet, it is created automatically as part of the load — declaring tables up front is optional. `mode` selects how the data is applied: `replace` overwrites the table's contents, `append` inserts the new rows on top of the existing data. Concurrent loads against the same upload return 409. For an upload, set `async` to run the load in the background and get back a job ID to poll; add `async_after_ms` to wait briefly for it to finish before falling back to a job ID. A `result_id` load runs synchronously.
|
|
2607
2607
|
|
|
2608
2608
|
:param connection_id: Connection ID (required)
|
|
2609
2609
|
:type connection_id: str
|
|
@@ -2684,9 +2684,9 @@ class ConnectionsApi:
|
|
|
2684
2684
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2685
2685
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2686
2686
|
) -> ApiResponse[LoadManagedTableResponse]:
|
|
2687
|
-
"""Load managed table from upload
|
|
2687
|
+
"""Load managed table from upload or query result
|
|
2688
2688
|
|
|
2689
|
-
Publish
|
|
2689
|
+
Publish data as the new contents of a managed table from one of two sources — provide exactly one. With `upload_id`, a previously-uploaded file is published: CSV, JSON, and Parquet are supported; the format is auto-detected from the upload's `Content-Type` and file contents, or set explicitly via the `format` field. With `result_id`, a persisted query 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. If the target table (or its schema) has not been declared yet, it is created automatically as part of the load — declaring tables up front is optional. `mode` selects how the data is applied: `replace` overwrites the table's contents, `append` inserts the new rows on top of the existing data. Concurrent loads against the same upload return 409. For an upload, set `async` to run the load in the background and get back a job ID to poll; add `async_after_ms` to wait briefly for it to finish before falling back to a job ID. A `result_id` load runs synchronously.
|
|
2690
2690
|
|
|
2691
2691
|
:param connection_id: Connection ID (required)
|
|
2692
2692
|
:type connection_id: str
|
|
@@ -2767,9 +2767,9 @@ class ConnectionsApi:
|
|
|
2767
2767
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2768
2768
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2769
2769
|
) -> RESTResponseType:
|
|
2770
|
-
"""Load managed table from upload
|
|
2770
|
+
"""Load managed table from upload or query result
|
|
2771
2771
|
|
|
2772
|
-
Publish
|
|
2772
|
+
Publish data as the new contents of a managed table from one of two sources — provide exactly one. With `upload_id`, a previously-uploaded file is published: CSV, JSON, and Parquet are supported; the format is auto-detected from the upload's `Content-Type` and file contents, or set explicitly via the `format` field. With `result_id`, a persisted query 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. If the target table (or its schema) has not been declared yet, it is created automatically as part of the load — declaring tables up front is optional. `mode` selects how the data is applied: `replace` overwrites the table's contents, `append` inserts the new rows on top of the existing data. Concurrent loads against the same upload return 409. For an upload, set `async` to run the load in the background and get back a job ID to poll; add `async_after_ms` to wait briefly for it to finish before falling back to a job ID. A `result_id` load runs synchronously.
|
|
2773
2773
|
|
|
2774
2774
|
:param connection_id: Connection ID (required)
|
|
2775
2775
|
:type connection_id: str
|
|
@@ -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,
|
|
@@ -2315,9 +2612,9 @@ class DatabasesApi:
|
|
|
2315
2612
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2316
2613
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2317
2614
|
) -> LoadManagedTableResponse:
|
|
2318
|
-
"""Load database table from upload
|
|
2615
|
+
"""Load database table from upload or query result
|
|
2319
2616
|
|
|
2320
|
-
Publish
|
|
2617
|
+
Publish data as the new contents of a table on the database's default catalog, from one of two sources — provide exactly one. The database-scoped equivalent of the connection-scoped managed-table load — addressed by `database_id`, so no `default_connection_id` is needed. With `upload_id`, a previously-uploaded file is published: CSV, JSON, and Parquet are supported; the format is auto-detected or set via `format`. With `result_id`, a persisted query result is copied into the table, so the table keeps its data even after the result expires. If the target table (or its schema) has not been declared yet, it is created automatically as part of the load — declaring tables up front is optional. `mode` selects how the data is applied: `replace` overwrites the table's contents, `append` inserts the new rows on top of the existing data. Concurrent loads against the same upload return 409. For an upload, set `async` to run the load in the background and get back a job ID to poll; add `async_after_ms` to wait briefly for it to finish before falling back to a job ID. A `result_id` load runs synchronously.
|
|
2321
2618
|
|
|
2322
2619
|
:param database_id: Database ID (required)
|
|
2323
2620
|
:type database_id: str
|
|
@@ -2398,9 +2695,9 @@ class DatabasesApi:
|
|
|
2398
2695
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2399
2696
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2400
2697
|
) -> ApiResponse[LoadManagedTableResponse]:
|
|
2401
|
-
"""Load database table from upload
|
|
2698
|
+
"""Load database table from upload or query result
|
|
2402
2699
|
|
|
2403
|
-
Publish
|
|
2700
|
+
Publish data as the new contents of a table on the database's default catalog, from one of two sources — provide exactly one. The database-scoped equivalent of the connection-scoped managed-table load — addressed by `database_id`, so no `default_connection_id` is needed. With `upload_id`, a previously-uploaded file is published: CSV, JSON, and Parquet are supported; the format is auto-detected or set via `format`. With `result_id`, a persisted query result is copied into the table, so the table keeps its data even after the result expires. If the target table (or its schema) has not been declared yet, it is created automatically as part of the load — declaring tables up front is optional. `mode` selects how the data is applied: `replace` overwrites the table's contents, `append` inserts the new rows on top of the existing data. Concurrent loads against the same upload return 409. For an upload, set `async` to run the load in the background and get back a job ID to poll; add `async_after_ms` to wait briefly for it to finish before falling back to a job ID. A `result_id` load runs synchronously.
|
|
2404
2701
|
|
|
2405
2702
|
:param database_id: Database ID (required)
|
|
2406
2703
|
:type database_id: str
|
|
@@ -2481,9 +2778,9 @@ class DatabasesApi:
|
|
|
2481
2778
|
_headers: Optional[Dict[StrictStr, Any]] = None,
|
|
2482
2779
|
_host_index: Annotated[StrictInt, Field(ge=0, le=0)] = 0,
|
|
2483
2780
|
) -> RESTResponseType:
|
|
2484
|
-
"""Load database table from upload
|
|
2781
|
+
"""Load database table from upload or query result
|
|
2485
2782
|
|
|
2486
|
-
Publish
|
|
2783
|
+
Publish data as the new contents of a table on the database's default catalog, from one of two sources — provide exactly one. The database-scoped equivalent of the connection-scoped managed-table load — addressed by `database_id`, so no `default_connection_id` is needed. With `upload_id`, a previously-uploaded file is published: CSV, JSON, and Parquet are supported; the format is auto-detected or set via `format`. With `result_id`, a persisted query result is copied into the table, so the table keeps its data even after the result expires. If the target table (or its schema) has not been declared yet, it is created automatically as part of the load — declaring tables up front is optional. `mode` selects how the data is applied: `replace` overwrites the table's contents, `append` inserts the new rows on top of the existing data. Concurrent loads against the same upload return 409. For an upload, set `async` to run the load in the background and get back a job ID to poll; add `async_after_ms` to wait briefly for it to finish before falling back to a job ID. A `result_id` load runs synchronously.
|
|
2487
2784
|
|
|
2488
2785
|
:param database_id: Database ID (required)
|
|
2489
2786
|
:type database_id: str
|
|
@@ -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
|
|
@@ -18,8 +18,8 @@ import pprint
|
|
|
18
18
|
import re # noqa: F401
|
|
19
19
|
import json
|
|
20
20
|
|
|
21
|
-
from pydantic import BaseModel, ConfigDict, StrictStr
|
|
22
|
-
from typing import Any, ClassVar, Dict, List
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
23
|
from typing import Optional, Set
|
|
24
24
|
from typing_extensions import Self
|
|
25
25
|
|
|
@@ -27,8 +27,9 @@ class AddManagedTableDecl(BaseModel):
|
|
|
27
27
|
"""
|
|
28
28
|
One table declaration inside an add-schema request body.
|
|
29
29
|
""" # noqa: E501
|
|
30
|
+
key: Optional[List[StrictStr]] = Field(default=None, description="Columns that uniquely identify a row, enabling the key-based load modes (`delete`, `update`, `upsert`) on this table: those loads match rows by these columns' values. Omit (the default) to declare no key; the table can still be loaded with `replace` and `append`, but key-based modes are then rejected.")
|
|
30
31
|
name: StrictStr
|
|
31
|
-
__properties: ClassVar[List[str]] = ["name"]
|
|
32
|
+
__properties: ClassVar[List[str]] = ["key", "name"]
|
|
32
33
|
|
|
33
34
|
model_config = ConfigDict(
|
|
34
35
|
populate_by_name=True,
|
|
@@ -81,6 +82,7 @@ class AddManagedTableDecl(BaseModel):
|
|
|
81
82
|
return cls.model_validate(obj)
|
|
82
83
|
|
|
83
84
|
_obj = cls.model_validate({
|
|
85
|
+
"key": obj.get("key"),
|
|
84
86
|
"name": obj.get("name")
|
|
85
87
|
})
|
|
86
88
|
return _obj
|
|
@@ -18,8 +18,8 @@ import pprint
|
|
|
18
18
|
import re # noqa: F401
|
|
19
19
|
import json
|
|
20
20
|
|
|
21
|
-
from pydantic import BaseModel, ConfigDict, StrictStr
|
|
22
|
-
from typing import Any, ClassVar, Dict, List
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
23
|
from typing import Optional, Set
|
|
24
24
|
from typing_extensions import Self
|
|
25
25
|
|
|
@@ -27,8 +27,9 @@ class AddManagedTableRequest(BaseModel):
|
|
|
27
27
|
"""
|
|
28
28
|
Request body for adding a table to an existing schema: `POST /v1/connections/{id}/schemas/{schema}/tables` and `POST /v1/databases/{id}/schemas/{schema}/tables`.
|
|
29
29
|
""" # noqa: E501
|
|
30
|
+
key: Optional[List[StrictStr]] = Field(default=None, description="Columns that uniquely identify a row, enabling the key-based load modes (`delete`, `update`, `upsert`) on this table: those loads match rows by these columns' values. Omit (the default) to declare no key; the table can still be loaded with `replace` and `append`, but key-based modes are then rejected.")
|
|
30
31
|
name: StrictStr
|
|
31
|
-
__properties: ClassVar[List[str]] = ["name"]
|
|
32
|
+
__properties: ClassVar[List[str]] = ["key", "name"]
|
|
32
33
|
|
|
33
34
|
model_config = ConfigDict(
|
|
34
35
|
populate_by_name=True,
|
|
@@ -81,6 +82,7 @@ class AddManagedTableRequest(BaseModel):
|
|
|
81
82
|
return cls.model_validate(obj)
|
|
82
83
|
|
|
83
84
|
_obj = cls.model_validate({
|
|
85
|
+
"key": obj.get("key"),
|
|
84
86
|
"name": obj.get("name")
|
|
85
87
|
})
|
|
86
88
|
return _obj
|
|
@@ -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")
|
|
@@ -18,8 +18,8 @@ import pprint
|
|
|
18
18
|
import re # noqa: F401
|
|
19
19
|
import json
|
|
20
20
|
|
|
21
|
-
from pydantic import BaseModel, ConfigDict, StrictStr
|
|
22
|
-
from typing import Any, ClassVar, Dict, List
|
|
21
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
|
|
22
|
+
from typing import Any, ClassVar, Dict, List, Optional
|
|
23
23
|
from typing import Optional, Set
|
|
24
24
|
from typing_extensions import Self
|
|
25
25
|
|
|
@@ -27,8 +27,9 @@ class DatabaseDefaultTableDecl(BaseModel):
|
|
|
27
27
|
"""
|
|
28
28
|
One table declaration inside a default-catalog schema, supplied at database-create time.
|
|
29
29
|
""" # noqa: E501
|
|
30
|
+
key: Optional[List[StrictStr]] = Field(default=None, description="Columns that uniquely identify a row, enabling the key-based load modes (`delete`, `update`, `upsert`) on this table: those loads match rows by these columns' values. Omit (the default) to declare no key; the table can still be loaded with `replace` and `append`, but key-based modes are then rejected.")
|
|
30
31
|
name: StrictStr
|
|
31
|
-
__properties: ClassVar[List[str]] = ["name"]
|
|
32
|
+
__properties: ClassVar[List[str]] = ["key", "name"]
|
|
32
33
|
|
|
33
34
|
model_config = ConfigDict(
|
|
34
35
|
populate_by_name=True,
|
|
@@ -81,6 +82,7 @@ class DatabaseDefaultTableDecl(BaseModel):
|
|
|
81
82
|
return cls.model_validate(obj)
|
|
82
83
|
|
|
83
84
|
_obj = cls.model_validate({
|
|
85
|
+
"key": obj.get("key"),
|
|
84
86
|
"name": obj.get("name")
|
|
85
87
|
})
|
|
86
88
|
return _obj
|