UncountablePythonSDK 0.0.24__py3-none-any.whl → 0.0.131__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.

Potentially problematic release.


This version of UncountablePythonSDK might be problematic. Click here for more details.

Files changed (373) hide show
  1. docs/conf.py +60 -8
  2. docs/index.md +107 -4
  3. docs/integration_examples/create_ingredient.md +43 -0
  4. docs/integration_examples/create_output.md +56 -0
  5. docs/integration_examples/index.md +6 -0
  6. docs/justfile +2 -2
  7. docs/requirements.txt +7 -5
  8. examples/async_batch.py +5 -6
  9. examples/basic_auth.py +7 -0
  10. examples/create_entity.py +4 -6
  11. examples/create_ingredient_sdk.py +34 -0
  12. examples/download_files.py +26 -0
  13. examples/edit_recipe_inputs.py +50 -0
  14. examples/integration-server/jobs/materials_auto/concurrent_cron.py +11 -0
  15. examples/integration-server/jobs/materials_auto/example_cron.py +21 -0
  16. examples/integration-server/jobs/materials_auto/example_http.py +47 -0
  17. examples/integration-server/jobs/materials_auto/example_instrument.py +100 -0
  18. examples/integration-server/jobs/materials_auto/example_parse.py +140 -0
  19. examples/integration-server/jobs/materials_auto/example_predictions.py +61 -0
  20. examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +39 -0
  21. examples/integration-server/jobs/materials_auto/example_wh.py +23 -0
  22. examples/integration-server/jobs/materials_auto/profile.yaml +104 -0
  23. examples/integration-server/pyproject.toml +224 -0
  24. examples/invoke_uploader.py +26 -0
  25. examples/oauth.py +7 -0
  26. examples/set_recipe_metadata_file.py +40 -0
  27. examples/set_recipe_output_file_sdk.py +26 -0
  28. examples/upload_files.py +2 -3
  29. pkgs/argument_parser/__init__.py +9 -0
  30. pkgs/argument_parser/_is_namedtuple.py +3 -0
  31. pkgs/argument_parser/argument_parser.py +295 -74
  32. pkgs/argument_parser/case_convert.py +4 -3
  33. pkgs/filesystem_utils/__init__.py +20 -0
  34. pkgs/filesystem_utils/_blob_session.py +144 -0
  35. pkgs/filesystem_utils/_gdrive_session.py +309 -0
  36. pkgs/filesystem_utils/_local_session.py +69 -0
  37. pkgs/filesystem_utils/_s3_session.py +118 -0
  38. pkgs/filesystem_utils/_sftp_session.py +151 -0
  39. pkgs/filesystem_utils/file_type_utils.py +91 -0
  40. pkgs/filesystem_utils/filesystem_session.py +39 -0
  41. pkgs/py.typed +0 -0
  42. pkgs/serialization/__init__.py +8 -1
  43. pkgs/serialization/annotation.py +64 -0
  44. pkgs/serialization/missing_sentry.py +1 -1
  45. pkgs/serialization/opaque_key.py +1 -1
  46. pkgs/serialization/serial_alias.py +47 -0
  47. pkgs/serialization/serial_class.py +69 -54
  48. pkgs/serialization/serial_generic.py +16 -0
  49. pkgs/serialization/serial_union.py +84 -0
  50. pkgs/serialization/yaml.py +57 -0
  51. pkgs/serialization_util/__init__.py +7 -7
  52. pkgs/serialization_util/convert_to_snakecase.py +27 -0
  53. pkgs/serialization_util/dataclasses.py +14 -0
  54. pkgs/serialization_util/serialization_helpers.py +117 -71
  55. pkgs/type_spec/actions_registry/__main__.py +0 -4
  56. pkgs/type_spec/actions_registry/emit_typescript.py +5 -5
  57. pkgs/type_spec/builder.py +438 -109
  58. pkgs/type_spec/builder_types.py +9 -0
  59. pkgs/type_spec/config.py +52 -24
  60. pkgs/type_spec/cross_output_links.py +99 -0
  61. pkgs/type_spec/emit_io_ts.py +1 -1
  62. pkgs/type_spec/emit_open_api.py +160 -41
  63. pkgs/type_spec/emit_open_api_util.py +13 -7
  64. pkgs/type_spec/emit_python.py +450 -136
  65. pkgs/type_spec/emit_typescript.py +117 -250
  66. pkgs/type_spec/emit_typescript_util.py +293 -4
  67. pkgs/type_spec/load_types.py +20 -5
  68. pkgs/type_spec/non_discriminated_union_exceptions.py +14 -0
  69. pkgs/type_spec/open_api_util.py +29 -4
  70. pkgs/type_spec/parts/base.py.prepart +13 -10
  71. pkgs/type_spec/parts/base.ts.prepart +4 -0
  72. pkgs/type_spec/type_info/__main__.py +3 -1
  73. pkgs/type_spec/type_info/emit_type_info.py +161 -32
  74. pkgs/type_spec/ui_entry_actions/__init__.py +4 -0
  75. pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +308 -0
  76. pkgs/type_spec/util.py +4 -4
  77. pkgs/type_spec/value_spec/__main__.py +27 -10
  78. pkgs/type_spec/value_spec/convert_type.py +21 -1
  79. pkgs/type_spec/value_spec/emit_python.py +25 -7
  80. pkgs/type_spec/value_spec/types.py +1 -1
  81. uncountable/__init__.py +1 -2
  82. uncountable/core/__init__.py +11 -3
  83. uncountable/core/async_batch.py +16 -1
  84. uncountable/core/client.py +247 -52
  85. uncountable/core/environment.py +41 -0
  86. uncountable/core/file_upload.py +67 -22
  87. uncountable/core/types.py +8 -13
  88. uncountable/integration/cli.py +142 -0
  89. uncountable/integration/construct_client.py +43 -27
  90. uncountable/integration/cron.py +12 -11
  91. uncountable/integration/db/connect.py +12 -2
  92. uncountable/integration/db/session.py +25 -0
  93. uncountable/integration/entrypoint.py +4 -34
  94. uncountable/integration/executors/executors.py +147 -0
  95. uncountable/integration/executors/generic_upload_executor.py +336 -0
  96. uncountable/integration/executors/script_executor.py +15 -9
  97. uncountable/integration/http_server/__init__.py +5 -0
  98. uncountable/integration/http_server/types.py +69 -0
  99. uncountable/integration/job.py +246 -19
  100. uncountable/integration/queue_runner/__init__.py +0 -0
  101. uncountable/integration/queue_runner/command_server/__init__.py +28 -0
  102. uncountable/integration/queue_runner/command_server/command_client.py +133 -0
  103. uncountable/integration/queue_runner/command_server/command_server.py +142 -0
  104. uncountable/integration/queue_runner/command_server/constants.py +4 -0
  105. uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
  106. uncountable/integration/queue_runner/command_server/protocol/command_server.proto +58 -0
  107. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +57 -0
  108. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +114 -0
  109. uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +264 -0
  110. uncountable/integration/queue_runner/command_server/types.py +75 -0
  111. uncountable/integration/queue_runner/datastore/__init__.py +3 -0
  112. uncountable/integration/queue_runner/datastore/datastore_sqlite.py +250 -0
  113. uncountable/integration/queue_runner/datastore/interface.py +29 -0
  114. uncountable/integration/queue_runner/datastore/model.py +24 -0
  115. uncountable/integration/queue_runner/job_scheduler.py +200 -0
  116. uncountable/integration/queue_runner/queue_runner.py +34 -0
  117. uncountable/integration/queue_runner/types.py +7 -0
  118. uncountable/integration/queue_runner/worker.py +116 -0
  119. uncountable/integration/scan_profiles.py +67 -0
  120. uncountable/integration/scheduler.py +199 -0
  121. uncountable/integration/secret_retrieval/__init__.py +3 -0
  122. uncountable/integration/secret_retrieval/retrieve_secret.py +93 -0
  123. uncountable/integration/server.py +103 -54
  124. uncountable/integration/telemetry.py +251 -0
  125. uncountable/integration/webhook_server/entrypoint.py +97 -0
  126. uncountable/types/__init__.py +149 -30
  127. uncountable/types/api/batch/execute_batch.py +16 -9
  128. uncountable/types/api/batch/execute_batch_load_async.py +13 -7
  129. uncountable/types/api/chemical/convert_chemical_formats.py +20 -8
  130. uncountable/types/api/condition_parameters/__init__.py +1 -0
  131. uncountable/types/api/condition_parameters/upsert_condition_match.py +72 -0
  132. uncountable/types/api/entity/create_entities.py +24 -12
  133. uncountable/types/api/entity/create_entity.py +22 -13
  134. uncountable/types/api/entity/create_or_update_entity.py +48 -0
  135. uncountable/types/api/entity/export_entities.py +59 -0
  136. uncountable/types/api/entity/get_entities_data.py +18 -9
  137. uncountable/types/api/entity/grant_entity_permissions.py +48 -0
  138. uncountable/types/api/entity/list_aggregate.py +79 -0
  139. uncountable/types/api/entity/list_entities.py +53 -14
  140. uncountable/types/api/entity/lock_entity.py +45 -0
  141. uncountable/types/api/entity/lookup_entity.py +116 -0
  142. uncountable/types/api/entity/resolve_entity_ids.py +19 -10
  143. uncountable/types/api/entity/set_entity_field_values.py +44 -0
  144. uncountable/types/api/entity/set_values.py +15 -8
  145. uncountable/types/api/entity/transition_entity_phase.py +27 -12
  146. uncountable/types/api/entity/unlock_entity.py +44 -0
  147. uncountable/types/api/equipment/__init__.py +1 -0
  148. uncountable/types/api/equipment/associate_equipment_input.py +43 -0
  149. uncountable/types/api/field_options/__init__.py +1 -0
  150. uncountable/types/api/field_options/upsert_field_options.py +55 -0
  151. uncountable/types/api/files/__init__.py +1 -0
  152. uncountable/types/api/files/download_file.py +77 -0
  153. uncountable/types/api/id_source/list_id_source.py +20 -11
  154. uncountable/types/api/id_source/match_id_source.py +15 -10
  155. uncountable/types/api/input_groups/get_input_group_names.py +16 -7
  156. uncountable/types/api/inputs/create_inputs.py +28 -14
  157. uncountable/types/api/inputs/get_input_data.py +34 -16
  158. uncountable/types/api/inputs/get_input_names.py +19 -10
  159. uncountable/types/api/inputs/get_inputs_data.py +29 -11
  160. uncountable/types/api/inputs/set_input_attribute_values.py +16 -10
  161. uncountable/types/api/inputs/set_input_category.py +44 -0
  162. uncountable/types/api/inputs/set_input_subcategories.py +45 -0
  163. uncountable/types/api/inputs/set_intermediate_type.py +50 -0
  164. uncountable/types/api/integrations/__init__.py +1 -0
  165. uncountable/types/api/integrations/publish_realtime_data.py +41 -0
  166. uncountable/types/api/integrations/push_notification.py +49 -0
  167. uncountable/types/api/integrations/register_sockets_token.py +41 -0
  168. uncountable/types/api/listing/__init__.py +1 -0
  169. uncountable/types/api/listing/fetch_listing.py +58 -0
  170. uncountable/types/api/material_families/__init__.py +1 -0
  171. uncountable/types/api/material_families/update_entity_material_families.py +47 -0
  172. uncountable/types/api/notebooks/__init__.py +1 -0
  173. uncountable/types/api/notebooks/add_notebook_content.py +119 -0
  174. uncountable/types/api/outputs/get_output_data.py +32 -17
  175. uncountable/types/api/outputs/get_output_names.py +18 -9
  176. uncountable/types/api/outputs/get_output_organization.py +173 -0
  177. uncountable/types/api/outputs/resolve_output_conditions.py +23 -11
  178. uncountable/types/api/permissions/set_core_permissions.py +31 -15
  179. uncountable/types/api/project/get_projects.py +20 -11
  180. uncountable/types/api/project/get_projects_data.py +23 -14
  181. uncountable/types/api/recipe_links/create_recipe_link.py +17 -10
  182. uncountable/types/api/recipe_links/remove_recipe_link.py +45 -0
  183. uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +19 -10
  184. uncountable/types/api/recipes/add_recipe_to_project.py +42 -0
  185. uncountable/types/api/recipes/add_time_series_data.py +64 -0
  186. uncountable/types/api/recipes/archive_recipes.py +14 -7
  187. uncountable/types/api/recipes/associate_recipe_as_input.py +16 -8
  188. uncountable/types/api/recipes/associate_recipe_as_lot.py +14 -7
  189. uncountable/types/api/recipes/clear_recipe_outputs.py +42 -0
  190. uncountable/types/api/recipes/create_mix_order.py +44 -0
  191. uncountable/types/api/recipes/create_recipe.py +21 -14
  192. uncountable/types/api/recipes/create_recipes.py +25 -13
  193. uncountable/types/api/recipes/disassociate_recipe_as_input.py +14 -7
  194. uncountable/types/api/recipes/edit_recipe_inputs.py +208 -19
  195. uncountable/types/api/recipes/get_column_calculation_values.py +57 -0
  196. uncountable/types/api/recipes/get_curve.py +15 -9
  197. uncountable/types/api/recipes/get_recipe_calculations.py +17 -11
  198. uncountable/types/api/recipes/get_recipe_links.py +14 -8
  199. uncountable/types/api/recipes/get_recipe_names.py +16 -7
  200. uncountable/types/api/recipes/get_recipe_output_metadata.py +16 -10
  201. uncountable/types/api/recipes/get_recipes_data.py +96 -45
  202. uncountable/types/api/recipes/lock_recipes.py +64 -0
  203. uncountable/types/api/recipes/remove_recipe_from_project.py +42 -0
  204. uncountable/types/api/recipes/set_recipe_inputs.py +19 -13
  205. uncountable/types/api/recipes/set_recipe_metadata.py +14 -7
  206. uncountable/types/api/recipes/set_recipe_output_annotations.py +114 -0
  207. uncountable/types/api/recipes/set_recipe_output_file.py +55 -0
  208. uncountable/types/api/recipes/set_recipe_outputs.py +40 -15
  209. uncountable/types/api/recipes/set_recipe_tags.py +30 -13
  210. uncountable/types/api/recipes/set_recipe_total.py +59 -0
  211. uncountable/types/api/recipes/unarchive_recipes.py +41 -0
  212. uncountable/types/api/recipes/unlock_recipes.py +51 -0
  213. uncountable/types/api/runsheet/__init__.py +1 -0
  214. uncountable/types/api/runsheet/complete_async_upload.py +41 -0
  215. uncountable/types/api/triggers/run_trigger.py +15 -8
  216. uncountable/types/api/uploader/__init__.py +1 -0
  217. uncountable/types/api/uploader/complete_async_parse.py +46 -0
  218. uncountable/types/api/uploader/invoke_uploader.py +46 -0
  219. uncountable/types/api/user/__init__.py +1 -0
  220. uncountable/types/api/user/get_current_user_info.py +40 -0
  221. uncountable/types/async_batch.py +8 -52
  222. uncountable/types/async_batch_processor.py +694 -18
  223. uncountable/types/async_batch_t.py +108 -0
  224. uncountable/types/async_jobs.py +8 -0
  225. uncountable/types/async_jobs_t.py +52 -0
  226. uncountable/types/auth_retrieval.py +11 -0
  227. uncountable/types/auth_retrieval_t.py +75 -0
  228. uncountable/types/base.py +5 -80
  229. uncountable/types/base_t.py +87 -0
  230. uncountable/types/calculations.py +3 -19
  231. uncountable/types/calculations_t.py +26 -0
  232. uncountable/types/chemical_structure.py +3 -23
  233. uncountable/types/chemical_structure_t.py +28 -0
  234. uncountable/types/client_base.py +1170 -88
  235. uncountable/types/client_config.py +8 -0
  236. uncountable/types/client_config_t.py +36 -0
  237. uncountable/types/curves.py +5 -43
  238. uncountable/types/curves_t.py +50 -0
  239. uncountable/types/data.py +12 -0
  240. uncountable/types/data_t.py +103 -0
  241. uncountable/types/entity.py +8 -270
  242. uncountable/types/entity_t.py +446 -0
  243. uncountable/types/experiment_groups.py +3 -19
  244. uncountable/types/experiment_groups_t.py +26 -0
  245. uncountable/types/exports.py +8 -0
  246. uncountable/types/exports_t.py +34 -0
  247. uncountable/types/field_values.py +25 -61
  248. uncountable/types/field_values_t.py +302 -0
  249. uncountable/types/fields.py +3 -20
  250. uncountable/types/fields_t.py +27 -0
  251. uncountable/types/generic_upload.py +14 -0
  252. uncountable/types/generic_upload_t.py +119 -0
  253. uncountable/types/id_source.py +7 -45
  254. uncountable/types/id_source_t.py +68 -0
  255. uncountable/types/identifier.py +6 -50
  256. uncountable/types/identifier_t.py +62 -0
  257. uncountable/types/input_attributes.py +3 -25
  258. uncountable/types/input_attributes_t.py +29 -0
  259. uncountable/types/inputs.py +6 -57
  260. uncountable/types/inputs_t.py +82 -0
  261. uncountable/types/integration_server.py +8 -0
  262. uncountable/types/integration_server_t.py +46 -0
  263. uncountable/types/integration_session.py +10 -0
  264. uncountable/types/integration_session_t.py +60 -0
  265. uncountable/types/integrations.py +10 -0
  266. uncountable/types/integrations_t.py +62 -0
  267. uncountable/types/job_definition.py +28 -0
  268. uncountable/types/job_definition_t.py +285 -0
  269. uncountable/types/listing.py +9 -0
  270. uncountable/types/listing_t.py +51 -0
  271. uncountable/types/notices.py +8 -0
  272. uncountable/types/notices_t.py +37 -0
  273. uncountable/types/notifications.py +11 -0
  274. uncountable/types/notifications_t.py +74 -0
  275. uncountable/types/outputs.py +3 -22
  276. uncountable/types/outputs_t.py +29 -0
  277. uncountable/types/overrides.py +9 -0
  278. uncountable/types/overrides_t.py +49 -0
  279. uncountable/types/permissions.py +3 -42
  280. uncountable/types/permissions_t.py +45 -0
  281. uncountable/types/phases.py +3 -19
  282. uncountable/types/phases_t.py +26 -0
  283. uncountable/types/post_base.py +3 -26
  284. uncountable/types/post_base_t.py +29 -0
  285. uncountable/types/queued_job.py +17 -0
  286. uncountable/types/queued_job_t.py +140 -0
  287. uncountable/types/recipe_identifiers.py +7 -58
  288. uncountable/types/recipe_identifiers_t.py +75 -0
  289. uncountable/types/recipe_inputs.py +4 -26
  290. uncountable/types/recipe_inputs_t.py +29 -0
  291. uncountable/types/recipe_links.py +4 -46
  292. uncountable/types/recipe_links_t.py +53 -0
  293. uncountable/types/recipe_metadata.py +5 -48
  294. uncountable/types/recipe_metadata_t.py +57 -0
  295. uncountable/types/recipe_output_metadata.py +3 -20
  296. uncountable/types/recipe_output_metadata_t.py +27 -0
  297. uncountable/types/recipe_tags.py +3 -19
  298. uncountable/types/recipe_tags_t.py +26 -0
  299. uncountable/types/recipe_workflow_steps.py +9 -73
  300. uncountable/types/recipe_workflow_steps_t.py +95 -0
  301. uncountable/types/recipes.py +7 -0
  302. uncountable/types/recipes_t.py +25 -0
  303. uncountable/types/response.py +3 -21
  304. uncountable/types/response_t.py +26 -0
  305. uncountable/types/secret_retrieval.py +11 -0
  306. uncountable/types/secret_retrieval_t.py +75 -0
  307. uncountable/types/sockets.py +20 -0
  308. uncountable/types/sockets_t.py +169 -0
  309. uncountable/types/structured_filters.py +25 -0
  310. uncountable/types/structured_filters_t.py +248 -0
  311. uncountable/types/units.py +3 -19
  312. uncountable/types/units_t.py +26 -0
  313. uncountable/types/uploader.py +24 -0
  314. uncountable/types/uploader_t.py +222 -0
  315. uncountable/types/users.py +3 -20
  316. uncountable/types/users_t.py +27 -0
  317. uncountable/types/webhook_job.py +9 -0
  318. uncountable/types/webhook_job_t.py +48 -0
  319. uncountable/types/workflows.py +4 -28
  320. uncountable/types/workflows_t.py +38 -0
  321. uncountablepythonsdk-0.0.131.dist-info/METADATA +64 -0
  322. uncountablepythonsdk-0.0.131.dist-info/RECORD +363 -0
  323. {UncountablePythonSDK-0.0.24.dist-info → uncountablepythonsdk-0.0.131.dist-info}/WHEEL +1 -1
  324. {UncountablePythonSDK-0.0.24.dist-info → uncountablepythonsdk-0.0.131.dist-info}/top_level.txt +0 -1
  325. UncountablePythonSDK-0.0.24.dist-info/METADATA +0 -47
  326. UncountablePythonSDK-0.0.24.dist-info/RECORD +0 -216
  327. docs/quickstart.md +0 -19
  328. examples/recipe-import/importer.py +0 -39
  329. type_spec/external/api/batch/execute_batch.yaml +0 -56
  330. type_spec/external/api/batch/execute_batch_load_async.yaml +0 -18
  331. type_spec/external/api/chemical/convert_chemical_formats.yaml +0 -33
  332. type_spec/external/api/entity/create_entities.yaml +0 -45
  333. type_spec/external/api/entity/create_entity.yaml +0 -51
  334. type_spec/external/api/entity/get_entities_data.yaml +0 -29
  335. type_spec/external/api/entity/list_entities.yaml +0 -52
  336. type_spec/external/api/entity/resolve_entity_ids.yaml +0 -29
  337. type_spec/external/api/entity/set_values.yaml +0 -18
  338. type_spec/external/api/entity/transition_entity_phase.yaml +0 -44
  339. type_spec/external/api/id_source/list_id_source.yaml +0 -35
  340. type_spec/external/api/id_source/match_id_source.yaml +0 -32
  341. type_spec/external/api/input_groups/get_input_group_names.yaml +0 -29
  342. type_spec/external/api/inputs/create_inputs.yaml +0 -48
  343. type_spec/external/api/inputs/get_input_data.yaml +0 -95
  344. type_spec/external/api/inputs/get_input_names.yaml +0 -38
  345. type_spec/external/api/inputs/get_inputs_data.yaml +0 -82
  346. type_spec/external/api/inputs/set_input_attribute_values.yaml +0 -33
  347. type_spec/external/api/outputs/get_output_data.yaml +0 -92
  348. type_spec/external/api/outputs/get_output_names.yaml +0 -35
  349. type_spec/external/api/outputs/resolve_output_conditions.yaml +0 -50
  350. type_spec/external/api/permissions/set_core_permissions.yaml +0 -69
  351. type_spec/external/api/project/get_projects.yaml +0 -42
  352. type_spec/external/api/project/get_projects_data.yaml +0 -50
  353. type_spec/external/api/recipe_links/create_recipe_link.yaml +0 -25
  354. type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml +0 -41
  355. type_spec/external/api/recipes/archive_recipes.yaml +0 -20
  356. type_spec/external/api/recipes/associate_recipe_as_input.yaml +0 -19
  357. type_spec/external/api/recipes/associate_recipe_as_lot.yaml +0 -19
  358. type_spec/external/api/recipes/create_recipe.yaml +0 -39
  359. type_spec/external/api/recipes/create_recipes.yaml +0 -47
  360. type_spec/external/api/recipes/disassociate_recipe_as_input.yaml +0 -16
  361. type_spec/external/api/recipes/edit_recipe_inputs.yaml +0 -85
  362. type_spec/external/api/recipes/get_curve.yaml +0 -21
  363. type_spec/external/api/recipes/get_recipe_calculations.yaml +0 -39
  364. type_spec/external/api/recipes/get_recipe_links.yaml +0 -26
  365. type_spec/external/api/recipes/get_recipe_names.yaml +0 -29
  366. type_spec/external/api/recipes/get_recipe_output_metadata.yaml +0 -36
  367. type_spec/external/api/recipes/get_recipes_data.yaml +0 -244
  368. type_spec/external/api/recipes/set_recipe_inputs.yaml +0 -42
  369. type_spec/external/api/recipes/set_recipe_metadata.yaml +0 -20
  370. type_spec/external/api/recipes/set_recipe_outputs.yaml +0 -52
  371. type_spec/external/api/recipes/set_recipe_tags.yaml +0 -62
  372. type_spec/external/api/triggers/run_trigger.yaml +0 -18
  373. uncountable/integration/types.py +0 -89
