databay-cli 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (403) hide show
  1. databay/__init__.py +5 -0
  2. databay/__main__.py +7 -0
  3. databay/agent_skill.py +184 -0
  4. databay/api.py +626 -0
  5. databay/cli/__init__.py +0 -0
  6. databay/cli/auth.py +377 -0
  7. databay/cli/build.py +89 -0
  8. databay/cli/commands/__init__.py +0 -0
  9. databay/cli/commands/alerting_webhook.py +19 -0
  10. databay/cli/commands/alerting_webhook_tag.py +14 -0
  11. databay/cli/commands/alerting_webhook_type.py +14 -0
  12. databay/cli/commands/alerting_webhook_undelivered.py +15 -0
  13. databay/cli/commands/announcement.py +17 -0
  14. databay/cli/commands/api_key.py +18 -0
  15. databay/cli/commands/api_key_project.py +16 -0
  16. databay/cli/commands/backfill_reason_code.py +14 -0
  17. databay/cli/commands/backfill_run.py +17 -0
  18. databay/cli/commands/canvas.py +16 -0
  19. databay/cli/commands/canvas_graph.py +15 -0
  20. databay/cli/commands/canvas_table_check.py +15 -0
  21. databay/cli/commands/dashboards.py +21 -0
  22. databay/cli/commands/dashboards_card.py +20 -0
  23. databay/cli/commands/dashboards_dataset.py +14 -0
  24. databay/cli/commands/dashboards_folder.py +16 -0
  25. databay/cli/commands/dashboards_home.py +17 -0
  26. databay/cli/commands/dashboards_placement.py +16 -0
  27. databay/cli/commands/db.py +19 -0
  28. databay/cli/commands/db_column.py +14 -0
  29. databay/cli/commands/docs_article.py +16 -0
  30. databay/cli/commands/dq_result.py +14 -0
  31. databay/cli/commands/dq_rule.py +16 -0
  32. databay/cli/commands/feature.py +14 -0
  33. databay/cli/commands/google_ads_source.py +14 -0
  34. databay/cli/commands/google_analytics_source.py +14 -0
  35. databay/cli/commands/instagram_account.py +14 -0
  36. databay/cli/commands/instagram_source.py +14 -0
  37. databay/cli/commands/linkedin_account.py +14 -0
  38. databay/cli/commands/linkedin_source.py +14 -0
  39. databay/cli/commands/me.py +14 -0
  40. databay/cli/commands/meta_ads_source.py +14 -0
  41. databay/cli/commands/metric_models.py +26 -0
  42. databay/cli/commands/metrics.py +14 -0
  43. databay/cli/commands/models.py +16 -0
  44. databay/cli/commands/nlq.py +15 -0
  45. databay/cli/commands/notebook_credential.py +16 -0
  46. databay/cli/commands/org.py +14 -0
  47. databay/cli/commands/org_member.py +17 -0
  48. databay/cli/commands/org_offboarding.py +14 -0
  49. databay/cli/commands/pipe.py +26 -0
  50. databay/cli/commands/pipe_backfill_run.py +14 -0
  51. databay/cli/commands/pipe_config_option.py +14 -0
  52. databay/cli/commands/pipe_destination.py +16 -0
  53. databay/cli/commands/pipe_leftover.py +16 -0
  54. databay/cli/commands/pipe_sink_type.py +14 -0
  55. databay/cli/commands/pipe_source_type.py +14 -0
  56. databay/cli/commands/pipe_status_bucket.py +14 -0
  57. databay/cli/commands/pipe_stuck_delete.py +14 -0
  58. databay/cli/commands/plan.py +14 -0
  59. databay/cli/commands/project.py +21 -0
  60. databay/cli/commands/project_budget.py +15 -0
  61. databay/cli/commands/project_member.py +18 -0
  62. databay/cli/commands/project_privilege.py +16 -0
  63. databay/cli/commands/project_share.py +16 -0
  64. databay/cli/commands/provision.py +14 -0
  65. databay/cli/commands/provisioning.py +14 -0
  66. databay/cli/commands/registry.py +14 -0
  67. databay/cli/commands/resource_home.py +14 -0
  68. databay/cli/commands/schema_change.py +18 -0
  69. databay/cli/commands/schema_history.py +17 -0
  70. databay/cli/commands/schema_version.py +16 -0
  71. databay/cli/commands/shopify_store.py +14 -0
  72. databay/cli/commands/sink_data_type.py +14 -0
  73. databay/cli/commands/source.py +24 -0
  74. databay/cli/commands/source_catalog.py +15 -0
  75. databay/cli/commands/source_check_run.py +17 -0
  76. databay/cli/commands/source_hidden_type.py +14 -0
  77. databay/cli/commands/source_name.py +14 -0
  78. databay/cli/commands/source_pipe.py +14 -0
  79. databay/cli/commands/source_publication.py +16 -0
  80. databay/cli/commands/source_readiness_override.py +15 -0
  81. databay/cli/commands/source_setup_choice.py +16 -0
  82. databay/cli/commands/source_stream.py +15 -0
  83. databay/cli/commands/source_table.py +14 -0
  84. databay/cli/commands/ssbi_job.py +18 -0
  85. databay/cli/commands/transform_type.py +14 -0
  86. databay/cli/commands/usage.py +14 -0
  87. databay/cli/commands/warehouse.py +21 -0
  88. databay/cli/commands/warehouse_access_assignment.py +16 -0
  89. databay/cli/commands/warehouse_access_role.py +22 -0
  90. databay/cli/commands/warehouse_access_settings.py +17 -0
  91. databay/cli/commands/warehouse_login.py +20 -0
  92. databay/cli/commands/warehouse_principal.py +17 -0
  93. databay/cli/commands/warehouse_service_account.py +17 -0
  94. databay/cli/commands/warehouse_service_account_credential.py +18 -0
  95. databay/cli/common.py +93 -0
  96. databay/cli/console.py +121 -0
  97. databay/cli/flags.py +183 -0
  98. databay/cli/handwritten.py +22 -0
  99. databay/cli/main.py +198 -0
  100. databay/cli/metrics.py +171 -0
  101. databay/cli/org.py +193 -0
  102. databay/cli/output.py +134 -0
  103. databay/cli/pipe_wait.py +357 -0
  104. databay/cli/profile.py +230 -0
  105. databay/cli/runner.py +432 -0
  106. databay/cli/skill.py +64 -0
  107. databay/cli/sql.py +84 -0
  108. databay/compat.py +161 -0
  109. databay/credentials.py +217 -0
  110. databay/error_catalog.py +226 -0
  111. databay/error_codes.py +3265 -0
  112. databay/errors.py +222 -0
  113. databay/feature_header.py +40 -0
  114. databay/invoke.py +225 -0
  115. databay/locks.py +41 -0
  116. databay/login_flow.py +245 -0
  117. databay/model_base.py +40 -0
  118. databay/models/__init__.py +0 -0
  119. databay/models/alerting_webhook.py +46 -0
  120. databay/models/alerting_webhook_tag.py +11 -0
  121. databay/models/alerting_webhook_type.py +11 -0
  122. databay/models/alerting_webhook_undelivered.py +23 -0
  123. databay/models/announcement.py +37 -0
  124. databay/models/api_key.py +81 -0
  125. databay/models/api_key_project.py +29 -0
  126. databay/models/backfill_reason_code.py +11 -0
  127. databay/models/backfill_run.py +41 -0
  128. databay/models/canvas.py +68 -0
  129. databay/models/canvas_graph.py +86 -0
  130. databay/models/canvas_table_check.py +181 -0
  131. databay/models/dashboards.py +79 -0
  132. databay/models/dashboards_card.py +37 -0
  133. databay/models/dashboards_dataset.py +27 -0
  134. databay/models/dashboards_folder.py +18 -0
  135. databay/models/dashboards_home.py +28 -0
  136. databay/models/db.py +34 -0
  137. databay/models/db_column.py +11 -0
  138. databay/models/docs_article.py +59 -0
  139. databay/models/dq_result.py +27 -0
  140. databay/models/dq_rule.py +43 -0
  141. databay/models/feature.py +15 -0
  142. databay/models/google_ads_source.py +11 -0
  143. databay/models/google_analytics_source.py +11 -0
  144. databay/models/instagram_source.py +11 -0
  145. databay/models/linkedin_source.py +11 -0
  146. databay/models/me.py +71 -0
  147. databay/models/meta_ads_source.py +11 -0
  148. databay/models/metric_models.py +274 -0
  149. databay/models/metrics.py +158 -0
  150. databay/models/models.py +73 -0
  151. databay/models/nlq.py +92 -0
  152. databay/models/notebook_credential.py +51 -0
  153. databay/models/org.py +44 -0
  154. databay/models/org_member.py +123 -0
  155. databay/models/org_offboarding.py +36 -0
  156. databay/models/pipe.py +340 -0
  157. databay/models/pipe_config_option.py +25 -0
  158. databay/models/pipe_destination.py +128 -0
  159. databay/models/pipe_leftover.py +51 -0
  160. databay/models/pipe_sink_type.py +11 -0
  161. databay/models/pipe_source_type.py +11 -0
  162. databay/models/pipe_status_bucket.py +13 -0
  163. databay/models/pipe_stuck_delete.py +25 -0
  164. databay/models/plan.py +37 -0
  165. databay/models/project.py +154 -0
  166. databay/models/project_budget.py +22 -0
  167. databay/models/project_member.py +67 -0
  168. databay/models/project_privilege.py +21 -0
  169. databay/models/project_share.py +76 -0
  170. databay/models/provision.py +12 -0
  171. databay/models/provisioning.py +20 -0
  172. databay/models/registry.py +18 -0
  173. databay/models/resource_home.py +35 -0
  174. databay/models/schema_change.py +96 -0
  175. databay/models/schema_history.py +32 -0
  176. databay/models/schema_version.py +23 -0
  177. databay/models/shared.py +875 -0
  178. databay/models/shopify_store.py +19 -0
  179. databay/models/sink_data_type.py +11 -0
  180. databay/models/source.py +263 -0
  181. databay/models/source_catalog.py +82 -0
  182. databay/models/source_check_run.py +63 -0
  183. databay/models/source_hidden_type.py +13 -0
  184. databay/models/source_name.py +18 -0
  185. databay/models/source_pipe.py +16 -0
  186. databay/models/source_publication.py +30 -0
  187. databay/models/source_readiness_override.py +13 -0
  188. databay/models/source_setup_choice.py +33 -0
  189. databay/models/source_stream.py +65 -0
  190. databay/models/source_table.py +27 -0
  191. databay/models/sql.py +31 -0
  192. databay/models/ssbi_job.py +97 -0
  193. databay/models/transform_type.py +40 -0
  194. databay/models/usage.py +112 -0
  195. databay/models/warehouse.py +38 -0
  196. databay/models/warehouse_access_assignment.py +70 -0
  197. databay/models/warehouse_access_role.py +148 -0
  198. databay/models/warehouse_access_settings.py +35 -0
  199. databay/models/warehouse_login.py +20 -0
  200. databay/models/warehouse_principal.py +49 -0
  201. databay/models/warehouse_service_account.py +35 -0
  202. databay/models/warehouse_service_account_credential.py +11 -0
  203. databay/oidc.py +205 -0
  204. databay/operation.py +191 -0
  205. databay/operations/__init__.py +0 -0
  206. databay/operations/alerting_webhook.py +317 -0
  207. databay/operations/alerting_webhook_tag.py +35 -0
  208. databay/operations/alerting_webhook_type.py +35 -0
  209. databay/operations/alerting_webhook_undelivered.py +74 -0
  210. databay/operations/announcement.py +135 -0
  211. databay/operations/api_key.py +198 -0
  212. databay/operations/api_key_project.py +130 -0
  213. databay/operations/backfill_reason_code.py +35 -0
  214. databay/operations/backfill_run.py +245 -0
  215. databay/operations/canvas.py +136 -0
  216. databay/operations/canvas_graph.py +102 -0
  217. databay/operations/canvas_table_check.py +101 -0
  218. databay/operations/dashboards.py +441 -0
  219. databay/operations/dashboards_card.py +406 -0
  220. databay/operations/dashboards_dataset.py +50 -0
  221. databay/operations/dashboards_folder.py +146 -0
  222. databay/operations/dashboards_home.py +176 -0
  223. databay/operations/dashboards_placement.py +152 -0
  224. databay/operations/db.py +337 -0
  225. databay/operations/db_column.py +57 -0
  226. databay/operations/docs_article.py +101 -0
  227. databay/operations/dq_result.py +43 -0
  228. databay/operations/dq_rule.py +155 -0
  229. databay/operations/feature.py +35 -0
  230. databay/operations/google_ads_source.py +40 -0
  231. databay/operations/google_analytics_source.py +40 -0
  232. databay/operations/instagram_account.py +47 -0
  233. databay/operations/instagram_source.py +40 -0
  234. databay/operations/linkedin_account.py +47 -0
  235. databay/operations/linkedin_source.py +40 -0
  236. databay/operations/me.py +57 -0
  237. databay/operations/meta_ads_source.py +40 -0
  238. databay/operations/metric_models.py +612 -0
  239. databay/operations/metrics.py +218 -0
  240. databay/operations/models.py +123 -0
  241. databay/operations/nlq.py +100 -0
  242. databay/operations/notebook_credential.py +95 -0
  243. databay/operations/org.py +79 -0
  244. databay/operations/org_member.py +192 -0
  245. databay/operations/org_offboarding.py +43 -0
  246. databay/operations/pipe.py +882 -0
  247. databay/operations/pipe_backfill_run.py +72 -0
  248. databay/operations/pipe_config_option.py +50 -0
  249. databay/operations/pipe_destination.py +178 -0
  250. databay/operations/pipe_leftover.py +110 -0
  251. databay/operations/pipe_sink_type.py +35 -0
  252. databay/operations/pipe_source_type.py +35 -0
  253. databay/operations/pipe_status_bucket.py +35 -0
  254. databay/operations/pipe_stuck_delete.py +52 -0
  255. databay/operations/plan.py +35 -0
  256. databay/operations/project.py +346 -0
  257. databay/operations/project_budget.py +135 -0
  258. databay/operations/project_member.py +226 -0
  259. databay/operations/project_privilege.py +143 -0
  260. databay/operations/project_share.py +160 -0
  261. databay/operations/provision.py +35 -0
  262. databay/operations/provisioning.py +35 -0
  263. databay/operations/registry.py +35 -0
  264. databay/operations/resource_home.py +80 -0
  265. databay/operations/schema_change.py +222 -0
  266. databay/operations/schema_history.py +136 -0
  267. databay/operations/schema_version.py +115 -0
  268. databay/operations/shopify_store.py +40 -0
  269. databay/operations/sink_data_type.py +43 -0
  270. databay/operations/source.py +1207 -0
  271. databay/operations/source_catalog.py +135 -0
  272. databay/operations/source_check_run.py +242 -0
  273. databay/operations/source_hidden_type.py +59 -0
  274. databay/operations/source_name.py +69 -0
  275. databay/operations/source_pipe.py +57 -0
  276. databay/operations/source_publication.py +139 -0
  277. databay/operations/source_readiness_override.py +96 -0
  278. databay/operations/source_setup_choice.py +161 -0
  279. databay/operations/source_stream.py +99 -0
  280. databay/operations/source_table.py +59 -0
  281. databay/operations/sql.py +54 -0
  282. databay/operations/ssbi_job.py +242 -0
  283. databay/operations/transform_type.py +35 -0
  284. databay/operations/usage.py +35 -0
  285. databay/operations/warehouse.py +343 -0
  286. databay/operations/warehouse_access_assignment.py +179 -0
  287. databay/operations/warehouse_access_role.py +473 -0
  288. databay/operations/warehouse_access_settings.py +172 -0
  289. databay/operations/warehouse_login.py +308 -0
  290. databay/operations/warehouse_principal.py +174 -0
  291. databay/operations/warehouse_service_account.py +206 -0
  292. databay/operations/warehouse_service_account_credential.py +285 -0
  293. databay/paths.py +32 -0
  294. databay/platform_check.py +20 -0
  295. databay/profiles.py +181 -0
  296. databay/redact.py +22 -0
  297. databay/reference.py +218 -0
  298. databay/resource.py +167 -0
  299. databay/resources/__init__.py +0 -0
  300. databay/resources/alerting_webhook.py +84 -0
  301. databay/resources/alerting_webhook_tag.py +21 -0
  302. databay/resources/alerting_webhook_type.py +21 -0
  303. databay/resources/alerting_webhook_undelivered.py +35 -0
  304. databay/resources/announcement.py +45 -0
  305. databay/resources/api_key.py +56 -0
  306. databay/resources/api_key_project.py +47 -0
  307. databay/resources/backfill_reason_code.py +21 -0
  308. databay/resources/backfill_run.py +78 -0
  309. databay/resources/canvas.py +43 -0
  310. databay/resources/canvas_graph.py +38 -0
  311. databay/resources/canvas_table_check.py +38 -0
  312. databay/resources/dashboards.py +105 -0
  313. databay/resources/dashboards_card.py +97 -0
  314. databay/resources/dashboards_dataset.py +27 -0
  315. databay/resources/dashboards_folder.py +47 -0
  316. databay/resources/dashboards_home.py +59 -0
  317. databay/resources/dashboards_placement.py +47 -0
  318. databay/resources/db.py +87 -0
  319. databay/resources/db_column.py +28 -0
  320. databay/resources/docs_article.py +37 -0
  321. databay/resources/dq_result.py +25 -0
  322. databay/resources/dq_rule.py +48 -0
  323. databay/resources/feature.py +21 -0
  324. databay/resources/google_ads_source.py +25 -0
  325. databay/resources/google_analytics_source.py +25 -0
  326. databay/resources/instagram_account.py +27 -0
  327. databay/resources/instagram_source.py +25 -0
  328. databay/resources/linkedin_account.py +27 -0
  329. databay/resources/linkedin_source.py +25 -0
  330. databay/resources/me.py +27 -0
  331. databay/resources/meta_ads_source.py +25 -0
  332. databay/resources/metric_models.py +154 -0
  333. databay/resources/metrics.py +57 -0
  334. databay/resources/models.py +42 -0
  335. databay/resources/nlq.py +34 -0
  336. databay/resources/notebook_credential.py +41 -0
  337. databay/resources/org.py +29 -0
  338. databay/resources/org_member.py +53 -0
  339. databay/resources/org_offboarding.py +25 -0
  340. databay/resources/pipe.py +208 -0
  341. databay/resources/pipe_backfill_run.py +28 -0
  342. databay/resources/pipe_config_option.py +26 -0
  343. databay/resources/pipe_destination.py +49 -0
  344. databay/resources/pipe_leftover.py +42 -0
  345. databay/resources/pipe_sink_type.py +21 -0
  346. databay/resources/pipe_source_type.py +21 -0
  347. databay/resources/pipe_status_bucket.py +21 -0
  348. databay/resources/pipe_stuck_delete.py +27 -0
  349. databay/resources/plan.py +21 -0
  350. databay/resources/project.py +92 -0
  351. databay/resources/project_budget.py +38 -0
  352. databay/resources/project_member.py +68 -0
  353. databay/resources/project_privilege.py +48 -0
  354. databay/resources/project_share.py +47 -0
  355. databay/resources/provision.py +21 -0
  356. databay/resources/provisioning.py +21 -0
  357. databay/resources/registry.py +21 -0
  358. databay/resources/resource_home.py +29 -0
  359. databay/resources/schema_change.py +62 -0
  360. databay/resources/schema_history.py +52 -0
  361. databay/resources/schema_version.py +43 -0
  362. databay/resources/shopify_store.py +25 -0
  363. databay/resources/sink_data_type.py +25 -0
  364. databay/resources/source.py +132 -0
  365. databay/resources/source_catalog.py +34 -0
  366. databay/resources/source_check_run.py +67 -0
  367. databay/resources/source_hidden_type.py +25 -0
  368. databay/resources/source_name.py +27 -0
  369. databay/resources/source_pipe.py +28 -0
  370. databay/resources/source_publication.py +47 -0
  371. databay/resources/source_readiness_override.py +37 -0
  372. databay/resources/source_setup_choice.py +50 -0
  373. databay/resources/source_stream.py +38 -0
  374. databay/resources/source_table.py +27 -0
  375. databay/resources/sql.py +27 -0
  376. databay/resources/ssbi_job.py +69 -0
  377. databay/resources/transform_type.py +21 -0
  378. databay/resources/usage.py +21 -0
  379. databay/resources/warehouse.py +136 -0
  380. databay/resources/warehouse_access_assignment.py +51 -0
  381. databay/resources/warehouse_access_role.py +118 -0
  382. databay/resources/warehouse_access_settings.py +56 -0
  383. databay/resources/warehouse_login.py +81 -0
  384. databay/resources/warehouse_principal.py +51 -0
  385. databay/resources/warehouse_service_account.py +61 -0
  386. databay/resources/warehouse_service_account_credential.py +78 -0
  387. databay/sdk.py +77 -0
  388. databay/settings.py +90 -0
  389. databay/skill/SKILL.md +357 -0
  390. databay/skill/references/commands.md +7025 -0
  391. databay/skill/references/errors.md +727 -0
  392. databay/spec.py +362 -0
  393. databay/stored_token.py +134 -0
  394. databay/tokens.py +108 -0
  395. databay/transport.py +357 -0
  396. databay/update_check.py +151 -0
  397. databay/version.py +6 -0
  398. databay/waits.py +330 -0
  399. databay_cli-0.1.0.dist-info/METADATA +42 -0
  400. databay_cli-0.1.0.dist-info/RECORD +403 -0
  401. databay_cli-0.1.0.dist-info/WHEEL +4 -0
  402. databay_cli-0.1.0.dist-info/entry_points.txt +2 -0
  403. databay_cli-0.1.0.dist-info/licenses/LICENSE +202 -0
