UncountablePythonSDK 0.0.52__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 +54 -7
- 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 +6 -4
- examples/async_batch.py +3 -3
- examples/basic_auth.py +7 -0
- examples/create_entity.py +3 -1
- examples/create_ingredient_sdk.py +34 -0
- examples/download_files.py +26 -0
- examples/edit_recipe_inputs.py +4 -2
- 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 +4 -1
- 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 +1 -2
- pkgs/argument_parser/__init__.py +9 -0
- pkgs/argument_parser/_is_namedtuple.py +3 -0
- pkgs/argument_parser/argument_parser.py +217 -70
- pkgs/filesystem_utils/__init__.py +1 -0
- pkgs/filesystem_utils/_blob_session.py +144 -0
- pkgs/filesystem_utils/_gdrive_session.py +10 -7
- pkgs/filesystem_utils/_s3_session.py +15 -13
- pkgs/filesystem_utils/_sftp_session.py +11 -7
- pkgs/filesystem_utils/file_type_utils.py +30 -10
- pkgs/py.typed +0 -0
- pkgs/serialization/__init__.py +7 -2
- 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 +47 -26
- pkgs/serialization/serial_generic.py +16 -0
- pkgs/serialization/serial_union.py +17 -14
- pkgs/serialization/yaml.py +4 -1
- pkgs/serialization_util/__init__.py +6 -0
- pkgs/serialization_util/dataclasses.py +14 -0
- pkgs/serialization_util/serialization_helpers.py +15 -5
- pkgs/type_spec/actions_registry/__main__.py +0 -4
- pkgs/type_spec/actions_registry/emit_typescript.py +5 -5
- pkgs/type_spec/builder.py +354 -119
- pkgs/type_spec/builder_types.py +9 -0
- pkgs/type_spec/config.py +51 -11
- 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 +127 -36
- pkgs/type_spec/emit_open_api_util.py +5 -6
- pkgs/type_spec/emit_python.py +329 -121
- pkgs/type_spec/emit_typescript.py +117 -256
- pkgs/type_spec/emit_typescript_util.py +291 -2
- pkgs/type_spec/load_types.py +18 -4
- 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 +124 -29
- 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 +26 -9
- 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/core/async_batch.py +1 -1
- uncountable/core/client.py +142 -39
- uncountable/core/environment.py +41 -0
- uncountable/core/file_upload.py +52 -18
- uncountable/integration/cli.py +142 -0
- uncountable/integration/construct_client.py +8 -8
- uncountable/integration/cron.py +11 -37
- uncountable/integration/db/connect.py +12 -2
- uncountable/integration/db/session.py +25 -0
- uncountable/integration/entrypoint.py +8 -37
- uncountable/integration/executors/executors.py +125 -2
- uncountable/integration/executors/generic_upload_executor.py +87 -29
- uncountable/integration/executors/script_executor.py +3 -3
- uncountable/integration/http_server/__init__.py +5 -0
- uncountable/integration/http_server/types.py +69 -0
- uncountable/integration/job.py +242 -12
- 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/retrieve_secret.py +26 -4
- uncountable/integration/server.py +94 -69
- uncountable/integration/telemetry.py +150 -34
- uncountable/integration/webhook_server/entrypoint.py +97 -0
- uncountable/types/__init__.py +78 -1
- uncountable/types/api/batch/execute_batch.py +13 -6
- uncountable/types/api/batch/execute_batch_load_async.py +9 -3
- uncountable/types/api/chemical/convert_chemical_formats.py +17 -5
- 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 +19 -7
- uncountable/types/api/entity/create_entity.py +17 -8
- 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 +13 -4
- 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 +42 -10
- uncountable/types/api/entity/lock_entity.py +11 -4
- uncountable/types/api/entity/lookup_entity.py +116 -0
- uncountable/types/api/entity/resolve_entity_ids.py +15 -6
- uncountable/types/api/entity/set_entity_field_values.py +44 -0
- uncountable/types/api/entity/set_values.py +10 -3
- uncountable/types/api/entity/transition_entity_phase.py +22 -7
- uncountable/types/api/entity/unlock_entity.py +10 -3
- uncountable/types/api/equipment/associate_equipment_input.py +9 -3
- uncountable/types/api/field_options/upsert_field_options.py +17 -7
- 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 +16 -7
- uncountable/types/api/id_source/match_id_source.py +14 -5
- uncountable/types/api/input_groups/get_input_group_names.py +13 -4
- uncountable/types/api/inputs/create_inputs.py +23 -9
- uncountable/types/api/inputs/get_input_data.py +30 -12
- uncountable/types/api/inputs/get_input_names.py +16 -7
- uncountable/types/api/inputs/get_inputs_data.py +25 -7
- uncountable/types/api/inputs/set_input_attribute_values.py +12 -6
- uncountable/types/api/inputs/set_input_category.py +12 -5
- uncountable/types/api/inputs/set_input_subcategories.py +10 -3
- uncountable/types/api/inputs/set_intermediate_type.py +11 -4
- 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/update_entity_material_families.py +10 -4
- 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 +28 -13
- uncountable/types/api/outputs/get_output_names.py +15 -6
- uncountable/types/api/outputs/get_output_organization.py +173 -0
- uncountable/types/api/outputs/resolve_output_conditions.py +20 -8
- uncountable/types/api/permissions/set_core_permissions.py +26 -10
- uncountable/types/api/project/get_projects.py +16 -7
- uncountable/types/api/project/get_projects_data.py +17 -8
- uncountable/types/api/recipe_links/create_recipe_link.py +12 -5
- uncountable/types/api/recipe_links/remove_recipe_link.py +11 -4
- uncountable/types/api/recipe_metadata/get_recipe_metadata_data.py +16 -7
- uncountable/types/api/recipes/add_recipe_to_project.py +10 -3
- uncountable/types/api/recipes/add_time_series_data.py +64 -0
- uncountable/types/api/recipes/archive_recipes.py +11 -4
- uncountable/types/api/recipes/associate_recipe_as_input.py +12 -5
- uncountable/types/api/recipes/associate_recipe_as_lot.py +10 -3
- 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 +15 -9
- uncountable/types/api/recipes/create_recipes.py +21 -9
- uncountable/types/api/recipes/disassociate_recipe_as_input.py +10 -3
- uncountable/types/api/recipes/edit_recipe_inputs.py +134 -22
- uncountable/types/api/recipes/get_column_calculation_values.py +57 -0
- uncountable/types/api/recipes/get_curve.py +11 -5
- uncountable/types/api/recipes/get_recipe_calculations.py +13 -7
- uncountable/types/api/recipes/get_recipe_links.py +10 -4
- uncountable/types/api/recipes/get_recipe_names.py +13 -4
- uncountable/types/api/recipes/get_recipe_output_metadata.py +12 -6
- uncountable/types/api/recipes/get_recipes_data.py +87 -33
- uncountable/types/api/recipes/lock_recipes.py +19 -8
- uncountable/types/api/recipes/remove_recipe_from_project.py +10 -3
- uncountable/types/api/recipes/set_recipe_inputs.py +16 -10
- uncountable/types/api/recipes/set_recipe_metadata.py +10 -3
- uncountable/types/api/recipes/set_recipe_output_annotations.py +24 -12
- uncountable/types/api/recipes/set_recipe_output_file.py +55 -0
- uncountable/types/api/recipes/set_recipe_outputs.py +35 -12
- uncountable/types/api/recipes/set_recipe_tags.py +26 -9
- uncountable/types/api/recipes/set_recipe_total.py +59 -0
- uncountable/types/api/recipes/unarchive_recipes.py +10 -3
- uncountable/types/api/recipes/unlock_recipes.py +14 -6
- 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 +11 -4
- uncountable/types/api/uploader/complete_async_parse.py +46 -0
- uncountable/types/api/uploader/invoke_uploader.py +13 -6
- uncountable/types/api/user/__init__.py +1 -0
- uncountable/types/api/user/get_current_user_info.py +40 -0
- uncountable/types/async_batch.py +2 -1
- uncountable/types/async_batch_processor.py +618 -18
- uncountable/types/async_batch_t.py +54 -7
- 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 +0 -1
- uncountable/types/base_t.py +13 -11
- uncountable/types/calculations.py +0 -1
- uncountable/types/calculations_t.py +5 -2
- uncountable/types/chemical_structure.py +0 -1
- uncountable/types/chemical_structure_t.py +6 -5
- uncountable/types/client_base.py +751 -70
- uncountable/types/client_config.py +1 -1
- uncountable/types/client_config_t.py +17 -3
- uncountable/types/curves.py +0 -1
- uncountable/types/curves_t.py +10 -7
- uncountable/types/data.py +12 -0
- uncountable/types/data_t.py +103 -0
- uncountable/types/entity.py +4 -1
- uncountable/types/entity_t.py +125 -7
- uncountable/types/experiment_groups.py +0 -1
- uncountable/types/experiment_groups_t.py +5 -2
- uncountable/types/exports.py +8 -0
- uncountable/types/exports_t.py +34 -0
- uncountable/types/field_values.py +19 -1
- uncountable/types/field_values_t.py +246 -9
- uncountable/types/fields.py +0 -1
- uncountable/types/fields_t.py +5 -2
- uncountable/types/generic_upload.py +6 -1
- uncountable/types/generic_upload_t.py +88 -9
- uncountable/types/id_source.py +0 -1
- uncountable/types/id_source_t.py +26 -7
- uncountable/types/identifier.py +0 -1
- uncountable/types/identifier_t.py +13 -5
- uncountable/types/input_attributes.py +0 -1
- uncountable/types/input_attributes_t.py +4 -4
- uncountable/types/inputs.py +1 -1
- uncountable/types/inputs_t.py +24 -4
- 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 +4 -6
- uncountable/types/job_definition_t.py +96 -65
- 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 +0 -1
- uncountable/types/outputs_t.py +6 -3
- uncountable/types/overrides.py +9 -0
- uncountable/types/overrides_t.py +49 -0
- uncountable/types/permissions.py +0 -1
- uncountable/types/permissions_t.py +1 -2
- uncountable/types/phases.py +0 -1
- uncountable/types/phases_t.py +5 -2
- uncountable/types/post_base.py +0 -1
- uncountable/types/post_base_t.py +1 -2
- uncountable/types/queued_job.py +17 -0
- uncountable/types/queued_job_t.py +140 -0
- uncountable/types/recipe_identifiers.py +0 -1
- uncountable/types/recipe_identifiers_t.py +21 -8
- uncountable/types/recipe_inputs.py +0 -1
- uncountable/types/recipe_inputs_t.py +1 -2
- uncountable/types/recipe_links.py +0 -1
- uncountable/types/recipe_links_t.py +7 -4
- uncountable/types/recipe_metadata.py +0 -1
- uncountable/types/recipe_metadata_t.py +14 -9
- uncountable/types/recipe_output_metadata.py +0 -1
- uncountable/types/recipe_output_metadata_t.py +5 -2
- uncountable/types/recipe_tags.py +0 -1
- uncountable/types/recipe_tags_t.py +5 -2
- uncountable/types/recipe_workflow_steps.py +0 -1
- uncountable/types/recipe_workflow_steps_t.py +14 -7
- uncountable/types/recipes.py +0 -1
- uncountable/types/recipes_t.py +6 -2
- uncountable/types/response.py +0 -1
- uncountable/types/response_t.py +3 -2
- uncountable/types/secret_retrieval.py +0 -1
- uncountable/types/secret_retrieval_t.py +13 -7
- 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 +0 -1
- uncountable/types/units_t.py +5 -2
- uncountable/types/uploader.py +24 -0
- uncountable/types/uploader_t.py +222 -0
- uncountable/types/users.py +0 -1
- uncountable/types/users_t.py +5 -2
- uncountable/types/webhook_job.py +9 -0
- uncountable/types/webhook_job_t.py +48 -0
- uncountable/types/workflows.py +0 -1
- uncountable/types/workflows_t.py +10 -4
- uncountablepythonsdk-0.0.131.dist-info/METADATA +64 -0
- uncountablepythonsdk-0.0.131.dist-info/RECORD +363 -0
- {UncountablePythonSDK-0.0.52.dist-info → uncountablepythonsdk-0.0.131.dist-info}/WHEEL +1 -1
- UncountablePythonSDK-0.0.52.dist-info/METADATA +0 -56
- UncountablePythonSDK-0.0.52.dist-info/RECORD +0 -246
- docs/quickstart.md +0 -19
- uncountable/core/version.py +0 -11
- {UncountablePythonSDK-0.0.52.dist-info → uncountablepythonsdk-0.0.131.dist-info}/top_level.txt +0 -0
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,26 +6,27 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
import dataclasses
|
|
12
11
|
from pkgs.serialization import serial_class
|
|
13
12
|
from pkgs.serialization import serial_union_annotation
|
|
13
|
+
from . import auth_retrieval_t
|
|
14
|
+
from . import base_t
|
|
14
15
|
from . import client_config_t
|
|
15
16
|
from . import generic_upload_t
|
|
17
|
+
from . import identifier_t
|
|
18
|
+
from . import integration_server_t
|
|
16
19
|
from . import secret_retrieval_t
|
|
17
20
|
|
|
18
21
|
__all__: list[str] = [
|
|
19
|
-
"AuthRetrieval",
|
|
20
|
-
"AuthRetrievalBase",
|
|
21
|
-
"AuthRetrievalBasic",
|
|
22
|
-
"AuthRetrievalOAuth",
|
|
23
|
-
"AuthRetrievalType",
|
|
24
22
|
"CronJobDefinition",
|
|
23
|
+
"CustomHttpJobDefinition",
|
|
25
24
|
"GenericUploadDataSource",
|
|
26
25
|
"GenericUploadDataSourceBase",
|
|
27
26
|
"GenericUploadDataSourceS3",
|
|
28
27
|
"GenericUploadDataSourceSFTP",
|
|
29
28
|
"GenericUploadDataSourceType",
|
|
29
|
+
"HttpJobDefinitionBase",
|
|
30
30
|
"JobDefinition",
|
|
31
31
|
"JobDefinitionBase",
|
|
32
32
|
"JobDefinitionType",
|
|
@@ -35,16 +35,20 @@ __all__: list[str] = [
|
|
|
35
35
|
"JobExecutorGenericUpload",
|
|
36
36
|
"JobExecutorScript",
|
|
37
37
|
"JobExecutorType",
|
|
38
|
+
"JobLoggingSettings",
|
|
38
39
|
"JobResult",
|
|
39
40
|
"ProfileDefinition",
|
|
40
41
|
"ProfileMetadata",
|
|
41
42
|
"S3CloudProvider",
|
|
43
|
+
"WebhookJobDefinition",
|
|
42
44
|
]
|
|
43
45
|
|
|
44
46
|
|
|
45
47
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
46
48
|
class JobDefinitionType(StrEnum):
|
|
47
49
|
CRON = "cron"
|
|
50
|
+
WEBHOOK = "webhook"
|
|
51
|
+
CUSTOM_HTTP = "custom_http"
|
|
48
52
|
|
|
49
53
|
|
|
50
54
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -53,12 +57,6 @@ class JobExecutorType(StrEnum):
|
|
|
53
57
|
GENERIC_UPLOAD = "generic_upload"
|
|
54
58
|
|
|
55
59
|
|
|
56
|
-
# DO NOT MODIFY -- This file is generated by type_spec
|
|
57
|
-
class AuthRetrievalType(StrEnum):
|
|
58
|
-
OAUTH = "oauth"
|
|
59
|
-
BASIC = "basic"
|
|
60
|
-
|
|
61
|
-
|
|
62
60
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
63
61
|
class GenericUploadDataSourceType(StrEnum):
|
|
64
62
|
SFTP = "sftp"
|
|
@@ -66,37 +64,46 @@ class GenericUploadDataSourceType(StrEnum):
|
|
|
66
64
|
|
|
67
65
|
|
|
68
66
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
69
|
-
@
|
|
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]
|
|
70
71
|
class JobExecutorBase:
|
|
71
72
|
type: JobExecutorType
|
|
72
73
|
|
|
73
74
|
|
|
74
75
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
75
76
|
@serial_class(
|
|
77
|
+
named_type_path="sdk.job_definition.JobExecutorScript",
|
|
76
78
|
parse_require={"type"},
|
|
77
79
|
)
|
|
78
|
-
@dataclasses.dataclass(kw_only=True)
|
|
80
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
79
81
|
class JobExecutorScript(JobExecutorBase):
|
|
80
82
|
type: typing.Literal[JobExecutorType.SCRIPT] = JobExecutorType.SCRIPT
|
|
81
83
|
import_path: str
|
|
82
84
|
|
|
83
85
|
|
|
84
86
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
85
|
-
@
|
|
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]
|
|
86
91
|
class GenericUploadDataSourceBase:
|
|
87
92
|
type: GenericUploadDataSourceType
|
|
88
93
|
|
|
89
94
|
|
|
90
95
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
91
96
|
@serial_class(
|
|
97
|
+
named_type_path="sdk.job_definition.GenericUploadDataSourceSFTP",
|
|
92
98
|
parse_require={"type"},
|
|
93
99
|
)
|
|
94
|
-
@dataclasses.dataclass(kw_only=True)
|
|
100
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
95
101
|
class GenericUploadDataSourceSFTP(GenericUploadDataSourceBase):
|
|
96
102
|
type: typing.Literal[GenericUploadDataSourceType.SFTP] = GenericUploadDataSourceType.SFTP
|
|
97
103
|
host: str
|
|
98
104
|
username: str
|
|
99
|
-
pem_secret: secret_retrieval_t.SecretRetrieval
|
|
105
|
+
pem_secret: secret_retrieval_t.SecretRetrieval | None = None
|
|
106
|
+
password_secret: secret_retrieval_t.SecretRetrieval | None = None
|
|
100
107
|
|
|
101
108
|
|
|
102
109
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
@@ -107,23 +114,25 @@ class S3CloudProvider(StrEnum):
|
|
|
107
114
|
|
|
108
115
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
109
116
|
@serial_class(
|
|
117
|
+
named_type_path="sdk.job_definition.GenericUploadDataSourceS3",
|
|
110
118
|
parse_require={"type"},
|
|
111
119
|
)
|
|
112
|
-
@dataclasses.dataclass(kw_only=True)
|
|
120
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
113
121
|
class GenericUploadDataSourceS3(GenericUploadDataSourceBase):
|
|
114
122
|
type: typing.Literal[GenericUploadDataSourceType.S3] = GenericUploadDataSourceType.S3
|
|
115
123
|
bucket_name: str
|
|
116
|
-
cloud_provider:
|
|
117
|
-
endpoint_url:
|
|
118
|
-
region_name:
|
|
119
|
-
access_key_id:
|
|
120
|
-
access_key_secret:
|
|
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
|
|
121
129
|
|
|
122
130
|
|
|
123
131
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
124
132
|
GenericUploadDataSource = typing.Annotated[
|
|
125
|
-
|
|
133
|
+
GenericUploadDataSourceSFTP | GenericUploadDataSourceS3,
|
|
126
134
|
serial_union_annotation(
|
|
135
|
+
named_type_path="sdk.job_definition.GenericUploadDataSource",
|
|
127
136
|
discriminator="type",
|
|
128
137
|
discriminator_map={
|
|
129
138
|
"sftp": GenericUploadDataSourceSFTP,
|
|
@@ -135,9 +144,10 @@ GenericUploadDataSource = typing.Annotated[
|
|
|
135
144
|
|
|
136
145
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
137
146
|
@serial_class(
|
|
147
|
+
named_type_path="sdk.job_definition.JobExecutorGenericUpload",
|
|
138
148
|
parse_require={"type"},
|
|
139
149
|
)
|
|
140
|
-
@dataclasses.dataclass(kw_only=True)
|
|
150
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
141
151
|
class JobExecutorGenericUpload(JobExecutorBase):
|
|
142
152
|
type: typing.Literal[JobExecutorType.GENERIC_UPLOAD] = JobExecutorType.GENERIC_UPLOAD
|
|
143
153
|
data_source: GenericUploadDataSource
|
|
@@ -147,8 +157,9 @@ class JobExecutorGenericUpload(JobExecutorBase):
|
|
|
147
157
|
|
|
148
158
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
149
159
|
JobExecutor = typing.Annotated[
|
|
150
|
-
|
|
160
|
+
JobExecutorScript | JobExecutorGenericUpload,
|
|
151
161
|
serial_union_annotation(
|
|
162
|
+
named_type_path="sdk.job_definition.JobExecutor",
|
|
152
163
|
discriminator="type",
|
|
153
164
|
discriminator_map={
|
|
154
165
|
"script": JobExecutorScript,
|
|
@@ -159,96 +170,116 @@ JobExecutor = typing.Annotated[
|
|
|
159
170
|
|
|
160
171
|
|
|
161
172
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
162
|
-
@
|
|
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]
|
|
163
187
|
class JobDefinitionBase:
|
|
164
188
|
id: str
|
|
165
189
|
name: str
|
|
166
190
|
executor: JobExecutor
|
|
167
191
|
enabled: bool = True
|
|
192
|
+
logging_settings: JobLoggingSettings | None = None
|
|
193
|
+
subqueue_name: str | None = None
|
|
168
194
|
|
|
169
195
|
|
|
170
196
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
171
197
|
@serial_class(
|
|
198
|
+
named_type_path="sdk.job_definition.CronJobDefinition",
|
|
172
199
|
parse_require={"type"},
|
|
173
200
|
)
|
|
174
|
-
@dataclasses.dataclass(kw_only=True)
|
|
201
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
175
202
|
class CronJobDefinition(JobDefinitionBase):
|
|
176
203
|
type: typing.Literal[JobDefinitionType.CRON] = JobDefinitionType.CRON
|
|
177
204
|
cron_spec: str
|
|
178
205
|
|
|
179
206
|
|
|
180
207
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
},
|
|
188
|
-
),
|
|
189
|
-
]
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
# DO NOT MODIFY -- This file is generated by type_spec
|
|
193
|
-
@dataclasses.dataclass(kw_only=True)
|
|
194
|
-
class AuthRetrievalBase:
|
|
195
|
-
type: AuthRetrievalType
|
|
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
|
|
196
214
|
|
|
197
215
|
|
|
198
216
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
199
217
|
@serial_class(
|
|
218
|
+
named_type_path="sdk.job_definition.CustomHttpJobDefinition",
|
|
200
219
|
parse_require={"type"},
|
|
201
220
|
)
|
|
202
|
-
@dataclasses.dataclass(kw_only=True)
|
|
203
|
-
class
|
|
204
|
-
type: typing.Literal[
|
|
205
|
-
refresh_token_secret: secret_retrieval_t.SecretRetrieval
|
|
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
|
|
206
224
|
|
|
207
225
|
|
|
208
226
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
209
227
|
@serial_class(
|
|
228
|
+
named_type_path="sdk.job_definition.WebhookJobDefinition",
|
|
210
229
|
parse_require={"type"},
|
|
211
230
|
)
|
|
212
|
-
@dataclasses.dataclass(kw_only=True)
|
|
213
|
-
class
|
|
214
|
-
type: typing.Literal[
|
|
215
|
-
|
|
216
|
-
api_key_secret: secret_retrieval_t.SecretRetrieval
|
|
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
|
|
217
235
|
|
|
218
236
|
|
|
219
237
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
220
|
-
|
|
221
|
-
|
|
238
|
+
JobDefinition = typing.Annotated[
|
|
239
|
+
CronJobDefinition | CustomHttpJobDefinition | WebhookJobDefinition,
|
|
222
240
|
serial_union_annotation(
|
|
241
|
+
named_type_path="sdk.job_definition.JobDefinition",
|
|
223
242
|
discriminator="type",
|
|
224
243
|
discriminator_map={
|
|
225
|
-
"
|
|
226
|
-
"
|
|
244
|
+
"cron": CronJobDefinition,
|
|
245
|
+
"custom_http": CustomHttpJobDefinition,
|
|
246
|
+
"webhook": WebhookJobDefinition,
|
|
227
247
|
},
|
|
228
248
|
),
|
|
229
249
|
]
|
|
230
250
|
|
|
231
251
|
|
|
232
252
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
233
|
-
@
|
|
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]
|
|
234
257
|
class ProfileDefinition:
|
|
235
|
-
auth_retrieval: AuthRetrieval
|
|
236
|
-
base_url: str
|
|
237
258
|
jobs: list[JobDefinition]
|
|
238
|
-
|
|
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
|
|
239
263
|
|
|
240
264
|
|
|
241
265
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
242
|
-
@
|
|
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]
|
|
243
270
|
class ProfileMetadata:
|
|
244
271
|
name: str
|
|
245
272
|
base_url: str
|
|
246
|
-
auth_retrieval: AuthRetrieval
|
|
247
|
-
client_options:
|
|
273
|
+
auth_retrieval: auth_retrieval_t.AuthRetrieval
|
|
274
|
+
client_options: client_config_t.ClientConfigOptions | None
|
|
275
|
+
jobs: list[JobDefinition]
|
|
248
276
|
|
|
249
277
|
|
|
250
278
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
251
|
-
@
|
|
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]
|
|
252
283
|
class JobResult:
|
|
253
284
|
success: bool
|
|
254
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
uncountable/types/outputs_t.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -8,6 +7,7 @@ import typing # noqa: F401
|
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
9
|
import dataclasses
|
|
10
|
+
from pkgs.serialization import serial_class
|
|
11
11
|
from . import base_t
|
|
12
12
|
from . import units_t
|
|
13
13
|
|
|
@@ -17,10 +17,13 @@ __all__: list[str] = [
|
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
20
|
-
@
|
|
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]
|
|
21
24
|
class SimpleOutput:
|
|
22
25
|
output_id: base_t.ObjectId
|
|
23
26
|
name: str
|
|
24
|
-
unit:
|
|
27
|
+
unit: units_t.SimpleUnit | None
|
|
25
28
|
quantity_type: str
|
|
26
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,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -7,7 +6,7 @@ from __future__ import annotations
|
|
|
7
6
|
import typing # noqa: F401
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
|
-
from
|
|
9
|
+
from enum import StrEnum
|
|
11
10
|
from pkgs.serialization import serial_string_enum
|
|
12
11
|
|
|
13
12
|
__all__: list[str] = [
|
uncountable/types/phases.py
CHANGED
uncountable/types/phases_t.py
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
2
|
-
# flake8: noqa: F821
|
|
3
2
|
# ruff: noqa: E402 Q003
|
|
4
3
|
# fmt: off
|
|
5
4
|
# isort: skip_file
|
|
@@ -8,6 +7,7 @@ import typing # noqa: F401
|
|
|
8
7
|
import datetime # noqa: F401
|
|
9
8
|
from decimal import Decimal # noqa: F401
|
|
10
9
|
import dataclasses
|
|
10
|
+
from pkgs.serialization import serial_class
|
|
11
11
|
from . import base_t
|
|
12
12
|
|
|
13
13
|
__all__: list[str] = [
|
|
@@ -16,7 +16,10 @@ __all__: list[str] = [
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
# DO NOT MODIFY -- This file is generated by type_spec
|
|
19
|
-
@
|
|
19
|
+
@serial_class(
|
|
20
|
+
named_type_path="sdk.phases.Phase",
|
|
21
|
+
)
|
|
22
|
+
@dataclasses.dataclass(slots=base_t.ENABLE_SLOTS, kw_only=True) # type: ignore[literal-required]
|
|
20
23
|
class Phase:
|
|
21
24
|
id: base_t.ObjectId
|
|
22
25
|
name: str
|