@@ -0,0 +1,285 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ from __future__ import annotations
6
+ import typing # noqa: F401
7
+ import datetime # noqa: F401
8
+ from decimal import Decimal # noqa: F401
9
+ from enum import StrEnum
10
+ import dataclasses
11
+ from pkgs.serialization import serial_class
12
+ from pkgs.serialization import serial_union_annotation
13
+ from . import auth_retrieval_t
14
+ from . import base_t
15
+ from . import client_config_t
16
+ from . import generic_upload_t
17
+ from . import identifier_t
18
+ from . import integration_server_t
19
+ from . import secret_retrieval_t
20
+
21
+ __all__: list[str] = [
22
+ "CronJobDefinition",
23
+ "CustomHttpJobDefinition",
24
+ "GenericUploadDataSource",
25
+ "GenericUploadDataSourceBase",
26
+ "GenericUploadDataSourceS3",
27
+ "GenericUploadDataSourceSFTP",
28
+ "GenericUploadDataSourceType",
29
+ "HttpJobDefinitionBase",
30
+ "JobDefinition",
31
+ "JobDefinitionBase",
32
+ "JobDefinitionType",
33
+ "JobExecutor",
34
+ "JobExecutorBase",
35
+ "JobExecutorGenericUpload",
36
+ "JobExecutorScript",
37
+ "JobExecutorType",
38
+ "JobLoggingSettings",
39
+ "JobResult",
40
+ "ProfileDefinition",
41
+ "ProfileMetadata",
42
+ "S3CloudProvider",
43
+ "WebhookJobDefinition",
44
+ ]
45
+
46
+
47
+ # DO NOT MODIFY -- This file is generated by type_spec
48
+ class JobDefinitionType(StrEnum):
49
+ CRON = "cron"
50
+ WEBHOOK = "webhook"
51
+ CUSTOM_HTTP = "custom_http"
52
+
53
+
54
+ # DO NOT MODIFY -- This file is generated by type_spec
55
+ class JobExecutorType(StrEnum):
56
+ SCRIPT = "script"
57
+ GENERIC_UPLOAD = "generic_upload"
58
+
59
+
60
+ # DO NOT MODIFY -- This file is generated by type_spec
61
+ class GenericUploadDataSourceType(StrEnum):
62
+ SFTP = "sftp"
63
+ S3 = "s3"
64
+
65
+
66
+ # DO NOT MODIFY -- This file is generated by type_spec
67
+ @serial_class(
68
+ named_type_path="sdk.job_definition.JobExecutorBase",
69
+ )
70
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
71
+ class JobExecutorBase:
72
+ type: JobExecutorType
73
+
74
+
75
+ # DO NOT MODIFY -- This file is generated by type_spec
76
+ @serial_class(
77
+ named_type_path="sdk.job_definition.JobExecutorScript",
78
+ parse_require={"type"},
79
+ )
80
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
81
+ class JobExecutorScript(JobExecutorBase):
82
+ type: typing.Literal[JobExecutorType.SCRIPT] = JobExecutorType.SCRIPT
83
+ import_path: str
84
+
85
+
86
+ # DO NOT MODIFY -- This file is generated by type_spec
87
+ @serial_class(
88
+ named_type_path="sdk.job_definition.GenericUploadDataSourceBase",
89
+ )
90
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
91
+ class GenericUploadDataSourceBase:
92
+ type: GenericUploadDataSourceType
93
+
94
+
95
+ # DO NOT MODIFY -- This file is generated by type_spec
96
+ @serial_class(
97
+ named_type_path="sdk.job_definition.GenericUploadDataSourceSFTP",
98
+ parse_require={"type"},
99
+ )
100
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
101
+ class GenericUploadDataSourceSFTP(GenericUploadDataSourceBase):
102
+ type: typing.Literal[GenericUploadDataSourceType.SFTP] = GenericUploadDataSourceType.SFTP
103
+ host: str
104
+ username: str
105
+ pem_secret: secret_retrieval_t.SecretRetrieval | None = None
106
+ password_secret: secret_retrieval_t.SecretRetrieval | None = None
107
+
108
+
109
+ # DO NOT MODIFY -- This file is generated by type_spec
110
+ class S3CloudProvider(StrEnum):
111
+ OVH = "ovh"
112
+ AWS = "aws"
113
+
114
+
115
+ # DO NOT MODIFY -- This file is generated by type_spec
116
+ @serial_class(
117
+ named_type_path="sdk.job_definition.GenericUploadDataSourceS3",
118
+ parse_require={"type"},
119
+ )
120
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
121
+ class GenericUploadDataSourceS3(GenericUploadDataSourceBase):
122
+ type: typing.Literal[GenericUploadDataSourceType.S3] = GenericUploadDataSourceType.S3
123
+ bucket_name: str
124
+ cloud_provider: S3CloudProvider | None = None
125
+ endpoint_url: str | None = None
126
+ region_name: str | None = None
127
+ access_key_id: str | None = None
128
+ access_key_secret: secret_retrieval_t.SecretRetrieval | None = None
129
+
130
+
131
+ # DO NOT MODIFY -- This file is generated by type_spec
132
+ GenericUploadDataSource = typing.Annotated[
133
+ GenericUploadDataSourceSFTP | GenericUploadDataSourceS3,
134
+ serial_union_annotation(
135
+ named_type_path="sdk.job_definition.GenericUploadDataSource",
136
+ discriminator="type",
137
+ discriminator_map={
138
+ "sftp": GenericUploadDataSourceSFTP,
139
+ "s3": GenericUploadDataSourceS3,
140
+ },
141
+ ),
142
+ ]
143
+
144
+
145
+ # DO NOT MODIFY -- This file is generated by type_spec
146
+ @serial_class(
147
+ named_type_path="sdk.job_definition.JobExecutorGenericUpload",
148
+ parse_require={"type"},
149
+ )
150
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
151
+ class JobExecutorGenericUpload(JobExecutorBase):
152
+ type: typing.Literal[JobExecutorType.GENERIC_UPLOAD] = JobExecutorType.GENERIC_UPLOAD
153
+ data_source: GenericUploadDataSource
154
+ upload_strategy: generic_upload_t.GenericUploadStrategy
155
+ remote_directories: list[generic_upload_t.GenericRemoteDirectoryScope]
156
+
157
+
158
+ # DO NOT MODIFY -- This file is generated by type_spec
159
+ JobExecutor = typing.Annotated[
160
+ JobExecutorScript | JobExecutorGenericUpload,
161
+ serial_union_annotation(
162
+ named_type_path="sdk.job_definition.JobExecutor",
163
+ discriminator="type",
164
+ discriminator_map={
165
+ "script": JobExecutorScript,
166
+ "generic_upload": JobExecutorGenericUpload,
167
+ },
168
+ ),
169
+ ]
170
+
171
+
172
+ # DO NOT MODIFY -- This file is generated by type_spec
173
+ @serial_class(
174
+ named_type_path="sdk.job_definition.JobLoggingSettings",
175
+ )
176
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
177
+ class JobLoggingSettings:
178
+ enabled: bool = False
179
+ share_with_user_groups: list[identifier_t.IdentifierKey] | None = None
180
+
181
+
182
+ # DO NOT MODIFY -- This file is generated by type_spec
183
+ @serial_class(
184
+ named_type_path="sdk.job_definition.JobDefinitionBase",
185
+ )
186
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
187
+ class JobDefinitionBase:
188
+ id: str
189
+ name: str
190
+ executor: JobExecutor
191
+ enabled: bool = True
192
+ logging_settings: JobLoggingSettings | None = None
193
+ subqueue_name: str | None = None
194
+
195
+
196
+ # DO NOT MODIFY -- This file is generated by type_spec
197
+ @serial_class(
198
+ named_type_path="sdk.job_definition.CronJobDefinition",
199
+ parse_require={"type"},
200
+ )
201
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
202
+ class CronJobDefinition(JobDefinitionBase):
203
+ type: typing.Literal[JobDefinitionType.CRON] = JobDefinitionType.CRON
204
+ cron_spec: str
205
+
206
+
207
+ # DO NOT MODIFY -- This file is generated by type_spec
208
+ @serial_class(
209
+ named_type_path="sdk.job_definition.HttpJobDefinitionBase",
210
+ )
211
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
212
+ class HttpJobDefinitionBase(JobDefinitionBase):
213
+ pass
214
+
215
+
216
+ # DO NOT MODIFY -- This file is generated by type_spec
217
+ @serial_class(
218
+ named_type_path="sdk.job_definition.CustomHttpJobDefinition",
219
+ parse_require={"type"},
220
+ )
221
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
222
+ class CustomHttpJobDefinition(HttpJobDefinitionBase):
223
+ type: typing.Literal[JobDefinitionType.CUSTOM_HTTP] = JobDefinitionType.CUSTOM_HTTP
224
+
225
+
226
+ # DO NOT MODIFY -- This file is generated by type_spec
227
+ @serial_class(
228
+ named_type_path="sdk.job_definition.WebhookJobDefinition",
229
+ parse_require={"type"},
230
+ )
231
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
232
+ class WebhookJobDefinition(HttpJobDefinitionBase):
233
+ type: typing.Literal[JobDefinitionType.WEBHOOK] = JobDefinitionType.WEBHOOK
234
+ signature_key_secret: secret_retrieval_t.SecretRetrieval
235
+
236
+
237
+ # DO NOT MODIFY -- This file is generated by type_spec
238
+ JobDefinition = typing.Annotated[
239
+ CronJobDefinition | CustomHttpJobDefinition | WebhookJobDefinition,
240
+ serial_union_annotation(
241
+ named_type_path="sdk.job_definition.JobDefinition",
242
+ discriminator="type",
243
+ discriminator_map={
244
+ "cron": CronJobDefinition,
245
+ "custom_http": CustomHttpJobDefinition,
246
+ "webhook": WebhookJobDefinition,
247
+ },
248
+ ),
249
+ ]
250
+
251
+
252
+ # DO NOT MODIFY -- This file is generated by type_spec
253
+ @serial_class(
254
+ named_type_path="sdk.job_definition.ProfileDefinition",
255
+ )
256
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
257
+ class ProfileDefinition:
258
+ jobs: list[JobDefinition]
259
+ auth_retrieval: auth_retrieval_t.AuthRetrieval | None = None
260
+ base_url: str | None = None
261
+ client_options: client_config_t.ClientConfigOptions | None = None
262
+ environments: dict[integration_server_t.IntegrationEnvironment, integration_server_t.EnvironmentConfig] | None = None
263
+
264
+
265
+ # DO NOT MODIFY -- This file is generated by type_spec
266
+ @serial_class(
267
+ named_type_path="sdk.job_definition.ProfileMetadata",
268
+ )
269
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
270
+ class ProfileMetadata:
271
+ name: str
272
+ base_url: str
273
+ auth_retrieval: auth_retrieval_t.AuthRetrieval
274
+ client_options: client_config_t.ClientConfigOptions | None
275
+ jobs: list[JobDefinition]
276
+
277
+
278
+ # DO NOT MODIFY -- This file is generated by type_spec
279
+ @serial_class(
280
+ named_type_path="sdk.job_definition.JobResult",
281
+ )
282
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
283
+ class JobResult:
284
+ success: bool
285
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,9 @@
1
+ # ruff: noqa: E402 Q003
2
+ # fmt: off
3
+ # isort: skip_file
4
+ # DO NOT MODIFY -- This file is generated by type_spec
5
+ # Kept only for SDK backwards compatibility
6
+ from .listing_t import ColumnType as ColumnType
7
+ from .listing_t import ColumnIdentifierEntityRefName as ColumnIdentifierEntityRefName
8
+ from .listing_t import ColumnIdentifier as ColumnIdentifier
9
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,51 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ from __future__ import annotations
6
+ import typing # noqa: F401
7
+ import datetime # noqa: F401
8
+ from decimal import Decimal # noqa: F401
9
+ from enum import StrEnum
10
+ import dataclasses
11
+ from pkgs.serialization import serial_class
12
+ from pkgs.serialization import serial_union_annotation
13
+ from . import base_t
14
+ from . import entity_t
15
+
16
+ __all__: list[str] = [
17
+ "ColumnIdentifier",
18
+ "ColumnIdentifierEntityRefName",
19
+ "ColumnType",
20
+ ]
21
+
22
+
23
+ # DO NOT MODIFY -- This file is generated by type_spec
24
+ class ColumnType(StrEnum):
25
+ REF_NAME = "ref_name"
26
+
27
+
28
+ # DO NOT MODIFY -- This file is generated by type_spec
29
+ @serial_class(
30
+ named_type_path="sdk.listing.ColumnIdentifierEntityRefName",
31
+ parse_require={"type"},
32
+ )
33
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True, frozen=True, eq=True) # type: ignore[literal-required]
34
+ class ColumnIdentifierEntityRefName:
35
+ type: typing.Literal[ColumnType.REF_NAME] = ColumnType.REF_NAME
36
+ entity_type: entity_t.EntityType
37
+ ref_name: str
38
+
39
+
40
+ # DO NOT MODIFY -- This file is generated by type_spec
41
+ ColumnIdentifier = typing.Annotated[
42
+ typing.Union[ColumnIdentifierEntityRefName],
43
+ serial_union_annotation(
44
+ named_type_path="sdk.listing.ColumnIdentifier",
45
+ discriminator="type",
46
+ discriminator_map={
47
+ "ref_name": ColumnIdentifierEntityRefName,
48
+ },
49
+ ),
50
+ ]
51
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,8 @@
1
+ # ruff: noqa: E402 Q003
2
+ # fmt: off
3
+ # isort: skip_file
4
+ # DO NOT MODIFY -- This file is generated by type_spec
5
+ # Kept only for SDK backwards compatibility
6
+ from .notices_t import NoticeType as NoticeType
7
+ from .notices_t import NotificationNoticeConfiguration as NotificationNoticeConfiguration
8
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,37 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ from __future__ import annotations
6
+ import typing # noqa: F401
7
+ import datetime # noqa: F401
8
+ from decimal import Decimal # noqa: F401
9
+ from enum import StrEnum
10
+ import dataclasses
11
+ from pkgs.serialization import serial_class
12
+ from . import base_t
13
+
14
+ __all__: list[str] = [
15
+ "NoticeType",
16
+ "NotificationNoticeConfiguration",
17
+ ]
18
+
19
+
20
+ # DO NOT MODIFY -- This file is generated by type_spec
21
+ class NoticeType(StrEnum):
22
+ ERROR = "error"
23
+ WARNING = "warning"
24
+ INFO = "info"
25
+ SUCCESS = "success"
26
+ DEBUG = "debug"
27
+ PLAIN = "plain"
28
+
29
+
30
+ # DO NOT MODIFY -- This file is generated by type_spec
31
+ @serial_class(
32
+ named_type_path="sdk.notices.NotificationNoticeConfiguration",
33
+ )
34
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
35
+ class NotificationNoticeConfiguration:
36
+ notice_type: NoticeType | None = None
37
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,11 @@
1
+ # ruff: noqa: E402 Q003
2
+ # fmt: off
3
+ # isort: skip_file
4
+ # DO NOT MODIFY -- This file is generated by type_spec
5
+ # Kept only for SDK backwards compatibility
6
+ from .notifications_t import NotificationTargetType as NotificationTargetType
7
+ from .notifications_t import NotificationTargetBase as NotificationTargetBase
8
+ from .notifications_t import NotificationTargetUser as NotificationTargetUser
9
+ from .notifications_t import NotificationTargetUserGroup as NotificationTargetUserGroup
10
+ from .notifications_t import NotificationTarget as NotificationTarget
11
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,74 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ from __future__ import annotations
6
+ import typing # noqa: F401
7
+ import datetime # noqa: F401
8
+ from decimal import Decimal # noqa: F401
9
+ from enum import StrEnum
10
+ import dataclasses
11
+ from pkgs.serialization import serial_class
12
+ from pkgs.serialization import serial_union_annotation
13
+ from . import base_t
14
+ from . import identifier_t
15
+
16
+ __all__: list[str] = [
17
+ "NotificationTarget",
18
+ "NotificationTargetBase",
19
+ "NotificationTargetType",
20
+ "NotificationTargetUser",
21
+ "NotificationTargetUserGroup",
22
+ ]
23
+
24
+
25
+ # DO NOT MODIFY -- This file is generated by type_spec
26
+ class NotificationTargetType(StrEnum):
27
+ USER = "user"
28
+ USER_GROUP = "user_group"
29
+
30
+
31
+ # DO NOT MODIFY -- This file is generated by type_spec
32
+ @serial_class(
33
+ named_type_path="sdk.notifications.NotificationTargetBase",
34
+ )
35
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
36
+ class NotificationTargetBase:
37
+ type: NotificationTargetType
38
+
39
+
40
+ # DO NOT MODIFY -- This file is generated by type_spec
41
+ @serial_class(
42
+ named_type_path="sdk.notifications.NotificationTargetUser",
43
+ parse_require={"type"},
44
+ )
45
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
46
+ class NotificationTargetUser(NotificationTargetBase):
47
+ type: typing.Literal[NotificationTargetType.USER] = NotificationTargetType.USER
48
+ user_key: identifier_t.IdentifierKey
49
+
50
+
51
+ # DO NOT MODIFY -- This file is generated by type_spec
52
+ @serial_class(
53
+ named_type_path="sdk.notifications.NotificationTargetUserGroup",
54
+ parse_require={"type"},
55
+ )
56
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
57
+ class NotificationTargetUserGroup(NotificationTargetBase):
58
+ type: typing.Literal[NotificationTargetType.USER_GROUP] = NotificationTargetType.USER_GROUP
59
+ user_group_key: identifier_t.IdentifierKey
60
+
61
+
62
+ # DO NOT MODIFY -- This file is generated by type_spec
63
+ NotificationTarget = typing.Annotated[
64
+ NotificationTargetUser | NotificationTargetUserGroup,
65
+ serial_union_annotation(
66
+ named_type_path="sdk.notifications.NotificationTarget",
67
+ discriminator="type",
68
+ discriminator_map={
69
+ "user": NotificationTargetUser,
70
+ "user_group": NotificationTargetUserGroup,
71
+ },
72
+ ),
73
+ ]
74
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -1,26 +1,7 @@
1
- # DO NOT MODIFY -- This file is generated by type_spec
2
- # flake8: noqa: F821
3
- # ruff: noqa: E402
1
+ # ruff: noqa: E402 Q003
4
2
  # fmt: off
