orchestrator-core 2.10.0rc1__py3-none-any.whl → 2.10.0rc2__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.
orchestrator/__init__.py CHANGED
@@ -13,7 +13,7 @@
13
13
 
14
14
  """This is the orchestrator workflow engine."""
15
15
 
16
- __version__ = "2.10.0rc1"
16
+ __version__ = "2.10.0rc2"
17
17
 
18
18
  from orchestrator.app import OrchestratorCore
19
19
  from orchestrator.settings import app_settings
@@ -19,12 +19,15 @@ from fastapi.routing import APIRouter
19
19
  from orchestrator.api.api_v1.endpoints import (
20
20
  health,
21
21
  processes,
22
+ product_blocks,
22
23
  products,
24
+ resource_types,
23
25
  settings,
24
26
  subscription_customer_descriptions,
25
27
  subscriptions,
26
28
  translations,
27
29
  user,
30
+ workflows,
28
31
  ws,
29
32
  )
30
33
  from orchestrator.security import authorize
@@ -34,14 +37,32 @@ api_router = APIRouter()
34
37
  api_router.include_router(
35
38
  processes.router, prefix="/processes", tags=["Core", "Processes"], dependencies=[Depends(authorize)]
36
39
  )
40
+ api_router.include_router(
41
+ subscriptions.router,
42
+ prefix="/subscriptions",
43
+ tags=["Core", "Subscriptions"],
44
+ dependencies=[Depends(authorize)],
45
+ )
37
46
  api_router.include_router(processes.ws_router, prefix="/processes", tags=["Core", "Processes"])
38
47
  api_router.include_router(
39
48
  products.router, prefix="/products", tags=["Core", "Product"], dependencies=[Depends(authorize)]
40
49
  )
41
50
  api_router.include_router(
42
- subscriptions.router,
43
- prefix="/subscriptions",
44
- tags=["Core", "Subscriptions"],
51
+ product_blocks.router,
52
+ prefix="/product_blocks",
53
+ tags=["Core", "Product Blocks"],
54
+ dependencies=[Depends(authorize)],
55
+ )
56
+ api_router.include_router(
57
+ resource_types.router,
58
+ prefix="/resource_types",
59
+ tags=["Core", "Resource Types"],
60
+ dependencies=[Depends(authorize)],
61
+ )
62
+ api_router.include_router(
63
+ workflows.router,
64
+ prefix="/workflows",
65
+ tags=["Core", "Workflows"],
45
66
  dependencies=[Depends(authorize)],
46
67
  )
