UncountablePythonSDK 0.0.8__py3-none-any.whl → 0.0.92__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.
- UncountablePythonSDK-0.0.92.dist-info/METADATA +61 -0
- UncountablePythonSDK-0.0.92.dist-info/RECORD +301 -0
- {UncountablePythonSDK-0.0.8.dist-info → UncountablePythonSDK-0.0.92.dist-info}/WHEEL +1 -1
- {UncountablePythonSDK-0.0.8.dist-info → UncountablePythonSDK-0.0.92.dist-info}/top_level.txt +1 -1
- docs/.gitignore +1 -0
- docs/conf.py +57 -0
- docs/index.md +13 -0
- docs/justfile +12 -0
- docs/quickstart.md +19 -0
- docs/requirements.txt +7 -0
- docs/static/favicons/android-chrome-192x192.png +0 -0
- docs/static/favicons/android-chrome-512x512.png +0 -0
- docs/static/favicons/apple-touch-icon.png +0 -0
- docs/static/favicons/browserconfig.xml +9 -0
- docs/static/favicons/favicon-16x16.png +0 -0
- docs/static/favicons/favicon-32x32.png +0 -0
- docs/static/favicons/manifest.json +18 -0
- docs/static/favicons/mstile-150x150.png +0 -0
- docs/static/favicons/safari-pinned-tab.svg +32 -0
- docs/static/logo_blue.png +0 -0
- examples/async_batch.py +35 -0
- examples/create_entity.py +22 -17
- examples/download_files.py +26 -0
- examples/edit_recipe_inputs.py +50 -0
- examples/integration-server/jobs/materials_auto/example_cron.py +18 -0
- examples/integration-server/jobs/materials_auto/example_wh.py +15 -0
- examples/integration-server/jobs/materials_auto/profile.yaml +43 -0
- examples/integration-server/pyproject.toml +224 -0
- examples/invoke_uploader.py +26 -0
- examples/set_recipe_metadata_file.py +40 -0
- examples/set_recipe_output_file_sdk.py +26 -0
- examples/upload_files.py +18 -0
- pkgs/argument_parser/__init__.py +5 -0
- pkgs/argument_parser/_is_enum.py +1 -6
- pkgs/argument_parser/argument_parser.py +232 -76
- pkgs/argument_parser/case_convert.py +4 -3
- pkgs/filesystem_utils/__init__.py +20 -0
- pkgs/filesystem_utils/_blob_session.py +137 -0
- pkgs/filesystem_utils/_gdrive_session.py +309 -0
- pkgs/filesystem_utils/_local_session.py +69 -0
- pkgs/filesystem_utils/_s3_session.py +117 -0
- pkgs/filesystem_utils/_sftp_session.py +147 -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 +65 -50
- 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/_get_type_for_serialization.py +1 -3
- pkgs/serialization_util/convert_to_snakecase.py +27 -0
- pkgs/serialization_util/dataclasses.py +14 -0
- pkgs/serialization_util/serialization_helpers.py +116 -74
- pkgs/strenum_compat/strenum_compat.py +1 -9
- pkgs/type_spec/actions_registry/__init__.py +0 -0
- pkgs/type_spec/actions_registry/__main__.py +126 -0
- pkgs/type_spec/actions_registry/emit_typescript.py +182 -0
- pkgs/type_spec/builder.py +475 -89
- pkgs/type_spec/config.py +24 -19
- pkgs/type_spec/emit_io_ts.py +5 -2
- pkgs/type_spec/emit_open_api.py +266 -32
- pkgs/type_spec/emit_open_api_util.py +32 -13
- pkgs/type_spec/emit_python.py +599 -151
- pkgs/type_spec/emit_typescript.py +74 -273
- pkgs/type_spec/emit_typescript_util.py +239 -5
- pkgs/type_spec/load_types.py +55 -10
- pkgs/type_spec/open_api_util.py +30 -41
- pkgs/type_spec/parts/base.py.prepart +4 -3
- pkgs/type_spec/type_info/emit_type_info.py +178 -16
- pkgs/type_spec/util.py +11 -11
- pkgs/type_spec/value_spec/__main__.py +3 -3
- pkgs/type_spec/value_spec/convert_type.py +8 -1
- pkgs/type_spec/value_spec/emit_python.py +13 -4
- uncountable/__init__.py +1 -2
- uncountable/core/__init__.py +12 -2
- uncountable/core/async_batch.py +37 -0
- uncountable/core/client.py +293 -43
- uncountable/core/environment.py +41 -0
- uncountable/core/file_upload.py +135 -0
- uncountable/core/types.py +17 -0
- uncountable/integration/__init__.py +0 -0
- uncountable/integration/cli.py +49 -0
- uncountable/integration/construct_client.py +51 -0
- uncountable/integration/cron.py +29 -0
- uncountable/integration/db/__init__.py +0 -0
- uncountable/integration/db/connect.py +18 -0
- uncountable/integration/db/session.py +25 -0
- uncountable/integration/entrypoint.py +13 -0
- uncountable/integration/executors/__init__.py +0 -0
- uncountable/integration/executors/executors.py +148 -0
- uncountable/integration/executors/generic_upload_executor.py +284 -0
- uncountable/integration/executors/script_executor.py +25 -0
- uncountable/integration/job.py +87 -0
- uncountable/integration/queue_runner/__init__.py +0 -0
- uncountable/integration/queue_runner/command_server/__init__.py +24 -0
- uncountable/integration/queue_runner/command_server/command_client.py +68 -0
- uncountable/integration/queue_runner/command_server/command_server.py +64 -0
- uncountable/integration/queue_runner/command_server/protocol/__init__.py +0 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server.proto +22 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.py +40 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2.pyi +38 -0
- uncountable/integration/queue_runner/command_server/protocol/command_server_pb2_grpc.py +129 -0
- uncountable/integration/queue_runner/command_server/types.py +52 -0
- uncountable/integration/queue_runner/datastore/__init__.py +3 -0
- uncountable/integration/queue_runner/datastore/datastore_sqlite.py +93 -0
- uncountable/integration/queue_runner/datastore/interface.py +19 -0
- uncountable/integration/queue_runner/datastore/model.py +17 -0
- uncountable/integration/queue_runner/job_scheduler.py +163 -0
- uncountable/integration/queue_runner/queue_runner.py +26 -0
- uncountable/integration/queue_runner/types.py +7 -0
- uncountable/integration/queue_runner/worker.py +119 -0
- uncountable/integration/scan_profiles.py +67 -0
- uncountable/integration/scheduler.py +150 -0
- uncountable/integration/secret_retrieval/__init__.py +3 -0
- uncountable/integration/secret_retrieval/retrieve_secret.py +93 -0
- uncountable/integration/server.py +117 -0
- uncountable/integration/telemetry.py +209 -0
- uncountable/integration/webhook_server/entrypoint.py +170 -0
- uncountable/types/__init__.py +136 -20
- uncountable/types/api/batch/execute_batch.py +15 -7
- uncountable/types/api/batch/execute_batch_load_async.py +42 -0
- uncountable/types/api/chemical/__init__.py +1 -0
- uncountable/types/api/chemical/convert_chemical_formats.py +63 -0
- uncountable/types/api/entity/create_entities.py +23 -11
- uncountable/types/api/entity/create_entity.py +21 -12
- uncountable/types/api/entity/get_entities_data.py +18 -8
- uncountable/types/api/entity/grant_entity_permissions.py +48 -0
- uncountable/types/api/entity/list_entities.py +27 -12
- uncountable/types/api/entity/lock_entity.py +45 -0
- uncountable/types/api/entity/resolve_entity_ids.py +17 -7
- uncountable/types/api/entity/set_entity_field_values.py +44 -0
- uncountable/types/api/entity/set_values.py +14 -7
- uncountable/types/api/entity/transition_entity_phase.py +80 -0
- 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 +44 -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/__init__.py +1 -0
- uncountable/types/api/id_source/list_id_source.py +56 -0
- uncountable/types/api/id_source/match_id_source.py +54 -0
- uncountable/types/api/input_groups/get_input_group_names.py +16 -6
- uncountable/types/api/inputs/create_inputs.py +24 -11
- uncountable/types/api/inputs/get_input_data.py +32 -13
- uncountable/types/api/inputs/get_input_names.py +18 -8
- uncountable/types/api/inputs/get_inputs_data.py +29 -10
- uncountable/types/api/inputs/set_input_attribute_values.py +16 -9
- 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/material_families/__init__.py +1 -0
- uncountable/types/api/material_families/update_entity_material_families.py +48 -0
- uncountable/types/api/outputs/get_output_data.py +32 -16
- uncountable/types/api/outputs/get_output_names.py +18 -8
- uncountable/types/api/outputs/resolve_output_conditions.py +23 -10
- uncountable/types/api/permissions/__init__.py +1 -0
- uncountable/types/api/permissions/set_core_permissions.py +105 -0
- uncountable/types/api/project/get_projects.py +17 -7
- uncountable/types/api/project/get_projects_data.py +21 -11
- uncountable/types/api/recipe_links/__init__.py +1 -0
- uncountable/types/api/recipe_links/create_recipe_link.py +46 -0
- uncountable/types/api/recipe_links/remove_recipe_link.py +45 -0
- uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +18 -8
- uncountable/types/api/recipes/add_recipe_to_project.py +42 -0
- uncountable/types/api/recipes/archive_recipes.py +42 -0
- uncountable/types/api/recipes/associate_recipe_as_input.py +44 -0
- uncountable/types/api/recipes/associate_recipe_as_lot.py +43 -0
- uncountable/types/api/recipes/clear_recipe_outputs.py +42 -0
- uncountable/types/api/recipes/create_recipe.py +51 -0
- uncountable/types/api/recipes/create_recipes.py +25 -12
- uncountable/types/api/recipes/disassociate_recipe_as_input.py +42 -0
- uncountable/types/api/recipes/edit_recipe_inputs.py +283 -0
- uncountable/types/api/recipes/get_column_calculation_values.py +58 -0
- uncountable/types/api/recipes/get_curve.py +15 -7
- uncountable/types/api/recipes/get_recipe_calculations.py +17 -10
- uncountable/types/api/recipes/get_recipe_links.py +13 -6
- uncountable/types/api/recipes/get_recipe_names.py +16 -6
- uncountable/types/api/recipes/get_recipe_output_metadata.py +14 -7
- uncountable/types/api/recipes/get_recipes_data.py +63 -38
- uncountable/types/api/recipes/lock_recipes.py +63 -0
- uncountable/types/api/recipes/remove_recipe_from_project.py +42 -0
- uncountable/types/api/recipes/set_recipe_inputs.py +19 -10
- uncountable/types/api/recipes/set_recipe_metadata.py +43 -0
- uncountable/types/api/recipes/set_recipe_output_annotations.py +115 -0
- uncountable/types/api/recipes/set_recipe_output_file.py +56 -0
- uncountable/types/api/recipes/set_recipe_outputs.py +26 -12
- uncountable/types/api/recipes/set_recipe_tags.py +109 -0
- uncountable/types/api/recipes/unarchive_recipes.py +41 -0
- uncountable/types/api/recipes/unlock_recipes.py +50 -0
- uncountable/types/api/triggers/__init__.py +1 -0
- uncountable/types/api/triggers/run_trigger.py +43 -0
- uncountable/types/api/uploader/__init__.py +1 -0
- uncountable/types/api/uploader/invoke_uploader.py +47 -0
- uncountable/types/async_batch.py +13 -0
- uncountable/types/async_batch_processor.py +384 -0
- uncountable/types/async_batch_t.py +97 -0
- uncountable/types/async_jobs.py +9 -0
- uncountable/types/async_jobs_t.py +53 -0
- uncountable/types/auth_retrieval.py +12 -0
- uncountable/types/auth_retrieval_t.py +75 -0
- uncountable/types/base.py +5 -78
- uncountable/types/base_t.py +85 -0
- uncountable/types/calculations.py +3 -18
- uncountable/types/calculations_t.py +27 -0
- uncountable/types/chemical_structure.py +8 -0
- uncountable/types/chemical_structure_t.py +28 -0
- uncountable/types/client_base.py +1093 -54
- uncountable/types/client_config.py +8 -0
- uncountable/types/client_config_t.py +26 -0
- uncountable/types/curves.py +5 -42
- uncountable/types/curves_t.py +51 -0
- uncountable/types/entity.py +8 -269
- uncountable/types/entity_t.py +393 -0
- uncountable/types/experiment_groups.py +3 -18
- uncountable/types/experiment_groups_t.py +27 -0
- uncountable/types/field_values.py +17 -60
- uncountable/types/field_values_t.py +204 -0
- uncountable/types/fields.py +3 -19
- uncountable/types/fields_t.py +28 -0
- uncountable/types/generic_upload.py +15 -0
- uncountable/types/generic_upload_t.py +119 -0
- uncountable/types/id_source.py +12 -0
- uncountable/types/id_source_t.py +68 -0
- uncountable/types/identifier.py +11 -0
- uncountable/types/identifier_t.py +63 -0
- uncountable/types/input_attributes.py +3 -24
- uncountable/types/input_attributes_t.py +30 -0
- uncountable/types/inputs.py +6 -56
- uncountable/types/inputs_t.py +83 -0
- uncountable/types/integration_server.py +9 -0
- uncountable/types/integration_server_t.py +42 -0
- uncountable/types/job_definition.py +27 -0
- uncountable/types/job_definition_t.py +260 -0
- uncountable/types/outputs.py +3 -21
- uncountable/types/outputs_t.py +30 -0
- uncountable/types/overrides.py +10 -0
- uncountable/types/overrides_t.py +49 -0
- uncountable/types/permissions.py +8 -0
- uncountable/types/permissions_t.py +46 -0
- uncountable/types/phases.py +3 -18
- uncountable/types/phases_t.py +27 -0
- uncountable/types/post_base.py +8 -0
- uncountable/types/post_base_t.py +30 -0
- uncountable/types/queued_job.py +16 -0
- uncountable/types/queued_job_t.py +123 -0
- uncountable/types/recipe_identifiers.py +12 -0
- uncountable/types/recipe_identifiers_t.py +76 -0
- uncountable/types/recipe_inputs.py +9 -0
- uncountable/types/recipe_inputs_t.py +30 -0
- uncountable/types/recipe_links.py +4 -45
- uncountable/types/recipe_links_t.py +54 -0
- uncountable/types/recipe_metadata.py +5 -45
- uncountable/types/recipe_metadata_t.py +58 -0
- uncountable/types/recipe_output_metadata.py +3 -19
- uncountable/types/recipe_output_metadata_t.py +28 -0
- uncountable/types/recipe_tags.py +3 -18
- uncountable/types/recipe_tags_t.py +27 -0
- uncountable/types/recipe_workflow_steps.py +14 -0
- uncountable/types/recipe_workflow_steps_t.py +95 -0
- uncountable/types/recipes.py +8 -0
- uncountable/types/recipes_t.py +25 -0
- uncountable/types/response.py +3 -20
- uncountable/types/response_t.py +26 -0
- uncountable/types/secret_retrieval.py +12 -0
- uncountable/types/secret_retrieval_t.py +75 -0
- uncountable/types/units.py +3 -18
- uncountable/types/units_t.py +27 -0
- uncountable/types/users.py +3 -19
- uncountable/types/users_t.py +28 -0
- uncountable/types/webhook_job.py +9 -0
- uncountable/types/webhook_job_t.py +37 -0
- uncountable/types/workflows.py +4 -27
- uncountable/types/workflows_t.py +39 -0
- UncountablePythonSDK-0.0.8.dist-info/METADATA +0 -27
- UncountablePythonSDK-0.0.8.dist-info/RECORD +0 -134
- examples/recipe-import/importer.py +0 -39
- type_spec/external/api/batch/execute_batch.yaml +0 -56
- type_spec/external/api/entity/create_entities.yaml +0 -33
- type_spec/external/api/entity/create_entity.yaml +0 -39
- 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/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/project/get_projects.yaml +0 -42
- type_spec/external/api/project/get_projects_data.yaml +0 -50
- type_spec/external/api/recipe_metadata/get_recipe_metadata_data.yaml +0 -41
- type_spec/external/api/recipes/create_recipes.yaml +0 -47
- type_spec/external/api/recipes/get_curve.yaml +0 -18
- 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 -238
- type_spec/external/api/recipes/set_recipe_inputs.yaml +0 -36
- type_spec/external/api/recipes/set_recipe_outputs.yaml +0 -52
|
@@ -0,0 +1,384 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402 Q003
|
|
4
|
+
# fmt: off
|
|
5
|
+
# isort: skip_file
|
|
6
|
+
# ruff: noqa: PLR0904
|
|
7
|
+
from __future__ import annotations
|
|
8
|
+
import typing # noqa: F401
|
|
9
|
+
import datetime # noqa: F401
|
|
10
|
+
from decimal import Decimal # noqa: F401
|
|
11
|
+
import uncountable.types.api.equipment.associate_equipment_input as associate_equipment_input_t
|
|
12
|
+
import uncountable.types.api.recipes.associate_recipe_as_input as associate_recipe_as_input_t
|
|
13
|
+
from uncountable.types import async_batch_t
|
|
14
|
+
from uncountable.types import base_t
|
|
15
|
+
import uncountable.types.api.recipes.clear_recipe_outputs as clear_recipe_outputs_t
|
|
16
|
+
import uncountable.types.api.recipes.create_recipe as create_recipe_t
|
|
17
|
+
import uncountable.types.api.recipes.edit_recipe_inputs as edit_recipe_inputs_t
|
|
18
|
+
from uncountable.types import entity_t
|
|
19
|
+
from uncountable.types import field_values_t
|
|
20
|
+
from uncountable.types import generic_upload_t
|
|
21
|
+
import uncountable.types.api.entity.grant_entity_permissions as grant_entity_permissions_t
|
|
22
|
+
from uncountable.types import identifier_t
|
|
23
|
+
import uncountable.types.api.uploader.invoke_uploader as invoke_uploader_t
|
|
24
|
+
from uncountable.types import recipe_identifiers_t
|
|
25
|
+
from uncountable.types import recipe_metadata_t
|
|
26
|
+
from uncountable.types import recipe_workflow_steps_t
|
|
27
|
+
import uncountable.types.api.entity.set_entity_field_values as set_entity_field_values_t
|
|
28
|
+
import uncountable.types.api.recipes.set_recipe_metadata as set_recipe_metadata_t
|
|
29
|
+
import uuid
|
|
30
|
+
from abc import ABC, abstractmethod
|
|
31
|
+
from pkgs.serialization_util import serialize_for_api
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class AsyncBatchProcessorBase(ABC):
|
|
35
|
+
@abstractmethod
|
|
36
|
+
def _enqueue(self, req: async_batch_t.AsyncBatchRequest) -> None:
|
|
37
|
+
...
|
|
38
|
+
|
|
39
|
+
@abstractmethod
|
|
40
|
+
def send(self) -> base_t.ObjectId:
|
|
41
|
+
...
|
|
42
|
+
|
|
43
|
+
def associate_equipment_input(
|
|
44
|
+
self,
|
|
45
|
+
*,
|
|
46
|
+
equipment_key: identifier_t.IdentifierKey,
|
|
47
|
+
material_family_ids: list[base_t.ObjectId],
|
|
48
|
+
depends_on: list[str] | None = None,
|
|
49
|
+
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
50
|
+
"""Create or return the input association for equipment
|
|
51
|
+
|
|
52
|
+
:param equipment_key: Identifier of the equipment to associate
|
|
53
|
+
:param material_family_ids: The list of material families to add the input to. This must be non-empty
|
|
54
|
+
:param depends_on: A list of batch reference keys to process before processing this request
|
|
55
|
+
"""
|
|
56
|
+
args = associate_equipment_input_t.Arguments(
|
|
57
|
+
equipment_key=equipment_key,
|
|
58
|
+
material_family_ids=material_family_ids,
|
|
59
|
+
)
|
|
60
|
+
json_data = serialize_for_api(args)
|
|
61
|
+
|
|
62
|
+
batch_reference = str(uuid.uuid4())
|
|
63
|
+
|
|
64
|
+
req = async_batch_t.AsyncBatchRequest(
|
|
65
|
+
path=async_batch_t.AsyncBatchRequestPath.ASSOCIATE_EQUIPMENT_INPUT,
|
|
66
|
+
data=json_data,
|
|
67
|
+
depends_on=depends_on,
|
|
68
|
+
batch_reference=batch_reference,
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
self._enqueue(req)
|
|
72
|
+
|
|
73
|
+
return async_batch_t.QueuedAsyncBatchRequest(
|
|
74
|
+
path=req.path,
|
|
75
|
+
batch_reference=req.batch_reference,
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
def associate_recipe_as_input(
|
|
79
|
+
self,
|
|
80
|
+
*,
|
|
81
|
+
recipe_key: identifier_t.IdentifierKey,
|
|
82
|
+
input_key: identifier_t.IdentifierKey | None = None,
|
|
83
|
+
show_in_listings: bool | None = None,
|
|
84
|
+
depends_on: list[str] | None = None,
|
|
85
|
+
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
86
|
+
"""Create or return the input association for a recipe
|
|
87
|
+
|
|
88
|
+
:param recipe_key: Identifier for the recipe
|
|
89
|
+
:param input_key: Identifier for an input to use for the association. Optionally supplied. If not supplied, one is created
|
|
90
|
+
:param show_in_listings: After associating the input should it be present in listings
|
|
91
|
+
:param depends_on: A list of batch reference keys to process before processing this request
|
|
92
|
+
"""
|
|
93
|
+
args = associate_recipe_as_input_t.Arguments(
|
|
94
|
+
recipe_key=recipe_key,
|
|
95
|
+
input_key=input_key,
|
|
96
|
+
show_in_listings=show_in_listings,
|
|
97
|
+
)
|
|
98
|
+
json_data = serialize_for_api(args)
|
|
99
|
+
|
|
100
|
+
batch_reference = str(uuid.uuid4())
|
|
101
|
+
|
|
102
|
+
req = async_batch_t.AsyncBatchRequest(
|
|
103
|
+
path=async_batch_t.AsyncBatchRequestPath.ASSOCIATE_RECIPE_AS_INPUT,
|
|
104
|
+
data=json_data,
|
|
105
|
+
depends_on=depends_on,
|
|
106
|
+
batch_reference=batch_reference,
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
self._enqueue(req)
|
|
110
|
+
|
|
111
|
+
return async_batch_t.QueuedAsyncBatchRequest(
|
|
112
|
+
path=req.path,
|
|
113
|
+
batch_reference=req.batch_reference,
|
|
114
|
+
)
|
|
115
|
+
|
|
116
|
+
def clear_recipe_outputs(
|
|
117
|
+
self,
|
|
118
|
+
*,
|
|
119
|
+
recipe_key: identifier_t.IdentifierKey,
|
|
120
|
+
depends_on: list[str] | None = None,
|
|
121
|
+
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
122
|
+
"""Clears all output values & output metadata for a given recipe
|
|
123
|
+
|
|
124
|
+
:param recipe_key: The identifier of the recipe
|
|
125
|
+
:param depends_on: A list of batch reference keys to process before processing this request
|
|
126
|
+
"""
|
|
127
|
+
args = clear_recipe_outputs_t.Arguments(
|
|
128
|
+
recipe_key=recipe_key,
|
|
129
|
+
)
|
|
130
|
+
json_data = serialize_for_api(args)
|
|
131
|
+
|
|
132
|
+
batch_reference = str(uuid.uuid4())
|
|
133
|
+
|
|
134
|
+
req = async_batch_t.AsyncBatchRequest(
|
|
135
|
+
path=async_batch_t.AsyncBatchRequestPath.CLEAR_RECIPE_OUTPUTS,
|
|
136
|
+
data=json_data,
|
|
137
|
+
depends_on=depends_on,
|
|
138
|
+
batch_reference=batch_reference,
|
|
139
|
+
)
|
|
140
|
+
|
|
141
|
+
self._enqueue(req)
|
|
142
|
+
|
|
143
|
+
return async_batch_t.QueuedAsyncBatchRequest(
|
|
144
|
+
path=req.path,
|
|
145
|
+
batch_reference=req.batch_reference,
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
def create_recipe(
|
|
149
|
+
self,
|
|
150
|
+
*,
|
|
151
|
+
material_family_id: base_t.ObjectId,
|
|
152
|
+
workflow_id: base_t.ObjectId,
|
|
153
|
+
name: str | None = None,
|
|
154
|
+
project_id: base_t.ObjectId | None = None,
|
|
155
|
+
workflow_variant_id: typing.Optional[base_t.ObjectId] | None = None,
|
|
156
|
+
recipe_metadata: list[recipe_metadata_t.MetadataValue] | None = None,
|
|
157
|
+
identifiers: recipe_identifiers_t.RecipeIdentifiers | None = None,
|
|
158
|
+
definition_key: identifier_t.IdentifierKey | None = None,
|
|
159
|
+
depends_on: list[str] | None = None,
|
|
160
|
+
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
161
|
+
"""Returns the id of the recipe being created.
|
|
162
|
+
|
|
163
|
+
:param name: The name for the recipe
|
|
164
|
+
:param material_family_id: The material family for the recipe
|
|
165
|
+
:param project_id: The identifier of the project to create the recipe in
|
|
166
|
+
:param workflow_id: The identifier of the workflow to create the recipe with
|
|
167
|
+
:param workflow_variant_id: The identifier of the workflow variant to create the recipe with
|
|
168
|
+
:param recipe_metadata: Metadata values to populate the recipe with
|
|
169
|
+
:param identifiers: A recipe won't be created if it matches the identifier. An identifier must be unique in the schema
|
|
170
|
+
:param definition_key: The entity definition identifier, default is used if not supplied
|
|
171
|
+
:param depends_on: A list of batch reference keys to process before processing this request
|
|
172
|
+
"""
|
|
173
|
+
args = create_recipe_t.Arguments(
|
|
174
|
+
name=name,
|
|
175
|
+
material_family_id=material_family_id,
|
|
176
|
+
project_id=project_id,
|
|
177
|
+
workflow_id=workflow_id,
|
|
178
|
+
workflow_variant_id=workflow_variant_id,
|
|
179
|
+
recipe_metadata=recipe_metadata,
|
|
180
|
+
identifiers=identifiers,
|
|
181
|
+
definition_key=definition_key,
|
|
182
|
+
)
|
|
183
|
+
json_data = serialize_for_api(args)
|
|
184
|
+
|
|
185
|
+
batch_reference = str(uuid.uuid4())
|
|
186
|
+
|
|
187
|
+
req = async_batch_t.AsyncBatchRequest(
|
|
188
|
+
path=async_batch_t.AsyncBatchRequestPath.CREATE_RECIPE,
|
|
189
|
+
data=json_data,
|
|
190
|
+
depends_on=depends_on,
|
|
191
|
+
batch_reference=batch_reference,
|
|
192
|
+
)
|
|
193
|
+
|
|
194
|
+
self._enqueue(req)
|
|
195
|
+
|
|
196
|
+
return async_batch_t.QueuedAsyncBatchRequest(
|
|
197
|
+
path=req.path,
|
|
198
|
+
batch_reference=req.batch_reference,
|
|
199
|
+
)
|
|
200
|
+
|
|
201
|
+
def edit_recipe_inputs(
|
|
202
|
+
self,
|
|
203
|
+
*,
|
|
204
|
+
recipe_key: identifier_t.IdentifierKey,
|
|
205
|
+
recipe_workflow_step_identifier: recipe_workflow_steps_t.RecipeWorkflowStepIdentifier,
|
|
206
|
+
edits: list[edit_recipe_inputs_t.RecipeInputEdit],
|
|
207
|
+
depends_on: list[str] | None = None,
|
|
208
|
+
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
209
|
+
"""Clear, update, or add inputs on a recipe
|
|
210
|
+
|
|
211
|
+
:param recipe_key: Identifier for the recipe
|
|
212
|
+
:param depends_on: A list of batch reference keys to process before processing this request
|
|
213
|
+
"""
|
|
214
|
+
args = edit_recipe_inputs_t.Arguments(
|
|
215
|
+
recipe_key=recipe_key,
|
|
216
|
+
recipe_workflow_step_identifier=recipe_workflow_step_identifier,
|
|
217
|
+
edits=edits,
|
|
218
|
+
)
|
|
219
|
+
json_data = serialize_for_api(args)
|
|
220
|
+
|
|
221
|
+
batch_reference = str(uuid.uuid4())
|
|
222
|
+
|
|
223
|
+
req = async_batch_t.AsyncBatchRequest(
|
|
224
|
+
path=async_batch_t.AsyncBatchRequestPath.EDIT_RECIPE_INPUTS,
|
|
225
|
+
data=json_data,
|
|
226
|
+
depends_on=depends_on,
|
|
227
|
+
batch_reference=batch_reference,
|
|
228
|
+
)
|
|
229
|
+
|
|
230
|
+
self._enqueue(req)
|
|
231
|
+
|
|
232
|
+
return async_batch_t.QueuedAsyncBatchRequest(
|
|
233
|
+
path=req.path,
|
|
234
|
+
batch_reference=req.batch_reference,
|
|
235
|
+
)
|
|
236
|
+
|
|
237
|
+
def grant_entity_permissions(
|
|
238
|
+
self,
|
|
239
|
+
*,
|
|
240
|
+
entity_type: entity_t.LimitedEntityType,
|
|
241
|
+
entity_key: identifier_t.IdentifierKey,
|
|
242
|
+
permission_types: list[entity_t.GrantableEntityPermissionType],
|
|
243
|
+
user_keys: list[identifier_t.IdentifierKey] | None = None,
|
|
244
|
+
user_group_keys: list[identifier_t.IdentifierKey] | None = None,
|
|
245
|
+
all_users: bool | None = None,
|
|
246
|
+
depends_on: list[str] | None = None,
|
|
247
|
+
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
248
|
+
"""Grant entity permissions to a list of users or user groups or to all users.
|
|
249
|
+
|
|
250
|
+
:param depends_on: A list of batch reference keys to process before processing this request
|
|
251
|
+
"""
|
|
252
|
+
args = grant_entity_permissions_t.Arguments(
|
|
253
|
+
entity_type=entity_type,
|
|
254
|
+
entity_key=entity_key,
|
|
255
|
+
permission_types=permission_types,
|
|
256
|
+
user_keys=user_keys,
|
|
257
|
+
user_group_keys=user_group_keys,
|
|
258
|
+
all_users=all_users,
|
|
259
|
+
)
|
|
260
|
+
json_data = serialize_for_api(args)
|
|
261
|
+
|
|
262
|
+
batch_reference = str(uuid.uuid4())
|
|
263
|
+
|
|
264
|
+
req = async_batch_t.AsyncBatchRequest(
|
|
265
|
+
path=async_batch_t.AsyncBatchRequestPath.GRANT_ENTITY_PERMISSIONS,
|
|
266
|
+
data=json_data,
|
|
267
|
+
depends_on=depends_on,
|
|
268
|
+
batch_reference=batch_reference,
|
|
269
|
+
)
|
|
270
|
+
|
|
271
|
+
self._enqueue(req)
|
|
272
|
+
|
|
273
|
+
return async_batch_t.QueuedAsyncBatchRequest(
|
|
274
|
+
path=req.path,
|
|
275
|
+
batch_reference=req.batch_reference,
|
|
276
|
+
)
|
|
277
|
+
|
|
278
|
+
def invoke_uploader(
|
|
279
|
+
self,
|
|
280
|
+
*,
|
|
281
|
+
uploader_key: identifier_t.IdentifierKey,
|
|
282
|
+
destination: generic_upload_t.UploadDestination,
|
|
283
|
+
file_id: base_t.ObjectId | None = None,
|
|
284
|
+
file_ids: list[base_t.ObjectId] | None = None,
|
|
285
|
+
depends_on: list[str] | None = None,
|
|
286
|
+
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
287
|
+
"""Runs a file through an uploader.
|
|
288
|
+
|
|
289
|
+
:param file_id: DEPRECATED: use file_ids
|
|
290
|
+
:param depends_on: A list of batch reference keys to process before processing this request
|
|
291
|
+
"""
|
|
292
|
+
args = invoke_uploader_t.Arguments(
|
|
293
|
+
file_id=file_id,
|
|
294
|
+
file_ids=file_ids,
|
|
295
|
+
uploader_key=uploader_key,
|
|
296
|
+
destination=destination,
|
|
297
|
+
)
|
|
298
|
+
json_data = serialize_for_api(args)
|
|
299
|
+
|
|
300
|
+
batch_reference = str(uuid.uuid4())
|
|
301
|
+
|
|
302
|
+
req = async_batch_t.AsyncBatchRequest(
|
|
303
|
+
path=async_batch_t.AsyncBatchRequestPath.INVOKE_UPLOADER,
|
|
304
|
+
data=json_data,
|
|
305
|
+
depends_on=depends_on,
|
|
306
|
+
batch_reference=batch_reference,
|
|
307
|
+
)
|
|
308
|
+
|
|
309
|
+
self._enqueue(req)
|
|
310
|
+
|
|
311
|
+
return async_batch_t.QueuedAsyncBatchRequest(
|
|
312
|
+
path=req.path,
|
|
313
|
+
batch_reference=req.batch_reference,
|
|
314
|
+
)
|
|
315
|
+
|
|
316
|
+
def set_entity_field_values(
|
|
317
|
+
self,
|
|
318
|
+
*,
|
|
319
|
+
entity_identifier: entity_t.EntityIdentifier,
|
|
320
|
+
field_values: list[field_values_t.FieldArgumentValue],
|
|
321
|
+
depends_on: list[str] | None = None,
|
|
322
|
+
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
323
|
+
"""Sets field values for an entity
|
|
324
|
+
|
|
325
|
+
:param entity_identifier: Entity to update
|
|
326
|
+
:param field_values: Field values to set
|
|
327
|
+
:param depends_on: A list of batch reference keys to process before processing this request
|
|
328
|
+
"""
|
|
329
|
+
args = set_entity_field_values_t.Arguments(
|
|
330
|
+
entity_identifier=entity_identifier,
|
|
331
|
+
field_values=field_values,
|
|
332
|
+
)
|
|
333
|
+
json_data = serialize_for_api(args)
|
|
334
|
+
|
|
335
|
+
batch_reference = str(uuid.uuid4())
|
|
336
|
+
|
|
337
|
+
req = async_batch_t.AsyncBatchRequest(
|
|
338
|
+
path=async_batch_t.AsyncBatchRequestPath.SET_ENTITY_FIELD_VALUES,
|
|
339
|
+
data=json_data,
|
|
340
|
+
depends_on=depends_on,
|
|
341
|
+
batch_reference=batch_reference,
|
|
342
|
+
)
|
|
343
|
+
|
|
344
|
+
self._enqueue(req)
|
|
345
|
+
|
|
346
|
+
return async_batch_t.QueuedAsyncBatchRequest(
|
|
347
|
+
path=req.path,
|
|
348
|
+
batch_reference=req.batch_reference,
|
|
349
|
+
)
|
|
350
|
+
|
|
351
|
+
def set_recipe_metadata(
|
|
352
|
+
self,
|
|
353
|
+
*,
|
|
354
|
+
recipe_key: identifier_t.IdentifierKey,
|
|
355
|
+
recipe_metadata: list[recipe_metadata_t.MetadataValue],
|
|
356
|
+
depends_on: list[str] | None = None,
|
|
357
|
+
) -> async_batch_t.QueuedAsyncBatchRequest:
|
|
358
|
+
"""Set metadata values on a recipe
|
|
359
|
+
|
|
360
|
+
:param recipe_key: Identifier for the recipe
|
|
361
|
+
:param recipe_metadata: Metadata values to populate the recipe with
|
|
362
|
+
:param depends_on: A list of batch reference keys to process before processing this request
|
|
363
|
+
"""
|
|
364
|
+
args = set_recipe_metadata_t.Arguments(
|
|
365
|
+
recipe_key=recipe_key,
|
|
366
|
+
recipe_metadata=recipe_metadata,
|
|
367
|
+
)
|
|
368
|
+
json_data = serialize_for_api(args)
|
|
369
|
+
|
|
370
|
+
batch_reference = str(uuid.uuid4())
|
|
371
|
+
|
|
372
|
+
req = async_batch_t.AsyncBatchRequest(
|
|
373
|
+
path=async_batch_t.AsyncBatchRequestPath.SET_RECIPE_METADATA,
|
|
374
|
+
data=json_data,
|
|
375
|
+
depends_on=depends_on,
|
|
376
|
+
batch_reference=batch_reference,
|
|
377
|
+
)
|
|
378
|
+
|
|
379
|
+
self._enqueue(req)
|
|
380
|
+
|
|
381
|
+
return async_batch_t.QueuedAsyncBatchRequest(
|
|
382
|
+
path=req.path,
|
|
383
|
+
batch_reference=req.batch_reference,
|
|
384
|
+
)
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402 Q003
|
|
4
|
+
# fmt: off
|
|
5
|
+
# 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
|
+
import dataclasses
|
|
12
|
+
from pkgs.serialization import serial_class
|
|
13
|
+
from . import base_t
|
|
14
|
+
from . import entity_t
|
|
15
|
+
|
|
16
|
+
__all__: list[str] = [
|
|
17
|
+
"AsyncBatchActionReturn",
|
|
18
|
+
"AsyncBatchRequest",
|
|
19
|
+
"AsyncBatchRequestPath",
|
|
20
|
+
"AsyncBatchResultValue",
|
|
21
|
+
"QueuedAsyncBatchRequest",
|
|
22
|
+
"SavedAsyncBatchActionReturn",
|
|
23
|
+
]
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
27
|
+
class AsyncBatchRequestPath(StrEnum):
|
|
28
|
+
CREATE_RECIPE = "recipes/create_recipe"
|
|
29
|
+
SET_RECIPE_METADATA = "recipes/set_recipe_metadata"
|
|
30
|
+
SET_RECIPE_TAGS = "recipes/set_recipe_tags"
|
|
31
|
+
EDIT_RECIPE_INPUTS = "recipes/edit_recipe_inputs"
|
|
32
|
+
ARCHIVE_RECIPES = "recipes/archive"
|
|
33
|
+
LOCK_RECIPES = "recipes/lock_recipes"
|
|
34
|
+
UNLOCK_RECIPES = "recipes/unlock_recipes"
|
|
35
|
+
ASSOCIATE_EQUIPMENT_INPUT = "equipment/associate_equipment_input"
|
|
36
|
+
INVOKE_UPLOADER = "uploader/invoke_uploader"
|
|
37
|
+
ASSOCIATE_RECIPE_AS_INPUT = "recipes/associate_recipe_as_input"
|
|
38
|
+
CLEAR_RECIPE_OUTPUTS = "recipes/clear_recipe_outputs"
|
|
39
|
+
GRANT_ENTITY_PERMISSIONS = "entity/grant_entity_permissions"
|
|
40
|
+
SET_ENTITY_FIELD_VALUES = "entity/set_entity_field_values"
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
44
|
+
@serial_class(
|
|
45
|
+
named_type_path="sdk.async_batch.AsyncBatchRequest",
|
|
46
|
+
unconverted_values={"data"},
|
|
47
|
+
)
|
|
48
|
+
@dataclasses.dataclass(kw_only=True)
|
|
49
|
+
class AsyncBatchRequest:
|
|
50
|
+
path: AsyncBatchRequestPath
|
|
51
|
+
data: base_t.JsonValue
|
|
52
|
+
batch_reference: str
|
|
53
|
+
depends_on: list[str] | None = None
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
57
|
+
@serial_class(
|
|
58
|
+
named_type_path="sdk.async_batch.AsyncBatchResultValue",
|
|
59
|
+
unconverted_values={"value"},
|
|
60
|
+
)
|
|
61
|
+
@dataclasses.dataclass(kw_only=True)
|
|
62
|
+
class AsyncBatchResultValue:
|
|
63
|
+
data_key: str
|
|
64
|
+
value: base_t.JsonValue
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
68
|
+
@serial_class(
|
|
69
|
+
named_type_path="sdk.async_batch.AsyncBatchActionReturn",
|
|
70
|
+
)
|
|
71
|
+
@dataclasses.dataclass(kw_only=True)
|
|
72
|
+
class AsyncBatchActionReturn:
|
|
73
|
+
modification_made: bool
|
|
74
|
+
result_id: base_t.ObjectId | None = None
|
|
75
|
+
entity: entity_t.Entity | None = None
|
|
76
|
+
result_values: list[AsyncBatchResultValue] | None = None
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
80
|
+
@serial_class(
|
|
81
|
+
named_type_path="sdk.async_batch.SavedAsyncBatchActionReturn",
|
|
82
|
+
)
|
|
83
|
+
@dataclasses.dataclass(kw_only=True)
|
|
84
|
+
class SavedAsyncBatchActionReturn:
|
|
85
|
+
identifier: str
|
|
86
|
+
result_data: AsyncBatchActionReturn
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
90
|
+
@serial_class(
|
|
91
|
+
named_type_path="sdk.async_batch.QueuedAsyncBatchRequest",
|
|
92
|
+
)
|
|
93
|
+
@dataclasses.dataclass(kw_only=True, frozen=True, eq=True)
|
|
94
|
+
class QueuedAsyncBatchRequest:
|
|
95
|
+
path: AsyncBatchRequestPath
|
|
96
|
+
batch_reference: str
|
|
97
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# flake8: noqa: F821
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
6
|
+
# Kept only for SDK backwards compatibility
|
|
7
|
+
from .async_jobs_t import AsyncJobType as AsyncJobType
|
|
8
|
+
from .async_jobs_t import AsyncJobStatus as AsyncJobStatus
|
|
9
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402 Q003
|
|
4
|
+
# fmt: off
|
|
5
|
+
# 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
|
+
"ASYNC_JOB_STATUS_FIELD_REF_NAME",
|
|
15
|
+
"ASYNC_JOB_TYPE_FIELD_REF_NAME",
|
|
16
|
+
"AsyncJobStatus",
|
|
17
|
+
"AsyncJobType",
|
|
18
|
+
]
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
22
|
+
@serial_string_enum(
|
|
23
|
+
labels={
|
|
24
|
+
"async_batch_load": "Async Batch Load",
|
|
25
|
+
"integration_server_run": "Integration Server Run",
|
|
26
|
+
},
|
|
27
|
+
)
|
|
28
|
+
class AsyncJobType(StrEnum):
|
|
29
|
+
ASYNC_BATCH_LOAD = "async_batch_load"
|
|
30
|
+
INTEGRATION_SERVER_RUN = "integration_server_run"
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
34
|
+
@serial_string_enum(
|
|
35
|
+
labels={
|
|
36
|
+
"in_progress": "In Progress",
|
|
37
|
+
"completed": "Completed",
|
|
38
|
+
"error": "Error",
|
|
39
|
+
},
|
|
40
|
+
)
|
|
41
|
+
class AsyncJobStatus(StrEnum):
|
|
42
|
+
IN_PROGRESS = "in_progress"
|
|
43
|
+
COMPLETED = "completed"
|
|
44
|
+
ERROR = "error"
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
48
|
+
ASYNC_JOB_TYPE_FIELD_REF_NAME = "core_async_job_jobType"
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
52
|
+
ASYNC_JOB_STATUS_FIELD_REF_NAME = "core_async_job_status"
|
|
53
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# flake8: noqa: F821
|
|
2
|
+
# ruff: noqa: E402 Q003
|
|
3
|
+
# fmt: off
|
|
4
|
+
# isort: skip_file
|
|
5
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
6
|
+
# Kept only for SDK backwards compatibility
|
|
7
|
+
from .auth_retrieval_t import AuthRetrievalType as AuthRetrievalType
|
|
8
|
+
from .auth_retrieval_t import AuthRetrievalBase as AuthRetrievalBase
|
|
9
|
+
from .auth_retrieval_t import AuthRetrievalOAuth as AuthRetrievalOAuth
|
|
10
|
+
from .auth_retrieval_t import AuthRetrievalBasic as AuthRetrievalBasic
|
|
11
|
+
from .auth_retrieval_t import AuthRetrieval as AuthRetrieval
|
|
12
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
+
# flake8: noqa: F821
|
|
3
|
+
# ruff: noqa: E402 Q003
|
|
4
|
+
# fmt: off
|
|
5
|
+
# 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
|
+
import dataclasses
|
|
12
|
+
from pkgs.serialization import serial_class
|
|
13
|
+
from pkgs.serialization import serial_union_annotation
|
|
14
|
+
from . import secret_retrieval_t
|
|
15
|
+
|
|
16
|
+
__all__: list[str] = [
|
|
17
|
+
"AuthRetrieval",
|
|
18
|
+
"AuthRetrievalBase",
|
|
19
|
+
"AuthRetrievalBasic",
|
|
20
|
+
"AuthRetrievalOAuth",
|
|
21
|
+
"AuthRetrievalType",
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
26
|
+
class AuthRetrievalType(StrEnum):
|
|
27
|
+
OAUTH = "oauth"
|
|
28
|
+
BASIC = "basic"
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
32
|
+
@serial_class(
|
|
33
|
+
named_type_path="sdk.auth_retrieval.AuthRetrievalBase",
|
|
34
|
+
)
|
|
35
|
+
@dataclasses.dataclass(kw_only=True)
|
|
36
|
+
class AuthRetrievalBase:
|
|
37
|
+
type: AuthRetrievalType
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
41
|
+
@serial_class(
|
|
42
|
+
named_type_path="sdk.auth_retrieval.AuthRetrievalOAuth",
|
|
43
|
+
parse_require={"type"},
|
|
44
|
+
)
|
|
45
|
+
@dataclasses.dataclass(kw_only=True)
|
|
46
|
+
class AuthRetrievalOAuth(AuthRetrievalBase):
|
|
47
|
+
type: typing.Literal[AuthRetrievalType.OAUTH] = AuthRetrievalType.OAUTH
|
|
48
|
+
refresh_token_secret: secret_retrieval_t.SecretRetrieval
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
52
|
+
@serial_class(
|
|
53
|
+
named_type_path="sdk.auth_retrieval.AuthRetrievalBasic",
|
|
54
|
+
parse_require={"type"},
|
|
55
|
+
)
|
|
56
|
+
@dataclasses.dataclass(kw_only=True)
|
|
57
|
+
class AuthRetrievalBasic(AuthRetrievalBase):
|
|
58
|
+
type: typing.Literal[AuthRetrievalType.BASIC] = AuthRetrievalType.BASIC
|
|
59
|
+
api_id_secret: secret_retrieval_t.SecretRetrieval
|
|
60
|
+
api_key_secret: secret_retrieval_t.SecretRetrieval
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|
|
64
|
+
AuthRetrieval = typing.Annotated[
|
|
65
|
+
typing.Union[AuthRetrievalOAuth, AuthRetrievalBasic],
|
|
66
|
+
serial_union_annotation(
|
|
67
|
+
named_type_path="sdk.auth_retrieval.AuthRetrieval",
|
|
68
|
+
discriminator="type",
|
|
69
|
+
discriminator_map={
|
|
70
|
+
"oauth": AuthRetrievalOAuth,
|
|
71
|
+
"basic": AuthRetrievalBasic,
|
|
72
|
+
},
|
|
73
|
+
),
|
|
74
|
+
]
|
|
75
|
+
# DO NOT MODIFY -- This file is generated by type_spec
|