5
3
  # isort: skip_file
6
- from __future__ import annotations
7
- import typing # noqa: F401
8
- import datetime # noqa: F401
9
- from decimal import Decimal # noqa: F401
10
- from dataclasses import dataclass
11
- from . import base as base_t
12
- from . import units as units_t
13
-
14
- __all__: list[str] = [
15
- "SimpleOutput",
16
- ]
17
-
18
-
19
4
  # DO NOT MODIFY -- This file is generated by type_spec
20
- @dataclass(kw_only=True)
21
- class SimpleOutput:
22
- output_id: base_t.ObjectId
23
- name: str
24
- unit: typing.Optional[units_t.SimpleUnit]
25
- quantity_type: str
5
+ # Kept only for SDK backwards compatibility
6
+ from .outputs_t import SimpleOutput as SimpleOutput
26
7
  # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,29 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ from __future__ import annotations
6
+ import typing # noqa: F401
7
+ import datetime # noqa: F401
8
+ from decimal import Decimal # noqa: F401
9
+ import dataclasses
10
+ from pkgs.serialization import serial_class
11
+ from . import base_t
12
+ from . import units_t
13
+
14
+ __all__: list[str] = [
15
+ "SimpleOutput",
16
+ ]
17
+
18
+
19
+ # DO NOT MODIFY -- This file is generated by type_spec
20
+ @serial_class(
21
+ named_type_path="sdk.outputs.SimpleOutput",
22
+ )
23
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
24
+ class SimpleOutput:
25
+ output_id: base_t.ObjectId
26
+ name: str
27
+ unit: units_t.SimpleUnit | None
28
+ quantity_type: str
29
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,9 @@
1
+ # ruff: noqa: E402 Q003
2
+ # fmt: off
3
+ # isort: skip_file
4
+ # DO NOT MODIFY -- This file is generated by type_spec
5
+ # Kept only for SDK backwards compatibility
6
+ from .overrides_t import SecretRetrievalOverride as SecretRetrievalOverride
7
+ from .overrides_t import SecretRetrievalOverrides as SecretRetrievalOverrides
8
+ from .overrides_t import Overrides as Overrides
9
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -0,0 +1,49 @@
1
+ # DO NOT MODIFY -- This file is generated by type_spec
2
+ # ruff: noqa: E402 Q003
3
+ # fmt: off
4
+ # isort: skip_file
5
+ from __future__ import annotations
6
+ import typing # noqa: F401
7
+ import datetime # noqa: F401
8
+ from decimal import Decimal # noqa: F401
9
+ import dataclasses
10
+ from pkgs.serialization import serial_class
11
+ from pkgs.serialization import serial_alias_annotation
12
+ from . import base_t
13
+ from . import secret_retrieval_t
14
+
15
+ __all__: list[str] = [
16
+ "Overrides",
17
+ "SecretRetrievalOverride",
18
+ "SecretRetrievalOverrides",
19
+ ]
20
+
21
+
22
+ # DO NOT MODIFY -- This file is generated by type_spec
23
+ @serial_class(
24
+ named_type_path="sdk.overrides.SecretRetrievalOverride",
25
+ )
26
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
27
+ class SecretRetrievalOverride:
28
+ profile_name: str
29
+ secret_retrieval: secret_retrieval_t.SecretRetrieval
30
+ value: str
31
+
32
+
33
+ # DO NOT MODIFY -- This file is generated by type_spec
34
+ SecretRetrievalOverrides = typing.Annotated[
35
+ list[SecretRetrievalOverride],
36
+ serial_alias_annotation(
37
+ named_type_path="sdk.overrides.SecretRetrievalOverrides",
38
+ ),
39
+ ]
40
+
41
+
42
+ # DO NOT MODIFY -- This file is generated by type_spec
43
+ @serial_class(
44
+ named_type_path="sdk.overrides.Overrides",
45
+ )
46
+ @dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
47
+ class Overrides:
48
+ secrets: SecretRetrievalOverrides
49
+ # DO NOT MODIFY -- This file is generated by type_spec
@@ -1,46 +1,7 @@
1
- # DO NOT MODIFY -- This file is generated by type_spec
2
- # flake8: noqa: F821
3
- # ruff: noqa: E402
1
+ # ruff: noqa: E402 Q003
4
2
  # fmt: off
