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,19 @@
1
+ """Models of the ``shopify_store`` 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
+ from databay.models.shared import SourceStatus
10
+
11
+
12
+ class ShopifyStoreResponse(ResponseModel):
13
+ scopes: str = ''
14
+ shop_domain: str
15
+ status: SourceStatus
16
+ uuid: str
17
+
18
+
19
+ ShopifyStoreListResponse = list[ShopifyStoreResponse]
@@ -0,0 +1,11 @@
1
+ """Models of the ``sink_data_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
+ SinkDataTypeListResponse = list[str]
@@ -0,0 +1,263 @@
1
+ """Models of the ``source`` 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
+ from typing import Annotated, Any, Literal
10
+
11
+ from pydantic import Field
12
+
13
+ from databay.model_base import OpenStrEnum, RequestModel, ResponseModel
14
+ from databay.models.shared import AuthKind, ConnectedSourceResponse, DependentPipeView, PipeEligibility, PrecheckFixView, PublicationMode, SourceStatus, SourceType
15
+
16
+
17
+ class InstagramConnectedConfigLogin(OpenStrEnum):
18
+ FACEBOOK = 'facebook'
19
+ INSTAGRAM = 'instagram'
20
+
21
+
22
+ class PrecheckCheckViewOwner(OpenStrEnum):
23
+ CUSTOMER = 'customer'
24
+ DBA = 'dba'
25
+ DATABAY = 'databay'
26
+ PROVIDER = 'provider'
27
+
28
+
29
+ class PrecheckCheckViewStatus(OpenStrEnum):
30
+ PASS = 'pass'
31
+ FAIL = 'fail'
32
+ WARN = 'warn'
33
+ UNKNOWN = 'unknown'
34
+ NOT_RUN = 'not_run'
35
+
36
+
37
+ class ReadinessOverrideViewActor(OpenStrEnum):
38
+ SUPPORT = 'support'
39
+ CUSTOMER = 'customer'
40
+
41
+
42
+ class PrecheckReportViewProvider(OpenStrEnum):
43
+ RDS = 'rds'
44
+ CLOUDSQL = 'cloudsql'
45
+ AZURE = 'azure'
46
+ ATLAS = 'atlas'
47
+ SELF_MANAGED = 'self_managed'
48
+ UNKNOWN = 'unknown'
49
+
50
+
51
+ class FileParseSettings(RequestModel):
52
+ delimiter: str | None = None
53
+ encoding: str = 'utf-8'
54
+ header_rows: dict[str, int] | None = None
55
+
56
+
57
+ class FileUploadConnectedConfig(RequestModel):
58
+ settings: FileParseSettings | None = None
59
+ source_type: Literal['file_upload'] = 'file_upload'
60
+
61
+
62
+ class Ga4ConnectedConfig(RequestModel):
63
+ extra_account_ids: list[str] | None = None
64
+ multi_property: bool = False
65
+ property_id: str
66
+ refresh_token: str = ''
67
+ service_account_json: str = ''
68
+ source_type: Literal['ga4'] = 'ga4'
69
+ start_date: str = '2023-01-01'
70
+
71
+
72
+ class GoogleAdsConnectedConfig(RequestModel):
73
+ client_id: str = ''
74
+ client_secret: str = ''
75
+ customer_id: str
76
+ developer_token: str = ''
77
+ login_customer_id: str | None = None
78
+ refresh_token: str
79
+ source_type: Literal['google_ads'] = 'google_ads'
80
+ start_date: str = '2023-01-01'
81
+
82
+
83
+ class InstagramConnectedConfig(RequestModel):
84
+ access_token: str
85
+ account_id: str = ''
86
+ login: InstagramConnectedConfigLogin = 'facebook'
87
+ source_type: Literal['instagram'] = 'instagram'
88
+ start_date: str = '2023-01-01'
89
+
90
+
91
+ class LinkedInPagesConnectedConfig(RequestModel):
92
+ access_token: str
93
+ organization_id: str = ''
94
+ source_type: Literal['linkedin_pages'] = 'linkedin_pages'
95
+ start_date: str = '2023-01-01'
96
+
97
+
98
+ class MSSQLConnectedConfig(RequestModel):
99
+ db_name: str
100
+ host: str
101
+ password: str = ''
102
+ port: int
103
+ source_type: Literal['mssql'] = 'mssql'
104
+ ssl_mode: str = 'disable'
105
+ username: str
106
+
107
+
108
+ class MetaAdsConnectedConfig(RequestModel):
109
+ access_token: str
110
+ account_id: str
111
+ app_id: str = ''
112
+ app_secret: str = ''
113
+ extra_account_ids: list[str] | None = None
114
+ source_type: Literal['meta_ads'] = 'meta_ads'
115
+ start_date: str = '2023-01-01'
116
+
117
+
118
+ class MongoDBConnectedConfig(RequestModel):
119
+ db_name: str
120
+ host: str
121
+ password: str = ''
122
+ port: int
123
+ source_type: Literal['mongodb'] = 'mongodb'
124
+ ssl_mode: str = 'disable'
125
+ username: str
126
+
127
+
128
+ class MySQLConnectedConfig(RequestModel):
129
+ db_name: str
130
+ host: str
131
+ password: str = ''
132
+ port: int
133
+ source_type: Literal['mysql'] = 'mysql'
134
+ ssl_mode: str = 'disable'
135
+ username: str
136
+
137
+
138
+ class PostgresConnectedConfig(RequestModel):
139
+ db_name: str
140
+ host: str
141
+ password: str = ''
142
+ port: int
143
+ source_type: Literal['postgres'] = 'postgres'
144
+ ssl_mode: str = 'disable'
145
+ username: str
146
+
147
+
148
+ class ShopifyConnectedConfig(RequestModel):
149
+ access_token: str
150
+ bulk_window_in_days: int = 30
151
+ source_type: Literal['shopify'] = 'shopify'
152
+ start_date: str = '2020-01-01'
153
+
154
+
155
+ class ConnectedSourceCreate(RequestModel):
156
+ acknowledge_org_visible: bool = False
157
+ allow_incomplete: bool = False
158
+ config: Annotated[PostgresConnectedConfig | MySQLConnectedConfig | MSSQLConnectedConfig | MongoDBConnectedConfig | ShopifyConnectedConfig | MetaAdsConnectedConfig | GoogleAdsConnectedConfig | Ga4ConnectedConfig | InstagramConnectedConfig | LinkedInPagesConnectedConfig | FileUploadConnectedConfig, Field(discriminator='source_type')]
159
+ name: str
160
+ publication_mode: PublicationMode | None = None
161
+
162
+
163
+ class PrecheckCheckView(ResponseModel):
164
+ blocking: bool
165
+ cause: str | None = None
166
+ code: str | None = None
167
+ detail: str
168
+ detail_code: str | None = None
169
+ docs_href: str | None = None
170
+ fixes: list[PrecheckFixView] | None = None
171
+ overridden: bool = False
172
+ owner: PrecheckCheckViewOwner
173
+ requirement_id: str
174
+ retriable: bool = False
175
+ status: PrecheckCheckViewStatus
176
+ support_ref: str | None = None
177
+ title: str
178
+ values: dict[str, str | int] | None = None
179
+ why: str
180
+
181
+
182
+ class ReadinessOverrideView(ResponseModel):
183
+ actor: ReadinessOverrideViewActor
184
+ at: datetime
185
+ by: str
186
+ reason: str
187
+ requirement_ids: list[str]
188
+
189
+
190
+ class PrecheckReportView(ResponseModel):
191
+ checked_at: datetime
192
+ checked_by: str | None = None
193
+ checks: list[PrecheckCheckView]
194
+ override: ReadinessOverrideView | None = None
195
+ provider: PrecheckReportViewProvider
196
+ reachable: bool
197
+ ready: bool
198
+ report_version: int
199
+ run_id: str | None = None
200
+ snapshot_strategy: str | None = None
201
+ source_status: SourceStatus | None = None
202
+ source_type: SourceType
203
+
204
+
205
+ class ConnectedSourceDetailResponse(ResponseModel):
206
+ auth_kind: AuthKind
207
+ binding_status: str | None = None
208
+ blocking_requirements: list[str] | None = None
209
+ config: dict[str, Any] | None = None
210
+ created_at: datetime | None = None
211
+ external_ref: str | None = None
212
+ home_project_id: str | None = None
213
+ in_use: bool | None = None
214
+ name: str
215
+ pending_home_project_id: str | None = None
216
+ pipe_count: int | None = None
217
+ pipe_eligibility: PipeEligibility
218
+ pipes: list[DependentPipeView] | None = None
219
+ pipes_truncated: bool = False
220
+ pipes_unavailable: bool = False
221
+ publication_mode: PublicationMode | None = None
222
+ readiness: PrecheckReportView | None = None
223
+ readiness_checked_at: datetime | None = None
224
+ relation: str | None = None
225
+ scopes: str | None = None
226
+ secrets_set: dict[str, bool] | None = None
227
+ snapshot_strategy: str | None = None
228
+ source_type: SourceType
229
+ ssl_modes: list[str] | None = None
230
+ status: SourceStatus
231
+ updated_at: datetime | None = None
232
+ uuid: str
233
+
234
+
235
+ class ConnectedSourceUpdate(RequestModel):
236
+ allow_incomplete: bool = False
237
+ db_name: str | None = None
238
+ host: str | None = None
239
+ name: str | None = None
240
+ password: str | None = None
241
+ port: int | None = None
242
+ source_type: SourceType | None = None
243
+ ssl_mode: str | None = None
244
+ username: str | None = None
245
+
246
+
247
+ class SourceCascadeDeleteResponse(ResponseModel):
248
+ pipes: int
249
+ status: Literal['deleting']
250
+
251
+
252
+ class SourceCredentialsRenew(RequestModel):
253
+ credentials: dict[str, str]
254
+
255
+
256
+ class SourceForceDeleteResponse(ResponseModel):
257
+ pipes_at_deletion: int | None
258
+ source_id: str
259
+ status: Literal['force_deleted']
260
+ warning: str
261
+
262
+
263
+ SourceListResponse = list[ConnectedSourceResponse]
@@ -0,0 +1,82 @@
1
+ """Models of the ``source_catalog`` 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 typing import Any
9
+
10
+ from pydantic import Field
11
+
12
+ from databay.model_base import OpenStrEnum, ResponseModel
13
+ from databay.models.shared import AuthKind, SourceType
14
+
15
+
16
+ class RequirementViewOwner(OpenStrEnum):
17
+ CUSTOMER = 'customer'
18
+ DBA = 'dba'
19
+ DATABAY = 'databay'
20
+ PROVIDER = 'provider'
21
+
22
+
23
+ class SourceFieldDescriptorType(OpenStrEnum):
24
+ STRING = 'string'
25
+ INTEGER = 'integer'
26
+ ENUM = 'enum'
27
+
28
+
29
+ class SourceCatalogEntryOauthApps(OpenStrEnum):
30
+ DATABAY = 'databay'
31
+ OWN = 'own'
32
+
33
+
34
+ class RequirementView(ResponseModel):
35
+ blocking: bool
36
+ docs_href: str | None = None
37
+ id: str
38
+ owner: RequirementViewOwner
39
+ title: str
40
+ why: str
41
+
42
+
43
+ class SetupStepView(ResponseModel):
44
+ body_md: str
45
+ docs_href: str | None = None
46
+ id: str
47
+ sql_template: str | None = None
48
+ title: str
49
+
50
+
51
+ class SourceFieldDescriptor(ResponseModel):
52
+ default: Any | None = None
53
+ help: str | None = None
54
+ label: str
55
+ name: str
56
+ options: list[str] | None = None
57
+ required: bool = False
58
+ secret: bool = False
59
+ type: SourceFieldDescriptorType = 'string'
60
+
61
+
62
+ class SourceCatalogEntry(ResponseModel):
63
+ already_connected: bool = False
64
+ auth_kind: AuthKind
65
+ available: bool = True
66
+ display_name: str
67
+ egress_addresses: list[str] | None = None
68
+ fields_: list[SourceFieldDescriptor] = Field(alias='fields')
69
+ journey: bool = False
70
+ journey_recipe: dict[str, Any] | None = None
71
+ manual_fields: list[SourceFieldDescriptor] | None = None
72
+ oauth_apps: list[SourceCatalogEntryOauthApps] | None = None
73
+ oauth_coming_soon: bool = False
74
+ oauth_methods: list[str] | None = None
75
+ requirements: list[RequirementView] | None = None
76
+ setup_steps: list[SetupStepView] | None = None
77
+ supports_oauth: bool = True
78
+ table_checks: bool = False
79
+ type: SourceType
80
+
81
+
82
+ SourceCatalogListResponse = list[SourceCatalogEntry]
@@ -0,0 +1,63 @@
1
+ """Models of the ``source_check_run`` 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 CheckRunResponse, SourceType
12
+
13
+
14
+ class TablesReadStatus(OpenStrEnum):
15
+ PENDING = 'pending'
16
+ OK = 'ok'
17
+ FAILED = 'failed'
18
+
19
+
20
+ class CheckRunConnection(RequestModel):
21
+ db_name: str
22
+ host: str
23
+ port: int
24
+ ssl_mode: str = 'disable'
25
+ username: str
26
+
27
+
28
+ class CheckRunStartRequest(RequestModel):
29
+ active_probes: bool = False
30
+ config: CheckRunConnection | None = None
31
+ name: str | None = None
32
+ password: str | None = None
33
+ source_id: str | None = None
34
+ source_type: SourceType | None = None
35
+
36
+
37
+ class CheckRunTableRow(ResponseModel):
38
+ detail_code: str
39
+ fix_sql: str | None
40
+ in_publication: bool
41
+ name: str
42
+ owned: bool
43
+ schema_name: str
44
+ state: str
45
+ table_name: str
46
+ text: str
47
+ values: dict[str, str | int] | None = None
48
+
49
+
50
+ class CheckRunTablesResponse(ResponseModel):
51
+ as_of: datetime | None
52
+ cap: int
53
+ capped: bool
54
+ matched: int
55
+ read_status: TablesReadStatus
56
+ rows: list[CheckRunTableRow]
57
+ total_in: int
58
+ total_in_publication: int
59
+ total_not_in_publication: int
60
+ total_out: int
61
+
62
+
63
+ SourceCheckRunLatestResponse = CheckRunResponse | None
@@ -0,0 +1,13 @@
1
+ """Models of the ``source_hidden_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
+ from databay.model_base import ResponseModel
9
+
10
+
11
+ class HiddenSourceTypesResponse(ResponseModel):
12
+ enforced: bool
13
+ hidden_types: list[str] | None = None
@@ -0,0 +1,18 @@
1
+ """Models of the ``source_name`` 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 SourceType
10
+
11
+
12
+ class NameCheckRequest(RequestModel):
13
+ name: str
14
+ source_type: SourceType | None = None
15
+
16
+
17
+ class NameCheckResponse(ResponseModel):
18
+ available: bool
@@ -0,0 +1,16 @@
1
+ """Models of the ``source_pipe`` 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
+ from databay.models.shared import DependentPipeView
10
+
11
+
12
+ class DependentPipePage(ResponseModel):
13
+ data: list[DependentPipeView]
14
+ page: int
15
+ page_size: int
16
+ total: int
@@ -0,0 +1,30 @@
1
+ """Models of the ``source_publication`` 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 PublicationMode
10
+
11
+
12
+ class PublicationModeRequest(RequestModel):
13
+ publication_mode: PublicationMode
14
+
15
+
16
+ class PublicationOption(ResponseModel):
17
+ available: bool
18
+ detail_code: str | None
19
+ mode: PublicationMode
20
+ text: str | None
21
+ values: dict[str, str | int] | None = None
22
+
23
+
24
+ class SourcePublicationResponse(ResponseModel):
25
+ locked: bool
26
+ options: list[PublicationOption]
27
+ pipe_count: int
28
+ publication_mode: PublicationMode | None
29
+ publication_name: str
30
+ source_id: str
@@ -0,0 +1,13 @@
1
+ """Models of the ``source_readiness_override`` 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
9
+
10
+
11
+ class ReadinessOverrideRequest(RequestModel):
12
+ reason: str
13
+ requirement_ids: list[str] | None = None
@@ -0,0 +1,33 @@
1
+ """Models of the ``source_setup_choice`` 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 SetupChoiceId(OpenStrEnum):
12
+ PUBLICATION = 'publication'
13
+
14
+
15
+ class SetupChoiceOption(ResponseModel):
16
+ available: bool
17
+ detail_code: str | None
18
+ text: str | None
19
+ value: str
20
+ values: dict[str, str | int] | None = None
21
+
22
+
23
+ class SetupChoiceRequest(RequestModel):
24
+ value: str
25
+
26
+
27
+ class SetupChoiceResponse(ResponseModel):
28
+ choice_id: SetupChoiceId
29
+ locked: bool
30
+ options: list[SetupChoiceOption]
31
+ pipe_count: int
32
+ source_id: str
33
+ value: str | None
@@ -0,0 +1,65 @@
1
+ """Models of the ``source_stream`` 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
+ from databay.models.shared import ColumnInfo
10
+
11
+
12
+ class KeyCandidateViewKind(OpenStrEnum):
13
+ PRIMARY_KEY = 'primary_key'
14
+ UNIQUE_CONSTRAINT = 'unique_constraint'
15
+ UNIQUE_INDEX = 'unique_index'
16
+
17
+
18
+ class StreamViewKind(OpenStrEnum):
19
+ TABLE = 'table'
20
+ COLLECTION = 'collection'
21
+ REPORT = 'report'
22
+ RESOURCE = 'resource'
23
+
24
+
25
+ class StreamViewSyncModes(OpenStrEnum):
26
+ CDC = 'cdc'
27
+ INCREMENTAL = 'incremental'
28
+ FULL_REFRESH = 'full_refresh'
29
+
30
+
31
+ class NamespaceViewKind(OpenStrEnum):
32
+ SCHEMA = 'schema'
33
+ DATABASE = 'database'
34
+ SOURCE = 'source'
35
+
36
+
37
+ class KeyCandidateView(ResponseModel):
38
+ all_non_nullable: bool
39
+ columns: list[str]
40
+ kind: KeyCandidateViewKind
41
+
42
+
43
+ class StreamView(ResponseModel):
44
+ in_publication: bool | None = None
45
+ kind: StreamViewKind
46
+ name: str
47
+ sync_modes: list[StreamViewSyncModes]
48
+
49
+
50
+ class NamespaceView(ResponseModel):
51
+ kind: NamespaceViewKind
52
+ name: str
53
+ streams: list[StreamView] | None = None
54
+
55
+
56
+ class StreamCatalogResponse(ResponseModel):
57
+ namespaces: list[NamespaceView]
58
+
59
+
60
+ class StreamShapeResponse(ResponseModel):
61
+ columns: list[ColumnInfo]
62
+ key_candidates: list[KeyCandidateView]
63
+ primary_key: list[str]
64
+ replica_identity: str | None = None
65
+ schemaless: bool
@@ -0,0 +1,27 @@
1
+ """Models of the ``source_table`` 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 TableIssueView(ResponseModel):
12
+ blocking: bool
13
+ code: str
14
+ fix_sql: str | None = None
15
+ note: str | None = None
16
+ title: str
17
+
18
+
19
+ class TableReadinessView(ResponseModel):
20
+ issues: list[TableIssueView] | None = None
21
+ ready: bool
22
+ table: str
23
+
24
+
25
+ class TableReadinessReport(ResponseModel):
26
+ ready: bool
27
+ tables: list[TableReadinessView]
databay/models/sql.py ADDED
@@ -0,0 +1,31 @@
1
+ """Models of the ``sql`` 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 typing import Any
9
+
10
+ from databay.model_base import RequestModel, ResponseModel
11
+
12
+
13
+ class SqlExecuteRequest(RequestModel):
14
+ db_uuid: str | None = None
15
+ query: str
16
+
17
+
18
+ class SqlWarning(ResponseModel):
19
+ code: str
20
+ message: str
21
+
22
+
23
+ class SqlExecuteResponse(ResponseModel):
24
+ columns: list[str]
25
+ elapsed_ms: int
26
+ project_id: str | None = None
27
+ row_count: int
28
+ rows: list[list[Any]]
29
+ truncated: bool
30
+ warehouse_uuid: str | None = None
31
+ warnings: list[SqlWarning] | None = None