@@ -0,0 +1,128 @@
1
+ """Models of the ``pipe_destination`` noun.
2
+
3
+ Generated by python/tools/gen_client.py from contract/core.json; do not edit.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from datetime import datetime
9
+
10
+ from databay.model_base import OpenStrEnum, RequestModel, ResponseModel
11
+ from databay.models.shared import PipeDestinationUnavailableCode, SyncMode
12
+
13
+
14
+ class DestinationPreviewWarningCode(OpenStrEnum):
15
+ KEY_MISSING = 'key_missing'
16
+ NULLABLE_KEY_COLUMN = 'nullable_key_column'
17
+ KEY_NOT_KNOWN_UNIQUE = 'key_not_known_unique'
18
+ UNKNOWN_KEY_COLUMN = 'unknown_key_column'
19
+ REPLICA_IDENTITY_MISSING = 'replica_identity_missing'
20
+
21
+
22
+ class DestinationPreviewKeyCandidateKind(OpenStrEnum):
23
+ PRIMARY_KEY = 'primary_key'
24
+ UNIQUE_CONSTRAINT = 'unique_constraint'
25
+ UNIQUE_INDEX = 'unique_index'
26
+
27
+
28
+ class DestinationPreviewResponsePrimaryKeySource(OpenStrEnum):
29
+ USER = 'user'
30
+ SOURCE = 'source'
31
+ NONE = 'none'
32
+ NOT_APPLICABLE = 'not_applicable'
33
+
34
+
35
+ class PipeDestinationResponseLastChangeAtBasis(OpenStrEnum):
36
+ SOURCE_COMMIT = 'source_commit'
37
+ WAREHOUSE_WRITE = 'warehouse_write'
38
+ DLT_LOAD = 'dlt_load'
39
+ EXTRACT_START = 'extract_start'
40
+
41
+
42
+ class DestinationCheckTable(RequestModel):
43
+ columns: list[str] | None = None
44
+ dest_table_name: str
45
+ masked: list[str] | None = None
46
+ primary_key: list[str] | None = None
47
+ schema_name: str = ''
48
+ sync_mode: SyncMode = 'incremental_deduped_history'
49
+ table_name: str
50
+
51
+
52
+ class DestinationCheckRequest(RequestModel):
53
+ sink_db_uuid: str
54
+ source_id: str
55
+ tables: list[DestinationCheckTable]
56
+
57
+
58
+ class DestinationCheckResult(ResponseModel):
59
+ dest_table_name: str
60
+ exists: bool
61
+ problem: str | None = None
62
+
63
+
64
+ class DestinationCheckResponse(ResponseModel):
65
+ results: list[DestinationCheckResult]
66
+
67
+
68
+ class DestinationPreviewColumn(ResponseModel):
69
+ masked_sink_type: str
70
+ sink_recommended_column_type: str
71
+ sink_type_is_fallback: bool = False
72
+ src_column_is_nullable: bool
73
+ src_column_is_primary_key: bool = False
74
+ src_column_name: str
75
+ src_column_primary_key_ordinal: int | None = None
76
+ src_column_type: str
77
+
78
+
79
+ class DestinationPreviewKeyCandidate(ResponseModel):
80
+ all_non_nullable: bool
81
+ columns: list[str]
82
+ kind: DestinationPreviewKeyCandidateKind
83
+
84
+
85
+ class DestinationPreviewWarning(ResponseModel):
86
+ blocking: bool = False
87
+ code: DestinationPreviewWarningCode
88
+ columns: list[str] | None = None
89
+ message: str
90
+
91
+
92
+ class DestinationPreviewResponse(ResponseModel):
93
+ columns: list[DestinationPreviewColumn] | None = None
94
+ deduplicates_on_key: bool = False
95
+ dest_database: str | None = None
96
+ dest_table: str | None = None
97
+ effective_primary_key: list[str] | None = None
98
+ engine: str | None = None
99
+ is_deleted_column: str | None = None
100
+ key_candidates: list[DestinationPreviewKeyCandidate] | None = None
101
+ key_required: bool
102
+ order_by: list[str] | None = None
103
+ primary_key_source: DestinationPreviewResponsePrimaryKeySource = 'not_applicable'
104
+ requires_final: bool = False
105
+ source_primary_key: list[str] | None = None
106
+ version_column: str | None = None
107
+ warnings: list[DestinationPreviewWarning] | None = None
108
+
109
+
110
+ class PipeDestinationResponse(ResponseModel):
111
+ as_of: datetime
112
+ compressed_bytes: int | None = None
113
+ destination_table_exists: bool | None = None
114
+ freshness_available: bool
115
+ lag_seconds: float | None = None
116
+ last_change_at: datetime | None = None
117
+ last_change_at_basis: PipeDestinationResponseLastChangeAtBasis | None = None
118
+ pipe_uuid: str
119
+ remediation: str | None = None
120
+ retriable: bool | None = None
121
+ rows_are_deduplicated: bool = False
122
+ stats_unavailable: bool = False
123
+ stored_rows: int | None = None
124
+ support_ref: str | None = None
125
+ unavailable_code: PipeDestinationUnavailableCode | None = None
126
+ unavailable_message: str | None = None
127
+ uncompressed_bytes: int | None = None
128
+ volume_available: bool
@@ -0,0 +1,51 @@
1
+ """Models of the ``pipe_leftover`` noun.
2
+
3
+ Generated by python/tools/gen_client.py from contract/core.json; do not edit.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from datetime import datetime
9
+
10
+ from databay.model_base import OpenStrEnum, ResponseModel
11
+
12
+
13
+ class LeftoverKind(OpenStrEnum):
14
+ REPLICATION_SLOT = 'replication_slot'
15
+ PUBLICATION = 'publication'
16
+ DESTINATION_TABLE = 'destination_table'
17
+ SHADOW_TABLE = 'shadow_table'
18
+
19
+
20
+ class LeftoverReason(OpenStrEnum):
21
+ SOURCE_GONE = 'source_gone'
22
+ SOURCE_AUTH_FAILED = 'source_auth_failed'
23
+ RETRIES_EXHAUSTED = 'retries_exhausted'
24
+ NOT_OWNED = 'not_owned'
25
+ IN_USE = 'in_use'
26
+ TABLE_KEPT = 'table_kept'
27
+
28
+
29
+ class PipeLeftoverOut(ResponseModel):
30
+ created_at: datetime
31
+ drop_sql: str | None
32
+ id: str
33
+ kind: LeftoverKind
34
+ object_name: str
35
+ pipe_uuid: str
36
+ project_id: str
37
+ reason: LeftoverReason
38
+ sink_db_uuid: str | None
39
+ source_host: str | None
40
+ source_id: str | None
41
+ source_name: str | None
42
+ table: str
43
+
44
+
45
+ class PipeLeftoverList(ResponseModel):
46
+ items: list[PipeLeftoverOut]
47
+
48
+
49
+ class PipeLeftoverResult(ResponseModel):
50
+ leftover: PipeLeftoverOut
51
+ resolved: bool
@@ -0,0 +1,11 @@
1
+ """Models of the ``pipe_sink_type`` noun.
2
+
3
+ Generated by python/tools/gen_client.py from contract/core.json; do not edit.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+
9
+
10
+
11
+ PipeSinkTypeListResponse = list[str]
@@ -0,0 +1,11 @@
1
+ """Models of the ``pipe_source_type`` noun.
2
+
3
+ Generated by python/tools/gen_client.py from contract/core.json; do not edit.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+
9
+
10
+
11
+ PipeSourceTypeListResponse = list[str]
@@ -0,0 +1,13 @@
1
+ """Models of the ``pipe_status_bucket`` noun.
2
+
3
+ Generated by python/tools/gen_client.py from contract/core.json; do not edit.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from databay.model_base import ResponseModel
9
+
10
+
11
+ class PipeStatusBucketMap(ResponseModel):
12
+ buckets: list[str]
13
+ by_status: dict[str, str]
@@ -0,0 +1,25 @@
1
+ """Models of the ``pipe_stuck_delete`` noun.
2
+
3
+ Generated by python/tools/gen_client.py from contract/core.json; do not edit.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from datetime import datetime
9
+
10
+ from databay.model_base import ResponseModel
11
+
12
+
13
+ class StuckDeleteOut(ResponseModel):
14
+ deleted_at: datetime
15
+ dest_table_name: str | None
16
+ pipe_uuid: str
17
+ project_id: str
18
+ schema_name: str | None
19
+ sink_db_uuid: str
20
+ source_id: str
21
+ table_name: str | None
22
+
23
+
24
+ class StuckDeleteList(ResponseModel):
25
+ items: list[StuckDeleteOut]
databay/models/plan.py ADDED
@@ -0,0 +1,37 @@
1
+ """Models of the ``plan`` noun.
2
+
3
+ Generated by python/tools/gen_client.py from contract/core.json; do not edit.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from databay.model_base import ResponseModel
9
+
10
+
11
+ class PublicLimit(ResponseModel):
12
+ limit: int | None = None
13
+ unit: str
14
+ unlimited: bool = False
15
+
16
+
17
+ class PublicPrice(ResponseModel):
18
+ amount: str
19
+ currency: str
20
+ minor: int
21
+ period: str
22
+
23
+
24
+ class PublicPlan(ResponseModel):
25
+ features: list[str]
26
+ key: str
27
+ label: str
28
+ limits: dict[str, PublicLimit]
29
+ paid: bool
30
+ price: PublicPrice | None = None
31
+ sort_order: int
32
+ upgrade_cta: bool
33
+ version: int
34
+
35
+
36
+ class PublicPlans(ResponseModel):
37
+ plans: list[PublicPlan]
@@ -0,0 +1,154 @@
1
+ """Models of the ``project`` noun.
2
+
3
+ Generated by python/tools/gen_client.py from contract/core.json; do not edit.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from pydantic import Field
9
+
10
+ from databay.model_base import OpenStrEnum, RequestModel, ResponseModel
11
+
12
+
13
+ class OwnedResourceRelation(OpenStrEnum):
14
+ HOME = 'home'
15
+ SHARED = 'shared'
16
+ ORG_SHARED = 'org_shared'
17
+
18
+
19
+ class OwnedResourceType(OpenStrEnum):
20
+ WAREHOUSE = 'warehouse'
21
+ SOURCE = 'source'
22
+
23
+
24
+ class MyAccessRole(OpenStrEnum):
25
+ VIEWER = 'viewer'
26
+ EDITOR = 'editor'
27
+ ADMIN = 'admin'
28
+
29
+
30
+ class ProjectAccess(OpenStrEnum):
31
+ RESTRICTED = 'restricted'
32
+ ORGANIZATION = 'organization'
33
+
34
+
35
+ class ProjectNewColumnsDefault(OpenStrEnum):
36
+ ADD = 'add'
37
+ ASK = 'ask'
38
+
39
+
40
+ class ProjectRole(OpenStrEnum):
41
+ VIEWER = 'viewer'
42
+ EDITOR = 'editor'
43
+ ADMIN = 'admin'
44
+
45
+
46
+ class ProjectStatus(OpenStrEnum):
47
+ ACTIVE = 'active'
48
+ DELETING = 'deleting'
49
+
50
+
51
+ class ProjectCreateAccess(OpenStrEnum):
52
+ RESTRICTED = 'restricted'
53
+ ORGANIZATION = 'organization'
54
+
55
+
56
+ class ProjectUpdateAccess(OpenStrEnum):
57
+ RESTRICTED = 'restricted'
58
+ ORGANIZATION = 'organization'
59
+
60
+
61
+ class ProjectUpdateNewColumnsDefault(OpenStrEnum):
62
+ ADD = 'add'
63
+ ASK = 'ask'
64
+
65
+
66
+ class AccessCapabilities(ResponseModel):
67
+ admin: bool
68
+ edit: bool
69
+ model_publish_: bool = Field(alias='model_publish')
70
+ model_write_: bool = Field(alias='model_write')
71
+ view: bool
72
+
73
+
74
+ class Capabilities(ResponseModel):
75
+ admin: bool
76
+ edit: bool
77
+ view: bool
78
+
79
+
80
+ class ManifestDraft(ResponseModel):
81
+ item_id: str
82
+ sink_db_uuid: str | None = None
83
+ source_id: str | None = None
84
+
85
+
86
+ class ManifestPipe(ResponseModel):
87
+ id: str
88
+ sink_db_uuid: str | None = None
89
+ source_id: str | None = None
90
+ status: str
91
+
92
+
93
+ class OwnedResource(ResponseModel):
94
+ id: str
95
+ relation: OwnedResourceRelation
96
+ type: OwnedResourceType
97
+
98
+
99
+ class DeleteManifest(ResponseModel):
100
+ blockers: list[str]
101
+ dashboard_folders: int = 0
102
+ dashboards: int = 0
103
+ drafts: list[ManifestDraft]
104
+ gains_count: int | None = 0
105
+ owned_resources: list[OwnedResource]
106
+ pipes: list[ManifestPipe]
107
+ project_id: str
108
+ required_services: list[str]
109
+ target_project_id: str | None
110
+ transformations: int = 0
111
+ users_losing_access: list[str]
112
+ version: int
113
+ webhooks: int = 0
114
+
115
+
116
+ class DeleteRetry(ResponseModel):
117
+ acknowledged_services: list[str]
118
+ attempt: int
119
+ manifest_version: int
120
+ pending_services: list[str]
121
+ project_id: str
122
+
123
+
124
+ class MyAccess(ResponseModel):
125
+ capabilities: AccessCapabilities
126
+ project_id: str
127
+ role: MyAccessRole
128
+
129
+
130
+ class Project(ResponseModel):
131
+ access: ProjectAccess
132
+ capabilities: Capabilities
133
+ id: str
134
+ is_general: bool
135
+ name: str
136
+ new_columns_default: ProjectNewColumnsDefault
137
+ revision: int
138
+ role: ProjectRole | None
139
+ status: ProjectStatus
140
+ status_changed_at: str | None = None
141
+
142
+
143
+ class ProjectCreate(RequestModel):
144
+ access: ProjectCreateAccess = 'restricted'
145
+ name: str
146
+
147
+
148
+ class ProjectUpdate(RequestModel):
149
+ access: ProjectUpdateAccess | None = None
150
+ name: str | None = None
151
+ new_columns_default: ProjectUpdateNewColumnsDefault | None = None
152
+
153
+
154
+ ProjectListResponse = list[Project]
@@ -0,0 +1,22 @@
1
+ """Models of the ``project_budget`` noun.
2
+
3
+ Generated by python/tools/gen_client.py from contract/core.json; do not edit.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from databay.model_base import RequestModel, ResponseModel
9
+ from databay.models.shared import Meter
10
+
11
+
12
+ class BudgetPut(RequestModel):
13
+ confirm_pause: bool = False
14
+ limit: int | None = None
15
+ meter: Meter
16
+
17
+
18
+ class ProjectBudgetsView(ResponseModel):
19
+ allowed_meters: list[Meter]
20
+ budgets: dict[str, int]
21
+ project_id: str
22
+ usage: dict[str, int]
@@ -0,0 +1,67 @@
1
+ """Models of the ``project_member`` noun.
2
+
3
+ Generated by python/tools/gen_client.py from contract/core.json; do not edit.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from databay.model_base import OpenStrEnum, RequestModel, ResponseModel
9
+
10
+
11
+ class MemberRole(OpenStrEnum):
12
+ VIEWER = 'viewer'
13
+ EDITOR = 'editor'
14
+ ADMIN = 'admin'
15
+
16
+
17
+ class MemberWriteRole(OpenStrEnum):
18
+ VIEWER = 'viewer'
19
+ EDITOR = 'editor'
20
+ ADMIN = 'admin'
21
+
22
+
23
+ class ProjectPersonMembership(OpenStrEnum):
24
+ VIEWER = 'viewer'
25
+ EDITOR = 'editor'
26
+ ADMIN = 'admin'
27
+
28
+
29
+ class ProjectPersonRole(OpenStrEnum):
30
+ VIEWER = 'viewer'
31
+ EDITOR = 'editor'
32
+ ADMIN = 'admin'
33
+
34
+
35
+ class Member(ResponseModel):
36
+ role: MemberRole
37
+ user_id: str
38
+
39
+
40
+ class MemberCandidate(ResponseModel):
41
+ email: str | None
42
+ id: str
43
+ name: str | None
44
+
45
+
46
+ class MemberSearchOut(ResponseModel):
47
+ members: list[MemberCandidate]
48
+
49
+
50
+ class MemberWrite(RequestModel):
51
+ role: MemberWriteRole
52
+
53
+
54
+ class ProjectPerson(ResponseModel):
55
+ email: str | None
56
+ membership: ProjectPersonMembership | None
57
+ name: str
58
+ role: ProjectPersonRole
59
+ user_id: str
60
+
61
+
62
+ class ProjectPeopleOut(ResponseModel):
63
+ next_first: int | None
64
+ people: list[ProjectPerson]
65
+
66
+
67
+ ProjectMemberListResponse = list[Member]
@@ -0,0 +1,21 @@
1
+ """Models of the ``project_privilege`` noun.
2
+
3
+ Generated by python/tools/gen_client.py from contract/core.json; do not edit.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from databay.model_base import OpenStrEnum, ResponseModel
9
+
10
+
11
+ class MemberPrivilegePrivilege(OpenStrEnum):
12
+ SEMANTIC_MODEL_WRITE = 'semantic.model.write'
13
+ SEMANTIC_MODEL_PUBLISH = 'semantic.model.publish'
14
+
15
+
16
+ class MemberPrivilege(ResponseModel):
17
+ privilege: MemberPrivilegePrivilege
18
+ user_id: str
19
+
20
+
21
+ ProjectPrivilegeListResponse = list[MemberPrivilege]
@@ -0,0 +1,76 @@
1
+ """Models of the ``project_share`` noun.
2
+
3
+ Generated by python/tools/gen_client.py from contract/core.json; do not edit.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from databay.model_base import OpenStrEnum, RequestModel, ResponseModel
9
+ from databay.models.shared import ShareWarning
10
+
11
+
12
+ class BindingRelation(OpenStrEnum):
13
+ HOME = 'home'
14
+ SHARED = 'shared'
15
+ ORG_SHARED = 'org_shared'
16
+
17
+
18
+ class BindingResourceType(OpenStrEnum):
19
+ WAREHOUSE = 'warehouse'
20
+ SOURCE = 'source'
21
+
22
+
23
+ class BindingState(OpenStrEnum):
24
+ ACTIVE = 'active'
25
+ REMOVING = 'removing'
26
+
27
+
28
+ class ShareState(OpenStrEnum):
29
+ ACTIVE = 'active'
30
+ REMOVING = 'removing'
31
+
32
+
33
+ class SharesResourceType(OpenStrEnum):
34
+ WAREHOUSE = 'warehouse'
35
+ SOURCE = 'source'
36
+
37
+
38
+ class UnshareResultResourceType(OpenStrEnum):
39
+ WAREHOUSE = 'warehouse'
40
+ SOURCE = 'source'
41
+
42
+
43
+ class Binding(ResponseModel):
44
+ id: str
45
+ project_id: str | None
46
+ relation: BindingRelation
47
+ resource_id: str
48
+ resource_type: BindingResourceType
49
+ revision: int
50
+ state: BindingState
51
+
52
+
53
+ class Share(ResponseModel):
54
+ hidden: bool
55
+ project_id: str | None
56
+ state: ShareState
57
+
58
+
59
+ class ShareRequest(RequestModel):
60
+ target_project_id: str
61
+
62
+
63
+ class Shares(ResponseModel):
64
+ home_project_id: str | None
65
+ org_shared: bool
66
+ resource_id: str
67
+ resource_type: SharesResourceType
68
+ shares: list[Share]
69
+
70
+
71
+ class UnshareResult(ResponseModel):
72
+ project_id: str
73
+ removed: bool
74
+ resource_id: str
75
+ resource_type: UnshareResultResourceType
76
+ warnings: list[ShareWarning]
@@ -0,0 +1,12 @@
1
+ """Models of the ``provision`` noun.
2
+
3
+ Generated by python/tools/gen_client.py from contract/core.json; do not edit.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from databay.model_base import ResponseModel
9
+
10
+
11
+ class ProvisionDefaultsResponse(ResponseModel):
12
+ clickhouse: bool
@@ -0,0 +1,20 @@
1
+ """Models of the ``provisioning`` noun.
2
+
3
+ Generated by python/tools/gen_client.py from contract/core.json; do not edit.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from databay.model_base import OpenStrEnum, ResponseModel
9
+
10
+
11
+ class ProvisioningStatusResponseDefaultClickhouseDb(OpenStrEnum):
12
+ PENDING = 'pending'
13
+ READY = 'ready'
14
+ FAILED = 'failed'
15
+
16
+
17
+ class ProvisioningStatusResponse(ResponseModel):
18
+ default_clickhouse_db: ProvisioningStatusResponseDefaultClickhouseDb
19
+ errors: dict[str, str]
20
+ ready: bool
@@ -0,0 +1,18 @@
1
+ """Models of the ``registry`` noun.
2
+
3
+ Generated by python/tools/gen_client.py from contract/core.json; do not edit.
4
+ """
5
+
6
+ from __future__ import annotations
7
+
8
+ from databay.model_base import ResponseModel
9
+
10
+
11
+ class RegistryManifestResponse(ResponseModel):
12
+ auth_providers: list[str]
13
+ code_sign_in: bool
14
+ dlt_source_types: list[str]
15
+ features: dict[str, bool]
16
+ ga4_max_properties: int
17
+ ga4_multi_property: bool
18
+ plugins: list[str]