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.
Files changed (313) hide show
  1. {hotdata-0.7.0 → hotdata-0.8.0}/PKG-INFO +1 -1
  2. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/__init__.py +2 -0
  3. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/databases_api.py +300 -3
  4. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/__init__.py +1 -0
  5. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_database_request.py +9 -2
  6. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_database_response.py +3 -1
  7. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/database_detail_response.py +3 -1
  8. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/database_summary.py +3 -1
  9. hotdata-0.8.0/hotdata/models/fork_database_request.py +100 -0
  10. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/load_managed_table_request.py +8 -1
  11. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/workspace_usage_response.py +1 -1
  12. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata.egg-info/PKG-INFO +1 -1
  13. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata.egg-info/SOURCES.txt +2 -0
  14. {hotdata-0.7.0 → hotdata-0.8.0}/pyproject.toml +1 -1
  15. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_database_request.py +1 -0
  16. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_database_response.py +2 -0
  17. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_database_detail_response.py +2 -0
  18. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_database_summary.py +2 -0
  19. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_databases_api.py +7 -0
  20. hotdata-0.8.0/test/test_fork_database_request.py +53 -0
  21. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_databases_response.py +2 -0
  22. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_load_managed_table_request.py +3 -0
  23. {hotdata-0.7.0 → hotdata-0.8.0}/README.md +0 -0
  24. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/_auth.py +0 -0
  25. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/_retry.py +0 -0
  26. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/_upload_watchdog.py +0 -0
  27. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/__init__.py +0 -0
  28. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/connection_types_api.py +0 -0
  29. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/connections_api.py +0 -0
  30. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/database_context_api.py +0 -0
  31. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/embedding_providers_api.py +0 -0
  32. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/indexes_api.py +0 -0
  33. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/information_schema_api.py +0 -0
  34. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/jobs_api.py +0 -0
  35. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/query_api.py +0 -0
  36. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/query_runs_api.py +0 -0
  37. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/refresh_api.py +0 -0
  38. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/results_api.py +0 -0
  39. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/saved_queries_api.py +0 -0
  40. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/secrets_api.py +0 -0
  41. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/uploads_api.py +0 -0
  42. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/usage_api.py +0 -0
  43. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api/workspaces_api.py +0 -0
  44. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api_client.py +0 -0
  45. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/api_response.py +0 -0
  46. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/arrow.py +0 -0
  47. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/configuration.py +0 -0
  48. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/exceptions.py +0 -0
  49. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/add_managed_schema_request.py +0 -0
  50. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/add_managed_table_decl.py +0 -0
  51. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/add_managed_table_request.py +0 -0
  52. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/api_error_detail.py +0 -0
  53. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/api_error_response.py +0 -0
  54. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/async_query_response.py +0 -0
  55. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/attach_database_catalog_request.py +0 -0
  56. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/batch_create_upload_request.py +0 -0
  57. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/batch_create_upload_response.py +0 -0
  58. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/boolean_profile_detail.py +0 -0
  59. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/categorical_profile_detail.py +0 -0
  60. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/category_value_info.py +0 -0
  61. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/column_info.py +0 -0
  62. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail.py +0 -0
  63. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail_one_of.py +0 -0
  64. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail_one_of1.py +0 -0
  65. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail_one_of2.py +0 -0
  66. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail_one_of3.py +0 -0
  67. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/column_profile_detail_one_of4.py +0 -0
  68. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/column_profile_info.py +0 -0
  69. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/connection_health_response.py +0 -0
  70. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/connection_info.py +0 -0
  71. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/connection_refresh_result.py +0 -0
  72. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/connection_schema_error.py +0 -0
  73. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/connection_type_detail.py +0 -0
  74. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/connection_type_summary.py +0 -0
  75. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_connection_request.py +0 -0
  76. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_connection_response.py +0 -0
  77. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_embedding_provider_request.py +0 -0
  78. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_embedding_provider_response.py +0 -0
  79. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_index_request.py +0 -0
  80. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_saved_query_request.py +0 -0
  81. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_secret_request.py +0 -0
  82. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_secret_response.py +0 -0
  83. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_upload_request.py +0 -0
  84. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_workspace_request.py +0 -0
  85. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/create_workspace_response.py +0 -0
  86. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/database_attachment_info.py +0 -0
  87. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/database_context_entry.py +0 -0
  88. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/database_default_schema_decl.py +0 -0
  89. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/database_default_table_decl.py +0 -0
  90. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/discovery_status.py +0 -0
  91. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/embedding_provider_response.py +0 -0
  92. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/error.py +0 -0
  93. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/execute_saved_query_request.py +0 -0
  94. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/finalize_upload_part.py +0 -0
  95. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/finalize_upload_request.py +0 -0
  96. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/finalize_upload_response.py +0 -0
  97. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/get_connection_response.py +0 -0
  98. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/get_database_context_response.py +0 -0
  99. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/get_result_response.py +0 -0
  100. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/get_secret_response.py +0 -0
  101. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/index_entry_response.py +0 -0
  102. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/index_info_response.py +0 -0
  103. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/index_status.py +0 -0
  104. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/information_schema_response.py +0 -0
  105. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/job_result.py +0 -0
  106. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/job_status.py +0 -0
  107. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/job_status_response.py +0 -0
  108. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/job_type.py +0 -0
  109. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_connection_types_response.py +0 -0
  110. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_connections_response.py +0 -0
  111. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_database_contexts_response.py +0 -0
  112. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_databases_response.py +0 -0
  113. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_embedding_providers_response.py +0 -0
  114. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_indexes_page_response.py +0 -0
  115. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_indexes_response.py +0 -0
  116. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_jobs_response.py +0 -0
  117. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_query_runs_response.py +0 -0
  118. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_results_response.py +0 -0
  119. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_saved_queries_response.py +0 -0
  120. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_saved_query_versions_response.py +0 -0
  121. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_secrets_response.py +0 -0
  122. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_uploads_response.py +0 -0
  123. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/list_workspaces_response.py +0 -0
  124. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/load_managed_table_response.py +0 -0
  125. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/managed_schema_response.py +0 -0
  126. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/managed_table_response.py +0 -0
  127. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/mint_upload_parts_request.py +0 -0
  128. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/mint_upload_parts_response.py +0 -0
  129. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/minted_upload_part_response.py +0 -0
  130. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/numeric_profile_detail.py +0 -0
  131. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/query_request.py +0 -0
  132. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/query_response.py +0 -0
  133. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/query_run_info.py +0 -0
  134. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/refresh_request.py +0 -0
  135. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/refresh_response.py +0 -0
  136. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/refresh_warning.py +0 -0
  137. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/result_info.py +0 -0
  138. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/results_format_query.py +0 -0
  139. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/saved_query_detail.py +0 -0
  140. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/saved_query_summary.py +0 -0
  141. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/saved_query_version_info.py +0 -0
  142. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/schema_refresh_result.py +0 -0
  143. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/secret_metadata_response.py +0 -0
  144. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/submit_job_response.py +0 -0
  145. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/table_info.py +0 -0
  146. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/table_profile_response.py +0 -0
  147. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/table_refresh_error.py +0 -0
  148. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/table_refresh_result.py +0 -0
  149. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/temporal_profile_detail.py +0 -0
  150. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/text_profile_detail.py +0 -0
  151. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/update_embedding_provider_request.py +0 -0
  152. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/update_embedding_provider_response.py +0 -0
  153. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/update_saved_query_request.py +0 -0
  154. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/update_secret_request.py +0 -0
  155. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/update_secret_response.py +0 -0
  156. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/upload_info.py +0 -0
  157. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/upload_response.py +0 -0
  158. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/upload_session_response.py +0 -0
  159. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/upsert_database_context_request.py +0 -0
  160. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/upsert_database_context_response.py +0 -0
  161. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/workspace_detail.py +0 -0
  162. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/models/workspace_list_item.py +0 -0
  163. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/py.typed +0 -0
  164. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/query.py +0 -0
  165. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/rest.py +0 -0
  166. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata/uploads.py +0 -0
  167. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata.egg-info/dependency_links.txt +0 -0
  168. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata.egg-info/requires.txt +0 -0
  169. {hotdata-0.7.0 → hotdata-0.8.0}/hotdata.egg-info/top_level.txt +0 -0
  170. {hotdata-0.7.0 → hotdata-0.8.0}/setup.cfg +0 -0
  171. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_add_managed_schema_request.py +0 -0
  172. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_add_managed_table_decl.py +0 -0
  173. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_add_managed_table_request.py +0 -0
  174. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_api_client_close.py +0 -0
  175. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_api_error_detail.py +0 -0
  176. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_api_error_response.py +0 -0
  177. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_async_query_response.py +0 -0
  178. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_attach_database_catalog_request.py +0 -0
  179. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_batch_create_upload_request.py +0 -0
  180. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_batch_create_upload_response.py +0 -0
  181. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_boolean_profile_detail.py +0 -0
  182. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_categorical_profile_detail.py +0 -0
  183. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_category_value_info.py +0 -0
  184. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_column_info.py +0 -0
  185. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_column_profile_detail.py +0 -0
  186. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_column_profile_detail_one_of.py +0 -0
  187. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_column_profile_detail_one_of1.py +0 -0
  188. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_column_profile_detail_one_of2.py +0 -0
  189. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_column_profile_detail_one_of3.py +0 -0
  190. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_column_profile_detail_one_of4.py +0 -0
  191. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_column_profile_info.py +0 -0
  192. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_connection_health_response.py +0 -0
  193. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_connection_info.py +0 -0
  194. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_connection_refresh_result.py +0 -0
  195. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_connection_schema_error.py +0 -0
  196. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_connection_type_detail.py +0 -0
  197. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_connection_type_summary.py +0 -0
  198. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_connection_types_api.py +0 -0
  199. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_connections_api.py +0 -0
  200. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_connection_request.py +0 -0
  201. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_connection_response.py +0 -0
  202. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_embedding_provider_request.py +0 -0
  203. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_embedding_provider_response.py +0 -0
  204. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_index_request.py +0 -0
  205. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_saved_query_request.py +0 -0
  206. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_secret_request.py +0 -0
  207. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_secret_response.py +0 -0
  208. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_upload_request.py +0 -0
  209. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_workspace_request.py +0 -0
  210. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_create_workspace_response.py +0 -0
  211. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_database_attachment_info.py +0 -0
  212. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_database_context_api.py +0 -0
  213. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_database_context_entry.py +0 -0
  214. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_database_default_schema_decl.py +0 -0
  215. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_database_default_table_decl.py +0 -0
  216. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_discovery_status.py +0 -0
  217. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_embedding_provider_response.py +0 -0
  218. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_embedding_providers_api.py +0 -0
  219. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_error.py +0 -0
  220. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_execute_saved_query_request.py +0 -0
  221. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_finalize_upload_part.py +0 -0
  222. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_finalize_upload_request.py +0 -0
  223. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_finalize_upload_response.py +0 -0
  224. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_get_connection_response.py +0 -0
  225. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_get_database_context_response.py +0 -0
  226. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_get_result_response.py +0 -0
  227. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_get_secret_response.py +0 -0
  228. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_index_entry_response.py +0 -0
  229. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_index_info_response.py +0 -0
  230. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_index_status.py +0 -0
  231. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_indexes_api.py +0 -0
  232. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_information_schema_api.py +0 -0
  233. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_information_schema_response.py +0 -0
  234. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_job_result.py +0 -0
  235. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_job_status.py +0 -0
  236. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_job_status_response.py +0 -0
  237. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_job_type.py +0 -0
  238. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_jobs_api.py +0 -0
  239. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_connection_types_response.py +0 -0
  240. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_connections_response.py +0 -0
  241. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_database_contexts_response.py +0 -0
  242. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_embedding_providers_response.py +0 -0
  243. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_indexes_page_response.py +0 -0
  244. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_indexes_response.py +0 -0
  245. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_jobs_response.py +0 -0
  246. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_query_runs_response.py +0 -0
  247. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_results_response.py +0 -0
  248. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_saved_queries_response.py +0 -0
  249. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_saved_query_versions_response.py +0 -0
  250. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_secrets_response.py +0 -0
  251. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_uploads_response.py +0 -0
  252. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_list_workspaces_response.py +0 -0
  253. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_load_managed_table_response.py +0 -0
  254. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_managed_schema_response.py +0 -0
  255. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_managed_table_response.py +0 -0
  256. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_mint_upload_parts_request.py +0 -0
  257. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_mint_upload_parts_response.py +0 -0
  258. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_minted_upload_part_response.py +0 -0
  259. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_numeric_profile_detail.py +0 -0
  260. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_query_api.py +0 -0
  261. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_query_request.py +0 -0
  262. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_query_response.py +0 -0
  263. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_query_run_info.py +0 -0
  264. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_query_runs_api.py +0 -0
  265. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_refresh_api.py +0 -0
  266. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_refresh_request.py +0 -0
  267. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_refresh_response.py +0 -0
  268. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_refresh_warning.py +0 -0
  269. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_result_info.py +0 -0
  270. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_results_api.py +0 -0
  271. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_results_format_query.py +0 -0
  272. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_saved_queries_api.py +0 -0
  273. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_saved_query_detail.py +0 -0
  274. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_saved_query_summary.py +0 -0
  275. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_saved_query_version_info.py +0 -0
  276. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_schema_refresh_result.py +0 -0
  277. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_secret_metadata_response.py +0 -0
  278. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_secrets_api.py +0 -0
  279. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_submit_job_response.py +0 -0
  280. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_table_info.py +0 -0
  281. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_table_profile_response.py +0 -0
  282. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_table_refresh_error.py +0 -0
  283. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_table_refresh_result.py +0 -0
  284. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_temporal_profile_detail.py +0 -0
  285. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_text_profile_detail.py +0 -0
  286. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_update_embedding_provider_request.py +0 -0
  287. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_update_embedding_provider_response.py +0 -0
  288. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_update_saved_query_request.py +0 -0
  289. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_update_secret_request.py +0 -0
  290. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_update_secret_response.py +0 -0
  291. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_upload_info.py +0 -0
  292. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_upload_response.py +0 -0
  293. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_upload_session_response.py +0 -0
  294. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_uploads_api.py +0 -0
  295. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_upsert_database_context_request.py +0 -0
  296. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_upsert_database_context_response.py +0 -0
  297. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_usage_api.py +0 -0
  298. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_workspace_detail.py +0 -0
  299. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_workspace_list_item.py +0 -0
  300. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_workspace_usage_response.py +0 -0
  301. {hotdata-0.7.0 → hotdata-0.8.0}/test/test_workspaces_api.py +0 -0
  302. {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_arrow.py +0 -0
  303. {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_auth.py +0 -0
  304. {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_query.py +0 -0
  305. {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_retry.py +0 -0
  306. {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_update_changelog.py +0 -0
  307. {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_upload_codex_fixes.py +0 -0
  308. {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_upload_multipart_resilient.py +0 -0
  309. {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_upload_parity_fixes.py +0 -0
  310. {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_upload_resilient.py +0 -0
  311. {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_upload_retry_policy.py +0 -0
  312. {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_upload_watchdog.py +0 -0
  313. {hotdata-0.7.0 → hotdata-0.8.0}/tests/test_uploads.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hotdata
3
- Version: 0.7.0
3
+ Version: 0.8.0
4
4
  Summary: Hotdata API
5
5
  Author-email: Hotdata <developers@hotdata.dev>
6
6
  License: MIT
@@ -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`, `datasets`, 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
+ 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`, `datasets`, 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
+ 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`, `datasets`, 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
+ 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`, `datasets`, or `information_schema`. Defaults to `default` when omitted, so `default.main.<table>` keeps working.")
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 and dataset data, plus un-consumed uploads, connection caches, and search-index artifacts.")
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
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hotdata
3
- Version: 0.7.0
3
+ Version: 0.8.0
4
4
  Summary: Hotdata API
5
5
  Author-email: Hotdata <developers@hotdata.dev>
6
6
  License: MIT