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,875 @@
1
+ """Models used by more than one 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
+
15
+
16
+ class AccessScopeMode(OpenStrEnum):
17
+ RULES = 'rules'
18
+ ALL_VISIBLE = 'all_visible'
19
+
20
+
21
+ class AttachState(OpenStrEnum):
22
+ ATTACHING = 'attaching'
23
+ SNAPSHOTTING = 'snapshotting'
24
+ LIVE = 'live'
25
+ DETACHED = 'detached'
26
+ NEEDS_RESYNC = 'needs_resync'
27
+
28
+
29
+ class AuthKind(OpenStrEnum):
30
+ STATIC_CREDENTIALS = 'static_credentials'
31
+ OAUTH = 'oauth'
32
+ NONE = 'none'
33
+
34
+
35
+ class BackendKind(OpenStrEnum):
36
+ DLT = 'dlt'
37
+ INGEST = 'ingest'
38
+
39
+
40
+ class BackfillRunReason(OpenStrEnum):
41
+ PIPE_NOT_READY = 'pipe_not_ready'
42
+ FILTER_REJECTED = 'filter_rejected'
43
+ FILTER_UNSUPPORTED = 'filter_unsupported'
44
+ BACKFILL_UNSUPPORTED = 'backfill_unsupported'
45
+ ALREADY_RUNNING = 'already_running'
46
+ UPSTREAM_UNAVAILABLE = 'upstream_unavailable'
47
+ INTERNAL_ERROR = 'internal_error'
48
+ JOB_FAILED = 'job_failed'
49
+ TIMED_OUT = 'timed_out'
50
+ CANCELLED = 'cancelled'
51
+
52
+
53
+ class BackfillRunState(OpenStrEnum):
54
+ RUNNING = 'running'
55
+ FINISHED = 'finished'
56
+ FAILED = 'failed'
57
+ REJECTED = 'rejected'
58
+
59
+
60
+ class CheckRowStatus(OpenStrEnum):
61
+ WAITING = 'waiting'
62
+ CHECKING = 'checking'
63
+ PASS = 'pass'
64
+ FAIL = 'fail'
65
+ UNKNOWN = 'unknown'
66
+ WARNING = 'warning'
67
+ INTERRUPTED = 'interrupted'
68
+ NOT_RUN = 'not_run'
69
+
70
+
71
+ class CheckRunOutcome(OpenStrEnum):
72
+ SAVED = 'saved'
73
+ LOGIN_FAILED = 'login_failed'
74
+ NAME_TAKEN = 'name_taken'
75
+ QUOTA_REACHED = 'quota_reached'
76
+
77
+
78
+ class CheckRunStatus(OpenStrEnum):
79
+ RUNNING = 'running'
80
+ FINISHED = 'finished'
81
+ INTERRUPTED = 'interrupted'
82
+
83
+
84
+ class ClickhouseDeploymentMode(OpenStrEnum):
85
+ SINGLE_NODE = 'single_node'
86
+ CLUSTER = 'cluster'
87
+
88
+
89
+ class DBOrigin(OpenStrEnum):
90
+ REGISTERED = 'registered'
91
+ SYSTEM = 'system'
92
+ PROVISIONED = 'provisioned'
93
+
94
+
95
+ class DBStatus(OpenStrEnum):
96
+ PENDING = 'pending'
97
+ PROVISIONING = 'provisioning'
98
+ READY = 'ready'
99
+ FAILED = 'failed'
100
+ DELETING = 'deleting'
101
+
102
+
103
+ class DBType(OpenStrEnum):
104
+ MYSQL = 'mysql'
105
+ POSTGRES = 'postgres'
106
+ CLICKHOUSE = 'clickhouse'
107
+ MONGODB = 'mongodb'
108
+ MSSQL = 'mssql'
109
+
110
+
111
+ class FreshnessState(OpenStrEnum):
112
+ FRESH = 'fresh'
113
+ BEHIND = 'behind'
114
+ STALE = 'stale'
115
+ NOT_MONITORED = 'not_monitored'
116
+ NEVER_CHECKED = 'never_checked'
117
+ UNKNOWN = 'unknown'
118
+
119
+
120
+ class HolderKind(OpenStrEnum):
121
+ MEMBER = 'member'
122
+ SERVICE = 'service'
123
+
124
+
125
+ class Meter(OpenStrEnum):
126
+ PIPES = 'pipes'
127
+ SOURCES_DB = 'sources_db'
128
+ SOURCES_SAAS = 'sources_saas'
129
+ WAREHOUSES_MANAGED = 'warehouses_managed'
130
+ PROJECTS = 'projects'
131
+ SEATS_EDITOR = 'seats_editor'
132
+ API_KEYS = 'api_keys'
133
+ SSBI_JOBS = 'ssbi_jobs'
134
+ ROWS_LANDED = 'rows_landed'
135
+ SNAPSHOT_ROWS = 'snapshot_rows'
136
+ SAAS_SYNC_RUNS = 'saas_sync_runs'
137
+ MAX_BACKFILL_DAYS = 'max_backfill_days'
138
+ MAX_STREAMS_PER_SOURCE = 'max_streams_per_source'
139
+ CONSOLE_CH_QUERIES = 'console_ch_queries'
140
+ CONSOLE_CH_ERRORS = 'console_ch_errors'
141
+ CONSOLE_CH_READ_ROWS = 'console_ch_read_rows'
142
+ CONSOLE_CH_EXECUTION_TIME = 'console_ch_execution_time'
143
+ NOTEBOOK_CH_QUERIES = 'notebook_ch_queries'
144
+ NOTEBOOK_CH_ERRORS = 'notebook_ch_errors'
145
+ NOTEBOOK_CH_READ_ROWS = 'notebook_ch_read_rows'
146
+ NOTEBOOK_CH_EXECUTION_TIME = 'notebook_ch_execution_time'
147
+ SEMANTIC_CH_QUERIES = 'semantic_ch_queries'
148
+ SEMANTIC_CH_ERRORS = 'semantic_ch_errors'
149
+ SEMANTIC_CH_READ_ROWS = 'semantic_ch_read_rows'
150
+ SEMANTIC_CH_EXECUTION_TIME = 'semantic_ch_execution_time'
151
+ WAREHOUSE_CPU_SECONDS = 'warehouse_cpu_seconds'
152
+ WAREHOUSE_READ_BYTES = 'warehouse_read_bytes'
153
+ WAREHOUSE_PRINCIPALS = 'warehouse_principals'
154
+ WAREHOUSE_LOGIN_CH_QUERIES = 'warehouse_login_ch_queries'
155
+ WAREHOUSE_LOGIN_CH_ERRORS = 'warehouse_login_ch_errors'
156
+ WAREHOUSE_LOGIN_CH_READ_ROWS = 'warehouse_login_ch_read_rows'
157
+ WAREHOUSE_LOGIN_CH_EXECUTION_TIME = 'warehouse_login_ch_execution_time'
158
+
159
+
160
+ class PipeBlockReason(OpenStrEnum):
161
+ SOURCE_SETUP_INCOMPLETE = 'source_setup_incomplete'
162
+ SOURCE_NEEDS_ATTENTION = 'source_needs_attention'
163
+ SOURCE_DELETING = 'source_deleting'
164
+ SOURCE_UPDATING = 'source_updating'
165
+ SOURCE_UNINSTALLED = 'source_uninstalled'
166
+ SOURCE_NEEDS_REAUTH = 'source_needs_reauth'
167
+ SOURCE_NO_STORED_PASS = 'source_no_stored_pass'
168
+
169
+
170
+ class PipeDestinationUnavailableCode(OpenStrEnum):
171
+ NOT_PROVISIONED = 'not_provisioned'
172
+ NOT_SUPPORTED = 'not_supported'
173
+ WAREHOUSE_UNREACHABLE = 'warehouse_unreachable'
174
+ CONFIG_UNAVAILABLE = 'config_unavailable'
175
+ INVALID_IDENTIFIER = 'invalid_identifier'
176
+ INTERNAL = 'internal'
177
+
178
+
179
+ class PipeHealth(OpenStrEnum):
180
+ HEALTHY = 'healthy'
181
+ NOT_LANDING_DATA = 'not_landing_data'
182
+ UNKNOWN = 'unknown'
183
+ STALE = 'stale'
184
+ NOT_REPORTING = 'not_reporting'
185
+ NOT_MONITORED = 'not_monitored'
186
+
187
+
188
+ class PipeV2Status(OpenStrEnum):
189
+ PENDING = 'pending'
190
+ CREATING = 'creating'
191
+ ACTIVE = 'active'
192
+ INACTIVE = 'inactive'
193
+ FAILED = 'failed'
194
+ DEPRECATED = 'deprecated'
195
+ PAUSED_QUOTA = 'paused_quota'
196
+ DELETING = 'deleting'
197
+ DELETED = 'deleted'
198
+
199
+
200
+ class PrincipalKind(OpenStrEnum):
201
+ PERSONAL = 'personal'
202
+ SERVICE = 'service'
203
+ CONSOLE = 'console'
204
+ NOTEBOOK = 'notebook'
205
+ SEMANTIC = 'semantic'
206
+ BUILTIN_WRITER = 'builtin_writer'
207
+ MODEL_WRITER = 'model_writer'
208
+
209
+
210
+ class PrincipalState(OpenStrEnum):
211
+ PENDING = 'pending'
212
+ ACTIVE = 'active'
213
+ DISABLED = 'disabled'
214
+ EXPIRED = 'expired'
215
+ DROPPING = 'dropping'
216
+
217
+
218
+ class PublicationMode(OpenStrEnum):
219
+ CUSTOMER_MANAGED = 'customer_managed'
220
+ DATABAY_MANAGED = 'databay_managed'
221
+
222
+
223
+ class ReconcileState(OpenStrEnum):
224
+ APPLYING = 'applying'
225
+ APPLIED = 'applied'
226
+ RETRYING = 'retrying'
227
+
228
+
229
+ class RowFilterOp(OpenStrEnum):
230
+ EQ = 'eq'
231
+ NE = 'ne'
232
+ IN = 'in'
233
+ NOT_IN = 'not_in'
234
+ LT = 'lt'
235
+ LTE = 'lte'
236
+ GT = 'gt'
237
+ GTE = 'gte'
238
+ IS_NULL = 'is_null'
239
+ IS_NOT_NULL = 'is_not_null'
240
+
241
+
242
+ class SmtMaskTypeV2(OpenStrEnum):
243
+ MD5 = 'md5'
244
+ SHA256 = 'sha256'
245
+ REVERSIBLE = 'reversible'
246
+
247
+
248
+ class SourceStatus(OpenStrEnum):
249
+ CONNECTED = 'connected'
250
+ NEEDS_REAUTH = 'needs_reauth'
251
+ UNINSTALLED = 'uninstalled'
252
+ ERROR = 'error'
253
+ DELETING = 'deleting'
254
+ UPDATING = 'updating'
255
+ SETUP_INCOMPLETE = 'setup_incomplete'
256
+ NEEDS_ATTENTION = 'needs_attention'
257
+
258
+
259
+ class SourceType(OpenStrEnum):
260
+ POSTGRES = 'postgres'
261
+ MYSQL = 'mysql'
262
+ MSSQL = 'mssql'
263
+ MONGODB = 'mongodb'
264
+ SHOPIFY = 'shopify'
265
+ META_ADS = 'meta_ads'
266
+ GOOGLE_ADS = 'google_ads'
267
+ GA4 = 'ga4'
268
+ INSTAGRAM = 'instagram'
269
+ LINKEDIN_PAGES = 'linkedin_pages'
270
+ X = 'x'
271
+ TIKTOK_ADS = 'tiktok_ads'
272
+ FILE_UPLOAD = 'file_upload'
273
+
274
+
275
+ class SyncMode(OpenStrEnum):
276
+ INCREMENTAL_DEDUPED_HISTORY = 'incremental_deduped_history'
277
+ INCREMENTAL_APPEND = 'incremental_append'
278
+ FULL_REFRESH_OVERWRITE = 'full_refresh_overwrite'
279
+ FULL_REFRESH_APPEND = 'full_refresh_append'
280
+
281
+
282
+ class WarehouseErrorCode(OpenStrEnum):
283
+ CLICKHOUSE_UNREACHABLE = 'clickhouse_unreachable'
284
+ CLICKHOUSE_TIMEOUT = 'clickhouse_timeout'
285
+ CLICKHOUSE_CLUSTER_DDL_TIMEOUT = 'clickhouse_cluster_ddl_timeout'
286
+ CLICKHOUSE_ACCESS_DENIED = 'clickhouse_access_denied'
287
+ NAME_COLLISION = 'name_collision'
288
+ OUTBOX_FULL = 'outbox_full'
289
+ PIPES_PRESENT = 'pipes_present'
290
+ QUOTA_REACHED = 'quota_reached'
291
+ NAME_TAKEN = 'name_taken'
292
+ NAME_RESERVED = 'name_reserved'
293
+ SINK_NOT_READY = 'sink_not_ready'
294
+ NOT_RETRYABLE = 'not_retryable'
295
+ RETRY_COOLDOWN = 'retry_cooldown'
296
+ IMPACT_UNAVAILABLE = 'impact_unavailable'
297
+ UNKNOWN = 'unknown'
298
+
299
+
300
+ class CardChartFormat(OpenStrEnum):
301
+ NUMBER = 'number'
302
+ CURRENCY = 'currency'
303
+ PERCENT = 'percent'
304
+ DURATION = 'duration'
305
+
306
+
307
+ class CardChartSeriesColors(OpenStrEnum):
308
+ INDIGO = 'indigo'
309
+ TEAL = 'teal'
310
+ AMBER = 'amber'
311
+ ROSE = 'rose'
312
+ SKY = 'sky'
313
+ VIOLET = 'violet'
314
+ LIME = 'lime'
315
+ ORANGE = 'orange'
316
+
317
+
318
+ class CardChartType(OpenStrEnum):
319
+ KPI = 'kpi'
320
+ LINE = 'line'
321
+ AREA = 'area'
322
+ BAR = 'bar'
323
+ PIE = 'pie'
324
+ SCATTER = 'scatter'
325
+ FUNNEL = 'funnel'
326
+ TABLE = 'table'
327
+
328
+
329
+ class MetricCardFilterOp(OpenStrEnum):
330
+ EQUALS = 'equals'
331
+ NOTEQUALS = 'notEquals'
332
+ CONTAINS = 'contains'
333
+ NOTCONTAINS = 'notContains'
334
+ STARTSWITH = 'startsWith'
335
+ ENDSWITH = 'endsWith'
336
+ GT = 'gt'
337
+ GTE = 'gte'
338
+ LT = 'lt'
339
+ LTE = 'lte'
340
+ SET = 'set'
341
+ NOTSET = 'notSet'
342
+
343
+
344
+ class MetricCardOrderDirection(OpenStrEnum):
345
+ ASC = 'asc'
346
+ DESC = 'desc'
347
+
348
+
349
+ class MetricCardTimeDefault(OpenStrEnum):
350
+ LAST_7_DAYS = 'last_7_days'
351
+ LAST_30_DAYS = 'last_30_days'
352
+ LAST_90_DAYS = 'last_90_days'
353
+ LAST_365_DAYS = 'last_365_days'
354
+ THIS_MONTH = 'this_month'
355
+ LAST_MONTH = 'last_month'
356
+ THIS_YEAR = 'this_year'
357
+
358
+
359
+ class MetricCardTimeGrain(OpenStrEnum):
360
+ DAY = 'day'
361
+ WEEK = 'week'
362
+ MONTH = 'month'
363
+ QUARTER = 'quarter'
364
+ YEAR = 'year'
365
+
366
+
367
+ class CardParamDefault(OpenStrEnum):
368
+ LAST_7_DAYS = 'last_7_days'
369
+ LAST_30_DAYS = 'last_30_days'
370
+ LAST_90_DAYS = 'last_90_days'
371
+ LAST_365_DAYS = 'last_365_days'
372
+ THIS_MONTH = 'this_month'
373
+ LAST_MONTH = 'last_month'
374
+ THIS_YEAR = 'this_year'
375
+
376
+
377
+ class CardParamType(OpenStrEnum):
378
+ DATE = 'Date'
379
+ DATETIME = 'DateTime'
380
+ STRING = 'String'
381
+ INT64 = 'Int64'
382
+ FLOAT64 = 'Float64'
383
+ ARRAY_STRING = 'Array(String)'
384
+
385
+
386
+ class DateRangeFilterDefault(OpenStrEnum):
387
+ LAST_7_DAYS = 'last_7_days'
388
+ LAST_30_DAYS = 'last_30_days'
389
+ LAST_90_DAYS = 'last_90_days'
390
+ LAST_365_DAYS = 'last_365_days'
391
+ THIS_MONTH = 'this_month'
392
+ LAST_MONTH = 'last_month'
393
+ THIS_YEAR = 'this_year'
394
+
395
+
396
+ class PipeV2ResponseNewColumns(OpenStrEnum):
397
+ ADD = 'add'
398
+ ASK = 'ask'
399
+
400
+
401
+ class PipeV2ResponseNewColumnsSource(OpenStrEnum):
402
+ REQUEST = 'request'
403
+ PROJECT_DEFAULT = 'project_default'
404
+
405
+
406
+ class AdAccountOption(ResponseModel):
407
+ id: str
408
+ login_customer_id: str | None = None
409
+ name: str = ''
410
+ username: str | None = None
411
+
412
+
413
+ class AdAccountsForTokenRequest(RequestModel):
414
+ access_token: str
415
+
416
+
417
+ class AdAccountsResponse(ResponseModel):
418
+ accounts: list[AdAccountOption] | None = None
419
+ provider: SourceType
420
+
421
+
422
+ class AdSourceResponse(ResponseModel):
423
+ external_ref: str
424
+ scopes: str = ''
425
+ source_type: SourceType
426
+ status: SourceStatus
427
+ uuid: str
428
+
429
+
430
+ class RowCondition(ResponseModel):
431
+ column: str
432
+ op: RowFilterOp
433
+ value: bool | int | float | str | list[bool | int | float | str] | None = None
434
+
435
+
436
+ class AnyOfOutput(ResponseModel):
437
+ any: list[RowCondition | AllOfOutput | AnyOfOutput]
438
+
439
+
440
+ class AllOfOutput(ResponseModel):
441
+ all: list[RowCondition | AllOfOutput | AnyOfOutput]
442
+
443
+
444
+ class BackfillRunResponse(ResponseModel):
445
+ actor_label: str | None = None
446
+ correlation_id: str = ''
447
+ cursor_field: str | None = None
448
+ dest_table_name: str | None = None
449
+ duration_seconds: float
450
+ filter_length: int = 0
451
+ finished_at: datetime | None = None
452
+ has_filter: bool = False
453
+ is_stalled: bool
454
+ pipe_uuid: str
455
+ reason: str | None = None
456
+ reason_code: BackfillRunReason | None = None
457
+ ref: str | None = None
458
+ schema_name: str | None = None
459
+ stalled_at: datetime | None = None
460
+ state: BackfillRunState
461
+ table_name: str | None = None
462
+ triggered_at: datetime
463
+ uuid: str
464
+ where_clause: str | None = None
465
+
466
+
467
+ class BackfillRunPage(ResponseModel):
468
+ data: list[BackfillRunResponse]
469
+ next_cursor: str | None = None
470
+ total: int
471
+
472
+
473
+ class BuiltinOrigin(ResponseModel):
474
+ slug: str
475
+ version: int
476
+
477
+
478
+ class BoardRef(ResponseModel):
479
+ id: str
480
+ name: str
481
+
482
+
483
+ class CardChart(ResponseModel):
484
+ format: dict[str, CardChartFormat] | None = None
485
+ series: str | None = None
486
+ series_colors: dict[str, CardChartSeriesColors] | None = None
487
+ stacked: bool = False
488
+ type: CardChartType
489
+ x: str | None = None
490
+ y: list[str] | None = None
491
+
492
+
493
+ class MetricCardFilter(ResponseModel):
494
+ from_filter: str | None = None
495
+ member: str
496
+ op: MetricCardFilterOp
497
+ values: list[str] | None = None
498
+
499
+
500
+ class MetricCardOrder(ResponseModel):
501
+ direction: MetricCardOrderDirection = 'asc'
502
+ member: str
503
+
504
+
505
+ class MetricCardTime(ResponseModel):
506
+ default: MetricCardTimeDefault | None = None
507
+ from_filter: str | None = None
508
+ grain: MetricCardTimeGrain | None = None
509
+
510
+
511
+ class MetricCardQuery(ResponseModel):
512
+ dimensions: list[str] | None = None
513
+ filters: list[MetricCardFilter] | None = None
514
+ limit: int | None = None
515
+ metrics: list[str]
516
+ order: list[MetricCardOrder] | None = None
517
+ time: MetricCardTime | None = None
518
+
519
+
520
+ class MetricCardSpec(ResponseModel):
521
+ chart: CardChart
522
+ query: MetricCardQuery
523
+ spec_version: Literal[2]
524
+
525
+
526
+ class CardParam(ResponseModel):
527
+ default: CardParamDefault | list[str] | None = None
528
+ from_filter: str | None = None
529
+ type: CardParamType
530
+ value: Any | None = None
531
+
532
+
533
+ class CardQuery(ResponseModel):
534
+ dataset_versions: dict[str, int] | None = None
535
+ params: dict[str, CardParam] | None = None
536
+ requires_connectors: list[str] | None = None
537
+ sql: str
538
+
539
+
540
+ class SqlCardSpec(ResponseModel):
541
+ chart: CardChart
542
+ query: CardQuery
543
+ spec_version: Literal[1]
544
+
545
+
546
+ class CardOut(ResponseModel):
547
+ boards: list[BoardRef]
548
+ created_by: str
549
+ id: str
550
+ project_id: str
551
+ revision: int
552
+ spec: Annotated[SqlCardSpec | MetricCardSpec, Field(discriminator='spec_version')]
553
+ title: str
554
+ updated_at: datetime
555
+ updated_by: str
556
+ warehouse_id: str
557
+
558
+
559
+ class DateRangeFilter(ResponseModel):
560
+ default: DateRangeFilterDefault
561
+ key: str
562
+ label: str
563
+ type: Literal['date_range']
564
+
565
+
566
+ class LayoutItem(ResponseModel):
567
+ card_id: str
568
+ h: int
569
+ w: int
570
+ x: int
571
+ y: int
572
+
573
+
574
+ class SelectFilter(ResponseModel):
575
+ key: str
576
+ label: str
577
+ options: list[str] | None = None
578
+ type: Literal['select']
579
+
580
+
581
+ class WarehouseFilter(ResponseModel):
582
+ default: str
583
+ key: str
584
+ label: str
585
+ type: Literal['warehouse']
586
+
587
+
588
+ class BoardOut(ResponseModel):
589
+ cards: list[CardOut]
590
+ created_at: datetime
591
+ created_by: str
592
+ description: str | None
593
+ filters: list[Annotated[DateRangeFilter | SelectFilter | WarehouseFilter, Field(discriminator='type')]]
594
+ folder_id: str | None
595
+ id: str
596
+ name: str
597
+ placements: list[LayoutItem]
598
+ project_id: str
599
+ refresh_interval_s: int | None
600
+ revision: int
601
+ source_builtin: BuiltinOrigin | None
602
+ updated_at: datetime
603
+ updated_by: str
604
+
605
+
606
+ class CardResult(ResponseModel):
607
+ cached: bool
608
+ card_id: str | None
609
+ card_revision: int | None
610
+ column_types: list[str]
611
+ columns: list[str]
612
+ elapsed_ms: int
613
+ row_count: int
614
+ rows: list[list[Any]]
615
+ warehouse_id: str
616
+
617
+
618
+ class CardRunRequest(RequestModel):
619
+ filters: dict[str, Any] | None = None
620
+ refresh: bool = False
621
+
622
+
623
+ class PrecheckFixView(ResponseModel):
624
+ action: str | None = None
625
+ note: str | None = None
626
+ provider: str
627
+ sql: str | None = None
628
+
629
+
630
+ class CheckRunRowView(ResponseModel):
631
+ blocking: bool
632
+ cause: str | None = None
633
+ checked_at: datetime | None = None
634
+ code: str | None = None
635
+ detail_code: str | None = None
636
+ docs_href: str | None = None
637
+ fixes: list[PrecheckFixView] | None = None
638
+ requirement_id: str
639
+ status: CheckRowStatus
640
+ support_ref: str | None = None
641
+ text: str | None = None
642
+ title: str
643
+ values: dict[str, str | int] | None = None
644
+
645
+
646
+ class CheckRunResponse(ResponseModel):
647
+ checks: list[CheckRunRowView]
648
+ checks_deadline_at: datetime
649
+ expires_at: datetime
650
+ finished_at: datetime | None
651
+ name: str
652
+ outcome: CheckRunOutcome | None
653
+ outcome_detail: str | None = None
654
+ run_id: str
655
+ source_id: str | None
656
+ source_type: SourceType
657
+ started_at: datetime
658
+ started_by: str | None
659
+ status: CheckRunStatus
660
+
661
+
662
+ class ClickhouseClusterNode(ResponseModel):
663
+ host: str
664
+ port: int = 8123
665
+
666
+
667
+ class ClickhouseClusterConfig(ResponseModel):
668
+ cluster_name: str | None = None
669
+ keeper_path_prefix: str = '/clickhouse/tables'
670
+ local_table_suffix: str = '_local'
671
+ mode: ClickhouseDeploymentMode = 'single_node'
672
+ nodes: list[ClickhouseClusterNode] | None = None
673
+ sharding_key: str | None = None
674
+
675
+
676
+ class ColumnInfo(ResponseModel):
677
+ column_is_nullable: bool
678
+ column_name: str
679
+ column_type: str
680
+
681
+
682
+ class PipeEligibility(ResponseModel):
683
+ allowed: bool
684
+ reason: PipeBlockReason | None
685
+
686
+
687
+ class ConnectedSourceResponse(ResponseModel):
688
+ auth_kind: AuthKind
689
+ binding_status: str | None = None
690
+ blocking_requirements: list[str] | None = None
691
+ created_at: datetime | None = None
692
+ external_ref: str | None = None
693
+ home_project_id: str | None = None
694
+ name: str
695
+ pending_home_project_id: str | None = None
696
+ pipe_eligibility: PipeEligibility
697
+ publication_mode: PublicationMode | None = None
698
+ readiness_checked_at: datetime | None = None
699
+ relation: str | None = None
700
+ scopes: str | None = None
701
+ snapshot_strategy: str | None = None
702
+ source_type: SourceType
703
+ status: SourceStatus
704
+ uuid: str
705
+
706
+
707
+ class DBExtraConfig(ResponseModel):
708
+ clickhouse: ClickhouseClusterConfig | None = None
709
+
710
+
711
+ class DependentPipeView(ResponseModel):
712
+ pipe_uuid: str
713
+ schema_name: str = ''
714
+ status: str = ''
715
+ table_name: str = ''
716
+
717
+
718
+ class FolderOut(ResponseModel):
719
+ created_at: datetime
720
+ created_by: str
721
+ id: str
722
+ name: str
723
+ parent_id: str | None
724
+ project_id: str
725
+ updated_at: datetime
726
+
727
+
728
+ class IssuedLoginOut(ResponseModel):
729
+ allowed_hosts: list[str] | None
730
+ database: str
731
+ db_uuid: str
732
+ host: str
733
+ native_username: str
734
+ password: str
735
+ path: str
736
+ port: int
737
+ principal_id: str
738
+ protocol: str
739
+ valid_until: datetime | None
740
+ warehouse_name: str
741
+
742
+
743
+ class LoginCreate(RequestModel):
744
+ allowed_hosts: list[str] | None = None
745
+ db_uuid: str
746
+ valid_until: datetime | None = None
747
+
748
+
749
+ class ReconcileOut(ResponseModel):
750
+ applied_at: datetime | None
751
+ consecutive_failures: int
752
+ state: ReconcileState
753
+
754
+
755
+ class LoginOut(ResponseModel):
756
+ allowed_hosts: list[str] | None
757
+ created_at: datetime
758
+ database: str | None
759
+ db_uuid: str
760
+ disabled_at: datetime | None
761
+ holder_id: str
762
+ holder_kind: HolderKind
763
+ kind: PrincipalKind
764
+ last_rotated_at: datetime | None
765
+ last_used_at: datetime | None
766
+ native_username: str
767
+ principal_id: str
768
+ project_id: str
769
+ reconcile: ReconcileOut
770
+ state: PrincipalState
771
+ valid_until: datetime | None
772
+ warehouse_name: str | None
773
+
774
+
775
+ class LoginPatch(RequestModel):
776
+ allowed_hosts: list[str] | None = None
777
+ valid_until: datetime | None = None
778
+
779
+
780
+ class PipeMaskFieldV2(ResponseModel):
781
+ mask_type: SmtMaskTypeV2 = 'sha256'
782
+ name: str
783
+
784
+
785
+ class PipeV2Response(ResponseModel):
786
+ attach_state: AttachState | None = None
787
+ backend: str
788
+ columns_count: int | None = None
789
+ created_at: datetime | None = None
790
+ cron_expression: str | None = None
791
+ dest_table_name: str | None = None
792
+ error_code: str | None = None
793
+ freshness_state: FreshnessState | None = None
794
+ health: PipeHealth | None = None
795
+ health_detail: str | None = None
796
+ health_detail_code: str | None = None
797
+ health_detail_retriable: bool | None = None
798
+ lag_seconds: float | None = None
799
+ last_change_at: datetime | None = None
800
+ last_checked_at: datetime | None = None
801
+ last_error: str | None = None
802
+ last_healthy_at: datetime | None = None
803
+ last_sync_status: str | None = None
804
+ masked_count: int = 0
805
+ new_columns: PipeV2ResponseNewColumns
806
+ new_columns_source: PipeV2ResponseNewColumnsSource | None
807
+ primary_key: list[str] | None = None
808
+ project_id: str | None = None
809
+ reader_id: str | None = None
810
+ retriable: bool | None = None
811
+ schedule_type: str | None = None
812
+ schema_name: str | None = None
813
+ sink_db_uuid: str
814
+ source_id: str
815
+ status: PipeV2Status = 'pending'
816
+ stream_ref: str | None = None
817
+ sync_mode: str | None = None
818
+ table_name: str | None = None
819
+ uuid: str
820
+
821
+
822
+ class PlacementCreate(RequestModel):
823
+ card_id: str
824
+
825
+
826
+ class WarehouseAccessCapabilities(ResponseModel):
827
+ column_grants: bool
828
+ logins: bool
829
+ row_filters: bool
830
+
831
+
832
+ class PublicDBResponse(ResponseModel):
833
+ access_capabilities: WarehouseAccessCapabilities
834
+ binding_status: str | None = None
835
+ created_at: datetime | None = None
836
+ created_by: str | None = None
837
+ db_name: str | None = None
838
+ error_code: WarehouseErrorCode | None = None
839
+ extra_config: DBExtraConfig | None = None
840
+ home_project_id: str | None = None
841
+ host: str
842
+ last_error: str | None = None
843
+ name: str
844
+ origin: DBOrigin = 'registered'
845
+ pending_home_project_id: str | None = None
846
+ port: int
847
+ relation: str | None = None
848
+ status: DBStatus = 'ready'
849
+ status_changed_at: datetime | None = None
850
+ type: DBType
851
+ username: str
852
+ uuid: str
853
+
854
+
855
+ class SchemaHistoryResponse(ResponseModel):
856
+ created_at: datetime
857
+ ddl: str
858
+ pipe_uuid: str
859
+ uuid: str
860
+ version: int
861
+
862
+
863
+ class ShareWarning(ResponseModel):
864
+ code: str
865
+ count: int
866
+ item_ids: list[str]
867
+ message: str
868
+
869
+
870
+ class WarehouseAcceptedResponse(ResponseModel):
871
+ name: str
872
+ pending_home_project_id: str | None = None
873
+ status: DBStatus
874
+ status_changed_at: datetime | None = None
875
+ uuid: str