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,179 @@
1
+ """The ``warehouse-access-assignment`` operations.
2
+
3
+ Generated by python/tools/gen_client.py from contract/core.json; do not edit.
4
+ """
5
+
6
+ from databay.operation import Body, Operation, Param, Response
7
+
8
+
9
+ WAREHOUSE_ACCESS_ASSIGNMENT_LIST = Operation(
10
+ operation_id='warehouse_access_assignment_list',
11
+ noun='warehouse-access-assignment',
12
+ verb='list',
13
+ method='get',
14
+ path='/api/configstore/projects/{project_id}/warehouse-access/assignments',
15
+ summary='List Assignments',
16
+ description="List every holder's explicit roles; a member not listed holds the default role.",
17
+ project='path:project_id',
18
+ destructive=False,
19
+ idempotent=False,
20
+ since='1.0',
21
+ params=(
22
+ Param(
23
+ name='project_id',
24
+ location='path',
25
+ kind='string',
26
+ required=True,
27
+ description='Project Id',
28
+ ),
29
+ ),
30
+ body=None,
31
+ response=Response(
32
+ kind='json',
33
+ model='warehouse_access_assignment:WarehouseAccessAssignmentListResponse',
34
+ shape='array',
35
+ ),
36
+ examples=(
37
+ 'databay warehouse-access-assignment list <project_id>',
38
+ ),
39
+ columns=(
40
+ 'holder_kind',
41
+ 'holder_id',
42
+ 'role_ids',
43
+ ),
44
+ )
45
+
46
+ WAREHOUSE_ACCESS_ASSIGNMENT_PREVIEW = Operation(
47
+ operation_id='warehouse_access_assignment_preview',
48
+ noun='warehouse-access-assignment',
49
+ verb='preview',
50
+ method='post',
51
+ path='/api/configstore/projects/{project_id}/warehouse-access/preview',
52
+ summary='Preview',
53
+ description='Show what one holder reads now and with ``role_ids``, and any table conflict; nothing changes.',
54
+ project='path:project_id',
55
+ destructive=False,
56
+ idempotent=False,
57
+ since='1.0',
58
+ params=(
59
+ Param(
60
+ name='project_id',
61
+ location='path',
62
+ kind='string',
63
+ required=True,
64
+ description='Project Id',
65
+ ),
66
+ ),
67
+ body=Body(
68
+ schema='AccessPreviewIn',
69
+ fields=(
70
+ Param(
71
+ name='holder_id',
72
+ location='body',
73
+ kind='string',
74
+ required=True,
75
+ description='Holder Id',
76
+ ),
77
+ Param(
78
+ name='holder_kind',
79
+ location='body',
80
+ kind='string',
81
+ required=True,
82
+ choices=(
83
+ 'member',
84
+ 'service',
85
+ ),
86
+ ),
87
+ Param(
88
+ name='role_ids',
89
+ location='body',
90
+ kind='list',
91
+ required=True,
92
+ description='the proposed role set; empty is the default role for a member and nothing for a service account',
93
+ item_kind='string',
94
+ ),
95
+ ),
96
+ ),
97
+ response=Response(
98
+ kind='json',
99
+ model='warehouse_access_assignment:AccessPreviewOut',
100
+ shape='object',
101
+ ),
102
+ examples=(
103
+ 'databay warehouse-access-assignment preview <project_id> --file preview.json',
104
+ ),
105
+ )
106
+
107
+ WAREHOUSE_ACCESS_ASSIGNMENT_SET = Operation(
108
+ operation_id='warehouse_access_assignment_set',
109
+ noun='warehouse-access-assignment',
110
+ verb='set',
111
+ method='put',
112
+ path='/api/configstore/projects/{project_id}/warehouse-access/assignments',
113
+ summary='Put Assignment',
114
+ description="Replace one holder's roles (revision-checked); 409 ``conflicting_table_rules`` when they clash on a table.",
115
+ project='path:project_id',
116
+ destructive=False,
117
+ idempotent=False,
118
+ since='1.0',
119
+ params=(
120
+ Param(
121
+ name='project_id',
122
+ location='path',
123
+ kind='string',
124
+ required=True,
125
+ description='Project Id',
126
+ ),
127
+ ),
128
+ body=Body(
129
+ schema='AssignmentPut',
130
+ fields=(
131
+ Param(
132
+ name='holder_id',
133
+ location='body',
134
+ kind='string',
135
+ required=True,
136
+ description='Holder Id',
137
+ ),
138
+ Param(
139
+ name='holder_kind',
140
+ location='body',
141
+ kind='string',
142
+ required=True,
143
+ choices=(
144
+ 'member',
145
+ 'service',
146
+ ),
147
+ ),
148
+ Param(
149
+ name='revision',
150
+ location='body',
151
+ kind='integer',
152
+ required=True,
153
+ description="the holder's assignment revision the change is based on; 0 for none",
154
+ ),
155
+ Param(
156
+ name='role_ids',
157
+ location='body',
158
+ kind='list',
159
+ required=True,
160
+ description="the holder's whole role set; empty clears it",
161
+ item_kind='string',
162
+ ),
163
+ ),
164
+ ),
165
+ response=Response(
166
+ kind='json',
167
+ model='warehouse_access_assignment:AssignmentOut',
168
+ shape='object',
169
+ ),
170
+ examples=(
171
+ 'databay warehouse-access-assignment set <project_id> --file assignment.json',
172
+ ),
173
+ )
174
+
175
+ OPERATIONS = (
176
+ WAREHOUSE_ACCESS_ASSIGNMENT_LIST,
177
+ WAREHOUSE_ACCESS_ASSIGNMENT_PREVIEW,
178
+ WAREHOUSE_ACCESS_ASSIGNMENT_SET,
179
+ )
@@ -0,0 +1,473 @@
1
+ """The ``warehouse-access-role`` operations.
2
+
3
+ Generated by python/tools/gen_client.py from contract/core.json; do not edit.
4
+ """
5
+
6
+ from databay.operation import Body, Operation, Param, Response
7
+
8
+
9
+ WAREHOUSE_ACCESS_ROLE_CREATE = Operation(
10
+ operation_id='warehouse_access_role_create',
11
+ noun='warehouse-access-role',
12
+ verb='create',
13
+ method='post',
14
+ path='/api/configstore/projects/{project_id}/warehouse-access/roles',
15
+ summary='Create Role',
16
+ description='Create an access role with no rules; add them with ``PUT .../rules``.',
17
+ project='path:project_id',
18
+ destructive=False,
19
+ idempotent=True,
20
+ since='1.0',
21
+ params=(
22
+ Param(
23
+ name='project_id',
24
+ location='path',
25
+ kind='string',
26
+ required=True,
27
+ description='Project Id',
28
+ ),
29
+ ),
30
+ body=Body(
31
+ schema='AccessRoleCreate',
32
+ fields=(
33
+ Param(
34
+ name='description',
35
+ location='body',
36
+ kind='string',
37
+ required=False,
38
+ description='Description',
39
+ ),
40
+ Param(
41
+ name='name',
42
+ location='body',
43
+ kind='string',
44
+ required=True,
45
+ description='Name',
46
+ ),
47
+ ),
48
+ ),
49
+ response=Response(
50
+ kind='json',
51
+ model='warehouse_access_role:AccessRoleOut',
52
+ shape='object',
53
+ ),
54
+ examples=(
55
+ 'databay warehouse-access-role create <project_id> --name analysts',
56
+ ),
57
+ )
58
+
59
+ WAREHOUSE_ACCESS_ROLE_DELETE = Operation(
60
+ operation_id='warehouse_access_role_delete',
61
+ noun='warehouse-access-role',
62
+ verb='delete',
63
+ method='delete',
64
+ path='/api/configstore/projects/{project_id}/warehouse-access/roles/{role_id}',
65
+ summary='Delete Role',
66
+ description='Delete a role: its holders lose it now, and the warehouse loses it at the next reconcile.',
67
+ project='path:project_id',
68
+ destructive=True,
69
+ idempotent=False,
70
+ since='1.0',
71
+ params=(
72
+ Param(
73
+ name='project_id',
74
+ location='path',
75
+ kind='string',
76
+ required=True,
77
+ description='Project Id',
78
+ ),
79
+ Param(
80
+ name='role_id',
81
+ location='path',
82
+ kind='string',
83
+ required=True,
84
+ description='Role Id',
85
+ ),
86
+ ),
87
+ body=None,
88
+ response=Response(
89
+ kind='empty',
90
+ ),
91
+ examples=(
92
+ 'databay warehouse-access-role delete <project_id> <role_id> --yes',
93
+ ),
94
+ )
95
+
96
+ WAREHOUSE_ACCESS_ROLE_GET_METRICS = Operation(
97
+ operation_id='warehouse_access_role_get_metrics',
98
+ noun='warehouse-access-role',
99
+ verb='get-metrics',
100
+ method='get',
101
+ path='/api/configstore/projects/{project_id}/warehouse-access/roles/{role_id}/metrics',
102
+ summary='Get Metric Grant',
103
+ description='Show which semantic-layer metrics the role reads; ``grant`` null means every metric over what it reads.',
104
+ project='path:project_id',
105
+ destructive=False,
106
+ idempotent=False,
107
+ since='1.0',
108
+ params=(
109
+ Param(
110
+ name='project_id',
111
+ location='path',
112
+ kind='string',
113
+ required=True,
114
+ description='Project Id',
115
+ ),
116
+ Param(
117
+ name='role_id',
118
+ location='path',
119
+ kind='string',
120
+ required=True,
121
+ description='Role Id',
122
+ ),
123
+ ),
124
+ body=None,
125
+ response=Response(
126
+ kind='json',
127
+ model='warehouse_access_role:RoleMetricsOut',
128
+ shape='object',
129
+ ),
130
+ examples=(
131
+ 'databay warehouse-access-role get-metrics <project_id> <role_id>',
132
+ ),
133
+ )
134
+
135
+ WAREHOUSE_ACCESS_ROLE_LIST = Operation(
136
+ operation_id='warehouse_access_role_list',
137
+ noun='warehouse-access-role',
138
+ verb='list',
139
+ method='get',
140
+ path='/api/configstore/projects/{project_id}/warehouse-access/roles',
141
+ summary='List Roles',
142
+ description="List the project's access roles and their rules.",
143
+ project='path:project_id',
144
+ destructive=False,
145
+ idempotent=False,
146
+ since='1.0',
147
+ params=(
148
+ Param(
149
+ name='project_id',
150
+ location='path',
151
+ kind='string',
152
+ required=True,
153
+ description='Project Id',
154
+ ),
155
+ ),
156
+ body=None,
157
+ response=Response(
158
+ kind='json',
159
+ model='warehouse_access_role:WarehouseAccessRoleListResponse',
160
+ shape='array',
161
+ ),
162
+ examples=(
163
+ 'databay warehouse-access-role list <project_id>',
164
+ ),
165
+ columns=(
166
+ 'uuid',
167
+ 'name',
168
+ 'scope_mode',
169
+ 'is_default',
170
+ ),
171
+ )
172
+
173
+ WAREHOUSE_ACCESS_ROLE_LIST_TABLES = Operation(
174
+ operation_id='warehouse_access_role_list_tables',
175
+ noun='warehouse-access-role',
176
+ verb='list-tables',
177
+ method='get',
178
+ path='/api/configstore/projects/{project_id}/warehouse-access/warehouses/{db_uuid}/schema',
179
+ summary='Warehouse Schema',
180
+ description='List the tables and columns a rule can name in one warehouse of the project; 503 ``warehouse_unavailable``.',
181
+ project='path:project_id',
182
+ destructive=False,
183
+ idempotent=False,
184
+ since='1.0',
185
+ params=(
186
+ Param(
187
+ name='project_id',
188
+ location='path',
189
+ kind='string',
190
+ required=True,
191
+ description='Project Id',
192
+ ),
193
+ Param(
194
+ name='db_uuid',
195
+ location='path',
196
+ kind='string',
197
+ required=True,
198
+ description='Db Uuid',
199
+ ),
200
+ ),
201
+ body=None,
202
+ response=Response(
203
+ kind='json',
204
+ model='warehouse_access_role:WarehouseSchemaOut',
205
+ shape='object',
206
+ ),
207
+ examples=(
208
+ 'databay warehouse-access-role list-tables <project_id> <db_uuid>',
209
+ ),
210
+ )
211
+
212
+ WAREHOUSE_ACCESS_ROLE_SET_METRICS = Operation(
213
+ operation_id='warehouse_access_role_set_metrics',
214
+ noun='warehouse-access-role',
215
+ verb='set-metrics',
216
+ method='put',
217
+ path='/api/configstore/projects/{project_id}/warehouse-access/roles/{role_id}/metrics',
218
+ summary='Put Metric Grant',
219
+ description="Replace the role's metric grant (revision-checked); names are stored as given, semantic checks them.\n\n``include`` reads only the named metrics, ``exclude`` all but them. Refusals: 422 ``request_invalid`` for a\nname that is not a distinct snake_case identifier; 409 ``access_role_revision_conflict``.",
220
+ project='path:project_id',
221
+ destructive=False,
222
+ idempotent=False,
223
+ since='1.0',
224
+ params=(
225
+ Param(
226
+ name='project_id',
227
+ location='path',
228
+ kind='string',
229
+ required=True,
230
+ description='Project Id',
231
+ ),
232
+ Param(
233
+ name='role_id',
234
+ location='path',
235
+ kind='string',
236
+ required=True,
237
+ description='Role Id',
238
+ ),
239
+ ),
240
+ body=Body(
241
+ schema='MetricGrantPut',
242
+ fields=(
243
+ Param(
244
+ name='metrics',
245
+ location='body',
246
+ kind='list',
247
+ required=True,
248
+ description='Metrics',
249
+ item_kind='string',
250
+ ),
251
+ Param(
252
+ name='mode',
253
+ location='body',
254
+ kind='string',
255
+ required=True,
256
+ choices=(
257
+ 'include',
258
+ 'exclude',
259
+ ),
260
+ ),
261
+ Param(
262
+ name='revision',
263
+ location='body',
264
+ kind='integer',
265
+ required=True,
266
+ description="the role's revision the change is based on",
267
+ ),
268
+ ),
269
+ ),
270
+ response=Response(
271
+ kind='json',
272
+ model='warehouse_access_role:RoleMetricsOut',
273
+ shape='object',
274
+ ),
275
+ examples=(
276
+ 'databay warehouse-access-role set-metrics <project_id> <role_id> --file metrics.json',
277
+ ),
278
+ )
279
+
280
+ WAREHOUSE_ACCESS_ROLE_SET_RULES = Operation(
281
+ operation_id='warehouse_access_role_set_rules',
282
+ noun='warehouse-access-role',
283
+ verb='set-rules',
284
+ method='put',
285
+ path='/api/configstore/projects/{project_id}/warehouse-access/roles/{role_id}/rules',
286
+ summary='Put Rules',
287
+ description='Replace the role\'s rules (revision-checked), each checked at write time.\n\nA rule naming a built relation (``built_database``) reads every column of it and may carry a ``row_filter``\nover the relation\'s own columns; the warehouse and the semantic layer both apply it. For example\n``{"db_uuid": "...", "built_database": "...", "table_name": "orders_daily", "row_filter": {"all": [{"column":\n"channel", "op": "in", "value": ["web", "pos"]}, {"column": "country", "op": "is_not_null"}]}}``.\n\nRefusals: 422 ``rule_duplicate_table``, ``rule_scope_invalid``, ``rule_overlap``,\n``rule_warehouse_not_managed``, ``rule_warehouse_not_visible``, ``access_capability_unsupported``,\n``rule_table_unknown``, ``rule_column_unknown``, ``row_filter_invalid``, ``built_table_restricted_upstream``;\n409 ``conflicting_table_rules`` and ``access_role_revision_conflict``.',
288
+ project='path:project_id',
289
+ destructive=False,
290
+ idempotent=False,
291
+ since='1.0',
292
+ params=(
293
+ Param(
294
+ name='project_id',
295
+ location='path',
296
+ kind='string',
297
+ required=True,
298
+ description='Project Id',
299
+ ),
300
+ Param(
301
+ name='role_id',
302
+ location='path',
303
+ kind='string',
304
+ required=True,
305
+ description='Role Id',
306
+ ),
307
+ ),
308
+ body=Body(
309
+ schema='AccessRulesPut',
310
+ fields=(
311
+ Param(
312
+ name='revision',
313
+ location='body',
314
+ kind='integer',
315
+ required=True,
316
+ description="the role's revision the change is based on",
317
+ ),
318
+ Param(
319
+ name='rules',
320
+ location='body',
321
+ kind='json',
322
+ required=True,
323
+ description="the role's whole rule set",
324
+ ),
325
+ ),
326
+ ),
327
+ response=Response(
328
+ kind='json',
329
+ model='warehouse_access_role:AccessRoleOut',
330
+ shape='object',
331
+ ),
332
+ examples=(
333
+ 'databay warehouse-access-role set-rules <project_id> <role_id> --file rules.json',
334
+ ),
335
+ )
336
+
337
+ WAREHOUSE_ACCESS_ROLE_SET_SCOPE_MODE = Operation(
338
+ operation_id='warehouse_access_role_set_scope_mode',
339
+ noun='warehouse-access-role',
340
+ verb='set-scope-mode',
341
+ method='put',
342
+ path='/api/configstore/projects/{project_id}/warehouse-access/roles/{role_id}/scope-mode',
343
+ summary='Set Scope Mode',
344
+ description='Switch the default role between every visible warehouse (``all_visible``) and explicit rules.',
345
+ project='path:project_id',
346
+ destructive=True,
347
+ idempotent=False,
348
+ since='1.0',
349
+ params=(
350
+ Param(
351
+ name='project_id',
352
+ location='path',
353
+ kind='string',
354
+ required=True,
355
+ description='Project Id',
356
+ ),
357
+ Param(
358
+ name='role_id',
359
+ location='path',
360
+ kind='string',
361
+ required=True,
362
+ description='Role Id',
363
+ ),
364
+ ),
365
+ body=Body(
366
+ schema='AccessScopeModePut',
367
+ fields=(
368
+ Param(
369
+ name='revision',
370
+ location='body',
371
+ kind='integer',
372
+ required=True,
373
+ description='Revision',
374
+ ),
375
+ Param(
376
+ name='scope_mode',
377
+ location='body',
378
+ kind='string',
379
+ required=True,
380
+ choices=(
381
+ 'rules',
382
+ 'all_visible',
383
+ ),
384
+ ),
385
+ ),
386
+ ),
387
+ response=Response(
388
+ kind='json',
389
+ model='warehouse_access_role:AccessRoleOut',
390
+ shape='object',
391
+ ),
392
+ examples=(
393
+ 'databay warehouse-access-role set-scope-mode <project_id> <role_id> --scope-mode rules --revision 1 --yes',
394
+ ),
395
+ )
396
+
397
+ WAREHOUSE_ACCESS_ROLE_UPDATE = Operation(
398
+ operation_id='warehouse_access_role_update',
399
+ noun='warehouse-access-role',
400
+ verb='update',
401
+ method='patch',
402
+ path='/api/configstore/projects/{project_id}/warehouse-access/roles/{role_id}',
403
+ summary='Update Role',
404
+ description='Rename or redescribe a role (revision-checked).',
405
+ project='path:project_id',
406
+ destructive=False,
407
+ idempotent=False,
408
+ since='1.0',
409
+ params=(
410
+ Param(
411
+ name='project_id',
412
+ location='path',
413
+ kind='string',
414
+ required=True,
415
+ description='Project Id',
416
+ ),
417
+ Param(
418
+ name='role_id',
419
+ location='path',
420
+ kind='string',
421
+ required=True,
422
+ description='Role Id',
423
+ ),
424
+ ),
425
+ body=Body(
426
+ schema='AccessRolePatch',
427
+ fields=(
428
+ Param(
429
+ name='description',
430
+ location='body',
431
+ kind='string',
432
+ required=False,
433
+ description='Description',
434
+ nullable=True,
435
+ ),
436
+ Param(
437
+ name='name',
438
+ location='body',
439
+ kind='string',
440
+ required=False,
441
+ description='Name',
442
+ nullable=True,
443
+ ),
444
+ Param(
445
+ name='revision',
446
+ location='body',
447
+ kind='integer',
448
+ required=True,
449
+ description="the role's revision the change is based on",
450
+ ),
451
+ ),
452
+ ),
453
+ response=Response(
454
+ kind='json',
455
+ model='warehouse_access_role:AccessRoleOut',
456
+ shape='object',
457
+ ),
458
+ examples=(
459
+ 'databay warehouse-access-role update <project_id> <role_id> --name finance --revision 1',
460
+ ),
461
+ )
462
+
463
+ OPERATIONS = (
464
+ WAREHOUSE_ACCESS_ROLE_CREATE,
465
+ WAREHOUSE_ACCESS_ROLE_DELETE,
466
+ WAREHOUSE_ACCESS_ROLE_GET_METRICS,
467
+ WAREHOUSE_ACCESS_ROLE_LIST,
468
+ WAREHOUSE_ACCESS_ROLE_LIST_TABLES,
469
+ WAREHOUSE_ACCESS_ROLE_SET_METRICS,
470
+ WAREHOUSE_ACCESS_ROLE_SET_RULES,
471
+ WAREHOUSE_ACCESS_ROLE_SET_SCOPE_MODE,
472
+ WAREHOUSE_ACCESS_ROLE_UPDATE,
473
+ )