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.
- docs/conf.py +60 -8
- docs/index.md +107 -4
- docs/integration_examples/create_ingredient.md +43 -0
- docs/integration_examples/create_output.md +56 -0
- docs/integration_examples/index.md +6 -0
- docs/justfile +2 -2
- docs/requirements.txt +7 -5
- examples/async_batch.py +5 -6
- examples/basic_auth.py +7 -0
- examples/create_entity.py +4 -6
- examples/create_ingredient_sdk.py +34 -0
- examples/download_files.py +26 -0
- examples/edit_recipe_inputs.py +50 -0
- examples/integration-server/jobs/materials_auto/concurrent_cron.py +11 -0
- examples/integration-server/jobs/materials_auto/example_cron.py +21 -0
- examples/integration-server/jobs/materials_auto/example_http.py +47 -0
- examples/integration-server/jobs/materials_auto/example_instrument.py +100 -0
- examples/integration-server/jobs/materials_auto/example_parse.py +140 -0
- examples/integration-server/jobs/materials_auto/example_predictions.py +61 -0
- examples/integration-server/jobs/materials_auto/example_runsheet_wh.py +39 -0
- examples/integration-server/jobs/materials_auto/example_wh.py +23 -0
- examples/integration-server/jobs/materials_auto/profile.yaml +104 -0
- examples/integration-server/pyproject.toml +224 -0
- examples/invoke_uploader.py +26 -0
- examples/oauth.py +7 -0
- examples/set_recipe_metadata_file.py +40 -0
- examples/set_recipe_output_file_sdk.py +26 -0
- examples/upload_files.py +2 -3
- pkgs/argument_parser/__init__.py +9 -0
- pkgs/argument_parser/_is_namedtuple.py +3 -0
- pkgs/argument_parser/argument_parser.py +295 -74
- pkgs/argument_parser/case_convert.py +4 -3
- pkgs/filesystem_utils/__init__.py +20 -0
- pkgs/filesystem_utils/_blob_session.py +144 -0
- pkgs/filesystem_utils/_gdrive_session.py +309 -0
- pkgs/filesystem_utils/_local_session.py +69 -0
- pkgs/filesystem_utils/_s3_session.py +118 -0
- pkgs/filesystem_utils/_sftp_session.py +151 -0
- pkgs/filesystem_utils/file_type_utils.py +91 -0
- pkgs/filesystem_utils/filesystem_session.py +39 -0
- pkgs/py.typed +0 -0
- pkgs/serialization/__init__.py +8 -1
- pkgs/serialization/annotation.py +64 -0
- pkgs/serialization/missing_sentry.py +1 -1
- pkgs/serialization/opaque_key.py +1 -1
- pkgs/serialization/serial_alias.py +47 -0
- pkgs/serialization/serial_class.py +69 -54
- pkgs/serialization/serial_generic.py +16 -0
- pkgs/serialization/serial_union.py +84 -0
- pkgs/serialization/yaml.py +57 -0
- pkgs/serialization_util/__init__.py +7 -7
- pkgs/serialization_util/convert_to_snakecase.py +27 -0
- pkgs/serialization_util/dataclasses.py +14 -0
- pkgs/serialization_util/serialization_helpers.py +117 -71
- pkgs/type_spec/actions_registry/__main__.py +0 -4
- pkgs/type_spec/actions_registry/emit_typescript.py +5 -5
- pkgs/type_spec/builder.py +438 -109
- pkgs/type_spec/builder_types.py +9 -0
- pkgs/type_spec/config.py +52 -24
- pkgs/type_spec/cross_output_links.py +99 -0
- pkgs/type_spec/emit_io_ts.py +1 -1
- pkgs/type_spec/emit_open_api.py +160 -41
- pkgs/type_spec/emit_open_api_util.py +13 -7
- pkgs/type_spec/emit_python.py +450 -136
- pkgs/type_spec/emit_typescript.py +117 -250
- pkgs/type_spec/emit_typescript_util.py +293 -4
- pkgs/type_spec/load_types.py +20 -5
- pkgs/type_spec/non_discriminated_union_exceptions.py +14 -0
- pkgs/type_spec/open_api_util.py +29 -4
- pkgs/type_spec/parts/base.py.prepart +13 -10
- pkgs/type_spec/parts/base.ts.prepart +4 -0
- pkgs/type_spec/type_info/__main__.py +3 -1
- pkgs/type_spec/type_info/emit_type_info.py +161 -32
- pkgs/type_spec/ui_entry_actions/__init__.py +4 -0
- pkgs/type_spec/ui_entry_actions/generate_ui_entry_actions.py +308 -0
- pkgs/type_spec/util.py +4 -4
- pkgs/type_spec/value_spec/__main__.py +27 -10
- pkgs/type_spec/value_spec/convert_type.py +21 -1
- pkgs/type_spec/value_spec/emit_python.py +25 -7
- pkgs/type_spec/value_spec/types.py +1 -1
- uncountable/__init__.py +1 -2
- uncountable/core/__init__.py +11 -3
- uncountable/core/async_batch.py +16 -1
- uncountable/core/client.py +247 -52
- uncountable/core/environment.py +41 -0
- uncountable/core/file_upload.py +67 -22
- uncountable/core/types.py +8 -13
- uncountable/integration/cli.py +142 -0
- uncountable/integration/construct_client.py +43 -27
- uncountable/integration/cron.py +12 -11
- uncountable/integration/db/connect.py +12 -2
- uncountable/integration/db/session.py +25 -0
- uncountable/integration/entrypoint.py +4 -34
- uncountable/integration/executors/executors.py +147 -0
- uncountable/integration/executors/generic_upload_executor.py +336 -0
- uncountable/integration/executors/script_executor.py +15 -9
- uncountable/integration/http_server/__init__.py +5 -0
- uncountable/integration/http_server/types.py +69 -0
- uncountable/integration/job.py +246 -19
- uncountable/integration/queue_runner/__init__.py +0 -0
- uncountable/integration/queue_runner/command_server/__init__.py +28 -0
- uncountable/integration/queue_runner/command_server/command_client.py +133 -0
- uncountable/integration/queue_runner/command_server/command_server.py +142 -0
- uncountable/integration/queue_runner/command_server/constants.py +4 -0
- uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server.proto +58 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +57 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +114 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +264 -0
- uncountable/integration/queue_runner/command_server/types.py +75 -0
- uncountable/integration/queue_runner/datastore/__init__.py +3 -0
- uncountable/integration/queue_runner/datastore/datastore_sqlite.py +250 -0
- uncountable/integration/queue_runner/datastore/interface.py +29 -0
- uncountable/integration/queue_runner/datastore/model.py +24 -0
- uncountable/integration/queue_runner/job_scheduler.py +200 -0
- uncountable/integration/queue_runner/queue_runner.py +34 -0
- uncountable/integration/queue_runner/types.py +7 -0
- uncountable/integration/queue_runner/worker.py +116 -0
- uncountable/integration/scan_profiles.py +67 -0
- uncountable/integration/scheduler.py +199 -0
- uncountable/integration/secret_retrieval/__init__.py +3 -0
- uncountable/integration/secret_retrieval/retrieve_secret.py +93 -0
- uncountable/integration/server.py +103 -54
- uncountable/integration/telemetry.py +251 -0
- uncountable/integration/webhook_server/entrypoint.py +97 -0
- uncountable/types/__init__.py +149 -30
- uncountable/types/api/batch/execute_batch.py +16 -9
- uncountable/types/api/batch/execute_batch_load_async.py +13 -7
- uncountable/types/api/chemical/convert_chemical_formats.py +20 -8
- uncountable/types/api/condition_parameters/__init__.py +1 -0
- uncountable/types/api/condition_parameters/upsert_condition_match.py +72 -0
- uncountable/types/api/entity/create_entities.py +24 -12
- uncountable/types/api/entity/create_entity.py +22 -13
- uncountable/types/api/entity/create_or_update_entity.py +48 -0
- uncountable/types/api/entity/export_entities.py +59 -0
- uncountable/types/api/entity/get_entities_data.py +18 -9
- uncountable/types/api/entity/grant_entity_permissions.py +48 -0
- uncountable/types/api/entity/list_aggregate.py +79 -0
- uncountable/types/api/entity/list_entities.py +53 -14
- uncountable/types/api/entity/lock_entity.py +45 -0
- uncountable/types/api/entity/lookup_entity.py +116 -0
- uncountable/types/api/entity/resolve_entity_ids.py +19 -10
- uncountable/types/api/entity/set_entity_field_values.py +44 -0
- uncountable/types/api/entity/set_values.py +15 -8
- uncountable/types/api/entity/transition_entity_phase.py +27 -12
- uncountable/types/api/entity/unlock_entity.py +44 -0
- uncountable/types/api/equipment/__init__.py +1 -0
- uncountable/types/api/equipment/associate_equipment_input.py +43 -0
- uncountable/types/api/field_options/__init__.py +1 -0
- uncountable/types/api/field_options/upsert_field_options.py +55 -0
- uncountable/types/api/files/__init__.py +1 -0
- uncountable/types/api/files/download_file.py +77 -0
- uncountable/types/api/id_source/list_id_source.py +20 -11
- uncountable/types/api/id_source/match_id_source.py +15 -10
- uncountable/types/api/input_groups/get_input_group_names.py +16 -7
- uncountable/types/api/inputs/create_inputs.py +28 -14
- uncountable/types/api/inputs/get_input_data.py +34 -16
- uncountable/types/api/inputs/get_input_names.py +19 -10
- uncountable/types/api/inputs/get_inputs_data.py +29 -11
- uncountable/types/api/inputs/set_input_attribute_values.py +16 -10
- uncountable/types/api/inputs/set_input_category.py +44 -0
- uncountable/types/api/inputs/set_input_subcategories.py +45 -0
- uncountable/types/api/inputs/set_intermediate_type.py +50 -0
- uncountable/types/api/integrations/__init__.py +1 -0
- uncountable/types/api/integrations/publish_realtime_data.py +41 -0
- uncountable/types/api/integrations/push_notification.py +49 -0
- uncountable/types/api/integrations/register_sockets_token.py +41 -0
- uncountable/types/api/listing/__init__.py +1 -0
- uncountable/types/api/listing/fetch_listing.py +58 -0
- uncountable/types/api/material_families/__init__.py +1 -0
- uncountable/types/api/material_families/update_entity_material_families.py +47 -0
- uncountable/types/api/notebooks/__init__.py +1 -0
- uncountable/types/api/notebooks/add_notebook_content.py +119 -0
- uncountable/types/api/outputs/get_output_data.py +32 -17
- uncountable/types/api/outputs/get_output_names.py +18 -9
- uncountable/types/api/outputs/get_output_organization.py +173 -0
- uncountable/types/api/outputs/resolve_output_conditions.py +23 -11
- uncountable/types/api/permissions/set_core_permissions.py +31 -15
- uncountable/types/api/project/get_projects.py +20 -11
- uncountable/types/api/project/get_projects_data.py +23 -14
- uncountable/types/api/recipe_links/create_recipe_link.py +17 -10
- uncountable/types/api/recipe_links/remove_recipe_link.py +45 -0
- uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +19 -10
- uncountable/types/api/recipes/add_recipe_to_project.py +42 -0
- uncountable/types/api/recipes/add_time_series_data.py +64 -0
- uncountable/types/api/recipes/archive_recipes.py +14 -7
- uncountable/types/api/recipes/associate_recipe_as_input.py +16 -8
- uncountable/types/api/recipes/associate_recipe_as_lot.py +14 -7
- uncountable/types/api/recipes/clear_recipe_outputs.py +42 -0
- uncountable/types/api/recipes/create_mix_order.py +44 -0
- uncountable/types/api/recipes/create_recipe.py +21 -14
- uncountable/types/api/recipes/create_recipes.py +25 -13
- uncountable/types/api/recipes/disassociate_recipe_as_input.py +14 -7
- uncountable/types/api/recipes/edit_recipe_inputs.py +208 -19
- uncountable/types/api/recipes/get_column_calculation_values.py +57 -0
- uncountable/types/api/recipes/get_curve.py +15 -9
- uncountable/types/api/recipes/get_recipe_calculations.py +17 -11
- uncountable/types/api/recipes/get_recipe_links.py +14 -8
- uncountable/types/api/recipes/get_recipe_names.py +16 -7
- uncountable/types/api/recipes/get_recipe_output_metadata.py +16 -10
- uncountable/types/api/recipes/get_recipes_data.py +96 -45
- uncountable/types/api/recipes/lock_recipes.py +64 -0
- uncountable/types/api/recipes/remove_recipe_from_project.py +42 -0
- uncountable/types/api/recipes/set_recipe_inputs.py +19 -13
- uncountable/types/api/recipes/set_recipe_metadata.py +14 -7
- uncountable/types/api/recipes/set_recipe_output_annotations.py +114 -0
- uncountable/types/api/recipes/set_recipe_output_file.py +55 -0
- uncountable/types/api/recipes/set_recipe_outputs.py +40 -15
- uncountable/types/api/recipes/set_recipe_tags.py +30 -13
- uncountable/types/api/recipes/set_recipe_total.py +59 -0
- uncountable/types/api/recipes/unarchive_recipes.py +41 -0
- uncountable/types/api/recipes/unlock_recipes.py +51 -0
- uncountable/types/api/runsheet/__init__.py +1 -0
- uncountable/types/api/runsheet/complete_async_upload.py +41 -0
- uncountable/types/api/triggers/run_trigger.py +15 -8
- uncountable/types/api/uploader/__init__.py +1 -0
- uncountable/types/api/uploader/complete_async_parse.py +46 -0
- uncountable/types/api/uploader/invoke_uploader.py +46 -0
- uncountable/types/api/user/__init__.py +1 -0
- uncountable/types/api/user/get_current_user_info.py +40 -0
- uncountable/types/async_batch.py +8 -52
- uncountable/types/async_batch_processor.py +694 -18
- uncountable/types/async_batch_t.py +108 -0
- uncountable/types/async_jobs.py +8 -0
- uncountable/types/async_jobs_t.py +52 -0
- uncountable/types/auth_retrieval.py +11 -0
- uncountable/types/auth_retrieval_t.py +75 -0
- uncountable/types/base.py +5 -80
- uncountable/types/base_t.py +87 -0
- uncountable/types/calculations.py +3 -19
- uncountable/types/calculations_t.py +26 -0
- uncountable/types/chemical_structure.py +3 -23
- uncountable/types/chemical_structure_t.py +28 -0
- uncountable/types/client_base.py +1170 -88
- uncountable/types/client_config.py +8 -0
- uncountable/types/client_config_t.py +36 -0
- uncountable/types/curves.py +5 -43
- uncountable/types/curves_t.py +50 -0
- uncountable/types/data.py +12 -0
- uncountable/types/data_t.py +103 -0
- uncountable/types/entity.py +8 -270
- uncountable/types/entity_t.py +446 -0
- uncountable/types/experiment_groups.py +3 -19
- uncountable/types/experiment_groups_t.py +26 -0
- uncountable/types/exports.py +8 -0
- uncountable/types/exports_t.py +34 -0
- uncountable/types/field_values.py +25 -61
- uncountable/types/field_values_t.py +302 -0
- uncountable/types/fields.py +3 -20
- uncountable/types/fields_t.py +27 -0
- uncountable/types/generic_upload.py +14 -0
- uncountable/types/generic_upload_t.py +119 -0
- uncountable/types/id_source.py +7 -45
- uncountable/types/id_source_t.py +68 -0
- uncountable/types/identifier.py +6 -50
- uncountable/types/identifier_t.py +62 -0
- uncountable/types/input_attributes.py +3 -25
- uncountable/types/input_attributes_t.py +29 -0
- uncountable/types/inputs.py +6 -57
- uncountable/types/inputs_t.py +82 -0
- uncountable/types/integration_server.py +8 -0
- uncountable/types/integration_server_t.py +46 -0
- uncountable/types/integration_session.py +10 -0
- uncountable/types/integration_session_t.py +60 -0
- uncountable/types/integrations.py +10 -0
- uncountable/types/integrations_t.py +62 -0
- uncountable/types/job_definition.py +28 -0
- uncountable/types/job_definition_t.py +285 -0
- uncountable/types/listing.py +9 -0
- uncountable/types/listing_t.py +51 -0
- uncountable/types/notices.py +8 -0
- uncountable/types/notices_t.py +37 -0
- uncountable/types/notifications.py +11 -0
- uncountable/types/notifications_t.py +74 -0
- uncountable/types/outputs.py +3 -22
- uncountable/types/outputs_t.py +29 -0
- uncountable/types/overrides.py +9 -0
- uncountable/types/overrides_t.py +49 -0
- uncountable/types/permissions.py +3 -42
- uncountable/types/permissions_t.py +45 -0
- uncountable/types/phases.py +3 -19
- uncountable/types/phases_t.py +26 -0
- uncountable/types/post_base.py +3 -26
- uncountable/types/post_base_t.py +29 -0
- uncountable/types/queued_job.py +17 -0
- uncountable/types/queued_job_t.py +140 -0
- uncountable/types/recipe_identifiers.py +7 -58
- uncountable/types/recipe_identifiers_t.py +75 -0
- uncountable/types/recipe_inputs.py +4 -26
- uncountable/types/recipe_inputs_t.py +29 -0
- uncountable/types/recipe_links.py +4 -46
- uncountable/types/recipe_links_t.py +53 -0
- uncountable/types/recipe_metadata.py +5 -48
- uncountable/types/recipe_metadata_t.py +57 -0
- uncountable/types/recipe_output_metadata.py +3 -20
- uncountable/types/recipe_output_metadata_t.py +27 -0
- uncountable/types/recipe_tags.py +3 -19
- uncountable/types/recipe_tags_t.py +26 -0
- uncountable/types/recipe_workflow_steps.py +9 -73
- uncountable/types/recipe_workflow_steps_t.py +95 -0
- uncountable/types/recipes.py +7 -0
- uncountable/types/recipes_t.py +25 -0
- uncountable/types/response.py +3 -21
- uncountable/types/response_t.py +26 -0
- uncountable/types/secret_retrieval.py +11 -0
- uncountable/types/secret_retrieval_t.py +75 -0
- uncountable/types/sockets.py +20 -0
- uncountable/types/sockets_t.py +169 -0
- uncountable/types/structured_filters.py +25 -0
- uncountable/types/structured_filters_t.py +248 -0
- uncountable/types/units.py +3 -19
- uncountable/types/units_t.py +26 -0
- uncountable/types/uploader.py +24 -0
- uncountable/types/uploader_t.py +222 -0
- uncountable/types/users.py +3 -20
- uncountable/types/users_t.py +27 -0
- uncountable/types/webhook_job.py +9 -0
- uncountable/types/webhook_job_t.py +48 -0
- uncountable/types/workflows.py +4 -28
- uncountable/types/workflows_t.py +38 -0
- uncountablepythonsdk-0.0.131.dist-info/METADATA +64 -0
- uncountablepythonsdk-0.0.131.dist-info/RECORD +363 -0
- {UncountablePythonSDK-0.0.24.dist-info → uncountablepythonsdk-0.0.131.dist-info}/WHEEL +1 -1
- {UncountablePythonSDK-0.0.24.dist-info → uncountablepythonsdk-0.0.131.dist-info}/top_level.txt +0 -1
- UncountablePythonSDK-0.0.24.dist-info/METADATA +0 -47
- UncountablePythonSDK-0.0.24.dist-info/RECORD +0 -216
- docs/quickstart.md +0 -19
- examples/recipe-import/importer.py +0 -39
- type_spec/external/api/batch/execute_batch.yaml +0 -56
- type_spec/external/api/batch/execute_batch_load_async.yaml +0 -18
- type_spec/external/api/chemical/convert_chemical_formats.yaml +0 -33
- type_spec/external/api/entity/create_entities.yaml +0 -45
- type_spec/external/api/entity/create_entity.yaml +0 -51
- type_spec/external/api/entity/get_entities_data.yaml +0 -29
- type_spec/external/api/entity/list_entities.yaml +0 -52
- type_spec/external/api/entity/resolve_entity_ids.yaml +0 -29
- type_spec/external/api/entity/set_values.yaml +0 -18
- type_spec/external/api/entity/transition_entity_phase.yaml +0 -44
- type_spec/external/api/id_source/list_id_source.yaml +0 -35
- type_spec/external/api/id_source/match_id_source.yaml +0 -32
- type_spec/external/api/input_groups/get_input_group_names.yaml +0 -29
- type_spec/external/api/inputs/create_inputs.yaml +0 -48
- type_spec/external/api/inputs/get_input_data.yaml +0 -95
- type_spec/external/api/inputs/get_input_names.yaml +0 -38
- type_spec/external/api/inputs/get_inputs_data.yaml +0 -82
- type_spec/external/api/inputs/set_input_attribute_values.yaml +0 -33
- type_spec/external/api/outputs/get_output_data.yaml +0 -92
- type_spec/external/api/outputs/get_output_names.yaml +0 -35
- type_spec/external/api/outputs/resolve_output_conditions.yaml +0 -50
- type_spec/external/api/permissions/set_core_permissions.yaml +0 -69
- type_spec/external/api/project/get_projects.yaml +0 -42
- type_spec/external/api/project/get_projects_data.yaml +0 -50
- type_spec/external/api/recipe_links/create_recipe_link.yaml +0 -25
- type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml +0 -41
- type_spec/external/api/recipes/archive_recipes.yaml +0 -20
- type_spec/external/api/recipes/associate_recipe_as_input.yaml +0 -19
- type_spec/external/api/recipes/associate_recipe_as_lot.yaml +0 -19
- type_spec/external/api/recipes/create_recipe.yaml +0 -39
- type_spec/external/api/recipes/create_recipes.yaml +0 -47
- type_spec/external/api/recipes/disassociate_recipe_as_input.yaml +0 -16
- type_spec/external/api/recipes/edit_recipe_inputs.yaml +0 -85
- type_spec/external/api/recipes/get_curve.yaml +0 -21
- type_spec/external/api/recipes/get_recipe_calculations.yaml +0 -39
- type_spec/external/api/recipes/get_recipe_links.yaml +0 -26
- type_spec/external/api/recipes/get_recipe_names.yaml +0 -29
- type_spec/external/api/recipes/get_recipe_output_metadata.yaml +0 -36
- type_spec/external/api/recipes/get_recipes_data.yaml +0 -244
- type_spec/external/api/recipes/set_recipe_inputs.yaml +0 -42
- type_spec/external/api/recipes/set_recipe_metadata.yaml +0 -20
- type_spec/external/api/recipes/set_recipe_outputs.yaml +0 -52
- type_spec/external/api/recipes/set_recipe_tags.yaml +0 -62
- type_spec/external/api/triggers/run_trigger.yaml +0 -18
- 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
|
uncountable/types/outputs.py
CHANGED
|
@@ -1,26 +1,7 @@
|
|
|
1
|
-
#
|
|
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
|
-
|
|
21
|
-
|
|
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
|
uncountable/types/permissions.py
CHANGED
|
@@ -1,46 +1,7 @@
|
|
|
1
|
-
#
|
|
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
|
-
|
|
20
|
-
|
|
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
|