47
68
  api_router.include_router(
@@ -0,0 +1,56 @@
1
+ # Copyright 2019-2020 SURF.
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+
14
+ from http import HTTPStatus
15
+ from uuid import UUID
16
+
17
+ from fastapi.param_functions import Body
18
+ from fastapi.routing import APIRouter
19
+
20
+ from orchestrator.api.error_handling import raise_status
21
+ from orchestrator.db import db
22
+ from orchestrator.db.models import ProductBlockTable
23
+ from orchestrator.schemas.product_block import ProductBlockPatchSchema, ProductBlockSchema
24
+
25
+ router = APIRouter()
26
+
27
+
28
+ @router.get("/{product_block_id}", response_model=ProductBlockSchema)
29
+ def get_product_block_description(product_block_id: UUID) -> str:
30
+ product_block = db.session.get(ProductBlockTable, product_block_id)
31
+ if product_block is None:
32
+ raise_status(HTTPStatus.NOT_FOUND)
33
+ return product_block
34
+
35
+
36
+ @router.patch("/{product_block_id}", status_code=HTTPStatus.CREATED, response_model=ProductBlockSchema)
37
+ async def patch_product_block_by_id(
38
+ product_block_id: UUID, data: ProductBlockPatchSchema = Body(...)
39
+ ) -> ProductBlockTable:
40
+ product_block = db.session.get(ProductBlockTable, product_block_id)
41
+ if not product_block:
42
+ raise_status(HTTPStatus.NOT_FOUND, f"Product_block id {product_block_id} not found")
43
+
44
+ return await _patch_product_block_description(data, product_block)
45
+
46
+
47
+ async def _patch_product_block_description(
48
+ data: ProductBlockPatchSchema,
49
+ product_block: ProductBlockTable,
50
+ ) -> ProductBlockTable:
51
+
52
+ updated_properties = data.model_dump(exclude_unset=True)
53
+ description = updated_properties.get("description", product_block.description)
54
+ product_block.description = description
55
+ db.session.commit()
56
+ return product_block
@@ -14,6 +14,7 @@
14
14
  from http import HTTPStatus
15
15
  from uuid import UUID
16
16
 
17
+ from fastapi.param_functions import Body
17
18
  from fastapi.routing import APIRouter
18
19
  from sqlalchemy import select
19
20
  from sqlalchemy.orm import joinedload, selectinload
@@ -21,6 +22,7 @@ from sqlalchemy.orm import joinedload, selectinload
21
22
  from orchestrator.api.error_handling import raise_status
22
23
  from orchestrator.db import ProductBlockTable, ProductTable, db
23
24
  from orchestrator.schemas import ProductSchema
25
+ from orchestrator.schemas.product import ProductPatchSchema
24
26
 
25
27
  router = APIRouter()
26
28
 
@@ -48,6 +50,13 @@ def fetch(tag: str | None = None, product_type: str | None = None) -> list[Produ
48
50
  response_model=ProductSchema,
49
51
  )
50
52
  def product_by_id(product_id: UUID) -> ProductTable:
53
+ product = _product_by_id(product_id)
54
+ if not product:
55
+ raise_status(HTTPStatus.NOT_FOUND, f"Product id {product_id} not found")
56
+ return product
57
+
58
+
59
+ def _product_by_id(product_id: UUID) -> ProductTable | None:
51
60
  stmt = (
52
61
  select(ProductTable)
53
62
  .options(
@@ -57,7 +66,25 @@ def product_by_id(product_id: UUID) -> ProductTable:
57
66
  )
58
67
  .filter(ProductTable.product_id == product_id)
59
68
  )
60
- product = db.session.scalars(stmt).unique().one_or_none()
69
+ return db.session.scalars(stmt).unique().one_or_none()
70
+
71
+
72
+ @router.patch("/{product_id}", status_code=HTTPStatus.CREATED, response_model=ProductSchema)
73
+ async def patch_product_by_id(product_id: UUID, data: ProductPatchSchema = Body(...)) -> ProductTable:
74
+ product = _product_by_id(product_id)
61
75
  if not product:
62
76
  raise_status(HTTPStatus.NOT_FOUND, f"Product id {product_id} not found")
77
+
78
+ return await _patch_product_description(data, product)
79
+
80
+
81
+ async def _patch_product_description(
82
+ data: ProductPatchSchema,
83
+ product: ProductTable,
84
+ ) -> ProductTable:
85
+
86
+ updated_properties = data.model_dump(exclude_unset=True)
87
+ description = updated_properties.get("description", product.description)
88
+ product.description = description
89
+ db.session.commit()
63
90
  return product
@@ -0,0 +1,56 @@
1
+ # Copyright 2019-2020 SURF.
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+
14
+ from http import HTTPStatus
15
+ from uuid import UUID
16
+
17
+ from fastapi.param_functions import Body
18
+ from fastapi.routing import APIRouter
19
+
20
+ from orchestrator.api.error_handling import raise_status
21
+ from orchestrator.db import db
22
+ from orchestrator.db.models import ResourceTypeTable
23
+ from orchestrator.schemas.resource_type import ResourceTypePatchSchema, ResourceTypeSchema
24
+
25
+ router = APIRouter()
26
+
27
+
28
+ @router.get("/{resource_type_id}", response_model=ResourceTypeSchema)
29
+ def get_resource_type_description(resource_type_id: UUID) -> str:
30
+ resource_type = db.session.get(ResourceTypeTable, resource_type_id)
31
+ if resource_type is None:
32
+ raise_status(HTTPStatus.NOT_FOUND)
33
+ return resource_type
34
+
35
+
36
+ @router.patch("/{resource_type_id}", status_code=HTTPStatus.CREATED, response_model=ResourceTypeSchema)
37
+ async def patch_resource_type_by_id(
38
+ resource_type_id: UUID, data: ResourceTypePatchSchema = Body(...)
39
+ ) -> ResourceTypeTable:
40
+ resource_type = db.session.get(ResourceTypeTable, resource_type_id)
41
+ if not resource_type:
42
+ raise_status(HTTPStatus.NOT_FOUND, f"ResourceType id {resource_type_id} not found")
43
+
44
+ return await _patch_resource_type_description(data, resource_type)
45
+
46
+
47
+ async def _patch_resource_type_description(
48
+ data: ResourceTypePatchSchema,
49
+ resource_type: ResourceTypeTable,
50
+ ) -> ResourceTypeTable:
51
+
52
+ updated_properties = data.model_dump(exclude_unset=True)
53
+ description = updated_properties.get("description", resource_type.description)
54
+ resource_type.description = description
55
+ db.session.commit()
56
+ return resource_type
@@ -0,0 +1,54 @@
1
+ # Copyright 2019-2020 SURF.
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ #
6
+ # http://www.apache.org/licenses/LICENSE-2.0
7
+ #
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+
14
+ from http import HTTPStatus
15
+ from uuid import UUID
16
+
17
+ from fastapi.param_functions import Body
18
+ from fastapi.routing import APIRouter
19
+
20
+ from orchestrator.api.error_handling import raise_status
21
+ from orchestrator.db import db
22
+ from orchestrator.db.models import WorkflowTable
23
+ from orchestrator.schemas.workflow import WorkflowPatchSchema, WorkflowSchema
24
+
25
+ router = APIRouter()
26
+
27
+
28
+ @router.get("/{workflow_id}", response_model=WorkflowSchema)
29
+ def get_workflow_description(workflow_id: UUID) -> str:
30
+ workflow = db.session.get(WorkflowTable, workflow_id)
31
+ if workflow is None:
32
+ raise_status(HTTPStatus.NOT_FOUND)
33
+ return workflow
34
+
35
+
36
+ @router.patch("/{workflow_id}", status_code=HTTPStatus.CREATED, response_model=WorkflowSchema)
37
+ async def patch_workflow_by_id(workflow_id: UUID, data: WorkflowPatchSchema = Body(...)) -> WorkflowTable:
38
+ workflow = db.session.get(WorkflowTable, workflow_id)
39
+ if not workflow:
40
+ raise_status(HTTPStatus.NOT_FOUND, f"Workflow id {workflow_id} not found")
41
+
42
+ return await _patch_workflow_description(data, workflow)
43
+
44
+
45
+ async def _patch_workflow_description(
46
+ data: WorkflowPatchSchema,
47
+ workflow: WorkflowTable,
48
+ ) -> WorkflowTable:
49
+
50
+ updated_properties = data.model_dump(exclude_unset=True)
51
+ description = updated_properties.get("description", workflow.description)
52
+ workflow.description = description
53
+ db.session.commit()
54
+ return workflow
orchestrator/app.py CHANGED
@@ -199,8 +199,9 @@ class OrchestratorCore(FastAPI):
199
199
 
200
200
  def register_graphql(
201
201
  self: "OrchestratorCore",
202
- query: Any = Query,
203
- mutation: Any = Mutation,
202
+ # mypy 1.9 cannot properly inspect these, fixed in 1.15
203
+ query: Any = Query, # type: ignore
204
+ mutation: Any = Mutation, # type: ignore
204
205
  register_models: bool = True,
205
206
  subscription_interface: Any = SubscriptionInterface,
206
207
  graphql_models: StrawberryModelType | None = None,
@@ -11,7 +11,6 @@
11
11
  # See the License for the specific language governing permissions and
12
12
  # limitations under the License.
13
13
 
14
- import re
15
14
  from collections import ChainMap
16
15
  from collections.abc import Mapping
17
16
  from pathlib import Path
@@ -56,15 +55,8 @@ def get_product_block_path(product_block: dict) -> Path:
56
55
 
57
56
 
58
57
  def enrich_product_block(product_block: dict) -> dict:
59
- def to_block_name() -> str:
60
- """Separate block name into words."""
61
- type = product_block["type"]
62
- name = re.sub("(.)([A-Z][a-z]+)", r"\1 \2", type)
63
- return re.sub("([a-z0-9])([A-Z])", r"\1 \2", name)
64
-
65
58
  fields = get_all_fields(product_block)
66
- block_name = product_block.get("block_name", to_block_name())
67
-
59
+ block_name = product_block.get("block_name", product_block.get("type"))
68
60
  return product_block | {
69
61
  "fields": fields,
70
62
  "block_name": block_name,
@@ -41,3 +41,7 @@ class ProductSchema(ProductBaseSchema):
41
41
  product_blocks: list[ProductBlockSchema]
42
42
  fixed_inputs: list[FixedInputSchema]
43
43
  workflows: list[WorkflowSchema]
44
+
45
+
46
+ class ProductPatchSchema(OrchestratorBaseModel):
47
+ description: str | None = None
@@ -37,3 +37,7 @@ class ProductBlockSchema(ProductBlockBaseSchema):
37
37
  end_date: datetime | None = None
38
38
  resource_types: list[ResourceTypeSchema] | None = None # type: ignore
39
39
  model_config = ConfigDict(from_attributes=True)
40
+
41
+
42
+ class ProductBlockPatchSchema(OrchestratorBaseModel):
43
+ description: str | None = None
@@ -27,3 +27,7 @@ class ResourceTypeBaseSchema(OrchestratorBaseModel):
27
27
  class ResourceTypeSchema(ResourceTypeBaseSchema):
28
28
  resource_type_id: UUID
29
29
  model_config = ConfigDict(from_attributes=True)
30
+
31
+
32
+ class ResourceTypePatchSchema(OrchestratorBaseModel):
33
+ description: str | None = None
@@ -59,3 +59,7 @@ class SubscriptionWorkflowListsSchema(OrchestratorBaseModel):
59
59
  modify: list[WorkflowListItemSchema]
60
60
  terminate: list[WorkflowListItemSchema]
61
61
  system: list[WorkflowListItemSchema]
62
+
63
+
64
+ class WorkflowPatchSchema(OrchestratorBaseModel):
65
+ description: str | None = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: orchestrator-core
3
- Version: 2.10.0rc1
3
+ Version: 2.10.0rc2
4
4
  Summary: This is the orchestrator workflow engine.
5
5
  Requires-Python: >=3.11,<3.14
6
6
  Classifier: Intended Audience :: Information Technology
@@ -1,5 +1,5 @@
1
- orchestrator/__init__.py,sha256=-KfRTZJfyQYW2nDBgJPwnkSzI_ZuAWc0QC414IwuWEs,1059
2
- orchestrator/app.py,sha256=_2e3JMYgH_egOScokFVpFuTlJWGGwH0KYgZajDdm--0,11563
1
+ orchestrator/__init__.py,sha256=p507KZH6dyfb9vX3cZ80I0_bDmngfQ255K-SjZGbjiw,1059
2
+ orchestrator/app.py,sha256=8GMzoHjdR0bkgRBCejiG8nIUjeo43f12I3WNNZ89pKE,11659
3
3
  orchestrator/exception_handlers.py,sha256=UsW3dw8q0QQlNLcV359bIotah8DYjMsj2Ts1LfX4ClY,1268
4
4
  orchestrator/log_config.py,sha256=1tPRX5q65e57a6a_zEii_PFK8SzWT0mnA5w2sKg4hh8,1853
5
5
  orchestrator/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -14,16 +14,19 @@ orchestrator/api/error_handling.py,sha256=YrPCxSa-DSa9KwqIMlXI-KGBGnbGIW5ukOPiik
14
14
  orchestrator/api/helpers.py,sha256=s0QRHYw8AvEmlkmRhuEzz9xixaZKUF3YuPzUVHkcoXk,6933
15
15
  orchestrator/api/models.py,sha256=z9BDBx7uI4KBHWbD_LVrLsqNQ0_w-Mg9Qiy7PR_rZhk,5996
16
16
  orchestrator/api/api_v1/__init__.py,sha256=GyHNfEFCGKQwRiN6rQmvSRH2iYX7npjMZn97n8XzmLU,571
17
- orchestrator/api/api_v1/api.py,sha256=zGPSCX-nCebZXN2OT9QA_ChAtpsK53hpxZ7F2x_0gjI,2332
17
+ orchestrator/api/api_v1/api.py,sha256=Q_Yh9w_SBoyx06jV_kf6leGFrAMXoGjF8UikIAie_us,2858
18
18
  orchestrator/api/api_v1/endpoints/__init__.py,sha256=GyHNfEFCGKQwRiN6rQmvSRH2iYX7npjMZn97n8XzmLU,571
19
19
  orchestrator/api/api_v1/endpoints/health.py,sha256=iaxs1XX1_250_gKNsspuULCV2GEMBjbtjsmfQTOvMAI,1284
20
20
  orchestrator/api/api_v1/endpoints/processes.py,sha256=21BG32TslSgG2ePs68jUYAy8rDuohTXgzWETOpuNzyI,12761
21
- orchestrator/api/api_v1/endpoints/products.py,sha256=Qyj9OzlfWfgsWe9Homd60LFco91VaJ1gkgXxn0AmP6Q,2143
21
+ orchestrator/api/api_v1/endpoints/product_blocks.py,sha256=kZ6ywIOsS_S2qGq7RvZ4KzjvaS1LmwbGWR37AKRvWOw,2146
22
+ orchestrator/api/api_v1/endpoints/products.py,sha256=BfFtwu9dZXEQbtKxYj9icc73GKGvAGMR5ytyf41nQlQ,3081
23
+ orchestrator/api/api_v1/endpoints/resource_types.py,sha256=gGyuaDyOD0TAVoeFGaGmjDGnQ8eQQArOxKrrk4MaDzA,2145
22
24
  orchestrator/api/api_v1/endpoints/settings.py,sha256=QiSih8zOUombxXk5Hd7MACq5BC5Y9w-BrmgBdTPRIDg,6141
23
25
  orchestrator/api/api_v1/endpoints/subscription_customer_descriptions.py,sha256=Elu4DVJoNtUFq_b3pG1Ws8StrUIo_jTViff2TJqe6ZU,3398
24
26
  orchestrator/api/api_v1/endpoints/subscriptions.py,sha256=s0nzWY1n8J1Ep-f6LuhRj_LX3shfCq7PsMmHf0_Rzsw,8716
25
27
  orchestrator/api/api_v1/endpoints/translations.py,sha256=dIWh_fCnZZUxJoGiNeJ49DK_xpf75IpR_0EIMSvzIvY,963
26
28
  orchestrator/api/api_v1/endpoints/user.py,sha256=RyI32EXVu6I-IxWjz0XB5zQWzzLL60zKXLgLqLH02xU,1827
29
+ orchestrator/api/api_v1/endpoints/workflows.py,sha256=_0vhGiQeu3-z16Zi0WmuDWBs8gmed6BzRNwYH_sF6AY,1977
27
30
  orchestrator/api/api_v1/endpoints/ws.py,sha256=1l7E0ag_sZ6UMfQPHlmew7ENwxjm6fflBwcMZAb7V-k,2786
28
31
  orchestrator/cli/__init__.py,sha256=GyHNfEFCGKQwRiN6rQmvSRH2iYX7npjMZn97n8XzmLU,571
29
32
  orchestrator/cli/database.py,sha256=6Q9TZHAHaBEgP4mQArVsXKcQ1V7D2KM3ClMZ4PgSzA0,19274
@@ -57,7 +60,7 @@ orchestrator/cli/generator/generator/enums.py,sha256=ztGxHzpq7l4HDSZswH8UDJlf237
57
60
  orchestrator/cli/generator/generator/helpers.py,sha256=IoHXacEebef7MhUseTVkj05fRryyGMDH94Ai0nGq-nw,9838
58
61
  orchestrator/cli/generator/generator/migration.py,sha256=lDqosegGRKJRs1dN4QZV7lFwdWBKTEwe9DeNqP8OVkY,7045
59
62
  orchestrator/cli/generator/generator/product.py,sha256=W930c-9C8k0kW7I8_SC4mWf045neYcfFpkck5SwHeNQ,2079
60
- orchestrator/cli/generator/generator/product_block.py,sha256=5EthccKVeIzOvJU5sdSKPfEDj-1eEpkZt679vMkrNPE,5036
63
+ orchestrator/cli/generator/generator/product_block.py,sha256=h552YZTuehtaux6PKw5GKWAmBQ6cStOSY4TbaJ1Kcq8,4802
61
64
  orchestrator/cli/generator/generator/settings.py,sha256=_IhRnQ7bpGjqYtFo-OiLky25IKCibdghC6pkHmPIPoI,1379
62
65
  orchestrator/cli/generator/generator/translations.py,sha256=ip0RghW2bY7CoemEab9SxSgjizI44G35AoNHuBsgvrU,1878
63
66
  orchestrator/cli/generator/generator/unittest.py,sha256=cLbPRjBQyKFLDNABoTR3WQ21EisAodHs5Q3EGx4VQ6c,4541
@@ -231,12 +234,12 @@ orchestrator/schemas/engine_settings.py,sha256=BOyFNOn7AqHVdUxXyqmPk5aVdFY5A0cCO
231
234
  orchestrator/schemas/fixed_input.py,sha256=Rth3hT5K7zYuQr1bUY_NJRzb03xEZuT1p6EvYXVNE54,1214
232
235
  orchestrator/schemas/problem_detail.py,sha256=DxiUhWv6EVXLZgdKFv0EYVnCgtkDj7xteDCR0q2f5yw,802
233
236
  orchestrator/schemas/process.py,sha256=NgS1eBRtO2GUCRNsvbvYyjNkR2aBdH-kwcsR_y8DfNU,2354
234
- orchestrator/schemas/product.py,sha256=bIgeLGIsrRiQZ7J36S2Bym8CkV-xhPjn8QoHhZkEBa0,1484
235
- orchestrator/schemas/product_block.py,sha256=mKX9FwQ5TGo9SrrAtDJOhB_nji1LHJ3-mKBrEEoQ-No,1428
236
- orchestrator/schemas/resource_type.py,sha256=z1UQTaW79UlLDzVQtstNo0trXQVT8-GDisxieJPUeYo,973
237
+ orchestrator/schemas/product.py,sha256=MhMCh058ZuS2RJq-wSmxIPUNlhQexxXIx3DSz2OmOh4,1570
238
+ orchestrator/schemas/product_block.py,sha256=kCqvm6qadHpegMr9aWI_fYX-T7mS-5S-ldPxnGQZg7M,1519
239
+ orchestrator/schemas/resource_type.py,sha256=VDju4XywcDDLxdpbWU62RTvR9QF8x_GRrpTlN_NE8uI,1064
237
240
  orchestrator/schemas/subscription.py,sha256=zNy7bb-ww-MEN4QW9xIwxzcNSyFPEgjt5tt1T4Ah0hQ,3383
238
241
  orchestrator/schemas/subscription_descriptions.py,sha256=Ft_jw1U0bf9Z0U8O4OWfLlcl0mXCVT_qYVagBP3GbIQ,1262
239
- orchestrator/schemas/workflow.py,sha256=YvjidAaYz1MsqVsA7DynOlW4kChBO-47M-JCkpSOro4,1890
242
+ orchestrator/schemas/workflow.py,sha256=w-CaRPp9AAddhnd8o_0jPaey1Vnnh-s-A5s5kWlR2pI,1977
240
243
  orchestrator/services/__init__.py,sha256=GyHNfEFCGKQwRiN6rQmvSRH2iYX7npjMZn97n8XzmLU,571
241
244
  orchestrator/services/celery.py,sha256=uvXSKuq_XHcF4BgEpt2QgGUfUnpopApF74FsgAQdnFY,4634
242
245
  orchestrator/services/fixed_inputs.py,sha256=kyz7s2HLzyDulvcq-ZqefTw1om86COvyvTjz0_5CmgI,876
@@ -283,7 +286,7 @@ orchestrator/workflows/tasks/resume_workflows.py,sha256=wZGNHHQYL7wociSTmoNdDdh5
283
286
  orchestrator/workflows/tasks/validate_product_type.py,sha256=kVuN94hGWcmBNphgpAlGTSiyO2dEhFwgIq87SYjArns,3174
284
287
  orchestrator/workflows/tasks/validate_products.py,sha256=j_aOyxcH8DymlGupSS6XRwQdWx2Ab-c8f8iUvAXBTes,8511
285
288
  orchestrator/workflows/translations/en-GB.json,sha256=ST53HxkphFLTMjFHonykDBOZ7-P_KxksktZU3GbxLt0,846
286
- orchestrator_core-2.10.0rc1.dist-info/LICENSE,sha256=b-aA5OZQuuBATmLKo_mln8CQrDPPhg3ghLzjPjLn4Tg,11409
287
- orchestrator_core-2.10.0rc1.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
288
- orchestrator_core-2.10.0rc1.dist-info/METADATA,sha256=4c4eoSBdGAS9W_ug4mdpkVTLpJlaBZRcSnJX3wkGOs8,4926
289
- orchestrator_core-2.10.0rc1.dist-info/RECORD,,
289
+ orchestrator_core-2.10.0rc2.dist-info/LICENSE,sha256=b-aA5OZQuuBATmLKo_mln8CQrDPPhg3ghLzjPjLn4Tg,11409
290
+ orchestrator_core-2.10.0rc2.dist-info/WHEEL,sha256=CpUCUxeHQbRN5UGRQHYRJorO5Af-Qy_fHMctcQ8DSGI,82
291
+ orchestrator_core-2.10.0rc2.dist-info/METADATA,sha256=O8kU95N5X4y2BZNhjkkhn-Jkl4Gc3KWzh2owKvgJxek,4926
292
+ orchestrator_core-2.10.0rc2.dist-info/RECORD,,