5
3
  # isort: skip_file
6
- from __future__ import annotations
7
- import typing # noqa: F401
8
- import datetime # noqa: F401
9
- from decimal import Decimal # noqa: F401
10
- from pkgs.strenum_compat import StrEnum
11
- from pkgs.serialization import serial_string_enum
12
-
13
- __all__: list[str] = [
14
- "CorePermissionType",
15
- ]
16
-
17
-
18
4
  # DO NOT MODIFY -- This file is generated by type_spec
19
- @serial_string_enum(
20
- labels={
21
- "admin_rights": "Admin Rights",
22
- "read_ingredients": "View Ingredients",
23
- "read_recipe_all": "View Entire Recipe",
24
- "read_recipe_outputs": "View Recipe Outputs",
25
- "view_material_family": "View Material Family",
26
- "write_ingredients": "Modify Ingredients",
27
- "write_outputs": "Modify Outputs",
28
- "write_recipe_all": "Modify Entire Recipe",
29
- "write_recipe_ingredients": "Modify Recipe Inputs",
30
- "write_recipe_outputs": "Modify Recipe Outputs",
31
- "add_recipe": "Create Experiments",
32
- },
33
- )
34
- class CorePermissionType(StrEnum):
35
- ADMIN_RIGHTS = "admin_rights"
36
- READ_INGREDIENTS = "read_ingredients"
37
- READ_RECIPE_ALL = "read_recipe_all"
38
- READ_RECIPE_OUTPUTS = "read_recipe_outputs"
39
- VIEW_MATERIAL_FAMILY = "view_material_family"
40
- WRITE_INGREDIENTS = "write_ingredients"
41
- WRITE_OUTPUTS = "write_outputs"
42
- WRITE_RECIPE_ALL = "write_recipe_all"
43
- WRITE_RECIPE_INGREDIENTS = "write_recipe_ingredients"
44
- WRITE_RECIPE_OUTPUTS = "write_recipe_outputs"
45
- ADD_RECIPE = "add_recipe"
5
+ # Kept only for SDK backwards compatibility
6
+ from .permissions_t import CorePermissionType as CorePermissionType
46
7
  # DO NOT MODIFY -- This file is generated by type_spec